.passport-main { min-height:75vh; background:var(--paper); }
.passport-hero { min-height:460px; padding:clamp(4rem,8vw,7rem) max(1.25rem,calc((100vw - 1280px)/2 + 3rem)); display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr); gap:4rem; align-items:center; overflow:hidden; background:var(--cream); }
.passport-hero h1 { font-size:clamp(3.6rem,7vw,7rem); }
.passport-hero > div:first-child > p:last-child { max-width:660px; color:var(--ink-soft); font-size:1.05rem; line-height:1.65; }
.passport-seal { width:min(310px,70vw); aspect-ratio:1; justify-self:center; display:grid; place-content:center; place-items:center; border:3px double var(--red); border-radius:50%; color:var(--red); text-align:center; transform:rotate(4deg); box-shadow:0 0 0 12px var(--cream),0 0 0 14px var(--red); }
.passport-seal span { font-family:Georgia,serif; font-size:3.6rem; line-height:1; }
.passport-seal strong { margin:.5rem 0; font-size:1.25rem; letter-spacing:.14em; line-height:1.25; text-transform:uppercase; }
.passport-seal small { font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.passport-locked { max-width:1160px; margin:4rem auto; padding:clamp(2rem,5vw,4rem); display:flex; align-items:end; justify-content:space-between; gap:3rem; border-left:8px solid var(--red); background:white; box-shadow:var(--shadow); }
.passport-locked h2 { margin-bottom:.8rem; }
.passport-locked .locked-actions { min-width:250px; }
.passport-locked p:not(.eyebrow) { max-width:650px; color:var(--ink-soft); line-height:1.6; }
.passport-dashboard { max-width:1280px; margin:0 auto; padding:clamp(3rem,7vw,6rem) clamp(1.25rem,4vw,3rem); }
.passport-dashboard[hidden] { display:none; }
.overall-progress { padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--line); background:white; }
.overall-progress h2 { font-size:clamp(2.2rem,5vw,4rem); }
.overall-progress h2 span:first-child { color:var(--red); }
.progress-track { height:16px; margin:1.7rem 0 1rem; overflow:hidden; background:#e9e3d8; }
.progress-track span { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--gold),var(--wine),var(--copper)); transition:width .35s ease; }
.overall-progress > p { margin:0; color:var(--ink-soft); }
.passport-stats { margin:1rem 0 5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.passport-stats article { min-height:175px; display:flex; align-items:center; gap:1.1rem; padding:1.4rem; border:1px solid var(--line); background:var(--cream); }
.passport-stats img { width:92px; height:92px; object-fit:contain; }
.passport-stats span { display:block; margin-bottom:.4rem; color:var(--ink-soft); font-size:.78rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.passport-stats strong { font-family:Georgia,serif; font-size:1.75rem; font-weight:500; }
.passport-stats b { font-weight:500; }
.passport-list-heading { margin-bottom:1.2rem; display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.passport-list-heading h2 { font-size:clamp(2.2rem,4.5vw,4.3rem); }
.passport-tools { display:flex; gap:.6rem; }
.passport-tools input,.passport-tools select { min-height:46px; padding:.7rem .8rem; border:1px solid var(--line); background:white; color:var(--ink); font:inherit; }
.passport-tools input:focus,.passport-tools select:focus { outline:3px solid rgba(184,38,53,.14); border-color:var(--red); }
.passport-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.passport-stop { position:relative; min-height:165px; display:grid; grid-template-columns:64px 1fr auto; gap:1rem; align-items:start; padding:1.25rem; border:1px solid var(--line); background:white; }
.passport-stop-icon { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:var(--stamp-bg); }
.passport-stop-icon img { width:46px; height:46px; object-fit:contain; }
.passport-stop-category { margin:0 0 .4rem; color:var(--stamp); font-size:.68rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.passport-stop h3 { margin:0 0 .45rem; font-family:Georgia,serif; font-size:1.35rem; line-height:1.15; }
.passport-stop h3 a { text-decoration:none; }
.passport-stop h3 a:hover { color:var(--stamp); text-decoration:underline; text-underline-offset:.2rem; }
.passport-stop-address,.passport-stop-date { margin:.25rem 0; color:var(--ink-soft); font-size:.82rem; line-height:1.4; }
.passport-stop-remove { border:0; background:transparent; color:#7b858b; cursor:pointer; font-size:.72rem; text-decoration:underline; text-underline-offset:.2rem; }
.passport-empty { padding:3rem 1.5rem; border:1px dashed var(--line); background:var(--cream); text-align:center; }
.passport-empty h3 { margin:0 0 .5rem; font-family:Georgia,serif; font-size:1.8rem; }
.passport-empty p { margin:0 0 1.5rem; color:var(--ink-soft); }
.passport-empty[hidden] { display:none; }
.signout-button { margin-top:2rem; padding:.5rem 0; border:0; background:transparent; color:var(--ink-soft); cursor:pointer; text-decoration:underline; text-underline-offset:.25rem; }
@media(max-width:900px){.passport-stats{grid-template-columns:1fr}.passport-stats article{min-height:120px}.passport-list{grid-template-columns:1fr}}
@media(max-width:760px){.passport-hero{grid-template-columns:1fr}.passport-seal{width:210px}.passport-locked,.passport-list-heading{align-items:stretch;flex-direction:column}.passport-tools{flex-direction:column}.passport-stop{grid-template-columns:52px 1fr}.passport-stop-icon{width:52px;height:52px}.passport-stop-icon img{width:38px;height:38px}.passport-stop-remove{grid-column:2;justify-self:start}}
