/* Visitor hierarchy is fixed; owner tools keep the existing workspace. */
#visitor-navigation{display:flex;gap:12px;align-items:center;padding:18px 30px;border-bottom:1px solid var(--line);flex-wrap:wrap}
#visitor-navigation [aria-pressed=true]{background:var(--accent-surface);border-color:var(--accent-link)}
#visitor-navigation label{margin-left:auto;display:flex;gap:12px;align-items:center}
.availability-options{border:0;padding:0;margin:20px 0;display:grid;gap:8px}.availability-options legend{font-weight:600;margin-bottom:10px}.availability-options label{display:flex;align-items:center;gap:12px;padding:10px 0;min-height:44px}.availability-options input{width:20px;height:20px;flex:none}
.city-tile{border:1px solid var(--line);border-radius:0;padding:16px;margin:0 0 12px;background:var(--panel,#101720)}.city-tile h3{font:24px/1.2 Georgia,serif;margin:0 0 14px;color:var(--ink)}.town-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:14px;padding:10px 0;border-top:1px solid var(--line);font-size:13px}.town-people{text-align:right;overflow-wrap:anywhere}.town-people button{display:inline;padding:4px 0;min-height:32px;border:0;background:none;color:var(--accent-link);text-align:right;font:inherit}.town-people button[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px}.town-name{overflow-wrap:anywhere}
#spectate-invite{padding:32px 0;border-top:1px solid var(--line);margin-top:28px;order:90}#spectate-invite p{margin:12px 0 20px}#trip-weather{padding:24px 0;order:45}.trip-weather-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:20px}.trip-weather-grid h3{margin-bottom:12px}

body[data-experience=interview] .sidebar,body[data-experience=interview] .journey-distances,body[data-experience=interview] #briefing-panel,body[data-experience=interview] #trip-weather,body[data-experience=interview] #public-note-panel,body[data-experience=interview] .section-nav{display:none!important}
body[data-experience=interview] .app{grid-template-columns:minmax(0,1fr);max-width:1000px;margin:auto}
body[data-experience=trip] #interview-panel,body[data-experience=spectator] #interview-panel,body[data-experience=trip] #interview-summary,body[data-experience=spectator] #interview-summary,body[data-experience=trip] #nearby-panel,body[data-experience=spectator] #nearby-panel,body[data-experience=trip] #briefing-panel,body[data-experience=spectator] #briefing-panel,body[data-experience=trip] .section-nav,body[data-experience=spectator] .section-nav{display:none!important}
body[data-experience=owner] #trip-weather{display:none}
.login-panel #login-form{display:grid;grid-template-columns:1fr;gap:14px}.signup-role{display:flex;gap:24px;border:0;padding:0}.signup-role legend{margin-bottom:8px}.signup-role label{display:flex;align-items:center;gap:8px}.signup-role input{width:18px!important;margin:0!important}.login-panel .signup-details{display:grid;gap:12px}.login-panel .contact-notice{font-size:13px;line-height:1.5}#pending-signup-tools{margin-top:24px}#contacts-sync-status{font-size:13px;line-height:1.5}#contacts-sync-status button{margin-top:8px}
body:not([data-experience=owner]) .dashboard-nav,body:not([data-experience=owner]) .mobile-road-nav{display:none!important}
body[data-experience=interview] .intro{padding:12px 0;margin-bottom:12px}body[data-experience=interview] .destination-heading{margin-top:12px}#meeting-location-form input{width:100%;margin:8px 0}body[data-experience=interview] .destination-actions #stop-status{display:none}
@media(max-width:720px){#visitor-navigation{padding:14px 18px}#visitor-navigation label{margin-left:0;width:100%}.trip-weather-grid{grid-template-columns:1fr}.town-row{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.city-tile h3{font-size:25px}.login-panel{padding:24px 18px}.login-panel form{min-width:0}.login-panel input{min-width:0}.signup-role{flex-wrap:wrap}body[data-experience=interview] main{padding:18px}}

#availability-form .availability-calendar-layout{grid-template-columns:minmax(0,1fr)}#availability-form .availability-calendar-layout aside{grid-row:auto;border-top:1px solid var(--line);padding-top:14px}.ncaa-choice{display:flex;align-items:center;gap:10px;min-height:44px}#availability-form #ncaa-availability{width:18px;height:18px;min-height:0;margin:0;flex:none}#interview-document-links{display:grid;justify-items:start;gap:12px;margin:18px 0}#upload-panel{padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#upload::file-selector-button{padding:12px 16px;margin-right:12px;background:var(--accent-surface);color:var(--ink);border:1px solid var(--accent-link);border-radius:0;cursor:pointer}body[data-view=interviewee] #destination-person{display:none}

.release-picker{display:grid;gap:12px;margin:20px 0}.release-picker select{width:100%;max-width:360px}.release-picker label{font-weight:600}

#framily-stop-note{flex-basis:100%;font-size:13px;margin:8px 0}.linked-stop-people{display:grid;gap:8px;margin:14px 0}.linked-stop-people button{justify-content:flex-start;text-align:left}.linked-stop-people button[aria-pressed=true]{border-color:var(--accent-link);background:var(--accent-surface)}#dropbox-upload{margin-bottom:12px}

/* Code entry is its own step; the notice must never squeeze the input. */
.login-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.login-panel #code-form{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:14px;min-width:0;width:100%;max-width:420px}
.login-panel #code-form label,.login-panel #code-form small{min-width:0;overflow-wrap:anywhere}
#login-code{width:100%;min-height:56px;font-size:24px;line-height:1.4;letter-spacing:.2em;font-variant-numeric:tabular-nums;scroll-margin-block:24px}
.login-panel #code-form button{width:100%;min-height:44px}
@media(max-width:900px){.login-panel{grid-template-columns:minmax(0,1fr)}}
