/* Memoroam — Success Animation */
/* ═══ SUCCESS ANIMATION FLOW ═══ */
.success-overlay{position:fixed;inset:0;z-index:500;opacity:0;pointer-events:none;transition:opacity .3s;}
.success-overlay.show{opacity:1;pointer-events:all;}

/* Shared screen base */
.saf-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s;}
.saf-screen.active{opacity:1;pointer-events:all;}

/* ── Screen 1: Confirm ── */
.saf-confirm{background:rgba(20,15,10,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);align-items:flex-end;justify-content:flex-end;}
.saf-confirm-sheet{width:100%;background:var(--card);border-radius:28px 28px 0 0;padding:0 0 32px;transform:translateY(100%);transition:transform .4s cubic-bezier(.32,.72,0,1);}
.saf-confirm-sheet.risen{transform:translateY(0);}
.saf-cs-handle{width:36px;height:4px;border-radius:2px;background:rgba(0,0,0,.15);margin:14px auto 14px;}
.saf-cs-header{text-align:center;padding:0 20px 12px;}
.saf-cs-icon{width:48px;height:48px;border-radius:50%;background:rgba(74,158,106,.08);display:inline-flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:8px;}
.saf-cs-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--text);}
.saf-cs-sub{font-size:12px;color:var(--muted);margin-top:2px;}
.saf-mini-ticket{margin:0 20px;background:var(--card);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(0,0,0,.06);}
.saf-mt-body{padding:14px 18px 0;}
.saf-mt-route{display:flex;align-items:center;}
.saf-mt-block{flex:0 0 auto;}
.saf-mt-block.right{text-align:right;}
.saf-mt-code{font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:700;color:var(--text);letter-spacing:-1px;line-height:1;}
.saf-mt-city{font-size:9px;color:var(--muted);margin-top:3px;}
.saf-mt-flag{font-size:11px;margin-top:3px;}
.saf-mt-path{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 10px;}
.saf-mt-dur{font-size:9px;font-family:'IBM Plex Mono',monospace;color:var(--muted);font-weight:500;}
.saf-mt-line{display:flex;align-items:center;gap:3px;width:100%;}
.saf-mt-dot{width:4px;height:4px;border-radius:50%;background:var(--muted);flex-shrink:0;}
.saf-mt-dash{flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--muted) 0,var(--muted) 4px,transparent 4px,transparent 9px);}
.saf-mt-plane{flex-shrink:0;color:var(--muted);}
.saf-mt-divider{display:flex;align-items:center;margin:10px -18px;}
.saf-mt-notch{width:14px;height:14px;border-radius:50%;background:var(--bg);flex-shrink:0;}
.saf-mt-notch.left{margin-left:-7px;}.saf-mt-notch.right{margin-right:-7px;}
.saf-mt-perf{flex:1;border-top:1.5px dashed rgba(0,0,0,.08);}
.saf-mt-footer{padding:10px 0 13px;display:flex;}
.saf-mt-fcell{flex:1;display:flex;flex-direction:column;gap:2px;}
.saf-mt-fcell+.saf-mt-fcell{border-left:1px solid var(--border);padding-left:12px;margin-left:12px;}
.saf-mt-flbl{font-size:8px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);}
.saf-mt-fval{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;}
.saf-confirm-btn{margin:14px 20px 0;height:50px;border-radius:14px;background:var(--text);color:white;border:none;width:calc(100% - 40px);font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .15s;}
.saf-confirm-btn:active{opacity:.8;}
.saf-modify-btn{margin:10px 20px 0;height:38px;border:none;background:transparent;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;width:calc(100% - 40px);display:flex;align-items:center;justify-content:center;gap:6px;transition:color .15s;}
.saf-modify-btn:active{color:var(--text);}

/* ── Screen 2: Minimal trip confirmation ── */
.saf-logged{
  background:rgba(16,14,12,.92);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;
}
.saf-conf-check{
  width:64px;height:64px;
  border-radius:50%;
  border:2px solid rgba(74,158,106,.25);
  display:flex;align-items:center;justify-content:center;
  position:relative;
  transform:scale(0);
  opacity:0;
  transition:transform .42s cubic-bezier(.34,1.56,.64,1), opacity .25s ease;
  margin-bottom:28px;
}
.saf-conf-check.pop{transform:scale(1);opacity:1;}
.saf-conf-check::before{
  content:'';position:absolute;inset:-8px;
  border-radius:50%;
  border:1px solid rgba(74,158,106,.1);
}
.saf-conf-check svg{width:28px;height:28px;}
.saf-conf-check-path{
  fill:none;stroke:#4A9E6A;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:30;stroke-dashoffset:30;
  transition:stroke-dashoffset .35s ease .28s;
}
.saf-conf-check-path.draw{stroke-dashoffset:0;}
.saf-conf-label{
  font-family:'Playfair Display',serif;
  font-size:20px;font-weight:700;
  color:white;
  text-align:center;
  line-height:1.25;
  opacity:0;transform:translateY(8px);
  transition:opacity .35s ease .42s, transform .35s ease .42s;
  padding:0 32px;
  margin-bottom:10px;
}
.saf-conf-label.show{opacity:1;transform:translateY(0);}
.saf-conf-route{
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;font-weight:600;letter-spacing:.5px;
  color:rgba(255,255,255,.35);
  opacity:0;
  transition:opacity .3s ease .58s;
}
.saf-conf-route.show{opacity:1;}
.saf-conf-hint{
  position:absolute;bottom:52px;
  font-size:11px;color:rgba(255,255,255,.18);
  letter-spacing:.3px;
  opacity:0;transition:opacity .3s ease .9s;
}
.saf-conf-hint.show{opacity:1;}
