:root{--icc-black:#050505;--icc-panel:#111;--icc-border:#2b2b2b;--icc-concrete:#8b8f92;--icc-yellow-green:#c7ff00;--fcr-bg:#f4f6f5;--fcr-surface:#fff;--fcr-border:#d9e0dd;--fcr-ink:#14211c;--fcr-ink-soft:#566c63;--fcr-green:#0e7a4b;--fcr-green-dark:#0a5c39;--fcr-orange:#e2711d;--fcr-orange-dark:#c25e12}*{box-sizing:border-box}body{margin:0;background:var(--icc-black);color:#f4f4f4;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.page{padding:32px}.card{background:var(--icc-panel);border:1px solid var(--icc-border);border-radius:16px;padding:20px}.grid{display:grid;grid-gap:16px;gap:16px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--icc-yellow-green);color:var(--icc-black);font-size:12px;font-weight:700}.button{border-radius:10px;background:var(--icc-yellow-green);color:var(--icc-black);border:0}.button,.button-secondary{display:inline-block;padding:10px 14px;font-weight:700;cursor:pointer}.button-secondary{border-radius:10px;background:transparent;color:var(--icc-yellow-green);border:1px solid var(--icc-yellow-green)}.button-secondary:hover{background:rgba(199,255,0,.08)}.banner-success{margin-top:16px;padding:12px 14px;border-radius:10px;background:rgba(199,255,0,.12);border:1px solid var(--icc-yellow-green);color:var(--icc-yellow-green);font-weight:700}.input,.select,.textarea{width:100%;background:var(--icc-black);color:#f4f4f4;border:1px solid var(--icc-border);border-radius:10px;padding:10px}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--icc-border);padding:12px;text-align:left}a.card{color:inherit;text-decoration:none;cursor:pointer;display:block}a.card:hover{border-color:var(--icc-yellow-green)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}@media (max-width:900px){.grid-3,.grid-4,.grid-6{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.grid-2,.grid-3,.grid-4,.grid-6{grid-template-columns:1fr}}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 2px rgba(0,0,0,.4)}.status-dot.live{background:#4ade80}.status-dot.recent{background:#c7ff00}.status-dot.stale{background:#facc15}.status-dot.offline{background:#ef4444}.status-dot.awaiting{background:#64748b}.status-pill{display:inline-flex;align-items:center;padding:3px 10px 3px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;background:hsla(0,0%,100%,.03)}.status-pill,.summary-tile{border:1px solid var(--icc-border)}.summary-tile{background:var(--icc-panel);border-radius:14px;padding:14px 16px;display:block;color:inherit;text-decoration:none;transition:border-color .12s ease,background .12s ease}a.summary-tile:hover{border-color:var(--icc-accent,#c7ff00);background:hsla(0,0%,100%,.03)}.summary-tile.is-active{border-color:var(--icc-accent,#c7ff00);background:rgba(199,255,0,.06)}.filter-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:10px 14px;border-radius:12px;background:rgba(199,255,0,.08);border:1px solid rgba(199,255,0,.3);font-size:13px}.filter-banner .filter-clear{color:var(--icc-accent,#c7ff00);text-decoration:none;font-weight:600}.filter-banner .filter-clear:hover{text-decoration:underline}.summary-tile h4{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.65}.summary-tile .summary-value{font-size:28px;font-weight:700;margin-top:6px;line-height:1.1}.summary-tile .summary-sub{font-size:11px;opacity:.6;margin-top:2px}.group-heading{display:flex;align-items:baseline;justify-content:space-between;margin:28px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--icc-border)}.group-heading h2{margin:0;font-size:18px}.group-heading .group-meta{font-size:12px;opacity:.6}.zone-block{margin-bottom:14px}.zone-heading{display:flex;align-items:baseline;justify-content:space-between;margin:14px 0 6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.75}.zone-heading .zone-meta{font-size:11px;opacity:.7;font-weight:600}.zone-heading .zone-alert-count{color:#ff8a8a}.sensor-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px 10px;gap:4px 10px}@media (max-width:720px){.sensor-rows{grid-template-columns:1fr}}.sensor-row{display:grid;grid-template-columns:14px minmax(0,1.4fr) minmax(0,.9fr) minmax(0,1.1fr) auto auto;align-items:center;grid-gap:8px;gap:8px;padding:6px 10px;border:1px solid var(--icc-border);border-radius:8px;background:var(--icc-panel);color:inherit;text-decoration:none;font-size:12px;line-height:1.3;transition:border-color .12s ease,background .12s ease}.sensor-row:hover{border-color:var(--icc-yellow-green);background:hsla(0,0%,100%,.02)}.sensor-row .status-dot{margin-right:0;width:9px;height:9px;box-shadow:0 0 0 1.5px rgba(0,0,0,.4)}.sensor-row .sr-name{font-weight:700;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sensor-row .sr-meta,.sensor-row .sr-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-row .sr-meta{opacity:.55;font-size:11px}.sensor-row .sr-values{display:flex;gap:8px;font-size:11px;opacity:.85;overflow:hidden;white-space:nowrap}.sensor-row .sr-values .sv-anom{color:#ff8a8a}.sensor-row .sr-time{font-size:11px;opacity:.55;white-space:nowrap}.sensor-row .sr-flag{font-size:10px;font-weight:800;letter-spacing:.04em;padding:2px 6px;border-radius:4px;white-space:nowrap}.sensor-row .sr-flag.leak{background:#ef4444;color:#fff}.sensor-row .sr-flag.alert{background:rgba(239,68,68,.15);color:#ff8a8a;border:1px solid rgba(239,68,68,.4)}.sensor-row .sr-leak-state{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;letter-spacing:.2px}.sensor-row .sr-leak-state.dry{color:#86efac;background:rgba(34,197,94,.12)}.sensor-row .sr-leak-state.wet{color:#fca5a5;background:rgba(239,68,68,.15)}.sensor-row .sr-leak-state.nodata{color:#94a3b8;background:rgba(148,163,184,.1)}.sensor-row.alert{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.06)}.sensor-row.alert:hover{border-color:#ef4444}@media (max-width:560px){.sensor-row{grid-template-columns:14px minmax(0,1fr) auto;grid-template-rows:auto auto;row-gap:2px}.sensor-row .sr-meta,.sensor-row .sr-values{grid-column:2/3;font-size:10px}.sensor-row .sr-time{grid-column:3/4;grid-row:1/2}.sensor-row .sr-flag{grid-column:3/4;grid-row:2/3;justify-self:end}}.telemetry-tile{background:var(--icc-panel);border:1px solid var(--icc-border);border-radius:14px;padding:16px 18px}.telemetry-tile h4{margin:0;font-size:12px;opacity:.65;text-transform:uppercase;letter-spacing:.04em}.telemetry-tile .telemetry-value{font-size:32px;font-weight:700;margin-top:8px;line-height:1.1}.telemetry-tile .telemetry-unit{font-size:14px;opacity:.6;margin-left:4px}.telemetry-tile .telemetry-sub{font-size:11px;opacity:.55;margin-top:4px}.telemetry-tile.alert{border-color:#ef4444}.telemetry-tile.alert .telemetry-value{color:#ff8a8a}details.collapsible>summary{cursor:pointer;list-style:none;padding:6px 0;font-weight:700;opacity:.8}details.collapsible>summary::-webkit-details-marker{display:none}details.collapsible>summary:before{content:"▸ ";display:inline-block;transition:transform .12s ease}details.collapsible[open]>summary:before{content:"▾ "}.fcr-page{min-height:100vh;background:var(--fcr-bg);color:var(--fcr-ink);padding:48px 20px 72px;display:flex;flex-direction:column;align-items:center;font-size:18px;line-height:1.5}.fcr-shell{width:100%;max-width:880px}.fcr-brand{display:flex;align-items:baseline;gap:10px;font-weight:800;letter-spacing:.02em}.fcr-brand .fcr-brand-fcr{color:var(--fcr-green);font-size:24px}.fcr-brand .fcr-brand-portal{color:var(--fcr-ink-soft);font-size:18px;font-weight:700}.fcr-title{font-size:38px;line-height:1.15;margin:24px 0 10px}.fcr-lede{font-size:18px;line-height:1.5;color:var(--fcr-ink);margin:0 0 28px;max-width:46ch}.fcr-card{background:var(--fcr-surface);border:1px solid var(--fcr-border);border-radius:16px;padding:24px}.fcr-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.fcr-grid{grid-template-columns:1fr}}.fcr-action{display:flex;flex-direction:column;gap:8px;background:var(--fcr-surface);border:2px solid var(--fcr-border);border-radius:16px;padding:24px;color:var(--fcr-ink);text-decoration:none;transition:border-color .12s ease,box-shadow .12s ease}.fcr-action:hover{border-color:var(--fcr-green);box-shadow:0 2px 12px rgba(14,122,75,.1)}.fcr-action h3{margin:0;font-size:22px;line-height:1.25}.fcr-action p{margin:0;font-size:18px;color:var(--fcr-ink);line-height:1.5}.fcr-action .fcr-action-label{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-height:52px;padding:12px 24px;border-radius:12px;font-size:18px;font-weight:700;background:transparent;border:2px solid var(--fcr-green);color:var(--fcr-green)}.fcr-action.fcr-action-primary{border-color:var(--fcr-green)}.fcr-action.fcr-action-primary:hover{border-color:var(--fcr-green-dark);box-shadow:0 4px 16px rgba(14,122,75,.16)}.fcr-action.fcr-action-primary .fcr-action-label{min-height:56px;background:var(--fcr-green);border-color:var(--fcr-green);color:#fff}.fcr-btn,.fcr-btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 24px;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;text-decoration:none}.fcr-btn{background:var(--fcr-green);color:#fff;border:2px solid var(--fcr-green)}.fcr-btn:hover{background:var(--fcr-green-dark);border-color:var(--fcr-green-dark)}.fcr-btn-secondary{background:transparent;color:var(--fcr-green);border:2px solid var(--fcr-green)}.fcr-btn-secondary:hover{background:rgba(14,122,75,.06)}.fcr-btn-lg{min-height:56px}.fcr-btn-disabled{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:10px 24px;border-radius:12px;background:var(--fcr-surface);border:2px solid var(--fcr-border);color:var(--fcr-ink-soft);cursor:not-allowed;text-decoration:none}.fcr-btn-disabled .fcr-btn-disabled-label{font-size:18px;font-weight:700;color:var(--fcr-ink-soft)}.fcr-btn-disabled .fcr-btn-disabled-sub{font-size:14px;font-weight:600;color:var(--fcr-ink-soft)}.fcr-actions-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}@media (max-width:640px){.fcr-actions-row{flex-direction:column}.fcr-actions-row .fcr-btn,.fcr-actions-row .fcr-btn-secondary{width:100%}}.fcr-badge{display:inline-block;padding:6px 14px;border-radius:999px;background:rgba(14,122,75,.12);color:var(--fcr-green-dark);font-size:15px;font-weight:700}.fcr-badge-overdue{background:rgba(226,113,29,.14);color:var(--fcr-orange-dark)}.fcr-nav{display:flex;gap:20px;flex-wrap:wrap;align-items:center;font-size:17px;margin-top:32px;color:var(--fcr-ink)}.fcr-nav a{color:var(--fcr-green);font-weight:600;display:inline-flex;align-items:center;min-height:44px}.fcr-nav a:hover{text-decoration:underline}.fcr-action:focus-visible,.fcr-btn-secondary:focus-visible,.fcr-btn:focus-visible,.fcr-nav a:focus-visible{outline:3px solid var(--fcr-green-dark);outline-offset:2px;border-radius:12px}.fcr-section{margin-top:32px}.fcr-section>h2{font-size:20px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--fcr-ink);margin:0 0 6px}.fcr-section-sub{margin:0 0 16px}.fcr-empty,.fcr-section-sub{font-size:17px;color:var(--fcr-ink);line-height:1.5}.fcr-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;border:1px solid var(--fcr-border);background:var(--fcr-bg)}.fcr-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.fcr-stat{background:var(--fcr-surface);border:1px solid var(--fcr-border);border-radius:14px;padding:20px}.fcr-stat .fcr-stat-value{margin:0;font-size:28px;font-weight:700;color:var(--fcr-ink)}.fcr-stat .fcr-stat-label{margin:4px 0 0;font-size:15px;color:var(--fcr-ink-soft)}.fcr-sensor-type-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;min-height:52px;background:var(--fcr-surface);border:1px solid var(--fcr-border);border-radius:12px}.fcr-sensor-type-row .fcr-sensor-type-name{font-size:18px;font-weight:700;color:var(--fcr-ink)}.fcr-sensor-type-row .fcr-sensor-type-count{font-size:18px;font-weight:700;color:var(--fcr-green)}.fcr-detail-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.fcr-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;min-height:52px;background:var(--fcr-surface);border:1px solid var(--fcr-border);border-radius:12px}.fcr-detail-row .fcr-detail-name{font-size:18px;font-weight:700;color:var(--fcr-ink)}.fcr-detail-row .fcr-detail-value{font-size:18px;font-weight:700;color:var(--fcr-green)}.fcr-preview-card{background:var(--fcr-surface);border:2px dashed var(--fcr-border);border-radius:14px;padding:20px}.fcr-preview-card .fcr-preview-label{margin:0;font-size:20px;font-weight:700;color:var(--fcr-ink)}.fcr-preview-card .fcr-preview-status{margin:6px 0 0;font-size:17px;color:var(--fcr-ink-soft)}.fcr-preview-option{display:block;background:var(--fcr-surface);border:2px dashed var(--fcr-border);border-radius:12px;padding:16px 18px;font-size:18px;font-weight:600;color:var(--fcr-ink-soft)}.fcr-footer{margin-top:44px;font-size:14px;color:var(--fcr-ink-soft)}.fcr-footer-link{color:inherit;text-decoration:none}.fcr-footer-link:hover{text-decoration:underline}.fcr-footer-link:focus-visible{outline:3px solid var(--fcr-green-dark);outline-offset:2px;border-radius:6px}.fcr-nav-list{list-style:none;margin:12px 0 0;padding:0;gap:12px}.fcr-nav-item,.fcr-nav-list{display:flex;flex-direction:column}.fcr-nav-item{gap:4px;width:100%;min-height:56px;padding:16px 18px;background:var(--fcr-surface);border:2px solid var(--fcr-border);border-radius:12px;color:var(--fcr-ink);text-decoration:none;justify-content:center;transition:border-color .12s ease,box-shadow .12s ease}.fcr-nav-item:hover{border-color:var(--fcr-green);box-shadow:0 2px 12px rgba(14,122,75,.1)}.fcr-nav-item:focus-visible{outline:3px solid var(--fcr-green-dark);outline-offset:2px;border-radius:12px}.fcr-nav-item .fcr-nav-item-name{font-size:18px;font-weight:700;color:var(--fcr-ink)}.fcr-nav-item .fcr-nav-meta{font-size:15px;color:var(--fcr-ink-soft)}.fcr-nav-selected-name{font-size:22px;font-weight:700;color:var(--fcr-ink);margin:4px 0 0;line-height:1.3}.fcr-form{width:100%;background:var(--fcr-surface);border:1px solid var(--fcr-border);border-radius:16px;padding:24px;margin-top:24px}@media (max-width:640px){.fcr-form{padding:18px}}.fcr-form-section{font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fcr-green-dark);margin:24px 0 4px}.fcr-form-section:first-child{margin-top:0}.fcr-form-label{display:block;font-size:17px;font-weight:600;color:var(--fcr-ink);margin:16px 0 6px}.fcr-form-input,.fcr-form-select,.fcr-form-textarea{width:100%;font-size:17px;padding:14px;border-radius:10px;border:2px solid var(--fcr-border);background:var(--fcr-surface);color:var(--fcr-ink);box-sizing:border-box;font-family:inherit;min-height:52px}.fcr-form-textarea{min-height:120px;resize:vertical;line-height:1.5}.fcr-form-input:focus-visible,.fcr-form-select:focus-visible,.fcr-form-submit:focus-visible,.fcr-form-textarea:focus-visible,.fcr-form-upload:focus-visible{outline:3px solid var(--fcr-green-dark);outline-offset:2px}.fcr-form-uploads{display:grid;grid-gap:12px;gap:12px;margin-top:12px}.fcr-form-choices{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:8px}@media (max-width:520px){.fcr-form-choices{grid-template-columns:1fr}}.fcr-form-choices .fcr-action-label{display:flex;align-items:center;justify-content:center;min-height:56px;border:2px solid var(--fcr-line,#d7dee0);border-radius:12px;background:#fff;font-size:18px;font-weight:700;color:var(--fcr-ink,#10231b);cursor:pointer}.fcr-form-choices .fcr-action-label:hover{border-color:var(--fcr-green,#0e7a4b)}.fcr-form-chosen{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:12px 16px;border:2px solid var(--fcr-green,#0e7a4b);border-radius:12px;background:rgba(14,122,75,.04)}.fcr-form-chosen-value{font-size:18px;font-weight:700}.fcr-visit-rows{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.fcr-visit-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--fcr-line,#eef1f2)}.fcr-visit-row-label{color:var(--fcr-soft,#4a5b54);font-size:15px}.fcr-visit-row-value{font-weight:600;text-align:right}.fcr-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fcr-form-upload{display:block;width:100%;padding:16px 14px;min-height:52px;font-size:17px;font-weight:600;background:var(--fcr-surface);border:2px dashed var(--fcr-border);border-radius:10px;color:var(--fcr-ink);text-align:center;cursor:pointer;box-sizing:border-box}.fcr-form-upload:hover{border-color:var(--fcr-green)}.fcr-form-upload:focus-within{outline:3px solid var(--fcr-green-dark);outline-offset:2px;border-color:var(--fcr-green)}.fcr-form-upload-count{font-size:15px;font-weight:400;color:var(--fcr-ink-soft);margin-top:4px}.contractor-log-upload{display:block;width:100%;padding:16px 14px;min-height:52px;font-size:16px;font-weight:600;background:#1b1b1b;border:1px dashed #4a4a4a;border-radius:8px;color:#e6e9ec;text-align:center;cursor:pointer;box-sizing:border-box}.contractor-log-upload:hover{border-color:#7bb661}.contractor-log-upload:focus-within{outline:3px solid #7bb661;outline-offset:2px;border-color:#7bb661}.fcr-form-error{border-radius:10px;background:rgba(185,28,28,.08);border:1px solid #b91c1c;color:#8f1616}.fcr-form-error,.fcr-form-success{margin-top:16px;padding:14px;font-size:16px;line-height:1.5}.fcr-form-success{border-radius:10px;background:rgba(21,128,61,.08);border:1px solid var(--fcr-green);color:var(--fcr-green-dark)}.fcr-form-submit{margin-top:24px;width:100%;min-height:56px;padding:16px;font-size:18px;font-weight:800;letter-spacing:.02em;background:var(--fcr-green);color:#fff;border:2px solid var(--fcr-green);border-radius:12px;cursor:pointer}.fcr-form-submit:hover:not(:disabled){background:var(--fcr-green-dark);border-color:var(--fcr-green-dark)}.fcr-form-submit:disabled{opacity:.6;cursor:wait}.fcr-success{width:100%;background:var(--fcr-surface);border:2px solid var(--fcr-green);border-radius:16px;padding:32px 24px;margin-top:24px;text-align:center}.fcr-success-check{font-size:64px;line-height:1;color:var(--fcr-green);margin-bottom:8px}.fcr-success h2{margin:0 0 12px;font-size:26px;color:var(--fcr-ink)}.fcr-success p{font-size:18px;line-height:1.5;margin:0 0 24px;color:var(--fcr-ink)}