:root{--ink:#183c3a;--muted:#62716b;--paper:#f6f5ee;--line:#d9ddd2;--orange:#c76434;--cream:#ecebdc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button,.button{border:0;background:var(--ink);color:#fff;padding:12px 18px;border-radius:5px;text-decoration:none;cursor:pointer;font-weight:650;display:inline-flex;gap:25px;align-items:center;justify-content:center}button:disabled{opacity:.45;cursor:default}button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;top:-100px}.skip:focus{top:5px;background:white;padding:10px;z-index:20}.top{padding:22px 5%;display:flex;gap:24px;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:13px;font-weight:800;letter-spacing:2px}.mark{font-size:23px;margin-right:10px}.private{margin-left:auto;font-size:10px;letter-spacing:1.5px;color:var(--muted)}#logout{font-size:12px}main{max-width:1440px;margin:auto}.hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:535px;padding:60px 5%;gap:50px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:750;color:var(--orange);margin:0 0 20px}h1{font:clamp(48px,6vw,86px)/1.04 Georgia,serif;letter-spacing:-3px;margin:15px 0 25px;font-weight:400}h1 em{font-weight:400;color:#5f7770}.intro{max-width:510px;color:var(--muted);font-size:17px}.hero-links{display:flex;align-items:center;gap:25px;margin-top:30px}.hero-links>a:last-child{font-size:13px}.landscape{height:410px;position:relative;overflow:hidden;background:#dce5d9;border-radius:160px 160px 8px 8px}.sun{width:100px;height:100px;border-radius:50%;background:#dba365;position:absolute;top:55px;right:70px}.mountain{position:absolute;width:110%;height:95%;clip-path:polygon(0 100%,0 65%,28% 12%,42% 44%,60% 0,100% 70%,100% 100%);bottom:-10%;background:#9eafa1;left:-5%}.m2{background:#698579;bottom:-28%;left:10%;transform:scaleX(-1)}.m3{background:#30554f;bottom:-50%;left:-15%}.trail{position:absolute;background:#c8c5a5;width:18px;height:190px;bottom:-90px;left:51%;transform:rotate(20deg);border-radius:50%}.land-label{position:absolute;bottom:24px;left:25px;color:#e2e9dc;font-size:9px;letter-spacing:2px;line-height:1.8}.metrics{display:grid;grid-template-columns:repeat(4,1fr);margin:0 5%;padding:28px 0;border-block:1px solid var(--line)}.metrics>div{padding:0 28px;border-right:1px solid var(--line)}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border:0}.metrics strong{font:34px Georgia,serif;display:block}.metrics span{font-size:11px;color:var(--muted)}.tabs{display:flex;gap:35px;padding:24px 5%;border-bottom:1px solid var(--line);font-size:12px;font-weight:650;flex-wrap:wrap}.tabs a{text-decoration:none}.planning{margin:34px 5% 20px;display:grid;grid-template-columns:1fr 300px;gap:50px;align-items:start}.planning p{font-size:13px;color:var(--muted);max-width:700px}.planning strong{color:var(--ink)}label{font-size:12px;font-weight:650}input,select,textarea{display:block;border:1px solid #bdc8bd;border-radius:4px;background:#fff;color:var(--ink);padding:10px;width:100%;margin-top:6px}small{font-size:11px;font-weight:400;color:var(--muted);display:block;margin-top:5px}.save-bar{position:sticky;top:0;z-index:5;background:#e5eadf;border-block:1px solid #ccd7c7;padding:10px 5%;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:12px}.save-bar>div{display:flex;gap:10px}.save-bar button{padding:8px 13px;font-size:12px}.save-bar.error{background:#fae5d5}.section{padding:65px 5%;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px}h2{font:clamp(32px,4vw,48px)/1.12 Georgia,serif;letter-spacing:-1px;margin:0 0 15px;font-weight:400}.section p{font-size:14px;color:var(--muted)}.filter-label{min-width:160px}.day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.day{border:1px solid var(--line);border-radius:7px;background:#fffdf8;align-self:start;overflow:hidden}.day summary{list-style:none;cursor:pointer;padding:21px;display:grid;grid-template-columns:43px 1fr auto;gap:15px;align-items:center}.day summary::-webkit-details-marker{display:none}.day-number{font:26px Georgia,serif;color:#9a9e86}.day-title{font-size:17px;font-weight:650;line-height:1.3}.day-meta{display:block;font-size:10px;letter-spacing:.3px;font-weight:400;color:var(--muted);margin-top:7px}.day-distance{font-size:12px;white-space:nowrap;color:var(--muted)}.day-distance:after{content:' +';font-size:17px;padding-left:6px;color:var(--orange)}.day[open] .day-distance:after{content:' −'}.day-body{padding:0 21px 22px 79px}.day-body p{font-size:13px;margin:0 0 15px}.day-body dl{margin:0;font-size:12px}.day-body dt{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-top:13px}.day-body dd{margin:3px 0 12px}.day-body label{display:block;margin-top:14px}.day-body textarea{min-height:85px;resize:vertical}.day.rest{border-left:3px solid #6a8f78}.day.long{border-left:3px solid var(--orange)}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.check-group{padding:25px;border:1px solid var(--line);border-radius:6px;background:#eeefe6;align-self:start}.check-group h3{font:24px Georgia,serif;margin:0 0 20px}.check-item{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:13px;font-weight:400;cursor:pointer}.check-item input{width:18px;height:18px;flex:none;accent-color:var(--ink);margin:3px 0 0}.check-item:has(input:checked) span{text-decoration:line-through;color:#7b877e}.pill{padding:8px 15px;background:#e4eadc;border-radius:30px;font-size:12px;white-space:nowrap}.budget-section{display:grid;grid-template-columns:1fr 1fr;gap:75px;background:#e9ecdf;margin-top:20px}.budget-inputs{display:grid;grid-template-columns:1fr 1fr;gap:17px}.note{border-left:3px solid #ae8957;padding:12px 17px;background:#f0eadb;font-size:12px!important}.total{border-top:1px solid #c4cfbb;margin-top:25px;padding-top:22px}.total span{font-size:12px}.total strong{font:48px Georgia,serif;display:block}.source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:30px}.source-grid a{border-bottom:1px solid var(--line);padding:13px 5px;text-decoration:none;font-size:12px;display:flex;justify-content:space-between;gap:15px}.source-grid a:after{content:'↗';color:var(--orange)}footer{margin:10px 5% 0;padding:30px 0 50px;border-top:1px solid var(--line);display:flex;align-items:center;gap:25px;font-size:10px;letter-spacing:1px}footer p{letter-spacing:0;color:var(--muted);margin-right:auto}footer button{font-size:11px}.gate{padding:90px 7%;min-height:70vh}.gate p:not(.eyebrow){max-width:500px;color:var(--muted)}.gate .button{margin-top:20px}#route-notes{margin-bottom:20px;white-space:pre-line}@media(max-width:750px){.top{padding:16px 5%;gap:12px}.brand{font-size:10px;letter-spacing:1px}.private{display:none}#logout{margin-left:auto}.hero{grid-template-columns:1fr;padding-top:40px;gap:25px}.hero h1{font-size:59px}.landscape{height:230px;border-radius:90px 90px 7px 7px}.sun{top:25px;width:65px;height:65px}.metrics{grid-template-columns:1fr 1fr;gap:22px}.metrics>div{padding:0}.metrics>div:nth-child(2){border:0}.metrics strong{font-size:30px}.tabs{gap:17px;font-size:11px}.planning{grid-template-columns:1fr;gap:15px}.planning label{max-width:320px}.section{padding-top:45px;padding-bottom:40px}.section-heading{align-items:start;flex-direction:column;gap:10px}.day-grid,.check-grid,.budget-section{grid-template-columns:1fr}.budget-section{gap:25px}.source-grid{grid-template-columns:1fr 1fr}.day summary{padding:18px;gap:10px;grid-template-columns:34px 1fr auto}.day-body{padding:0 18px 20px 62px}.day-title{font-size:15px}.day-distance{font-size:10px}.save-bar{font-size:11px}.save-bar>div{flex-wrap:wrap;justify-content:end}.save-bar button{white-space:nowrap}.save-bar>span{max-width:55%}footer{flex-wrap:wrap}footer p{width:100%;order:3}.hero-links{gap:20px}.intro{font-size:15px}}@media print{.top,.tabs,.save-bar,.hero-links,#logout,.filter-label,#print{display:none!important}.hero{min-height:0;padding-top:15px}.landscape{height:150px}.section{padding:20px 0}.day-grid,.check-grid{display:block}.day,.check-group{break-inside:avoid;margin-bottom:12px}.day-body{display:block!important}.source-grid{grid-template-columns:repeat(2,1fr)}.budget-section{background:white}.planning{margin:20px 0}.metrics{margin:0}.hero h1{font-size:45px}input,textarea,select{border:0}body{font-size:11px}.day{content-visibility:visible}}

.route-picker{background:#e7ecdf;padding:20px;border-radius:6px;margin-bottom:25px}.route-picker label{display:block;max-width:450px}.route-picker p{margin-bottom:5px}.route-picker small{max-width:780px}#guidance{margin-top:25px}

.trip-switcher{max-width:1320px;margin:24px auto;padding:0 32px}.trip-switcher label{display:block;max-width:600px}.trip-switcher select{width:100%;margin-top:8px}body[data-palette="warm"]{--ink:#35271f;--green:#654731;--mint:#e7d7bb}body[data-palette="warm"] .hero em{color:#895c35}@media(max-width:600px){.trip-switcher{padding:0 20px}}
/* Long authenticated titles and multi-day stage labels remain bounded. */
.brand,.hero>div,.day-title,.source-grid a{min-width:0;overflow-wrap:anywhere}#logout{flex-shrink:0;white-space:nowrap}.day summary{grid-template-columns:43px minmax(0,1fr) auto}.gate:has(+.trip-switcher:not([hidden])){min-height:0;padding-bottom:20px}@media(max-width:750px){.day summary{grid-template-columns:34px minmax(0,1fr) auto}}@media print{.trip-switcher{display:none!important}}

/* Geographic content is rendered only after authenticated loading. */
.map-panel{margin:25px 0 30px;background:#fdfcf7;border:1px solid var(--line);border-radius:8px;padding:24px;min-width:0}.map-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.map-heading h3{font:32px/1.15 Georgia,serif;margin:0}.map-heading .eyebrow{margin-bottom:10px}.map-heading label{min-width:220px}.map-warning{border-left:3px solid var(--orange);padding-left:12px}.map-legend{list-style:none;display:flex;flex-wrap:wrap;gap:9px 24px;margin:16px 0;padding:0;font-size:12px}.map-legend li{display:flex;align-items:center;gap:9px}.legend-land,.legend-sea{width:30px;border-top:3px solid #b65026}.legend-sea{border-top-color:#225d90;border-top-style:dashed}.legend-start{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #183c3a;border-radius:50%;font-size:11px}.map-canvas{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;background:#eff4f0;border:1px solid #d1ddd5;border-radius:5px}.route-map-svg{display:block;width:100%;min-width:650px;height:auto}.map-water{fill:#e7f0f3}.map-land{fill:#dce4d4;stroke:#becdbd;stroke-width:1.2}.map-grid{fill:none;stroke:#a8bbb9;stroke-width:.6;opacity:.6}.map-coordinate{fill:#5b6d6d;font:12px system-ui,sans-serif}.map-region{fill:#5e746b;font:11px system-ui,sans-serif;letter-spacing:1px}.map-leg{fill:none;stroke:#b65026;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.map-leg-sea,.map-leg-ferry{stroke:#225d90;stroke-width:3.6;stroke-dasharray:8 6}.map-leader{stroke:#445c4f;stroke-width:1;fill:none}.map-location{fill:#183c3a}.map-pin{fill:#173c3b;stroke:#fffdf7;stroke-width:2}.map-marker text,.map-start text{fill:#fffdf7;font:700 13px system-ui,sans-serif;pointer-events:none}.map-marker:focus .map-pin,.map-marker:hover .map-pin{fill:#b65026;stroke:#1b2830;stroke-width:3}.map-marker:focus{outline:none}.map-start circle{fill:#fffdf7;stroke:#173c3b;stroke-width:2}.map-start text{fill:#173c3b}.map-ferry circle{fill:#225d90;stroke:#fff;stroke-width:1.5}.map-ferry text{fill:white;font:700 10px system-ui,sans-serif}.map-scroll-help,#map-status{font-size:12px!important}.map-list{border-block:1px solid var(--line);margin:18px 0;padding:12px 0}.map-list summary{cursor:pointer;font-size:14px;font-weight:650}.map-list ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}.map-list li{display:flex;align-items:start;gap:12px;min-width:0;font-size:13px}.map-list a{overflow-wrap:anywhere;text-underline-offset:3px}.stop-index{display:inline-flex;justify-content:center;align-items:center;flex:none;width:29px;height:29px;border-radius:50%;background:#173c3b;color:#fff;font-size:12px;font-weight:700}.map-list small{font-size:11px}.map-list .transfer-note{color:#225d90;font-weight:600}.day{scroll-margin-top:90px}@media(max-width:750px){.map-panel{padding:16px}.map-heading{flex-direction:column;align-items:stretch;gap:15px}.map-heading h3{font-size:27px}.map-heading label{min-width:0}.map-list ol{grid-template-columns:1fr}.map-legend{flex-direction:column;gap:8px}}@media print{.map-canvas{overflow:visible}.route-map-svg{min-width:0;width:100%;max-height:650px}.map-list{display:block}.map-list>ol{display:grid!important}.map-scroll-help{display:none}.map-panel{break-inside:avoid}}

.route-map-svg.map-portrait{max-width:700px;min-width:420px;margin:auto}@media(max-width:750px){.map-list a{display:inline-block;min-height:44px;padding-top:5px}}@media print{.route-map-svg.map-portrait{min-width:0}}

/* Offline geographic detail; all geometry is supplied only after authentication. */
.map-water{fill:#dfedf0}.map-country{fill:#e7ead8;stroke:#9daa96;stroke-width:1;stroke-linejoin:round}.map-state{fill:none;stroke:#b8c1ad;stroke-width:.65;stroke-linejoin:round}.map-lake{fill:#dfedf0;stroke:#adc4c6;stroke-width:.65}.map-grid{stroke:#b3c7c5;opacity:.5;stroke-width:.5}.map-label-country{fill:#687461;font:600 10px system-ui,sans-serif;letter-spacing:1.4px;stroke:none}.map-label-state{fill:#778471;font:10px system-ui,sans-serif;letter-spacing:.6px}.map-label-water{fill:#779ba6;font:italic 11px Georgia,serif;letter-spacing:1.6px}.map-leg{stroke:#b95429;stroke-width:2.7}.map-leg-connection{stroke-dasharray:2 4;stroke-width:2.3;opacity:.9}.map-leg-sea,.map-leg-ferry{stroke:#235f8b;stroke-width:3.5;stroke-dasharray:8 6}.map-scale rect{fill:#fffdf6;opacity:.9}.map-scale path,.map-north path{fill:none;stroke:#4b625a;stroke-width:1.3}.map-scale text{font:10px system-ui,sans-serif;fill:#425c53}.map-north text{font:700 11px system-ui,sans-serif;fill:#425c53}.legend-connection{width:32px;border-top:3px dotted #b95429}.schedule-summary{margin:0 5% 20px;padding:18px 22px;border-left:3px solid var(--orange);background:#eeefe4}.schedule-summary p{font-size:13px;margin:5px 0;color:var(--muted)}.schedule-summary strong{color:var(--ink)}

.legacy-progress{margin:24px 0;padding:18px 22px;border:1px solid var(--line);border-radius:6px;background:#eeefe6}.legacy-progress summary{cursor:pointer;font-weight:650}.legacy-progress h4{font-size:14px;margin:18px 0 5px}.legacy-progress .legacy-note{white-space:pre-wrap}

/* Cross-roadbook destinations arrive only in authenticated API metadata. */
.trip-navigation{padding:12px 5%;border-bottom:1px solid var(--line);background:var(--cream)}.trip-navigation ul{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;max-width:1296px;margin:0 auto;padding:0}.trip-navigation li{min-width:0;max-width:100%}.trip-navigation a{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-height:44px;max-width:100%;padding:8px 12px;border:1px solid transparent;border-radius:5px;font-size:13px;font-weight:650;line-height:1.4;text-decoration:none;overflow-wrap:anywhere}.trip-navigation a:hover{text-decoration:underline;text-underline-offset:3px}.trip-navigation a[aria-current="page"]{border-color:var(--ink);background:var(--paper)}.trip-current{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}@media(max-width:750px){.trip-navigation{padding-block:10px}.trip-navigation ul{gap:6px 8px}.trip-navigation a{font-size:12px;padding-inline:10px}}@media print{.trip-navigation{display:none!important}}

/* Trip planning controls never place personal data in public assets. */
.planner-toolbar,.stop-actions,.removed-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;justify-content:space-between}.planner-toolbar{margin:24px 0}.stop-actions{justify-content:start;margin-top:18px}.stop-actions button{min-height:44px;padding:8px 12px;font-size:12px}.editor-panel{border:2px solid var(--ink);padding:24px;border-radius:8px;background:#fffdf8;margin:24px 0}.editor-panel h3{font:30px Georgia,serif;margin-top:0}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.editor-panel label{display:block;margin-top:14px}.editor-panel textarea{min-height:90px;resize:vertical}.editor-panel small{margin-block:12px}.editor-panel [role=alert]{color:#a02d18}.grocery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grocery-row{border:1px solid var(--line);padding:20px;border-radius:6px;background:#fffdf8;overflow-wrap:anywhere}.grocery-row .check-item{border:0}.grocery-row p,.lodging-detail{white-space:pre-wrap}.removed-row{margin:12px 0;padding-block:8px;border-bottom:1px solid var(--line)}.empty-state{grid-column:1/-1;padding:28px;background:var(--cream);border-radius:7px}.stop-links{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;overflow-wrap:anywhere}.stop-links a{min-height:44px;padding-top:10px}.storage-status{font-size:12px!important}.vehicle-art{margin:0}.vehicle-art img{display:block;width:100%;height:auto;border-radius:12px}.vehicle-art figcaption{font-size:11px;color:var(--muted);padding-top:8px}.hero>div:has(.vehicle-art:not([hidden])) .landscape{display:none}.hero h1{font-size:clamp(40px,5vw,70px)}#route-tradeoff:empty,#hero-intro:empty{display:none}@media(max-width:750px){.editor-grid,.grocery-grid{grid-template-columns:1fr}.editor-panel{padding:16px}.day-body{padding-left:18px}.save-bar{position:static}.save-bar>div{gap:5px}.planner-toolbar{align-items:start}}@media print{.planner-toolbar button,.stop-actions,.editor-panel,#add-grocery,#storage-status{display:none!important}}
.stop-completed{display:flex!important;align-items:center;gap:12px}.stop-completed input{width:20px;height:20px;margin:0}.stop-completed:has(input:checked) span{text-decoration:line-through}
.planning{grid-template-columns:1fr 220px 180px;gap:24px}.trip-note-panel{margin:0 5% 24px}.trip-note-panel summary{cursor:pointer;font-weight:650}.trip-note-panel textarea{min-height:100px}.metrics strong+span{line-height:1.3;display:block;margin-top:7px}@media(max-width:750px){.planning{grid-template-columns:1fr 1fr}.planning p{grid-column:1/-1}.planning label{min-width:0}.planning input{min-width:0;width:100%}}
.daily-breakdown{margin:18px 0;padding:16px;background:var(--cream);border-radius:6px}.daily-breakdown h4{margin:0 0 10px}.daily-breakdown ol{margin:0;padding-left:20px}.daily-breakdown li{margin:12px 0}.daily-breakdown strong{font-size:12px}.daily-breakdown p{margin:4px 0!important}

.next-drive{margin:1rem 0}.next-drive-link{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere;max-width:100%}.next-drive-status{opacity:.8;font-size:.9rem}

.next-drive-endpoints{display:block;overflow-wrap:anywhere;font-size:.9rem;margin-bottom:.25rem}

.day-distance{white-space:normal;max-width:12rem;text-align:right;line-height:1.45}.next-drive-estimate{display:block;font-size:.9rem;margin-bottom:.2rem}.incoming-mileage-status,.mileage-warning{font-size:.9rem;color:var(--muted)}@media(max-width:600px){.day-distance{max-width:8rem}}
