.header-nav,.location-nav { display:flex; align-items:center; gap:1.1rem; }
[hidden] { display:none !important; }
.passport-link { color:var(--red,#b82635); font-size:.88rem; font-weight:850; text-underline-offset:.28rem; }
.account-button { min-height:40px; padding:.55rem .8rem; border:1px solid var(--ink,#172b38); background:transparent; color:var(--ink,#172b38); cursor:pointer; font-size:.8rem; font-weight:850; }
.account-button:hover,.account-button:focus-visible { background:var(--ink,#172b38); color:white; }
.passport-dialog { width:min(520px,calc(100% - 2rem)); padding:0; border:0; background:transparent; color:var(--ink,#172b38); }
.passport-dialog::backdrop { background:rgba(13,29,39,.72); backdrop-filter:blur(3px); }
.passport-dialog-shell { position:relative; padding:clamp(1.5rem,5vw,2.6rem); border-top:7px solid var(--red,#b82635); background:var(--paper,#fffdf8); box-shadow:0 28px 80px rgba(0,0,0,.35); }
.passport-dialog h2 { margin:0 2rem .8rem 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,6vw,3.1rem); line-height:1; }
.dialog-intro { margin:0 0 1.3rem; color:var(--ink-soft,#53636c); line-height:1.55; }
.dialog-close { position:absolute; top:.8rem; right:.8rem; width:38px; height:38px; border:0; background:transparent; color:var(--ink,#172b38); cursor:pointer; font-size:1.8rem; }
.passport-dialog label { display:grid; gap:.4rem; margin-top:.85rem; font-size:.78rem; font-weight:850; }
.passport-dialog input { width:100%; min-height:48px; padding:.75rem .85rem; border:1px solid var(--line,#d9d1c3); background:white; color:var(--ink,#172b38); font:inherit; }
.passport-dialog input:focus { outline:3px solid rgba(184,38,53,.16); border-color:var(--red,#b82635); }
.preview-notice { margin:1rem 0; padding:.8rem 1rem; display:grid; gap:.25rem; border-left:4px solid #d99920; background:#fff5dc; font-size:.8rem; line-height:1.4; }
.dialog-status { min-height:1.3rem; margin:.8rem 0 0; color:var(--red,#b82635); font-size:.8rem; font-weight:750; }
.dialog-actions { margin-top:.7rem; display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.button-link { border:0; padding:.6rem 0; background:transparent; color:var(--red,#b82635); cursor:pointer; font-weight:800; text-decoration:underline; text-underline-offset:.25rem; }
.visit-button,.place-visited { min-height:46px; padding:.72rem 1rem; border:2px solid var(--accent,var(--red,#b82635)); background:transparent; color:var(--accent,var(--red,#b82635)); cursor:pointer; font-weight:900; }
.visit-button.visited,.place-visited.visited { background:var(--accent,var(--red,#b82635)); color:white; }
.place-signin { margin-top:.9rem; padding:.4rem 0; border:0; background:transparent; color:var(--red,#b82635); cursor:pointer; font-size:.8rem; font-weight:800; text-decoration:underline; text-underline-offset:.25rem; }
.signup-prompt { margin:.45rem 0 0; color:var(--ink-soft,#53636c); font-size:.76rem; line-height:1.4; }
.signup-prompt button { border:0; padding:0; background:transparent; color:var(--red,#b82635); cursor:pointer; font:inherit; font-weight:850; text-decoration:underline; text-underline-offset:.2rem; }
.signin-stack,.locked-actions { display:grid; justify-items:start; gap:.15rem; }
@media (max-width:760px) {
  .header-nav,.location-nav { gap:.65rem; }
  .header-nav .header-link,.location-nav .back-link { display:none; }
  .passport-link { font-size:.78rem; }
  .account-button { min-height:36px; padding:.45rem .6rem; }
}
