body,html{margin:0;padding:0}:root{--bg:#f5f6f8;--panel:#fff;--panel-elev:#fff;--text:#111418;--text-dim:#5b6470;--border:#e3e6eb;--accent:#2563eb;--danger:#d32f2f;--danger-bg:#fde7e7;--warning:#f9a825;--warning-bg:#fff4d6;--ok:#2e7d32;--ok-bg:#e6f4e8;--shadow:0 1px 2px #0000000a,0 4px 12px #0000000f}body[data-theme=dark]{--bg:#0e1014;--panel:#171a21;--panel-elev:#1d2029;--text:#ecedef;--text-dim:#8b94a3;--border:#272b34;--accent:#4a9eff;--danger:#ff5a5a;--danger-bg:#3a1515;--warning:#ffb72e;--warning-bg:#3a2a10;--ok:#5ec77b;--ok-bg:#15321d;--shadow:0 1px 2px #0000004d,0 4px 16px #0006}*{box-sizing:border-box}#root,body,html{height:100%}body{background:#f5f6f8;background:var(--bg);color:#111418;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;font-size:14px;line-height:1.5;margin:0}button{background:#fff;background:var(--panel);border:1px solid #e3e6eb;border:1px solid var(--border);border-radius:6px;color:inherit;cursor:pointer;font:inherit;padding:6px 12px;transition:background .12s,border-color .12s}button:hover{background:#fff;background:var(--panel-elev)}button.primary,button:hover{border-color:#2563eb;border-color:var(--accent)}button.primary{background:#2563eb;background:var(--accent);color:#fff}button.primary:hover{filter:brightness(1.1)}button.ghost{background:#0000;border-color:#0000}button.ghost:hover{background:#fff;background:var(--panel-elev);border-color:#e3e6eb;border-color:var(--border)}input[type=number],input[type=text],select{background:#fff;background:var(--panel);border:1px solid #e3e6eb;border:1px solid var(--border);border-radius:6px;color:inherit;font:inherit;padding:6px 10px}.app{margin:0 auto;max-width:1200px;padding:16px 24px 48px}.topbar{align-items:center;border-bottom:1px solid #e3e6eb;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:12px 0}.topbar .brand{font-size:18px;font-weight:700;letter-spacing:-.01em;margin-right:auto}.topbar .spacer{flex:1 1}.toggle-group{border:1px solid #e3e6eb;border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.toggle-group button{background:#0000;border:0;border-radius:0;padding:6px 14px}.toggle-group button.active{background:#2563eb;background:var(--accent);color:#fff}.period-selector{align-items:center;display:inline-flex;gap:8px}.period-selector .chip{align-items:center;background:#fff;background:var(--panel-elev);border-radius:999px;display:inline-flex;font-size:12px;gap:6px;padding:4px 10px}.period-selector .chip,.status-card{border:1px solid #e3e6eb;border:1px solid var(--border)}.status-card{grid-gap:24px;background:#fff;background:var(--panel);border-radius:12px;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f;box-shadow:var(--shadow);display:grid;gap:24px;grid-template-columns:1fr 1fr 1fr;margin-bottom:20px;padding:20px 24px}.status-card .stat{display:flex;flex-direction:column;gap:4px}.status-card .stat .label{color:#5b6470;color:var(--text-dim);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.status-card .stat .value{font-size:26px;font-weight:700;letter-spacing:-.02em}.status-card .stat .sub{color:#5b6470;color:var(--text-dim);font-size:12px}.status-card.danger-mode{border-color:#d32f2f;border-color:var(--danger);box-shadow:0 0 0 2px #fde7e7;box-shadow:0 0 0 2px var(--danger-bg)}.status-card.warning-mode{border-color:#f9a825;border-color:var(--warning);box-shadow:0 0 0 2px #fff4d6;box-shadow:0 0 0 2px var(--warning-bg)}.alert-banner{align-items:center;border-radius:10px;display:flex;font-weight:600;gap:14px;margin-bottom:16px;padding:14px 18px}.alert-banner.danger{background:#fde7e7;background:var(--danger-bg);border:1px solid #d32f2f;border:1px solid var(--danger);color:#d32f2f;color:var(--danger)}.alert-banner.warning{background:#fff4d6;background:var(--warning-bg);border:1px solid #f9a825;border:1px solid var(--warning);color:#f9a825;color:var(--warning)}.alert-banner.ok{background:#e6f4e8;background:var(--ok-bg);border:1px solid #2e7d32;border:1px solid var(--ok);color:#2e7d32;color:var(--ok)}.alert-banner .icon{font-size:24px;line-height:1}.panel{background:#fff;background:var(--panel);border:1px solid #e3e6eb;border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f;box-shadow:var(--shadow);margin-bottom:18px;padding:18px 20px}.panel h2{color:#5b6470;color:var(--text-dim);font-size:15px;font-weight:600;letter-spacing:.04em;margin:0 0 12px;text-transform:uppercase}.danger-list{grid-gap:8px;display:grid;gap:8px}.danger-row{grid-gap:12px;align-items:center;background:#fff;background:var(--panel-elev);border:1px solid #e3e6eb;border:1px solid var(--border);border-radius:8px;display:grid;gap:12px;grid-template-columns:90px 50px 1fr 90px 100px 80px;padding:10px 12px}.danger-row .date{font-weight:600}.danger-row .hour{font-feature-settings:"tnum";color:#5b6470;color:var(--text-dim);font-variant-numeric:tabular-nums}.danger-row .bar-wrap{background:#e3e6eb;background:var(--border);border-radius:999px;height:10px;overflow:hidden}.danger-row .bar{border-radius:999px;height:100%}.danger-row .value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.danger-row .pct{font-feature-settings:"tnum";color:#5b6470;color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right}.danger-row .badge{border-radius:999px;font-size:11px;font-weight:700;justify-self:end;letter-spacing:.04em;padding:3px 8px}.badge.danger{background:#d32f2f;background:var(--danger);color:#fff}.badge.warning{background:#f9a825;background:var(--warning);color:#000}.badge.normal{background:#2e7d32;background:var(--ok);color:#fff}.bar.danger{background:#d32f2f;background:var(--danger)}.bar.warning{background:#f9a825;background:var(--warning)}.bar.normal{background:#2e7d32;background:var(--ok)}.ribbon-wrap{overflow-x:auto;padding-bottom:8px}.ribbon{grid-gap:1px;align-items:end;display:grid;gap:1px;grid-auto-columns:14px;grid-auto-flow:column;height:100px;min-width:100%}.ribbon .cell{background:#e3e6eb;background:var(--border);border-radius:2px;height:100%;position:relative}.ribbon .cell.danger{background:#d32f2f;background:var(--danger)}.ribbon .cell.warning{background:#f9a825;background:var(--warning)}.ribbon .cell.normal{background:#2e7d32;background:var(--ok);opacity:.45}.ribbon .cell.empty{background:#0000;border:1px dashed #e3e6eb;border:1px dashed var(--border);opacity:.3}.ribbon .cell.peak{outline:2px solid #111418;outline:2px solid var(--text);outline-offset:1px}.ribbon-legend{color:#5b6470;color:var(--text-dim);display:flex;font-size:12px;gap:14px;margin-top:10px}.ribbon-legend .sw{border-radius:2px;display:inline-block;height:10px;margin-right:4px;vertical-align:middle;width:10px}.ribbon-day-labels{color:#5b6470;color:var(--text-dim);display:grid;font-size:11px;grid-auto-columns:359px;grid-auto-flow:column;margin-top:6px}.hist-table{border-collapse:collapse;font-size:13px;width:100%}.hist-table td,.hist-table th{border-bottom:1px solid #e3e6eb;border-bottom:1px solid var(--border);padding:6px 10px;text-align:left}.hist-table th{color:#5b6470;color:var(--text-dim);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.hist-table td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal{background:#fff;background:var(--panel);border:1px solid #e3e6eb;border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f;box-shadow:var(--shadow);max-height:85vh;max-width:90vw;overflow:auto;padding:20px 24px;width:480px}.modal h2{font-size:16px;margin:0 0 12px}.modal .period-item{grid-gap:8px;align-items:center;border-bottom:1px solid #e3e6eb;border-bottom:1px solid var(--border);display:grid;gap:8px;grid-template-columns:1fr auto auto auto;padding:8px 0}.modal .period-item:last-of-type{border-bottom:0}.modal .new-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 90px auto;margin-top:12px}.meta-footer{font-size:11px;margin-top:32px;opacity:.7}.loading,.meta-footer{color:#5b6470;color:var(--text-dim);text-align:center}.loading{padding:40px 0}
/*# sourceMappingURL=main.06f86bac.css.map*/