:root{color:var(--text);background:var(--bg);--text:#0a1b2b;--bg:#f4f7f6;--navy:#0a1b2b;--navy-2:#143044;--accent:#2bfc98;--accent-soft:#d4ffe9;--accent-mid:#56ecb4;--brand-purple:#7e3bd0;--danger:#b91c1c;--panel:#fff;--border:#ced3d1;--muted:#4a5a63;--input-bg:#fff;--btn-secondary-bg:#e8efec;--btn-secondary-fg:#0a1b2b;--hover-row:#eef8f3;--surface-muted:#f4f7f9;--rag-green-bg:#eef8f2;--rag-amber-bg:#fff8e8;--rag-red-bg:#fef2f2;--rag-green-hover:#dff3e8;--rag-amber-hover:#ffefd0;--rag-red-hover:#fde4e4;--task-ref-fg:var(--navy);--sidebar:220px;--topbar:60px;--header-start:#0a1b2b;--header-mid1:#143044;--header-mid2:#7e3bd0;--header-end:#2bfc98;font-family:Segoe UI,Candara,Calibri,sans-serif;line-height:1.45}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#e6eef4;--bg:#0b1218;--panel:#15202b;--border:#354b5e;--muted:#9aafbc;--accent-soft:#2bfc9829;--input-bg:#0f1a24;--btn-secondary-bg:#243442;--btn-secondary-fg:#e6eef4;--hover-row:#1a2c38;--surface-muted:#1a2632;--danger:#f87171;--rag-green-bg:#123028;--rag-amber-bg:#3a2e12;--rag-red-bg:#3a1a1a;--rag-green-hover:#184038;--rag-amber-hover:#4a3a18;--rag-red-hover:#4a2222;--task-ref-fg:#9efcd4}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.appShell{grid-template-columns:var(--sidebar) 1fr;grid-template-rows:var(--topbar) 1fr;height:100dvh;display:grid;overflow:hidden}.topbar{background:linear-gradient(120deg, var(--header-start) 0%, var(--header-mid1) 42%, var(--header-mid2) 72%, var(--header-end) 100%);color:#fff;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex}.topbarLeft{flex-shrink:0;align-items:center;gap:12px;min-width:0;display:flex}.themeToggle{color:#fff;background:#0a1b2b47;border:1px solid #ffffff59;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.themeToggle:hover{background:#ffffff2e}.themeToggle:focus-visible{outline-offset:2px;outline:2px solid #fff}.themeToggle svg{width:18px;height:18px;display:block}.brand{letter-spacing:.04em;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:1.35rem;font-weight:700}.brand:hover{opacity:.9}.brand:focus-visible{outline-offset:3px;outline:2px solid #fff}.topbarMeta{color:#e2e8f0;flex-shrink:0;align-items:center;gap:12px;font-size:.92rem;display:flex}.userMenu{position:relative}.userMenuTrigger{color:#fff;max-width:min(320px,42vw);font:inherit;background:#0a1b2b47;border:1px solid #ffffff47;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:inline-flex}.userMenuTrigger:hover,.userMenuTrigger.isOpen{background:#ffffff2e}.userMenuTrigger:focus-visible{outline-offset:2px;outline:2px solid #fff}.userMenuLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.userMenuChevron{opacity:.85;flex-shrink:0;font-size:.85rem;line-height:1}.userMenuDropdown{background:var(--panel);min-width:220px;color:var(--text,var(--navy));border:1px solid var(--border);z-index:60;border-radius:12px;padding:6px 0;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 28px #0a1b2b38}.userMenuItem{width:100%;color:inherit;text-align:left;font:inherit;background:0 0;border:0;padding:10px 14px;font-weight:600;display:block}.userMenuItem:hover{background:var(--hover-row,var(--accent-soft))}.userMenuDivider{background:var(--border);height:1px;margin:4px 0}.userMenuItemDanger{color:var(--danger)}.globalSearch{flex:1;min-width:0;max-width:520px;margin:0 auto;position:relative}.globalSearchInput{color:#fff;background:#0a1b2b59;border:1px solid #ffffff47;border-radius:10px;outline:none;width:100%;padding:8px 12px}.globalSearchInput::placeholder{color:#e2e8f0b8}.globalSearchInput:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2bfc9847}.globalSearchDropdown{background:var(--panel);max-height:min(70vh,420px);color:var(--text);border:1px solid var(--border);z-index:40;border-radius:12px;padding:6px 0;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 12px 28px #0a1b2b38}.globalSearchStatus{color:var(--muted);padding:10px 14px;font-size:.9rem}.globalSearchStatus.error{color:var(--danger)}.globalSearchGroupTitle{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 14px 4px;font-size:.72rem}.globalSearchHit{text-align:left;width:100%;color:inherit;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;display:flex}.globalSearchHit:hover{background:var(--accent-soft)}.globalSearchHitMain{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.globalSearchHitRef{font-variant-numeric:tabular-nums;color:var(--text);font-weight:650}.globalSearchHitLabel{color:var(--text);font-weight:600}.globalSearchHitSub{color:var(--muted);font-size:.85rem}.sidebar{background:var(--navy);color:#d7e8e2;min-height:0;top:var(--topbar);flex-direction:column;align-self:stretch;gap:8px;padding:16px 12px;display:flex;position:sticky;overflow:auto}.navFooter{border-top:1px solid #d7e8e21f;margin-top:auto;padding-top:12px}.navSectionLabel{letter-spacing:.08em;text-transform:uppercase;color:#7a9290;margin:12px 10px 6px;font-size:.7rem}.navBtn{text-align:left;color:inherit;background:0 0;border:0;border-radius:10px;padding:10px 12px}.navBtn:hover,.navBtn.active{color:#fff;background:#2bfc9838}.navGroup{flex-direction:column;gap:0;display:flex}.navBtnParent{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.navChevron{color:#7a9290;flex-shrink:0;justify-content:center;align-items:center;width:1.15em;font-size:1rem;line-height:1;transition:transform .22s;display:inline-flex}.navGroup.open .navChevron{color:var(--accent);transform:rotate(90deg)}.navSubmenu{grid-template-rows:0fr;transition:grid-template-rows .22s;display:grid}.navGroup.open .navSubmenu{grid-template-rows:1fr}.navSubmenuInner{flex-direction:column;gap:2px;min-height:0;padding-left:8px;display:flex;overflow:hidden}.navSubBtn{color:#b7cdc6;padding:8px 12px 8px 16px;font-size:.92rem;position:relative}.navSubBtn:before{content:"";background:#5f7976;border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.navSubBtn:hover,.navSubBtn.active{color:#fff}.navSubBtn.active:before{background:var(--accent)}.main{min-height:0;padding:20px;overflow:auto}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:0 8px 24px #0a1b2b0f}.pageHeader{justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px;display:flex}.pageHeader h1{margin:0;font-size:1.55rem}.pageHeader p{color:var(--muted);margin:4px 0 0}.sopContent{max-width:820px}.sopSection h2{margin:0 0 10px;font-size:1.15rem}.sopSection h3{margin:14px 0 8px;font-size:.98rem}.sopSection p{margin:0 0 10px;line-height:1.5}.sopSection ol,.sopSection ul{margin:0 0 10px;padding-left:1.35rem;line-height:1.55}.sopSection li+li{margin-top:6px}.toolbar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field span{color:var(--muted);font-size:.85rem;font-weight:600}.field input,.field select,.field textarea,.searchInput,.authCard input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);border-radius:10px;padding:10px 12px}.field textarea{resize:vertical;min-height:90px}.w3wField{align-items:stretch;gap:8px;min-width:0;display:flex}.w3wField input{flex:auto;width:auto;min-width:0}.w3wField .btn{white-space:nowrap;flex:none}.btn{background:var(--navy);color:#fff;border:0;border-radius:10px;padding:10px 14px;font-weight:600;text-decoration:none;display:inline-block}.btn.secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-fg)}.btn.accent{background:var(--accent);color:var(--navy)}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.6;cursor:not-allowed}.tableWrap{overflow:auto}table.data{border-collapse:collapse;width:100%}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}table.data th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover{background:var(--hover-row)}table.data tr.ragRowGreen{background:var(--rag-green-bg)}table.data tr.ragRowAmber{background:var(--rag-amber-bg)}table.data tr.ragRowRed{background:var(--rag-red-bg)}table.data tr.ragRowGreen.clickable:hover{background:var(--rag-green-hover)}table.data tr.ragRowAmber.clickable:hover{background:var(--rag-amber-hover)}table.data tr.ragRowRed.clickable:hover{background:var(--rag-red-hover)}.accessLogDetail{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start;gap:16px;display:grid}.accessMeta{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;display:grid}.accessDescription{white-space:pre-wrap;margin:6px 0 0;line-height:1.45}.accessLogSide h3{margin-bottom:10px;font-size:1rem}.accessLogSideList{flex-direction:column;gap:6px;max-height:min(70vh,640px);margin:0;padding:0;list-style:none;display:flex;overflow:auto}.accessLogSideItem{text-align:left;border:1px solid var(--border);background:var(--panel);cursor:pointer;width:100%;color:var(--text);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.accessLogSideItem:hover{background:var(--hover-row)}.accessLogSideItem.active{border-color:var(--accent,#2bfc98);background:var(--accent-soft,#d4ffe9)}.accessLogSideWhen{font-size:.82rem;font-weight:600}.accessLogSideAction{font-weight:700}.accessLogSideMeta{font-size:.8rem}.btnLink{color:var(--navy,#0a1b2b);cursor:pointer;font-weight:700;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-bottom:10px;display:flex}.tab{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:8px 12px;font-weight:600}.tab.active{background:var(--accent-soft);color:var(--text)}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.muted{color:var(--muted)}.error{color:var(--danger);margin:8px 0}.success{color:#0d8a5b;margin:8px 0}.badge{background:#e8efec;border-radius:999px;align-items:center;padding:2px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.badge.ok{color:#0a6b48;background:#d4ffe9}.badge.warn{color:#92400e;background:#fef3c7}.badge.danger{color:#991b1b;background:#fee2e2}.badge.ragGreen{color:#0a6b48;background:#d4ffe9}.badge.ragAmber{color:#92400e;background:#fef3c7}.badge.ragRed{color:#991b1b;background:#fee2e2}.badge.ragMuted{color:var(--muted);background:#e8efec;font-weight:600}.dueWithRag{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.lockBanner{color:#78350f;background:#fffbeb;border:1px solid #f59e0b;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 0 16px;padding:12px 16px;display:flex}.lockBanner .btn{flex-shrink:0}.taskRef{letter-spacing:.02em;color:var(--task-ref-fg,var(--navy,#0a1b2b));background:var(--accent-soft,#d4ffe9);border-radius:6px;padding:2px 8px;font-family:Consolas,Courier New,monospace;font-weight:700;display:inline-block}.taskRefHeading{margin:0 0 4px;font-size:1rem}.authScreen{background:radial-gradient(circle at 0 0,#2bfc9847,#0000 42%),radial-gradient(circle at 100% 0,#7e3bd038,#0000 38%),linear-gradient(160deg,#0a1b2b,#143044 48%,#0d3d32);place-items:center;min-height:100vh;padding:24px;display:grid}.authCard{background:var(--panel);width:min(420px,100%);color:var(--text);border-radius:18px;padding:28px;box-shadow:0 20px 50px #00000040}.authCard h1{margin:0 0 6px;font-size:1.8rem}.authCard .subtitle{color:var(--muted);margin:0 0 18px}.authCard form{flex-direction:column;gap:12px;display:flex}.qrBox{background:var(--surface-muted);border:1px dashed var(--border);border-radius:12px;place-items:center;gap:8px;padding:12px;display:grid}.qrBox img{width:180px;height:180px}.secretCode{word-break:break-all;font-family:Consolas,monospace;font-size:.85rem}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pinDisplay{letter-spacing:.3em;font-family:Consolas,monospace;font-size:1.6rem;font-weight:700}.modalBackdrop{z-index:50;background:#0f172a73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modalBackdrop.pinChallenge{-webkit-backdrop-filter:blur(8px);background:#0f172a8c}.modal{background:var(--panel);width:min(520px,100%);color:var(--text);border:1px solid var(--border);filter:none;pointer-events:auto;border-radius:14px;padding:18px}.clientDetailContent.clientDetailBlurred{filter:blur(6px);pointer-events:none;-webkit-user-select:none;user-select:none}.timesheetPanel{padding:0;overflow:hidden}.timesheetToolbar{border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--surface-muted) 0%, var(--panel) 100%);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 20px 16px;display:flex}.timesheetTitle{color:var(--text,var(--navy));margin:0;font-size:1.15rem}.timesheetSubtitle{color:var(--muted);margin:4px 0 0;font-size:.92rem}.timesheetWeekNav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.timesheetNavBtn{min-width:40px;padding-left:0;padding-right:0;font-size:1.25rem;line-height:1}.timesheetWeekLabelBlock{flex-direction:column;align-items:center;min-width:11rem;padding:0 6px;display:flex}.timesheetWeekEyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700}.timesheetWeekLabel{text-align:center;color:var(--text,var(--navy));font-size:.95rem}.timesheetMetaCards{grid-template-columns:repeat(2,minmax(140px,180px));gap:12px;padding:16px 20px 0;display:grid}.timesheetMetaCard{background:linear-gradient(160deg, var(--accent-soft), var(--surface-muted));border:1px solid var(--border);border-radius:12px;padding:12px 14px}.timesheetMetaLabel{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.timesheetMetaValue{color:var(--text,var(--navy));font-variant-numeric:tabular-nums;font-size:1.35rem}.timesheetLoading{padding:20px}.timesheetForm{flex-direction:column;gap:0;padding:16px 20px 20px;display:flex}.timesheetTableShell{border:1px solid var(--border);background:var(--panel);border-radius:14px;overflow:auto}.timesheetTable{border-collapse:collapse;width:100%;min-width:980px}.timesheetTable th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px;font-size:.72rem;font-weight:700}.timesheetTable td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);padding:10px 14px}.timesheetTable tbody tr:last-child td{border-bottom:1px solid var(--border)}.timesheetTable tbody tr:hover td{background:var(--hover-row)}.timesheetWeekendRow td{background:var(--surface-muted)}.timesheetActiveRow td{background:var(--accent-soft)}.timesheetActiveRow:hover td{background:var(--hover-row)}.timesheetDayBlock{flex-direction:column;gap:2px;min-width:4.5rem;display:flex}.timesheetDayName{color:var(--text,var(--navy));font-weight:700}.timesheetDayDate{color:var(--muted);font-size:.82rem}.timesheetColHours{width:6.5rem}.timesheetColStart,.timesheetColEnd{width:8rem}.timesheetColShift,.timesheetColWorkType{width:9.5rem}.timesheetTable input,.timesheetTable select{border:1px solid var(--border);background:var(--input-bg);color:var(--text,var(--navy));border-radius:10px;padding:9px 10px}.timesheetTable input:focus,.timesheetTable select:focus{border-color:var(--accent-mid);outline:2px solid #2bfc9873}.timesheetHoursInput{font-variant-numeric:tabular-nums;width:5.5rem}.timesheetTimeInput{font-variant-numeric:tabular-nums;width:7.5rem}.timesheetSelect{width:100%;min-width:8.5rem}.timesheetNotesInput{width:100%;min-width:12rem}.timesheetTable tfoot td{background:var(--navy);color:#fff;border-bottom:0;padding:12px 14px}.timesheetFooterLabel{letter-spacing:.05em;text-transform:uppercase;color:#9eb0bc;font-size:.78rem;font-weight:700}.timesheetFooterHours{font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.05rem;font-weight:700}.timesheetActions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.timesheetHint{margin:0;font-size:.88rem}.settingsSection{margin-bottom:18px;padding:0;overflow:hidden}.settingsSectionSummary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;list-style:none;display:flex}.settingsSectionSummary::-webkit-details-marker{display:none}.settingsSectionSummary:after{content:"â–¸";color:var(--muted);flex-shrink:0;font-size:1rem;line-height:1;transition:transform .18s}.settingsSection[open]>.settingsSectionSummary:after{color:var(--accent-mid,var(--accent));transform:rotate(90deg)}.settingsSectionSummary:hover{background:var(--hover-row)}.settingsSectionTitle{color:var(--text,var(--navy));margin:0;font-size:1.05rem;font-weight:700}.settingsSectionBody{border-top:1px solid var(--border);padding:0 18px 18px}.settingsSectionDesc{margin:12px 0 14px}.settingsSectionHeader{margin-bottom:16px}.settingsAddRow{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:16px;display:flex}.headerColorPickers{flex-wrap:wrap;gap:20px;margin-bottom:16px;display:flex}.headerColorField{flex-direction:column;gap:8px;min-width:160px;display:flex}.headerColorField span{color:var(--muted);font-size:.9rem}.headerColorInputRow{align-items:center;gap:10px;display:flex}.headerColorInputRow input[type=color]{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;width:52px;height:40px;padding:2px}.headerColorInputRow input[type=text]{text-transform:lowercase;width:110px}.headerColorPreview{border:1px solid var(--border);border-radius:10px;height:48px;margin-bottom:14px}.headerColorActions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.settingsNavGrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.settingsNavCard{text-align:left;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:flex-start;gap:8px;padding:18px 20px;transition:border-color .15s,box-shadow .15s;display:flex;box-shadow:0 8px 20px #0a1b2b0a}.settingsNavCard:hover,.settingsNavCard:focus-visible{border-color:var(--accent-mid);outline:none;box-shadow:0 10px 24px #0a1b2b14}.settingsNavCardTitle{color:var(--text);font-size:1.1rem;font-weight:700}.settingsNavCardHint{color:var(--muted);font-size:.9rem;line-height:1.4}.systemUpdateLog{white-space:pre-wrap;word-break:break-word;max-height:320px;color:var(--text);background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;margin:12px 0 0;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.45;overflow:auto}.systemUpdateOverlay{z-index:200;-webkit-backdrop-filter:blur(6px);background:linear-gradient(145deg,#0a1b2beb 0%,#143044e6 45%,#7e3bd0c7 100%);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.systemUpdateCard{text-align:center;width:min(440px,100%);color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px 24px;box-shadow:0 18px 48px #00000047}.systemUpdateBrand{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;font-size:1.15rem;font-weight:700}.systemUpdateCard h1{color:var(--text);margin:0 0 10px;font-size:1.65rem;font-weight:700}.systemUpdateCard p{max-width:34ch;color:var(--muted);margin:0 auto 22px;font-size:.98rem;line-height:1.5}.systemUpdateSpinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto;animation:.9s linear infinite systemUpdateSpin}@keyframes systemUpdateSpin{to{transform:rotate(360deg)}}.filtersBar{margin-bottom:14px}.filterChips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filterChip{border:1px solid var(--border);color:var(--navy);cursor:pointer;background:#fff;border-radius:10px;padding:8px 12px;font-size:.9rem;font-weight:600}.filterChip:hover{background:#e8efec}.filterChip.isActive{background:var(--navy);color:#fff;border-color:var(--navy)}.toolbar .field{flex:0 180px;min-width:140px}.toolbar .searchInput{flex:220px;min-width:160px}.grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.modalWide{width:min(720px,100%)}.modalIncidentCreate{width:min(720px,100%);max-height:min(92vh,100%);overflow-y:auto}.modalIncidentCreate.hasProcedure{width:min(1100px,96vw)}.incidentCreateLayout{grid-template-columns:1fr;gap:18px;display:grid}.incidentCreateLayout.hasProcedure{grid-template-columns:minmax(0,1fr) minmax(280px,380px);align-items:start}.incidentCreateFormCol,.incidentCreateProcedureCol{min-width:0}.incidentCreateProcedureCol{border-left:1px solid var(--border);align-self:start;padding-left:16px;position:sticky;top:0}.incidentProcedureRunner{gap:12px}.incidentProcedureHeader{flex-direction:column;gap:4px;display:flex}.incidentProcedureStepCurrent,.incidentProcedureComplete{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:12px 14px}.incidentProcedureNav{justify-content:space-between;margin-top:4px}@media (width<=900px){.incidentCreateLayout.hasProcedure{grid-template-columns:1fr}.incidentCreateProcedureCol{border-left:0;border-top:1px solid var(--border);padding-top:14px;padding-left:0;position:static}}.modalTaskCreate{border:1px solid #b8c4cc;width:min(900px,96vw);max-height:min(90vh,100%);overflow-y:auto;box-shadow:0 12px 36px #0f172a47}.modalTaskTabs{margin-top:4px}.modalTaskPanel.hidden{display:none}.equipmentCheckList{max-height:min(40vh,320px);padding:4px 0;overflow-y:auto}.equipmentCheckRow{align-items:flex-start;gap:10px}.clientPicker{width:100%;position:relative}.clientPickerInput{width:100%}.clientPicker .globalSearchDropdown{z-index:50;top:calc(100% + 4px)}.clientPickerSelected{border:1px solid var(--border);background:var(--input-bg);box-sizing:border-box;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:38px;padding:8px 10px;display:flex}.clientPickerSelectedLabel{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.clientPickerClear{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:2px 4px;font-size:.85rem;font-weight:600}.clientPickerClear:hover{color:var(--text)}.clientPickerLocked .clientPickerSelected{background:var(--surface-muted)}.modalCallDetail{width:min(1100px,96vw);max-height:min(90vh,100%);overflow-y:auto}.callDetailMeta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;display:grid}.callDetailMeta .field p{margin:0}.callDetailNotes textarea{width:100%;min-height:140px}.modalLogContact{width:min(720px,96vw);min-height:min(720px,92vh);max-height:min(96vh,100%);overflow-y:auto}.modalLogContactWide{width:min(1120px,96vw);min-height:min(740px,94vh)}.modalLogContactWide.hasProcedure{width:min(1200px,96vw)}.logContactLayout{grid-template-columns:minmax(0,1fr) minmax(280px,.95fr);align-items:start;gap:20px 28px;display:grid}.logContactLayout.hasProcedure{grid-template-columns:minmax(0,1fr) minmax(320px,1.05fr)}.logContactSideTitle{margin:0;font-size:1rem}.logContactCard{border:1px solid var(--muted);background:var(--surface-muted,#f8faf9);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.logContactCardLabel{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:700}.logContactCardName{margin:0;font-weight:600}.logContactCardRow{justify-content:space-between;align-items:center;gap:10px;display:flex}.telephoneWithCall{flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;display:inline-flex}.telephoneWithCallWide{justify-content:space-between;width:100%}.telephoneWithCall .btn{flex-shrink:0;padding:6px 10px;font-size:.82rem}.telephoneWithCallField{align-items:center;gap:8px;width:100%;display:flex}.telephoneWithCallField>input{flex:1;min-width:0}@media (width<=800px){.callDetailMeta,.logContactLayout{grid-template-columns:1fr}.modalLogContactWide{width:min(720px,96vw);min-height:min(720px,92vh)}}.incidentReport{flex-direction:column;gap:14px;display:flex}.incidentTabPanel.hidden{display:none}.incidentTimeline{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.incidentTimelineItem{border-left:3px solid var(--border);grid-template-columns:minmax(140px,180px) 1fr;gap:14px;padding:12px 0 12px 16px;display:grid;position:relative}.incidentTimelineItem:before{content:"";background:var(--accent,#2bfc98);border:2px solid var(--panel);width:11px;height:11px;box-shadow:0 0 0 1px var(--border);border-radius:50%;position:absolute;top:18px;left:-7px}.incidentTimelineItem.kind-escalated{border-left-color:#f59e0b}.incidentTimelineItem.kind-escalated:before{background:#f59e0b}.incidentTimelineItem.kind-procedure-call:before,.incidentTimelineItem.kind-procedure-email:before,.incidentTimelineItem.kind-procedure:before{background:#38bdf8}.incidentTimelineWhen{color:var(--muted);font-size:.9rem;font-weight:600}.incidentTimelineTitle{margin-bottom:2px;font-weight:700}.incidentTimelineBody{min-width:0}@media (width<=700px){.incidentTimelineItem{grid-template-columns:1fr;gap:4px}}.incidentSection{background:var(--panel);border:1px solid var(--border);box-shadow:none;border-radius:4px;padding:18px 20px}.incidentSectionTitle{letter-spacing:.08em;text-transform:uppercase;color:var(--navy);border-bottom:1px solid var(--border);margin:0 0 14px;padding-bottom:8px;font-size:.78rem;font-weight:700}.incidentMeta{background:var(--surface-muted)}.checkboxField{flex-direction:row;align-items:center;gap:10px;display:flex}.checkboxField span{color:var(--text);font-weight:600}.assigneeName,.assigneeChipLabel,.assigneePicker .globalSearchHitLabel{color:var(--text)}.assigneePicker{flex-direction:column;gap:8px;width:100%;display:flex}.assigneePickerEmpty{margin:0}.assigneePickerDisabled .assigneeChips{opacity:.92}.assigneeChips{flex-wrap:wrap;gap:6px;display:flex}.assigneeChip{border:1px solid var(--border);background:var(--surface-muted);max-width:100%;color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:.9rem;line-height:1.2;display:inline-flex}.assigneeChipLabel{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.assigneeChipRemove{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:1.05rem;line-height:1}.assigneeChipRemove:hover{color:var(--text)}.assigneePickerSearch{width:100%}.checkboxField input[type=checkbox]{width:18px;height:18px}.personRow{border-bottom:1px solid #e8eeeb;margin-bottom:10px;padding-bottom:10px}.personRow:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.dashStatGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.dashStatGridCompact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.dashStatCard{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:0 8px 20px #0a1b2b0a}.dashStatLabel{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.dashStatValue{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.6rem;display:block}.dashStatHint{color:var(--muted);margin-top:4px;font-size:.8rem;display:block}.dashColumns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.dashPanel{min-width:0}.dashPanelHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.dashPanelHeaderEmpty{margin-bottom:0}.dashPanelHeader h2{color:var(--navy);margin:0;font-size:1.1rem}.dashSubheading{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px;font-size:.85rem}@media (width<=900px){.timesheetToolbar{flex-direction:column}.timesheetMetaCards{grid-template-columns:1fr 1fr}.timesheetActions{flex-direction:column;align-items:stretch}.dashColumns{grid-template-columns:1fr}.appShell{grid-template-columns:1fr;grid-template-rows:var(--topbar) auto 1fr}.sidebar{flex-direction:row;padding:8px;overflow:auto}.navFooter{border-top:0;margin-top:0;margin-left:auto;padding-top:0}.navSectionLabel{display:none}.grid2,.grid3,.grid4,.accessLogDetail,.accessMeta{grid-template-columns:1fr}}[data-theme=dark] .modal,[data-theme=dark] .modalTaskCreate,[data-theme=dark] .modalIncidentCreate,[data-theme=dark] .modalWide,[data-theme=dark] .modalCallDetail,[data-theme=dark] .modalLogContact,[data-theme=dark] .systemUpdateCard{border:1px solid #c5ced6}[data-theme=dark] .pageHeader h1,[data-theme=dark] .panel h2,[data-theme=dark] .panel h3,[data-theme=dark] .pinDisplay,[data-theme=dark] .btnLink,[data-theme=dark] .globalSearchHitLabel,[data-theme=dark] .dashPanelHeader h2,[data-theme=dark] .clientPickerClear:hover,[data-theme=dark] .incidentSectionTitle,[data-theme=dark] .settingsNavCardTitle,[data-theme=dark] .settingsSectionTitle{color:var(--text)}[data-theme=dark] .settingsNavCard{color:var(--text);box-shadow:none}[data-theme=dark] .filterChip{background:var(--btn-secondary-bg);color:var(--text)}[data-theme=dark] .btn.accent{color:#0a1b2b}[data-theme=dark] .badge{background:var(--btn-secondary-bg);color:var(--text)}[data-theme=dark] .badge.ok,[data-theme=dark] .badge.ragGreen{color:#7dffc3;background:#123028}[data-theme=dark] .badge.warn,[data-theme=dark] .badge.ragAmber{color:#fbbf24;background:#3a2e12}[data-theme=dark] .badge.danger,[data-theme=dark] .badge.ragRed{color:#fca5a5;background:#3a1a1a}[data-theme=dark] .badge.ragMuted{background:var(--btn-secondary-bg);color:var(--muted)}[data-theme=dark] .globalSearchDropdown{background:var(--panel);color:var(--text);border-color:var(--border)}[data-theme=dark] .success{color:#34d399}.confirmOverlay{z-index:1200;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.confirmDialog{background:var(--panel,#fff);color:var(--text,#0f172a);border:1px solid var(--border,#e2e8f0);border-radius:14px;width:100%;max-width:560px;padding:20px;box-shadow:0 18px 50px #0f172a33}.confirmDialogTitle{margin:0 0 8px;font-size:1.15rem}.confirmDialogText{color:var(--muted);margin:0 0 14px}.confirmDialogActions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.pageMuted{color:var(--muted);margin:0}.adminCctvSiteField{max-width:420px;margin-bottom:8px}.adminCctvSiteSelect{width:100%}.adminCctvSiteSummary{margin:0 0 16px}.adminCctvCameraList{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.adminCctvCameraCard{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.adminCctvCameraCard--active{border-left:4px solid #22c55e}.adminCctvCameraCard--inactive{background:#fef2f2;border-left:4px solid #ef4444}.adminCctvCameraCard--editing{box-shadow:0 0 0 2px #3b82f6}.adminCctvCameraCardBody{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;display:flex}.adminCctvCameraNotes{color:#475569;white-space:pre-wrap;width:100%;margin:4px 0 0}.adminCctvForm{border-top:1px solid #e2e8f0;flex-direction:column;gap:12px;padding-top:8px;display:flex}.adminCctvFormTitle{margin:0}.adminCctvActiveField{align-items:center;gap:8px;display:flex}.adminCctvFormActions{flex-wrap:wrap;gap:8px;display:flex}.cctvPageHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.cctvPageHeaderAside{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.cctvUploadWoButton{white-space:nowrap}.cctvPage{overflow:visible}.cctvPageWorkspace{align-items:flex-start;gap:16px;display:flex}.cctvSiteNavRail{width:240px;max-height:calc(100dvh - var(--topbar,60px) - 24px);overscroll-behavior:contain;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex:0 0 240px;padding:12px;position:sticky;top:0;overflow-y:auto}.cctvSiteNavRailTitle{letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin:0 0 10px;font-size:.72rem;font-weight:700}.cctvPageContent{flex:1;min-width:0}.cctvSummaryCards{flex-wrap:wrap;gap:10px;display:flex}.cctvSummaryCard{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:4px;min-width:88px;padding:10px 14px;display:grid}.cctvSummaryCardActive{background:#f0fdf4;border-color:#bbf7d0}.cctvSummaryCardInactive{background:#fef2f2;border-color:#fecaca}.cctvSummaryLabel{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.78rem;font-weight:700}.cctvSummaryValue{color:#0f172a;font-size:1.4rem;line-height:1}.cctvSiteTabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.cctvSiteTabs--vertical{flex-flow:column;gap:8px;margin-bottom:0;display:flex}.cctvSiteTabs--vertical .cctvSiteTab{width:100%}.cctvSiteNavAnchor{margin:0 0 16px;position:relative}.cctvSiteNavSentinel{pointer-events:none;width:1px;height:1px;position:absolute;top:0;left:0}.cctvSiteNavSpacer{width:100%}.cctvSiteNavSticky{z-index:75;background:#fff;flex-direction:column;gap:10px;padding:0 0 12px;display:flex;box-shadow:0 8px 12px -10px #0f172a2e}.cctvSiteNavSticky--pinned{z-index:90;position:fixed;box-shadow:0 4px 16px #0f172a1f}.cctvSiteNavSticky .cctvAwaitingCheckHint{margin:0}.cctvSiteNavRail .cctvSiteTabMeta{white-space:normal}.cctvCheckSessionMeta{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:0 0 16px;padding:0;display:grid;overflow:hidden}.cctvCheckSessionMetaItem{border-right:1px solid #e2e8f0;flex-direction:column;gap:.25rem;padding:12px 16px;display:flex}.cctvCheckSessionMetaItem:last-child{border-right:none}.cctvCheckSessionMetaLabel{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:.72rem;font-weight:700}.cctvCheckSessionMetaValue{color:#0f172a;font-size:.95rem;font-weight:600;line-height:1.35}.cctvCheckSessionMetaMuted{color:#64748b;margin-top:.1rem;font-size:.82rem;font-weight:500;display:block}.cctvCheckSessionMetaTimer{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:#0f172a;font-size:1.05rem;font-weight:700}.cctvSiteTab{color:#334155;font:inherit;cursor:pointer;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;padding:10px 14px;font-size:.9rem;font-weight:600;display:inline-flex}.cctvSiteTab--green{color:#14532d;background:#f0fdf4;border-color:#86efac}.cctvSiteTab--amber{color:#92400e;background:#fffbeb;border-color:#fcd34d}.cctvSiteTab--red{color:#991b1b;background:#fef2f2;border-color:#fca5a5}.cctvSiteTab--grey{color:#475569;background:#f8fafc;border-color:#cbd5e1}.cctvSiteTab.active.cctvSiteTab--green{box-shadow:inset 0 0 0 2px #16a34a}.cctvSiteTab.active.cctvSiteTab--amber{box-shadow:inset 0 0 0 2px #d97706}.cctvSiteTab.active.cctvSiteTab--red{box-shadow:inset 0 0 0 2px #dc2626}.cctvSiteTab.active.cctvSiteTab--grey{box-shadow:inset 0 0 0 2px #64748b}.cctvSiteTab--submitted:not(.active){opacity:.88}.cctvSiteTab--unsaved:not(.active){box-shadow:inset 0 0 0 2px #d97706}.cctvSiteTab--claimed:not(.active){box-shadow:inset 0 0 0 2px #2563eb}.cctvSiteTab--othersubmitted:not(.active){opacity:.82}.cctvSubmitProgress,.cctvEntireCheckReadyBanner{margin:0 0 .75rem}.cctvGlobalActions{background:#f0fdf4;border:2px solid #166534;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.75rem;margin:0 0 1rem;padding:1rem 1.1rem;display:flex}.cctvGlobalActionsBar{flex-flow:wrap;justify-content:space-between;align-items:center;gap:.75rem}.cctvGlobalActionsLeft,.cctvGlobalActionsRight{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.cctvGlobalActionsRight{justify-content:flex-end;margin-left:auto}.cctvGlobalSubmitButton{font-size:1rem}.cctvGlobalActionsInline{flex-flow:wrap;align-items:center}.cctvCopyPeriodDialog{width:min(100%,520px)}.cctvCopyPeriodActions{flex-direction:column;gap:10px;margin:16px 0;display:flex}.cctvCopyPeriodButton{color:#0f172a;width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;display:flex}.cctvCopyPeriodButton:hover:not(:disabled){background:#eff6ff;border-color:#2563eb}.cctvCopyPeriodButton:disabled{opacity:.6;cursor:not-allowed}.cctvCopyPeriodButtonTitle{font-size:1rem;font-weight:700}.cctvCopyPeriodButtonMeta{color:#475569;font-size:.88rem}.cctvAwaitingCheckHint{margin:0 0 .75rem}.cctvReportingPage .cctvSummaryCards{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.cctvReportingSectionIntro{margin:-.35rem 0 .75rem}.cctvReportingWorstSection{margin-top:0}.cctvReportingWorstHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:.25rem;display:flex}.cctvReportingWorstFilters{flex-shrink:0}.cctvReportingSubmissionPicker{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.cctvReportingSubmissionPickerLabel{color:#0f172a;font-size:.92rem;font-weight:700}.cctvReportingSubmissionSelect{min-width:min(100%,520px);font:inherit;color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex:320px;padding:.55rem .7rem}.cctvReportingSubmissionDetail{background:#f8fbff;border:1px solid #dbeafe;border-radius:12px;margin-bottom:1.5rem;padding:1rem 1.1rem}.cctvReportingSubmissionDetailHeader{flex-wrap:wrap;justify-content:space-between;gap:.75rem 1rem;margin-bottom:.9rem;display:flex}.cctvReportingSubmissionMeta{margin:.25rem 0 0}.cctvReportingSubmissionSummary{color:#334155;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.92rem;font-weight:600;display:flex}.cctvReportingTableRowSelected td{background:#eff6ff}.cctvReportingMetrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:1.5rem;display:grid}.cctvReportingMetricCard{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.9rem 1rem}.cctvReportingMetricLabel{color:#64748b;margin-bottom:.35rem;font-size:.82rem;display:block}.cctvReportingMetricValue{color:#0f172a;font-size:1.35rem}.cctvReportingSection{margin-bottom:1.75rem}.cctvReportingSectionTitle{color:#0f172a;margin:0 0 .75rem;font-size:1.05rem}.cctvReportingTableWrap{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto}.cctvReportingTable{border-collapse:collapse;width:100%;font-size:.92rem}.cctvReportingTable th,.cctvReportingTable td{text-align:left;vertical-align:middle;border-bottom:1px solid #e2e8f0;padding:.7rem .85rem}.cctvReportingTable th{text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc;font-size:.78rem}.cctvReportingTable tbody tr:last-child td{border-bottom:none}.cctvReportingAlertValue{color:#b91c1c;font-weight:700}.cctvSiteTabLabel{line-height:1.3}.cctvSiteTabMeta{color:#64748b;font-size:.78rem;font-weight:600}.cctvSiteTab--green .cctvSiteTabMeta{color:#166534}.cctvSiteTab--amber .cctvSiteTabMeta{color:#b45309}.cctvSiteTab--red .cctvSiteTabMeta{color:#b91c1c}.cctvSiteTab--grey .cctvSiteTabMeta{color:#64748b}.cctvSiteCard{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.cctvSiteCardBody{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:stretch;min-height:min(70vh,760px);display:grid}.cctvSiteDetailPane{background:#f8fafc;border-right:1px solid #e2e8f0;flex-direction:column;gap:16px;max-height:min(70vh,760px);padding:16px;display:flex;overflow-y:auto}.cctvDetailSection{flex-direction:column;gap:10px;display:flex}.cctvDetailSectionTitle{letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin:0;font-size:.78rem;font-weight:700}.cctvDetailList{gap:10px;margin:0;display:grid}.cctvDetailList>div{gap:2px;display:grid}.cctvDetailList dt{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.72rem;font-weight:700}.cctvDetailList dd{color:#0f172a;word-break:break-word;margin:0;font-size:.95rem;font-weight:600}.cctvDetailNotes,.cctvDetailNotesList{color:#334155;white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.4}.cctvDetailNotesList{gap:.4rem;padding-left:1.1rem;display:grid}.cctvSiteCamerasPane{flex-direction:column;min-width:0;min-height:0;max-height:min(70vh,760px);display:flex}.cctvCameraListScroll{flex:auto;min-height:0;overflow-y:auto}.cctvCameraRow{cursor:pointer}.cctvCameraRow--selected{background:#eff6ff}.cctvSiteCardHeader{background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;padding:14px 16px;display:flex}.cctvSiteCardHeaderMain{flex:240px;min-width:0}.cctvSiteSubmittedBanner{color:#166534;background:#f0fdf4;border-bottom:1px solid #bbf7d0;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin:0;padding:12px 16px;font-size:.88rem;display:flex}.cctvSiteSubmittedBanner strong{font-weight:700}.cctvSiteSubmittedBannerNote{color:#15803d;font-size:.82rem}.cctvSiteSubmittedLoading{margin:0;padding:12px 16px 0}.cctvSiteBulkActionsBar{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f8fafcf5;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:10px 16px;display:flex;position:sticky;top:0;box-shadow:0 8px 12px -10px #0f172a2e}.cctvSiteBulkActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cctvBulkButton{min-height:var(--touch-min);font-size:.88rem;font-weight:600}.cctvBulkButtonEcare:hover:not(:disabled){color:#6d28d9;border-color:#7c3aed}.cctvBulkButtonFailed:hover:not(:disabled){color:#b91c1c;border-color:#dc2626}.cctvBulkButtonActive:hover:not(:disabled){color:#15803d;border-color:#16a34a}.cctvBulkButtonOffline:hover:not(:disabled){color:#44403c;border-color:#57534e}.cctvSiteTab--offline{border-color:#a8a29e}.cctvOfflineReasonDialog{width:min(440px,100%)}.cctvOfflineReasonList{flex-direction:column;gap:8px;margin:0 0 12px;display:flex}.cctvOfflineReasonOption{min-height:var(--touch-min);cursor:pointer;align-items:center;gap:10px;margin:0;padding:0 4px;font-weight:600;display:flex}.cctvSiteCardTitleRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cctvSiteFailedPercent{color:#475569;background:#f1f5f9;border-radius:999px;align-items:baseline;gap:6px;padding:6px 12px;display:inline-flex}.cctvSiteFailedPercent--alert{color:#991b1b;background:#fee2e2}.cctvSiteFailedPercentValue{font-size:1.2rem;font-weight:800;line-height:1}.cctvSiteFailedPercentLabel{text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:700}.cctvSiteCardTitle{margin:0;font-size:1.05rem}.cctvSiteCardMeta{color:#64748b;margin:4px 0 0;font-size:.9rem}.cctvCameraList{margin:0;padding:0;list-style:none}.cctvSiteCard:has(.cctvSiteCardFooter) .cctvCameraList{padding-bottom:0}.cctvCameraListHeader{color:#64748b;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-bottom:1px solid #e2e8f0;grid-template-columns:minmax(140px,1.2fr) 1px minmax(220px,1.4fr) 1px minmax(200px,1.4fr);align-items:center;gap:16px;padding:10px 16px;font-size:.72rem;font-weight:700;display:grid}.cctvCameraRow{border-bottom:1px solid #e2e8f0;padding:14px 16px}.cctvCameraRow:last-child{border-bottom:none}.cctvCameraRowGrid{grid-template-columns:minmax(140px,1.2fr) 1px minmax(220px,1.4fr) 1px minmax(200px,1.4fr);align-items:start;gap:16px;width:100%;display:grid}.cctvCameraColDivider{background:#cbd5e1;align-self:stretch;width:1px;min-height:100%}.cctvCameraColLabel{min-width:0}.cctvCameraColStatus{flex-flow:wrap;align-items:center;gap:10px 12px;min-width:0;display:flex}.cctvCameraColStatus .cctvInactiveWorkOrderFieldWrap{z-index:2;flex:100%;position:relative}.cctvCameraColHistory{flex-direction:column;gap:10px;min-width:0;display:flex}.cctvCameraColHistory .cctvFunc2MaintainxPanel{width:100%;margin-top:0}.cctvCameraLabel{font-size:1rem}.cctvCameraNotes{color:#475569;white-space:pre-wrap;margin:6px 0 0;font-size:.9rem}.cctvCameraPreviousFailure{flex-direction:column;gap:10px;width:100%;display:flex}.cctvCameraPreviousFailureHeader{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.cctvCameraFailedLastCheckLabel{color:#9a3412;font-size:.82rem;font-weight:700}.cctvCameraStoredWorkOrder{color:#1d4ed8;font-size:.9rem;font-weight:600}.cctvWorkOrderAgeLegend{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;margin:0 0 .75rem;display:flex}.cctvWorkOrderAgeLegendMain{flex-wrap:wrap;align-items:center;gap:.45rem .55rem;display:flex}.cctvWorkOrderAgeLegendLabel{color:var(--muted,#64748b);margin-right:.15rem;font-size:.82rem;font-weight:700}.cctvPeriodCompletionStatus{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem .75rem;margin-left:auto;display:inline-flex}.cctvPeriodCompletionItem{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:.28rem .65rem;font-size:.82rem;font-weight:700;line-height:1.2;display:inline-flex}.cctvPeriodCompletionItem--complete{color:#166534;background:#dcfce7;border-color:#86efac}.cctvPeriodCompletionItem--inProgress{color:#92400e;background:#fef3c7;border-color:#fcd34d}.cctvPeriodCompletionItem--notStarted{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.cctvWorkOrderAge{border:1px solid #0000;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.3rem .45rem;padding:.28rem .55rem;font-size:.82rem;font-weight:700;line-height:1.2;display:inline-flex}.cctvWorkOrderAgeRef{font-weight:800}.cctvWorkOrderAgeLabel{opacity:.95;font-weight:600}.cctvWorkOrderAge--new{color:#1d4ed8;background:#dbeafe;border-color:#60a5fa}.cctvWorkOrderAge--within7{color:#166534;background:#dcfce7;border-color:#4ade80}.cctvWorkOrderAge--within14{color:#c2410c;background:#ffedd5;border-color:#fb923c}.cctvWorkOrderAge--within30{color:#9a3412;background:#fff7ed;border-color:#f97316}.cctvWorkOrderAge--over30{color:#991b1b;background:#fee2e2;border-color:#f87171}.cctvWorkOrderAge--unknown{color:#475569;background:#f1f5f9;border-color:#94a3b8}.cctvCreateWorkOrderButton{align-self:flex-start;margin-top:.35rem}.cctvCheckPeriodPicker{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .75rem;display:flex}.cctvCheckPeriodLabel{color:var(--muted);font-size:.9rem;font-weight:600}.cctvCheckPeriodButton{border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;border-radius:999px;padding:.35rem .85rem;font-size:.9rem}.cctvCheckPeriodValue{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--panel));color:var(--text);border-radius:999px;flex-wrap:wrap;align-items:baseline;gap:.35rem;padding:.35rem .85rem;font-size:.9rem;font-weight:600;display:inline-flex}.cctvCheckPeriodMeta{color:var(--muted);font-size:.85rem;font-weight:500}.cctvCheckPeriodButton.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel));color:var(--accent);font-weight:600}.cctvInactiveWorkOrderFieldWrap{flex-direction:column;align-items:flex-start;gap:6px;display:flex;overflow:visible}.cctvInactiveWorkOrderField{gap:4px;width:100%;min-width:150px;display:grid;position:relative;overflow:visible}.cctvFunc2MaintainxPanel{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px;display:flex}.cctvFunc2MaintainxStatus{color:#475569;margin:0;font-size:.82rem}.cctvFunc2MaintainxError{margin:0;font-size:.82rem}.cctvFunc2MaintainxLine{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cctvFunc2MaintainxLabel{letter-spacing:.04em;text-transform:uppercase;color:#64748b;font-size:.72rem;font-weight:700}.cctvFunc2MaintainxValue{color:#0f172a;font-size:.9rem;font-weight:700}.cctvFunc2MaintainxWoStatus{letter-spacing:.03em;text-transform:uppercase;color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700}.cctvFunc2MaintainxLink{font-size:.82rem;font-weight:600}.cctvFunc2MaintainxTitle{color:#475569;margin:0;font-size:.78rem}.cctvWorkOrderSuggestionStatus{color:#64748b;margin-top:4px;font-size:.78rem;display:block}.cctvWorkOrderSuggestions{z-index:120;background:#fff;border:1px solid #e2e8f0;border-radius:8px;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 16px 40px #0f172a2e}.cctvWorkOrderSuggestion{color:#0f172a;text-align:left;cursor:pointer;background:#fff;border:0;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;display:flex}.cctvWorkOrderSuggestion:hover,.cctvWorkOrderSuggestion:focus-visible{background:#f1f5f9;outline:none}.cctvWorkOrderSuggestionRef{color:#0f172a;font-size:.82rem;font-weight:600}.cctvWorkOrderSuggestionTitle{color:#64748b;font-size:.78rem}.cctvPreviousFailureWorkOrderButton{align-self:flex-start}@media (width<=1100px){.cctvPageWorkspace{flex-direction:column}.cctvSiteCardBody{grid-template-columns:1fr;min-height:0}.cctvSiteDetailPane{border-bottom:1px solid #e2e8f0;border-right:none;max-height:none}.cctvSiteCamerasPane{max-height:min(70vh,720px)}.cctvCheckSessionMeta{grid-template-columns:1fr 1fr}.cctvCheckSessionMetaItem{border-bottom:1px solid #e2e8f0;border-right:none}.cctvCheckSessionMetaItem:nth-child(odd){border-right:1px solid #e2e8f0}.cctvCheckSessionMetaItem:nth-last-child(-n+2){border-bottom:none}.cctvSiteNavRail{flex:auto;width:100%;max-height:none;position:static}.cctvSiteTabs--vertical{overscroll-behavior:contain;flex-flow:wrap;max-height:min(38vh,320px);padding-right:2px;overflow-y:auto}.cctvSiteTabs--vertical .cctvSiteTab{flex:180px;width:auto}.cctvCameraListHeader{display:none}.cctvCameraRowGrid{grid-template-columns:1fr;gap:12px}.cctvCameraColDivider{display:none}.cctvCameraColStatus,.cctvCameraColHistory{border-top:1px solid #e2e8f0;padding-top:8px}}.cctvCameraStatusGroup{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 24px;display:flex}.cctvStatusBadge{box-sizing:border-box;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;justify-content:center;align-items:center;min-width:92px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.cctvStatusBadgeActive{color:#166534;background:#dcfce7}.cctvStatusBadgePending{color:#64748b;background:#f1f5f9}.cctvStatusBadgeInactive,.cctvStatusBadgeFailed{color:#991b1b;background:#fee2e2}.cctvStatusBadgeEcare{color:#5b21b6;background:#ede9fe}.cctvStatusBadgeWorkOrder{color:#1d4ed8;background:#dbeafe}.cctvCameraStatusActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cctvInactiveStreak{color:#9a3412;white-space:nowrap;background:#fff7ed;border:1px solid #fdba74;border-radius:999px;justify-content:center;align-items:center;min-width:42px;padding:6px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.cctvInactiveStreakAtThreshold{color:#991b1b;background:#fef2f2;border-color:#f87171}.cctvInactiveWorkOrderLabel{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.72rem;font-weight:700}.cctvInactiveWorkOrderInput{width:100%;min-width:150px;min-height:var(--touch-min);font:inherit;color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-size:.9rem}.cctvInactiveWorkOrderInput.cctvWorkOrderAge--new{color:#1d4ed8;background:#eff6ff;border-color:#60a5fa}.cctvInactiveWorkOrderInput.cctvWorkOrderAge--within7{color:#166534;background:#f0fdf4;border-color:#4ade80}.cctvInactiveWorkOrderInput.cctvWorkOrderAge--within14{color:#c2410c;background:#fff7ed;border-color:#fb923c}.cctvInactiveWorkOrderInput.cctvWorkOrderAge--within30{color:#9a3412;background:#fff7ed;border-color:#f97316}.cctvInactiveWorkOrderInput.cctvWorkOrderAge--over30{color:#991b1b;background:#fef2f2;border-color:#f87171}.cctvInactiveWorkOrderInput.cctvWorkOrderAge--unknown{color:#475569;background:#f8fafc;border-color:#94a3b8}.cctvInactiveWorkOrderInput:focus{outline-offset:1px;outline:2px solid #3b82f6}.cctvSiteCardFooter{z-index:20;padding:16px;padding-bottom:calc(16px + var(--safe-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f8fafcf5;border-top:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;align-items:flex-start;gap:8px;margin-top:auto;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 24px #0f172a14}.cctvSubmitCheckButton{min-width:220px}.cctvSubmitCheckHint{max-width:640px;margin:0}.cctvReportDialog{width:min(720px,100%);max-width:100%}.cctvReportDialogHeader{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.cctvReportDialogHeader .confirmDialogTitle{margin:0}.cctvReportDialogClose{color:#64748b;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.6rem;line-height:1}.cctvReportText{box-sizing:border-box;width:100%;font:inherit;color:#0f172a;resize:vertical;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;margin-bottom:16px;padding:12px;font-size:.92rem;line-height:1.45}.cctvReportDialogActions{flex-direction:row;justify-content:flex-end}.cctvStatusButton{color:#334155;min-height:var(--touch-min);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:600}.cctvStatusButton.active{color:#fff;background:#16a34a;border-color:#16a34a}.cctvStatusButtonFailed.active{color:#fff;background:#dc2626;border-color:#dc2626}.cctvStatusButtonEcare.active{color:#fff;background:#7c3aed;border-color:#7c3aed}.cctvStatusButtonWorkOrder.active{color:#fff;background:#2563eb;border-color:#2563eb}.adminCctvSettingsSection{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:20px;padding:16px}.adminCctvSettingsTitle{margin:0 0 6px}.adminCctvSettingsHint{margin:0 0 14px}.adminCctvSettingsForm{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.adminCctvSettingsField{gap:6px;min-width:220px;display:grid}.adminCctvSettingsLabel{color:#334155;font-size:.9rem;font-weight:600}.adminCctvImportSection{margin-bottom:20px}.adminCctvManageSection{flex-direction:column;gap:12px;display:flex}.adminCctvManageTitle{margin:0 0 6px}.adminCctvManageHint{margin:0}.adminCctvImportActions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.adminCctvUploadButton{min-height:var(--touch-min);color:#0f172a;font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;padding:10px 16px;font-weight:600;display:inline-flex;position:relative}.adminCctvImportSummary{margin:14px 0 10px}.adminCctvImportTableWrap{margin-bottom:12px;overflow-x:auto}.adminCctvImportTable{border-collapse:collapse;background:#fff;width:100%}.adminCctvImportRowError{background:#fef2f2}.adminCctvImportSubmit{flex-wrap:wrap;gap:8px;display:flex}.monitoringSweepFaultActions .cctvStatusButton,.monitoringSweepFaultActions .primaryButton{box-sizing:border-box;min-height:var(--touch-min);height:var(--touch-min);justify-content:center;align-items:center;margin-top:0;padding:0 16px;font-size:.9rem;display:inline-flex}.incidentActionPanel--cctv{background:#eff6ff;border-color:#bfdbfe}[data-theme=dark] .cctvPage,[data-theme=dark] .cctvPageContent,[data-theme=dark] .cctvPageHeader{color:var(--text)}[data-theme=dark] .cctvSiteNavRail,[data-theme=dark] .cctvSummaryCard,[data-theme=dark] .cctvCheckSessionMeta,[data-theme=dark] .cctvCameraListHeader,[data-theme=dark] .cctvSiteTab--grey,[data-theme=dark] .cctvReportingMetricCard,[data-theme=dark] .cctvReportingTable th,[data-theme=dark] .cctvFunc2MaintainxPanel,[data-theme=dark] .cctvReportText,[data-theme=dark] .cctvInactiveWorkOrderInput.cctvWorkOrderAge--unknown{background:var(--surface-muted);border-color:var(--border);color:var(--text)}[data-theme=dark] .cctvSiteNavSticky,[data-theme=dark] .cctvSiteTab,[data-theme=dark] .cctvSiteCard,[data-theme=dark] .cctvSiteCardHeader,[data-theme=dark] .cctvSiteBulkActionsBar,[data-theme=dark] .cctvSiteCardFooter,[data-theme=dark] .cctvSiteDetailPane,[data-theme=dark] .cctvReportingTableWrap,[data-theme=dark] .cctvReportingSubmissionPicker,[data-theme=dark] .cctvReportingSubmissionSelect,[data-theme=dark] .cctvCopyPeriodButton,[data-theme=dark] .cctvWorkOrderSuggestions,[data-theme=dark] .cctvWorkOrderSuggestion,[data-theme=dark] .cctvStatusButton,[data-theme=dark] .cctvInactiveWorkOrderInput,[data-theme=dark] .confirmDialog{background:var(--panel);border-color:var(--border);color:var(--text)}[data-theme=dark] .cctvSiteCardFooter{background:color-mix(in srgb, var(--panel) 92%, transparent);box-shadow:0 -8px 24px #00000059}[data-theme=dark] .cctvSiteDetailPane{background:var(--surface-muted)}[data-theme=dark] .cctvDetailSectionTitle,[data-theme=dark] .cctvDetailList dt,[data-theme=dark] .cctvWorkOrderAgeLegendLabel{color:var(--muted)}[data-theme=dark] .cctvDetailList dd,[data-theme=dark] .cctvDetailNotes,[data-theme=dark] .cctvDetailNotesList{color:var(--text)}[data-theme=dark] .cctvCameraRow--selected{background:var(--hover-row)}[data-theme=dark] .cctvCameraRow{border-bottom-color:var(--border)}[data-theme=dark] .cctvSummaryValue,[data-theme=dark] .cctvCheckSessionMetaValue,[data-theme=dark] .cctvCheckSessionMetaTimer,[data-theme=dark] .cctvSiteCardTitle,[data-theme=dark] .cctvCameraLabel,[data-theme=dark] .cctvReportingSubmissionPickerLabel,[data-theme=dark] .cctvReportingMetricValue,[data-theme=dark] .cctvReportingSectionTitle,[data-theme=dark] .cctvFunc2MaintainxValue,[data-theme=dark] .cctvWorkOrderSuggestionRef,[data-theme=dark] .cctvCopyPeriodButtonTitle{color:var(--text)}[data-theme=dark] .cctvSummaryLabel,[data-theme=dark] .cctvCheckSessionMetaLabel,[data-theme=dark] .cctvCheckSessionMetaMuted,[data-theme=dark] .cctvSiteCardMeta,[data-theme=dark] .cctvSiteTabMeta,[data-theme=dark] .cctvCameraNotes,[data-theme=dark] .cctvCopyPeriodButtonMeta,[data-theme=dark] .cctvSubmitCheckHint,[data-theme=dark] .cctvAwaitingCheckHint{color:var(--muted)}[data-theme=dark] .cctvSummaryCardActive,[data-theme=dark] .cctvSiteTab--green,[data-theme=dark] .cctvSiteSubmittedBanner,[data-theme=dark] .cctvGlobalActions,[data-theme=dark] .cctvPeriodCompletionItem--complete{color:var(--text);background:#123028;border-color:#1f6b4a}[data-theme=dark] .cctvSummaryCardInactive,[data-theme=dark] .cctvSiteTab--red,[data-theme=dark] .cctvPeriodCompletionItem--notStarted{color:var(--text);background:#3a1a1a;border-color:#7f1d1d}[data-theme=dark] .cctvSiteTab--amber,[data-theme=dark] .cctvPeriodCompletionItem--inProgress{color:var(--text);background:#3a2e12;border-color:#92400e}[data-theme=dark] .cctvSiteTab--green .cctvSiteTabMeta,[data-theme=dark] .cctvSiteTab--amber .cctvSiteTabMeta,[data-theme=dark] .cctvSiteTab--red .cctvSiteTabMeta,[data-theme=dark] .cctvSiteTab--grey .cctvSiteTabMeta{color:var(--muted)}[data-theme=dark] .cctvCameraColDivider{background:var(--border)}[data-theme=dark] .cctvSiteFailedPercent{background:var(--btn-secondary-bg);color:var(--text)}[data-theme=dark] .cctvSiteFailedPercent--alert{color:#fca5a5;background:#3a1a1a}[data-theme=dark] .cctvInactiveStreak{color:var(--text);background:#3a2e12;border-color:#92400e}[data-theme=dark] .cctvInactiveStreakAtThreshold{background:#3a1a1a;border-color:#7f1d1d}[data-theme=dark] .cctvStatusBadgePending,[data-theme=dark] .cctvWorkOrderAge--unknown{background:var(--btn-secondary-bg);color:var(--text)}[data-theme=dark] .cctvStatusButton:not(.active){background:var(--btn-secondary-bg);color:var(--btn-secondary-fg);border-color:var(--border)}[data-theme=dark] .cctvCheckPeriodButton,[data-theme=dark] .cctvCheckPeriodValue{background:var(--panel);border-color:var(--border);color:var(--text)}[data-theme=dark] .cctvCheckPeriodButton.active,[data-theme=dark] .cctvCheckPeriodButton.active .cctvCheckPeriodValue{border-color:var(--accent-mid);color:var(--text)}[data-theme=dark] .cctvReportingSubmissionDetail{background:var(--surface-muted);border-color:var(--border)}[data-theme=dark] .cctvReportingTableRowSelected td,[data-theme=dark] .cctvWorkOrderSuggestion:hover,[data-theme=dark] .cctvWorkOrderSuggestion:focus-visible,[data-theme=dark] .cctvCopyPeriodButton:hover:not(:disabled){background:var(--hover-row)}[data-theme=dark] .incidentActionPanel--cctv{color:var(--text);background:#152a3d;border-color:#2a4a66}[data-theme=dark] .cctvReportDialogClose,[data-theme=dark] .cctvPage .visibleHeading,[data-theme=dark] .cctvPage .pageIntro{color:var(--text)}[data-theme=dark] .cctvPage .pageIntro{color:var(--muted)}
