@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap";:root,html[data-theme=dark]{--bg:#0a0e1f;--panel:#141828;--panel-2:#1c2034;--border:#2a2f44;--text:#fff;--text-dim:#8b92a6;--accent:#cdfa5c;--accent-fg:#0a0e1f;--good:#cdfa5c;--warn:#fbbf24;--bad:#f87171;--good-bg:#1c2a16;--warn-bg:#3b2a10;--bad-bg:#3a1818;--shadow:0 1px 2px #0000004d;--badge-engineer-bg:#1e3a5f;--badge-engineer-fg:#93c5fd;--badge-pm-bg:#4a2e6c;--badge-pm-fg:#d8b4fe;--badge-other-bg:#3a3f4a;--badge-other-fg:#cbd5e1;--badge-team_lead-bg:#2a3f1e;--badge-team_lead-fg:#cdfa5c;--badge-internal-bg:#4a3a1e;--badge-internal-fg:#fcd34d;--badge-dirty-bg:#4a3a1e;--badge-dirty-fg:#fcd34d;letter-spacing:-.005em;font-family:Oakes Grotesk,Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}html[data-theme=light]{--bg:#fff;--panel:#fff;--panel-2:#f6f7f9;--border:#e5e7eb;--text:#0a0e1f;--text-dim:#6b7280;--accent:#0a0e1f;--accent-fg:#fff;--good:#1a8a4e;--warn:#a35c00;--bad:#c52828;--good-bg:#e7f5ec;--warn-bg:#fbecd2;--bad-bg:#fadcdc;--shadow:0 1px 2px #0a0e1f0a, 0 1px 3px #0a0e1f0f;--badge-engineer-bg:#dfeaff;--badge-engineer-fg:#1d4691;--badge-pm-bg:#efe1fb;--badge-pm-fg:#5b2890;--badge-other-bg:#eef0f3;--badge-other-fg:#3a414e;--badge-team_lead-bg:#e6f5c4;--badge-team_lead-fg:#2f4d10;--badge-internal-bg:#fbeed2;--badge-internal-fg:#7a4a06;--badge-dirty-bg:#fbeed2;--badge-dirty-fg:#7a4a06}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);text-underline-offset:2px}a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);cursor:pointer;letter-spacing:0;border-radius:999px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s}button:hover{background:var(--border)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}button.primary:hover{filter:brightness(1.05)}input,select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 12px;font-family:inherit;font-size:13px}input:focus,select:focus{border-color:color-mix(in srgb, var(--accent) 70%, var(--border));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);outline:none}.layout{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:28px 18px}.sidebar h1{letter-spacing:-.02em;margin:0 0 28px;font-size:18px;font-weight:700}.sidebar nav{flex-direction:column;gap:2px;display:flex}.sidebar nav a{color:var(--text-dim);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500;text-decoration:none}.sidebar nav a:hover{color:var(--text);background:var(--panel-2)}.sidebar nav a.active{background:var(--accent);color:var(--accent-fg);font-weight:600}.main{max-width:1500px;padding:28px 36px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.toolbar .grow{flex:1}h2{letter-spacing:-.02em;margin:0 0 16px;font-size:28px;font-weight:700}h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin:28px 0 12px;font-size:12px;font-weight:600}.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:18px 20px}.card .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.card .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:6px;font-size:28px;font-weight:700}.card .sub{color:var(--text-dim);margin-top:4px;font-size:12px}table{border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--border);width:100%;box-shadow:var(--shadow);border-radius:12px;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:11px 14px;font-size:13px}th{background:var(--panel-2);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);font-size:11px;font-weight:600}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--panel-2)}tfoot td{background:var(--panel-2);border-top:2px solid var(--border);border-bottom:0;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .1s}th.sortable:hover{color:var(--text)}th.sortable.active{color:var(--accent)}.sort-ind{letter-spacing:0;vertical-align:middle;font-size:9px;display:inline-block}.badge{text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:2px 9px;font-size:10px;font-weight:600;display:inline-block}.badge.engineer{background:var(--badge-engineer-bg);color:var(--badge-engineer-fg)}.badge.pm{background:var(--badge-pm-bg);color:var(--badge-pm-fg)}.badge.team_lead,.badge.team\ lead{background:var(--badge-team_lead-bg);color:var(--badge-team_lead-fg)}.badge.other{background:var(--badge-other-bg);color:var(--badge-other-fg)}.badge.internal{background:var(--badge-internal-bg);color:var(--badge-internal-fg)}.badge.dirty{background:var(--badge-dirty-bg);color:var(--badge-dirty-fg)}.badge.saved{background:var(--good-bg);color:var(--good)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.dim{color:var(--text-dim)}.bar{background:var(--panel-2);border-radius:3px;height:6px;margin-top:4px;overflow:hidden}.bar>span{background:var(--accent);height:100%;display:block}.section{margin-top:24px}.split{grid-template-columns:1fr 1fr;gap:16px;display:grid}details{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;margin:12px 0;padding:14px 18px}details summary{cursor:pointer;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}details[open] summary{color:var(--text);margin-bottom:10px}.muted-block{color:var(--text-dim);font-size:13px;line-height:1.6}.form-row{align-items:center;gap:8px;margin:8px 0;display:flex}.form-row label{min-width:160px;color:var(--text-dim);font-size:13px}.alert{border-radius:6px;margin-bottom:16px;padding:10px 14px;font-size:13px}.alert.info{background:var(--panel-2);border:1px solid var(--border);color:var(--text)}.alert.warn{background:var(--warn-bg);border:1px solid var(--warn);color:var(--warn)}.alert.good{background:var(--good-bg);border:1px solid var(--good);color:var(--good)}.theme-toggle{text-align:left;border:1px solid var(--border);width:100%;color:var(--text-dim);letter-spacing:.05em;background:0 0;margin-top:20px;font-size:12px}.theme-toggle:hover{color:var(--text)}.sticky-bar{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:12px;margin:-8px 0 12px;padding:8px 0;display:flex;position:sticky;top:0}.toast{z-index:100;background:var(--panel);border:1px solid var(--border);border-radius:6px;min-width:200px;padding:10px 14px;font-size:13px;animation:.18s ease-out toast-in;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #0000002e}.toast.good{border-color:var(--good);color:var(--good)}.toast.bad{border-color:var(--bad);color:var(--bad)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}tr.dirty td{background:var(--warn-bg)}tr.dirty td:first-child{border-left:3px solid var(--warn);padding-left:9px}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.period-picker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.period-modes{border:1px solid var(--border);background:var(--panel);border-radius:999px;padding:2px;display:inline-flex;overflow:hidden}.period-modes button{color:var(--text-dim);background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500}.period-modes button:hover{background:var(--panel-2);color:var(--text)}.period-modes button.active{background:var(--accent);color:var(--accent-fg);font-weight:600}.period-modes button.active:hover{filter:brightness(1.05)}.period-nav{border:1px solid var(--border);background:var(--panel);border-radius:999px;align-items:center;gap:4px;padding:2px;display:inline-flex}.period-nav button{color:var(--text);background:0 0;border:0;border-radius:999px;padding:4px 10px;font-size:14px;line-height:1}.period-nav button:hover{background:var(--panel-2)}.period-label{text-align:center;font-variant-numeric:tabular-nums;min-width:200px;padding:0 8px;font-size:13px;font-weight:500}.period-today{text-transform:uppercase;letter-spacing:.08em;margin-left:4px;font-weight:600;color:var(--text-dim)!important;font-size:11px!important}.period-custom{align-items:center;gap:6px;display:inline-flex}@media (width<=900px){.layout{grid-template-columns:1fr;min-height:auto}.sidebar{z-index:50;border-right:0;border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;top:0}.sidebar h1{flex:none;margin:0}.sidebar nav{flex-flow:wrap;flex:100%;order:2;gap:4px}.sidebar nav a{padding:6px 10px;font-size:13px}.theme-toggle{flex:none;width:auto;margin-top:0;padding:6px 10px;font-size:12px}.main{max-width:100%;padding:14px 16px}h2{font-size:18px}h3{margin:16px 0 8px;font-size:14px}.toolbar{flex-wrap:wrap;gap:8px}.toolbar .grow{flex:100%;height:0}.cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.card{padding:12px}.card .value{font-size:20px}table{white-space:nowrap;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}th,td{padding:8px 10px;font-size:12px}.form-row{flex-wrap:wrap}.form-row label{min-width:100%}.sticky-bar{flex-wrap:wrap;gap:8px}.toast{min-width:auto;bottom:12px;left:12px;right:12px}details{padding:10px 12px}}@media (width<=480px){.sidebar nav a{padding:5px 8px;font-size:12px}.cards{grid-template-columns:1fr 1fr}.card .value{font-size:18px}th,td{padding:6px 8px}}.login-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--panel);border:1px solid var(--border);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:12px;padding:24px;display:flex}.login-card h1{margin:0}.login-card label{color:var(--text-dim);flex-direction:column;gap:4px;font-size:13px;display:flex}.login-card input{padding:8px 10px;font-size:14px}.sidebar-user{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}
