*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--bg: #05070d;--surface: #080c14;--surface-2: #0d1220;--border: #1c2b3d;--border-mid: #263548;--border-bright:#304460;--accent: #00ffff;--accent-hover: #66ffff;--accent-dim: #001f1f;--on-accent: #05070d;--text: #d4dff0;--text-muted: #637898;--text-dim: #3a4f6a;--success: #4ade80;--danger: #f87171;--warn: #b87c2a;--radius: 10px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--shadow-sidebar: 4px 0 24px rgba(0,0,0,.55);--shadow-card: 0 2px 18px rgba(0,0,0,.45);--row-hover: rgba(0,255,255,.04);--glow-base: #0e1825;--glow-line: #1c2b3d;--glow-strong: rgba(0,255,255,.55);--glow-mid: rgba(0,255,255,.08);--glow-soft: rgba(0,255,255,.055);--accent-tint: rgba(0,255,255,.06);--accent-tint-strong: rgba(0,255,255,.11);--accent-tint-border: rgba(0,255,255,.28);--success-tint: rgba(74,222,128,.12);--success-tint-border:rgba(74,222,128,.3);--danger-tint: rgba(248,113,113,.11);--danger-tint-border: rgba(248,113,113,.3);--muted-tint: rgba(99,120,152,.16);--warn-tint: rgba(184,124,42,.16);--warn-tint-border: rgba(184,124,42,.34);--font-mono: "SFMono-Regular", ui-monospace, "JetBrains Mono", "Roboto Mono", Menlo, Consolas, monospace;--glow-idle-fill: 30%;--glow-idle-stroke: 72%;--glow-blur-idle: 3px;--glow-blur-hover: 8px;--glow-blur-sel-1: 4px;--glow-blur-sel-2: 16px;--grid-line: rgba(38,53,72,.4);--series-1: #22d3ee;--series-2: #4ade80;--series-3: #f43f5e;--series-4: #f59e0b;--series-5: #a78bfa;--series-6: #38bdf8;--series-7: #a3e635;--series-8: #fb923c;--type-error-1: #f43f5e;--type-error-2: #fb7185;--type-error-3: #f97316;--type-error-4: #fb923c;--type-warn-1: #f59e0b;--type-warn-2: #fbbf24;--type-ok-1: #4ade80;--type-ok-2: #34d399;--type-ok-3: #86efac;--type-other-1: #22d3ee;--type-other-2: #c084fc;--type-other-3: #2dd4bf;--type-other-4: #818cf8;--type-other-5: #f472b6;--type-other-6: #60a5fa;--type-other-7: #a78bfa;--type-other-8: #e879f9;--chip-bg: var(--accent-tint-strong);--chip-border: var(--accent-tint-border)}[data-theme=light]{color-scheme:light;--bg: #f4f5f9;--surface: #ffffff;--surface-2: #f0f1f6;--border: #e0e2ed;--border-mid: #d2d6e2;--border-bright:#c2c7d6;--accent: #0891b2;--accent-hover: #0e7490;--accent-dim: #e0f7fa;--on-accent: #ffffff;--text: #1a1d27;--text-muted: #6b7080;--text-dim: #9aa0b0;--success: #16a34a;--danger: #dc2626;--warn: #b9820a;--shadow-sidebar: 4px 0 24px rgba(0,0,0,.07);--shadow-card: 0 2px 16px rgba(0,0,0,.07);--row-hover: rgba(8,145,178,.05);--glow-base: #d5dbe6;--glow-line: #c2c7d6;--glow-strong: rgba(8,145,178,.45);--glow-mid: rgba(8,145,178,.1);--glow-soft: rgba(8,145,178,.06);--accent-tint: rgba(8,145,178,.07);--accent-tint-strong: rgba(8,145,178,.12);--accent-tint-border: rgba(8,145,178,.3);--glow-idle-fill: 55%;--glow-idle-stroke: 78%;--glow-blur-idle: 1px;--glow-blur-hover: 3px;--glow-blur-sel-1: 2px;--glow-blur-sel-2: 7px;--grid-line: rgba(0,0,0,.06);--series-1: #0e7490;--series-2: #15803d;--series-3: #be123c;--series-4: #b45309;--series-5: #6d28d9;--series-6: #0369a1;--series-7: #4d7c0f;--series-8: #c2410c;--type-error-1: #e11d48;--type-error-2: #be123c;--type-error-3: #ea580c;--type-error-4: #c2410c;--type-warn-1: #b45309;--type-warn-2: #a16207;--type-ok-1: #16a34a;--type-ok-2: #15803d;--type-ok-3: #4d7c0f;--type-other-1: #0e7490;--type-other-2: #7e22ce;--type-other-3: #0f766e;--type-other-4: #4338ca;--type-other-5: #be185d;--type-other-6: #2563eb;--type-other-7: #6d28d9;--type-other-8: #a21caf}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);overflow:hidden;font-size:14px}.layout{display:flex;height:100vh;overflow:hidden;position:relative}.content{flex:1;overflow-y:auto;padding:28px 32px;min-width:0}.splash{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-muted)}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);box-shadow:var(--shadow-sidebar);display:flex;flex-direction:column;padding:24px 16px;flex-shrink:0;overflow:hidden;transition:width .2s ease,padding .2s ease}.sidebar-collapsed{width:56px;padding:24px 8px}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:6px 12px;margin-bottom:28px;white-space:nowrap;overflow:hidden}.sidebar-collapsed .sidebar-logo{padding:6px 4px;justify-content:center}.logo-mark{color:var(--accent);font-size:20px;flex-shrink:0}.sidebar a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:var(--text-muted);text-decoration:none;font-size:14px;transition:all .15s;white-space:nowrap;overflow:hidden}.sidebar a:hover{color:var(--text);background:var(--border)}.sidebar a.active{color:var(--accent);background:var(--accent-tint-strong)}.sidebar-collapsed a{padding:10px 4px;justify-content:center}.nav-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-text{white-space:nowrap}.sidebar-collapsed .sidebar-text{display:none}.nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--danger);background:var(--danger-tint);border:1px solid var(--danger-tint-border);border-radius:12px;min-width:20px;padding:2px 8px;display:inline-flex;align-items:center;justify-content:center}.bottom-actions{display:flex;gap:8px;align-items:stretch}.bottom-actions-collapsed{flex-direction:column-reverse;align-items:center}.logout-btn{flex:1;background:none;border:1px solid var(--border);color:var(--text-muted);padding:9px 12px;border-radius:var(--radius);cursor:pointer;font-size:14px;font-family:var(--font);text-align:left;transition:all .15s;white-space:nowrap;overflow:hidden}.logout-btn:hover{color:var(--danger);border-color:var(--danger)}.bottom-actions-collapsed .logout-btn{flex:unset;width:40px;padding:9px 4px;text-align:center}.theme-btn{width:40px;flex-shrink:0;background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.theme-btn:hover{color:var(--accent);border-color:var(--accent)}.moon-glyph{font-size:1.3em;font-weight:700;-webkit-text-stroke:.6px currentColor;line-height:1}.sidebar-toggle{position:absolute;top:70px;width:30px;height:26px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:14px;line-height:1;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;transition:left .2s ease,color .15s,border-color .15s}.sidebar-toggle:hover{color:var(--accent);border-color:var(--accent)}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:600}.page-head .sub{color:var(--text-muted);font-size:13px;margin-top:2px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:8px;font-size:14px;font-weight:500;font-family:var(--font);border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s,opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:none;border-color:var(--danger);color:var(--danger)}.btn-sm{padding:5px 10px;font-size:13px}input,select,textarea{font-family:var(--font);font-size:14px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 11px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:6px}.form-group{margin-bottom:16px}.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;text-transform:capitalize;line-height:1.6}.badge--accent{background:var(--accent-tint-strong);color:var(--accent)}.badge--success{background:var(--success-tint);color:var(--success)}.badge--danger{background:var(--danger-tint);color:var(--danger)}.badge--warn{background:var(--warn-tint);color:var(--warn)}.badge--muted{background:var(--muted-tint);color:var(--text-muted)}.inline-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:13px}.inline-banner--danger{background:var(--danger-tint);border:1px solid var(--danger-tint-border);color:var(--danger)}.inline-banner--warn{background:var(--warn-tint);border:1px solid var(--warn-tint-border);color:var(--warn)}.inline-banner--accent{background:var(--accent-tint);border:1px solid var(--accent-tint-border);color:var(--accent)}.inline-banner--success{background:var(--success-tint);border:1px solid var(--success-tint-border);color:var(--success)}.inline-banner__close{background:none;border:none;color:inherit;cursor:pointer;font-size:18px;line-height:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-card)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.stat{font-size:30px;font-weight:700}.stat-label{color:var(--text-muted);font-size:13px;margin-top:4px}table{width:100%;border-collapse:collapse}th{text-align:left;padding:9px 12px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border)}td{padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px}tr:hover td{background:var(--row-hover)}.hover-actions>*{visibility:hidden}tr:hover .hover-actions>*{visibility:visible}.site-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.site-group__head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-2);cursor:pointer;-webkit-user-select:none;user-select:none}.site-group__head h3{font-size:15px;font-weight:600}.site-group__count{margin-left:auto;color:var(--text-muted);font-size:13px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100;display:flex;align-items:center;justify-content:center}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;width:460px;max-width:92vw;max-height:90vh;overflow-y:auto}.modal h2{font-size:18px;margin-bottom:18px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.login-wrap{display:flex;align-items:center;justify-content:center;height:100vh}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:40px;width:380px;box-shadow:var(--shadow-card)}.login-box h1{font-size:22px;margin-bottom:4px}.login-box>p{color:var(--text-muted);font-size:14px;margin-bottom:24px}.error{color:var(--danger);font-size:13px;margin:8px 0}.success{color:var(--success);font-size:13px;margin:8px 0}.muted{color:var(--text-muted)}.empty{text-align:center;color:var(--text-muted);padding:48px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.type-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:8px;vertical-align:middle;flex-shrink:0}.panel-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.panel-row--2{grid-template-columns:repeat(2,1fr)}@media (max-width: 1100px){.panel-row,.panel-row--2{grid-template-columns:1fr}}.glow-donut{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;width:100%}.glow-donut svg{flex:0 0 auto}.glow-donut__track{fill:none;stroke:var(--grid-line)}.glow-donut__seg{fill:color-mix(in srgb,var(--c) 32%,transparent);stroke:color-mix(in srgb,var(--c) 70%,transparent);stroke-width:1}.glow-donut__total{fill:var(--text);font-size:30px;font-weight:600;font-variant-numeric:tabular-nums}.glow-donut__sub{fill:var(--text-muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-family:var(--font-mono)}.glow-legend--col{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:9px;min-width:132px}.glow-legend--col .glow-legend__item{cursor:default;max-width:none}.glow-legend__val{margin-left:auto;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.glow-card{position:relative;border-radius:var(--radius);padding:1px;background:var(--glow-base);box-shadow:var(--shadow-card);transition:background .12s ease}.glow-card__inner{position:relative;overflow:hidden;border-radius:calc(var(--radius) - 1px);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 5%,transparent),transparent 55%),var(--surface);height:100%;display:flex;flex-direction:column}.glow-card__sheen{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.glow-card__inner>*:not(.glow-card__sheen){position:relative;z-index:1}.chart-panel{display:flex;flex-direction:column}.chart-panel .glow-card__inner{min-height:256px;flex:1}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);display:flex;flex-direction:column;min-height:232px}.panel__head{display:flex;align-items:baseline;gap:8px;padding:13px 16px 10px;border-bottom:1px solid var(--border)}.panel__title{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-muted)}.panel__title:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:8px;vertical-align:middle;background:var(--accent);box-shadow:0 0 6px var(--accent)}.panel__meta{margin-left:auto;font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.panel__body{flex:1;padding:12px 14px;display:flex}.panel__body--col{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}.panel__body .empty{margin:auto;padding:20px}.glow-chart{display:block;overflow:visible;max-width:100%}.glow-bar{cursor:pointer}.glow-bar__track{fill:var(--grid-line)}.glow-bar__shape{fill:color-mix(in srgb,var(--c) 32%,transparent);stroke:color-mix(in srgb,var(--c) 46%,transparent);stroke-width:1;filter:none;transition:fill .15s ease,stroke .15s ease,filter .15s ease,opacity .15s ease}.glow-bar:hover .glow-bar__shape,.glow-bar[data-state=hover] .glow-bar__shape{fill:color-mix(in srgb,var(--c) 46%,transparent);stroke:var(--c);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--c) 60%,transparent))}.glow-bar[data-state=selected] .glow-bar__shape{fill:color-mix(in srgb,var(--c) 60%,transparent);stroke:var(--c);stroke-width:1.5;filter:drop-shadow(0 0 4px var(--c))}.glow-chart :focus{outline:none}.glow-bar:focus-visible .glow-bar__shape{stroke:var(--c);stroke-width:2}.glow-bar__label{fill:var(--text);font-size:12px;font-weight:500;dominant-baseline:middle;pointer-events:none}.glow-bar[data-dim=true] .glow-bar__label{fill:var(--text-muted)}.glow-bar__value{fill:var(--text-muted);font-size:11px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;dominant-baseline:middle;text-anchor:end;pointer-events:none}.glow-bar[data-state=selected] .glow-bar__value{fill:var(--text)}.glow-bar[data-dim=true] .glow-bar__shape{opacity:.35}.glow-rowlabel{cursor:pointer}.glow-rowlabel__text{fill:var(--text);font-size:12px;font-weight:500;dominant-baseline:middle;pointer-events:none;transition:fill .15s ease}.glow-rowlabel:hover .glow-rowlabel__text,.glow-rowlabel:focus-visible .glow-rowlabel__text{fill:var(--accent)}.glow-rowlabel[data-state=selected] .glow-rowlabel__text{fill:var(--accent);font-weight:700}.glow-rowlabel[data-dim=true] .glow-rowlabel__text{fill:var(--text-dim)}.glow-stack__grid{stroke:var(--grid-line);stroke-dasharray:2 4}.glow-stack__ylabel,.glow-stack__xlabel{fill:var(--text-muted);font-size:10px;font-family:var(--font-mono)}.glow-stack__ylabel{text-anchor:end}.glow-stack__xlabel{text-anchor:middle}.glow-legend{display:flex;flex-wrap:wrap;gap:5px 12px;padding:8px 4px 2px}.glow-legend__item{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:11px;color:var(--text-muted);background:none;border:none;font-family:var(--font);padding:0;max-width:150px;transition:color .15s,opacity .15s}.glow-legend__item:hover{color:var(--text)}.glow-legend__item:focus{outline:none}.glow-legend__item:focus-visible{outline:1px solid var(--accent);outline-offset:2px;border-radius:3px}.glow-legend__item[data-state=selected]{color:var(--text);font-weight:600}.glow-legend__item[data-state=dim]{opacity:.65}.glow-legend__txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glow-legend__swatch{width:11px;height:11px;border-radius:3px;flex-shrink:0;background:color-mix(in srgb,var(--c) 32%,transparent);border:1px solid color-mix(in srgb,var(--c) 46%,transparent)}.glow-legend__item[data-state=selected] .glow-legend__swatch{background:var(--c);border-color:var(--c)}.aging{display:flex;flex-direction:column;gap:8px}.aging-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.aging-list__row{position:relative;display:flex;align-items:center;gap:9px;padding:5px 9px;border-radius:6px;cursor:pointer;overflow:hidden;border:1px solid transparent;transition:background .15s,border-color .15s,opacity .15s}.aging-list__fill{position:absolute;left:0;top:0;bottom:0;z-index:0;background:color-mix(in srgb,var(--c) 14%,transparent);border-right:1px solid color-mix(in srgb,var(--c) 32%,transparent)}.aging-list__rank,.aging-list__label,.aging-list__value{position:relative;z-index:1}.aging-list__rank{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);min-width:14px;text-align:right;font-variant-numeric:tabular-nums}.aging-list__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500;color:var(--text)}.aging-list__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700;color:var(--c)}.aging-list__row:hover{background:var(--row-hover)}.aging-list__row:focus-visible{outline:none;border-color:color-mix(in srgb,var(--c) 60%,transparent)}.aging-list__row[data-state=selected]{border-color:var(--c);background:color-mix(in srgb,var(--c) 7%,transparent)}.aging-list__row[data-dim=true]{opacity:.5}.aging-legend{display:flex;flex-wrap:wrap;gap:4px 12px;padding:2px 4px}.aging-legend__item{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--text-muted)}.aging-legend__swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0;background:color-mix(in srgb,var(--c) 32%,transparent);border:1px solid color-mix(in srgb,var(--c) 46%,transparent)}.viz-toggle{display:inline-flex;gap:2px;padding:2px;border-radius:7px;background:var(--surface-2);border:1px solid var(--border)}.viz-toggle__btn{font:inherit;font-size:10.5px;font-weight:600;letter-spacing:.3px;padding:2px 9px;border:none;border-radius:5px;cursor:pointer;background:none;color:var(--text-muted);transition:background .15s,color .15s}.viz-toggle__btn:hover{color:var(--text)}.viz-toggle__btn[data-active=true]{background:var(--accent-tint-strong);color:var(--accent)}.filter-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 18px;min-height:28px}.filter-chips__label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-right:2px}.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 8px 4px 11px;border-radius:16px;font-size:12px;background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--accent);font-family:var(--font-mono)}.chip__dim{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.chip__x{background:none;border:none;color:inherit;cursor:pointer;font-size:15px;line-height:1;padding:0;opacity:.7}.chip__x:hover{opacity:1}.chip--clear{background:none;border-color:var(--border);color:var(--text-muted);cursor:pointer}.chip--clear:hover{color:var(--text);border-color:var(--text-muted)}.cust-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow-card)}.cust-group__head{display:flex;align-items:center;gap:11px;padding:13px 16px;background:var(--surface-2);cursor:pointer;-webkit-user-select:none;user-select:none}.cust-group__head:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}.cust-group__caret{color:var(--text-muted);font-size:16px;margin-left:auto}.cust-group__name{font-size:15px;font-weight:600}.cust-group__count{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--danger);background:var(--danger-tint);border:1px solid var(--danger-tint-border);padding:2px 9px;border-radius:12px}.site-sub__head{display:flex;align-items:center;gap:6px;padding:8px 16px;color:var(--text-muted);font-size:12px;font-family:var(--font-mono);border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface-2) 40%,var(--surface));letter-spacing:.3px}.site-sub__name{color:var(--accent);font-weight:600}.cust-group table{border-top:1px solid var(--border)}.cust-group td:first-child,.cust-group th:first-child{padding-left:16px}.cust-group td:last-child,.cust-group th:last-child{padding-right:16px}.led{display:inline-flex;align-items:center;gap:7px;font-size:13px}.led:before{content:"";width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--led-c, var(--text-muted));box-shadow:0 0 7px var(--led-c, transparent)}.led--active{--led-c: var(--danger)}.led--accepted{--led-c: var(--warn)}.led--resolved{--led-c: var(--success)}.chart-box{height:320px}.form-row{display:flex;gap:12px}.search-input{width:240px}.search-field{max-width:360px}.table-scroll-x{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:8px;background:none;border:1px solid transparent;cursor:pointer;color:var(--text-muted);transition:color .15s,background .15s,border-color .15s}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn--danger{color:var(--danger)}.icon-btn--danger:hover{background:var(--danger-tint);border-color:var(--danger-tint-border);color:var(--danger)}.assign-inline{display:block}.assign-icon{display:none}.assign-icon{align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:none;border-radius:8px;background:none;cursor:pointer;color:var(--text-dim);transition:color .15s,background .15s}.assign-icon:hover{background:var(--surface-2)}.assign-icon--on{color:var(--accent)}.mobile-topbar,.mobile-tabbar,.mobile-sheet,.mobile-scrim{display:none}.mobile-topbar{align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top,0px)) 16px 12px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.mobile-topbar__logo{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:15px}.mobile-topbar__logo .logo-mark{font-size:18px}.mobile-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px)}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px;min-height:56px;background:none;border:none;cursor:pointer;text-decoration:none;color:var(--text-muted);font-family:var(--font);font-size:11px;transition:color .15s}.mobile-tab.active{color:var(--accent)}.mobile-tab__icon{position:relative;display:flex;align-items:center;justify-content:center}.mobile-tab__label{font-size:10.5px;letter-spacing:.2px}.mobile-tab__dot{position:absolute;top:-3px;right:-5px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:1.5px solid var(--surface)}.mobile-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .22s ease}.mobile-scrim--open{opacity:1;pointer-events:auto}.mobile-sheet{position:fixed;left:0;right:0;bottom:0;z-index:46;background:var(--surface);border-top:1px solid var(--border);border-radius:16px 16px 0 0;box-shadow:var(--shadow-card);padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .26s ease}.mobile-sheet--open{transform:translateY(0)}.mobile-sheet__grip{width:38px;height:4px;border-radius:2px;background:var(--border-bright);margin:4px auto 14px}.mobile-sheet__nav{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.mobile-sheet__nav a{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:var(--radius);color:var(--text-muted);text-decoration:none;font-size:15px}.mobile-sheet__nav a.active{color:var(--accent);background:var(--accent-tint-strong)}.mobile-sheet__user{font-size:12px;color:var(--text-muted);padding:0 12px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-sheet__actions{display:flex;gap:8px}.mobile-sheet__actions .logout-btn{flex:1;text-align:left;min-height:46px}.mobile-sheet__actions .theme-btn{min-height:46px}@media (max-width: 768px){.sidebar,.sidebar-toggle{display:none}.mobile-topbar,.mobile-tabbar{display:flex}.mobile-sheet,.mobile-scrim{display:block}.layout{flex-direction:column;height:100dvh}.content{padding:14px 14px calc(72px + env(safe-area-inset-bottom,0px))}.page-head h1{font-size:19px}.page-head{margin-bottom:16px}.toolbar{width:100%}.toolbar>*{flex:1}.search-input,.search-field,.search-field input{width:100%;max-width:100%}.btn{min-height:44px}input,select,textarea{min-height:44px;font-size:16px}.form-row{flex-direction:column;gap:0}.hover-actions>*{visibility:visible}.table-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll-x table{min-width:max-content}.table-scroll-x th,.table-scroll-x td{padding:8px 10px;white-space:nowrap}.table-scroll-x td{font-size:13px}.col-status{display:none}.col-assignee{width:auto!important;padding-right:2px}.col-assignee+td{padding-left:2px}.assign-inline{display:none}.assign-icon{display:inline-flex}.table-scroll-x .btn{min-height:0}}.disclosure-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--accent);font-size:15px;font-weight:500;-webkit-user-select:none;user-select:none}.disclosure-body{margin-top:12px}.modal.modal--sm{max-width:420px}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-danger{color:var(--danger)}.nowrap{white-space:nowrap}.checkbox-auto{width:auto}.input-block{width:100%}.input-mt{margin-top:8px}.bound-site{padding:8px 0;font-weight:500}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer}
