:root{--bg: #eef3f2;--surface: #ffffff;--surface-2: #f4f8f7;--grout: #cfdad8;--ink: #12262b;--muted: #5b6f74;--line: #d9e2e0;--accent: #0b7a86;--accent-ink: #ffffff;--good: #2b9a69;--fair: #d49a1c;--poor: #dd6a35;--severe: #c5304a;--offline: #8a989b;--radius: 10px;--font-body: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0d1a1d;--surface: #142428;--surface-2: #1a2d32;--grout: #0a1316;--ink: #e5efed;--muted: #93a8ac;--line: #25393e;--accent: #3cc0cc;--accent-ink: #062a2e;--good: #46c28a;--fair: #e6b94a;--poor: #f08a58;--severe: #ee5a73;--offline: #66787c}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:700;margin:0;letter-spacing:-.01em}h1{font-size:28px;line-height:1.15}h2{font-size:17px}p{margin:0}code,pre{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:12.5px}.link{color:var(--accent);text-decoration:none;font-weight:500;font-size:14px}.link:hover{text-decoration:underline}.app{display:grid;grid-template-columns:236px 1fr;min-height:100%}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:20px 14px;background:var(--surface);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;padding:0 8px;font-family:var(--font-display);font-size:18px}.brand-mark{display:inline-grid;grid-template-columns:1fr 1fr;gap:2px;width:28px;height:28px;padding:3px;border-radius:7px;background:var(--grout);flex:none}.brand-mark i{background:var(--accent);border-radius:2px}.brand-mark i:nth-child(2){background:var(--good)}.brand-mark i:nth-child(3){background:var(--fair);grid-column:span 2}nav{display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;color:var(--muted);text-decoration:none;font-weight:500}.nav-link:hover{background:var(--surface-2);color:var(--ink)}.nav-link.on{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--ink)}.nav-link.on svg{color:var(--accent)}.count{margin-left:auto;min-width:22px;padding:0 7px;text-align:center;border-radius:99px;background:var(--severe);color:#fff;font-size:12px;font-weight:600}.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:12px}.live{display:flex;align-items:center;gap:8px;padding:0 8px;font-size:12.5px;color:var(--muted)}.live i{width:8px;height:8px;border-radius:50%;background:var(--offline)}.live.on i{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 25%,transparent)}.me{display:flex;align-items:center;gap:4px;padding:10px 8px;border-top:1px solid var(--line)}.me>div{flex:1;display:flex;flex-direction:column;min-width:0}.me strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main{min-width:0}.page{max-width:1240px;margin:0 auto;padding:28px 32px 56px;display:flex;flex-direction:column;gap:20px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.page-head .muted{margin-top:4px}.head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-weight:500;font-size:14px;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink);border-color:transparent}.btn.small{padding:5px 10px;font-size:13px}.btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:var(--muted)}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.icon-btn.danger:hover{color:var(--severe)}.input,.select{width:100%;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}.select{width:auto;padding-right:28px}.select.compact{padding:5px 26px 5px 9px;font-size:13px}textarea.input{resize:vertical}.field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:500}.form{display:flex;flex-direction:column;gap:14px}.row-gap{display:flex;gap:8px}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line)}.seg button{border:0;background:transparent;padding:6px 12px;border-radius:6px;font-size:13.5px;font-weight:500;color:var(--muted)}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}.small-seg{margin-bottom:8px}.range{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.custom-dates{display:flex;align-items:center;gap:8px}.custom-dates .input{width:auto}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.search{position:relative;flex:1 1 200px;max-width:280px}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted)}.search .input{padding-left:33px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column;gap:14px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.card-head .muted{margin-top:2px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.stat{display:flex;flex-direction:column;gap:2px;padding:14px 18px;border-left:1px solid var(--line)}.stat:first-child{border-left:0}.stat-label{font-size:13px;color:var(--muted)}.stat strong{font-family:var(--font-display);font-size:28px;line-height:1.1;color:var(--c, var(--ink));font-variant-numeric:tabular-nums}.two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;align-items:start}.two-col.even{grid-template-columns:1fr 1fr}.empty{padding:28px 12px;text-align:center;display:flex;flex-direction:column;gap:4px;align-items:center}.note{padding:10px 12px;border-radius:8px;font-size:14px}.note.error{background:color-mix(in srgb,var(--severe) 12%,transparent);color:var(--severe);border:1px solid color-mix(in srgb,var(--severe) 35%,transparent)}.note.ok{background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good);border:1px solid color-mix(in srgb,var(--good) 35%,transparent)}.badge{--c: var(--muted);display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 8px;border-radius:99px;font-size:12.5px;font-weight:500;color:var(--ink);background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 42%,transparent);white-space:nowrap}.badge i{width:7px;height:7px;border-radius:50%;background:var(--c)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:5px;padding:5px;background:var(--grout);border-radius:12px}.tile{--c: var(--good);display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;min-height:212px;padding:16px 16px 14px;border:0;border-radius:6px;color:var(--ink);background:color-mix(in srgb,var(--c) 15%,var(--surface));box-shadow:inset 0 -3px 0 var(--c);transition:background .15s}.tile:hover{background:color-mix(in srgb,var(--c) 22%,var(--surface))}.tile.offline{background:var(--surface-2)}.tile-top{display:flex;width:100%;justify-content:space-between;gap:8px;align-items:flex-start}.tile-name{font-weight:600;font-size:14.5px}.tile-flag{flex:none;padding:1px 8px;border-radius:99px;background:var(--ink);color:var(--surface);font-size:11.5px;font-weight:600}.tile-score{margin-top:auto;font-family:var(--font-display);font-weight:700;font-size:68px;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--c)}.tile-state{font-weight:600;font-size:15px;margin-bottom:8px}.tile-gases{margin:-6px 0 8px;font-variant-numeric:tabular-nums}.tile-foot{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card .table-wrap{border:0;border-radius:0}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:500;font-size:13px;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--surface-2)}.table.dense td,.table.dense th{padding:7px 10px;font-size:13px}.table tr.dim{opacity:.55}.row-actions{text-align:right;white-space:nowrap}.bar{display:inline-block;vertical-align:middle;width:120px;height:8px;border-radius:4px;background:var(--surface-2)}.bar i{display:block;height:100%;border-radius:4px;background:var(--accent)}.keycell{display:inline-flex;align-items:center;gap:2px}.code{margin:0;padding:14px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);overflow-x:auto;line-height:1.6}.attn{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.attn li{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--line)}.attn li:first-child{border-top:0;padding-top:0}.attn-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:inherit;text-decoration:none}.attn-main:hover strong{text-decoration:underline}.attn-side{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.donut{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:center}.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:150px}.legend li{display:flex;align-items:center;gap:9px}.legend i{width:11px;height:11px;border-radius:3px}.legend strong{margin-left:auto;font-variant-numeric:tabular-nums}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#08141873;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(500px,100vw);z-index:41;background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;animation:slide-in .18s ease-out}@keyframes slide-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.drawer-body{padding:18px 20px 32px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.drawer-badges{display:flex;gap:8px;flex-wrap:wrap}.facts{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin:0}.facts dt{font-size:12.5px;color:var(--muted)}.facts dd{margin:2px 0 0;font-weight:500}.mini-chart{border:1px solid var(--line);border-radius:8px;padding:10px 10px 8px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.inline-form{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.section-title{font-size:15px;margin-top:4px}.timeline{list-style:none;margin:0;padding:0 0 0 4px;display:flex;flex-direction:column;gap:14px}.timeline li{display:flex;gap:12px;position:relative}.timeline li:before{content:"";position:absolute;left:4px;top:14px;bottom:-16px;width:1px;background:var(--line)}.timeline li:last-child:before{display:none}.timeline .dot{flex:none;width:9px;height:9px;margin-top:6px;border-radius:50%;background:var(--muted);z-index:1}.ev-created .dot,.ev-escalated .dot{background:var(--severe)}.ev-assigned .dot{background:var(--accent)}.ev-air_cleared .dot{background:var(--good)}.timeline p{color:var(--ink);font-size:14px}.note-form{display:flex;gap:8px}.modal{position:fixed;z-index:41;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:12px}.modal .form{padding:18px 20px 20px}.toasts{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 36px))}.toast{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px 14px;border-radius:10px;border:1px solid var(--line);border-left:5px solid var(--poor);background:var(--surface);box-shadow:0 8px 24px #0000002e;animation:slide-in .2s ease-out}.toast.lvl3{border-left-color:var(--severe)}.toast span{font-size:13px;color:var(--muted)}.login{min-height:100%;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden}.login-tiles{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:1fr;gap:5px;padding:5px;background:var(--grout)}.login-tiles i{border-radius:6px;background:color-mix(in srgb,var(--accent) calc(4% + var(--d) * 2%),var(--surface))}.login-tiles i:nth-child(5n){background:color-mix(in srgb,var(--good) 14%,var(--surface))}.login-card{position:relative;width:min(400px,100%);display:flex;flex-direction:column;gap:14px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px #0000002e}.login-card h1{font-size:24px}.login-card .brand-mark{width:36px;height:36px}.report{display:flex;flex-direction:column;gap:18px}.report-head p:first-of-type{margin-top:2px;font-size:16px}.insights{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}@media (max-width: 980px){.two-col,.two-col.even{grid-template-columns:1fr}}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 14px;border-right:0;border-bottom:1px solid var(--line)}nav{flex-direction:row;overflow-x:auto;order:3;width:100%}.nav-link{white-space:nowrap}.side-foot{margin-top:0;margin-left:auto;flex-direction:row;align-items:center}.me{border-top:0;padding:0}.me>div{display:none}.live{display:none}.page{padding:20px 16px 40px}.stat{border-left:0;border-top:1px solid var(--line)}.stat:first-child{border-top:0}}@media (prefers-reduced-motion: reduce){.drawer,.toast{animation:none}}@media print{body{background:#fff;color:#000;font-size:12px}.sidebar,.page-head,.toasts,.no-print,.scrim{display:none!important}.app{display:block}.page{max-width:none;padding:0;gap:12px}.card,.stats,.table-wrap{break-inside:avoid;border-color:#ccc}.card{padding:12px 14px}.report-head{display:block}.report-head h1{font-size:22px}:root{--surface: #fff;--surface-2: #f4f4f4;--ink: #000;--muted: #555;--line: #ccc}}.crit{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px;color:#fff;background:#b3001b;animation:crit-flash .7s steps(1,end) infinite;overflow-y:auto}.crit:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;border:14px solid #fff;animation:crit-border .7s steps(1,end) infinite}.crit.severe{animation-duration:.45s}.crit.severe:before{animation-duration:.45s}@keyframes crit-flash{0%{background:#d0021b}50%{background:#5c000d}}@keyframes crit-border{0%{border-color:#fff}50%{border-color:#ffd400}}.crit-box{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;max-width:1100px}.crit-icon{color:#ffd400;filter:drop-shadow(0 6px 18px rgba(0,0,0,.45));animation:crit-pulse .7s ease-in-out infinite}@keyframes crit-pulse{50%{transform:scale(1.15)}}.crit-kicker{font-size:clamp(16px,2.4vw,26px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;background:#fff;color:#b3001b;padding:6px 18px;border-radius:6px}.crit-title{font-size:clamp(56px,12vw,170px);line-height:.95;font-weight:800;letter-spacing:-.02em;text-shadow:0 6px 30px rgba(0,0,0,.45)}.crit-room{font-family:var(--font-display);font-size:clamp(30px,6vw,76px);font-weight:700;line-height:1.05}.crit-gas{font-size:clamp(18px,2.6vw,30px);font-weight:700;background:#00000047;padding:6px 16px;border-radius:8px}.crit-meta{font-size:clamp(15px,1.8vw,20px);opacity:.92;font-variant-numeric:tabular-nums}.crit-more{font-size:18px;font-weight:700;background:#0000004d;padding:6px 14px;border-radius:99px}.crit-sound{display:inline-flex;align-items:center;gap:8px;font-weight:600;background:#ffd400;color:#3a0006;padding:8px 16px;border-radius:8px}.crit-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:10px}.crit-btn{display:inline-flex;align-items:center;gap:8px;padding:16px 26px;font-size:18px;font-weight:700;border-radius:10px;border:2px solid #fff;background:transparent;color:#fff}.crit-btn.primary{background:#fff;color:#b3001b;font-size:22px;padding:18px 34px;box-shadow:0 10px 30px #00000059}.crit-btn:hover:not(:disabled){filter:brightness(.94)}.crit-btn:disabled{opacity:.6;cursor:default}.crit-btn:focus-visible{outline:4px solid #ffd400;outline-offset:3px}.sound-off{border-color:var(--severe);color:var(--severe)}@media (prefers-reduced-motion: reduce){.crit,.crit:before,.crit-icon{animation:none}}@media print{.crit{display:none!important}}
