:root{--bg: #0a0b0e;--bg-grid: #0d0e12;--panel: #11131a;--panel-high: #151822;--border: #1e222d;--border-strong: #2a2f3c;--ink: #e9e7df;--ink-dim: #a3a8b2;--muted: #636871;--accent: #ffb347;--accent-soft: rgba(255, 179, 71, .14);--accent-edge: rgba(255, 179, 71, .4);--ok: #a9d6a9;--danger: #e88278;--font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius: 4px;--hairline: 1px solid var(--border)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{min-height:100vh;background-image:radial-gradient(ellipse at top,rgba(255,179,71,.04),transparent 55%),linear-gradient(var(--bg-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bg-grid) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px}#app{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0}.viewer{max-width:1180px;margin:0 auto;padding:2rem 1.5rem 4rem}.topbar{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:var(--hairline);padding-bottom:1.25rem;margin-bottom:1.5rem}.brand{display:flex;gap:1rem;align-items:center}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--accent-edge);background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-size:22px;border-radius:2px}.brand h1{font-size:1.35rem;font-weight:600;letter-spacing:-.01em}.subtitle{margin:2px 0 0;color:var(--muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.02em}.controls{display:flex;flex-wrap:wrap;gap:1.25rem 1.5rem;align-items:flex-end;padding:1.25rem;background:var(--panel);border:var(--hairline);border-radius:var(--radius);position:relative}.controls:before{content:"";position:absolute;top:-1px;left:-1px;width:12px;height:12px;border-top:1px solid var(--accent);border-left:1px solid var(--accent)}.control{display:flex;flex-direction:column;gap:.35rem;min-width:140px}.control.block{min-width:100%}.control>span{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.control select,.control input{appearance:none;background:var(--bg);color:var(--ink);border:1px solid var(--border-strong);border-radius:2px;padding:.5rem .7rem;font-family:var(--font-sans);font-size:13px;outline:none;transition:border-color .12s ease,box-shadow .12s ease;width:100%}.control select{padding-right:1.8rem;background-image:linear-gradient(45deg,transparent 50%,var(--ink-dim) 50%),linear-gradient(135deg,var(--ink-dim) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat}.control select:focus,.control input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.mode-switch{display:inline-flex;border:1px solid var(--border-strong);border-radius:2px;overflow:hidden;align-self:flex-end;height:34px}.mode-switch button{background:transparent;color:var(--ink-dim);border:0;padding:0 1rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .12s ease,color .12s ease}.mode-switch button:hover{color:var(--ink)}.mode-switch button+button{border-left:1px solid var(--border-strong)}.mode-switch button.active{background:var(--accent-soft);color:var(--accent)}button.ghost,a.ghost{background:transparent;color:var(--ink-dim);border:1px solid var(--border-strong);border-radius:2px;padding:0 .9rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .12s ease,border-color .12s ease;height:34px;line-height:34px;display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}button.ghost:hover,a.ghost:hover{color:var(--accent);border-color:var(--accent-edge);text-decoration:none}.actions{display:inline-flex;gap:.5rem;margin-left:auto;align-self:flex-end}button.primary{background:var(--accent);color:#1a120a;border:0;padding:.7rem 1.1rem;font-family:var(--font-sans);font-weight:600;font-size:13px;letter-spacing:.02em;cursor:pointer;border-radius:2px;transition:opacity .12s ease,transform .12s ease}button.primary:disabled{opacity:.5;cursor:wait}button.primary:not(:disabled):hover{transform:translateY(-1px)}.live{margin:1.5rem 0 .5rem;padding:1rem 1.25rem 1.25rem;background:var(--panel);border:var(--hairline);border-radius:var(--radius);position:relative}.live:before{content:"";position:absolute;top:-1px;right:-1px;width:12px;height:12px;border-top:1px solid var(--ok);border-right:1px solid var(--ok)}.live-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.live-header h2{font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-right:.25rem}.live-meta{margin-left:auto;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px #a9d6a999;animation:live-pulse 2s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:.4}50%{opacity:1}}table.grid.live-grid td.num:last-child{color:var(--ink-dim)}.summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin:1.5rem 0 1rem}.card{background:var(--panel);border:var(--hairline);padding:.9rem 1rem 1rem;border-radius:var(--radius);position:relative;overflow:hidden}.card-value{font-family:var(--font-mono);font-size:1.45rem;font-weight:500;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.card-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-top:.35rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card.total{border-color:var(--accent-edge);background:linear-gradient(180deg,var(--accent-soft),transparent 60%),var(--panel)}.card.total .card-value{color:var(--ok);font-size:1.6rem}table.grid{width:100%;border-collapse:collapse;background:var(--panel);border:var(--hairline);border-radius:var(--radius);overflow:hidden;font-variant-numeric:tabular-nums;margin-top:.5rem}table.grid th{background:var(--panel-high);color:var(--muted);font-family:var(--font-mono);font-weight:500;font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-align:left;padding:.65rem .9rem;border-bottom:1px solid var(--border-strong);white-space:nowrap}table.grid td{padding:.55rem .9rem;border-top:1px solid var(--border);font-size:13px}table.grid td.label{font-family:var(--font-mono);color:var(--ink);font-size:12.5px}table.grid td.date{color:var(--accent)}table.grid tbody tr:hover td{background:#ffffff05}table.grid .num{text-align:right;font-family:var(--font-mono)}table.grid .total-col{color:var(--ok);font-weight:500;border-left:1px solid var(--border-strong)}table.grid.daily{font-size:12.5px}table.grid.daily td.num{padding-left:.6rem;padding-right:.6rem}.status{color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;padding:2rem 0;text-align:center}.status.center{padding-top:20vh}.error{color:var(--danger);background:#e8827814;border:1px solid rgba(232,130,120,.3);border-radius:2px;padding:.65rem .85rem;font-family:var(--font-mono);font-size:12px;margin:1rem 0}.muted{color:var(--muted)}.refreshing{position:fixed;top:1rem;right:1rem;padding:.4rem .7rem;background:var(--panel-high);border:1px solid var(--accent-edge);border-radius:2px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);z-index:10;animation:refreshing-pulse 1.2s ease-in-out infinite}@keyframes refreshing-pulse{0%,to{opacity:.55}50%{opacity:1}}.login-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%);background:var(--panel);border:var(--hairline);border-radius:var(--radius);padding:2.5rem 2rem;display:flex;flex-direction:column;gap:1rem;position:relative}.login-card:before{content:"";position:absolute;top:-1px;left:-1px;width:18px;height:18px;border-top:1px solid var(--accent);border-left:1px solid var(--accent)}.login-card:after{content:"";position:absolute;bottom:-1px;right:-1px;width:18px;height:18px;border-bottom:1px solid var(--accent);border-right:1px solid var(--accent)}.login-mark{font-family:var(--font-mono);color:var(--accent);font-size:28px}.login-card h1{font-size:1.35rem;font-weight:600;letter-spacing:-.01em}.login-card p{font-size:13px}.login-card button.primary{margin-top:.5rem}@media(max-width:640px){.viewer{padding:1rem}.controls{flex-direction:column;align-items:stretch}.control{min-width:0}.mode-switch{width:100%}.mode-switch button{flex:1}button.ghost.reload{margin-left:0}.topbar{flex-direction:column;align-items:flex-start;gap:1rem}}
