:root{font-family:Arial,system-ui,sans-serif;color:#214c32;background:#f1f8f0;font-size:14px}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;background:linear-gradient(110deg,#68e07a,#55cb70)}.brand{display:flex;align-items:center;gap:12px}.brand b{background:#193f28;color:white;padding:7px 10px;border-radius:9px;font-size:18px}h1{margin:0;font-size:27px;color:#193f28}header small{display:block;margin-top:7px;color:#255637;line-height:1.5;font-size:11px}.actions,.inline,.heading{display:flex;align-items:center;gap:8px}.actions{flex-wrap:wrap;justify-content:flex-end}button,input,select{font:inherit;border:1px solid #d2e0ca;border-radius:8px;padding:10px;color:#214c32;background:#edf3e8}button{font-weight:bold;cursor:pointer}button:hover:enabled{background:#d9edda}button:disabled{opacity:.65;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #247442;outline-offset:2px}.actions button{background:#315e3c;color:white;border:0}.actions #review{background:#193f28}main{padding:14px 18px}.panel{background:#fff;border:1px solid #d9e6d1;border-radius:14px;padding:14px;box-shadow:0 3px 6px #1e4c3210}.selection{display:flex;align-items:center;gap:14px}.selection label{display:grid;gap:5px;font-size:11px;letter-spacing:1px;font-weight:bold;color:#62765a}.selection select{min-width:170px;background:white;font-size:14px;letter-spacing:normal;font-weight:normal}.selection #state{margin-left:auto;color:#657361;letter-spacing:normal}.notice{color:#826015;line-height:1.5;margin:10px 0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metrics small{display:block;font-size:10px;font-weight:bold;letter-spacing:1px;color:#62765a}.metrics strong{display:block;font-size:26px;margin-top:6px}.metrics .fuel{background:#dffbe3;border-color:#b0e8b9}.fuelNote{font-size:12px;font-weight:bold}.columns{display:grid;grid-template-columns:35% 1fr;gap:14px}.work{display:grid;gap:14px;align-content:start}.topPanels{display:grid;grid-template-columns:1fr 1fr;gap:14px}h2{font-size:19px;margin:0 0 12px}.heading{justify-content:space-between;flex-wrap:wrap}.heading h2{margin:0}.heading button{font-size:12px}.mapPanel{position:sticky;top:12px;align-self:start}#map{width:100%;background:#eef3e9;border-radius:10px;margin-top:16px;min-height:380px}#map .line{fill:none;stroke:#267746;stroke-width:3}#map .stop rect{fill:white;stroke:#214c32;stroke-width:2}#map .stop text{fill:#193f28;font-weight:bold;text-anchor:middle;dominant-baseline:middle}#map .stop{cursor:pointer}.card{padding:12px 8px;border-bottom:1px solid #e5eddf;display:flex;gap:9px;align-items:center}.card strong{font-size:14px}.card small{display:block;color:#657361;margin-top:4px}.card .body{flex:1;cursor:pointer}.card button{padding:6px 9px}.number{display:grid;place-items:center;background:#287443;color:white;width:30px;height:34px;border-radius:9px;font-size:17px;font-weight:bold}.hovered{background:#D7EEDB;border-radius:7px;box-shadow:inset 0 0 0 2px #287443}.dateDivider{background:#ddf0df;padding:10px;border-radius:7px;margin-top:12px;font-weight:bold}.muted{color:#657361;font-size:13px;line-height:1.5}.tag{font-size:10px;background:#edf3e8;padding:6px;border-radius:7px}.savings{font-size:12px;display:flex;justify-content:flex-end;gap:8px;margin:8px 0}.savings strong{min-width:60px}#search{background:white;width:100%;margin:8px 0}#clients,#route,#upcoming{max-height:350px;overflow:auto}#proposal{margin-bottom:14px;background:#e5f6e7}#error{background:#fff1dc;border:1px solid #dcab65;border-radius:10px;padding:14px;margin-bottom:14px}footer{padding:14px;text-align:center;font-size:12px;color:#657361}[hidden]{display:none!important}@media(max-width:1100px){header{align-items:flex-start}.columns{grid-template-columns:1fr}.mapPanel{position:static}.topPanels{grid-template-columns:1fr 1fr}#map{min-height:260px;max-height:350px}.selection{flex-wrap:wrap}}@media(max-width:650px){header{display:block}.actions{justify-content:flex-start;margin-top:12px}.topPanels{grid-template-columns:1fr}.metrics strong{font-size:18px}.selection #state{width:100%;margin:0}.selection select{min-width:140px}h1{font-size:23px}}
.dropTarget{min-height:70px}.card[draggable="true"],.mapChoice[draggable="true"]{cursor:grab}.card button{font-size:11px}.card{flex-wrap:wrap}.card .body{min-width:120px}#reschedule,#unallocated{max-height:260px;overflow:auto}
.card[draggable="true"]{user-select:none}
.card.dragging,.mapChoice.dragging{opacity:.55}.dropReady{outline:2px solid #368ad4;outline-offset:2px}.dropHover{outline:2px solid #247442;outline-offset:2px}.number{touch-action:none}
.sharedChange{background:#fff1dc;border:1px solid #dcab65;border-radius:8px;padding:12px}
.sharedDraftChange{position:sticky;top:0;z-index:2;box-shadow:0 2px 5px #1e4c3220}
#roadmap{width:100%;height:640px;margin-top:16px;border-radius:10px;z-index:0;background:#eaf0e6}.sgct-map-marker{background:white;border:2px solid #17324d;border-radius:50%;color:#17324d;text-align:center;line-height:28px;font-size:16px;font-weight:bold;box-shadow:0 2px 5px #193f2840}.sgct-map-marker:focus{outline:3px solid #55cb70}.leaflet-control-attribution{font-size:10px}.mapPanel .heading .inline{flex-wrap:wrap}
@media(max-width:1100px){#roadmap{height:360px}}
.mapChoice{border:1px solid #d2e0ca;border-radius:10px;padding:12px;margin:10px 0}.mapChoice.chosen{border-color:#247442;box-shadow:0 0 0 2px #247442}.optionSelect{display:block;border:0;background:transparent;text-align:left;padding:0;line-height:1.5}.mapChoice p{font-size:12px;line-height:1.6}.sgct-map-candidate{background:#d87923;border:2px solid white;border-radius:7px;text-align:center;line-height:28px;font-size:13px;font-weight:bold;color:white}.sgct-map-candidate.chosen{border-color:#17324d;box-shadow:0 0 0 2px white}#mapCountdown{font-size:12px;color:#657361}
#mapChoices{max-height:360px;overflow:auto}

dialog{border:1px solid #aac5b0;border-radius:8px;padding:24px;max-width:680px;width:90vw;max-height:85vh;overflow:auto}dialog::backdrop{background:#132b2070}.clientFields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.clientFields label{display:flex;flex-direction:column;gap:5px}.clientFields input,.clientFields select,.clientFields textarea{max-width:100%;width:100%;box-sizing:border-box}.clientFields input[type=checkbox]{width:auto}.clientFields fieldset{border:1px solid #ccdace}.clientFields fieldset label{display:inline-flex;flex-direction:row}#clientDraftStatus{color:#9c3125}@media(max-width:650px){.clientFields{grid-template-columns:1fr}}
#settingsForm fieldset{min-width:0;margin:14px 0}#settingsForm fieldset label{display:flex;flex-direction:column;width:100%;gap:5px;margin-bottom:10px}#settingsForm fieldset input{width:100%;min-width:0}#daySettings{display:grid;gap:12px;margin-top:12px}textarea{font:inherit;padding:10px;border:1px solid #d2e0ca;border-radius:8px;color:#214c32}#settingsStatus{color:#9c3125}

#weekEditor{max-width:1160px;width:95vw}#weekRows{overflow:auto;max-height:55vh;margin-top:16px}#weekRows table{width:100%;border-collapse:collapse;text-align:left}#weekRows th,#weekRows td{padding:10px;border-bottom:1px solid #d9e6d1;vertical-align:top}#weekRows th{position:sticky;top:0;background:#edf3e8}#weekRows td button{white-space:nowrap}

.weekMoveControls{padding:14px;background:#edf6ed;border:1px solid #d9e6d1;border-radius:8px;margin:14px 0}.weekMoveControls label{display:grid;gap:5px;margin-bottom:12px}.weekMoveControls select{width:100%}#weekMoveStatus{line-height:1.5}#weekRows{max-height:38vh}
.clientFields label:has(>input[type=checkbox]){flex-direction:row;align-items:center;gap:8px}.clientFields label:has(>input[type=checkbox]) input{flex:0 0 auto}

#messageComposer>label{display:grid;gap:6px;margin:14px 0}#messageComposer select,#messageText{width:100%}#messageRecipients{display:grid;gap:8px}#messagePreview article,#messageHistory article{padding:12px;border:1px solid #d9e6d1;border-radius:8px;margin-top:10px}#messagePreview p,#messageHistory p{white-space:pre-wrap;overflow-wrap:anywhere}#messageHistory{max-height:230px;overflow:auto}

.selection{flex-wrap:wrap}

.addressLookup{display:grid;gap:6px;align-content:start}.addressLookup button{justify-self:start}

.dailyOption{display:block}.dailyOption p{font-size:12px;line-height:1.6}.dailyOption>[data-apply-daily]{border:0;background:transparent;text-align:left;padding:0;white-space:normal}
[data-journal-rows] .card{display:block;padding:12px 0}[data-journal-rows] .card p{margin:7px 0;line-height:1.45}[data-journal-rows] .card strong{display:block}
[data-member-form]{display:grid;gap:10px;margin-top:18px}[data-member-form] label{display:grid;gap:5px}[data-member-form] input[type=checkbox]{width:auto;justify-self:start}

.sgct-rebooking-focus span{display:block;box-sizing:border-box;width:46px;height:46px;border-radius:50%;background:#dc2d2d;border:3px solid white;box-shadow:0 1px 5px #0006;animation:sgct-rebooking-flash 1.3s steps(1,end) infinite}.sgct-rebooking-label{width:220px;max-width:260px;white-space:normal;overflow-wrap:anywhere;color:#781414;font-weight:bold;background:white;border-color:white}
@keyframes sgct-rebooking-flash{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.sgct-rebooking-focus span{animation:none}}

#recoveryDrafts{width:760px;max-width:92vw}#recoveryDrafts article{border-bottom:1px solid #d9e6d1;padding:12px 0}#recoveryDrafts [data-draft-list]{max-height:30vh;overflow:auto}#recoveryDrafts [data-draft-payload]{overflow-wrap:anywhere;background:#f3f7ef;padding:14px;max-height:40vh;overflow:auto}#recoveryDrafts dl{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:10px;margin:0}#recoveryDrafts dt{font-weight:bold}#recoveryDrafts dd{white-space:pre-wrap;margin:0}

.card.flexibility-1,.mapChoice.flexibility-1{background:#FFF0C2;border-radius:7px}.card.flexibility-2,.mapChoice.flexibility-2{background:#DDF4D8;border-radius:7px}

#dragFeedback{position:fixed;left:18px;bottom:18px;z-index:1100;pointer-events:none;max-width:min(500px,calc(100vw - 36px));padding:14px 18px;border:2px solid #247442;border-radius:9px;background:#f2fff1;color:#193f28;white-space:pre-line;box-shadow:0 3px 16px #193f2833;line-height:1.5}

#smsCentre{max-width:900px;width:92vw}#smsCentre .smsPause{padding:12px;background:#fff0c2;border-radius:7px}#smsCentre [data-sms-counts]{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}#smsCentre [data-sms-rows]{max-height:45vh;overflow:auto;margin:14px 0}#smsCentre article{border-bottom:1px solid #d9e6d1;padding:14px 0}#smsCentre .smsText{white-space:pre-wrap;overflow-wrap:anywhere}#smsCentre small{overflow-wrap:anywhere}

[data-sms-settings-form]{display:grid;gap:12px;margin-top:16px}[data-sms-settings-form] label{display:grid;gap:6px}[data-sms-settings-form] input{width:100%;box-sizing:border-box}

[data-reminder-form]{display:grid;gap:12px;margin-top:16px}[data-reminder-form] label{display:grid;gap:6px}[data-reminder-template]{width:100%;box-sizing:border-box}[data-reminder-window]{max-width:180px}

#customerSmsPanel{min-width:0}#customerSmsPanel #messageText{min-height:82px;max-height:160px;resize:vertical}#customerSmsPanel #messagePreview,#customerSmsPanel #messageHistory{max-height:180px;overflow:auto}#messageComposer select{max-width:100%;box-sizing:border-box}

#clientDraftReview{max-width:960px;width:95vw}#clientDraftReview table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}#clientDraftReview th,#clientDraftReview td{padding:10px;border-bottom:1px solid #d9e6d1;vertical-align:top;overflow-wrap:anywhere;white-space:pre-wrap}#clientDraftReview .draftReviewActions{position:sticky;bottom:-24px;background:#fff;border-top:1px solid #d9e6d1;padding:12px 0;margin-top:12px}

#visitDraftReview{max-width:960px;width:95vw}#visitDraftReview table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}#visitDraftReview th,#visitDraftReview td{padding:10px;border-bottom:1px solid #d9e6d1;vertical-align:top;overflow-wrap:anywhere;white-space:pre-wrap}#visitDraftReview .draftReviewActions{position:sticky;bottom:-24px;background:#fff;border-top:1px solid #d9e6d1;padding:12px 0;margin-top:12px}

#settingsDraftReview{max-width:960px;width:95vw}#settingsDraftReview table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}#settingsDraftReview th,#settingsDraftReview td{padding:10px;border-bottom:1px solid #d9e6d1;vertical-align:top;overflow-wrap:anywhere;white-space:pre-wrap}#settingsDraftReview .draftReviewActions{position:sticky;bottom:-24px;background:#fff;border-top:1px solid #d9e6d1;padding:12px 0;margin-top:12px}

.smsReminderPreview{border-top:1px solid #d9e6d1;margin-top:20px;padding-top:12px}.smsReminderPreview article{padding:10px;background:#f4f8f0;border:1px solid #d9e6d1;margin:8px 0;overflow-wrap:anywhere}.smsReminderPreview .previewMessage{white-space:pre-wrap}

.selectedClientDragCard{background:#ECF4E0;border:1px solid #D2E3BF;border-radius:9px;padding:12px}

#integrationAttemptReview{max-width:1050px}#integrationAttemptReview .tableScroll{overflow-x:auto;margin:12px 0}#integrationAttemptReview table{border-collapse:collapse;min-width:960px;width:100%}#integrationAttemptReview th,#integrationAttemptReview td{text-align:left;vertical-align:top;padding:9px;border-bottom:1px solid #dce6de}#integrationAttemptReview td:nth-child(2){font-family:monospace;font-size:12px;overflow-wrap:anywhere;min-width:145px}#integrationAttemptReview th:nth-child(4),#integrationAttemptReview th:nth-child(5){min-width:130px}
/* Desktop portrait workspace: map spans daily/client and upcoming rows. */
.fuelBar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:7px 0}.fuelBar p{margin:0}.fuelBar #fuelStatus{font-size:11px}.fuelBar button{font-size:12px;padding:7px 10px}#routeEndpoints,#routeConflicts{margin:4px 0}.brand{flex:0 0 auto}.brand h1{white-space:nowrap}
.portraitWorkspace{grid-template-columns:var(--portrait-map-width,35%) minmax(0,1fr);margin-top:10px}.portraitWorkspace .mapPanel{position:relative;top:auto;height:var(--portrait-height,660px);padding:0;overflow:hidden}.portraitWorkspace #roadmap{height:100%;margin:0;border-radius:14px}.portraitWorkspace .mapPanel>.heading{position:absolute;top:8px;left:8px;right:8px;z-index:500;pointer-events:none}.portraitWorkspace .mapPanel>.heading h2{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.portraitWorkspace .mapPanel>.heading .inline{pointer-events:auto}.portraitWorkspace #mapStatus{position:absolute;bottom:20px;left:8px;right:8px;z-index:500;background:#fffffff0;border-radius:6px;padding:5px;margin:0;pointer-events:none}.portraitWorkspace #mapStatus:empty{display:none}
.portraitOperations{height:var(--portrait-height,660px);grid-template-rows:minmax(0,1fr) minmax(0,1fr);align-content:stretch;min-width:0}.portraitOperations>.topPanels{min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.portraitOperations .panel{min-height:0;min-width:0;display:flex;flex-direction:column}.portraitOperations #dailyContent{display:flex;flex-direction:column;flex:1;min-height:0}.portraitOperations #route,.portraitOperations #clients,.portraitOperations #upcoming{flex:1;min-height:0;max-height:none;overflow:auto}.portraitOperations #mapOptions{flex:1;min-height:0;overflow:auto}.portraitOperations #dailyContent>.muted{margin:6px 0 0}.portraitOperations #scope{margin:8px 0 0}.portraitOperations .heading{gap:6px}.portraitOperations .heading .inline{flex-wrap:wrap}.portraitOperations #upcomingPanel>p{margin:0 0 6px}.mapHelp{margin:7px 0 12px}.supplementaryWork{width:100%}
@media(max-width:1100px){.portraitWorkspace{grid-template-columns:minmax(0,1fr)}.portraitWorkspace .mapPanel{height:360px}.portraitOperations{height:auto;grid-template-rows:auto auto}.portraitOperations #route,.portraitOperations #clients,.portraitOperations #upcoming{flex:initial;max-height:350px}.portraitOperations #dailyContent{flex:initial}.portraitOperations #mapOptions{max-height:350px}}
@media(max-width:650px){.portraitOperations>.topPanels{grid-template-columns:minmax(0,1fr)}.fuelBar{align-items:flex-start}.brand h1{white-space:normal}}
.portraitWorkspace .leaflet-top.leaflet-left{top:46px}

.sgct-map-marker.sgct-stop-selected{border-color:#d86800;background:#fff0d8;color:#713400;box-shadow:0 0 0 5px #ffae3970,0 2px 6px #0005}
.sgct-map-marker.sgct-stop-pulse span{display:block;border-radius:50%;animation:sgct-stop-pulse 1s ease-out 5}
@keyframes sgct-stop-pulse{0%{box-shadow:0 0 0 0 #e67900aa}100%{box-shadow:0 0 0 20px #e6790000}}
#route .card.map-selected{background:#fff0d8;box-shadow:inset 0 0 0 2px #d86800;border-radius:7px}
@media(prefers-reduced-motion:reduce){.sgct-map-marker.sgct-stop-pulse span{animation:none}}
