:root{--bg-canvas:#0B1220;--bg-surface:#121A2B;--bg-raised:#182338;--bg-hover:#1E2C44;--border:#2A3A55;--border-subtle:#1F2C42;--text:#E8EEF7;--text-secondary:#9AABBF;--text-muted:#6B7C93;--brand:#3D8BFF;--brand-hover:#5A9DFF;--brand-muted:#1A3A6B;--accent:#2DD4BF;--online:#22C55E;--warn:#FBBF24;--crit:#F43F5E;--info:#38BDF8;--chart-line:#7CC4FF;--chart-grid:#1F2C42;--chart-threshold:#F43F5E;--chart-fill:rgba(124,196,255,.12);--font-sans:IBM Plex Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--font-mono:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;--radius-sm:6px;--radius-md:10px;--radius-pill:999px}.gs{font-family:var(--font-sans)}.mono{font-family:var(--font-mono)}main.trends{grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr));align-items:start}.m-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px;margin-bottom:10px}.m-card h3{margin:0 0 6px;font-size:15px}.trend-card{cursor:pointer;transition:border-color .12s}.trend-card:hover{border-color:var(--brand)}.time-picker{display:inline-flex;gap:4px;background:var(--bg-canvas);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.time-picker button{border:none;background:transparent;padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);font-weight:550;font-size:12px}.time-picker button.active{background:var(--brand-muted);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 40%,transparent)}.custom-range{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-top:8px;padding:10px;background:var(--bg-raised);border-radius:var(--radius-md);border:1px solid var(--border)}.custom-range label{display:grid;gap:4px;font-size:12px;color:var(--text-secondary)}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}button.ghost{background:transparent;border-color:var(--border-subtle)}.chart-wrap{position:relative;width:100%}.chart-wrap svg{display:block;cursor:crosshair}.chart-legend{display:flex;gap:16px;margin-top:8px;color:var(--text-muted);font-size:12px}.chart-legend span:before{content:"";display:inline-block;width:12px;height:2px;margin-right:6px;vertical-align:middle;background:var(--chart-line)}.chart-legend .threshold:before{background:none;border-top:2px dashed var(--chart-threshold);height:0}.chart-legend .gap:before{background:none;border-top:2px dotted var(--text-muted);height:0}.xhair-readout{position:absolute;top:8px;pointer-events:none;display:grid;gap:2px;min-width:170px;padding:8px 10px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.xhair-readout b{color:var(--text);font-size:14px}.q-good{color:var(--online)}.q-uncertain{color:var(--warn)}.q-bad,.q-stale{color:var(--crit)}.trends-controls .row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px}.trends-controls label{font-size:12px;color:var(--text-secondary)}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{border-radius:var(--radius-pill);font-size:12px;padding:4px 12px}.chip.active{background:var(--brand-muted);border-color:var(--brand)}.live-hero{border-color:var(--brand-muted)}.live-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.live-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.big-v{font-size:22px;color:var(--text)}.live-pill{padding:3px 10px;border-radius:var(--radius-pill);background:#0f2d1c;color:var(--online);font-weight:600;font-size:12px}.live-pill.stale{background:#3a2e0c;color:var(--warn)}.banner-inline{margin:8px 0;padding:8px 10px;border-radius:var(--radius-sm);background:#3a2e0c;color:var(--warn);font-size:13px}.stat-row{margin-top:10px;color:var(--text-secondary);font-size:12px}.empty{color:var(--text-muted);padding:24px;text-align:center}tr.clickable{cursor:pointer}tr.clickable:hover{background:#1f3045}@media (max-width: 720px){main.trends{grid-template-columns:1fr;display:block}.trends-controls .row{flex-direction:column;align-items:stretch}.time-picker{flex-wrap:wrap}.chart-wrap{max-width:100%;overflow:hidden}.chart-wrap svg{width:100%;max-width:100%}}.chart-legend .series-swatch:before{display:none}.chart-legend .series-swatch i{display:inline-block;width:12px;height:2px;margin-right:6px;vertical-align:middle;border-radius:1px}.trend-overlay{grid-column:1/-1}.trends-controls button.primary:disabled{opacity:.55;cursor:not-allowed}.mobile-app{--tab-h: 56px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-canvas, #0B1220);color:var(--text, #E8EEF7);font-family:var(--font-sans, system-ui, sans-serif);overflow:hidden}.mobile-header{padding:10px 16px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--border-subtle, #1F2C42);background:var(--bg-surface, #121A2B);flex-shrink:0}.mobile-header h1{margin:0;font-size:20px;font-weight:650}.mobile-header .hdr-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.mobile-header .badge{border-radius:999px;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;padding:2px 8px;font-size:11px;font-weight:650;display:inline-flex}.mobile-header .badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.mobile-header .badge.crit{color:var(--crit, #F43F5E);background:color-mix(in srgb,var(--crit, #F43F5E) 15%,transparent)}.mobile-header .badge.ok{color:var(--online, #22C55E);background:color-mix(in srgb,var(--online, #22C55E) 15%,transparent)}.mobile-content{flex:1;overflow:auto;padding:12px 14px 16px;-webkit-overflow-scrolling:touch}.mobile-content main.trends,.mobile-content main{display:block;padding:0;grid-template-columns:1fr;gap:0}.mobile-content main.trends .m-card.wide,.mobile-content .m-card.wide{grid-column:auto}.mobile-content .chart-wrap{max-width:100%;overflow:hidden}.mobile-content .chart-wrap svg{width:100%;max-width:100%;height:auto}.mobile-tabs{height:var(--tab-h);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-subtle, #1F2C42);background:var(--bg-surface, #121A2B);flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0)}.mobile-tabs button{border:none;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-muted, #6B7C93);font-size:11px;font-weight:550;padding:0;border-radius:0}.mobile-tabs button.active{color:var(--brand, #3D8BFF)}.mobile-tabs .icon{font-size:18px;line-height:1}.mobile-sev{border-radius:999px;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;font-size:11px;font-weight:650;display:inline-flex;align-items:center;gap:6px}.mobile-sev.crit{color:var(--crit, #F43F5E);background:color-mix(in srgb,var(--crit, #F43F5E) 15%,transparent)}.mobile-sev.warn{color:var(--warn, #FBBF24);background:color-mix(in srgb,var(--warn, #FBBF24) 15%,transparent)}.mobile-sev.info{color:var(--info, #38BDF8);background:color-mix(in srgb,var(--info, #38BDF8) 15%,transparent)}.mobile-status{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary, #9AABBF);background:var(--bg-hover, #1E2C44)}.mobile-status.online{color:var(--online, #22C55E);background:color-mix(in srgb,var(--online, #22C55E) 15%,transparent)}.mobile-status.offline{color:var(--crit, #F43F5E);background:color-mix(in srgb,var(--crit, #F43F5E) 15%,transparent)}.mobile-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-subtle, #1F2C42)}.mobile-row:last-child{border-bottom:none}.mobile-filter{margin-bottom:10px;width:100%}body{margin:0;font-family:system-ui,sans-serif;background:#0f1720;color:#e6edf3}a{color:#7cc4ff}header{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.75rem 1.25rem;background:#16212d;border-bottom:1px solid #263445}header h1{font-size:1.1rem;margin:0;flex:1 1 auto;min-width:0}main{padding:1.25rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr))}section{background:#16212d;border:1px solid #263445;border-radius:10px;padding:1rem}h2{font-size:1rem;margin:0 0 .75rem}table{width:100%;border-collapse:collapse;font-size:.85rem}td,th{padding:.3rem .4rem;border-bottom:1px solid #263445;text-align:left}.crit{color:#ff6b6b}.warn{color:#ffc857}.info{color:#7cc4ff}button,select,input{background:#0f1720;color:#e6edf3;border:1px solid #39506a;border-radius:6px;padding:.4rem .6rem}.login{max-width:360px;margin:12vh auto;display:grid;gap:.75rem}.hero{text-align:center}.err{color:#ff6b6b}.wide{grid-column:1/-1}.muted{color:#8aa0b5;font-size:.8rem}.sel{background:#1f3045}tr{cursor:default}.banner{background:#4a3b12;color:#ffd77a;padding:.5rem 1.25rem}.big{font-size:2rem;margin:.25rem 0}.more{margin-top:.5rem}nav{display:flex;gap:.3rem}nav button.sel{font-weight:700;text-decoration:underline}.reports .wide{grid-column:1 / -1}.controls{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}table.report{width:100%;border-collapse:collapse}table.report th,table.report td{text-align:left;padding:.25rem .4rem;border-bottom:1px solid #8884}@media print{.noprint,.banner{display:none!important}body{background:#fff;color:#000}section{box-shadow:none;border:0;break-inside:avoid}table.report td,table.report th{border-bottom:1px solid #999}}.q{display:inline-block;padding:0 .4em;border-radius:.6em;font-size:.75rem;font-weight:600;border:1px solid currentColor}.q-good{color:#3ecf8e}.q-stale{color:#8aa0b5}.q-error{color:#ff6b6b}.q-uncertain{color:#f5a524;background:#f5a5241a}.q-unknown{color:#8aa0b5}@media print{.q{border-color:#000}.q-uncertain{color:#a15c00}}html.desktop-on-narrow,html.desktop-on-narrow body{overflow-x:hidden;max-width:100%}html.desktop-on-narrow .desktop-scroll{min-width:0;max-width:100%;width:100%;box-sizing:border-box}html.desktop-on-narrow header{flex-wrap:wrap;gap:.5rem .75rem}html.desktop-on-narrow header nav{flex-wrap:wrap}html.desktop-on-narrow main{grid-template-columns:1fr;padding:.75rem}html.desktop-on-narrow section,html.desktop-on-narrow .wide,html.desktop-on-narrow .m-card{max-width:100%;box-sizing:border-box;overflow-x:auto}html.desktop-on-narrow table{display:block;overflow-x:auto;max-width:100%}.view-switch{font-size:.8rem;white-space:nowrap}header .view-switch.narrow-only{display:none}@media (max-width: 720px){header .view-switch.narrow-only{display:inline}header{flex-wrap:wrap}main{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr))}}main.dash-stack{grid-template-columns:1fr;align-items:stretch}.ca-launch{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#16212d;border:1px solid #263445;border-radius:10px;padding:.75rem 1rem}.ca-launch button.primary{background:#3d8bff;border-color:#3d8bff;color:#fff;font-weight:600}.ca-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;justify-content:flex-end;z-index:50}.ca-panel{width:min(520px,100%);height:100%;background:#16212d;border-left:1px solid #263445;display:flex;flex-direction:column;gap:.5rem;padding:.75rem;box-sizing:border-box}.ca-head{display:flex;gap:.5rem;align-items:center}.ca-head strong{flex:1}.ca-msgs{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.25rem}.ca-msg{max-width:88%;padding:.5rem .7rem;border-radius:10px;font-size:.9rem;border:1px solid #263445}.ca-msg.user{align-self:flex-end;background:#1a3a6b}.ca-msg.assistant{align-self:flex-start;background:#0f1720}.ca-msg.err{color:#ff6b6b}.ca-compose{display:flex;gap:.5rem}.ca-compose textarea{flex:1;resize:vertical;background:#0f1720;color:#e6edf3;border:1px solid #39506a;border-radius:6px;padding:.4rem .6rem;font:inherit}.ca-compose button.primary{background:#3d8bff;border-color:#3d8bff;color:#fff}.sched-form{display:grid;gap:.5rem}.sched-form .controls label{display:inline-flex;gap:.35rem;align-items:center}.ask-msgs{max-height:260px;min-height:90px;margin-bottom:.5rem;border:1px solid #263445;border-radius:8px;background:#0f1720}.ask-mic{min-width:4.5rem;background:#0f1720;color:#e6edf3;border:1px solid #39506a}.ask-mic.listening{background:#7a1f1f;border-color:#ff6b6b;color:#fff;font-weight:600}.ask-mic:disabled{opacity:.45;cursor:not-allowed}
