@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
.side-footnote .side-version{display:inline-block;margin-top:9px;color:#d4bb83;font-weight:800;letter-spacing:1.1px;font-size:10px}
#adminConnectionPanel[hidden]{display:none!important}
.admin-legacy-local{display:none!important}
.admin-field-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.admin-field-content{padding:12px 0;border-top:1px solid #dfe7e0;min-height:80px}
.admin-field-content .cloud-access-row{margin:8px 0}
/* Fail closed: the dashboard cannot render until Firebase AND the staging officer API approve access. */
body:not(.stockport-authorized) .app-shell{display:none!important}
body.stockport-authorized .auth-welcome{display:none!important}
.auth-welcome{min-height:100dvh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 0%,#305846 0,#173b30 32%,#0b251e 78%);color:#fff}
.auth-welcome-card{width:min(100%,480px);padding:44px 39px 34px;border:1px solid #58756266;border-radius:16px;background:linear-gradient(145deg,#163a30,#102b24);box-shadow:0 25px 90px #07140f77;text-align:center}
.auth-welcome-mark{width:96px;height:96px;display:flex;align-items:center;justify-content:center;gap:7px;margin:0 auto 29px;background:linear-gradient(145deg,#d9b77b,#a97932);color:#15382e;clip-path:polygon(50% 0,90% 16%,90% 75%,50% 100%,10% 75%,10% 16%);font-weight:900;font-size:17px}
.auth-welcome-mark span{font-size:27px}
.auth-welcome-eyebrow{font-size:10px;letter-spacing:2.8px;color:#d8b778;font-weight:800}
.auth-welcome h1{margin:17px 0;font-size:clamp(24px,4vw,32px);line-height:1.28;letter-spacing:-.8px}
.auth-welcome h1 span{color:#d6ab68}
.auth-welcome p{font-size:13px;line-height:1.7;color:#c0d3c8;margin:0 0 25px}
.auth-welcome-status{min-height:35px;font-size:12px;line-height:1.5;color:#d3e3d8;margin-bottom:14px;overflow-wrap:anywhere}
.auth-welcome-status[data-kind=error]{color:#ffd5ce}
.auth-welcome-login{width:100%;min-height:52px;border:0;border-radius:9px;background:#f7f8f5;color:#1d4435;font-size:14px;font-weight:800}
.auth-welcome-login:not(:disabled):hover{background:#e7ebdf}
.auth-welcome-secondary{margin:14px auto 0;padding:10px 15px;border:1px solid #527264;border-radius:7px;color:#ecf2ed;background:transparent;font-size:12px}
.auth-welcome-secondary[hidden]{display:none}
.auth-welcome-foot{margin-top:28px;padding-top:22px;border-top:1px solid #46645160;color:#9bb5a7;font-size:11px;line-height:1.65}
.dashboard-officer{font-size:11px;color:#5b7767;max-width:190px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.cloud-record-table td .cloud-remove-member{border-color:#e8c3bf;color:#a94340;margin-left:6px}
.cloud-remove-member:hover{background:#fff1ef}
@media(max-width:530px){.auth-welcome-card{padding:38px 24px 30px}.dashboard-officer{display:none}}
:root{--forest:#15382f;--deep:#0c241e;--forest-2:#1e493b;--gold:#bd9250;--gold-light:#f3e5c9;--paper:#f5f6f3;--white:#fff;--ink:#1b2d28;--muted:#7b8982;--line:#e8ede9;--green:#24845d;--green-light:#e6f5eb;--amber:#c98d2c;--amber-light:#fbf2df;--red:#bf5548;--red-light:#fae8e5;--shadow:0 5px 25px rgba(25,49,37,.035)}
*{box-sizing:border-box}html{font-size:14px}body{margin:0;font-family:'DM Sans','Manrope',system-ui,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d1a65c;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:249px;flex-shrink:0;background:var(--deep);color:white;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;z-index:10}.brand{padding:31px 25px 35px;display:flex;align-items:center;gap:13px}.brand strong{display:block;font-weight:800;font-size:15px;letter-spacing:1.4px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px;color:#a6bcb0;font-weight:700}.brand-mark{width:43px;height:51px;clip-path:polygon(50% 0,93% 17%,93% 70%,50% 100%,7% 70%,7% 17%);background:linear-gradient(135deg,#d6b171,#a97730);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#18332a;font-weight:900;font-size:17px;line-height:1}.brand-flame{font-size:11px;line-height:1.1}.side-caption{margin:17px 25px 16px;font-size:9px;color:#7d968a;letter-spacing:2px;font-weight:800}.primary-nav{display:flex;flex-direction:column;gap:6px;padding:0 13px}.nav-item{border:0;background:transparent;text-align:left;color:#aebfb6;padding:14px 14px;display:flex;align-items:center;gap:13px;border-radius:8px;font-size:12.5px;font-weight:600;transition:.2s}.nav-item:hover{background:#23483c;color:#fff}.nav-item.active{background:#285241;color:#fff;box-shadow:inset 3px 0 var(--gold)}.nav-icon{font-size:17px;font-weight:400;width:21px;text-align:center}.nav-count{margin-left:auto;border-radius:5px;padding:2px 7px;color:#bed4c7;background:#345f4d;font-size:10px}.sidebar-footer{margin-top:auto;padding:25px 22px 34px;text-align:center}.side-seal{border:1px solid #3b594a;outline:1px solid #3b594a;outline-offset:5px;margin:0 auto 27px;border-radius:50%;width:103px;height:103px;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:4px;color:var(--gold)}.side-seal span{font-size:8px;letter-spacing:1.5px}.side-seal strong{font-size:28px;font-weight:800;letter-spacing:1px}.side-footnote{border-top:1px solid #28473a;padding-top:23px;color:#6e877a;font-size:9px;font-weight:700;line-height:1.9;letter-spacing:1.2px}.content-shell{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:75px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;flex-shrink:0}.topbar-left,.topbar-right{display:flex;align-items:center;gap:23px}.breadcrumb{letter-spacing:1.4px;font-size:10px;font-weight:800;color:#8b9a91}.breadcrumb span{padding:0 9px;color:#b3beb7}.breadcrumb b{color:#405c4e}.local-tag{font-size:9px;letter-spacing:1px;font-weight:800;color:#4c7762;display:flex;align-items:center;gap:8px}.live-dot{height:7px;width:7px;background:#55a777;border-radius:50%;box-shadow:0 0 0 4px #e9f6ed}.topbar-time{font-size:11px;color:#84938a;font-weight:600}.avatar{width:32px;height:32px;border-radius:50%;background:#e7e9e3;color:#4d6457;display:grid;place-items:center;font-size:10px;font-weight:800}.menu-button{display:none;border:0;background:none;font-size:20px;color:var(--forest)}.main{padding:35px 42px 48px;max-width:1700px;width:100%;margin:0 auto;flex:1}.page{display:none;animation:fadeIn .2s ease}.page.active{display:block}@keyframes fadeIn{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:27px}.eyebrow{letter-spacing:2.6px;font-weight:800;font-size:9px;color:var(--gold);display:flex;align-items:center;gap:15px;margin-bottom:10px}.tiny-line{display:inline-block;width:24px;border-top:1px solid #d6bd91}h1,h2,h3,p{margin-top:0}h1{font-family:Manrope,system-ui,sans-serif;font-size:33px;font-weight:800;letter-spacing:-1.2px;margin-bottom:7px;line-height:1.2}.gold-period{color:var(--gold)}.subtitle{font-size:12.5px;color:#829087;margin:0;line-height:1.6}.heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{height:37px;border-radius:7px;border:1px solid #e0e7e1;padding:0 16px;font-size:11px;font-weight:800;letter-spacing:.1px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:transform .1s,background .15s;white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--forest);border-color:var(--forest);color:white}.btn-primary:hover{background:#235341}.btn-light{background:white;color:#405d4e}.btn-light:hover{background:#f8faf8}.btn-danger{background:#fff3f1;border-color:#f3d9d5;color:#b3483e}.btn-danger:hover{background:#fde6e3}.btn-xs{height:30px;padding:0 11px;font-size:10px}.demo-banner{border:1px solid #e5d9bc;background:#fbf7eb;padding:13px 17px;border-radius:9px;display:flex;gap:12px;align-items:center;margin-bottom:22px}.demo-icon{width:24px;height:24px;border-radius:50%;background:#efdfbd;color:#a17930;display:grid;place-items:center;font-size:17px;flex-shrink:0}.demo-banner div:nth-child(2){flex:1;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.demo-banner strong{color:#745b2c;font-size:11px}.demo-banner span{color:#9a885e;font-size:11px}.banner-link{color:#9b712b;background:none;border:0;font-weight:800;font-size:10px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:11px;min-height:139px;padding:21px 21px 17px;box-shadow:var(--shadow)}.metric-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.metric-label{font-size:10.5px;color:#74857b;font-weight:700}.metric-icon{height:32px;width:32px;border-radius:8px;display:grid;place-items:center;font-size:16px}.metric-icon.green{background:#e8f3ec;color:#2f8c64}.metric-icon.gold{background:#f9f1e4;color:#ad8241}.metric-icon.red{background:#faedeb;color:#b75c51}.metric-icon.blue{background:#e9f0f5;color:#607d93}.metric-number{font-family:Manrope,sans-serif;font-size:29px;letter-spacing:-1.1px;font-weight:800;line-height:1.1}.metric-bottom{display:flex;gap:8px;margin-top:10px;align-items:center;font-size:10px;color:#99a69d}.metric-pill{background:#ecf5ee;color:#3a8a5c;padding:3px 6px;border-radius:3px;font-size:9px;font-weight:800}.metric-pill.warn{color:#b36c32;background:#fff2e5}.overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr);gap:18px;margin-bottom:18px}.overview-bottom{grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr)}.panel,.table-panel,.filter-panel{background:white;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);min-width:0}.panel{padding:24px 25px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-kicker{font-weight:800;letter-spacing:1.65px;color:#a7b0a9;font-size:9px;margin-bottom:7px}h2{font-family:Manrope,sans-serif;font-size:15px;letter-spacing:-.3px;margin:0;font-weight:800}.chip{border:1px solid #e8ede8;border-radius:5px;padding:8px 10px;color:#708275;font-size:10px;font-weight:700}.text-button{border:0;background:none;color:#4c8467;font-size:10px;font-weight:800}.chart-wrap{height:203px;display:flex;position:relative;margin-top:11px}.chart-y{display:flex;flex-direction:column;justify-content:space-between;width:29px;align-items:flex-end;color:#b2bdb4;font-size:9px;padding-bottom:25px;padding-top:0}.chart-main{flex:1;position:relative;border-bottom:1px solid #e9eee8;margin-left:12px;margin-bottom:24px}.chart-grid{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.chart-grid span{border-top:1px dashed #e8eee9;width:100%}.bars{position:absolute;inset:0;display:flex;justify-content:space-around;align-items:flex-end;gap:15px;padding:0 13px}.bar-group{height:100%;flex:1;display:flex;align-items:end;justify-content:center;gap:5px;position:relative}.bar{width:min(25px,36%);min-height:2px;border-radius:3px 3px 0 0;transition:height .3s ease}.bar.gold{background:#c6a169}.bar.green{background:#2b6950}.bar-group-label{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%);font-size:9px;color:#98a79b;white-space:nowrap;font-weight:700}.chart-legend{display:flex;justify-content:center;gap:25px;margin-top:5px;color:#738478;font-size:10px;font-weight:700}.chart-legend span{display:flex;align-items:center;gap:8px}.legend-dot{height:7px;width:7px;display:inline-block;border-radius:2px}.legend-dot.gold{background:#c6a169}.legend-dot.green{background:#2b6950}.readiness-block{margin:4px 0 21px}.ready-top{display:flex;align-items:flex-end;gap:12px}.ready-big{font-family:Manrope,sans-serif;font-size:41px;line-height:1.15;font-weight:800;letter-spacing:-1px}.ready-caption{color:#92a197;font-size:10px;padding-bottom:8px}.stacked-bar{display:flex;overflow:hidden;border-radius:4px;height:9px;background:#edf0ec;margin:14px 0 17px}.stacked-bar span{height:100%;transition:width .3s}.stacked-bar .ready{background:#368861}.stacked-bar .limited{background:#dfae5b}.stacked-bar .out{background:#bd6258}.stacked-bar .unknown{background:#adb7af}.readiness-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid #f0f2ef;color:#697a70;font-size:11px}.readiness-row b{color:#284436;font-size:11px}.status-label{display:inline-flex;align-items:center;gap:9px}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.ready{background:#339165}.status-dot.limited{background:#e1a044}.status-dot.out{background:#ce6860}.status-dot.unknown{background:#a8b2aa}.record-row{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid #f0f2ef}.record-row:last-child{border:0;padding-bottom:0}.record-glyph{background:#eef3ee;color:#44785d;border-radius:8px;width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;font-size:17px}.record-main{min-width:0;flex:1}.record-main strong{display:block;font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.record-main small{display:block;color:#98a69b;font-size:10px;margin-top:5px}.record-tag{font-size:9px;color:#6f8b75;background:#edf5ee;padding:6px 8px;border-radius:4px;white-space:nowrap}.record-tag.gold{color:#ad8147;background:#f9f2e7}.record-action{border:0;background:none;color:#8a9c8e;font-size:18px;padding:5px}.alert-item{display:flex;align-items:center;gap:12px;border-bottom:1px solid #f1f3f0;padding:12px 0}.alert-item:last-child{border:0}.alert-icon{width:33px;height:33px;border-radius:8px;display:grid;place-items:center;background:#fff1e7;color:#b47b37;flex-shrink:0;font-weight:800}.alert-icon.red{background:#f9e9e6;color:#c05048}.alert-icon.gray{background:#f0f2ef;color:#89988b}.alert-content{flex:1}.alert-content strong{font-size:11px;display:block}.alert-content span{font-size:10px;color:#9ca69c;display:block;margin-top:5px}.watch-icon{display:grid;place-items:center;border:1px solid #f2dfc4;background:#fffaee;border-radius:50%;height:25px;width:25px;color:#bc924d;font-weight:800}.empty-state{text-align:center;padding:36px 14px;color:#91a096;font-size:11px;line-height:1.7}.empty-icon{font-size:28px;display:block;color:#b9c7bc;margin-bottom:8px}.app-footer{font-size:9px;letter-spacing:.6px;color:#a8b5aa;display:flex;justify-content:space-between;gap:14px;padding:17px 42px 27px}.footer-sep{margin:0 8px;color:#d3d9d2}
.filter-panel{padding:22px;margin-bottom:15px}.filter-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.filter-heading strong{font-family:Manrope,sans-serif;font-size:14px}.hint{font-size:10px;color:#9ba99f}.filter-controls{display:flex;gap:9px;align-items:center}.searchbox{border:1px solid #e1e8e1;display:flex;align-items:center;padding:0 12px;border-radius:7px;height:36px;flex:1;background:#fff;gap:9px;min-width:100px}.searchbox span{color:#a0b0a1;font-size:19px}.searchbox input{border:0;outline:0;flex:1;min-width:0;font-size:11px;color:#274638}.searchbox:focus-within{border-color:#7fa18b}.filter-controls select,.form-control{height:36px;border:1px solid #e1e8e1;border-radius:7px;background:white;color:#53675b;font-size:11px;padding:0 11px;min-width:135px}.unit-summary{display:flex;gap:10px;margin-bottom:15px;flex-wrap:wrap}.summary-chip{border:1px solid var(--line);border-radius:6px;background:#fff;padding:9px 13px;font-size:10px;font-weight:700;color:#7c8c7e}.summary-chip b{margin-right:5px;font-size:13px;color:#385a49}.table-panel{overflow:hidden}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:675px}.data-table th{text-align:left;background:#fafbf9;color:#a1aea3;font-size:9px;font-weight:800;letter-spacing:1.2px;padding:15px 20px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{font-size:11px;color:#708376;border-bottom:1px solid #eff2ed;padding:17px 20px;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfcfa}.unit-identity{display:flex;align-items:center;gap:10px}.unit-badge{border:1px solid #d8e7da;background:#f0f5f0;color:#3a6b4c;font-size:11px;font-weight:800;min-width:57px;text-align:center;padding:9px;border-radius:7px}.unit-identity b{font-size:12px;color:#274738}.unit-identity small{display:block;font-size:10px;color:#a4b0a6;margin-top:3px}.status-pill{border-radius:4px;padding:6px 8px;font-size:9px;font-weight:800;white-space:nowrap;display:inline-flex;gap:7px;align-items:center}.status-pill.ready{background:var(--green-light);color:#388a5d}.status-pill.limited{background:var(--amber-light);color:#b98534}.status-pill.out{background:var(--red-light);color:#c05c52}.status-pill.unknown{background:#eef1ee;color:#8b988d}.action-link{border:1px solid #e4ebe5;background:white;padding:7px 12px;border-radius:6px;font-size:10px;font-weight:800;color:#4c7861}.action-link:hover{background:#eff6f1}.table-note{font-size:10px;color:#9cad9f;margin:16px 3px}.highlight-swatch{display:inline-block;background:#f9df99;width:10px;height:10px;margin-right:6px;vertical-align:middle}.incident-name{color:#234c38;font-size:11px;font-weight:800}.incident-sub{color:#a3afa5;font-size:9px;margin-top:5px}.type-pill{font-size:9px;padding:6px 9px;border-radius:4px;color:#587b60;background:#eef4ed;font-weight:700}.type-pill.fire{background:#faece6;color:#b9664d}.type-pill.medical{background:#eaf1f6;color:#6685a1}.type-pill.alarm{background:#f8f0dd;color:#a58142}.settings-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-panel{min-height:225px}.settings-icon{font-size:23px;color:var(--gold);background:#fbf5e9;width:39px;height:39px;border-radius:9px;display:grid;place-items:center;margin-bottom:17px}.settings-panel h2{font-size:15px;margin-bottom:9px}.settings-panel p{font-size:11px;line-height:1.8;color:#869589;max-width:500px}.setting-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.storage-notice{display:flex;align-items:center;gap:8px;font-size:10px;color:#879b8b;margin-top:23px}.analytics-stat{display:flex;justify-content:space-between;align-items:center;margin:16px 0 20px;gap:15px}.analytics-stat-label{color:#819287;font-size:11px}.analytics-stat-value{font-weight:800;font-size:14px}.progress-track{height:8px;background:#eef2ed;border-radius:6px;overflow:hidden;margin:7px 0}.progress-fill{height:100%;background:#3d8163;border-radius:6px}.progress-fill.gold{background:#cba16a}.type-item{margin-bottom:18px}.type-item:last-child{margin-bottom:0}.type-title{display:flex;justify-content:space-between;font-size:10px;color:#728478;font-weight:700}.type-title strong{color:#284b3a}.response-highlight{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.response-highlight strong{font-size:29px;letter-spacing:-1px}.response-highlight span{font-size:10px;color:#8ca092;line-height:1.6}.small-info{font-size:10px;line-height:1.8;color:#889b8c}.empty-plot{height:195px;display:grid;place-items:center;color:#a6b5a8;font-size:11px}
.modal-backdrop{position:fixed;inset:0;background:rgba(7,26,18,.58);z-index:60;display:none;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(3px)}.modal-backdrop.show{display:flex}.modal-panel{width:min(100%,650px);max-height:min(90vh,850px);display:flex;flex-direction:column;background:white;border-radius:13px;box-shadow:0 25px 80px #041e1670}.modal-header{padding:24px 28px 20px;display:flex;align-items:start;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-eyebrow{font-size:9px;letter-spacing:2px;font-weight:800;color:var(--gold);display:block;margin-bottom:9px}.modal-header h2{font-size:22px}.modal-close{width:30px;height:30px;border-radius:6px;border:1px solid var(--line);font-size:20px;color:#779083;background:white}.modal-body{padding:24px 28px 28px;overflow-y:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:10px;font-weight:800;color:#647e6c}.field input,.field select,.field textarea{width:100%;border:1px solid #dce7dd;border-radius:7px;min-height:38px;padding:10px 11px;background:#fff;font-size:12px;color:#294736}.field textarea{min-height:78px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#abbab0}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:25px}.response-card{border:1px solid #e9efe9;background:#fcfdfb;border-radius:8px;padding:14px;margin-bottom:12px}.response-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.response-head b{font-size:12px;color:#345b43}.response-head button{background:none;border:0;color:#bd655b;font-size:10px;font-weight:800}.timestamp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.timestamp-cell{border-radius:6px;background:#f3f5f1;padding:9px 8px;min-width:0}.timestamp-cell.earliest{background:#fcf0c4;box-shadow:inset 0 0 0 1px #eddda8}.timestamp-cell.latest{background:#e8f3ec}.timestamp-cell small{display:block;color:#829184;text-transform:uppercase;font-size:8px;letter-spacing:.7px;font-weight:800}.timestamp-cell strong{display:block;font-size:10px;color:#33523f;margin-top:6px;white-space:nowrap}.response-form{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.response-form h3{font-size:12px;margin-bottom:12px}.incident-info{background:#f7f9f5;border-radius:7px;padding:15px;margin-bottom:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.incident-info div span{display:block;color:#98a79a;font-size:9px;letter-spacing:.6px;text-transform:uppercase}.incident-info div strong{display:block;color:#355440;font-size:11px;margin-top:6px;line-height:1.5}.danger-zone{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.danger-zone button{border:0;color:#b75b55;background:none;font-size:10px;font-weight:800;padding:0}.toast{position:fixed;right:20px;bottom:20px;background:#163a2c;color:white;border-radius:8px;box-shadow:0 10px 40px #153a2d38;font-size:11px;font-weight:700;padding:13px 18px;z-index:100;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translateY(0)}
@media(max-width:1180px){.sidebar{width:220px}.main{padding:29px 28px}.topbar{padding:0 28px}.app-footer{padding:15px 28px 25px}.metric-card{padding:18px 16px}.metric-number{font-size:25px}.overview-grid{grid-template-columns:1.3fr 1fr}}@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid,.overview-bottom{grid-template-columns:1fr}.readiness-panel{order:0}.sidebar{width:205px}.brand{padding-left:17px;padding-right:17px}.main{padding:25px 22px}.topbar{padding:0 22px}.page-heading{align-items:start;flex-direction:column}.app-footer{padding:12px 22px 22px}}@media(max-width:650px){.sidebar{position:fixed;inset:0 auto 0 0;transform:translateX(-100%);transition:transform .2s;width:250px;box-shadow:8px 0 40px #10261e30}.sidebar.open{transform:translateX(0)}.menu-button{display:block}.topbar{height:60px;padding:0 17px}.topbar-left,.topbar-right{gap:13px}.topbar-time,.local-tag{display:none}.main{padding:23px 15px}.page-heading{margin-bottom:21px}h1{font-size:28px}.eyebrow{font-size:8px;letter-spacing:1.7px}.subtitle{font-size:11.5px}.metric-grid{gap:10px;margin-bottom:11px}.metric-card{min-height:121px;padding:14px}.metric-top{margin-bottom:13px}.metric-label{font-size:9.5px}.metric-number{font-size:24px}.metric-bottom{font-size:9px}.metric-icon{height:27px;width:27px;font-size:13px}.panel{padding:19px 17px}.overview-grid{gap:11px;margin-bottom:11px}.demo-banner{align-items:flex-start;padding:12px;flex-wrap:wrap}.demo-banner div:nth-child(2){display:block;flex-basis:calc(100% - 40px)}.demo-banner span{display:block;margin-top:4px;line-height:1.5}.banner-link{margin-left:36px}.filter-controls{flex-wrap:wrap}.searchbox{flex-basis:100%}.filter-controls select{flex:1;min-width:0}.filter-panel{padding:15px}.settings-layout{grid-template-columns:1fr;gap:11px}.app-footer{flex-direction:column;padding:10px 15px 22px;font-size:8px}.modal-header{padding:20px}.modal-body{padding:19px}.timestamp-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.incident-info{grid-template-columns:1fr 1fr}.chart-wrap{height:178px}.chart-panel{overflow:hidden}}
.cad-import-intro{font-size:11px;color:#7d8e81;line-height:1.8;margin:0 0 16px}.cad-dropzone{border:1px dashed #baccb8;background:#f8faf7;border-radius:9px;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.cad-dropzone strong{display:block;color:#405b48;font-size:11px}.cad-dropzone span{display:block;color:#96a69a;font-size:10px;margin-top:5px;line-height:1.5}.cad-dropzone input{max-width:215px;color:#7b927f;font-size:10px}.cad-dropzone input::file-selector-button{border:1px solid #dce7db;background:white;border-radius:5px;padding:7px 10px;font-weight:800;color:#56775f;margin-right:8px;cursor:pointer}.cad-import-textarea{width:100%;min-height:155px;max-height:260px;resize:vertical;border:1px solid #dce7db;border-radius:8px;padding:13px;font-size:11px;line-height:1.65;color:#405a49;outline:none}.cad-import-textarea:focus{border-color:#85ac91}.cad-import-status{font-size:10px;color:#8a9b8c;margin-top:8px;min-height:15px}.cad-preview-panel{background:#f8faf7;border:1px solid #e0e9df;border-radius:9px;padding:16px;margin-top:16px}.cad-preview-kicker{font-size:9px;color:#9a824d;letter-spacing:1.4px;font-weight:800;margin-bottom:11px}.cad-preview-title{font-family:Manrope,sans-serif;font-size:19px;font-weight:800;color:#254633}.cad-preview-meta{color:#7d8e81;font-size:11px;line-height:1.7;margin:8px 0 14px}.cad-preview-meta strong{color:#385f46}.cad-review-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #e9eee7;color:#607765;font-size:11px}.cad-review-row strong{font-weight:800;color:#254f36}.cad-times{font-size:9px;color:#8a9d8b;margin-top:4px;line-height:1.7}.cad-excluded{font-size:10px;color:#967d4b;padding:11px 12px;background:#fff9e9;border-radius:6px;margin-top:10px;line-height:1.5}.cad-warning{font-size:10px;color:#a46534;line-height:1.7;background:#fff7e9;padding:11px 12px;border-radius:6px;margin-top:13px}.cad-success{font-size:10px;color:#3c865a;background:#edf7ef;padding:10px;border-radius:6px;margin:12px 0}.cad-import-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:15px}.cad-privacy{font-size:10px;color:#8b9b8e;margin-top:14px;line-height:1.7}.cad-privacy b{color:#647f6d}
@media(max-width:650px){.cad-dropzone{align-items:flex-start;flex-direction:column}.cad-dropzone input{max-width:100%}}
.metric-grid.configurable{grid-template-columns:repeat(3,minmax(0,1fr))}.add-tile-card{min-height:135px;border:1.5px dashed #bfd0c2;border-radius:11px;background:#f9fbf8;color:#64836b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:17px;transition:.15s}.add-tile-card:hover{background:#edf4ec;border-color:#6d9a7c}.add-tile-card span{font-size:23px;line-height:1}.add-tile-card strong{font-size:11px}.add-tile-card small{font-size:9px;color:#9bab9f}.tile-options{display:flex;flex-direction:column;gap:8px}.tile-option{border:1px solid #e3ebe4;border-radius:8px;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;gap:12px}.tile-option label{display:flex;align-items:center;gap:12px;min-width:0;flex:1;cursor:pointer}.tile-option input{accent-color:#276b4e;width:16px;height:16px;flex-shrink:0}.tile-option strong{font-size:11px;display:block;color:#325543}.tile-option small{font-size:9px;display:block;color:#98a99c;margin-top:3px}.tile-move{display:flex;gap:4px}.tile-move button{border:1px solid #e0e9e1;background:#fff;border-radius:5px;width:28px;height:28px;color:#5a7c66}.tile-move button:hover{background:#edf5ee}
.maintenance-overview{margin-top:18px}.maintenance-watch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.maintenance-watch-row{padding:13px 14px;border:1px solid #e6eee5;border-radius:8px;display:flex;align-items:center;gap:11px}.maintenance-watch-row>div{flex:1;min-width:0}.maintenance-watch-row b{font-size:10px;background:#edf4ed;color:#53765c;border-radius:4px;padding:5px 7px;margin-right:7px}.maintenance-watch-row strong{font-size:11px;color:#365341}.maintenance-watch-row small{display:block;font-size:9px;color:#98a69a;margin-top:9px}.inline-actions{display:flex;gap:6px;white-space:nowrap}.action-accent{background:#edf5ee;border-color:#dbeadf;color:#307150}.task-count{display:inline-block;border-radius:5px;background:#edf3ed;color:#62856b;font-size:9px;font-weight:800;padding:6px 8px;white-space:nowrap}.task-count.overdue{background:#fae8e5;color:#b8574b}.task-count.soon{background:#fff3de;color:#b98a32}.maintenance-intro{display:flex;align-items:center;justify-content:space-between;border-radius:8px;background:#f7faf6;padding:13px 15px;gap:12px;margin-bottom:16px}.maintenance-intro strong{display:block;color:#3f6549;font-size:11px}.maintenance-intro span{display:block;color:#8b9e8e;font-size:10px;margin-top:6px;line-height:1.5}.maintenance-task-list{display:flex;flex-direction:column;gap:10px}.maintenance-task{padding:14px 15px;border:1px solid #e5eee5;border-radius:8px;background:#fff}.task-head,.task-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.task-head strong{font-size:12px;color:#3a5b44}.task-head small{display:block;font-size:9px;color:#a1afa3;margin-top:5px}.task-status{border-radius:5px;padding:6px 9px;white-space:nowrap;font-size:9px;font-weight:800;background:#eef3ee;color:#819489}.task-status.overdue{background:#fae8e5;color:#b8574b}.task-status.soon{background:#fff3de;color:#b48b35}.task-status.scheduled{background:#eaf6ee;color:#458a5a}.task-foot{margin-top:13px;padding-top:11px;border-top:1px solid #f0f3ee}.task-foot span{font-size:10px;color:#829487;line-height:1.5}.task-foot>div{display:flex;align-items:center;gap:8px}.task-delete{border:0;background:transparent;color:#b76a60;font-size:10px;font-weight:800}.maintenance-template{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px 0;margin-top:10px}.maintenance-template span{font-size:9px;font-weight:800;letter-spacing:1.3px;color:#aab7aa;margin-right:3px}.maintenance-template button{border:1px solid #dfeade;color:#4a805b;background:#f5faf5;border-radius:6px;padding:7px 9px;font-size:10px;font-weight:800}.maintenance-template button:hover{background:#e9f5e9}.field-hint{color:#9cac9e;font-size:9px;line-height:1.5}.cad-inline-error,.cad-inline-info{padding:13px 15px;border-radius:8px;margin-top:10px;font-size:11px;line-height:1.6}.cad-inline-error{background:#fff0ed;border:1px solid #efcac4;color:#a64d42}.cad-inline-error strong,.cad-inline-error span,.cad-inline-error small{display:block}.cad-inline-error span{margin-top:4px;font-weight:700}.cad-inline-error small{margin-top:6px;color:#b98279}.cad-inline-info{background:#edf6ee;color:#568165}
@media(max-width:1070px){.metric-grid.configurable{grid-template-columns:repeat(2,minmax(0,1fr))}.maintenance-watch-grid{grid-template-columns:1fr}}@media(max-width:650px){.metric-grid.configurable{grid-template-columns:repeat(2,minmax(0,1fr))}.add-tile-card{min-height:120px}.maintenance-intro{align-items:flex-start;flex-direction:column}.maintenance-watch-row{flex-wrap:wrap}.task-foot{align-items:flex-start;flex-direction:column}.tile-option{padding:8px}.inline-actions{flex-direction:column}}
.brand-mark .brand-unit{font-size:12px;letter-spacing:-.4px;line-height:1.15}
.district-patch{display:block;width:124px;max-width:100%;height:auto;margin:0 auto 25px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.16))}

/* Appearance tokens can later be populated from authenticated user_preferences. */
:root{--ui-sidebar:#0c241e;--ui-primary:#15382f;--ui-accent:#bd9250;--ui-background:#f5f6f3;--ui-sidebar-text:#fff;--ui-sidebar-subtle:#aebfb6;--ui-primary-text:#fff;--ui-type-scale:1;--ui-panel-padding:25px;--ui-grid-gap:18px;--ui-radius:11px;--ui-motion:.2s}
html{font-size:calc(14px * var(--ui-type-scale))}
body{background:var(--ui-background)}.sidebar{background:var(--ui-sidebar);color:var(--ui-sidebar-text)}.brand small,.nav-item{color:var(--ui-sidebar-subtle)}.nav-item.active{box-shadow:inset 3px 0 var(--ui-accent);background:color-mix(in srgb,var(--ui-sidebar) 72%,white);color:var(--ui-sidebar-text)}.nav-item:hover{background:color-mix(in srgb,var(--ui-sidebar) 64%,white);color:var(--ui-sidebar-text)}.btn-primary{background:var(--ui-primary);border-color:var(--ui-primary);color:var(--ui-primary-text)}.btn-primary:hover{background:color-mix(in srgb,var(--ui-primary) 84%,black)}.brand-mark{background:linear-gradient(145deg,color-mix(in srgb,var(--ui-accent) 70%,white),var(--ui-accent))}.gold-period,.eyebrow{color:var(--ui-accent)}.bar.gold,.legend-dot.gold{background:var(--ui-accent)}.bar.green,.legend-dot.green{background:var(--ui-primary)}.metric-grid,.overview-grid{gap:var(--ui-grid-gap)}.panel{padding:var(--ui-panel-padding);border-radius:var(--ui-radius)}.metric-card,.filter-panel,.table-panel{border-radius:var(--ui-radius)}.nav-item,.btn,.bar{transition-duration:var(--ui-motion)}
.nav-beta{margin-left:auto;font-size:8px;color:var(--ui-accent);border:1px solid color-mix(in srgb,var(--ui-accent) 42%,transparent);padding:3px 5px;border-radius:4px;letter-spacing:.5px}
.preference-panel{margin-bottom:18px}.preference-intro,.admin-copy{color:#75857b;font-size:11px;line-height:1.75}.preference-intro{margin-bottom:18px}.theme-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:21px}.theme-choice{border:1.5px solid #e5ebe5;background:white;border-radius:9px;text-align:left;padding:14px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;color:#385244;min-width:0}.theme-choice:hover{border-color:#a9bea9;background:#fafcf9}.theme-choice.selected{border-color:var(--ui-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-accent) 18%,transparent)}.theme-choice b{font-size:11px}.theme-choice small{font-size:9px;color:#84988a}.theme-dots{display:flex;gap:4px;margin-bottom:5px}.theme-dots i{height:23px;width:23px;border-radius:50%;border:1px solid rgba(0,0,0,.08);display:inline-block}
.preference-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;padding:18px 0;border-top:1px solid #edf0ec}.preference-field{display:flex;flex-direction:column;gap:9px;font-size:10px;font-weight:800;color:#526a5b}.preference-field input[type=color]{width:100%;height:36px;padding:3px;border:1px solid #dce6db;background:#fff;border-radius:7px;cursor:pointer}.preference-field select{height:36px;padding:0 9px;background:#fff;border:1px solid #dce6db;border-radius:7px;font-size:11px;color:#405b4c;min-width:0}.preference-checkbox{display:flex;align-items:center;gap:9px;color:#526a5b;font-size:10px;font-weight:800}.preference-checkbox input{accent-color:var(--ui-primary)}.settings-inline-note{color:#84988a;font-size:10px;align-self:center}.preference-panel>.setting-actions{margin-top:4px}
.setup-badge{background:#fff7e7;color:#a66d24;border:1px solid #f0d7a8;border-radius:6px;font-size:9px;font-weight:800;letter-spacing:.7px;padding:10px 12px}.admin-notice{background:#fff8e9;border:1px solid #ead6ae;padding:14px 17px;border-radius:8px;color:#7c6032;font-size:11px;line-height:1.7;margin-bottom:18px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-wide{grid-column:1 / -1}.admin-panel .panel-heading{margin-bottom:12px}.admin-connection-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px;margin-top:17px}.admin-connection-form label{display:flex;flex-direction:column;gap:6px;font-size:10px;font-weight:800;color:#415b4a}.admin-connection-form label small{font-weight:500;font-size:9px;color:#86988a;line-height:1.5}.admin-connection-form input,.admin-connection-form select{width:100%;border:1px solid #dce7de;border-radius:7px;background:#fff;padding:10px 11px;color:#35523e;font-size:11px;min-height:38px}.admin-form-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.connection-status-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:22px 0 15px}.connection-status-list>div{border:1px solid #e7ede7;border-radius:7px;padding:12px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.connection-status-list strong{font-size:10px;color:#506c57}.connection-status-list span:last-child{width:100%;color:#a0aaa1;font-size:10px}.admin-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid #eef1ec;padding-top:14px}.admin-links a{color:#497a5b;background:#f0f6f0;border-radius:5px;padding:7px 10px;font-size:10px;font-weight:800;text-decoration:none}.admin-links a:hover{text-decoration:underline}.admin-owner{display:flex;gap:11px;align-items:center;padding:13px;background:#f6f9f5;border:1px solid #e8eee7;border-radius:8px;margin:16px 0}.owner-avatar{height:35px;width:35px;border-radius:50%;background:#dce9de;color:#416851;display:grid;place-items:center;font-size:11px;font-weight:800;flex-shrink:0}.admin-owner>div{min-width:0;flex:1}.admin-owner strong,.admin-owner small{display:block}.admin-owner strong{font-size:11px}.admin-owner small{font-size:9px;color:#88998c;margin-top:4px}.role-pill{color:#967235;background:#fff4dc;font-size:8px;font-weight:800;padding:7px 9px;border-radius:5px;text-align:center}.role-matrix{display:flex;flex-direction:column;gap:0;margin:15px 0}.role-matrix>div{border-bottom:1px solid #edf1ec;padding:10px 0;display:flex;justify-content:space-between;gap:12px}.role-matrix b{color:#445e4e;font-size:10px;min-width:115px}.role-matrix span{color:#8a988d;font-size:10px;text-align:right}.activity-scroll{max-height:330px;overflow:auto}.activity-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1ed;padding:12px 0}.activity-row strong{display:block;color:#425a49;font-size:11px}.activity-row small{display:block;color:#87978a;font-size:9px;line-height:1.65;margin-top:5px}.activity-row>span{color:#a1aea3;font-size:9px;white-space:nowrap}.admin-checklist{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.admin-checklist>div{border:1px solid #e7eee7;border-radius:8px;background:#fbfcfa;padding:16px;min-width:0}.admin-checklist b{font-size:11px;color:#3e5b48;display:block;margin-bottom:9px;line-height:1.5}.admin-checklist span{font-size:10px;color:#8b9a8e;line-height:1.65;display:block}
html[data-text-size=large] .main{zoom:1.04}html[data-density=compact]{--ui-panel-padding:16px;--ui-grid-gap:10px}html[data-density=compact] .main{padding-top:22px}html[data-density=compact] .metric-card{min-height:113px;padding:14px}html[data-density=compact] .nav-item{padding:10px 13px}html[data-density=spacious]{--ui-panel-padding:34px;--ui-grid-gap:26px}html[data-density=spacious] .metric-card{padding:28px;min-height:156px}html[data-corners=square]{--ui-radius:3px}html[data-corners=square] .btn,html[data-corners=square] .theme-choice,html[data-corners=square] .nav-item{border-radius:3px}html[data-motion=reduced] *,html[data-motion=reduced] *::before,html[data-motion=reduced] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:1150px){.theme-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.preference-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.connection-status-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-checklist{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.admin-grid{grid-template-columns:1fr}.admin-wide{grid-column:auto}.admin-connection-form{grid-template-columns:1fr}.admin-checklist{grid-template-columns:1fr 1fr}.setup-badge{white-space:normal}.page-heading{align-items:flex-start}}
@media(max-width:530px){.theme-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.preference-controls{grid-template-columns:1fr 1fr}.connection-status-list{grid-template-columns:1fr 1fr}.admin-checklist{grid-template-columns:1fr}.admin-owner{flex-wrap:wrap}.role-matrix>div{flex-direction:column;gap:4px}.role-matrix span{text-align:left}}

/* Local inventory register and expandable district permissions */
.inventory-summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.inventory-filters{flex-wrap:wrap}.inventory-filters .searchbox{min-width:250px}
.inventory-status{display:inline-flex;align-items:center;white-space:nowrap;border-radius:20px;padding:6px 10px;font-weight:800;font-size:10px;background:#eef1ed;color:#637266}
.inventory-status.in_service{background:#e8f4eb;color:#2b8054}
.inventory-status.inspection_due{background:#fff0d9;color:#a27320}
.inventory-status.out_of_service{background:#fae8e6;color:#b74f4a}
.inventory-status.retired{background:#e9eaee;color:#6b7180}
.inventory-late{color:#bf564d;font-weight:800}
.inventory-soon{color:#ae791c;font-weight:800}
.inventory-service-settings{border:1px solid #e1e8dc;border-radius:10px;background:#f5f9f3;padding:15px;margin:10px 0}
.inventory-service-settings h3,.inventory-service-log h3{margin:0 0 5px;font-size:13px;color:#315d42}
.inventory-service-settings p{margin:0 0 13px;color:#637666;font-size:11px}
.inventory-service-settings .field-hint{margin:10px 0 0}
.inventory-service-log{margin-top:18px;padding:16px;border:1px solid #cbdcc8;border-radius:10px;background:#f7faf5}
.inventory-service-log-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.inventory-service-log-header small{color:#6f8271;font-size:11px}
.inventory-service-log .inventory-history-row .action-link{align-self:flex-start;font-size:11px}
.inventory-modal-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid #e6ece7}
.inventory-history{margin-top:18px;border:1px solid #e7ede7;padding:15px;border-radius:8px;background:#fbfcfa}
.inventory-history h3{font-size:12px;color:#405c4b}
.inventory-history p,.inventory-history-row span{color:#839284;font-size:10px}
.inventory-history-row{padding:10px 0;border-bottom:1px solid #e7eee7;display:flex;flex-direction:column;gap:5px}
.inventory-history-row:last-child{border-bottom:0}
.inventory-history-row b{font-size:11px;color:#41624b}
.inventory-custom-heading{font-size:11px;font-weight:800;color:#496852;margin:13px 0 10px}
.inventory-custom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.inventory-custom-grid .field>span{font-size:10px;font-weight:800;color:#647e6c}
.inventory-field-note{font-size:10px;color:#93a197;line-height:1.5}
.inventory-category-list{border:1px solid #e9eee8;border-radius:9px;max-height:250px;overflow:auto;margin:15px 0 20px}
.inventory-category-list>div{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid #edf1eb}
.inventory-category-list>div:last-child{border-bottom:0}
.inventory-category-list strong{font-size:11px;color:#3e5c49;flex:1}
.inventory-category-list small{font-size:10px;color:#9aa89d}
.incident-date-filters{margin-top:11px;padding-top:11px;border-top:1px solid #edf1ee;align-items:end;flex-wrap:wrap}
.filter-caption{display:flex;flex-direction:column;gap:6px;color:#6b806e;font-weight:800;font-size:10px}
.filter-caption input,.filter-caption select{min-height:36px;border:1px solid #dbe5dc;border-radius:7px;background:#fff;color:#415c49;padding:7px 10px;font-size:11px;min-width:150px}
.filter-caption[hidden]{display:none!important}
.incident-date-filters .btn{margin-bottom:1px}
.officer-draft-list{margin-top:14px;border-top:1px solid #e7eee9}
.officer-draft-row{display:flex;align-items:center;border-bottom:1px solid #edf1ed;gap:7px;padding:6px}
.officer-draft-row.selected{background:#f0f6f1;border-radius:7px}
.officer-draft-row>button:first-child{border:0;background:transparent;display:flex;align-items:center;gap:9px;min-width:0;flex:1;text-align:left;padding:7px;color:inherit}
.officer-draft-row>button:first-child>span:last-child{min-width:0;overflow:hidden}
.officer-draft-row strong{display:block;font-size:10px;color:#365b43;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.officer-draft-row small{font-size:9px;color:#84998a;display:block;margin-top:4px}
.officer-draft-remove{background:#fff;border:1px solid #f0d6d3;border-radius:5px;color:#be6057;padding:4px 9px;font-size:18px}
.permission-editor-head{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:16px}
.permission-editor-head>div{flex:1;min-width:200px}
.permission-editor-head strong,.permission-editor-head small{display:block}
.permission-editor-head strong{font-size:13px;color:#2b543d}
.permission-editor-head small{font-size:10px;color:#8b9c90;margin-top:6px}
.permission-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.permission-group{border:1px solid #e6ece6;border-radius:9px;background:#fdfefc;padding:14px;min-width:0}
.permission-group h3{font-size:11px;margin:0 0 11px;color:#3a6248;letter-spacing:.3px}
.permission-entry{border-top:1px solid #edf1ee;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0}
.permission-entry span{min-width:0}
.permission-entry strong,.permission-entry small{display:block}
.permission-entry strong{font-size:10px;color:#3e5545}
.permission-entry small{font-size:8.5px;color:#98a69b;line-height:1.55;margin-top:4px;overflow-wrap:anywhere}
.permission-entry select{max-width:106px;min-width:91px;background:#fff;border:1px solid #dce5dc;border-radius:6px;padding:7px 3px;font-size:10px;color:#3f5b47}
.permission-footnote{font-size:10px;color:#8e9a8f;line-height:1.65;margin:14px 0 0}
@media(max-width:1200px){.permission-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.permission-groups{grid-template-columns:1fr}.inventory-custom-grid{grid-template-columns:1fr}}

/* Training & Details: one navigation destination with in-page activity segments. */
.activity-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.activity-tabs{display:flex;gap:4px;padding:3px;background:#edf2ed;border-radius:8px;flex-wrap:wrap}
.activity-tab{border:0;background:transparent;border-radius:6px;padding:10px 12px;color:#738578;font-size:10px;font-weight:800;cursor:pointer}
.activity-tab.active{background:#fff;color:#284b36;box-shadow:0 1px 5px #14322313}
.activity-category,.dispatch-class{display:inline-block;font-size:9px;font-weight:800;border-radius:5px;white-space:nowrap;padding:5px 7px;background:#eff3ee;color:#49624d;margin-bottom:3px}
.activity-category.drill{background:#e6eff8;color:#336083}
.activity-category.special_detail{background:#fbf0d9;color:#906d31}
.dispatch-class{background:#e6ebe6;margin-right:4px}
.not-counted{color:#9a764c;font-size:10px}
.call-status{padding:13px 16px;background:#eef6ef;border:1px solid #cee5d0;border-left:4px solid var(--ui-primary);border-radius:8px;margin-bottom:18px;display:flex;flex-direction:column;gap:5px}
.call-status strong{font-size:13px;color:#345c42}.call-status span{font-size:10px;color:#69816b}
.detail-heading{font-size:12px;color:#385540;margin:18px 0 10px}
.outside-responses{border:1px solid #e7ede5;border-radius:8px;overflow:hidden;background:#fcfdfb;margin-bottom:10px}
.outside-response{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid #e7ede5}
.outside-response:last-child{border-bottom:0}.outside-response strong{display:block;color:#365f43;font-size:11px}.outside-response small{display:block;color:#8b998c;margin-top:3px;font-size:9px}
.outside-responses .table-note{margin:12px}.extra-unit-section{margin-bottom:15px}.extra-unit-form .btn{margin-top:12px}
.metadata-details{border:1px solid #e1e9df;padding:12px 14px;border-radius:8px;background:#fcfdfb;margin-bottom:18px}
.metadata-details summary{font-size:11px;font-weight:800;color:#44644c;cursor:pointer}.metadata-details .form-grid{margin:15px 0}
.cad-classification{display:flex;flex-direction:column;gap:4px;background:#eaf3eb;border:1px solid #d4e7d6;border-radius:8px;padding:13px;margin-bottom:12px}
.cad-classification b{font-size:12px;color:#3c6145}.cad-classification span,.cad-classification small{font-size:10px;color:#718974;line-height:1.5}
.mbox-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.mbox-stats>div{display:flex;flex-direction:column;gap:5px;padding:13px;background:#f3f7f2;border-radius:7px}
.mbox-stats strong{font-size:23px;color:#254d34}.mbox-stats small{font-size:9px;color:#718974}
@media(max-width:650px){.mbox-stats{grid-template-columns:repeat(2,1fr)}.activity-tabs{width:100%}}
.agency-ids{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:9px 12px;margin-bottom:10px;border:1px dashed #d9e6d9;border-radius:6px;color:#53715b;font-size:10px}
.agency-ids strong{font-size:10px}.agency-ids span{padding:4px 7px;background:#edf3ed;border-radius:5px}
.archive-notice{background:#fff8ea;border:1px solid #e9d9b8;color:#926d32;font-weight:700;font-size:10px;padding:11px 14px;border-radius:8px;margin-bottom:12px;line-height:1.7}
.archive-notice[hidden]{display:none}
.sidebar{overflow-y:auto}
/* Isolated, owner-private historical review notice. */
.private-review-notice{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff7e5;border:1px solid #e7c98b;color:#514017;border-radius:12px;margin-bottom:22px;padding:12px 16px;font-size:12px;line-height:1.5}
.private-review-notice strong{letter-spacing:.1em;font-size:10px;white-space:nowrap}
.private-review-notice span{flex:1 1 390px}
.private-review-notice button{border:1px solid #b28d42;color:#514017;background:transparent;border-radius:7px;font-weight:700;cursor:pointer;padding:7px 10px}
.private-review-notice button:hover{background:#ffebbc}

/* Firebase identity controls for private review; authorization remains server-side. */
.firebase-signin-bar{display:flex;align-items:center;gap:7px;border-left:1px solid #e2e9e1;padding-left:14px;max-width:340px}
.firebase-signin-bar span{font-size:10px;font-weight:700;color:#4b6857;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.firebase-signin-bar span[data-kind=error]{color:#b54942}
.firebase-signin-bar span[data-kind=ready]{color:#237648}
.firebase-signin-bar button{background:#fff;color:#2f6248;border:1px solid #d6e4db;border-radius:6px;font-size:10px;font-weight:800;padding:7px 10px;white-space:nowrap}
.firebase-signin-bar button:hover{background:#edf6ef}
.firebase-signin-bar button[hidden]{display:none!important}
#firebaseAuthDetail{display:block;font-size:10px;color:#755b2a;line-height:1.5;margin-top:3px}
.staging-check{display:flex;flex:1 1 100%;align-items:center;justify-content:space-between;gap:12px;padding-top:9px;border-top:1px solid #edd7a7}
.staging-check span{flex:1 1 auto!important;font-size:11px;color:#5d512e}
.staging-check span[data-kind=ready]{color:#16633c;font-weight:800}
.staging-check span[data-kind=error]{color:#a6362c;font-weight:700}
.staging-check button{flex-shrink:0;min-height:36px}
@media(max-width:650px){.staging-check{align-items:stretch;flex-direction:column;gap:7px}.staging-check button{width:100%}}

/* Personnel, training and special details: compact cards and touch-sized controls. */
.activity-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.upgrade-stat{display:flex;flex-direction:column;gap:7px;border:1px solid #e3eae2;background:#fff;border-radius:10px;padding:15px 17px;min-width:0}
.upgrade-stat small{text-transform:uppercase;color:#789080;font-size:10px;font-weight:800;letter-spacing:.6px}
.upgrade-stat strong{color:#193d2a;font-size:23px;font-weight:850;line-height:1.15;font-variant-numeric:tabular-nums}
.upgrade-stat span{font-size:10px;color:#79897f}
.upgrade-card h3,.upgrade-details h3{font-size:12px;color:#305944;margin:16px 0 9px}
.upgrade-list-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e9efe8;padding:11px 0;font-size:11px;color:#294635;align-items:center}
.upgrade-list-row small{display:block;font-size:10px;color:#849287;margin-top:4px}
.upgrade-details{margin:17px 0;padding:14px;border:1px solid #e4ebe2;border-radius:9px;background:#fbfcfa}
.upgrade-details summary{cursor:pointer;font-size:12px;font-weight:800;color:#285b3b;padding:4px 0}
.upgrade-details .form-grid{margin:15px 0}
.upgrade-attendee-list{max-height:280px;overflow-y:auto;display:grid;gap:6px;margin-top:12px}
.upgrade-attendee{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid #ebefeb;border-radius:7px;background:#fff;padding:8px;font-size:11px}
.upgrade-attendee>label:last-child{display:flex;align-items:center;gap:6px;font-size:10px}
.upgrade-attendee input[type=number]{width:82px;padding:9px;border-radius:6px;border:1px solid #d9e4dd;font-size:13px}
.upgrade-check{display:flex;align-items:center;gap:8px;font-size:11px;color:#2f5040;padding:7px 2px;min-height:40px}
.upgrade-check input{width:17px;height:17px;accent-color:#2b6a46}
.upgrade-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 8px;margin:5px 0 12px}
@media(max-width:950px){.activity-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.upgrade-stat{padding:12px}.upgrade-stat strong{font-size:20px}.upgrade-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upgrade-attendee{align-items:flex-start;flex-direction:column}.upgrade-attendee>label:last-child{justify-content:space-between;width:100%}.upgrade-check{min-height:44px}.modal-panel{max-height:93dvh}.modal-backdrop{padding:8px}}
@media(max-width:1050px){.topbar-right{gap:10px}.firebase-signin-bar{max-width:270px}.topbar-time{display:none}}
@media(max-width:700px){.topbar{padding:0 16px}.topbar-right .local-tag{display:none}.firebase-signin-bar{border-left:0;padding-left:0;max-width:210px}.firebase-signin-bar span{max-width:112px;font-size:9px}.firebase-signin-bar button{font-size:9px;padding:6px}}

/* Maintenance record and recurring-schedule editor (owner-private preview). */
.maintenance-hub-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.maintenance-hub-head b{font-size:12px;color:#234932}
.maintenance-hub-head small{display:block;color:#788d7f;margin-top:6px;font-size:10px;line-height:1.6}
.maintenance-hub-actions{display:flex;flex-wrap:wrap;gap:9px;margin:17px 0}
.maintenance-hub-section{border-top:1px solid #e7ece8;padding:18px 0 6px}
.maintenance-hub-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.maintenance-hub-section-heading h3{font-size:13px;color:#24553b;margin:0}
.maintenance-hub-section-heading>span{font-size:10px;color:#849586}
.maintenance-hub-row{background:#fcfdfb;border:1px solid #e1eae2;border-radius:9px;padding:12px 14px;margin-bottom:9px}
.maintenance-hub-line{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:7px;font-size:11px;color:#526a56}
.maintenance-hub-line:last-child{margin-bottom:0}
.maintenance-hub-line b{display:block;font-size:12px;color:#2e543b}
.maintenance-hub-line small{display:block;color:#849384;font-size:10px;margin-top:5px}
.maintenance-hub-line strong{color:#345540}
.maintenance-hub-row p{font-size:10px;line-height:1.65;color:#617566;margin:9px 0 0;overflow-wrap:anywhere}
.maintenance-hub-buttons{display:flex;gap:12px;flex-wrap:wrap}
.maintenance-hub-pill{display:inline-block;padding:5px 9px;font-size:9px;font-weight:800;border-radius:20px;background:#e9f1e9;color:#316145}
.maintenance-hub-pill.overdue{background:#fbe5df;color:#a4493a}
.maintenance-hub-pill.due-soon{background:#fff1d3;color:#946d31}
.maintenance-hub-pill.no-due-date{background:#f0f1ed;color:#79867d}
.maintenance-edited{display:block;color:#87682b;margin-top:8px;font-size:9px}
.maintenance-update-check{display:flex;gap:9px;align-items:center;border:1px solid #dfe9dc;background:#f5f9f4;padding:12px;margin-top:15px;border-radius:8px;font-size:11px;color:#365743;line-height:1.5}
.maintenance-update-check input{accent-color:#285c40;width:18px;height:18px;flex-shrink:0}

/* Selective report export and full local-backup management. */
.records-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;margin-bottom:18px}
.records-panel{min-width:0}
.record-select-actions{display:flex;gap:6px;flex-wrap:wrap}
.record-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.record-option{display:flex;align-items:center;gap:9px;border:1px solid #e1e9df;border-radius:9px;background:#fcfdfb;padding:12px;min-width:0;cursor:pointer}
.record-option:has(input:checked){border-color:#8eb79d;background:#f3f8f2}
.record-option input{flex-shrink:0;width:17px;height:17px;accent-color:#245f3e}
.record-option span{min-width:0}
.record-option b,.record-option small{display:block;overflow-wrap:anywhere}
.record-option b{font-size:11px;color:#30583e}
.record-option small{font-size:9px;color:#839286;margin-top:4px}
.records-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.records-filter-grid .field{min-width:0}
.records-filter-grid .field input,.records-filter-grid .field select{max-width:100%;width:100%}
.records-export-summary{background:#edf5ec;border:1px solid #cee4d0;border-radius:8px;color:#285b3c;font-weight:800;font-size:11px;padding:14px;margin:18px 0}
.records-format-list{display:grid;gap:10px}
.records-format-list>div{border:1px solid #e3eae2;background:#fcfdfb;padding:13px;border-radius:9px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.records-format-list b{font-size:12px;color:#2a503a}
.records-format-list small{font-size:10px;color:#839285;line-height:1.5}
.records-format-list .btn{margin-top:4px}
.records-backup-panel{display:flex;justify-content:space-between;align-items:center;gap:20px}
.reports-builder-intro{margin-bottom:20px}
.reports-preview-panel{margin-top:20px}
.report-preview-group{padding:12px 0 18px;border-top:1px solid #e1e8e2}
.report-preview-group:first-child{border-top:0}
.report-preview-group h3{font-size:14px;color:#244931;margin:0 0 12px}
.report-preview-group h3 small{font-size:11px;font-weight:400;color:#667a6e;margin-left:6px}
.report-preview-scroll{overflow:auto;max-height:340px;border:1px solid #e1e8e2;border-radius:8px}
.report-preview-scroll table{border-collapse:collapse;width:100%;font-size:11px}
.report-preview-scroll th,.report-preview-scroll td{padding:9px 11px;border-bottom:1px solid #e8ece8;text-align:left;white-space:nowrap}
.report-preview-scroll th{position:sticky;top:0;background:#f1f5f1;color:#244931}
.records-backup-panel>div:first-child{max-width:720px}
.records-backup-panel h2{font-size:17px;margin:8px 0 9px;color:#244931}
.records-backup-panel p{font-size:11px;color:#6a806f;line-height:1.75}
.records-backup-actions{display:flex;flex-direction:column;gap:8px;min-width:220px}
.restore-danger-note{max-width:260px;color:#9a3d24;font-size:11px;line-height:1.5;font-weight:700}
@media(max-width:1000px){.records-grid{grid-template-columns:1fr}}
@media(max-width:650px){
  .maintenance-hub-head{align-items:flex-start;flex-direction:column}
  .maintenance-hub-actions{flex-direction:column}
  .maintenance-hub-actions .btn{width:100%;min-height:42px}
  .maintenance-hub-row{padding:12px}
  .record-option-grid{grid-template-columns:1fr}
  .record-option{min-height:48px}
  .records-filter-grid{grid-template-columns:1fr}
  .records-backup-panel{flex-direction:column;align-items:stretch}
  .records-backup-actions{min-width:0}
}
.staging-review-panel{margin-top:20px;padding:24px}
.staging-review-panel>p{max-width:850px;color:var(--muted,#6b7280);line-height:1.55}
.staging-file-label{display:block;font-weight:700;margin-top:16px;margin-bottom:8px}
#stagingBackupFile{display:block;width:100%;max-width:610px;padding:13px;border:1px solid #b9c8c3;border-radius:10px;background:var(--surface,#fff);color:inherit;font:inherit}
.staging-review-result{margin-top:17px;padding:15px;border:1px solid #cbd5d1;border-radius:12px;background:rgba(120,140,130,.06);line-height:1.5;overflow-wrap:anywhere}
.staging-review-result h3{margin:0 0 6px;font-size:1rem}
.staging-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:9px;margin:14px 0}
.staging-review-grid>div{display:flex;flex-direction:column;gap:3px;padding:12px;border-radius:9px;background:rgba(132,150,145,.10)}
.staging-review-grid span{font-size:.82rem;opacity:.85}
.staging-review-grid strong{font-size:1.24rem;font-variant-numeric:tabular-nums}
.staging-review-warning{border-left:3px solid #b78520;padding:8px 11px;background:rgba(183,133,32,.10)}
.staging-review-blocker{border-left:3px solid #b33d3d;padding:8px 11px;background:rgba(179,61,61,.12)}
.staging-review-ready{border-left:3px solid #24885e;padding:8px 11px;background:rgba(36,136,94,.10)}
@media(max-width:650px){.staging-review-panel{padding:16px}.staging-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.staging-import-panel{margin-top:22px;border-top:1px solid #cad5d0;padding-top:20px}
.staging-import-panel h3{margin:0 0 9px;font-size:1.12rem}
.staging-import-panel>p{line-height:1.55;max-width:900px}
.staging-import-status{padding:13px 15px;margin:14px 0;border:1px solid #aabeb5;border-radius:10px;background:rgba(134,157,146,.10);white-space:pre-line;font-variant-numeric:tabular-nums}
.staging-import-check{display:flex;align-items:flex-start;gap:11px;line-height:1.4;max-width:850px;margin:13px 0;cursor:pointer}
.staging-import-check input{width:21px;height:21px;min-width:21px;accent-color:#196a4e}
.staging-defer-check{display:flex;align-items:flex-start;gap:10px;background:rgba(183,133,32,.10);border:1px solid #cfa76a;border-radius:10px;padding:12px;line-height:1.5;cursor:pointer}
.staging-defer-check input{width:21px;height:21px;min-width:21px;accent-color:#9b6c12}
.staging-defer-check span{max-width:850px}
.staging-import-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.staging-import-actions button[hidden]{display:none!important}
@media(max-width:650px){.staging-import-actions>.btn{flex:1 1 100%;min-height:46px}}

/* Version 16: authenticated, in-memory, read-only staging browser. */
.cloud-pill{display:inline-flex;align-items:center;border:1px solid #8db4a3;background:#e4f3e9;color:#236347;border-radius:50px;padding:10px 13px;font-size:11px;font-weight:900;letter-spacing:.04em}
.cloud-security-note{background:#ecf6ee;border:1px solid #c6dfcb;border-left:4px solid #2e8055;border-radius:10px;padding:14px 16px;color:#28553b;font-size:12px;line-height:1.7;margin-bottom:16px}
.cloud-status{padding:14px 17px;border:1px solid #c9d8cc;background:#f1f7f1;border-radius:10px;color:#2a6843;font-weight:750;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.cloud-status[data-kind=error]{background:#fdf0ee;color:#a34338;border-color:#ebc2bc}
.cloud-status[data-kind=warning]{background:#fff6df;color:#8e6928;border-color:#ead39e}
.cloud-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;color:#738578;font-size:11px;margin:13px 0 18px}
.cloud-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.cloud-stat{min-width:0;background:#fff;border:1px solid #e3ebe4;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:7px}
.cloud-stat small{text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:850;color:#7e9687}
.cloud-stat strong{color:#1b4932;font-size:27px;line-height:1.1;font-variant-numeric:tabular-nums}
.cloud-stat span{color:#82948a;font-size:9px}
.cloud-browser{padding:19px 20px;min-width:0}
.cloud-mode-buttons{display:flex;gap:5px;border-bottom:1px solid #e5ede7;padding-bottom:14px;margin-bottom:18px;overflow-x:auto;scrollbar-width:thin}
.cloud-mode,.cloud-submode{border:1px solid transparent;background:transparent;border-radius:8px;padding:11px 13px;color:#6b8676;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer;min-height:42px}
.cloud-mode.active,.cloud-submode.active{background:#1f5d3e;color:#fff;border-color:#1f5d3e}
.cloud-mode:focus-visible,.cloud-submode:focus-visible{outline:2px solid #bd9250;outline-offset:2px}
.cloud-browser-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;flex-wrap:wrap}
.cloud-browser-top h2{font-size:20px;color:#214934;margin:0 0 7px}
.cloud-browser-top p{margin:0;color:#728677;font-size:11px;line-height:1.5}
.cloud-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cloud-search-label{font-size:10px;color:#6c8274;font-weight:750;display:flex;flex-direction:column;gap:5px}
.cloud-search-label input,.cloud-search-label select{border:1px solid #d8e5db;border-radius:8px;background:#fff;color:#234b35;padding:11px 12px;font-size:12px;min-height:43px;min-width:145px}
.cloud-search-label input{width:230px}
.cloud-table-wrap{min-width:0}
.cloud-table-scroll{overflow-x:auto;border:1px solid #e4ebe6;border-radius:9px;margin:8px 0}
.cloud-record-table{border-collapse:collapse;width:100%;min-width:650px;font-size:11px;color:#345743}
.cloud-record-table th{text-align:left;padding:12px;color:#6a836f;background:#f2f7f2;white-space:nowrap;font-size:10px;font-weight:850}
.cloud-sort-heading{font:inherit;color:inherit;background:transparent;border:0;border-radius:6px;padding:6px;cursor:pointer;white-space:nowrap;text-align:left;min-height:34px}
.cloud-sort-heading:hover,.cloud-sort-heading:focus-visible{background:#e0ede2;color:#16472d;outline-offset:2px}
.data-table th.legacy-sort-header{cursor:pointer;user-select:none}
.data-table th.legacy-sort-header:hover,.data-table th.legacy-sort-header:focus-visible{background:#dfeee3;outline-offset:2px}
.data-table th.legacy-sort-header::after{content:' ↕';opacity:.5}
.data-table th.legacy-sort-header[data-direction=asc]::after{content:' ↑';opacity:1}
.data-table th.legacy-sort-header[data-direction=desc]::after{content:' ↓';opacity:1}
.cloud-column-customizer,.cloud-tile-customizer{margin:10px 0;padding:12px;background:#f2f7f2;border:1px solid #d5e3d8;border-radius:10px;display:flex;flex-wrap:wrap;gap:10px}
.cloud-column-customizer legend,.cloud-tile-customizer legend{font-size:11px;font-weight:800;color:#214e37;padding:0 6px}
.cloud-column-option{display:inline-flex;align-items:center;gap:7px;min-height:33px;padding:4px 9px;background:#fff;border:1px solid #e0eae2;border-radius:6px;color:#335941;font-size:12px;cursor:pointer}
.cloud-column-option input{accent-color:#1b6842;min-width:17px;min-height:17px}
.cloud-tile-customizer{grid-column:1/-1}
.cloud-record-table td{padding:12px;vertical-align:middle;border-top:1px solid #e8eee9;max-width:270px;overflow-wrap:anywhere}
.cloud-record-table tr:nth-child(even){background:#fcfdfc}
.cloud-record-table td:first-child{font-weight:800;color:#214e37}
.cloud-empty{border:1px dashed #ccdbce;border-radius:9px;background:#f8fbf8;color:#778c7b;padding:18px;font-size:12px;line-height:1.6;margin:10px 0}
.cloud-page-controls{border-top:1px solid #e6eee7;margin-top:15px;padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;color:#6d8676;font-size:11px}
.cloud-page-controls>div{display:flex;gap:8px}
.cloud-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cloud-overview-card{min-width:0;padding:15px;border:1px solid #e1ebe3;border-radius:10px;background:#fbfdfb}
.cloud-overview-card h3,.cloud-requirement-section h3,.cloud-session-heading,.cloud-detail-card h3{margin:0 0 12px;color:#22513a;font-size:13px}
.cloud-overview-wide{grid-column:1/-1}
.cloud-activity-row{display:flex;flex-direction:column;gap:5px;border-top:1px solid #e5eee6;padding:10px 0;font-size:11px}
.cloud-activity-row b{color:#2e563d}.cloud-activity-row span{color:#7a8d80;line-height:1.5;overflow-wrap:anywhere}
.cloud-service-switch{display:flex;gap:8px;margin:8px 0 18px}
.cloud-submode{background:#f1f6f1;border-color:#e0e9e0}
.cloud-requirement-section{border:1px solid #dae9dd;border-radius:10px;background:#f8fbf8;padding:15px;margin:10px 0 22px}
.cloud-session-heading{margin:19px 0 10px}
.cloud-detail-card{margin-top:20px;border:1px solid #bcd8c3;border-radius:10px;background:#eff7f0;padding:16px}
.cloud-detail-card>p{font-size:11px;color:#587561;line-height:1.6}
.cloud-action-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:4px 0 15px}
.cloud-action-hint{font-size:11px;color:#698272;max-width:580px;line-height:1.5}
.cloud-record-table td .btn{margin:2px;min-height:38px;white-space:nowrap}
.cloud-edit-card{margin:20px 0;border:2px solid #95ba9d;border-radius:12px;background:#f5faf5;padding:20px;scroll-margin-top:25px}
.cloud-edit-modal-panel{width:min(100%,820px);max-height:min(94dvh,980px)}
.cloud-edit-modal-body{padding:20px 24px 28px}
.cloud-edit-modal-body .cloud-edit-card{margin:0;border:0;background:transparent;padding:0}
.cloud-maintenance-list{display:grid;gap:10px;margin:14px 0 22px}
.cloud-maintenance-entry{padding:13px 15px;border:1px solid #dceadd;border-radius:10px;background:#f7faf7;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.cloud-maintenance-entry strong{display:block;font-size:13px;color:#24563a}
.cloud-maintenance-entry small{display:block;margin-top:5px;color:#647b69;font-size:11px}
.cloud-maintenance-section-heading{font-size:13px;color:#254d36;margin:18px 0 6px}
.readiness-flag{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px 7px;max-width:100%;margin:4px 0;padding:6px 9px;border:1px solid transparent;border-radius:8px;font-size:11px;font-weight:800;line-height:1.3;vertical-align:middle}
.readiness-flag .flag-symbol{font-size:17px;line-height:1;font-weight:900}
.readiness-flag .flag-detail{font-size:10px;font-weight:650;opacity:.9}
.readiness-flag.green{background:#e6f5e9;color:#1b723c;border-color:#a8daba}
.readiness-flag.yellow{background:#ffeb00;color:#292300;border-color:#cfad00}
.readiness-flag.orange{background:#ff6a00;color:#211b16;border-color:#d64b00}
.readiness-flag.red{background:#fce5e5;color:#a71f2c;border-color:#eea0a6}
.readiness-flag.gray{background:#edf0ef;color:#52645b;border-color:#c7d0ca}
.data-table .readiness-flag,.cloud-record-table .readiness-flag{display:flex;width:max-content}
.cloud-edit-card h3{font-size:18px;color:#1b5235;margin:0 0 7px}
.cloud-edit-helper{font-size:12px;line-height:1.6;color:#647d69;margin:7px 0 17px}
.cloud-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cloud-edit-field{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#305b3e;min-width:0}
.cloud-edit-field input,.cloud-edit-field select,.cloud-edit-field textarea{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid #bdd5c3;border-radius:8px;background:#fff;color:#213f2f;font:inherit;font-size:14px}
.cloud-edit-field textarea{min-height:96px;resize:vertical}
.cloud-edit-field:has(textarea),.cloud-edit-form>.cloud-edit-helper,.cloud-edit-form>.cloud-due-preview,.cloud-edit-buttons{grid-column:1/-1}
.cloud-edit-field input[readonly]{background:#e9f3ec;color:#456c54}
.cloud-due-preview{font-size:12px;font-weight:750;color:#245d3d;background:#e6f2e9;padding:12px;border-radius:8px;margin:0}
.cloud-edit-buttons{display:flex;gap:10px;flex-wrap:wrap}
.cloud-edit-buttons button{min-height:46px}
.cloud-edit-error{font-size:12px;line-height:1.6;color:#99392d;background:#fdf0ec;padding:12px;border-radius:8px;margin:12px 0}
.cloud-save-review:not(:empty){margin-top:18px;border:2px solid #b28a44;background:#fff9e9;border-radius:10px;padding:17px;scroll-margin-top:28px}
.cloud-save-review h4{font-size:16px;margin:0 0 10px;color:#694b20}
.cloud-save-review p{font-size:12px;line-height:1.6;color:#674e2d;margin:6px 0}
.cloud-save-review .cloud-edit-buttons{margin-top:16px}
.cloud-attendance-picker,.cloud-class-picker{grid-column:1/-1;min-width:0;border:1px solid #c6dacb;border-radius:9px;padding:14px;background:#edf5ef}
.cloud-attendance-picker h4,.cloud-class-picker h4{font-size:14px;color:#275339;margin:0 0 4px}
.cloud-attendance-list{display:grid;gap:8px;max-height:380px;overflow-y:auto;padding-right:3px}
.cloud-attendee-row{background:#fff;border:1px solid #d4e5d7;border-radius:8px;padding:10px}
.cloud-attendee-row>label,.cloud-class-picker label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:12px;color:#345743;padding:6px 0}
.cloud-attendee-row input[type=checkbox],.cloud-class-picker input[type=checkbox]{width:19px;height:19px;flex-shrink:0;accent-color:#357c52}
.cloud-class-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
.cloud-class-picker h4,.cloud-class-picker>p{grid-column:1/-1}
.cloud-attendee-credit{display:grid;grid-template-columns:minmax(105px,1fr) minmax(160px,2fr);gap:8px;margin-top:9px}
.cloud-attendee-credit input{box-sizing:border-box;width:100%;min-width:0;min-height:42px;border:1px solid #bdd5c3;border-radius:7px;padding:9px;font-size:13px;background:#fff;color:#213f2f}
.cloud-progress-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 20px;padding:10px 0;border-top:1px solid #cfe0d3;font-size:12px;color:#31583f}
.cloud-progress-years{display:flex;gap:9px;margin-top:14px}
.cloud-access-card{border:1px solid #d3e4d7;border-radius:11px;background:#f8fbf8;padding:18px;margin:14px 0;display:grid;gap:12px;min-width:0}
.cloud-access-card h3{margin:0;color:#1f5336;font-size:16px}
.cloud-access-card>.btn{justify-self:start}
.cloud-access-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.cloud-access-form>.btn{min-height:44px;justify-self:start}
.cloud-access-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid #deebe0;background:#fff;border-radius:8px;min-width:0}
.cloud-access-row>div{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}
.cloud-access-row strong{font-size:13px;color:#204c35}.cloud-access-row small{font-size:11px;color:#6b8676}
.cloud-access-row>.cloud-edit-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.cloud-provider-review{border:2px solid #b28a44;border-radius:9px;background:#fff9e9;padding:16px;min-width:0}
.cloud-provider-review h4{font-size:15px;color:#694b20;margin:0 0 7px}
.cloud-provider-review p{font-size:12px;color:#674e2d;line-height:1.6;margin:0 0 12px}
.cloud-provider-change-form{max-width:530px}
.cloud-provider-change-form input{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid #b28a44;border-radius:8px;background:#fff;font-size:14px;color:#213f2f}
.cloud-provider-review .cloud-edit-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.cloud-permission-list{max-height:450px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid #d3e4d7;padding:12px;border-radius:8px;background:#fff}
@media(max-width:1000px){.cloud-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
  .cloud-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .cloud-stat{padding:13px}.cloud-stat strong{font-size:24px}
  .cloud-overview-grid{grid-template-columns:1fr}.cloud-overview-wide{grid-column:auto}
  .cloud-browser{padding:14px}
  .cloud-controls{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cloud-search-label input,.cloud-search-label select{width:100%;min-width:0}
  .cloud-mode-buttons{margin-left:-3px;margin-right:-3px}
  .cloud-page-controls>div{width:100%}.cloud-page-controls>div button{flex:1;min-height:42px}
  #view-cloud .heading-actions{flex-wrap:wrap;align-items:center}
  .cloud-edit-form{grid-template-columns:1fr}.cloud-edit-card{padding:15px}
  .cloud-edit-buttons button{flex:1;min-width:135px}
  .cloud-class-picker,.cloud-attendee-credit{grid-template-columns:1fr}
  .cloud-access-form,.cloud-permission-list{grid-template-columns:1fr}
  .cloud-access-row{align-items:flex-start;flex-direction:column}
}

/* Date and time are explicitly entered as 24-hour HH:MM on every local form. */
.military-datetime{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:8px;align-items:start;min-width:0}
.military-clock-wrap{display:flex;flex-direction:column;min-width:0}
.military-clock-wrap small{color:#7d9183;font-size:9px;margin-top:4px;white-space:nowrap}
.field .military-clock,.field .military-date{min-width:0;width:100%;box-sizing:border-box}
@media(max-width:420px){.military-datetime{grid-template-columns:minmax(0,1fr)}}
.cloud-attendee-row[hidden]{display:none!important}

/* Keep cloud connection drafts at the bottom of Administration, collapsed by default. */
.admin-advanced{overflow:visible}
.admin-advanced-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;min-height:54px}
.admin-advanced-summary::-webkit-details-marker{display:none}
.admin-advanced-summary>span:first-child{display:grid;gap:5px}
.admin-advanced-summary strong{font-size:19px;color:#213f2f}
.admin-advanced-summary .chip{flex-shrink:0}
.admin-advanced-summary:focus-visible{outline:3px solid #357c52;outline-offset:5px;border-radius:6px}
.admin-advanced[open] .admin-advanced-summary{padding-bottom:17px;margin-bottom:14px;border-bottom:1px solid #d3e4d7}
@media(max-width:650px){.admin-advanced-summary{align-items:flex-start;flex-direction:column}}
