:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111315;--surface:#181b1f;--surface-2:#20242a;--line:#333941;--text:#eef2f4;--muted:#a8b0b8;--accent:#43c59e;--accent-2:#f2c94c;--danger:#ef6f6c}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:272px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .16s;display:grid}.app-shell.app-shell-collapsed{grid-template-columns:80px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);background:#15181c;height:100vh;padding:20px 16px;position:sticky;top:0;overflow:auto}.sidebar-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.brand-block{min-width:0}.brand-link{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{border:1px solid color-mix(in srgb, var(--accent), transparent 45%);background:color-mix(in srgb, var(--accent), transparent 88%);width:40px;height:40px;color:var(--accent);letter-spacing:0;border-radius:8px;place-items:center;font-weight:800;display:grid}.brand-name,.brand-subtitle{display:block}.brand-copy{min-width:0}.brand-name{font-weight:760}.brand-subtitle,.eyebrow,.metric-card span{color:var(--muted);font-size:12px}.sidebar-toggle{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--muted);border-radius:7px;flex:none;place-items:center;display:grid}.sidebar-toggle:hover,.sidebar-toggle:focus-visible{border-color:color-mix(in srgb, var(--accent), transparent 45%);background:var(--surface-2);color:var(--text);outline:none}.nav-groups{gap:22px;margin-top:28px;display:grid}.nav-group h2{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:700}.nav-links{gap:4px;display:grid}.nav-link,.entry-link{color:var(--muted);border:1px solid #0000;border-radius:7px;font-size:14px}.nav-link{align-items:center;gap:8px;padding:9px 10px;display:flex}.nav-link-compact{border:1px solid color-mix(in srgb, var(--accent), transparent 62%);width:34px;height:34px;color:var(--text);border-radius:7px;place-items:center;font-size:11px;font-weight:780;display:none}.app-shell-collapsed .sidebar{padding:20px 10px;overflow-x:hidden}.app-shell-collapsed .sidebar-header{justify-items:center;display:grid}.app-shell-collapsed .brand-link{justify-content:center}.app-shell-collapsed .brand-copy,.app-shell-collapsed .nav-group h2,.app-shell-collapsed .nav-link-label{display:none}.app-shell-collapsed .nav-groups{gap:12px;margin-top:20px}.app-shell-collapsed .nav-link{justify-content:center;padding:6px 0}.app-shell-collapsed .nav-link-compact{display:grid}.nav-link:hover,.entry-link:hover{border-color:var(--line);background:var(--surface-2);color:var(--text)}.content-shell{min-width:0}.topbar{z-index:1;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg), transparent 7%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.entry-links{flex-wrap:wrap;gap:8px;display:flex}.topbar-spacer{min-height:36px}.topbar-actions{align-items:center;gap:8px;display:flex}.entry-link{padding:7px 10px}.link-button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:7px;padding:7px 10px;font-size:14px}.link-button:hover{border-color:var(--line);background:var(--surface-2);color:var(--text)}.status-chip,.freshness-badge,.filter-bar span{border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:12px}.page{gap:20px;padding:28px 24px 40px;display:grid}.page-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.eyebrow{letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-weight:700}h1{letter-spacing:0;margin:0;font-size:34px;line-height:1.05}.freshness-badge{border-color:color-mix(in srgb, var(--accent), transparent 55%);color:var(--accent)}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.metric-card,.table-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px}.metric-card{gap:8px;min-height:84px;padding:14px;display:grid}.auth-page{align-content:center;justify-items:center;min-height:calc(100vh - 61px)}.auth-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:16px;width:min(100%,440px);padding:24px;display:grid}.auth-panel h1{font-size:28px}.auth-copy,.auth-error{color:var(--muted);margin:0;line-height:1.5}.auth-error{color:var(--danger)}.auth-actions{gap:10px;display:grid}.auth-actions form{display:contents}.auth-button{border:1px solid color-mix(in srgb, var(--accent), transparent 35%);background:var(--accent);color:#0b1712;border-radius:7px;justify-content:center;align-items:center;width:100%;min-height:42px;padding:10px 14px;font-weight:750;display:inline-flex}.auth-button.secondary{border-color:var(--line);background:var(--surface-2);color:var(--text)}.auth-button:disabled{cursor:not-allowed;opacity:.56}.metric-card strong{letter-spacing:0;font-size:20px}.table-panel{overflow:hidden}.filter-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:12px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:840px}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:12px}th{color:var(--muted);font-size:12px;font-weight:700}td{color:var(--muted);font-size:14px}@media (max-width:920px){.app-shell,.app-shell.app-shell-collapsed{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}.app-shell-collapsed .sidebar{padding:20px 16px}.app-shell-collapsed .sidebar-header{justify-items:initial;display:flex}.app-shell-collapsed .brand-link{justify-content:flex-start}.app-shell-collapsed .brand-copy,.app-shell-collapsed .nav-group h2,.app-shell-collapsed .nav-link-label{display:block}.app-shell-collapsed .nav-link{justify-content:flex-start;padding:9px 10px}.app-shell-collapsed .nav-link-compact,.sidebar-toggle{display:none}.nav-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar,.page-heading{flex-direction:column;align-items:flex-start}.metric-grid{grid-template-columns:1fr}}@media (max-width:560px){.nav-groups{grid-template-columns:1fr}h1{font-size:28px}.page{padding:22px 16px 32px}}.odds-filter-grid{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;display:grid}.odds-filter-grid label{color:var(--muted);gap:6px;font-size:12px;font-weight:600;display:grid}.odds-filter-grid input,.odds-filter-grid select,.odds-filter-actions button,.odds-filter-actions a{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;min-height:34px;padding:7px 10px}.odds-filter-actions{align-items:flex-end;gap:8px;display:flex}.odds-filter-actions button{cursor:pointer}.odds-filter-actions a{justify-content:center;align-items:center;display:inline-flex}.movement-summary{border-bottom:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:8px;padding:12px;font-size:12px;display:flex}.movement-summary span,.quality-chip{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:6px 10px}.quality-chip.warning{border-color:color-mix(in srgb, var(--accent-2), transparent 45%);color:var(--accent-2)}.movement-chart{border-bottom:1px solid var(--line);align-items:stretch;gap:8px;padding:12px;display:flex;overflow-x:auto}.movement-point{border:1px solid color-mix(in srgb, var(--accent), transparent 55%);background:color-mix(in srgb, var(--accent), transparent 90%);border-radius:8px;gap:4px;min-width:116px;padding:10px;display:grid}.movement-point span{color:var(--text);font-weight:760}.movement-point small,.movement-empty{color:var(--muted);font-size:12px}.movement-empty{padding:10px 0}.research-overview{grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);gap:12px;display:grid}.research-player,.context-item{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:14px}.research-player{align-content:start;gap:8px;display:grid}.research-player h2{letter-spacing:0;margin:0;font-size:24px;line-height:1.15}.research-player span,.context-item span,.context-item small{color:var(--muted);font-size:12px}.context-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.context-item{gap:8px;min-height:116px;display:grid}.context-item strong{color:var(--text);letter-spacing:0;font-size:18px}.research-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.compact-table{min-width:520px}.odds-workspace{min-width:0;padding:14px}.odds-stage{border:1px solid var(--line);background:#08090b;border-radius:8px;overflow:hidden}.odds-datebar,.odds-commandbar,.odds-marketbar{border-bottom:1px solid var(--line);background:#0d0f13;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.odds-date-tabs,.odds-live-meta,.odds-marketbar>div{align-items:center;gap:6px;min-width:0;display:flex}.odds-date-pill,.odds-live-meta span,.odds-market-pill,.odds-commandbar button,.odds-commandbar a{color:#9ca5b4;white-space:nowrap;background:#151922;border:1px solid #2a3039;border-radius:5px;padding:7px 9px;font-size:12px;line-height:1}.odds-date-pill.active,.odds-market-pill.active,.odds-commandbar button{color:var(--text);background:#252c36;border-color:#3a4654}.odds-sport-switcher{flex:none;position:relative}.odds-sport-switcher summary{min-width:96px;height:30px;color:var(--text);white-space:nowrap;cursor:pointer;background:#151922;border:1px solid #2a3039;border-radius:5px;grid-template-columns:34px auto 10px;align-items:center;gap:7px;padding:4px 6px;font-size:12px;font-weight:850;line-height:1;list-style:none;display:grid}.odds-sport-switcher summary::-webkit-details-marker{display:none}.odds-sport-switcher[open] summary,.odds-sport-switcher summary:hover,.odds-sport-switcher summary:focus-visible{background:#252c36;border-color:#3a4654;outline:none}.odds-sport-logo{place-items:center;width:34px;height:20px;display:grid}.odds-sport-logo img{object-fit:contain;width:auto;max-width:34px;height:20px;display:block}.odds-sport-caret{color:#7d8795;font-size:10px}.odds-sport-menu{z-index:4;background:#11151b;border:1px solid #303743;border-radius:6px;width:140px;padding:5px;display:grid;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 14px 34px #0000005c}.odds-sport-option{color:#a8b0b8;border-radius:5px;grid-template-columns:34px 1fr;align-items:center;gap:8px;min-height:32px;padding:5px 6px;font-size:12px;font-weight:800;display:grid}.odds-sport-option:hover,.odds-sport-option:focus-visible,.odds-sport-option.active{color:var(--text);background:#252c36;outline:none}.odds-unsupported-state{border-bottom:1px solid var(--line);color:#cbd5e1;background:#10141a;padding:9px 10px;font-size:13px}.odds-commandbar{justify-content:start;align-items:end;overflow-x:auto}.odds-search-field{width:100%;min-height:34px;color:var(--text);background:#090b0f;border:1px solid #2a3039;border-radius:5px;padding:0 10px;font-size:13px}.odds-search-field::placeholder{color:#707a89}.odds-commandbar label,.odds-commandbar .odds-filter-field{color:#7d8795;letter-spacing:.04em;text-transform:uppercase;flex:0 0 132px;gap:5px;font-size:11px;font-weight:750;display:grid}.odds-commandbar .odds-search-label{flex-basis:320px}.odds-commandbar .odds-filter-stack,.odds-commandbar .odds-filter-field.odds-filter-stack{flex-basis:224px}.odds-commandbar input,.odds-commandbar select{width:100%;min-height:34px;color:var(--text);background:#151922;border:1px solid #2a3039;border-radius:5px;padding:7px 8px}.odds-commandbar .odds-filter-lookup{background:#090b0f}.odds-filter-lookup::placeholder{color:#707a89}.odds-commandbar label:has(select){flex-basis:156px}.odds-commandbar .odds-filter-field:has(select){flex-basis:156px}.odds-commandbar label.odds-filter-stack:has(select){flex-basis:224px}.odds-commandbar .odds-filter-field.odds-filter-stack:has(select){flex-basis:224px}.odds-game-rail{border-bottom:1px solid var(--line);background:#0d0f13;gap:8px;padding:8px 10px 10px;display:flex;overflow-x:auto}.odds-game-card{background:#151922;border:1px solid #262c35;border-radius:6px;flex:0 0 196px;gap:4px;min-height:76px;padding:8px;display:grid;position:relative}.odds-game-card:hover{background:#1a1f28;border-color:#3a4654}.odds-game-card.active{border-color:color-mix(in srgb, var(--accent), transparent 36%);background:linear-gradient(180deg, color-mix(in srgb, var(--accent), transparent 88%), #151922 68%)}.odds-game-card strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25;overflow:hidden}.odds-game-card .odds-game-card-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25;display:block;overflow:hidden}.odds-game-card .odds-game-card-label-wide{display:none}.odds-game-card>span,.odds-game-card>div{color:#7d8795;justify-content:space-between;gap:6px;font-size:11px;display:flex}.odds-game-card>.odds-game-card-time{align-items:center}.odds-game-card-time span:first-child{color:#c2c8d1;font-weight:800}.odds-game-card small{color:#86efac;text-transform:uppercase;background:#22c55e26;border-radius:999px;padding:3px 5px;font-size:9px;font-weight:900;position:absolute;bottom:7px;right:7px}@media (min-width:1181px){.odds-game-card{flex-basis:216px}.odds-game-card .odds-game-card-label-compact{display:none}.odds-game-card .odds-game-card-label-wide{display:block}}.odds-signal-grid{border-bottom:1px solid var(--line);background:#090b0e;grid-template-columns:1.1fr .9fr .9fr .85fr;gap:8px;padding:9px 10px;display:grid}.odds-signal-card{background:linear-gradient(#14b8a61c,#14b8a608);border:1px solid #14b8a63d;border-radius:6px;gap:5px;min-height:76px;padding:9px;display:grid}.odds-signal-card.gold{background:linear-gradient(#eab3081c,#eab30808);border-color:#eab3083d}.odds-signal-card.danger{background:linear-gradient(#f871711a,#f8717108);border-color:#f871713d}.odds-signal-card span{color:#7dd3fc;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:900}.odds-signal-card.gold span{color:#fde047}.odds-signal-card.danger span{color:#fca5a5}.odds-signal-card strong{color:var(--text);font-size:14px}.odds-signal-card p{color:#a1aab8;margin:0;font-size:12px;line-height:1.35}.odds-marketbar{overflow-x:auto}.odds-matrix-wrap{background:#08090b;overflow-x:auto}.odds-matrix{width:max-content;min-width:min(100%,980px)}.odds-book-header,.odds-market-row{grid-template-columns:var(--odds-book-columns);display:grid}.odds-book-header{z-index:2;border-bottom:1px solid var(--line);background:#15171d;position:sticky;top:0}.odds-head-cell,.odds-book-cell{border-right:1px solid #ffffff09;min-width:0}.odds-head-cell{color:#7d8795;letter-spacing:.1em;text-transform:uppercase;align-items:end;min-height:64px;padding:8px;font-size:11px;font-weight:900;display:grid}.odds-book-cell{color:#8f98a7;text-align:center;justify-items:center;gap:3px;min-height:70px;padding:7px 5px;font-size:11px;line-height:1;display:grid}.odds-book-cell.empty{align-content:center}.odds-book-logo{width:36px;height:36px;color:var(--text);background:#0b0d10;border:1px solid #ffffff14;border-radius:6px;place-items:center;font-size:10px;font-weight:900;display:grid;overflow:hidden}.odds-book-logo img{object-fit:contain;max-width:34px;max-height:34px;display:block}.odds-book-cell small{color:#5eead4;font-size:9px}.odds-market-section{display:grid}.odds-market-heading{color:#cbd5e1;letter-spacing:.08em;text-transform:uppercase;background:#20242c;border-bottom:1px solid #ffffff0a;border-left:3px solid #2dd4bf;align-items:center;gap:8px;min-height:31px;padding:7px 9px;font-size:11px;font-weight:900;display:flex}.odds-market-heading span{color:#a1aab8;letter-spacing:0;text-transform:none;border:1px solid #ffffff14;border-radius:999px;padding:2px 6px;font-size:10px}.odds-market-row{background:#111318;min-height:46px}.odds-market-row:nth-child(odd){background:#15171c}.odds-market-row.selected{background:#0e74901f}.odds-selection-cell,.odds-line-cell,.odds-price-cell{color:#d1d5db;border-bottom:1px solid #ffffff0b;border-right:1px solid #ffffff06;justify-content:flex-start;align-items:center;min-width:0;padding:6px 8px;font-size:14px;display:flex}.odds-selection-cell{color:var(--text);justify-content:stretch;gap:2px;padding-left:9px;font-weight:850;display:grid}.odds-selection-cell strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.odds-selection-cell span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.odds-line-cell,.odds-price-cell.muted{color:#6b7280}.odds-price{color:#cbd5e1;text-align:center;border-radius:3px;min-width:56px;padding:7px 6px;line-height:1}.odds-price.best{color:#86efac;background:#166534;font-weight:950}.odds-price.edge{color:#a5f3fc;background:#0e7490;font-weight:950}.odds-price.stale{color:#fde047;box-shadow:inset 0 0 0 1px #eab3088c}.odds-empty-row{border-bottom:1px solid var(--line);color:var(--muted);padding:18px;font-size:13px}@media (max-width:1180px){.odds-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.odds-workspace{padding:10px}.odds-datebar,.odds-marketbar{flex-direction:column;align-items:flex-start}.odds-date-tabs{flex-wrap:wrap}.odds-sport-menu{width:152px}.odds-signal-grid{grid-template-columns:1fr}}@media (max-width:1180px){.odds-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.research-overview,.research-detail-grid{grid-template-columns:1fr}.context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.odds-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.context-grid{grid-template-columns:1fr}}@media (max-width:520px){.odds-filter-grid{grid-template-columns:1fr}.odds-filter-actions{flex-direction:column;align-items:stretch}}
