:root{color-scheme:light;--surface: #fcfcfb;--plane: #f9f9f7;--text: #0b0b0b;--secondary: #52514e;--muted: #898781;--grid: #e1e0d9;--axis: #c3c2b7;--border: rgba(11, 11, 11, .1);--accent: #2a78d6;--shadow: 0 1px 2px rgba(11, 11, 11, .04), 0 8px 24px rgba(11, 11, 11, .06);--radius: 14px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--surface: #1a1a19;--plane: #0d0d0d;--text: #ffffff;--secondary: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--accent: #3987e5;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35)}}:root[data-theme=dark]{color-scheme:dark;--surface: #1a1a19;--plane: #0d0d0d;--text: #ffffff;--secondary: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--axis: #383835;--border: rgba(255, 255, 255, .1);--accent: #3987e5;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--plane);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:1180px;margin:0 auto;padding:32px 24px 64px;display:flex;flex-direction:column;gap:24px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand h1{margin:0;font-size:30px;font-weight:650;letter-spacing:-.02em}.sub{margin:4px 0 0;color:var(--secondary);font-size:13.5px}.topbar-actions{display:flex;gap:8px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 14px;font:inherit;font-size:13.5px;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){border-color:var(--axis)}.btn:disabled{opacity:.55;cursor:default}.btn-icon{width:38px;padding:8px 0;text-align:center}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;display:flex;flex-direction:column;gap:18px}.chart-head h2{margin:0;font-size:17px;font-weight:620;letter-spacing:-.01em}.controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--grid)}.field{display:flex;align-items:center;gap:8px}.field>span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--plane);color:var(--text);border-radius:9px;padding:8px 30px 8px 12px;font:inherit;font-size:13.5px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:right 14px center,right 9px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.legend{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--plane);color:var(--text);border-radius:999px;padding:6px 13px 6px 10px;font:inherit;font-size:13px;font-weight:560;font-variant-numeric:tabular-nums;cursor:pointer;transition:opacity .15s,border-color .15s}.chip:hover{border-color:var(--axis)}.chip-off{opacity:.45}.chip-ghost{color:var(--secondary);font-weight:500}.swatch{width:10px;height:10px;border-radius:50%;border:2px solid;flex:none}.chart{width:100%;height:420px}.empty,.note{color:var(--muted);font-size:13px;margin:0}.empty{padding:60px 0;text-align:center}.link{align-self:flex-start;background:none;border:none;padding:0;color:var(--accent);font:inherit;font-size:13.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}th,td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--grid);white-space:nowrap}thead th{color:var(--muted);font-weight:600;font-size:12px}thead th:first-child{text-align:left}.monthly tbody th{text-align:left;font-weight:600;display:flex;align-items:center;gap:7px}td.partial{color:var(--muted)}.records{font-size:14px}.records th,.records td{padding:9px 12px}.records .group-row th{text-align:left;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;padding-top:20px;border-bottom:1px solid var(--grid)}.records tbody:first-of-type .group-row th{padding-top:8px}.rec-label{text-align:left;font-weight:500;white-space:normal}.rec-value{font-weight:650;white-space:nowrap}.rec-when{color:var(--secondary);width:1%}.records .unit{font-weight:500;color:var(--secondary);font-size:12.5px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.card{border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--plane);display:flex;flex-direction:column;gap:14px}.card-head{display:flex;align-items:center;gap:8px}.card-head h3{margin:0;font-size:16px;font-weight:650;font-variant-numeric:tabular-nums}.badge{margin-left:auto;color:var(--muted);font-size:11.5px;border:1px solid var(--border);border-radius:999px;padding:2px 8px}.card-hero{display:flex;gap:20px;justify-content:space-between}.stat-label{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-value{font-size:26px;font-weight:620;letter-spacing:-.02em;margin-top:2px;white-space:nowrap}.stat-value .unit{font-size:14px;font-weight:500;color:var(--secondary);margin-left:3px;letter-spacing:0}.badge-warn{color:var(--secondary);border-color:var(--axis)}.card-rows{margin:0;display:flex;flex-direction:column;gap:6px}.card-rows>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px}.card-rows dt{color:var(--secondary)}.card-rows dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;display:flex;gap:8px;align-items:baseline}.when{color:var(--muted);font-weight:400;font-size:12px}.error{border:1px solid var(--border);border-left:3px solid #d03b3b;background:var(--surface);border-radius:10px;padding:12px 14px;font-size:13.5px}.foot{color:var(--muted);font-size:12.5px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 640px){.app{padding:20px 14px 48px}.chart{height:340px}.brand h1{font-size:24px}.panel{padding:16px}}
