@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=IBM+Plex+Mono:wght@400;600&display=swap";:root{--bg-deep: #0f161d;--bg-panel: #1a252f;--bg-panel-soft: #223240;--text-main: #ebf1f5;--text-muted: #9eb2c3;--accent: #ff8f3f;--accent-soft: #ffd3b1;--danger: #ff5c5c;--success: #59d38e;--warning: #f1c460;--info: #7eb9ff;--line: rgba(255, 255, 255, .14)}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,sans-serif;background:radial-gradient(circle at top right,#314456 0%,var(--bg-deep) 52%);color:var(--text-main);min-height:100vh}.shell{max-width:1500px;margin:0 auto;padding:1.5rem;display:grid;gap:1rem}.login-shell{display:grid;min-height:100vh;place-items:center}.login-card,.header-panel,.status-panel,.filters-panel,.table-panel,.cards-panel{background:linear-gradient(130deg,var(--bg-panel) 0%,var(--bg-panel-soft) 100%);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 30px #00000047}.login-card{width:min(520px,92vw);padding:1.5rem}h1,h2{margin:0;font-weight:700}p{margin:.35rem 0;color:var(--text-muted)}form{margin-top:1rem;display:grid;gap:.9rem}label{display:grid;gap:.35rem;font-size:.9rem;color:var(--text-muted)}input,select,button{font-family:inherit}input,select{border:1px solid var(--line);border-radius:10px;background:#10181f;color:var(--text-main);padding:.6rem .75rem}button{border:0;border-radius:10px;background:var(--accent);color:#1f130b;font-weight:700;padding:.68rem 1rem;cursor:pointer}button:hover{filter:brightness(1.06)}button.secondary{background:#354d60;color:var(--text-main)}button:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--danger)}.header-panel,.status-panel,.filters-panel,.table-panel,.cards-panel{padding:1rem}.top-row{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(300px,1fr))}.header-panel{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:100%}.header-actions{display:flex;gap:.6rem}.status-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem 1rem;align-items:start;min-height:100%}.chips{display:flex;flex-wrap:wrap;gap:.28rem}.chip{font-family:IBM Plex Mono,monospace;font-size:.62rem;line-height:1.1;border-radius:999px;padding:.12rem .34rem;border:1px solid transparent}.latest-run-meta{min-width:0}.latest-run-title{display:inline-flex;align-items:center;gap:.42rem}.loading-spinner{width:.82rem;height:.82rem;border-radius:999px;border:2px solid rgba(255,255,255,.25);border-top-color:var(--accent);animation:spin .8s linear infinite}.run-timeline{margin-top:.7rem;display:grid;gap:.6rem;min-width:0;outline:none}.run-timeline-controls{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.run-latest-chip{border:1px solid rgba(255,211,177,.4);background:#ff8f3f1f;color:var(--accent-soft);min-width:88px}.run-latest-chip.is-active{background:var(--accent);color:#1f130b}.run-zoom-controls{display:flex;gap:.4rem}.run-zoom-controls button{min-width:2.3rem}.run-overview-panel{position:relative}.run-overview{position:relative;display:grid;grid-template-columns:repeat(var(--bucket-count, 1),minmax(0,1fr));align-items:end;gap:.18rem;height:108px;padding:.5rem .42rem;border-radius:12px;border:1px solid var(--line);background:#0a11178a;overflow:hidden}.run-overview-bucket{align-self:end;width:100%;height:var(--bucket-height, 24%);border-radius:999px 999px 6px 6px;border:0;padding:0;opacity:.85}.run-overview-bucket:hover{opacity:1}.run-brush{position:absolute;inset-block:.42rem;display:grid;grid-template-columns:16px minmax(0,1fr) 16px;border:1px solid rgba(255,143,63,.95);border-radius:12px;background:#ff8f3f24;box-shadow:inset 0 0 0 1px #ffd3b124;pointer-events:none}.run-brush-window,.run-brush-handle{pointer-events:auto}.run-brush-window{cursor:grab}.run-brush-window:active{cursor:grabbing}.run-brush-handle{width:16px;border:0;padding:0;background:#ffd3b1d9}.run-brush-handle-start{border-radius:12px 0 0 12px}.run-brush-handle-end{border-radius:0 12px 12px 0}.run-detail-rail{overflow-x:auto;overflow-y:hidden;padding-bottom:.2rem;scrollbar-width:thin;scroll-snap-type:x proximity}.run-detail-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(28px,1fr);gap:.32rem;align-items:end}.run-detail-marker{background:transparent;color:var(--text-main);border:1px solid rgba(255,255,255,.12);border-radius:10px;min-height:58px;padding:.45rem .2rem .35rem;display:grid;justify-items:center;align-content:start;gap:.34rem;scroll-snap-align:center}.run-detail-marker-dot{width:10px;height:10px;border-radius:999px;background:currentColor;box-shadow:0 0 0 4px #ffffff0d}.run-detail-marker-label{font-size:.61rem;line-height:1.15;color:var(--text-muted);text-align:center;writing-mode:vertical-rl;transform:rotate(180deg)}.run-detail-marker-selected{border-color:#ff8f3fd9;background:#ff8f3f24}.run-detail-marker-latest{box-shadow:inset 0 -3px 0 var(--accent)}.run-detail-summary{display:flex;flex-wrap:wrap;gap:.55rem;font-size:.78rem;color:var(--text-muted)}.run-detail-summary strong{color:var(--text-main)}.run-detail-empty{margin:0;font-size:.8rem;color:var(--accent-soft)}.run-status-success{color:var(--success);background-color:#59d38e2e}.run-status-partial{color:var(--warning);background-color:#f1c4602e}.run-status-blocked{color:var(--danger);background-color:#ff5c5c2e}.run-status-stub{color:var(--info);background-color:#7eb9ff2e}.latest-run-badges{justify-self:start;justify-content:flex-start}@keyframes spin{to{transform:rotate(360deg)}}.chip-success{color:#102215;background:var(--success)}.chip-partial{color:#2a1f04;background:var(--warning)}.chip-blocked{color:#2c0707;background:var(--danger)}.chip-stub{color:#0f2133;background:var(--info)}.filters-panel{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:.8rem}.status-message{margin:0;color:var(--accent-soft)}.table-panel{overflow:auto}.cards-panel{display:grid;gap:.75rem}.table-note{margin:0 0 .7rem;font-size:.83rem;color:var(--accent-soft)}.bet-card-grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start}.bet-card{border:1px solid var(--line);border-radius:14px;background:#0a111775;padding:.85rem;display:grid;gap:.8rem}.bet-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.bet-card-header h3{margin:0}.bet-event{font-weight:600;color:var(--text-main)}.bet-meta{font-size:.82rem}.line-mismatch-badge{align-self:flex-start;border-radius:999px;border:1px solid rgba(241,196,96,.8);background:#f1c46024;color:#ffdb8a;font-size:.75rem;padding:.2rem .56rem;white-space:nowrap}.bet-chart{width:100%}.chart-note,.empty-chart-note{margin:.45rem 0 0;font-size:.8rem;color:var(--text-muted)}table{width:100%;border-collapse:collapse;min-width:1150px}th,td{padding:.62rem .52rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.86rem}th{font-family:IBM Plex Mono,monospace;color:var(--accent-soft);font-size:.77rem;text-transform:uppercase;letter-spacing:.03em}.best-over,.best-under{font-weight:700;color:#121212;background:#f6f0dd;border-radius:6px;padding:.06rem .22rem;display:inline-block}.odds-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.line-pill{margin-top:.2rem;display:inline-block;font-size:.72rem;border-radius:6px;padding:.08rem .28rem;font-family:IBM Plex Mono,monospace}.line-tone-0{color:#241500;background:#ffd08a}.line-tone-1{color:#041f09;background:#89dda2}.line-tone-2{color:#052038;background:#8bc7ff}.line-tone-3{color:#2b0a2d;background:#e9a4ff}.line-tone-4{color:#331205;background:#ffae93}.line-tone-5{color:#0d2533;background:#9fdbe8}.row-line-mismatch td{background:#f1c46014}@media(max-width:900px){.shell{padding:1rem}.top-row{grid-template-columns:1fr}.header-panel{flex-direction:column;align-items:flex-start}.status-panel{grid-template-columns:1fr}.latest-run-badges{justify-self:start;justify-content:flex-start}.run-timeline-controls{align-items:stretch}.run-zoom-controls{width:100%}.run-zoom-controls button{flex:1}.run-overview{height:92px}.run-detail-marker{min-height:52px}.filters-panel{grid-template-columns:1fr}.bet-card-header{flex-direction:column}.bet-card-grid{grid-template-columns:1fr}}
