
:root{--ink:#172e2b;--green:#174a40;--muted:#7c8985;--line:#e2e8e4;--bg:#f5f7f4;--lime:#d9ef9a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #92b553;outline-offset:3px}.shell{display:flex;min-height:100vh}aside{width:232px;background:#153d35;color:#eff5ed;padding:32px 20px;display:flex;flex-direction:column;position:fixed;height:100vh}.brand{font-size:24px;letter-spacing:-1px;font-weight:700;display:flex;align-items:center;gap:10px}.logo{width:30px;height:34px;background:var(--lime);clip-path:polygon(0 0,100% 0,100% 66%,50% 100%,0 66%);color:#174a40;text-align:center;line-height:30px;font-size:20px}.brand-sub{font-size:10px;letter-spacing:2px;margin:9px 0 38px 40px;color:#a6beb2}.nav-label{font-size:10px;letter-spacing:1.8px;color:#8fab9e;margin:20px 12px 12px}nav button{width:100%;text-align:left;border:0;background:none;color:#aec5ba;padding:14px 16px;margin:4px 0;border-radius:6px;display:flex;align-items:center;gap:13px}nav button.active{background:#d9ef9a;color:#193d32;font-weight:650}nav svg{display:block;width:18px;height:18px;flex-shrink:0}.sidebar-bottom{margin-top:auto;border-top:1px solid #36594e;padding-top:24px;font-size:12px;color:#b5cabf}.avatar{display:inline-grid;place-items:center;border-radius:50%;background:#365d4e;color:#d9ef9a;width:33px;height:33px;margin-right:9px}.main{margin-left:232px;width:calc(100% - 232px)}header{height:78px;border-bottom:1px solid var(--line);background:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 38px}.breadcrumb{color:#91a09a;font-size:12px}.breadcrumb b{color:#40554b;font-weight:500;margin-left:12px}.workspace{font-size:12px;display:flex;align-items:center;gap:12px}.dot{width:6px;height:6px;display:inline-block;background:#84ab53;border-radius:50%;margin-right:6px}.content{max-width:1480px;padding:38px 38px 24px;margin:auto}.eyebrow{font-size:10px;letter-spacing:2px;color:#829187;font-weight:650}.heading{display:flex;justify-content:space-between;align-items:center;margin:12px 0 28px}h1{font-size:33px;letter-spacing:-1.2px;margin:0 0 10px;font-weight:650}.sub{color:#7c8981;margin:0;font-size:13px}.primary{border:0;background:var(--green);color:#fff;border-radius:6px;padding:12px 18px;font-size:12px;font-weight:600}.primary:hover{background:#226452}.secondary{background:white;border:1px solid var(--line);border-radius:6px;padding:10px 14px;color:#40554b;font-size:12px}.movement-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:18px 23px;border-bottom:1px solid var(--line)}.movement-filters[hidden]{display:none}.movement-filters label{display:grid;gap:7px;font-size:11px;color:#61766a;min-width:0}.movement-filters input,.movement-filters select{width:100%;min-width:0;height:40px;font-size:12px}.movement-filters .secondary{height:40px}@media(max-width:1100px){.movement-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.movement-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}.movement-confirmation{width:850px;max-height:85vh}.movement-confirmation .table-wrap{max-height:42vh}.movement-confirmation td{white-space:normal;line-height:1.5}.confirm-summary{padding:0 28px 20px;color:#61766a;font-size:13px;line-height:1.6}.confirm-delete{background:#963f32}.confirm-delete:hover{background:#7e3025}.movement-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 23px;border-bottom:1px solid var(--line);background:#fafbf8}.movement-selection[hidden]{display:none}.movement-selection .danger{border:1px solid #dfb8ad;border-radius:6px;background:#fff;padding:9px 12px}.movement-selection .danger:disabled{opacity:.45;cursor:not-allowed}.movement-check{width:16px;height:16px;accent-color:var(--green)}.movement-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:26px}.movement-actions[hidden]{display:none}.movement-actions button{min-height:43px}@media(max-width:850px){.movement-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:550px){.movement-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.movement-actions button:last-child{grid-column:1/-1}}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:28px}.stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:21px 23px;position:relative}.stat-label{color:#7c8985;font-size:12px}.stat-value{font-size:30px;letter-spacing:-1px;margin:12px 0 8px}.stat-note{font-size:11px;color:#809187}.stat-icon{position:absolute;right:22px;top:22px;background:#f2f6ed;padding:8px;border-radius:7px;color:#4a7058}.panel{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden}.toolbar[hidden],.stats[hidden]{display:none}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:20px 23px;border-bottom:1px solid var(--line);gap:12px}.tabs[hidden]{display:none}.tabs{display:flex;gap:19px;align-items:center;font-size:12px}.tab{border:0;background:none;color:#788981;padding:9px 0}.tab.active{color:var(--green);font-weight:650}.count{margin-left:6px;background:#eef3e9;padding:3px 6px;border-radius:4px;font-size:10px}.tools{display:flex;gap:9px}input,select{border:1px solid #dce4de;border-radius:6px;background:white;padding:10px 12px;color:var(--ink);outline:none}input:focus,select:focus{border-color:#66855e;box-shadow:0 0 0 3px #eaf1e2}.search{width:240px;font-size:12px;background:#fafbf9}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{background:#fafbf8;font-size:10px;letter-spacing:1px;color:#8a968f;padding:15px 23px;font-weight:550}td{padding:20px 23px;border-bottom:1px solid #eef1ec;font-size:12px;color:#61766a}tr:last-child td{border-bottom:0}.customer-cell{display:flex;align-items:center;gap:13px}.monogram{width:36px;height:36px;background:#edf1e7;border:1px solid #e1e8da;border-radius:8px;display:grid;place-items:center;color:#657658;font-weight:600;font-size:12px}.name{font-weight:600;color:#294339;margin-bottom:5px}.small{font-size:10px;color:#93a096}.badge{display:inline-flex;align-items:center;border-radius:4px;padding:5px 8px;background:#eff6e7;color:#5c7e3d;font-size:10px}.badge.inactive{background:#f1f1ee;color:#8b928b}.edit{border:0;background:none;color:#587467;padding:6px 8px;font-size:12px}.panel-foot{padding:17px 23px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;color:#93a096}.note{display:flex;gap:10px;color:#839083;font-size:11px;margin:21px 0;line-height:1.6}.note b{color:#536b54;font-weight:500}.empty{text-align:center;padding:60px;color:#839083}.editor-section{border:1px solid var(--line);border-radius:8px;padding:18px;margin:0;display:grid;gap:16px;min-width:0}.address-fields{border:0;padding:0;margin:0;min-width:0;display:grid;gap:12px}.address-fields legend{padding:0;margin-bottom:12px;font-size:12px;font-weight:500;color:#5e7366}.address-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.address-fields select{width:100%;min-width:0}.address-fields input{width:100%;min-width:0}@media(max-width:450px){.address-grid{grid-template-columns:1fr}}.editor-section[hidden]{display:none}.editor-section legend{font-size:13px;font-weight:650;padding:0 7px;color:var(--ink)}.service-card{border:1px solid var(--line);border-radius:7px;padding:13px;margin-bottom:12px;background:#fafbf8}.weekday-options{border:0;padding:0;margin:12px 0 0;min-width:0}.weekday-options legend{font-size:11px;font-weight:500;color:#6e8073;padding:0;margin-bottom:9px}.weekday-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.fields .weekday-option{display:flex;flex-direction:column;align-items:center;gap:7px;padding:9px 2px;border:1px solid var(--line);border-radius:5px;font-size:10px;background:white;cursor:pointer}.weekday-option:has(input:checked){background:#e9f2dc;border-color:#9db780}.weekday-option input{margin:0;padding:0;width:15px;height:15px;accent-color:var(--green)}.service-row{display:flex;align-items:center;gap:8px;margin-bottom:9px}.service-row select{flex:1;min-width:0}.service-row button{border:0;background:none;color:#a2594d;font-size:11px}.service-tags{display:flex;flex-wrap:wrap;gap:5px;max-width:240px;white-space:normal}.service-tag{display:inline-block;padding:5px 7px;background:#f0f4ec;border-radius:4px;font-size:10px;color:#5c7154}.contract-card{border:1px solid var(--line);border-radius:7px;padding:13px;margin:10px 0;background:#fafbf8}.attachment-area{margin-top:14px;padding-top:13px;border-top:1px solid var(--line);display:grid;gap:9px}.attachment-file{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px}.attachment-file span{flex:1;min-width:0;overflow-wrap:anywhere}.attachment-file button{border:0;background:none;color:var(--green);font-size:11px;padding:4px}.attachment-area input[type=file]{width:100%;font-size:11px;padding:8px}.contract-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.contract-card input{width:100%;min-width:0}.contract-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.contract-top button{border:0;background:none;color:#a2594d;font-size:11px}.contract-state{font-size:10px;color:#607d49}.contracts-status{display:flex;align-items:center;gap:10px;margin-top:12px}dialog{border:1px solid var(--line);border-radius:12px;padding:0;width:540px;max-width:92vw;color:var(--ink);box-shadow:0 25px 80px #143e3529}dialog::backdrop{background:#14382f60;backdrop-filter:blur(3px)}.modal-head{padding:25px 28px 18px;display:flex;justify-content:space-between;align-items:center}.modal-head h2{font-size:22px;letter-spacing:-.5px;margin:0}.close{background:none;border:0;font-size:22px;color:#7f8e81}.fields{padding:0 28px 22px;display:grid;gap:16px}.fields label{display:grid;gap:7px;font-size:12px;color:#5e7366}.picker-date{display:grid;gap:7px;margin:0 28px 18px;font-size:12px;color:#5e7366;max-width:220px}.primary:disabled{opacity:.45;cursor:not-allowed}.pickup-picker input[type=checkbox]{width:16px;height:16px;accent-color:var(--green)}.pickup-picker{width:900px;max-height:85vh}.picker-tools{display:flex;gap:12px;padding:0 28px 20px}.picker-tools input{flex:1;min-width:0}.picker-tools select{max-width:45%}.pickup-picker td{white-space:normal;line-height:1.5}.pickup-picker .table-wrap{max-height:48vh;overflow:auto}.pickup-picker th{position:sticky;top:0}.picker-count{font-size:11px;color:#7c8985;margin:0}@media(max-width:550px){.picker-tools{flex-direction:column}.picker-tools select{max-width:100%}}.modal-error{margin:0 28px 18px;padding:13px 15px;border:1px solid #d8a49a;border-radius:7px;background:#fff1ed;color:#823c2e;font-size:13px;line-height:1.5;outline:none}.modal-error:focus{box-shadow:0 0 0 3px #f7d9d1}.modal-foot{border-top:1px solid var(--line);padding:18px 28px;display:flex;justify-content:space-between;gap:10px}.danger{border:0;background:none;color:#a2594d;font-size:12px}.stop{display:flex;align-items:center;gap:7px;border:1px solid var(--line);padding:9px;border-radius:6px;margin:6px 0;font-size:12px}.stop span{flex:1}.stop button{border:0;background:#f1f5ed;border-radius:4px;padding:5px 8px}.hint{font-size:11px;line-height:1.5;color:#819080}.toast{position:fixed;right:25px;bottom:25px;background:#173e34;color:white;border-radius:8px;padding:15px 22px;box-shadow:0 8px 30px #0002;z-index:5}.mobile-brand{display:none}.export{font-size:11px;color:#849385;cursor:pointer;background:none;border:0;text-decoration:underline}@media(min-width:1500px){.content{padding-top:50px}}@media(max-width:1000px){aside{width:190px}.main{margin-left:190px;width:calc(100% - 190px)}.content{padding:28px 23px}.toolbar{align-items:flex-start;flex-direction:column}.tools{width:100%}.search{flex:1}header{padding:0 23px}.workspace{display:flex;gap:8px}.header-workspace-label,.header-separator{display:none}}@media(max-width:650px){aside{position:static;width:100%;height:auto;padding:18px}.shell{display:block}.brand-sub,.nav-label,.sidebar-bottom{display:none}nav{display:flex;margin-top:12px;gap:8px;overflow-x:auto}nav button{width:auto;flex:0 0 auto;justify-content:center;padding:11px 9px;font-size:12px}.main{margin:0;width:100%}header{height:48px}.content{padding:24px 16px}.heading{align-items:flex-start;gap:12px}h1{font-size:28px}.primary{padding:12px;font-size:11px}.stats{gap:7px}.stat{padding:15px 12px}.stat-value{font-size:25px}.stat-icon{display:none}.stat-note{font-size:9px}.stat-label{font-size:11px}.tools select{max-width:115px}.search{width:150px}th,td{padding:15px}.panel-foot{padding:15px}.sub{line-height:1.5}.eyebrow{font-size:9px}}

.auth-panel{max-width:420px;margin:60px auto;padding:25px;border:1px solid var(--line);border-radius:9px;background:#fff}.auth-panel label{display:grid;gap:8px;margin:15px 0}.auth-panel[hidden],.content[hidden]{display:none}.auth-panel .modal-error{margin:15px 0}.primary:disabled,.secondary:disabled,.danger:disabled{opacity:.45;cursor:not-allowed}.customer-cell .monogram{flex-shrink:0}.customer-cell .small{white-space:normal;overflow-wrap:anywhere;max-width:380px}

#fields.customer-fields input:not([type=checkbox]):not([type=file]),#fields.customer-fields select{width:100%;min-width:0;height:40px}#fields.customer-fields .address-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#fields.customer-fields label{min-width:0}@media(max-width:450px){#fields.customer-fields .address-grid{grid-template-columns:1fr}}

/* Keep search and filter controls the same size across Customers and Locations. */
.directory-toolbar .search{min-width:0}.directory-toolbar #typefilter{width:176px;min-width:0;flex:0 0 176px}@media(max-width:650px){.directory-toolbar #typefilter{width:115px;flex-basis:115px}}

.badge.draft{background:#fff3d9;color:#8c6a22}.tab[hidden]{display:none}

.generate-date-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin:0 28px 18px}.generate-date-row .picker-date{margin:0}.picker-weekday{display:flex;align-items:center;min-height:40px;font-size:13px;font-weight:600;color:var(--green)}.picker-weekday:empty{display:none}

.workspace{margin-left:auto;white-space:nowrap;flex-shrink:0}.header-avatar{width:28px;height:28px;margin:0;background:#eef3e9;color:#506b51}.header-separator{color:#d5ded6}@media(max-width:450px){header{padding:0 16px;gap:8px}.breadcrumb{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}
.sign-out-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:6px;border:0;border-radius:6px;background:var(--green);cursor:pointer;flex-shrink:0}.sign-out-icon[hidden]{display:none}.sign-out-icon img{display:block;width:22px;height:22px;object-fit:contain}.sign-out-icon:hover{background:var(--ink)}.sign-out-icon:focus-visible{outline:2px solid var(--green);outline-offset:3px}

.movement-customer{white-space:normal;overflow-wrap:anywhere}.movement-location{white-space:normal;max-width:300px;overflow-wrap:anywhere}.movement-location .name{margin:0}.movement-location .small{margin-top:5px;line-height:1.45}

.movement-filters input[type=date]{color-scheme:light;background:#fff;color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1;accent-color:var(--green)}
.movement-filters input[type=date]::-webkit-datetime-edit{color:var(--ink);-webkit-text-fill-color:var(--ink)}
.movement-filters input[type=date]::-webkit-datetime-edit-fields-wrapper{color:var(--ink);-webkit-text-fill-color:var(--ink)}

.movement-confirmation{width:1100px}.movement-confirmation th:nth-child(2),.movement-confirmation td:nth-child(2){white-space:nowrap}

/* Setup directories share a page, with a dedicated list for each record type. */
.setup-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:0 0 24px}.setup-tab{display:flex;align-items:center;gap:9px;border:0;border-bottom:3px solid transparent;background:transparent;padding:13px 18px;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.setup-tab.active{border-bottom-color:var(--green);color:var(--green);font-weight:600}.setup-tab:focus-visible{outline:2px solid var(--green);outline-offset:2px}.setup-address{white-space:normal;min-width:160px;max-width:320px;line-height:1.5}.setup-tabs[hidden]{display:none}@media(max-width:650px){.setup-tab{padding:12px 10px}.tools{flex-wrap:wrap}}

.setup-tabs{overflow-x:auto}.setup-tab{flex-shrink:0}
/* Dispatch keeps daily operations separate from reusable Setup records. */
#dispatch-page[hidden],#directory-panel[hidden]{display:none}.dispatch-datebar{display:flex;align-items:end;gap:20px;margin:0 0 22px;flex-wrap:wrap}.dispatch-datebar label,.dispatch-filters label,.dispatch-map-tools label{display:grid;gap:7px;font-size:12px;color:#5e7366}.dispatch-section{border:1px solid var(--line);border-radius:10px;background:white;margin-bottom:24px;overflow:hidden}.dispatch-section-head{padding:21px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.dispatch-section h2{font-size:18px;margin:0 0 8px;letter-spacing:-.3px}.dispatch-section p{margin:0}.dispatch-filters{padding:0 24px 18px;display:flex;align-items:end;gap:14px;flex-wrap:wrap}.dispatch-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,1fr);border-top:1px solid var(--line)}.dispatch-map-panel{min-width:0;padding:18px;border-right:1px solid var(--line)}.dispatch-map-tools{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:10px}.dispatch-map-tools label{width:100%}.dispatch-map-tools button,.dispatch-fence-actions button{font-size:11px;padding:9px 11px}#dispatch-map{height:480px;position:relative;margin-top:14px;background:#eef2ed;border:1px solid var(--line);border-radius:7px}.dispatch-fence-actions{display:flex;justify-content:space-between;gap:8px;margin-top:14px}.dispatch-work{min-width:0;max-height:850px;overflow:auto}.dispatch-assign{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:18px;border-bottom:1px solid var(--line);background:#fafbf8;position:sticky;top:0;z-index:1}.dispatch-assign span{font-size:12px}.dispatch-assign select{min-width:0;flex:1}.dispatch-assign button{font-size:11px;padding:11px}.dispatch-group{border-bottom:1px solid var(--line)}.dispatch-group summary{padding:15px 18px;cursor:pointer;font-size:13px;font-weight:600}.dispatch-group summary .small{display:block;margin:6px 0 0 18px;font-weight:400}.dispatch-select-all{display:flex;align-items:center;gap:8px;font-size:11px;padding:0 18px 12px;color:var(--muted)}.dispatch-select-all input,.dispatch-stop>input{width:16px;height:16px;flex-shrink:0;accent-color:var(--green)}.dispatch-stop{display:flex;align-items:start;gap:12px;padding:14px 18px;border-top:1px solid #f0f2ee;font-size:12px;line-height:1.6}.dispatch-stop .small{white-space:normal;line-height:1.6}.dispatch-stop-foot{display:flex;gap:10px;align-items:center;margin-top:6px;font-size:11px}.dispatch-message{background:#eff5eb;color:#315941;border:1px solid #cbdcc2;padding:13px 16px;border-radius:7px;margin-bottom:16px;font-size:12px}.dispatch-message.error{background:#fff2eb;border-color:#e6bbac;color:#8e4430}.dispatch-coordinates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dispatch-coordinates input{width:100%;min-width:0}.dispatch-map-pin{z-index:0;border:2px solid white;width:28px;height:28px;border-radius:50%;box-shadow:0 2px 5px #0005;color:white;font-size:20px;line-height:1;padding:0;cursor:pointer}.dispatch-corner{z-index:2;width:24px;height:24px;background:white;border:2px solid #253f37;border-radius:4px;font-size:11px;color:#213e34;padding:0;cursor:move}.dispatch-preview{width:740px;max-height:88vh}.dispatch-preview ul{margin:0;line-height:1.8}.dispatch-preview-workload{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}.dispatch-preview .fields{max-height:60vh;overflow:auto}#map-status{margin-top:10px}#dispatch-totals{font-size:12px;white-space:nowrap}@media(max-width:1150px){.dispatch-layout{grid-template-columns:1fr}.dispatch-map-panel{border-right:0;border-bottom:1px solid var(--line)}#dispatch-map{height:400px}.dispatch-work{max-height:650px}}@media(max-width:650px){.dispatch-section-head{align-items:start;padding:16px;flex-direction:column}.dispatch-datebar{gap:12px}.dispatch-map-panel{padding:12px}.dispatch-assign{position:static}.dispatch-datebar label{width:100%}.dispatch-datebar input,.dispatch-datebar select{width:100%}#dispatch-map{height:350px}}

.note[hidden]{display:none}

/* Address matches stay reviewable inside the pin dialog. */
#dispatch-dialog{max-height:90vh;overflow:auto}#pin-preview-map{height:240px;min-height:240px;border:1px solid var(--line);border-radius:7px;background:#eef2ed}#pin-preview-map[hidden]{display:none}.pin-match{display:block;width:100%;text-align:left;white-space:normal;padding:12px;background:#fafbf8;border:1px solid var(--line);border-radius:6px;margin:8px 0;color:var(--ink);cursor:pointer}.pin-match strong,.pin-match span{display:block;line-height:1.5}.pin-match span{font-size:11px;color:var(--muted);margin-top:4px}.pin-match[aria-pressed=true]{border-color:var(--green);background:#eff5eb}.pin-actions{display:flex;gap:10px;flex-wrap:wrap}#pin-results{font-size:12px;line-height:1.6}#pin-results p{margin:8px 0}#pin-results a{color:var(--green)}

#dispatch-dialog.location-pin-dialog{width:740px}#dispatch-dialog.location-pin-dialog .fields{max-height:65vh;overflow:auto;gap:12px}#dispatch-dialog.location-pin-dialog .fields p{margin:0}#pin-results .pin-match{margin:6px 0}#pin-results .hint{font-size:11px}

/* All three location workflows share the same metadata control height. */
#fields.location-fields .editor-section:first-of-type input,#fields.location-fields .editor-section:first-of-type select{width:100%;min-width:0;height:40px;box-sizing:border-box}

.bulk-geocoding{width:1000px;max-height:90vh}.bulk-body{padding:0 28px 20px;max-height:65vh;overflow:auto;font-size:12px}.bulk-body>p{line-height:1.6}.bulk-location-list{max-height:300px;overflow:auto;border:1px solid var(--line);margin:14px 0;padding:12px}.bulk-location-list label{display:flex;gap:10px;align-items:start;padding:8px}.bulk-location-list .small{display:block;margin-top:5px}.bulk-geocoding input[type=checkbox]{width:16px;height:16px;accent-color:var(--green);flex-shrink:0}.bulk-geocoding td{white-space:normal;vertical-align:top}.bulk-geocoding td:nth-child(2){min-width:200px;max-width:300px}.bulk-geocoding td select{width:100%;min-width:200px;max-width:450px}.bulk-error{color:#8e4430}.bulk-geocoding a{color:var(--green)}#bulk-geocode-locations[hidden]{display:none}

.heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.heading-actions .primary{white-space:nowrap}

.master-boundary-tools{display:flex;flex-wrap:wrap;gap:8px}.master-boundary-tools button{font-size:11px;padding:9px 12px}#master-boundary-map{height:420px;min-height:280px;border:1px solid var(--line);border-radius:7px;background:#eef2ed}@media(max-width:650px){#master-boundary-map{height:340px}}

/* Dispatch date, weekday and Branch share aligned control dimensions. */
.dispatch-datebar{gap:12px}.dispatch-datebar label{flex:0 1 180px;min-width:0}.dispatch-datebar .dispatch-day-field{flex-basis:150px}.dispatch-datebar input,.dispatch-datebar select,.dispatch-datebar output{display:block;width:100%;min-width:0;height:40px;box-sizing:border-box;font-size:13px}.dispatch-datebar output{border:1px solid #dce4de;border-radius:6px;background:white;padding:10px 12px;color:var(--ink);line-height:18px;font-weight:400}.dispatch-pin-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}.dispatch-pin-actions button{height:40px;white-space:nowrap;box-sizing:border-box}@media(max-width:650px){.dispatch-datebar label,.dispatch-datebar .dispatch-day-field{flex-basis:100%;width:100%}.dispatch-pin-actions{margin-left:0;width:100%}.dispatch-pin-actions button{flex:1}}

.bulk-customer-filter{display:grid;gap:7px;font-size:12px;color:#5e7366;margin:14px 0;max-width:360px}.bulk-customer-filter select,#pin-customer,#pin-location{width:100%;min-width:0;height:40px;box-sizing:border-box}#pin-location{max-width:100%}

.dispatch-route-label{z-index:1;background:#fffE;border:2px solid;border-radius:6px;padding:5px 9px;font-size:11px;font-weight:600;line-height:1.4;color:#203d33;white-space:nowrap;box-shadow:0 2px 7px #0002;pointer-events:none;opacity:.65}.dispatch-route-label.selected{border-width:3px;font-weight:700;opacity:1;box-shadow:0 2px 9px #0004}.dispatch-overlap-warning{background:#fff0eb;border:1px solid #d5a293;border-radius:6px;color:#8e3329;font-size:12px;line-height:1.6;padding:10px 12px;margin-top:12px!important}.dispatch-overlap-warning[hidden]{display:none}

.dispatch-stop-popup{font-size:12px;line-height:1.6;padding:3px 8px 3px 2px;overflow-wrap:anywhere}.dispatch-stop-popup strong{display:block;font-size:13px}.dispatch-stop-popup p{margin:5px 0 0}

.dispatch-route-summary th:not(:first-child),.dispatch-route-summary td:not(:first-child){text-align:right}.dispatch-route-summary td{white-space:normal}.dispatch-preview .dispatch-message p{margin-top:8px}

/* Keep stop filters with the list and view controls with the map. */
.dispatch-work>.dispatch-filters{padding:18px;border-bottom:1px solid var(--line);gap:12px}.dispatch-work>.dispatch-filters label{flex:1 1 140px;min-width:0}.dispatch-work>.dispatch-filters select{width:100%;min-width:0;height:40px}

/* Two assignment methods share the same daily plan, with distinct work areas. */
.dispatch-layout{gap:16px;padding:18px;background:var(--bg);align-items:start}.dispatch-map-panel,.dispatch-work{border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden}.dispatch-work{overflow:auto}.dispatch-method-head{display:flex;align-items:flex-start;gap:11px;padding:18px;background:#eef4ef;border-bottom:1px solid var(--line)}.dispatch-map-panel>.dispatch-method-head{margin:-18px -18px 18px}.dispatch-method-head svg{width:23px;height:23px;flex-shrink:0;color:var(--green)}.dispatch-method-head h3{margin:0 0 6px;font-size:15px;font-weight:650;color:var(--ink)}.dispatch-method-head p{font-size:12px;line-height:1.6;color:#5e7366}@media(max-width:650px){.dispatch-layout{padding:12px;gap:12px}.dispatch-map-panel>.dispatch-method-head{margin:-12px -12px 14px}.dispatch-method-head{padding:15px}}

#dialog.route-editor{width:1000px;max-height:92vh;overflow:hidden}#dialog.route-editor #form{display:flex;flex-direction:column;max-height:90vh}#dialog.route-editor .modal-head,#dialog.route-editor .modal-foot{flex-shrink:0}#dialog.route-editor #fields{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}#route-boundary-editor{grid-column:1/-1;min-width:0}.route-boundary-section{display:grid;gap:12px}.route-boundary-section p{margin:0;line-height:1.6}.route-boundary-section #master-boundary-map{height:380px;min-height:280px}@media(max-width:650px){#dialog.route-editor #fields{grid-template-columns:1fr}.route-boundary-section #master-boundary-map{height:320px}}

#dispatch-totals{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;white-space:normal}.dispatch-total-status{padding:5px 9px;border:1px solid var(--line);border-radius:6px;color:#5e7366;background:#f5f7f4;white-space:nowrap}.dispatch-total-status.warning{color:#855200;background:#fff4d6;border-color:#e4bf6b;font-weight:650}@media(max-width:650px){#dispatch-totals{justify-content:flex-start}}

.dispatch-stop-review{color:#855200;background:#fff4d6;border-radius:4px;padding:5px 8px;margin-top:6px;font-size:11px}
