:root{--bg: #0e1116;--panel: #161b22;--panel-2: #1c232d;--border: #262d38;--grid: #232b36;--text: #e6edf3;--muted: #8b949e;--accent: #ffb020;--accent-soft: rgba(255, 176, 32, .14);--bar: #3b82f6;--ok: #3fb950;--err: #f85149;--busy: #d29922;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app{max-width:1040px;margin:0 auto;padding:32px 20px 48px}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.title{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em}.subtitle{margin:4px 0 0;color:var(--muted);font-size:14px}.refresh-btn{background:var(--accent);color:#1a1200;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .05s}.refresh-btn:hover:not(:disabled){opacity:.9}.refresh-btn:active:not(:disabled){transform:translateY(1px)}.refresh-btn:disabled{opacity:.5;cursor:default}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.toolbar-spacer{flex:1}.tabs{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px}.tab{padding:7px 16px;border:none;background:transparent;color:var(--muted);font-size:14px;font-weight:600;border-radius:7px;cursor:pointer;transition:background .12s,color .12s}.tab:hover{color:var(--text)}.tab--active{background:var(--accent);color:#1a1200}.month-label{min-width:92px;text-align:center;font-size:14px;font-weight:600}.panel-hint{font-weight:400;font-size:12px;color:var(--muted)}.datepicker{display:flex;align-items:center;gap:6px}.dp-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:18px;line-height:1;cursor:pointer}.dp-btn:hover:not(:disabled){background:var(--panel-2)}.dp-btn:disabled{opacity:.35;cursor:default}.dp-input{height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:14px;color-scheme:dark}.dp-today{height:34px;padding:0 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:13px;cursor:pointer}.dp-today:hover{background:var(--panel-2);color:var(--text)}.today-badge{padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px}.stat-card--accent{background:linear-gradient(160deg,var(--accent-soft),var(--panel) 70%);border-color:#ffb02059}.stat-label{color:var(--muted);font-size:13px;margin-bottom:10px}.stat-value{font-size:24px;font-weight:700;letter-spacing:-.02em}.stat-sub{margin-top:6px;color:var(--muted);font-size:12px}.chart-panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.panel-title{margin:0 0 16px;font-size:15px;font-weight:600}.chart-empty{height:280px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}.tooltip{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13px}.tooltip-hour{color:var(--muted);margin-bottom:2px}.tooltip-value{font-weight:600}.statusbar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--panel);border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--muted);flex-wrap:wrap}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot--ok{background:var(--ok)}.dot--err{background:var(--err)}.dot--busy{background:var(--busy);animation:pulse 1.2s infinite}.statusbar-text{color:var(--text)}.statusbar-schedule{margin-left:auto}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.banner{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px}.banner--err{background:#f851491f;border:1px solid rgba(248,81,73,.4);color:#ffb3ae}.loading{padding:60px;text-align:center;color:var(--muted)}.footer{margin-top:28px;text-align:center;color:var(--muted);font-size:12px}@media (max-width: 760px){.cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 420px){.cards{grid-template-columns:1fr}.statusbar-schedule{margin-left:0;width:100%}}
