:root{--radius:14px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#f4f6f8}.login-art{background:#12283f;color:white;display:flex;flex-direction:column;justify-content:center;padding:12%;position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;width:650px;height:650px;border:1px solid #3c6672;border-radius:50%;left:30%;top:40%;box-shadow:0 0 0 90px #1d394633,0 0 0 180px #284e4933}.login-art h1{font-size:54px;letter-spacing:-2px}.login-art p{font-size:19px;line-height:1.7;max-width:380px;color:#b9cbd7}.login-art .eyebrow{color:#64d7c3}.login-box{display:flex;align-items:center;justify-content:center;padding:40px}.login-box form{width:100%;max-width:370px}.login-box .field{margin:20px 0}.login-box .btn{width:100%;justify-content:center}.login-box h2{font-size:30px}.loading{padding:100px;text-align:center}.searchline{display:flex;gap:12px;margin:0 0 20px;align-items:center}.searchline input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:12px;background:var(--panel);color:var(--text)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px;border-bottom:1px solid var(--line);padding-bottom:12px}.tabs button.active{background:var(--teal,#087e78);color:white}.record-list{display:grid;gap:12px}.record-card{padding:20px;display:flex;align-items:center;gap:18px}.record-card .title{font-weight:650;font-size:16px;margin:0 0 7px}.record-card .desc{color:var(--muted);font-size:13px;line-height:1.5}.record-card:hover{border-color:#94b8b4}.empty-state{padding:55px 28px;text-align:center}.empty-state h3{margin-bottom:12px}.empty-state p{color:var(--muted);max-width:600px;margin:0 auto 20px}.modal-body{max-height:72vh;overflow:auto}.modal{max-height:94vh}.modal.wide{width:min(1100px,96vw)}.modal-head h2{font-size:20px}.modal-foot{flex-wrap:wrap}.form-grid .full{grid-column:1/-1}.form-grid fieldset{min-width:0;border:1px solid var(--line);border-radius:10px;padding:12px}.form-grid legend{font-size:12px;color:var(--muted)}.multi-list{max-height:175px;overflow:auto;margin-top:8px}.multi-list label{display:flex;gap:9px;padding:7px;align-items:center;font-size:13px}.multi-list input{width:auto}.multi-filter{width:100%;padding:8px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--text)}.step-editor{padding:12px;background:var(--bg);border:1px solid var(--line);border-radius:8px;margin:8px 0}.step-editor textarea{width:100%;min-height:55px}.step-editor .step-tools{display:flex;gap:7px;align-items:center;margin-top:9px}.step-editor .step-tools select{max-width:100%}.geo-map{height:330px;border:1px solid var(--line);border-radius:12px;background:#e8edee}.geo-main{height:580px}.geo-note{font-size:12px;color:var(--muted);margin:8px 0 14px}.leaflet-container{font-family:inherit}.leaflet-popup-content{color:#172b3a}.row-fields{display:flex;gap:12px}.row-fields>*{flex:1}.kv{display:grid;grid-template-columns:180px 1fr;gap:10px;font-size:14px;margin:18px 0}.kv dt{color:var(--muted)}.kv dd{margin:0;white-space:pre-wrap}.report-table{width:100%;border-collapse:collapse;font-size:13px}.report-table th,.report-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}.report-table th{font-weight:600;color:var(--muted)}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.error-inline{background:#fbe9e9;color:#a22;padding:12px;border-radius:8px;margin:10px 0}.muted-note{color:var(--muted);font-size:13px;line-height:1.6}.page-head .actions{max-width:50%;flex-wrap:wrap;justify-content:flex-end}.admin-content{padding:20px}.admin-content .btn{margin:5px}.admin-content input[type=checkbox]{width:auto}.chip-grid{display:flex;flex-wrap:wrap;gap:7px}.step-row h3{font-size:14px}.footer-status{display:flex;justify-content:space-between;margin-top:28px;color:var(--muted);font-size:11px}.table-scroll{overflow:auto}.busy{opacity:.65;pointer-events:none}.danger{color:#a7353d}.map-layout{display:grid;grid-template-columns:1fr 310px;gap:20px}.small-title{font-size:12px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);margin:22px 0 12px}.form-message{grid-column:1/-1}.pill{display:inline-block;padding:4px 8px;border-radius:5px;background:#e7f3ee;color:#246459;font-size:12px}.save-notice{padding:13px 18px;background:#fff5d8;border-radius:8px;margin-bottom:18px;color:#79581b}.hint{line-height:1.7}.tile-summary{padding:15px}.admin-tile h3{margin:0}.profile strong{font-size:13px}.bar-search{min-width:180px;max-width:260px}.bar-search input{border:0;background:transparent;color:var(--text);padding:7px;width:100%}.brand em{font-size:10px}.stats .stat strong{font-size:35px}.record-actions{flex-shrink:0;display:flex;gap:7px;flex-wrap:wrap}.topbar .top-actions{gap:14px}.modal input[type=checkbox]{accent-color:#087e78}.report-print-title{display:none}
@media(max-width:1000px){.map-layout{grid-template-columns:1fr}.page-head .actions{max-width:100%}.topbar .crumb{display:none}.record-card{flex-wrap:wrap}.login-screen{grid-template-columns:1fr}.login-art{display:none}}
@media print{.sidebar,.topbar,.footer-status,.skip,.modal-head button,.modal-foot,.no-print,#toast{display:none!important}.main{margin:0!important;padding:0!important}#overlay:has(.overlay)~*{display:none}.overlay{position:static;background:white;display:block;padding:0}.modal,.modal.wide{width:100%;max-height:none;box-shadow:none;border:0}.modal-body{max-height:none;overflow:visible}body:has(.overlay) #app{display:none}.report-print-title{display:block}.card{break-inside:avoid}.report-table tr{break-inside:avoid}body{background:white;color:black}}

/* Keep Safari rubber-band scrolling inside the application panels. */
html{background:var(--bg);overscroll-behavior:none}
body{overscroll-behavior:none}
body.signed-in{height:100vh;height:100dvh;overflow:hidden}
.signed-in #app{height:100%;overflow:hidden}
.signed-in .topbar{position:fixed;left:244px;right:0;top:0;margin-left:0}
.signed-in .main{position:fixed;left:244px;right:0;top:77px;bottom:0;margin-left:0;overflow:auto;overscroll-behavior:none;scrollbar-gutter:stable;max-width:none}
.nav{min-height:0;overscroll-behavior:none;overflow-anchor:none}
.sidebar .brand,.sidebar .org,.sidebar-foot{flex-shrink:0}
.modal-body,.multi-list{overscroll-behavior:contain}
@media(max-width:1200px){.signed-in .topbar,.signed-in .main{left:212px}}
@media(max-width:900px){.signed-in .topbar,.signed-in .main{left:74px}}
@media(max-width:600px){.signed-in .main{top:65px}}
@media print{body.signed-in,.signed-in #app{height:auto;overflow:visible}.signed-in .main{position:static;overflow:visible;max-height:none}}

.map-toolbar{padding:12px 15px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.leaflet-control-layers{font-size:12px;line-height:1.5}.leaflet-control-layers label{cursor:pointer}

/* Slow pulse stays visible; respect reduced-motion preferences. */
@keyframes road-alert-pulse {0%,100% {stroke-opacity:.95}50% {stroke-opacity:.4}}
.road-alert-pulse {animation:road-alert-pulse 2.4s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.road-alert-pulse{animation:none}}
.map-layout aside .record-card{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
.map-layout aside .record-card .event-symbol{display:none}
.map-layout aside .record-card .grow{min-width:0;width:100%}
.map-layout aside .record-actions{display:flex;flex-wrap:wrap;gap:6px}
.map-layout aside .record-card .title,.map-layout aside .record-card .desc{overflow-wrap:anywhere}

/* Unread notifications are visible without relying on colour alone. */
.btn.unread-bell {color:#b91c1c;background:#fee2e2;border-color:#fca5a5;font-weight:700}
.nav .unread-count {background:#b91c1c;color:#fff;margin-left:auto;min-width:24px;text-align:center}
.dark .btn.unread-bell {color:#fecaca;background:#601e28;border-color:#f87171}
#daily-assignments {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#daily-assignments .multi {grid-column:auto;min-width:0}
#daily-assignments .multi-list {max-height:160px;overflow:auto}
#failure-note[hidden] {display:none}
@media(max-width:650px){#daily-assignments{grid-template-columns:1fr}}

.report-table td {white-space:pre-wrap;overflow-wrap:anywhere}

.audit-history{display:grid;gap:16px}.audit-entry{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.audit-entry>header{padding:18px 20px;border-bottom:1px solid var(--line);background:var(--bg)}.audit-entry h3{margin:0 0 8px;font-size:16px}.audit-meta{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:13px;color:var(--muted)}.audit-fields{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px 20px;margin:0;padding:20px;font-size:14px;line-height:1.6}.audit-fields dt{color:var(--muted)}.audit-fields dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.audit-fields .audit-fields{padding:0;grid-template-columns:140px minmax(0,1fr)}.audit-entry>.muted-note,.audit-note{padding:16px 20px;white-space:pre-wrap;overflow-wrap:anywhere}.audit-changes{padding:0 20px}.audit-change{padding:16px 0;border-bottom:1px solid var(--line)}.audit-change:last-child{border:0}.audit-change h4{margin:0 0 12px;font-size:14px}.audit-comparison{display:grid;grid-template-columns:1fr 1fr;gap:16px}.audit-comparison>div{padding:12px;background:var(--bg);border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;line-height:1.6}.audit-caption{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.audit-items{margin:0;padding-left:20px}.audit-items>li+li{margin-top:10px}@media(max-width:650px){.audit-fields,.audit-fields .audit-fields,.audit-comparison{grid-template-columns:1fr}.audit-fields{gap:4px}.audit-fields dd{margin-bottom:12px}}@media print{.audit-entry{overflow:visible;break-inside:auto}.audit-entry>header{break-after:avoid}.audit-change{break-inside:avoid}}

.monitoring-section{margin:0 0 26px}.monitoring-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:20px}.monitor-card{padding:22px;min-width:0}.monitor-card .section-title{margin:0 0 16px}.monitor-card h3{margin:0;font-size:18px}.water-attention{border:2px solid #c53f45!important;box-shadow:0 0 0 3px #c53f4512}.water-alert{color:#a81f2b;background:#ffebed;padding:12px;border-radius:8px;font-weight:600}.monitor-warning{background:#fff3d6;color:#765211;padding:10px 12px;border-radius:8px;line-height:1.5}.water-mini,.weather-place{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.water-mini:last-child,.weather-place:last-child{border-bottom:0}.water-mini>div,.weather-place>div{min-width:0}.water-mini>div:last-child{text-align:right;max-width:55%}.water-mini small,.weather-place small{display:block;font-size:12px;color:var(--muted);line-height:1.7}.water-number{display:block;font-size:26px;font-weight:700;line-height:1.4}.water-number small{display:inline;font-size:13px;font-weight:400}.water-trend{display:block;font-size:12px;color:var(--muted);line-height:1.5}.water-trend.rising{color:#b12d39;font-weight:600}.water-mini .badge{margin-top:6px;white-space:normal;max-width:100%}.monitor-source{font-size:11px;line-height:1.7;color:var(--muted);margin-top:14px}.weather-value{text-align:right;font-size:22px;font-weight:650;flex-shrink:0}.weather-value .btn{display:block;margin:5px 0 0 auto;font-size:11px}.lsop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.station-card{padding:22px;min-width:0}.station-card .section-title{margin-top:0;align-items:flex-start;gap:12px}.station-card h2{margin:0;font-size:19px}.station-card .badge{white-space:normal;max-width:50%}.dark .water-alert{background:#481e29;color:#ffc7ce}.dark .monitor-warning{background:#47391b;color:#ffdea1}.dark .water-trend.rising{color:#ffacb4}@media(max-width:1100px){.monitoring-grid{grid-template-columns:1fr}}@media(max-width:700px){.lsop-grid{grid-template-columns:1fr}.monitor-card,.station-card{padding:16px}.monitor-card .section-title{flex-wrap:wrap}.water-mini{gap:10px}.water-number{font-size:23px}}
/* Operational map: layers, time and metric zones. */
.map-filters{margin-bottom:18px}.map-filters fieldset{border:0;padding:0;margin:0}.map-filters legend{font-weight:700;margin-bottom:12px}.map-layer-checks{display:flex;flex-wrap:wrap;gap:12px 24px}.map-layer-checks label{display:flex;align-items:center;gap:8px;font-size:13px}.map-layer-checks input{width:17px;height:17px;accent-color:#187f75}.map-date-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:18px 0 10px}.map-date-filters .field{min-width:210px}.map-date-filters #map-count{font-size:13px;padding:8px 0;color:var(--muted)}.map-operations aside{max-height:900px;overflow:auto}.map-operations aside h2{margin:12px 0}.map-operations .record-card{flex-wrap:wrap}.map-operations .record-card .record-actions{flex-wrap:wrap}.map-inspect strong,#utm-readout,#zone-utm,[data-point-utm]{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.map-inspect p{margin:8px 0}.utm-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.utm-box{padding:14px;border:1px solid var(--line,#dce4ea);border-radius:9px;background:var(--bg,#f5f8fa)}.zone-point-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.zone-point-list .card{min-width:0}.zone-point-list p,.proposal p{margin:8px 0;overflow-wrap:anywhere}.proposal{border-bottom:1px solid var(--line,#dce4ea);padding:14px 0}#zone-proposals{margin-top:18px}#zone-map{height:390px}@media(max-width:700px){.utm-inputs,.zone-point-list{grid-template-columns:1fr}.map-operations aside{max-height:none}.map-date-filters{align-items:stretch}.map-layer-checks{gap:12px}.map-operations{grid-template-columns:1fr}}

.mileage-preview{position:relative;max-width:700px;background:#fff;border:1px solid #bcc8d2}.mileage-preview img{display:block;width:100%;height:auto;min-height:80px}.mileage-preview>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#c21d32;text-shadow:0 0 2px white;font-size:30px;pointer-events:none}
/* RESIRO operational additions */
.event-state-red{border-left:4px solid #c9323d}.event-state-blue{border-left:4px solid #2872b9}.event-state-green{border-left:4px solid #16856b}.badge.blue{background:#dfedff;color:#16568b}.life-threat{display:inline-flex;align-items:center;justify-content:center;background:#c51c32;color:white;font-weight:900;width:25px;height:25px;border-radius:50%;margin-right:8px;animation:life-pulse 1.4s ease-in-out infinite;vertical-align:middle;flex-shrink:0}.checklist-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line,#dae2ea)}.checklist-item small{display:block;color:var(--muted,#687e8f);margin-top:5px}.stat{font:inherit;text-align:left;cursor:pointer;color:inherit}.stat:hover{box-shadow:0 0 0 2px #438ab2}.stock-balance strong{font-size:28px}.delivery-copy{background:var(--surface,#f2f5f9);padding:20px;border-radius:12px}#lsop-cards[hidden],.station-card[hidden],#lsop-table tr[hidden]{display:none}.actions label select{margin-left:10px;max-width:320px;padding:8px}@keyframes life-pulse{50%{opacity:.35;box-shadow:0 0 0 5px #d6263220}}@media(prefers-reduced-motion:reduce){.life-threat{animation:none}}@media print{.life-threat{animation:none}}

.public-return{position:fixed;top:18px;left:22px;z-index:3;font-size:13px;color:#166f72}.signed-in .public-return{display:none}

.public-return{background:#ffffffed;padding:8px 12px;border-radius:6px;box-shadow:0 1px 5px #102a3820}
/* Compact monitoring dashboard */
.monitoring-grid{grid-template-columns:minmax(0,1fr);gap:14px}.monitoring-section{margin-bottom:14px}.monitor-card{padding:18px 22px}.monitor-eyebrow{display:block;font-size:10px;letter-spacing:1.4px;font-weight:700;color:var(--muted);margin-bottom:5px}.monitor-card .section-title{margin-bottom:12px}.monitor-card .monitor-source{margin:10px 0 0}.lsop-strip .water-mini-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.lsop-strip .water-mini{border:1px solid #edc8cc;border-radius:10px;background:#fff6f6;padding:12px}.monitor-empty{margin:4px 0;font-size:13px;color:var(--muted);line-height:1.6}.weather-strip{background:linear-gradient(115deg,var(--card,#fff),#edf6fa)}.weather-strip .weather-places{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.weather-strip .weather-place{display:block;padding:0 12px 0 0;border:0;border-right:1px solid var(--line);min-width:0}.weather-strip .weather-place:last-child{border:0}.weather-reading{display:flex;align-items:center;gap:12px;margin:9px 0}.weather-strip .weather-symbol{font-size:32px;line-height:1;color:#3483a1}.weather-strip .weather-value{font-size:27px;text-align:left}.weather-strip .weather-value small{display:inline;font-size:14px;margin-left:3px}.weather-strip .weather-place>.btn{margin-top:8px}.warning-integrations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}.warning-integration{display:flex;align-items:center;gap:14px;padding:17px 20px;min-width:0}.warning-content{flex:1;min-width:0}.warning-content h3{margin:0 0 5px;font-size:17px}.warning-content p{margin:0 0 4px;font-size:13px}.warning-content small,.feed-status{font-size:11px;color:var(--muted);line-height:1.6}.feed-status{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}.warning-emblem{color:#4b748a;background:#eaf2f5;border-radius:10px;padding:10px;display:flex}.has-pending{border-left:4px solid #c53f45}.has-pending .warning-emblem{background:#ffebed;color:#a81f2b}.creator-credit{display:block;margin-top:18px}.dark .weather-strip{background:var(--card)}.dark .lsop-strip .water-mini{background:#35232b;border-color:#73434c}.dark .warning-emblem{background:#263d49;color:#b1dce9}.dark .has-pending .warning-emblem{background:#481e29;color:#ffc7ce}@media(max-width:1100px){.weather-strip .weather-places{grid-template-columns:repeat(3,minmax(0,1fr))}.warning-integrations{grid-template-columns:1fr}}@media(max-width:700px){.weather-strip .weather-places{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-card{padding:16px}.warning-integration{padding:14px;gap:10px}.warning-emblem{display:none}.lsop-strip .water-mini-list{grid-template-columns:minmax(0,1fr)}.weather-strip .weather-value{font-size:24px}}
.sms-overview{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.sms-overview h2{margin:0;font-size:24px;letter-spacing:.3px}.sms-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.sms-group-card h3{margin:14px 0 18px}.sms-group-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.sms-group-top svg{color:var(--accent,#07887f)}.sms-preview-summary{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.sms-preview-summary>div{padding:12px 16px;border:1px solid var(--line);border-radius:10px}.sms-preview-summary small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.sms-live-count{font-size:12px;color:var(--muted);grid-column:1/-1;margin:-10px 0 5px}@media(max-width:700px){.sms-overview{display:block}.sms-overview>div+div{margin-top:16px}}

.security-alert {overflow-wrap:anywhere;}

.dashboard-clock{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:14px 20px;margin:0 0 20px;background:var(--card,#fff);border:1px solid #dae5ed;border-radius:16px}.dashboard-clock>span{font-weight:600;text-transform:capitalize}.dashboard-clock time{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700;color:#116c70;min-width:8ch}.dashboard-clock small{color:#607385}.security-ip-list{list-style:none;padding:0;max-height:320px;overflow:auto}.security-ip-list li{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:10px 0;border-bottom:1px solid #dae5ed}.security-ip-list code{overflow-wrap:anywhere}.sms-member-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #dae5ed}.sms-member-row>div{min-width:0;overflow-wrap:anywhere}.sms-member-row .btn{flex-shrink:0}.sms-group-parent{color:#607385;font-size:.9rem;overflow-wrap:anywhere}.sms-member-search{width:100%;margin:12px 0;padding:10px;border:1px solid #ccd9e5;border-radius:10px}@media(max-width:520px){.sms-member-row{align-items:flex-start;flex-wrap:wrap}.dashboard-clock small{width:100%}}

.sms-member-row[hidden]{display:none}

.multi-list label[hidden]{display:none}
