:root{--bg:#0a0d12;--surface:#11151c;--surface-2:#161b24;--surface-3:#1c2230;--line:#1f2937;--line-2:#2a3344;--text:#e5e7eb;--text-2:#9ca3af;--text-3:#6b7280;--text-4:#4b5563;--blue:#2c7db4;--blue-2:#3a92cf;--blue-dim:rgba(44,125,180,.18);--navy:#1a1a2e;--gold:#b8860b;--gold-2:#d6a020;--green:#4caf50;--red:#ef4444;--amber:#f59e0b}*{box-sizing:border-box}#root,body,html{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}.mono{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-feature-settings:"tnum","zero"}button{cursor:pointer}button,input,select,textarea{font-family:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#3a4456}.app{display:grid;grid-template-rows:44px 1fr;height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:0 16px;gap:24px;flex-shrink:0}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px}.brand-mark{width:18px;height:18px;border-radius:3px;background:linear-gradient(135deg,var(--blue),var(--navy));position:relative;display:grid;place-items:center}.brand-mark:after{content:"";width:6px;height:6px;background:var(--gold);border-radius:1px}.brand-name{font-size:12px;font-weight:600;letter-spacing:.08em}.brand-name,.brand-sub{text-transform:uppercase}.brand-sub{font-size:10px;color:var(--text-3);letter-spacing:.12em;border-left:1px solid var(--line-2);padding-left:10px;margin-left:2px}.nav{display:flex;gap:2px;margin-left:auto;margin-right:auto}.nav button{background:transparent;border:0;color:var(--text-3);font-size:12px;font-weight:500;letter-spacing:.02em;padding:6px 12px;border-radius:4px;display:flex;align-items:center;gap:8px;position:relative}.nav button:hover{color:var(--text);background:var(--surface-2)}.nav button.active{color:var(--text);background:var(--surface-3)}.nav button .num{font-size:10px;color:var(--text-4);font-family:JetBrains Mono,monospace}.topbar-right{display:flex;align-items:center;gap:14px;font-size:11px;color:var(--text-3)}.live-dot{display:inline-flex;align-items:center;gap:6px}.live-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(76,175,80,.18)}.user-chip{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;background:var(--surface-2);border:1px solid var(--line);border-radius:16px;font-size:11px}.avatar{width:18px;height:18px;border-radius:50%;background:var(--blue);display:grid;place-items:center;font-size:9px;font-weight:600;color:#fff}.main{overflow:auto;padding:16px}.page{max-width:1280px;margin:0 auto}.page-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.page-head h1{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}.page-head .crumb{font-size:10px;color:var(--text-4);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}.page-head-meta{display:flex;gap:16px;font-size:11px;color:var(--text-3);align-items:center}.page-head-meta b{color:var(--text);font-weight:500}.panel{background:var(--surface);border:1px solid var(--line);border-radius:4px}.panel-head{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.panel-head .title{color:var(--text-2);font-weight:600}.panel-head .chip{font-size:10px;padding:2px 6px;border:1px solid var(--line-2);border-radius:2px;letter-spacing:.06em;color:var(--text-3)}.panel-head .right{margin-left:auto;display:flex;gap:8px;align-items:center}.btn{background:var(--surface-2);border:1px solid var(--line-2);color:var(--text);font-size:12px;padding:6px 10px;border-radius:3px;display:inline-flex;align-items:center;gap:6px;transition:background .12s}.btn:hover{background:var(--surface-3);border-color:#344056}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:500}.btn.primary:hover{background:var(--blue-2);border-color:var(--blue-2)}.btn.gold{background:transparent;border-color:var(--gold);color:var(--gold-2)}.btn.gold:hover{background:rgba(184,134,11,.1)}.btn.ghost{background:transparent;border-color:var(--line)}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{padding:4px 8px;font-size:11px}.kbd{font-family:JetBrains Mono,monospace;font-size:10px;padding:1px 4px;background:var(--surface);border:1px solid var(--line-2);border-radius:2px;color:var(--text-3)}.input,.select{background:var(--surface-2);border:1px solid var(--line);color:var(--text);font-size:13px;padding:6px 8px;border-radius:3px;width:100%;transition:border-color .12s,background .12s}.input:focus,.select:focus{outline:none;border-color:var(--blue);background:var(--surface-3)}.input.mono{font-family:JetBrains Mono,monospace;font-feature-settings:"tnum"}.label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);font-weight:500}.entry-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}.entry-cell{background:var(--surface);padding:14px 16px;display:flex;flex-direction:column;gap:10px;position:relative;transition:background .12s}.entry-cell:focus-within{background:var(--surface-2)}.entry-cell.focused{background:var(--surface-2)}.entry-cell .rank-badge{display:inline-flex;align-items:center;gap:8px}.rank-num{font-family:JetBrains Mono,monospace;font-weight:600;font-size:22px;color:var(--text);letter-spacing:-.02em}.rank-num .hash{color:var(--text-4);font-weight:400}.rank-tier{font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:2px 6px;border-radius:2px;font-weight:600}.tier-podium{background:rgba(184,134,11,.12);color:var(--gold-2);border:1px solid rgba(184,134,11,.3)}.tier-top{background:rgba(44,125,180,.14);color:var(--blue-2);border:1px solid rgba(44,125,180,.35)}.tier-cut{background:hsla(220,9%,46%,.14);color:var(--text-2);border:1px solid var(--line-2)}.entry-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.entry-field{display:flex;flex-direction:column;gap:4px}.entry-field .input{font-family:JetBrains Mono,monospace;font-size:14px;font-feature-settings:"tnum";text-align:right;padding:6px 10px}.entry-field.derived .input{background:transparent;color:var(--text-2);border-style:dashed;border-color:var(--line)}.entry-meta{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--text-4);letter-spacing:.05em;margin-top:2px;padding-top:8px;border-top:1px dashed var(--line)}.delta{font-family:JetBrains Mono,monospace;font-feature-settings:"tnum"}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.delta.flat{color:var(--text-3)}.statstrip{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:14px}.stat{background:var(--surface);padding:10px 14px;display:flex;flex-direction:column;gap:4px}.stat .lbl{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-4)}.stat .val{font-family:JetBrains Mono,monospace;font-feature-settings:"tnum";font-size:16px;font-weight:600;color:var(--text)}.stat .sub{font-size:10px;color:var(--text-3);font-family:JetBrains Mono,monospace}.spark-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-bottom:14px}.spark-card{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:14px;display:flex;flex-direction:column;gap:10px}.spark-card .head{display:flex;align-items:center;justify-content:space-between}.spark-card .head .pos{font-family:JetBrains Mono,monospace;font-size:18px;font-weight:600}.spark-card .head .pos .hash{color:var(--text-4);font-weight:400}.spark-card .body{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.spark-card .body .nums{display:flex;flex-direction:column;gap:2px}.spark-card .body .now{font-family:JetBrains Mono,monospace;font-feature-settings:"tnum";font-size:22px;font-weight:600;letter-spacing:-.01em}.spark-card .body .sbh{color:var(--text-3)}.spark-card .body .sbh,.spark-card .foot{font-size:10px;font-family:JetBrains Mono,monospace}.spark-card .foot{display:flex;justify-content:space-between;color:var(--text-4);padding-top:8px;border-top:1px dashed var(--line)}.tbl-wrap{overflow:auto}.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);font-weight:500;padding:8px 10px}.tbl tbody td,.tbl thead th{border-bottom:1px solid var(--line);white-space:nowrap}.tbl tbody td{padding:6px 10px;font-family:JetBrains Mono,monospace;font-feature-settings:"tnum"}.tbl tbody tr:hover{background:var(--surface-2)}.tbl td.label{font-family:Inter,sans-serif;color:var(--text-2)}.tbl td.num{text-align:right}.tbl td.label-sm{font-size:11px}.poll-row td{font-family:JetBrains Mono,monospace}.poll-row .time{color:var(--text)}.poll-row .ago{color:var(--text-4);font-size:10px}.poll-row.latest{background:rgba(44,125,180,.06)}.poll-row.latest td:first-child{border-left:2px solid var(--blue)}.chart-wrap{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:14px}.chart-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.seg{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:3px;padding:2px}.seg button{background:transparent;border:0;color:var(--text-3);font-size:11px;padding:4px 10px;border-radius:2px;font-family:JetBrains Mono,monospace}.seg button.active{background:var(--surface-3);color:var(--text)}.legend{display:flex;gap:14px;flex-wrap:wrap;padding:0 4px}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2);font-family:JetBrains Mono,monospace;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:2px 4px;border-radius:2px}.legend-item.muted{opacity:.4}.legend-swatch{width:10px;height:2px;border-radius:1px}.heatmap{display:grid;grid-template-columns:32px repeat(24,1fr);grid-gap:2px;gap:2px;font-family:JetBrains Mono,monospace;font-size:9px}.heatmap .h-col{text-align:center;color:var(--text-4);padding:2px 0}.heatmap .h-row{color:var(--text-3);padding:4px 6px 4px 0;text-align:right;align-self:center}.heatmap .h-cell{aspect-ratio:1;border-radius:2px;background:var(--surface-2);border:1px solid transparent;cursor:pointer;position:relative}.heatmap .h-cell.empty{background:var(--surface);border:1px solid var(--line)}.heatmap .h-cell:hover{border-color:var(--blue)}.scale-legend{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-3);font-family:JetBrains Mono,monospace}.scale-bar{height:8px;width:120px;border-radius:2px;background:linear-gradient(90deg,#11151c,#2c7db4 60%,#b8860b);border:1px solid var(--line)}.tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:2px 6px;border-radius:2px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;border:1px solid var(--line-2);background:var(--surface-2);color:var(--text-2)}.tag.holiday{color:#f87171;border-color:hsla(0,91%,71%,.4);background:hsla(0,91%,71%,.08)}.tag.event{color:var(--gold-2);border-color:rgba(184,134,11,.4);background:rgba(184,134,11,.08)}.tag.payday{color:#4ade80;border-color:rgba(74,222,128,.35);background:rgba(74,222,128,.08)}.tag.weekend{color:var(--blue-2);border-color:rgba(44,125,180,.4);background:rgba(44,125,180,.08)}.split-row{grid-template-columns:1.6fr 1fr;grid-gap:12px}.split-row,.two-col{display:grid;gap:12px}.two-col{grid-template-columns:1fr 1fr;grid-gap:12px}.muted{color:var(--text-3)}.dim{color:var(--text-4)}.divider-y{width:1px;background:var(--line);align-self:stretch}.toolbar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:12px;font-size:12px}.toolbar .sep{width:1px;height:16px;background:var(--line)}.daytype-pills{display:flex;gap:6px;flex-wrap:wrap}.pill{font-size:10px;padding:3px 8px;border:1px solid var(--line-2);border-radius:12px;background:transparent;color:var(--text-3);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;font-weight:500}.pill:hover{color:var(--text);border-color:#344056}.pill.active{background:var(--blue-dim);border-color:var(--blue);color:var(--blue-2)}.footer{margin-top:16px;padding:10px 12px;font-size:10px;color:var(--text-4);font-family:JetBrains Mono,monospace;border-top:1px solid var(--line)}.footer,.submit-dock{display:flex;justify-content:space-between}.submit-dock{align-items:center;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 4px 4px}.submit-summary{display:flex;gap:18px;font-size:11px;color:var(--text-3);font-family:JetBrains Mono,monospace}.submit-summary b{color:var(--text);font-weight:500}.cell-warn .input{border-color:rgba(245,158,11,.5)}.cell-warn .entry-meta{color:var(--amber)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:12px}.kpi{background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:4px}.kpi .lbl{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-4)}.kpi .val{font-size:18px;font-weight:600}.kpi .sub,.kpi .val{font-family:JetBrains Mono,monospace}.kpi .sub{font-size:10px;color:var(--text-3)}.toast-stack{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:var(--surface-2);border:1px solid var(--line-2);border-left:2px solid var(--green);padding:10px 14px;border-radius:3px;font-size:12px;display:flex;gap:10px;align-items:center;min-width:280px;animation:slideIn .2s ease}@keyframes slideIn{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}.toast .meta{font-size:10px;color:var(--text-3);font-family:JetBrains Mono,monospace}.login-shell{display:grid;place-items:center;height:100vh;background:radial-gradient(circle at 20% 0,rgba(44,125,180,.08),transparent 50%),radial-gradient(circle at 80% 100%,rgba(184,134,11,.06),transparent 50%),var(--bg)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:28px 32px;width:360px;display:flex;flex-direction:column;gap:16px}.login-card .brand{gap:12px}.login-card h1{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.login-card .subhead{font-size:11px;color:var(--text-3);letter-spacing:.05em}.login-form{gap:12px;margin-top:4px}.login-form,.login-form .field{display:flex;flex-direction:column}.login-form .field{gap:4px}.login-error{font-size:11px;color:var(--red);padding:6px 8px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3);border-radius:3px}.login-error,.login-foot{font-family:JetBrains Mono,monospace}.login-foot{font-size:10px;color:var(--text-4);text-align:center;border-top:1px dashed var(--line);padding-top:12px}.user-chip{position:relative}.user-chip button.signout{background:transparent;border:0;padding:0 4px;font-size:10px;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.user-chip button.signout:hover{color:var(--text)}