:root{--bg:#f5f1e8;--surface:#fffaf0;--field:#f3eadc;--ink:#151811;--muted:#6c705f;--line:#ded4c2;--signal:#1f7a4d;--shadow:0 18px 48px #2a23181f;--sans:Avenir Next, Aptos, Segoe UI, sans-serif;background:linear-gradient(90deg, #15181109 1px, transparent 1px), linear-gradient(#15181109 1px, transparent 1px), var(--bg);color:var(--ink);font:16px/1.45 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:44px 44px}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}h1,h2,p{overflow-wrap:anywhere}h1,h2{color:var(--ink);letter-spacing:0}h1{font-size:clamp(2.25rem,7vw,4.8rem);line-height:.94}.app-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:28px 0 42px}.topbar,.planner-grid,.insight-grid{gap:16px;display:grid}.topbar{grid-template-columns:1fr auto;align-items:end;margin-bottom:18px}.eyebrow{color:var(--signal);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:800}.topbar h1{margin:0}.status-pill,.panel-title,.form-header,.timeline div{align-items:center;display:flex}.status-pill{border:1px solid var(--line);color:var(--ink);border-radius:999px;gap:8px;padding:10px 14px;font-size:.88rem;font-weight:700}.queue-banner{color:#805b11;background:#fff3d8;border:1px solid #edc869;border-radius:8px;margin-bottom:16px;padding:12px 14px;font-size:.92rem;font-weight:800}.auth-panel{background:radial-gradient(circle at top left, #1f7a4d2e, transparent 32%), var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;grid-template-columns:minmax(0,.9fr) minmax(320px,1fr);align-items:center;gap:24px;min-height:420px;margin-bottom:16px;padding:28px;display:grid}.auth-panel h2{margin:0 0 14px;font-size:clamp(2rem,6vw,4.4rem);line-height:.96}.auth-copy p{color:var(--muted);max-width:46ch}.auth-form,.profile-form{gap:12px;display:grid}.auth-form{border:1px solid var(--line);background:#ffffffb8;border-radius:8px;padding:18px}.auth-form button,.profile-form button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:44px;padding:10px 14px;font-weight:800}.auth-form .link-button,.profile-form .secondary-button{border:1px solid var(--line);color:var(--ink);background:0 0;justify-content:center;align-items:center;gap:8px;display:inline-flex}.auth-form p,.profile-panel p{color:var(--muted);margin:0;font-size:.9rem}.profile-panel{margin-bottom:16px}.profile-form{grid-template-columns:1.1fr 1fr 1fr auto auto}.planner-grid{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);margin-bottom:16px}.trip-form,.verdict-panel,.work-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.trip-form{gap:14px;padding:18px;display:grid}.form-header,.panel-title{gap:10px}.form-header h2,.panel-title h2{margin:0;font-size:1rem}.form-header p{color:var(--muted);margin:2px 0 0;font-size:.9rem}label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;gap:6px;font-size:.78rem;font-weight:800;display:grid}input,select{background:var(--field);border:1px solid var(--line);color:var(--ink);font:inherit;border-radius:6px;min-width:0;padding:11px 12px}textarea{background:var(--field);border:1px solid var(--line);color:var(--ink);font:inherit;resize:vertical;border-radius:6px;min-width:0;min-height:96px;padding:11px 12px}input:focus,select:focus,textarea:focus{border-color:var(--signal);outline:3px solid #1f7a4d29}.field-pair,.metric-row,.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.verdict-panel{color:#f8fff9;background:linear-gradient(135deg,#10281f,#193e30);min-height:340px;padding:24px}.verdict-panel.tight{background:linear-gradient(135deg,#443414,#745b26)}.verdict-panel.not-possible{background:linear-gradient(135deg,#451b1f,#7d2830)}.verdict-icon{place-items:center;width:54px;height:54px;margin-bottom:26px;display:grid}.verdict-panel h2{color:#fff;margin:0 0 16px;font-size:clamp(2.4rem,8vw,5.2rem);line-height:.92}.verdict-panel p{max-width:52ch}.metric-row{margin-top:28px}.risk-list{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.timing-guardrail{background:#ffffff1f;border:1px solid #ffffff38;border-left:4px solid #9de1b3;border-radius:8px;gap:4px;margin-top:14px;padding:10px 12px;display:grid}.timing-guardrail.watch{border-left-color:#ffd166}.timing-guardrail.expired{border-left-color:#ff8a8a}.timing-guardrail.missing{border-left-color:#ffffff80}.timing-guardrail strong{color:#fff}.timing-guardrail span{color:#ffffffd6;font-size:.9rem}.risk-list span{color:#ffffffdb;background:#ffffff1f;border:1px solid #fff3;border-radius:999px;padding:7px 10px;font-size:.82rem;font-weight:700}.generated-message-panel{background:#ffffff1c;border:1px solid #ffffff38;border-radius:8px;gap:10px;margin-top:18px;padding:12px;display:grid}.generated-message-panel>div{gap:3px;display:grid}.generated-message-panel strong{color:#fff}.generated-message-panel span,.generated-message-panel p{color:#ffffffc7;margin:0;font-size:.88rem}.generated-message-panel textarea{background:#fffffff0;min-height:132px}.generated-message-panel button{color:#173626;cursor:pointer;background:#fff;border:0;border-radius:6px;width:fit-content;min-height:42px;padding:9px 13px;font-weight:800}.generated-message-panel button:disabled{cursor:wait;opacity:.72}.generated-message-actions{flex-wrap:wrap;gap:8px;display:flex}.generated-message-status.error{color:#ffd6d6}.generated-message-history{border-top:1px solid #ffffff2e;gap:8px;padding-top:10px;display:grid}.generated-message-history article{background:#ffffff1a;border:1px solid #ffffff29;border-radius:7px;gap:5px;padding:9px;display:grid}.generated-message-history blockquote{color:#ffffffe0;margin:0;font-size:.9rem}.location-verify-panel{background:color-mix(in srgb, var(--signal) 7%, var(--field));border:1px solid color-mix(in srgb, var(--signal) 24%, var(--line));border-radius:10px;gap:12px;padding:12px;display:grid}.location-verify-panel>div:first-child{justify-content:space-between;align-items:center;gap:10px;display:flex}.location-verify-panel strong{display:block}.location-verify-panel span,.location-verify-panel p{color:var(--muted);font-size:.88rem}.location-verify-panel button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:42px;padding:10px 12px;font-weight:800}.location-verify-panel button:disabled{cursor:wait;opacity:.72}.location-group-list{gap:10px;display:grid}.location-group{background:var(--paper);border:1px solid var(--line);border-radius:8px;gap:8px;padding:10px;display:grid}.location-group h3{margin:0;font-size:.92rem}.location-group p{margin:0}.location-candidate-list{gap:8px;display:grid}.location-candidate-list button{background:var(--field);border:1px solid var(--line);color:var(--ink);text-align:left;justify-items:start;gap:4px;display:grid}.location-candidate-list button.selected{border-color:var(--signal);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--signal) 25%, transparent)}.server-plan{gap:10px;margin-top:18px;display:grid}.server-plan button{color:#173626;cursor:pointer;background:#fff;border:0;border-radius:6px;justify-content:center;align-items:center;width:fit-content;min-height:44px;padding:10px 14px;font-weight:800;display:inline-flex}.inline-action{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inline-action button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:40px;padding:9px 13px;font-weight:800}.inline-action span{color:var(--muted);font-size:.9rem;font-weight:700}.server-plan button:disabled{cursor:wait;opacity:.72}.server-plan p{color:#ffffffd1;margin:0;font-size:.9rem}.provider-status-list{gap:8px;display:grid}.server-plan .provider-status{border-radius:6px;padding:10px;font-weight:700}.server-plan .provider-status strong{color:inherit}.server-plan .provider-status.synced{color:#1f6d49;background:#e6f4ee}.server-plan .provider-status.saving{color:#456135;background:#edf3e9}.server-plan .provider-status.local-only{color:#805b11;background:#fff3d8}.metric-row div,.timeline div{background:#ffffff1a;border:1px solid #ffffff2e;border-radius:8px;padding:14px}.metric-row span,.timeline span{color:var(--muted);font-size:.82rem;font-weight:700;display:block}.metric-row span{color:#ffffffb3}.metric-row strong,.timeline strong{margin-top:4px;font-size:1.1rem;display:block}.timeline small{color:var(--muted);margin-top:4px;font-size:.78rem;line-height:1.35;display:block}.insight-grid{grid-template-columns:1fr 1fr 1fr}.work-panel{padding:18px}.market-panel{margin-bottom:16px}.market-panel>p{color:var(--muted);margin:0;font-size:.92rem}.market-score{background:var(--field);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:14px;display:flex}.market-score span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;font-weight:800;display:block}.market-score strong{margin-top:4px;font-size:1.2rem;display:block}.market-score b{color:#fff;border-radius:999px;place-items:center;width:58px;height:58px;font-size:1.3rem;display:grid}.market-score.risk-low b{background:#1f7a4d}.market-score.risk-moderate b{background:#a86d16}.market-score.risk-high b{background:#a8323a}.saved-plans-panel{margin-bottom:16px}.saved-plans-panel>p,.truck-stop-panel>p{color:var(--muted);margin:0 0 14px;font-size:.9rem}.saved-plan-list{gap:10px;display:grid}.saved-plan-card{background:var(--field);border:1px solid var(--line);border-radius:8px;gap:8px;padding:12px;display:grid}.saved-plan-card div{justify-content:space-between;align-items:start;gap:12px;display:flex}.saved-plan-card strong{display:block}.saved-plan-card span,.saved-plan-card p{color:var(--muted);font-size:.88rem}.saved-plan-card p{margin:0}.saved-plan-card .saved-route-stops{background:color-mix(in srgb, var(--signal) 8%, var(--paper));border:1px solid color-mix(in srgb, var(--signal) 22%, var(--line));color:var(--ink);border-radius:7px;padding:8px}.saved-plan-card button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;width:fit-content;min-height:38px;padding:8px 12px;font-weight:800}.truck-stop-panel{margin-bottom:16px}.truck-stop-search{grid-template-columns:90px minmax(220px,1fr) auto;align-items:end;gap:12px;display:grid}.truck-stop-search button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:44px;padding:10px 14px;font-weight:800}.truck-stop-search button:disabled{cursor:wait;opacity:.72}.truck-stop-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.truck-stop-card{background:var(--field);border:1px solid var(--line);border-radius:8px;gap:8px;padding:12px;display:grid}.truck-stop-card div{gap:3px;display:grid}.truck-stop-card span,.truck-stop-card p{color:var(--muted);font-size:.88rem}.truck-stop-card b{color:var(--signal);font-size:1.05rem}.truck-stop-card p{margin:0}.panel-title{margin-bottom:14px}.timeline{gap:10px;display:grid}.timeline div{background:var(--field);gap:10px}.route-map-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.route-map-actions button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:42px;padding:10px 14px;font-weight:800}.route-map-actions .secondary-route-action{background:var(--field);border:1px solid var(--line);color:var(--ink)}.route-map-actions button:disabled{cursor:not-allowed;opacity:.55}.route-map-actions span{color:var(--muted);font-size:.88rem}.route-cache-status{border:1px solid color-mix(in srgb, var(--signal) 32%, var(--line));color:#1f6d49;background:#e6f4ee;border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:.88rem;font-weight:750}.route-stop-cache-scope{background:linear-gradient(135deg, color-mix(in srgb, var(--ink) 8%, transparent), transparent 60%), var(--field);border:1px solid var(--line);border-radius:10px;gap:4px;margin-top:10px;padding:10px;display:grid}.route-stop-cache-scope strong{color:var(--ink)}.route-stop-cache-scope span,.route-stop-cache-scope small{color:var(--muted);font-size:.88rem;line-height:1.45}.trip-map-shell{gap:10px;margin-top:14px;display:grid}.trip-map-shell.is-app-fullscreen{background:var(--paper);z-index:1000;margin:0;padding:14px;position:fixed;inset:0}.trip-map-toolbar{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.trip-map-toolbar label{min-width:150px}.trip-map-toolbar .map-toggle{background:var(--field);border:1px solid var(--line);border-radius:999px;flex-direction:row;align-items:center;gap:7px;min-width:auto;padding:8px 10px;font-size:.82rem;font-weight:800;display:flex}.map-fullscreen-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:42px;padding:10px 14px;font-weight:800}.trip-map{border:1px solid var(--line);background:linear-gradient(135deg,#dce8df,#a8b8ad);border-radius:10px;min-height:340px;overflow:hidden}.trip-map-shell.is-app-fullscreen .trip-map{min-height:calc(100dvh - 112px)}.trip-map-shell>p{color:var(--muted);margin:0;font-size:.88rem}.route-directions{background:var(--field);border:1px solid var(--line);border-radius:10px;gap:10px;margin-top:12px;padding:12px;display:grid}.route-directions h3{margin:0;font-size:1rem}.route-directions ol{gap:9px;margin:0;padding-left:22px;display:grid}.route-directions li{color:var(--ink);padding-left:4px}.route-directions li span{display:block}.route-directions small,.route-directions p,.route-directions-empty{color:var(--muted);font-size:.86rem}.route-directions p,.route-directions-empty{margin:0}.stop-list{gap:10px;display:grid}.stop-item{border-left:3px solid var(--signal);padding-left:12px}.stop-item strong,.facility-score strong{display:block}.facility-focus-toggle{background:var(--field);border:1px solid var(--line);border-radius:999px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-bottom:14px;padding:4px;display:grid}.facility-focus-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:38px;padding:8px 10px;font-weight:800}.facility-focus-toggle button.active{background:var(--ink);color:#fff}.stop-item span,.facility-score span{color:var(--muted);margin-top:2px;font-size:.86rem;display:block}.stop-item p{color:var(--muted);margin:8px 0 0;font-size:.9rem}.stop-guidance{color:#745110;background:#fff6df;border:1px solid #efc76f;border-radius:8px;align-items:center;gap:7px;padding:8px 10px;display:flex}.stop-candidates{background:color-mix(in srgb, var(--signal) 8%, var(--field));border:1px solid color-mix(in srgb, var(--signal) 30%, var(--line));border-radius:8px;gap:8px;margin-top:10px;padding:10px;display:grid}.stop-candidates>b{color:var(--ink);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem}.stop-candidate{justify-content:space-between;align-items:start;gap:10px;display:flex}.stop-candidate strong{font-size:.92rem}.stop-candidate em{color:var(--signal);white-space:nowrap;font-size:.82rem;font-style:normal;font-weight:800}.stop-candidate-actions{place-items:end;gap:8px;display:grid}.stop-candidate-actions button,.selected-route-stop button{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:6px;min-height:34px;padding:7px 10px;font-size:.82rem;font-weight:800}.route-poi-results{margin-bottom:14px}.selected-route-pois{gap:8px;margin:10px 0;display:grid}.appointment-policy{border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:12px;display:grid}.appointment-policy legend{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;padding:0 6px;font-size:.78rem;font-weight:900}.appointment-policy label,.appointment-details label{align-items:center;gap:8px;display:flex}.appointment-details{background:color-mix(in srgb, var(--signal) 8%, var(--field));border:1px solid color-mix(in srgb, var(--signal) 28%, var(--line));border-radius:10px;gap:8px;padding:12px;display:grid}.appointment-details-note{color:var(--muted);margin:0;font-size:.9rem}.appointment-summary{background:linear-gradient(135deg, color-mix(in srgb, var(--signal) 14%, transparent), transparent 55%), var(--field);border:1px solid color-mix(in srgb, var(--signal) 30%, var(--line));border-radius:12px;gap:4px;margin:8px 0 14px;padding:12px;display:grid}.appointment-summary strong{color:var(--ink)}.appointment-summary span,.appointment-summary small{color:var(--muted)}.appointment-summary small{line-height:1.45}.facility-planning-summary{background:linear-gradient(135deg, #2f6fd61f, transparent 58%), var(--field);border:1px solid color-mix(in srgb, #2f6fd6 28%, var(--line));border-radius:12px;gap:4px;margin:10px 0 0;padding:12px;display:grid}.facility-planning-summary strong{color:var(--ink)}.facility-planning-summary span,.facility-planning-summary small{color:var(--muted)}.facility-planning-summary small{line-height:1.45}.facility-aggregate-summary{background:linear-gradient(135deg, #1f9a7724, transparent 58%), var(--field);border:1px solid color-mix(in srgb, #1f9a77 32%, var(--line));border-radius:12px;gap:4px;margin:10px 0 0;padding:12px;display:grid}.facility-aggregate-summary strong{color:var(--ink)}.facility-aggregate-summary span,.facility-aggregate-summary small{color:var(--muted)}.facility-aggregate-summary small{line-height:1.45}.stop-intel-summary{background:linear-gradient(135deg, #d66d2f29, transparent 58%), var(--field);border:1px solid color-mix(in srgb, #d66d2f 34%, var(--line));border-radius:12px;gap:4px;margin:14px 0 0;padding:12px;display:grid}.stop-intel-summary strong{color:var(--ink)}.stop-intel-summary span,.stop-intel-summary small{color:var(--muted)}.stop-intel-summary small{line-height:1.45}.truck-stop-aggregate-summary{background:linear-gradient(135deg, #b86a2224, transparent 58%), var(--field);border:1px solid color-mix(in srgb, #b86a22 34%, var(--line));border-radius:12px;gap:4px;margin:10px 0 0;padding:12px;display:grid}.truck-stop-aggregate-summary strong{color:var(--ink)}.truck-stop-aggregate-summary span,.truck-stop-aggregate-summary small{color:var(--muted)}.truck-stop-aggregate-summary small{line-height:1.45}.stop-candidate-actions button:disabled{cursor:not-allowed;opacity:.55}.selected-route-stop{border:1px solid color-mix(in srgb, var(--signal) 35%, var(--line));color:#1f6d49;background:#e6f4ee;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:9px;font-size:.88rem;font-weight:800;display:flex}.stop-candidate-empty{border:1px dashed var(--line);border-radius:8px;padding:9px}.tag-cloud{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.tag-cloud span{background:var(--field);border:1px solid var(--line);border-radius:999px;padding:8px 10px;font-size:.82rem;font-weight:700}.recent-notes{gap:8px;margin-top:14px;display:grid}.recent-notes p{background:var(--field);border:1px solid var(--line);color:var(--muted);border-radius:6px;margin:0;padding:10px;font-size:.9rem}.recent-notes strong{color:var(--ink)}.private-note-card{background:#f5efe2;border:1px solid #e1c999;border-radius:8px;gap:10px;margin:14px 0;padding:12px;display:grid}.private-note-card>div{gap:3px;display:grid}.private-note-card strong{color:var(--ink)}.private-note-card span,.private-note-card p{color:#6c5530;margin:0;font-size:.88rem}.private-note-card button{color:#fff;cursor:pointer;background:#6f4f1d;border:0;border-radius:6px;width:fit-content;min-height:40px;padding:9px 12px;font-weight:800}.private-note-card button:disabled{cursor:wait;opacity:.72}.review-form{border-top:1px solid var(--line);gap:12px;margin-top:18px;padding-top:16px;display:grid}.review-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.review-toggles label{background:var(--field);border:1px solid var(--line);color:var(--ink);letter-spacing:0;text-transform:none;border-radius:6px;flex-direction:row;align-items:center;gap:8px;padding:8px 10px;display:flex}.review-toggles input{accent-color:var(--signal);min-width:auto;padding:0}.review-form button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:44px;padding:10px 14px;font-weight:800}.sync-message{border-radius:6px;margin:12px 0 0;padding:10px;font-size:.9rem;font-weight:700}.sync-message.saving{color:#456135;background:#edf3e9}.sync-message.synced{color:#1f6d49;background:#e6f4ee}.sync-message.local-only{color:#805b11;background:#fff3d8}@media (width<=820px){.app-shell{width:min(100% - 20px,560px);padding-top:18px}.topbar,.auth-panel,.profile-form,.truck-stop-search,.truck-stop-list,.planner-grid,.insight-grid,.field-pair,.metric-row{grid-template-columns:1fr}.topbar{align-items:start}.status-pill{justify-self:start}.verdict-panel{min-height:0}.review-toggles{grid-template-columns:1fr}}
