@charset "UTF-8";
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19392f;background:#f4f7f3;font-synthesis:none;--green:#176b4b;--border:#d9e3da}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select,textarea{font:inherit}a{color:var(--green)}button,summary{cursor:pointer}button{background:#fff;color:#19392f;border:1px solid var(--border);border-radius:10px;padding:11px 16px;min-height:44px;font-weight:650}button:hover{background:#edf5ee}button:disabled{opacity:.5;cursor:wait}.primary{color:#fff;background:var(--green);border-color:var(--green)}.primary:hover{background:#105439}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e1a636;outline-offset:3px}.topbar{height:80px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1440px)/2));gap:20px}.brand{font-weight:850;font-size:28px;letter-spacing:-1px;text-decoration:none;display:flex;align-items:center;gap:10px}.brand span{font-size:10px;letter-spacing:2px;background:#e6f1e7;padding:5px 7px;border-radius:5px}.topbar nav{display:flex;align-items:center;gap:18px}.topbar nav a{font-size:14px;text-decoration:none}main{max-width:1440px;margin:auto;padding:36px 24px}.welcome{min-height:65vh;display:grid;grid-template-columns:1.2fr 1fr;gap:90px;align-items:center;max-width:1100px;margin:auto}.welcome h1{font-size:clamp(36px,5vw,64px);line-height:1.05;letter-spacing:-2px;max-width:650px}.lead{font-size:20px;line-height:1.6;color:#52665c;max-width:540px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:750;color:var(--green)}.features{display:flex;gap:12px;flex-wrap:wrap}.features span{padding:9px 13px;border-radius:30px;background:#e4eee4;font-size:13px;font-weight:650}.card{padding:24px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 5px 20px #14332004}h1,h2,h3{margin-top:0}h1{font-size:34px;letter-spacing:-1px}h2{font-size:24px}h3{font-size:19px}label{display:grid;gap:7px;margin:14px 0;font-size:14px;font-weight:600}input,select,textarea{width:100%;min-width:0;border:1px solid #c8d7cc;border-radius:8px;padding:12px;color:#19392f;background:#fff}textarea{resize:vertical}form>button{width:100%}.muted{font-size:13px;line-height:1.55;color:#607166}.social{display:grid;gap:10px;margin-top:18px}.workspace-heading,.trip-heading,.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.trip-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:26px}.trip-layout>aside{align-self:start}#trip-list{display:grid;gap:10px;margin-bottom:24px}#trip-list button{text-align:left}#trip-list button[aria-current=true]{border-color:var(--green);background:#e9f4ea}.trip-heading{margin-bottom:20px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.tabs button[aria-pressed=true]{background:#19392f;color:#fff}.map-card{padding:10px 10px 0;margin-bottom:20px}.map-card>.muted{padding:0 12px 12px}#map{height:390px;border-radius:12px;z-index:0}#map-gate{min-height:220px;display:grid;place-content:center;text-align:center;padding:24px;gap:15px;background:#eaf0e8;border-radius:12px}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.dimensions{display:flex;gap:10px}.dimensions label{min-width:0;flex:1}#stops{padding-left:24px}#stops li{padding:12px 0;border-bottom:1px solid var(--border)}.stop-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.stop-tools button{font-size:12px;padding:6px 10px}.stop-tools select{width:auto;font-size:12px;padding:7px}#messages{max-height:460px;overflow:auto;display:grid;gap:12px;margin:20px 0}.message{background:#f0f5ef;padding:13px;border-radius:12px;overflow-wrap:anywhere;white-space:pre-wrap}.message.own{background:#e0f0e5}.message small{display:block;color:#607166;margin-bottom:6px}.message img{max-width:100%;max-height:240px;object-fit:contain}.document{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:14px 0;overflow-wrap:anywhere}#notice{padding:15px 20px;background:#fff3d5;border:1px solid #ebd296;border-radius:10px;margin-bottom:22px;overflow-wrap:anywhere}#notice[data-kind=success]{background:#e2f1e4;border-color:#acccad}#gpx-points button{display:block;margin:8px 0;width:100%}footer{max-width:1440px;margin:auto;padding:30px 24px;display:flex;gap:24px;font-size:13px}.leaflet-control-attribution{font-size:10px!important}.leaflet-popup-content{overflow-wrap:anywhere}details summary{font-weight:650;padding:10px 0}#route-summary{font-weight:700}#export-gpx{font-size:13px;margin-top:16px}@media(max-width:1000px){.welcome{gap:40px}.trip-layout{grid-template-columns:200px minmax(0,1fr)}.plan-grid{grid-template-columns:1fr}}@media(max-width:700px){.topbar{padding:0 18px;height:68px}.topbar nav{gap:12px}.welcome{grid-template-columns:1fr;gap:30px}.welcome h1{font-size:42px}.lead{font-size:17px}main{padding:24px 16px}.trip-layout{grid-template-columns:1fr}.trip-layout>aside{padding:16px}#trip-list{display:flex;overflow:auto;margin-bottom:10px}#trip-list button{flex-shrink:0;max-width:240px}.workspace-heading h1{font-size:28px}.card{padding:18px}#map{height:320px}.map-card{padding:8px 8px 0}.trip-heading{align-items:flex-start;flex-direction:column;gap:0}.tabs{gap:6px}.tabs button{font-size:13px;padding:10px}.dimensions{flex-wrap:wrap}.dimensions label{min-width:100px}.leaflet-control-layers{font-size:11px}.topbar #logout{font-size:12px;padding:8px}}

.leaflet-control-layers label{display:block;margin:4px 0;font-size:12px;font-weight:500}.leaflet-control-layers input{width:auto;padding:0;margin-right:4px}.leaflet-control-layers span{vertical-align:middle}

/* Shared DriBu identity: website typography, app surfaces and olive controls. */
@font-face{font-family:Manrope;src:url('../assets/fonts/Manrope-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('../assets/fonts/Manrope-SemiBold.ttf') format('truetype');font-weight:600 700;font-display:swap}
@font-face{font-family:Manrope;src:url('../assets/fonts/Manrope-ExtraBold.ttf') format('truetype');font-weight:800 900;font-display:swap}
:root{font-family:Manrope,system-ui,sans-serif;color:#1f1f1f;background:#f3f0e7;--green:#686f61;--border:#d7d9d2}
body{min-height:100vh}button,input,select,textarea{color:#1f1f1f}button{border-radius:12px;transition:background .16s,border-color .16s,box-shadow .16s}button:hover{background:#edf0e8}.primary{background:#686f61;color:white}.primary:hover{background:#4f5449}.topbar{max-width:none;background:#fffdf8;height:84px;padding:0 max(28px,calc((100vw - 1280px)/2));border-bottom-color:#e0dfd5}.brand{gap:10px;color:#1b2923;letter-spacing:-1px;font-size:26px}.brand img{border-radius:12px;object-fit:contain}.brand span{background:#ebeee5;color:#686f61;font-size:9px}.topbar nav a{color:#4f5449}.topbar nav a[aria-current=page]{font-weight:800;color:#1f1f1f}.topbar nav button{background:transparent}main{max-width:1280px;padding:42px 28px 26px}.eyebrow{color:#686f61;font-size:11px;letter-spacing:2px;margin:0 0 12px}.lead{color:#5f6e64;font-size:18px}.card{border-radius:24px;background:#fffdfb;border-color:#e0e1d7;box-shadow:0 8px 30px #2b382407}.muted{color:#5f6e64}input,select,textarea{border-color:#d7d9d2;border-radius:12px;background:white}h1{font-weight:800;line-height:1.12;font-size:40px;letter-spacing:-1.3px}h2{font-weight:800}h3{font-weight:700}.welcome{gap:72px;max-width:1160px;padding:10px 0 40px}.welcome h1{font-size:clamp(38px,4.5vw,59px);margin:0 0 24px}.welcome .card{padding:34px}.welcome-photo{margin:26px 0 18px;max-width:500px;overflow:hidden;border-radius:24px;height:190px}.welcome-photo img{width:100%;height:100%;object-fit:cover}.features{gap:8px}.features span{background:#e6e8dd;color:#4f5449;font-size:12px;padding:8px 12px}.workspace-heading{align-items:flex-start;margin-bottom:30px}.workspace-heading h1{margin:0 0 12px}.workspace-heading .lead{margin:0;font-size:16px}.workspace-heading>button{margin-top:28px}.trip-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:end;margin-bottom:24px}.trip-search{margin:0;max-width:380px;width:100%;font-size:12px;color:#5f6e64}.trip-search input{background:#fffdfb}.create-trip{position:relative;min-width:220px;z-index:5}.create-trip summary{list-style:none;text-align:center;border-radius:12px;padding:13px 20px;font-size:14px}.create-trip summary:before{content:'+';font-size:19px;margin-right:12px}.create-trip form{position:absolute;right:0;top:58px;width:340px;padding:12px 24px 24px;background:#fffdfb;border:1px solid var(--border);border-radius:20px;box-shadow:0 18px 60px #2c362029}#trip-list.trip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0 0 36px}#trip-list .trip-card{padding:0;min-width:0;overflow:hidden;border-radius:24px;background:#fffdfb;border:1px solid #dedfd5;text-align:left;box-shadow:0 5px 18px #2d352507;transition:box-shadow .18s,transform .18s}#trip-list .trip-card:hover{box-shadow:0 12px 30px #2d35251a;transform:translateY(-3px)}.trip-card-visual{position:relative;height:176px;background:#dfe2d7;overflow:hidden}.trip-card-visual>img{width:100%;height:100%;object-fit:cover;display:block}.trip-card-visual>img.placeholder{object-fit:contain;padding:42px;background:#e5e7dd}.trip-status{position:absolute;left:16px;top:16px;background:#fffdf9eb;color:#4f5449;padding:6px 11px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.25px;backdrop-filter:blur(5px)}.trip-card-info{padding:22px}.trip-card-info h2{font-size:20px;line-height:1.3;letter-spacing:-.45px;margin:0 0 9px;overflow-wrap:anywhere}.trip-date{font-size:12px;color:#5f6e64;font-weight:400;margin:0 0 22px;min-height:18px}.trip-card-bottom{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e7e8df;padding-top:16px;font-size:11px;color:#5f6e64;font-weight:600}.trip-open{color:#4f5449;font-weight:800;white-space:nowrap}.empty-state{grid-column:1/-1;border:1px dashed #b4b9ab;border-radius:24px;padding:60px 24px;text-align:center;color:#5f6e64}.app-companion{display:flex;gap:18px;align-items:center;border:1px solid #dce0d2;background:#e9ece1;border-radius:20px;padding:24px}.app-companion img{border-radius:12px;flex-shrink:0}.app-companion div{flex:1}.app-companion h3{font-size:15px;margin:0 0 5px}.app-companion p{font-size:12px;color:#5f6e64;line-height:1.6;margin:0}.app-companion a{font-size:13px;font-weight:800;white-space:nowrap}.back-button{padding:8px 0;margin:0 0 22px;background:none;border:0;font-size:12px;color:#5f6e64}.back-button:before{content:'←';margin-right:12px}.trip-heading{display:flex;justify-content:flex-start;gap:26px;align-items:center;margin:0 0 30px}.trip-heading-image{width:112px;height:112px;flex-shrink:0;border-radius:24px;overflow:hidden;background:#e5e7dd}.trip-heading-image img{height:100%;width:100%;object-fit:cover}.trip-heading-image img.placeholder{object-fit:contain;padding:22px}.trip-heading h1{font-size:34px;margin:0 0 10px;overflow-wrap:anywhere}.trip-heading .eyebrow{margin-bottom:8px}.trip-heading p{margin:0}.tabs{gap:8px;border-bottom:1px solid #d9ddcf;padding-bottom:18px;margin-bottom:24px}.tabs button{background:#fffdf9;color:#4f5449;min-width:120px;font-size:13px}.tabs button[aria-pressed=true]{background:#686f61;color:white;border-color:#686f61}.map-card{padding:12px 12px 0}.map-card .muted{font-size:11px}#map{height:430px;border-radius:16px}#map-gate{background:#e6eadf;border-radius:16px;min-height:250px}.plan-grid{grid-template-columns:1.15fr 1fr}.plan-grid>.card{padding:28px}.plan-grid h3{font-size:21px}#stops li{padding:18px 0}.message{background:#f0f1e9}.message.own{background:#e3e9d9}.message small{color:#5f6e64}footer{max-width:1280px;color:#5f6e64;padding:28px;font-size:12px;border-top:1px solid #dcded3}footer a{color:#5f6e64}#notice{position:relative;z-index:8}.section-heading h3{margin-bottom:0}
@media(max-width:1050px){#trip-list.trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome{gap:36px}.topbar{padding:0 28px}.plan-grid{grid-template-columns:1fr 1fr}.plan-grid>.card{padding:20px}}
@media(max-width:700px){.topbar{height:72px;padding:0 18px;gap:8px}.brand{font-size:22px;gap:7px}.brand img{width:34px;height:34px}.brand span{display:none}.topbar nav{gap:12px}.topbar nav a{font-size:12px}.topbar #logout{font-size:11px;padding:8px}.welcome{grid-template-columns:1fr;gap:28px;padding-top:0}.welcome h1{font-size:40px;letter-spacing:-1.6px}.welcome-photo{height:145px;margin-top:20px}.welcome .card{padding:24px}.welcome .lead{font-size:16px}.features{gap:6px}.features span{font-size:11px}main{padding:28px 18px 24px}.workspace-heading{margin-bottom:24px}.workspace-heading h1{font-size:32px}.workspace-heading .lead{font-size:13px}.workspace-heading>button{font-size:11px;padding:8px 10px;min-height:40px;margin-top:24px}.trip-toolbar{align-items:stretch;gap:14px;flex-direction:column}.trip-search{max-width:none}.create-trip{min-width:0}.create-trip summary{text-align:left}.create-trip form{position:static;width:auto;margin-top:10px;box-shadow:none}#trip-list.trip-grid{display:grid;grid-template-columns:1fr;gap:18px}#trip-list .trip-card{max-width:none;width:100%;display:flex;align-items:stretch;border-radius:20px}.trip-card-visual{width:108px;min-width:108px;height:auto;min-height:150px}.trip-card-visual>img{position:absolute;height:100%}.trip-card-visual>img.placeholder{padding:20px}.trip-status{font-size:8px;left:7px;top:9px;padding:5px 7px}.trip-card-info{padding:18px 16px;flex:1;min-width:0}.trip-card-info h2{font-size:17px}.trip-date{font-size:10px;margin-bottom:17px}.trip-card-bottom{font-size:10px;padding-top:12px;flex-wrap:wrap;gap:5px}.app-companion{padding:20px;flex-wrap:wrap;gap:13px}.app-companion img{width:36px;height:36px}.app-companion div{flex-basis:calc(100% - 56px)}.app-companion h3{font-size:13px}.app-companion p{font-size:11px}.app-companion a{margin-left:49px;font-size:12px}.trip-heading{flex-direction:row;align-items:center;gap:16px}.trip-heading-image{width:76px;height:88px;border-radius:18px}.trip-heading h1{font-size:25px;letter-spacing:-.7px}.trip-heading .eyebrow{font-size:9px}.trip-heading .muted{font-size:11px}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.tabs button{min-width:0;font-size:10px;padding:11px 4px}.plan-grid{grid-template-columns:1fr}.plan-grid>.card{padding:20px}.card{border-radius:20px}#map{height:340px}.map-card{padding:8px 8px 0}.trip-heading-image img.placeholder{padding:14px}footer{padding:24px 18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Show the established stop plan first, then map and stop entry side by side. */
.planner-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);gap:24px;align-items:start}.planner-layout .plan-stops-card{grid-column:1/-1}.planner-layout .map-card{position:sticky;top:18px;padding:18px;margin:0;min-width:0}.planning-sidebar{display:grid;gap:20px;min-width:0}.planning-sidebar>.card{padding:22px}.planning-sidebar h3{margin:0;font-size:18px}.place-search{display:flex;align-items:end;gap:10px}.place-search label{flex:1;min-width:0;margin:0}.place-search>button{width:auto}.map-toolbar{display:flex;justify-content:space-between;gap:8px;margin:12px 0}.map-toolbar button{font-size:12px;padding:9px 12px}.planner-layout #map{height:clamp(380px,57vh,640px)}.map-card>p{padding:0!important;font-size:11px}#search-results{display:grid;gap:6px;margin:8px 0}.place-result{display:grid;gap:4px;text-align:start;padding:12px}.place-result small{color:#5f6e64;font-size:11px}.place-result strong{font-size:13px}#search-status:empty{display:none}.stop-marker{display:grid;place-items:center;background:#686f61;color:white;border:2px solid white;border-radius:50%;font-weight:800;box-shadow:0 2px 8px #0005}.stop-marker.visited{background:#287458}.stop-marker.skipped{background:#888}.stop-marker.suggested{background:#966c35}.selection-marker{display:grid;place-items:center;background:#fff;color:#34492c;border:3px solid #686f61;border-radius:50%;font-size:24px;font-weight:800;box-shadow:0 2px 8px #0004}.leaflet-popup-content button{display:block;margin-top:10px;font-size:12px}.planner-layout #stops{margin:10px 0 18px;padding-inline-start:24px}.planner-layout #stops li:focus{outline:2px solid #686f61;outline-offset:4px;border-radius:8px}.vehicle-options{margin:12px 0}.planner-layout #route{width:min(100%,320px);font-size:13px}#coordinate-details summary{font-size:12px;font-weight:400;color:#5f6e64}#stop-form>button{margin-top:12px}.map-expanded{grid-template-columns:1fr}.map-expanded .map-card{position:static}.map-expanded #map{height:70vh}.map-expanded .planning-sidebar{grid-template-columns:1fr}
@media(max-width:900px){.planner-layout{grid-template-columns:1fr}.planner-layout .map-card{position:static}.planner-layout #map{height:390px}.map-expanded #map{height:70vh}.map-expanded .planning-sidebar{grid-template-columns:1fr}.place-search{gap:6px}.place-search>button{padding:12px}.planning-sidebar>.card{padding:20px}.planner-layout{gap:18px}.place-search label{font-size:12px}}
#route-map{width:min(100%,320px);margin:0 0 14px;background:#f4f5ef;color:#4f5449;border-color:#d9ddcf;font-size:13px}#route-map:hover{background:#e8ebe2}

/* Shared trip expenses use the same quiet cards and olive controls as the mobile app. */
#panel-expenses{max-width:920px;margin-inline:auto}.expenses-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 12px}.expenses-header h2{margin:0 0 6px}.expenses-header p{margin:0;color:#5f6e64;line-height:1.5}.expenses-header button{flex-shrink:0}.expenses-status{min-height:1.5em;color:#6a5031}.expenses-balances{margin:14px 0 20px}.expenses-balances h3{margin-bottom:14px}.expense-settlement{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #e6e8df;line-height:1.55}.expense-settlement span{unicode-bidi:plaintext}.expense-settlement button{font-size:12px;flex-shrink:0}.expenses-list{display:grid;gap:14px;margin:18px 0}.expense-card{padding:20px 24px;border:1px solid #dfe2d8;border-radius:18px;background:#fffdfb;box-shadow:0 4px 16px #2b382408}.expense-card-heading{display:flex;justify-content:space-between;align-items:baseline;gap:18px}.expense-card-heading h3{margin:0;overflow-wrap:anywhere}.expense-card-heading strong{white-space:nowrap}.expense-card .muted{margin:9px 0}.expense-note{white-space:pre-wrap;overflow-wrap:anywhere}.expense-shares{margin-top:8px}.expense-shares summary{font-size:13px;color:#4f5449}.expense-shares ul{padding-inline-start:24px;margin:4px 0 14px}.expense-shares li{margin:5px 0}.expense-card>button{font-size:12px;margin-top:12px}.expenses-more{display:block;margin:10px auto 20px}.expenses-editor{margin:20px 0}.expenses-editor:empty{display:none}.expense-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.expense-form h3,.expense-form fieldset,.expense-form-actions{grid-column:1/-1}.expense-form label{min-width:0}.expense-form input,.expense-form select,.expense-form textarea{max-width:100%}.expense-member-list{border:1px solid #e0e1d7;border-radius:14px;padding:12px 16px}.expense-member-list legend{font-weight:750;padding:0 6px}.expense-member-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(80px,140px);gap:10px;align-items:center;margin:8px 0;padding:8px;border-radius:10px;background:#f4f5ef}.expense-member-row input[type=checkbox]{width:20px;height:20px;min-width:20px}.expense-member-row span{overflow-wrap:anywhere}.expense-member-row .expense-portion{padding:9px}.expense-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.expense-form-actions button{width:auto;flex:1 1 150px}.expense-form-actions button:last-child:not(:nth-child(2)){color:#8b3939}.expenses-editor input[name=amount],.expenses-editor input[name^=portion-]{direction:ltr;text-align:start}
@media(max-width:700px){.expenses-header{align-items:flex-start;flex-direction:column}.expenses-header button{width:100%}.expense-settlement{align-items:flex-start;flex-direction:column}.expense-card{padding:17px}.expense-card-heading{align-items:flex-start;flex-direction:column;gap:4px}.expense-form{grid-template-columns:1fr}.expense-member-row{grid-template-columns:auto minmax(0,1fr) 88px}}

/* The trip stops follow the mobile plan's readable cards; route tools sit beside them on wide screens. */
.plan-stops-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,310px);gap:28px;align-items:start}
.plan-stops-layout.route-unavailable{grid-template-columns:minmax(0,1fr)}
.plan-tools{display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px 20px;margin-top:12px}.plan-tools>button{width:auto}.plan-tools details[open]{flex-basis:100%}
.plan-stops-card.route-unavailable{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:14px 28px;align-items:start}.plan-stops-card.route-unavailable .section-heading{grid-column:1/-1}.plan-stops-card.route-unavailable .plan-stops-layout{grid-column:1}.plan-stops-card.route-unavailable .plan-tools{grid-column:2;display:grid;gap:8px;margin-top:10px}.plan-stops-card.route-unavailable .plan-tools>button{width:100%}
.planner-layout.route-unavailable{gap:12px}
@media(max-width:900px){.plan-stops-card.route-unavailable{grid-template-columns:1fr}.plan-stops-card.route-unavailable .plan-tools{grid-column:1;display:flex;margin-top:0}.plan-stops-card.route-unavailable .plan-tools>button{width:auto}}
.planner-layout #stops{display:grid;gap:14px;min-width:0;margin:18px 0 0;padding-inline-start:26px}
.planner-layout #stops li{min-width:0;margin:0;padding:18px 20px;border:1px solid #dfe2d8;border-radius:18px;background:#fff;box-shadow:0 4px 16px #2b382408}
.planner-layout #stops li::marker{color:#686f61;font-weight:800}
.planner-layout #stops li[data-status=visited]::marker{color:#287458}
.planner-layout #stops li[data-status=suggested]::marker{color:#966c35}
.plan-stop-title{display:block;font-size:18px;line-height:1.35;overflow-wrap:anywhere}
.planner-layout #stops .stop-tools{gap:8px;margin:12px 0 0}
.planner-layout #stops .stop-tools select{width:auto;max-width:100%;min-height:44px;font-size:13px;font-weight:700;background:#f3f0e7}
.planner-layout #stops .stop-tools button{min-height:44px;font-size:12px;padding:8px 12px}
.plan-stop-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.plan-stop-meta span{padding:6px 10px;border-radius:9px;background:#eef2e8;color:#41523f;font-size:12px;font-weight:700;overflow-wrap:anywhere}
.plan-stop-note{margin:12px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#4f5449;font-size:13px;line-height:1.55}
.planner-layout #stops .stop-plan{border-top:1px solid #e6e8df;margin-top:12px}
.planner-layout #stops .stop-plan summary{font-size:13px;color:#4f5449}
.plan-route-controls{min-width:0;margin-top:18px;padding-inline-start:26px;border-inline-start:1px solid #dfe2d8}
.plan-stops-list{min-width:0}.plan-empty{display:grid;align-content:start;gap:16px;max-width:560px;margin:10px 0 18px;padding:22px;border:1px solid #dfe2d8;border-radius:16px;background:#f4f6ef}.plan-empty p{margin:0;line-height:1.5}.plan-empty button{justify-self:start}.plan-route-controls #route:disabled{cursor:not-allowed}
.account-export{max-width:680px;margin:24px 0}.account-export summary{font-weight:750;cursor:pointer}.account-export .muted{max-width:58ch}.account-export button{margin-top:4px}.account-export #data-export-status:empty{display:none}.account-export #data-export-status{font-size:14px;line-height:1.5;color:#8b3939}
.account-delete{max-width:680px;margin:24px 0}.account-delete>p{line-height:1.6;max-width:58ch}.account-delete .account-delete-stores{display:flex;flex-wrap:wrap;gap:18px}.account-delete form{max-width:440px}.account-delete input{max-width:240px}.account-delete .danger-button{border-color:#a7372f;color:#8b2924;background:#fff}.account-delete .danger-button:not(:disabled):hover{background:#fff0ee}.account-delete #account-delete-status{font-size:14px;line-height:1.5;color:#8b3939}.account-delete-entry{padding:14px 16px;margin-bottom:24px;border-radius:12px;background:#fff3ed;border:1px solid #ecc7b7}.account-delete-entry h2{font-size:21px;margin-bottom:6px}.account-delete-entry p{margin:0;line-height:1.5}
.delete-only>*:not(#account-delete){display:none}
.plan-route-controls .vehicle-options{margin-top:0}
.plan-route-controls #route{width:100%;max-width:none}
@media(max-width:900px){.plan-stops-layout{grid-template-columns:1fr;gap:0}.plan-route-controls{margin-top:22px;padding:20px 0 0;border-inline-start:0;border-top:1px solid #dfe2d8}}
@media(max-width:700px){.planner-layout #stops{padding-inline-start:22px}.planner-layout #stops li{padding:16px}.plan-stop-title{font-size:16px}.planner-layout #stops .stop-tools button{padding:8px 10px}}
.expense-card-heading strong{unicode-bidi:isolate}
.expenses-converter{margin:14px 0 20px}.expenses-converter h3{margin:0 0 12px}.expenses-fx-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.expenses-fx-fields label{min-width:0}.expenses-fx-fields input,.expenses-fx-fields select{width:100%;max-width:100%}.expenses-fx-result{font-size:22px;font-weight:800;color:#315e42;margin:14px 0 2px}.expenses-fx-note,.expenses-fx-owed,.expenses-editor-fx,.expenses-location-hint{display:block;color:#5f6e64;font-size:13px;line-height:1.5}.expenses-editor-fx,.expenses-location-hint{grid-column:1/-1;margin:0 0 12px}.expense-settlement{flex-wrap:wrap}.expenses-fx-owed{flex-basis:100%}@media(max-width:700px){.expenses-fx-fields{grid-template-columns:1fr}}

/* Match mobile ChatModal: compact 84% bubbles, olive own messages and image previews. */
#panel-chat{max-width:900px;margin-inline:auto}#messages{display:flex;flex-direction:column;align-items:flex-start;gap:14px;max-height:60vh;min-height:160px;padding:4px}#messages .message{flex-shrink:0;width:fit-content;max-width:min(84%,560px);border:1px solid #686f61;border-radius:14px;padding:10px 14px;background:#f3f0e7;white-space:pre-wrap}#messages .message.own{align-self:flex-end;background:#686f61;color:#fff;border-bottom-right-radius:4px}#messages .message:not(.own):not(.system){border-bottom-left-radius:4px}#messages .message.system{align-self:center;text-align:center;max-width:88%;background:#f3f0e7;font-size:12px}#messages .message-author{font-weight:700;color:#59664f;margin:0 0 6px}#messages .message-time{display:block;text-align:end;color:#687361;font-size:10px;margin:7px 0 0}#messages .own .message-time{color:#ffffffe0}#messages .image-message{padding:5px;max-width:min(84%,290px)}#messages .image-message .message-author{padding:5px 5px 0}#messages .image-message .message-time{padding:0 5px 3px}.chat-image-button{display:block;padding:0;border:0;border-radius:9px;overflow:hidden;background:transparent;line-height:0;max-width:100%}#messages .chat-image-button img{display:block;width:240px;max-width:100%;height:180px;object-fit:cover;border-radius:9px}#image-preview{border:0;border-radius:18px;background:#fffdf8;padding:14px;max-width:94vw;max-height:94vh}#image-preview::backdrop{background:#17221dd9}#image-preview button{display:block;margin-inline-start:auto;margin-bottom:12px}#preview-image{display:block;max-width:86vw;max-height:78vh;object-fit:contain}.map-style-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;margin:14px 0 0}.map-style-label select{width:auto;max-width:65%;font-size:12px;padding:9px}

/* TripEntryOverview in the mobile app is the product reference for this entry. */
#panel-overview{max-width:900px;margin-inline:auto}.overview-intro{margin:30px 0 24px;display:flex;justify-content:space-between;align-items:start;gap:18px}.overview-intro>button{font-size:12px;flex-shrink:0}.overview-intro h2{font-size:25px;margin-bottom:8px}.overview-intro p{font-size:14px;margin:0}.overview-next{background:#eef2e8;border-color:#c7d0bd;margin-bottom:24px;padding:28px}.overview-next h3{font-size:27px;line-height:1.3;overflow-wrap:anywhere;margin-bottom:12px}.overview-next .eyebrow{font-size:10px}.overview-next .primary{margin-top:12px}.overview-stay{font-size:14px;font-weight:700;color:#4f5948}.overview-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.65;max-height:12em;overflow:auto}.overview-progress{font-size:12px;color:#5f6e64;border-top:1px solid #d4dccd;padding-top:14px;margin-top:18px}.overview-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px}.overview-action{display:flex;align-items:center;gap:18px;text-align:start;min-height:108px;padding:22px;border-radius:20px;background:#fffdfb}.overview-action>span:first-child{flex:1;min-width:0;display:grid;gap:6px}.overview-action strong{font-size:17px}.overview-action span span{font-size:12px;font-weight:400;line-height:1.6;color:#5f6e64}.overview-action-primary{border-color:#aab99e;background:#f4f7ef}.overview-arrow{font-size:23px;color:#686f61;flex-shrink:0}.overview-app{margin:24px 0;font-size:12px}.tabs{flex-wrap:nowrap;overflow-x:auto}.tabs button{flex:1;white-space:nowrap}
@media(max-width:700px){.tabs{display:flex;gap:6px}.tabs button{min-width:86px;flex:0 0 auto;font-size:12px;padding:11px}.overview-intro{margin-top:24px;flex-wrap:wrap}.overview-intro h2{font-size:22px}.overview-intro p{font-size:13px}.overview-next{padding:22px}.overview-next h3{font-size:24px}.overview-next .primary{width:100%;font-size:12px}.overview-actions{grid-template-columns:1fr;gap:12px}.overview-action{min-height:90px;padding:20px}.overview-action strong{font-size:16px}}

.overview-app{margin:14px 0 8px}.overview-app-open{margin:0 0 24px}#plan-open-app{width:100%;margin:4px 0 12px}.trip-app-handoff{border:0;border-radius:20px;max-width:min(440px,92vw);padding:24px;text-align:center;box-shadow:0 18px 55px #18231d55}.trip-app-handoff::backdrop{background:#17221dba}.trip-app-handoff h2{margin:8px 0}.trip-app-handoff p{font-size:14px;line-height:1.55}.trip-app-handoff #trip-app-close{display:block;margin-inline-start:auto}.trip-app-handoff #trip-app-open{display:inline-block;min-height:44px;margin:8px auto 14px;padding:11px 18px;border:1px solid #686f61;border-radius:10px;background:#686f61;color:#fff;font-weight:700;line-height:22px;text-decoration:none}.trip-app-handoff #trip-app-open:hover{background:#515b4e}.trip-app-handoff #trip-app-qr-panel{margin:12px auto}.trip-app-handoff #trip-app-qr{display:block;margin:auto;max-width:100%;height:auto;image-rendering:pixelated}.trip-app-handoff .store-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:12px}.trip-app-handoff .store-actions a{font-size:12px}

/* Language changes preserve the session and drafts; technical values stay LTR. */
.language-picker{margin:0;gap:2px;font-size:10px;min-width:120px;max-width:185px}.language-picker select{font-size:12px;padding:8px 26px 8px 10px;min-height:38px}.topbar{height:auto;min-height:84px;padding-block:12px}.topbar nav{flex-wrap:wrap;justify-content:flex-end;gap:12px}.topbar nav a{white-space:nowrap}input[type=number],input[type=date],input[type=datetime-local]{direction:ltr;text-align:start}.trip-card-info,.overview-action,.place-result{text-align:start}.trip-card-info,.trip-heading>div:last-child{min-width:0}.trip-heading h1,.overview-action strong{overflow-wrap:anywhere}.trip-status{left:auto;inset-inline-start:16px}.back-button:before{margin-right:0;margin-inline-end:12px}.create-trip summary:before{margin-right:0;margin-inline-end:12px}#stops{padding-left:0;padding-inline-start:24px}[dir=rtl] .back-button:before{content:'→'}[dir=rtl] .overview-arrow{transform:scaleX(-1)}[dir=rtl] #messages{align-items:flex-start}[dir=rtl] #messages .message.own{border-bottom-right-radius:14px;border-bottom-left-radius:4px}[dir=rtl] #messages .message:not(.own):not(.system){border-bottom-left-radius:14px;border-bottom-right-radius:4px}.message-text,.overview-note{unicode-bidi:plaintext}.leaflet-container{direction:ltr}.leaflet-popup-content{direction:inherit}.tabs button{max-width:none}
@media(max-width:700px){.topbar{align-items:flex-start;gap:12px;padding-block:12px}.topbar .brand{margin-top:8px}.topbar nav{gap:8px;max-width:70%;align-items:center}.language-picker{min-width:100px;max-width:135px}.language-picker select{max-width:135px;font-size:11px}.topbar #logout{max-width:150px;white-space:normal}.trip-status{inset-inline-start:7px}.app-companion a{margin-left:0;margin-inline-start:49px}.trip-card-visual{min-width:90px;width:90px}.trip-heading-image{width:66px;flex-shrink:0}.trip-heading{gap:12px}}

/* Shared signal card follows the mobile trip overview; no empty placeholder. */
.signal-inbox{margin-block:1rem;border-inline-start:4px solid var(--accent,#686f61);overflow-wrap:anywhere}
.signal-inbox h2{font-size:1rem;color:var(--accent,#686f61);margin-block:0 .5rem}
.signal-inbox strong{display:block;font-size:1.15rem}
.signal-inbox p{margin-block:.5rem}
.signal-inbox .signal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-block:.75rem}
.signal-inbox .signal-error{color:#8b3327}
.signal-inbox time{display:block}
.signal-inbox[data-idle="true"]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:14px 18px}
.signal-inbox[data-idle="true"] h2{grid-column:1;grid-row:1;margin:0}
.signal-inbox[data-idle="true"] .signal-actions{grid-column:2;grid-row:1;margin:0}
.signal-inbox[data-idle="true"] .signal-coordination{grid-column:1/-1;align-items:center;margin:0}
.signal-inbox[data-idle="true"] .signal-coordination p{flex:1 1 280px;margin:0}
.signal-inbox[data-idle="true"] > .muted{grid-column:1/-1;margin:0}
@media(max-width:700px){.signal-inbox[data-idle="true"] .signal-coordination button{flex:1 1 calc(50% - .3rem)}}

/* Keep the next planned stop in the first desktop viewport, alongside coordination. */
@media(min-width:1000px){
 main:has(#trip:not([hidden])){padding-top:16px}
 #trip{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:24px;align-items:start}
 #back-trips,.tabs,#trip>[id^="panel-"]{grid-column:1/-1}
 #back-trips{justify-self:start;margin-bottom:0}
 .trip-heading{grid-column:1;grid-row:2;align-self:center;margin:0;min-width:0}
 #trip-signals{grid-column:2;grid-row:2;align-self:center;margin:0;min-width:0}
 #trip:has(#trip-signals[hidden]) .trip-heading{grid-column:1/-1}
 .tabs{margin-top:8px;margin-bottom:4px;padding-bottom:8px}
 #panel-overview .overview-intro{margin-top:8px;margin-bottom:12px}
 #panel-overview .overview-next{padding:18px}
}

.group-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.group-grid h2{font-size:20px}.group-members{list-style:none;margin:0 0 20px;padding:0}.group-members li{display:flex;gap:14px;align-items:center;min-height:64px;border-bottom:1px solid #e0e2d9}.group-members strong{min-width:0;overflow-wrap:anywhere;unicode-bidi:plaintext}.group-avatar{width:40px;height:40px;border-radius:50%;background:#e8ece2;display:grid;place-items:center;flex-shrink:0;font-weight:800;color:#686f61;position:relative;overflow:hidden}.group-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.group-vehicle{border-block-end:1px solid #e0e2d9;padding-block:0 20px;margin-block-end:20px;overflow-wrap:anywhere}.group-vehicle dl{display:grid;grid-template-columns:1fr auto;gap:8px}.group-vehicle dd{margin:0;font-weight:700}.group-vehicle button{max-width:100%;white-space:normal}.group-vehicle h3{font-size:18px}@media(max-width:700px){.group-grid{grid-template-columns:1fr;gap:16px}}
.group-vehicle-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.group-vehicle-head h3{margin:0}.group-vehicle-photo{width:56px;height:56px;border-radius:14px;background:#e8ece2;color:#686f61;display:grid;place-items:center;flex-shrink:0;position:relative;overflow:hidden;font-weight:800}.group-vehicle-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.group-member-content{min-width:0;flex:1;padding-block:12px}.group-member-role{display:block;color:#686f61;font-size:14px;margin-top:3px}.group-member-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.group-member-actions button{font-size:13px;padding:7px 10px;min-height:34px;white-space:normal;text-align:start}.group-member-remove{color:#a7372f;border-color:#a7372f}

#route-stages{padding-inline-start:1.7rem;margin-block:1rem}#route-stages li{padding:.8rem .2rem;border-block-end:1px solid var(--line,#d7dbd1)}#route-stages li::marker{font-weight:700;color:#596c48}.route-stage-names{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.5rem;align-items:baseline;font-weight:700;overflow-wrap:anywhere}.route-stage-names bdi{min-width:0;max-width:100%}#route-stages p{margin-block:.35rem 0}[dir=rtl] .route-stage-arrow{transform:scaleX(-1)}

.route-metrics{display:inline-flex;gap:.35rem;flex-wrap:wrap;align-items:baseline}

.signal-coordination{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}.signal-coordination[hidden]{display:none}.signal-coordination p{flex-basis:100%;margin:.2rem 0}.signal-coordination button{white-space:normal;min-width:0;max-width:100%}

.message-actions{display:block;margin-inline-start:auto;padding:0 .5rem;min-height:32px;font-size:1.3rem;background:transparent;border:0;color:inherit}
.chat-moderation-dialog{width:min(94vw,480px);max-height:85dvh;overflow:auto;border:1px solid var(--border,#ddd);border-radius:20px;padding:24px;color:var(--ink,#222);background:var(--paper,#fff)}
.chat-moderation-dialog::backdrop{background:#0008}.chat-moderation-dialog section{padding-block:12px;border-block-end:1px solid #ddd;margin-block-end:16px}.chat-moderation-dialog button{white-space:normal;overflow-wrap:anywhere}.chat-block-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-block:16px}.chat-block-row span{overflow-wrap:anywhere}.chat-moderation-dialog>button{margin-block-start:16px}

.plan-draft-review{border:1px solid var(--border,#dce1d7);border-radius:12px;padding:12px;margin-block:12px}.plan-draft-review p{white-space:pre-wrap;overflow-wrap:anywhere}.stop-plan textarea{resize:vertical}
.stop-plan-date-preview{display:block;min-height:1.35em;margin:-8px 0 12px;color:#4f5449;font-size:12px;font-weight:700}

.map-stop-details{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.map-stop-details span{padding:4px 7px;border-radius:8px;background:#eef2e8;color:#41523f;font-size:12px;font-weight:700}

.invite-handoff{margin-bottom:24px;overflow-wrap:anywhere}.invite-handoff button{margin-inline-end:10px;margin-block:6px}.invite-handoff p:first-child{font-weight:700;color:var(--green)}

.profile-completion{max-width:560px;margin:24px auto;overflow-wrap:anywhere}.profile-completion p{line-height:1.6}.profile-completion .profile-error{color:#8b3327}.profile-refresh{margin-block-start:12px;width:100%}

.auth-back{display:block;width:100%;margin-block-start:14px;background:transparent}.auth-back:hover{background:#edf0e8}#password-reset p{line-height:1.6}#password-reset [role=status]{overflow-wrap:anywhere}

#registration p{line-height:1.55;overflow-wrap:anywhere}.auth-consent{display:flex;align-items:flex-start;gap:12px;line-height:1.5}.auth-consent input{width:20px;min-width:20px;height:20px;margin-top:3px;accent-color:var(--green)}.auth-legal{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:.9rem}.password-toggle{justify-self:start;background:transparent;padding:6px 0;font-size:.9rem}.auth-feedback{border-inline-start:3px solid var(--green);padding-inline-start:12px}

.reset-completion{max-width:580px;margin:2rem auto;padding:clamp(1.25rem,4vw,2.5rem)}.reset-completion h1{font-size:clamp(1.6rem,4vw,2.2rem)}.reset-completion>p:first-child{color:var(--accent,#686f61);font-weight:800}.reset-completion .primary{width:100%;margin-top:1rem}.reset-completion form{margin-top:1.5rem}

:focus-visible{outline:3px solid #365127;outline-offset:4px}section[tabindex="-1"]:focus-visible{outline-offset:6px}
#chat-photo-form{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}#chat-photo-form .chat-photo-picker{position:relative;display:inline-flex;align-items:center;gap:8px;width:auto;margin:0;padding:9px 14px;border:1px solid var(--border);border-radius:10px;background:#f7f8f3;cursor:pointer;font-weight:650}#chat-photo-form .chat-photo-picker:focus-within{outline:3px solid #e1a636;outline-offset:3px}#chat-photo-form input[type=file]{position:absolute;inset:0;width:100%;height:100%;padding:0;opacity:0;cursor:pointer}#chat-photo-form .primary{width:auto;margin-inline-start:auto}#chat-photo-selected{display:flex;align-items:center;gap:8px}#chat-photo-preview{width:64px;height:64px;object-fit:cover;border-radius:9px;border:1px solid var(--border)}#chat-photo-clear{width:auto}

.trip-end-button{display:block;margin:24px auto 0;border:0;background:transparent;color:#5f6e64;font-size:12px;font-weight:800}.trip-end-button:hover{background:#f0f1e9}

.expenses-location-hint[hidden]{display:none}

.trip-heading>div:nth-child(2){min-width:0;flex:1}
#trip-open-map{margin-inline-start:auto;min-width:144px;flex-shrink:0}
@media(max-width:700px){.trip-heading{display:grid;grid-template-columns:66px minmax(0,1fr);align-items:start;gap:12px}.trip-heading-image{width:66px}#trip-open-map{grid-column:1/-1;width:100%;margin:0}}
@media(max-width:700px){.tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));overflow:visible}.tabs button{min-width:0;width:100%;white-space:normal;overflow-wrap:anywhere}}
