/* The Fieldbook: cool graphite with red, bronze, silver, gold and white accents. */
:root,body,body[data-view]{--ink:#eeeeee;--muted:#b5b5b5;--line:#494949;--panel:#202020;--rail:#171717;--white:#202020;--paper:#202020;--night:#111111;--accent:#c5cbd3;--accent-link:#e0e4e9;--accent-focus:#f5f7fa;--accent-surface:#303030;--accent-border:#9aa5b2;--accent-text:#f5f7fa;--link-blue:var(--accent-link);--carolina:var(--accent);--ochre:#cccccc;--olive:#b5b5b5;color-scheme:dark}
body[data-view=owner]{--accent:#eb646d;--accent-link:#f4939b;--accent-focus:#f6cccc;--accent-surface:#303030;--accent-border:#ba505a;--accent-text:#f5b6bc}
body[data-view=interviewee]{--accent:#cf9b6e;--accent-link:#e5bd98;--accent-focus:#f6dfc9;--accent-surface:#303030;--accent-border:#b5855f;--accent-text:#f0d1b5}
html{scroll-padding-top:24px;scrollbar-color:#777777 #151515}body{margin:0;background:#111111;color:var(--ink);font:15px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}::selection{background:var(--accent);color:#111111}input,textarea{caret-color:var(--accent-link)}:focus-visible{outline:2px solid var(--accent-focus)!important;outline-offset:4px}
body .topbar,body .owner-bar,body #visitor-navigation{background:#171717;border-color:var(--line);color:var(--ink)}.topbar{padding:12px 30px!important;min-height:72px}.brand-map img{filter:none;width:92px;height:52px;object-fit:contain}.header-actions{gap:14px}#owner-bar{font-size:12px;padding:10px 30px}#owner-bar>span{color:var(--muted)}
body .app,body[data-experience=interview] .app{display:grid;grid-template-columns:280px minmax(0,1fr);max-width:1600px;margin:auto;align-items:start}body .sidebar,body[data-experience=interview] .sidebar{display:block!important;position:sticky;top:0;background:#171717!important;border-right:1px solid var(--line);padding:24px 20px;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain}body .sidebar>*{flex-shrink:0}body .sidebar #stop-list{overflow:visible;max-height:none;flex:none}.trip-title>p:first-child{display:none}.trip-title h2{font:25px/1.2 Georgia,serif}.list-controls{margin-top:20px;display:grid;gap:12px}.list-controls #open-add{width:100%}.sidebar-footer{margin-top:28px;color:var(--muted)}#owner-list-tools{margin-top:24px}.trip-management{border-top:1px solid var(--line);padding-top:16px}.trip-management summary{font-weight:600;color:var(--ink)}.trip-management button{width:100%;margin-top:8px}#contacts-sync-status{margin-top:16px;font-size:12px}
body main,body[data-experience=interview] main{padding:32px clamp(20px,3vw,52px);min-width:0;display:block;background:#191919}body .intro,body[data-experience=interview] .intro{display:flex!important;justify-content:space-between;align-items:start;gap:24px;padding:0 0 20px;margin:0;border-bottom:1px solid var(--line)}h1,h2,h3{color:var(--ink);font-family:Georgia,'Times New Roman',serif;font-weight:400}#main-title{font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.025em;margin:0 0 12px}#main-subtitle{color:var(--muted);max-width:55ch}.journey-distances{display:flex!important;gap:24px;margin:0}.mileage strong{font:26px/1.2 Georgia,serif}.mileage span,.distance-heading{font-size:11px!important;letter-spacing:0!important;text-transform:none!important}.mileage small{max-width:170px}.fieldbook-toolbar{display:flex;justify-content:space-between;gap:12px;margin:20px 0}.fieldbook-toolbar #producer-layout{display:flex;gap:8px}.fieldbook-toolbar button{min-height:44px}.fieldbook-toolbar #reset-layout{font-size:12px;background:transparent}
body button,body .button,body input,body select,body textarea,body[data-view] :is(button,.button){border-radius:0!important;border:1px solid var(--line);background:#2a2a2a;color:var(--ink);font:inherit}body button,body .button{min-height:44px;padding:9px 14px}body button:hover,body .button:hover{background:#383838!important;border-color:var(--accent-border)}body :is(input,select,textarea){background:#171717!important;color:var(--ink)!important;padding:11px 12px;max-width:100%}body input::placeholder,body textarea::placeholder{color:#aaaaaa;opacity:1}body a{color:var(--accent-link)}body .primary,body[data-view] .primary,body [aria-pressed=true]:not(.town-people button),body[data-view] .stop-type-toggle button[aria-pressed=true]{background:var(--accent-surface)!important;border-color:var(--accent-border)!important;color:var(--accent-text)!important}button:disabled{opacity:.5;cursor:not-allowed}.hint,small,.source-line{color:var(--muted)!important}
#fieldbook-blocks{display:flex;flex-direction:column;gap:20px;min-width:0}.collapsible-block,body[data-view] :is(#owner-editor,.interview-panel,.question-generator,.data-card,.map-key,.timeline-panel,.add-panel),body .tab-panel{background:#202020!important;color:var(--ink)!important;border:1px solid var(--line);border-radius:0!important;min-width:0}.collapsible-block{padding:24px!important;margin:0!important;position:relative}.collapsible-block>.block-toggle{background:transparent!important;border:0!important;border-bottom:1px solid var(--line)!important;padding:0 0 14px 30px!important;margin:0 0 22px;min-height:44px;text-align:left;display:flex;justify-content:space-between;gap:16px;color:var(--ink)!important}.block-toggle>span:first-child{font:24px/1.2 Georgia,serif}.block-toggle .block-action{font:12px/1.4 system-ui;color:var(--muted)}.block-grip{width:28px!important;min-height:44px!important;padding:4px!important;background:transparent!important;border:0!important;color:var(--muted)!important}.block-collapsed{padding-bottom:12px!important}.block-collapsed>.block-toggle{margin-bottom:0;border-bottom:0!important}.collapsible-block>h2,.collapsible-block>h3{display:none}.collapsible-block>.section-heading>h2{display:none}.collapsible-block>.section-heading:has(>#save-stop){justify-content:flex-end}#save-stop{font-size:12px}.collapsible-block.block-collapsed>:not(.block-toggle):not(.block-grip){display:none!important}
body .map-section{padding:0!important;overflow:hidden}body .map-section>.block-toggle{padding:16px 20px 16px 50px!important;margin:0}.map-section .block-grip{left:12px!important;top:8px!important}#map{height:clamp(340px,55vh,620px)!important;background:#bbbbbb}.leaflet-tile-pane{filter:none}body .map-key{border:0;border-top:1px solid var(--line);padding:14px 20px!important;font-size:12px}.map-key small{max-width:65ch}.leaflet-control a{background:#e5e5e5!important;color:#242424!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#202020!important;color:var(--ink)!important}
body #map .map-stop,body[data-view] #map .map-stop,body #map .map-stop.honoree,body #map .map-stop.friends-family,body #map .map-stop.supporting,body #map .map-stop.sightseeing{background:#d5d5d5!important;color:#222222!important;border:1px solid #494949!important;outline-color:var(--accent-link)!important;box-shadow:none}.map-stop.visited{opacity:.5}body #map .map-stop.preview,body #map .map-stop.current{background:var(--accent)!important;color:#151515!important}body #map .map-stop.home-pin{display:grid;place-items:center;background:var(--accent)!important;box-shadow:0 0 12px 3px color-mix(in srgb,var(--accent),transparent 65%)!important;border-color:var(--accent-focus)!important}
body .city-tile{background:transparent;border:0;border-bottom:1px solid var(--line);padding:14px 0;margin:0}.city-tile h3{font:21px/1.3 Georgia,serif;padding-right:28px;margin:0 0 8px}.city-title{font:inherit!important;border:0!important;padding:0!important;background:none!important;text-align:left;color:var(--ink)!important}.town-row{font-size:12px;gap:8px;padding:7px 0;border-top:0}.town-people button{color:var(--muted)!important;background:none!important;border:0!important;min-height:32px;padding:4px 0;font-size:12px}.town-people button[aria-pressed=true]{color:var(--accent-link)!important}.stop-grip{font-size:14px!important;width:28px!important;min-height:44px!important;background:none!important;border:0!important;right:-4px!important;top:8px!important}.category-key{gap:12px;font-size:11px!important;color:var(--muted)}body .category-swatch{background:transparent!important;border:1px solid var(--muted)!important;border-radius:0!important;width:9px;height:9px;box-shadow:none!important}body .category-swatch.supporting{transform:rotate(45deg);width:7px;height:7px}body .category-swatch.friends-family{border-radius:50%!important}body .category-swatch.sightseeing{border-width:0 0 1px 1px!important;transform:rotate(-45deg)}
#destination{display:block!important;margin:20px 0}#destination[hidden]{display:none!important}.destination-heading{margin:0 0 14px}.destination-heading h2{font-size:23px}.destination-heading p{font-size:13px}.destination-actions{gap:8px}.stop-tools{margin:0 0 20px;display:flex;flex-wrap:wrap}.stop-tools #move-up,.stop-tools #move-down{display:none}.stop-tools .hint{flex-basis:100%}.stop-person,.linked-stop-people button{background:#191919!important;border-color:var(--line)!important;color:var(--ink)!important}.stop-interview-timing{background:var(--accent-surface)!important;color:var(--accent-text)!important;border-color:var(--accent-border)!important}
#fieldbook-preparation details{padding:16px 0;border-top:1px solid var(--line)}#fieldbook-preparation summary{font-size:16px;font-weight:600;cursor:pointer;min-height:44px}#fieldbook-preparation details>section,#fieldbook-preparation details>form{padding-top:16px}#fieldbook-today p{font-size:18px;max-width:65ch}#fieldbook-today a,#fieldbook-today button:not(.block-toggle):not(.block-grip){display:inline-block;margin:12px 12px 0 0}#preparation-status{color:var(--accent-text)}#interview-panel form{margin:24px 0}#interview-panel h3{font-size:22px}#interview-panel p{max-width:70ch}#interview-panel #upload-panel{border-top:0;padding-top:0}#upload::file-selector-button{background:var(--accent-surface);color:var(--accent-text);border-color:var(--accent-border)}#availability-form button[aria-pressed=true]{background:var(--accent-surface)!important;color:var(--accent-text)!important}.ncaa-choice{font-size:14px}.release-picker{border-top:1px solid var(--line);padding-top:24px}
body[data-experience] #briefing-panel{display:block!important}body[data-experience] #briefing-panel[hidden]{display:none!important}body[data-experience=owner] #trip-weather{display:block}body[data-experience=interview] #trip-weather{display:none!important}body[data-experience] #public-note-panel{display:block!important}body[data-experience] #public-note-panel[hidden]{display:none!important}.dashboard-nav,.section-nav,.mobile-road-nav{display:none!important}#visitor-navigation{padding-left:30px}#spectate-invite{padding:16px 0}#fieldbook-blocks>#stop-people-panel{order:initial!important}.main-footer{margin-top:30px;color:var(--muted);font-size:12px}.login-panel{background:#202020!important;color:var(--ink)!important;border-color:var(--line)!important}.toast{background:#202020!important;color:var(--ink)!important;border:1px solid var(--accent-border)}
.fieldbook-mobile,#close-stops,.sidebar-backdrop{display:none}
@media(max-width:1000px){body .app,body[data-experience=interview] .app{grid-template-columns:245px minmax(0,1fr)}body .intro{display:block!important}.journey-distances{margin-top:16px}.editor-grid,.trip-weather-grid,.area-grid{grid-template-columns:1fr!important}}
@media(max-width:720px){body .app,body[data-experience=interview] .app{display:block}body main,body[data-experience=interview] main{padding:22px 16px 90px}.topbar{padding:10px 16px!important}.topbar .brand-map img{width:70px;height:40px}#owner-bar{padding:12px 16px}#owner-bar>span{display:none}body .sidebar,body[data-experience=interview] .sidebar{display:none!important;position:fixed;inset:0 auto 0 0;width:min(88vw,360px);height:100dvh;max-height:100dvh;z-index:2001;padding:18px 20px;box-shadow:12px 0 30px #00000080}body.stops-open .sidebar{display:block!important}body.stops-open{overflow:hidden}.sidebar-backdrop{position:fixed;inset:0;background:#000000b3!important;border:0;z-index:2000}.stops-open .sidebar-backdrop{display:block}#close-stops{display:block;width:100%;margin-bottom:20px}.fieldbook-mobile{display:flex;position:fixed;inset:auto 0 0;z-index:1500;background:#171717;border-top:1px solid var(--line);padding:8px 8px max(8px,env(safe-area-inset-bottom));gap:4px;justify-content:space-around}.fieldbook-mobile a,.fieldbook-mobile button{font-size:12px;min-height:44px;padding:10px 8px;display:flex;align-items:center;border:0;background:none!important;text-decoration:none;color:var(--ink)}.collapsible-block{padding:18px!important}.block-toggle>span:first-child{font-size:21px}.fieldbook-toolbar{flex-wrap:wrap}.fieldbook-toolbar button{font-size:12px}.fieldbook-toolbar #reset-layout{margin-left:auto}.journey-distances{gap:18px}.mileage strong{font-size:25px}#visitor-navigation{padding:12px 16px}.destination-heading{display:block}.destination-actions{margin-top:12px}#map{height:380px!important}.map-key .category-key{flex-wrap:wrap}#availability-form{max-width:100%;overflow-x:auto}.login-panel{padding:20px 16px}.toast{bottom:75px!important}.main-footer{display:block}.main-footer>span{display:block;margin:8px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*{transition:none!important}}

[hidden]{display:none!important}

.trip-management>summary{display:list-item}.trip-management:not([open])>:not(summary){display:none!important}


body[data-experience=interview] .journey-distances{display:flex!important}.sightseeing-key,.sights-key{color:var(--muted)!important}

body[data-view=owner] #stop-people-panel>.block-grip{display:none!important}body[data-experience=interview] #stop-people-panel{display:none!important}

.sightseeing-key i{background:transparent!important;border:1px solid var(--muted)!important;box-shadow:none!important}.map-stop.honoree::after,.map-stop.supporting::after,.map-stop.friends-family::after{content:"";position:absolute;right:-4px;bottom:-3px;width:7px;height:7px;background:var(--ink);border:1px solid #202020}.map-stop.supporting::after{transform:rotate(45deg)}.map-stop.friends-family::after{border-radius:50%}.map-stop{position:relative}

*{scrollbar-color:#777 #151515}.header-actions,#mode-label,.sidebar-footer strong{color:var(--muted)!important}.mileage{border-color:var(--line)!important}


/* Neutral luminance layers: canvas, rail, panels, controls. */
:root,body,body[data-view]{--ink:#f5f5f5;--muted:#bdbdbd;--line:#515151;--panel:#292929;--rail:#1d1d1d;--white:#292929;--paper:#292929;--night:#0c0c0c;--accent-surface:#303030}
body,body main,body[data-experience=interview] main{background:#0c0c0c}body .topbar{background:#111111}body .owner-bar,body #visitor-navigation{background:#242424}body .sidebar,body[data-experience=interview] .sidebar{background:#1d1d1d!important}
#fieldbook-blocks>.collapsible-block,body[data-view] :is(#owner-editor,.interview-panel,.question-generator,.data-card,.timeline-panel,.add-panel),body .tab-panel{background:#292929!important;border-color:#515151}#fieldbook-blocks>.block-collapsed{background:#1b1b1b!important;border-color:#393939}.collapsible-block>.block-toggle{color:#fff!important;border-bottom-color:#5a5a5a!important}.block-toggle .block-action{color:#c4c4c4}
body button,body .button,body[data-view] :is(button,.button){background:#3b3b3b}body button:hover,body .button:hover{background:#4b4b4b!important}body :is(input,select,textarea){background:#141414!important;border-color:#686868}body .map-key{background:#222!important}.mileage strong{color:#f5f5f5}.city-tile:focus-within{background:#292929}.fieldbook-mobile{background:#1d1d1d}

/* Role accents: consistent landmarks on neutral surfaces. */
body #main-title,body .mileage strong{color:var(--accent-link)}
body .collapsible-block>.block-toggle{color:var(--accent-link)!important;border-bottom-color:var(--accent-border)!important}
body .collapsible-block>.block-toggle .block-action{color:var(--accent-text)}
body .primary,body[data-view] .primary{background:var(--accent)!important;color:#101010!important;border-color:var(--accent)!important;font-weight:600}
body .primary:hover,body[data-view] .primary:hover{background:var(--accent-link)!important;color:#101010!important}
body #producer-layout button[aria-pressed=true],body #visitor-navigation button[aria-pressed=true]{background:var(--accent)!important;color:#101010!important;border-color:var(--accent)!important}
body .city-tile:has(.town-people button[aria-pressed=true]){border-color:var(--accent-border);background:#303030}
body .city-tile:has(.town-people button[aria-pressed=true]) .city-title{color:var(--accent-link)!important}
body .category-key,body .fieldbook-mobile a,body .fieldbook-mobile button{color:var(--accent-link)}
body .fieldbook-mobile{border-top-color:var(--accent-border)}
body input[type=checkbox],body input[type=radio],body progress{accent-color:var(--accent)}
body #fieldbook-preparation summary,body .trip-management summary{color:var(--accent-link)}

/* Lighter, cool graphite surfaces; geographic map keeps its original colors. */
:root,body,body[data-view]{--ink:#f4f6fa;--muted:#c4cbd4;--line:#687380;--panel:#3b434d;--rail:#303740;--white:#3b434d;--paper:#3b434d;--night:#202630;--accent-surface:#424b57}
body,body main,body[data-experience=interview] main{background:#202630}
body .topbar{background:#272e38}body .owner-bar,body #visitor-navigation{background:#39424e}
body .sidebar,body[data-experience=interview] .sidebar{background:#303740!important}
#fieldbook-blocks>.collapsible-block,body[data-view] :is(#owner-editor,.interview-panel,.question-generator,.data-card,.timeline-panel,.add-panel),body .tab-panel{background:#3b434d!important;border-color:#697582}
#fieldbook-blocks>.block-collapsed{background:#303844!important;border-color:#596573}
body button,body .button,body[data-view] :is(button,.button){background:#53606d}
body button:hover,body .button:hover{background:#657382!important}
body :is(input,select,textarea){background:#29313b!important;border-color:#83909e}
body input::placeholder,body textarea::placeholder{color:#c0c8d2}
body .map-key{background:#343d48!important}
body .city-tile:has(.town-people button[aria-pressed=true]){background:#46515f}
body .stop-person,body .linked-stop-people button{background:#303844!important}
body .login-panel,body .toast,.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#3b434d!important}
body .fieldbook-mobile{background:#303740}*{scrollbar-color:#94a0ad #29313b}
.leaflet-tile-pane{filter:none}

/* Destination categories are independent of dashboard mode. */
.honoree{--stop-color:#ebc45f}.supporting{--stop-color:#c5cbd3}.friends-family{--stop-color:#d9aa80}.sightseeing{--stop-color:#f4f6fa}
body .city-tile{border-bottom-color:var(--stop-color,var(--line))}
body .city-tile .city-title,body .city-tile:has(.town-people button[aria-pressed=true]) .city-title{color:var(--stop-color,var(--ink))!important}
body .category-swatch{background:var(--stop-color)!important;border-color:var(--stop-color)!important}
body #map .map-stop.honoree,body #map .map-stop.supporting,body #map .map-stop.friends-family,body #map .map-stop.sightseeing{background:var(--stop-color)!important;color:#151515!important;border-color:var(--stop-color)!important}
body #map .map-stop.home-pin,body #map .map-stop.home-pin.preview,body #map .map-stop.home-pin.visited{background:#ebc45f!important;color:#201900!important;border-color:#ffe39a!important;box-shadow:0 0 12px 4px #ebc45f88,0 0 26px 8px #ebc45f33!important;outline-color:#ffe39a!important;opacity:1}
.home-symbol{color:#ebc45f!important;font-size:24px}.home-label{font-size:12px;color:var(--muted);margin:4px 0 10px}

body .city-tile:has(.town-people button[aria-pressed=true]){border-bottom-color:var(--stop-color,var(--accent-border))}

/* Journey Weather is temporarily unavailable in every mode. */
html body #trip-weather,html body[data-experience] #trip-weather{display:none!important}

#journey-weather[hidden]{display:none!important}.jw-grid,.jw-via-row,.jw-comparisons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.jw-grid label,.jw-via-row label{display:flex;flex-direction:column;gap:6px}.jw-grid select,.jw-grid input{width:100%;min-width:0}.jw-controls details{margin:20px 0}.jw-controls summary{cursor:pointer;color:var(--accent-link)}.jw-controls button{margin:10px 8px 10px 0}.jw-via-row{grid-template-columns:2fr 1fr auto;margin:12px 0}.jw-timeline{display:flex;gap:12px;overflow-x:auto;padding:12px 0;scroll-snap-type:x proximity}.jw-hour{flex:0 0 235px;scroll-snap-align:start;padding:16px;background:#303844;border:1px solid var(--line)}.jw-hour h4{margin:8px 0;font-size:18px}.jw-hour p{font-size:13px;margin:6px 0}.jw-hour svg{display:block;color:var(--accent-link);margin:10px 0}.jw-concerns{font-weight:700;color:var(--accent-text)}.jw-comparisons{grid-template-columns:repeat(3,minmax(0,1fr))}.jw-comparisons article{padding:14px;border:1px solid var(--line)}#jw-map{height:300px;margin:16px 0}.jw-sharing{border-top:1px solid var(--line);margin-top:16px}#jw-share-preview:not(:empty){border-top:1px solid var(--accent-border);margin-top:24px;padding-top:16px}@media(max-width:720px){.jw-grid,.jw-comparisons,.jw-via-row{grid-template-columns:1fr}.jw-hour{flex-basis:220px}#jw-map{height:260px}}

/* My Interview starts with preparation and does not need the itinerary drawer. */
body[data-experience=interview] .app{grid-template-columns:minmax(0,1fr)}
body[data-experience=interview] .sidebar,body[data-experience=interview] #open-stops,body[data-experience=interview] .sidebar-backdrop{display:none!important}

/* Interview preparation stays focused; trip context lives on Follow the Trip. */
html body[data-experience=interview] #journey-map-panel,html body[data-experience=interview] #briefing-panel,body[data-experience=interview] .fieldbook-mobile a[href="#journey-map-panel"],body[data-experience=interview] .fieldbook-mobile a[href="#briefing-panel"]{display:none!important}
/* Desktop stop list toggle; mobile retains its existing drawer. */
@media(min-width:721px){body.sidebar-collapsed .app{grid-template-columns:minmax(0,1fr)}body.sidebar-collapsed .sidebar{display:none!important}}
body[data-experience=interview] #toggle-sidebar{display:none}
@media(max-width:720px){#toggle-sidebar{display:none}}

#name-access-panel article{padding:12px 0;border-bottom:1px solid var(--border,#89929a)}
#name-access-panel button{margin:4px 8px 4px 0}#name-access-panel details{margin:16px 0}#name-access-panel label{display:grid;gap:6px;margin:12px 0}#name-access-panel input,#name-access-panel select{width:100%;max-width:480px;box-sizing:border-box}#name-access-panel p{overflow-wrap:anywhere}#name-access-panel .access-count{color:var(--accent-link)}

/* First visit: signup is visible above the public journey, not a modal. */
#login-panel{padding:32px clamp(18px,4vw,64px);gap:24px 48px;align-items:start;scroll-margin-top:12px}
#login-panel .signup-welcome{max-width:54ch}#login-panel .signup-welcome h2{font:clamp(28px,3.3vw,44px)/1.12 Georgia,serif;margin:0 0 18px;color:var(--accent-link)}
#login-panel .signup-welcome p{font-size:15px;line-height:1.65;margin:0 0 18px}#login-panel .signup-returning{font-size:14px}
#login-panel #login-form{width:100%;max-width:560px;min-width:0}#login-panel #send-code{width:100%;min-height:48px}#login-panel #browse-public{background:transparent!important;text-decoration:underline;text-underline-offset:4px}
#login-panel #login-status:empty{display:none}#login-panel .signup-role input[type=radio]{width:auto;min-height:0;display:inline-block;margin:0 8px 0 0}
@media(max-width:900px){#login-panel{gap:20px}#login-panel .signup-welcome p{margin-bottom:12px}#login-panel .signup-welcome h2{margin-bottom:12px}#login-panel #login-form{max-width:none}}

/* Authentication gate: no itinerary or dashboard flashes before session verification. */
body[data-auth="signed-out"] > :not(#login-panel):not(.topbar):not(.join-page-credit):not(script):not(noscript){display:none!important}
body[data-auth="signed-out"] #login-panel{display:grid;max-width:960px;margin:clamp(16px,5vw,70px) auto;padding:24px}
body[data-auth="signed-out"] #login-panel[hidden]{display:none}
body[data-experience="interview"] .journey-distances,body[data-experience="interview"] #trip-weather,body[data-experience="interview"] #destination-dates,body[data-experience="interview"] #stop-status,body[data-experience="interview"] #directions{display:none!important}
.signup-welcome fieldset{margin:0 0 24px;padding:16px}.signup-welcome legend{font-size:1.15rem;line-height:1.5}.signup-welcome label{display:inline-flex;gap:8px;margin:12px 24px 0 0}

body[data-experience="interview"] #public-note-panel,body[data-experience="interview"] #journey-weather{display:none!important}

#signup-honoree-label select{display:block;width:100%;margin:8px 0 20px}#signup-honoree-label{display:block}#signup-honoree-label[hidden]{display:none}

#skooter-contact{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 12px;padding:10px 16px;background:#303740;border-bottom:1px solid #626c78;color:#f1f3f5;font-size:14px;line-height:1.6}
#skooter-contact[hidden]{display:none}#skooter-contact a{color:var(--accent-link,#efdfbc);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}#skooter-contact a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:540px){#skooter-contact strong{flex-basis:100%;text-align:center}#skooter-contact{gap:4px 10px}}

body[data-auth="signed-out"] .topbar .header-actions{display:none}
#login-panel .join-credit{grid-column:1/-1;text-align:center;font-size:11px;line-height:1.5;color:#c5ccd4;margin-top:14px;letter-spacing:.03em}

#login-panel:has(#login-form[hidden]):has(#code-form[hidden]){grid-template-columns:1fr;max-width:760px}#login-panel:has(#login-form[hidden]):has(#code-form[hidden]) .signup-welcome{max-width:65ch}

.join-page-credit{display:none}
body[data-auth="signed-out"]{min-height:100dvh;display:flex;flex-direction:column}
body[data-auth="signed-out"] .topbar{flex-shrink:0}
body[data-auth="signed-out"] #login-panel{width:calc(100% - 32px);box-sizing:border-box;flex-shrink:0}
body[data-auth="signed-out"] .join-page-credit{display:block;order:100;margin-top:auto;padding:20px 16px;text-align:center;font-size:11px;line-height:1.5;color:#c5ccd4;letter-spacing:.03em}

/* Interview welcome and real address hints. */
.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}.header-title{font-family:var(--font-display,Georgia,serif);font-size:clamp(22px,3vw,38px);text-align:center;white-space:nowrap}.topbar .header-actions{justify-self:end}.intro #main-title{display:none}body[data-view="interviewee"] #main-subtitle,body[data-experience="interview"] #main-subtitle{font-size:clamp(22px,3vw,34px);line-height:1.25;max-width:34ch;color:var(--text);font-family:var(--font-display,Georgia,serif)}
#meeting-location-form input::placeholder{color:currentColor;opacity:.5}#meeting-location-form input:focus::placeholder{opacity:0}
@media(max-width:600px){.topbar{grid-template-columns:70px minmax(0,1fr) auto;gap:8px;padding:12px}.topbar .brand-map img{width:68px;height:auto}.header-title{font-size:23px;white-space:normal}.header-actions{max-width:110px}.header-actions #mode-label{overflow-wrap:anywhere}}

#honoree-connection>label{display:block;margin-bottom:16px}#honoree-connection select{display:block;width:100%;max-width:420px;margin-top:8px}
@media(max-width:600px){.topbar{grid-template-columns:80px minmax(0,1fr) 80px}.topbar .brand-map{width:70px;min-width:0;justify-content:flex-start}.topbar .header-actions{max-width:80px}.header-title{font-size:22px}}

body[data-view="interviewee"] .block-grip,body[data-view="interviewee"] #reset-layout{display:none!important}
body[data-view="interviewee"] .block-toggle{padding-left:0}

#additional-honorees{margin-top:24px;padding:0;border:0}#additional-honorees .honoree-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:16px 0}#additional-honorees label{display:flex;align-items:center;gap:10px;min-height:44px}#additional-honorees input{width:auto}

#additional-honorees>summary{cursor:pointer;font-weight:600;padding:8px 0}#additional-honorees:not([open])>*:not(summary){display:none}

/* Readability preference: text reflows instead of scaling the page. */
body.large-text{font-size:40px;line-height:1.6}body.large-text :is(p,label,legend,summary,small,.hint,.town-row,.preserve-lines,.main-footer,.map-key,#skooter-contact){font-size:40px!important;line-height:1.6!important}body.large-text :is(input,select,textarea,button,.button){font-size:40px!important;line-height:1.45!important}body.large-text :is(button,.button,select,input:not([type=checkbox]):not([type=radio])){height:auto;min-height:48px}body.large-text :is(button,.button,label,summary){white-space:normal;overflow-wrap:anywhere}body.large-text :is(h2,h3,.block-toggle>span:first-child){font-size:56px!important;line-height:1.3!important}body.large-text #visitor-navigation{flex-wrap:wrap;gap:12px}body.large-text #visitor-navigation button{flex:0 1 auto}body.large-text :is(.header-actions,#skooter-contact){flex-wrap:wrap}body.large-text .topbar{height:auto;min-height:100px}body.large-text input::placeholder{font-size:inherit}body.large-text :is(.editor-grid,.resource-grid,.nearby-grid){grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}body.large-text :is(input,select,textarea){max-width:100%;min-width:0;box-sizing:border-box}body.large-text textarea{min-height:150px}body.large-text #additional-honorees .honoree-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}body.large-text .town-row{grid-template-columns:1fr}body.large-text .town-people{text-align:left}
@media(max-width:600px){body.large-text .topbar{grid-template-columns:70px minmax(0,1fr)}body.large-text .header-actions{grid-column:1/-1;max-width:none;justify-self:stretch;justify-content:flex-end}body.large-text .header-title{font-size:56px}body.large-text #visitor-navigation button{flex:1 1 140px}body.large-text main{padding-left:16px;padding-right:16px}}
body.large-text #main-subtitle{font-size:72px!important;line-height:1.3!important}body.large-text .availability-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}body.large-text .availability-calendar button{min-width:0;padding:8px 0;font-size:40px!important}body.large-text .availability-calendars{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr))}@media(max-width:600px){body.large-text #main-subtitle{font-size:56px!important}body.large-text .block-toggle{gap:12px;flex-wrap:wrap}body.large-text .availability-calendar .weekday{font-size:32px}}

body.large-text .availability-calendar{min-width:430px}body.large-text .availability-calendars>section{overflow-x:auto;max-width:100%}body.large-text :is(.block-toggle,#visitor-navigation,.header-actions){flex-wrap:wrap}body.large-text .availability-calendar button{min-height:64px}body.large-text #additional-honorees .honoree-options{grid-template-columns:1fr}body.large-text #skooter-contact{overflow-wrap:anywhere}body.large-text #visitor-navigation button{flex:1 1 260px}

body[data-view="interviewee"] #briefing-panel,body[data-view="public"] #briefing-panel,body[data-view="interviewee"] a[href="#briefing-panel"],body[data-view="public"] a[href="#briefing-panel"]{display:none!important}
