*{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11","tnum";background:#07090d;color:#f4f7fb;font-family:Inter Tight,Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45}code{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:#1a2330;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#243044}::-webkit-scrollbar-track{background:#0000}:root{--bg-0:#07090d;--bg-1:#0c1117;--bg-2:#131a23;--bg-3:#1a2330;--bg-4:#232f3e;--line:#1f2937;--line-2:#2a3645;--text-0:#f4f7fb;--text-1:#cbd5e1;--text-2:#8a98ac;--text-3:#5c6a7d;--text-4:#3e4a5c;--green:#2ee6a0;--green-soft:#2ee6a022;--green-line:#2ee6a055;--amber:#ffb547;--amber-soft:#ffb54722;--amber-line:#ffb54755;--red:#ff5470;--red-soft:#ff547022;--red-line:#ff547055;--blue:#5ea0ff;--blue-soft:#5ea0ff22;--blue-line:#5ea0ff55;--purple:#b48dff;--purple-soft:#b48dff22;--purple-line:#b48dff55;--violet:#b48dff;--violet-soft:#b48dff22;--rt-flat:#5ea0ff;--rt-hurdle:#ffb547;--rt-chase:#ff5470;--rt-nh-flat:#b48dff;--rt-aw:#2ee6a0;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:20px;--shadow-1:0 1px 0 #ffffff08 inset,0 8px 24px #00000044;--shadow-2:0 1px 0 #ffffff0a inset,0 18px 50px #0006;--glow-green:0 0 0 1px var(--green-line),0 0 24px -6px var(--green);--font-display:"Bebas Neue","Anton","Oswald",system-ui,sans-serif;--font-sans:"Inter Tight","Inter",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:56px;--s-10:72px;--background:var(--bg-0);--surface:var(--bg-0);--surface-container-lowest:#000;--surface-container-low:var(--bg-1);--surface-container:var(--bg-2);--surface-container-high:var(--bg-3);--surface-container-highest:var(--bg-4);--surface-bright:#1f2b49;--primary:var(--green);--primary-dim:#1eb780;--primary-container:#1aa372;--secondary:var(--blue);--tertiary:var(--amber);--error:var(--red);--error-dim:#c35;--on-surface:var(--text-0);--on-surface-variant:var(--text-2);--on-primary:#052017;--outline:var(--text-3);--outline-variant:var(--line-2);--glass-bg:#2ee6a00a;--glass-border:#2ee6a01a;--shadow-color:#0006;--surface-1:var(--bg-1);--surface-2:var(--bg-2);--surface-3:var(--bg-3);--surface-4:var(--bg-4);--border-subtle:#2ee6a012;--border-outline:#2ee6a024;--link-color:var(--green)}body:before{background:radial-gradient(1200px 600px at 80% -10%,#2ee6a014,#0000 60%),radial-gradient(900px 500px at -10% 110%,#5ea0ff10,#0000 60%);content:"";inset:0;pointer-events:none;position:fixed;z-index:0}.App{display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:1}.App-header{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#07090de0;border-bottom:1px solid #1f2937;border-bottom:1px solid var(--line);grid-column:1/-1;height:56px;justify-content:space-between;padding:0 24px;padding:0 var(--s-6);position:-webkit-sticky;position:sticky;top:0;z-index:30}.App-header,.App-header-left{align-items:center;display:flex}.App-header-left{gap:16px;gap:var(--s-4)}.brand-mark{background:linear-gradient(135deg,#2ee6a0,#1aa372);border-radius:8px;box-shadow:0 0 0 1px #2ee6a055,0 8px 20px -8px #2ee6a0aa;color:#06120c;display:grid;flex-shrink:0;font-family:Bebas Neue,Anton,Oswald,system-ui,sans-serif;font-family:var(--font-display);font-size:18px;height:34px;letter-spacing:.02em;place-items:center;position:relative;width:34px}.brand-mark:after{border:1px solid #ffffff30;border-radius:6px;content:"";inset:3px;position:absolute}.App-logo-link{display:flex;flex-shrink:0}.App-logo{display:none}.App-title{color:#f4f7fb;color:var(--text-0);font-family:Bebas Neue,Anton,Oswald,system-ui,sans-serif;font-family:var(--font-display);font-size:22px;letter-spacing:.04em;margin:0;white-space:nowrap}.App-title b{color:#2ee6a0;color:var(--green);font-weight:inherit}.App-header-center{align-items:center;color:#8a98ac;color:var(--text-2);display:flex;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-family:var(--font-mono);font-size:12px;gap:12px;gap:var(--s-3)}.live-dot{animation:live-pulse 1.6s ease-out infinite;background:#2ee6a0;background:var(--green);border-radius:50%;flex-shrink:0;height:8px;width:8px}@keyframes live-pulse{0%{box-shadow:0 0 0 0 #2ee6a0aa}70%{box-shadow:0 0 0 8px #2ee6a000}to{box-shadow:0 0 0 0 #2ee6a000}}.App-header-right{align-items:center;color:#8a98ac;color:var(--text-2);display:flex;font-size:12.5px;gap:16px;gap:var(--s-4)}.header-clock{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-family:var(--font-mono);letter-spacing:.02em}.header-clock,.logout-button{color:#cbd5e1;color:var(--text-1)}.logout-button{align-items:center;background:#0000;border:none;cursor:pointer;display:inline-flex;font-family:Inter Tight,Inter,system-ui,-apple-system,sans-serif;font-family:var(--font-sans);font-size:12.5px;font-weight:500;gap:6px;padding:0;transition:color .12s ease}.logout-button:hover{color:#f4f7fb;color:var(--text-0)}.app-layout{display:flex;flex:1 1;min-height:calc(100vh - 56px)}.app-main{flex:1 1;min-width:0;padding:32px 40px;padding:var(--s-7) var(--s-8)}.App-header--login-only{justify-content:center}@media (max-width:1180px){.App-title .long{display:none}}@media (max-width:1000px){.App-header-center{display:none}}@media (max-width:900px){.app-main{padding:20px;padding:var(--s-5) var(--s-5)}}@media (max-width:600px){.App-header{padding:0 16px;padding:0 var(--s-4)}.App-title{font-size:18px}}.race-grid{grid-gap:var(--s-4);display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.race-card{background:linear-gradient(180deg,#0e151d,#0a0f15);border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;gap:var(--s-3);overflow:hidden;padding:var(--s-6);position:relative;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.race-card:after{background:var(--rt-flat);background:var(--rt-color,var(--rt-flat));bottom:0;content:"";left:0;opacity:.7;position:absolute;top:0;width:3px}.race-card:hover{border-color:var(--line-2);box-shadow:0 12px 30px -16px #000c;transform:translateY(-2px)}.race-card.bet-yes:after{background:var(--green);box-shadow:0 0 14px var(--green);opacity:1}.race-card.bet-no:after{background:var(--red);opacity:1}.race-card-top{align-items:flex-start;display:flex;gap:var(--s-3);justify-content:space-between}.race-card-time-block{display:flex;flex-direction:column;gap:2px}.race-time-gmt-row{align-items:baseline;display:flex;gap:5px}.race-time-main{color:var(--green);font-family:var(--font-display);font-size:40px;letter-spacing:.02em;line-height:1}.race-time-gmt-label{font-size:13px;letter-spacing:.06em;text-transform:uppercase;vertical-align:.5em}.race-time-gmt-label,.race-time-local{color:var(--text-3);font-family:var(--font-mono)}.race-time-local{font-size:14px;margin-top:2px}.race-card-chips{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:6px}.race-type-badge{align-items:center;border:1px solid #0000;border-radius:6px;display:inline-flex;font-family:var(--font-sans);font-size:13px;font-weight:700;height:28px;letter-spacing:.1em;padding:0 11px;text-transform:uppercase;white-space:nowrap}.race-type-badge.type-flat{background:#5ea0ff18;border-color:#5ea0ff33;color:var(--rt-flat)}.race-type-badge.type-hurdle{background:#ffb54718;border-color:#ffb54733;color:var(--rt-hurdle)}.race-type-badge.type-chase{background:#ff547018;border-color:#ff547033;color:var(--rt-chase)}.race-type-badge.type-nh-flat{background:#b48dff18;border-color:#b48dff33;color:var(--rt-nh-flat)}.race-type-badge:not([class*=type-]){background:#0000;border-color:var(--line-2);color:var(--text-2)}.race-bet-chip{border:1px solid #0000;font-size:13px;font-weight:700;height:28px;letter-spacing:.06em;padding:0 11px;white-space:nowrap}.race-bet-chip.bet-status-yes{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}.race-bet-chip.bet-status-no{background:var(--red-soft);border-color:#ff547033;color:var(--red)}.race-card-mid{display:flex;flex:1 1;flex-direction:column;gap:6px}.race-name{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text-0);display:-webkit-box;font-size:20px;font-weight:600;line-height:1.35;min-height:2.7em;overflow:hidden}.race-course{align-items:center;color:var(--text-2);display:inline-flex;font-size:15px;font-weight:500;gap:5px}.race-course-icon{flex-shrink:0;height:15px;opacity:.6;width:15px}.race-card-bottom{display:flex;flex-direction:column;gap:var(--s-2)}.race-card-divider{background:var(--line);height:1px;margin:2px -4px}.race-card-stats{display:flex;flex-direction:column;gap:5px}.stat-row{align-items:center;display:flex;justify-content:space-between}.stat-label{color:var(--text-3);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.stat-value{color:var(--text-1);font-family:var(--font-mono);font-size:15px;font-weight:600}.stat-theory{color:var(--green)}.race-list-empty{align-items:center;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--text-2);display:flex;flex-direction:column;font-size:.95rem;gap:var(--s-4);justify-content:center;padding:80px var(--s-6)}@media (max-width:600px){.race-grid{gap:12px;grid-template-columns:1fr}}.date-picker-container{display:flex;flex-direction:column;gap:6px;position:relative;width:auto}.date-picker-label{color:var(--text-3);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.date-picker-label:empty{display:none}.date-picker-trigger{align-items:center;background:var(--bg-1);border:1px solid var(--line);border-radius:8px;color:var(--text-0);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:13px;font-weight:500;gap:8px;height:38px;min-width:140px;outline:none;padding:0 12px;transition:border-color .12s}.date-picker-trigger:hover{border-color:var(--line-2)}.date-picker-trigger.open{border-color:var(--green);box-shadow:0 0 0 3px #2ee6a022}.date-picker-trigger svg{color:var(--text-3);flex-shrink:0;margin-left:auto}.date-picker-popup{background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);left:0;overflow:hidden;position:absolute;top:calc(100% + 6px);width:250px;z-index:300}.dp-header{align-items:center;background:var(--bg-2);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:12px 14px}.dp-month-label{color:var(--text-0);font-family:var(--font-display);font-size:16px;letter-spacing:.04em}.dp-nav-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-2);cursor:pointer;display:flex;padding:4px 6px;transition:all .15s}.dp-nav-btn:hover{background:var(--bg-3);color:var(--green)}.dp-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr);padding:10px 8px}.dp-day-name{color:var(--text-3);font-size:.65rem;font-weight:700;letter-spacing:.05em;padding:4px 0;text-transform:uppercase}.dp-day,.dp-day-name{font-family:var(--font-sans);text-align:center}.dp-day{background:#0000;border:1px solid #0000;border-radius:7px;color:var(--text-0);cursor:pointer;font-size:.82rem;font-weight:500;padding:6px 0;transition:all .15s}.dp-day:hover:not(:disabled):not(.dp-day-selected){background:var(--bg-3);color:var(--green)}.dp-day-empty{pointer-events:none;visibility:hidden}.dp-day-today{border-color:var(--green-line);color:var(--green)}.dp-day-selected{background:var(--green);border-color:var(--green);color:#052017;font-weight:700}.dp-day:disabled{opacity:0;pointer-events:none}.dp-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:10px 14px}.dp-footer-btn{background:#0000;border:none;border-radius:6px;color:var(--green);cursor:pointer;font-family:var(--font-sans);font-size:.82rem;font-weight:600;padding:4px 8px;transition:background .15s}.dp-footer-btn:hover{background:var(--green-soft)}.calc-section-divider{align-items:center;display:flex;gap:12px;margin:8px 0 4px}.calc-divider-line{background:var(--line);flex:1 1;height:1px}.calc-divider-label{align-items:center;color:var(--text-3);display:flex;font-size:.68rem;font-weight:700;gap:7px;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.calc-divider-label svg{color:var(--green);height:13px;opacity:.75;width:13px}.calc-card-header{margin-bottom:18px}.calc-inputs{gap:14px}.calc-field,.calc-inputs{display:flex;flex-direction:column}.calc-field{gap:7px;min-width:0}.calc-inputs-row{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:1fr 2fr 1fr}@media (max-width:780px){.calc-inputs-row{grid-template-columns:1fr}}.calc-input-wrapper{align-items:center;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;display:flex;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease}.calc-input-wrapper:focus-within{border-color:var(--green-line);box-shadow:0 0 0 1px var(--green-soft)}.calc-input-affix{align-items:center;align-self:stretch;background:var(--bg-3);color:var(--text-3);display:flex;flex-shrink:0;font-size:.82rem;font-weight:600;padding:0 11px;-webkit-user-select:none;user-select:none}.calc-input-affix--left{border-right:1px solid var(--line)}.calc-input-affix--right{border-left:1px solid var(--line)}.calc-input{background:#0000;border:none;color:var(--text-0);flex:1 1;font-family:var(--font-sans);font-size:.875rem;font-weight:500;min-height:44px;min-width:0;outline:none;padding:10px 12px}input[type=date].calc-input{color-scheme:dark}input[type=number].calc-input{-moz-appearance:textfield}input[type=number].calc-input::-webkit-inner-spin-button,input[type=number].calc-input::-webkit-outer-spin-button{-webkit-appearance:none}.calc-date-range{align-items:center;display:flex;gap:8px}.calc-date-range .calc-input-wrapper{flex:1 1;min-width:0}.calc-date-arrow{color:var(--text-3);flex-shrink:0;font-size:1rem;font-weight:300}.calc-error{background:var(--red-soft);border:1px solid var(--red-line);border-radius:8px;color:var(--red);font-size:.78rem;line-height:1.4;margin-top:8px;padding:8px 12px}.calc-run-btn{align-items:center;background:var(--green-soft);border:1px solid var(--green-line);border-radius:10px;color:var(--green);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.9rem;font-weight:600;gap:9px;justify-content:center;letter-spacing:.02em;margin-top:6px;min-height:44px;padding:13px 24px;touch-action:manipulation;transition:all .2s ease;width:100%}.calc-run-btn:hover{background:#2ee6a029;border-color:#2ee6a07a;box-shadow:0 4px 20px #2ee6a014}.calc-run-btn.loading{cursor:not-allowed;opacity:.6;pointer-events:none}.calc-run-btn svg{flex-shrink:0;height:15px;width:15px}@keyframes calc-spin{to{transform:rotate(1turn)}}.calc-spinner{animation:calc-spin .7s linear infinite;border:2px solid var(--green-soft);border-radius:50%;border-top-color:var(--green);display:inline-block;flex-shrink:0;height:14px;width:14px}.calc-results{animation:calc-fadeIn .35s ease;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:14px;margin-top:20px;padding-top:20px}@keyframes calc-fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.calc-results-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.calc-results-title{color:var(--text-0);font-family:var(--font-sans);font-size:.875rem;font-weight:700}.calc-results-sub{color:var(--text-3);font-size:.72rem;margin-top:2px}.calc-reset-btn{background:#0000;border:1px solid var(--line-2);border-radius:6px;color:var(--text-2);cursor:pointer;flex-shrink:0;font-family:var(--font-sans);font-size:.73rem;min-height:30px;padding:5px 12px;touch-action:manipulation;transition:all .15s ease}.calc-reset-btn:hover{border-color:var(--text-3);color:var(--text-0)}.calc-chart-wrapper{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:16px 16px 12px}.calc-chart-title{color:var(--text-0);font-family:var(--font-sans);font-size:.875rem;font-weight:700;margin-bottom:1px}.calc-chart-sub{color:var(--text-3);font-size:.72rem;margin-bottom:10px}.calc-explainer{background:var(--bg-1);border:1px solid var(--line);border-radius:14px;overflow:hidden}.calc-explainer-toggle{align-items:center;background:#0000;border:none;color:var(--text-2);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:.82rem;font-weight:600;gap:8px;letter-spacing:.01em;min-height:44px;padding:14px 18px;text-align:left;touch-action:manipulation;transition:color .15s ease;width:100%}.calc-explainer-toggle:hover{color:var(--text-0)}.toggle-icon{color:var(--green);flex-shrink:0;height:14px;opacity:.75;width:14px}.calc-explainer-chevron{color:var(--text-3);flex-shrink:0;height:14px;margin-left:auto;transition:transform .2s ease;width:14px}.calc-explainer-toggle.open .calc-explainer-chevron{transform:rotate(180deg)}.calc-explainer-body{animation:calc-fadeIn .2s ease;border-top:1px solid var(--line);padding:0 18px 18px}.calc-explainer-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 1fr;padding-top:16px}@media (max-width:680px){.calc-explainer-grid{grid-template-columns:1fr}}.calc-explainer-section h4{color:var(--text-3);font-size:.67rem;font-weight:700;letter-spacing:.1em;margin-bottom:8px;text-transform:uppercase}.calc-explainer-section ul{display:flex;flex-direction:column;gap:5px;list-style:none}.calc-explainer-section li{color:var(--text-2);font-size:.78rem;line-height:1.55;padding-left:14px;position:relative}.calc-explainer-section li:before{color:var(--green);content:"·";font-size:1.3em;left:0;line-height:1.25;opacity:.6;position:absolute}.calc-explainer-section li strong{color:var(--text-0);font-weight:600}.calc-explainer-section li em{font-style:italic}.calc-explainer-section code{background:var(--green-soft);border-radius:4px;color:var(--green);font-family:var(--font-mono);font-size:.75rem;padding:1px 5px}.calc-cache-notice{align-items:center;background:var(--amber-soft);border:1px solid var(--amber-line);border-radius:8px;color:var(--amber);display:flex;font-size:.78rem;gap:10px;line-height:1.4;padding:10px 14px}.calc-cache-notice svg{flex-shrink:0;height:13px;opacity:.8;width:13px}.calc-cache-notice-text{flex:1 1}.calc-cache-rerun-btn{background:#0000;border:1px solid var(--amber-line);border-radius:6px;color:var(--amber);cursor:pointer;flex-shrink:0;font-family:var(--font-sans);font-size:.72rem;font-weight:600;padding:4px 11px;touch-action:manipulation;transition:all .15s ease;white-space:nowrap}.calc-cache-rerun-btn:hover{background:var(--amber-soft)}.hist-count-badge{background:var(--green-soft);border-radius:999px;color:var(--green);font-size:.66rem;font-weight:700;margin-left:4px;padding:1px 7px}.calc-history-table-wrap{-webkit-overflow-scrolling:touch;margin-top:14px;overflow-x:auto}.calc-history-table{border-collapse:collapse;font-size:.78rem;width:100%}.calc-history-table th{border-bottom:1px solid var(--line);color:var(--text-3);font-size:.63rem;font-weight:700;letter-spacing:.08em;padding:8px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}.calc-history-table th.th-r{text-align:right}.calc-history-table td{border-bottom:1px solid var(--line);color:var(--text-2);padding:10px 12px;vertical-align:middle;white-space:nowrap}.calc-history-table tbody tr:last-child td{border-bottom:none}.calc-history-table tbody tr:hover td{background:#ffffff04}.calc-history-table td.td-r{text-align:right}.hist-date{color:var(--text-0);font-size:.75rem}.hist-time{color:var(--text-3);font-size:.68rem}.hist-chips{align-items:center;display:flex;flex-wrap:nowrap;gap:4px}.hist-chip{align-items:center;background:var(--bg-3);border:1px solid var(--line-2);border-radius:999px;color:var(--text-2);display:inline-flex;font-size:.67rem;font-weight:500;gap:3px;padding:2px 7px;white-space:nowrap}.hist-chip-dot{border-radius:50%;flex-shrink:0;height:5px;width:5px}.hist-pos{color:var(--green)}.hist-neg,.hist-pos{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.hist-neg{color:var(--red)}.hist-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes hist-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.hist-skel{animation:hist-shimmer 1.5s ease infinite;background:linear-gradient(90deg,var(--bg-3) 25%,var(--bg-4) 50%,var(--bg-3) 75%);background-size:200% 100%;border-radius:4px;display:inline-block;height:11px}.hist-skel--sm{width:30px}.hist-skel--md{width:48px}.hist-skel--lg{width:60px}.hist-err{align-items:center;color:var(--red);cursor:help;display:inline-flex;font-size:.75rem;font-weight:500;gap:5px;position:relative}.hist-err svg{flex-shrink:0;height:12px;width:12px}.hist-err-tip{background:var(--bg-3);border:1px solid var(--red-line);border-radius:8px;bottom:calc(100% + 8px);box-shadow:var(--shadow-2);color:var(--text-2);display:none;font-size:.72rem;font-weight:400;left:0;line-height:1.5;padding:9px 12px;pointer-events:none;position:absolute;white-space:normal;width:240px;z-index:20}.hist-err:hover .hist-err-tip{display:block}.hist-load-btn{background:var(--green-soft);border:1px solid var(--green-line);border-radius:6px;color:var(--green);cursor:pointer;font-family:var(--font-sans);font-size:.72rem;font-weight:600;min-height:30px;padding:5px 12px;touch-action:manipulation;transition:all .15s ease;white-space:nowrap}.hist-load-btn:hover{background:#2ee6a024;border-color:#2ee6a061}.hist-load-btn:disabled{cursor:not-allowed;opacity:.35;pointer-events:none}.hist-running{align-items:center;display:inline-flex;gap:5px}.calc-history-empty{color:var(--text-2);padding:36px 20px;text-align:center}.calc-history-empty svg{color:var(--text-3);display:block;height:32px;margin:0 auto 10px;opacity:.45;width:32px}.calc-history-empty strong{color:var(--text-0);display:block;font-size:.82rem;font-weight:600;margin-bottom:4px}.calc-history-empty span{color:var(--text-3);font-size:.73rem}.theories-tab{display:flex;flex-direction:column;gap:16px;width:100%}.theories-parent-selector{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;display:inline-flex;gap:6px;margin-bottom:var(--s-2);padding:4px}.theory-parent-pill{align-items:center;background:#0000;border:1px solid #0000;border-radius:7px;color:var(--text-2);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:12.5px;font-weight:500;gap:8px;padding:7px 12px;transition:all .15s ease}.theory-parent-pill.active,.theory-parent-pill:hover{background:var(--bg-2);color:var(--text-0)}.theory-parent-pill.active{border-color:var(--line-2)}.theory-parent-dot{border-radius:50%;flex-shrink:0;height:7px;width:7px}.theory-parent-count{color:var(--text-3);font-family:var(--font-mono);font-size:11px}.theories-filter-bar{align-items:center;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:var(--s-5);margin-bottom:var(--s-5);padding:var(--s-3) var(--s-4)}.theories-filter-label{color:var(--text-3);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}.theories-chips{display:flex;flex-wrap:wrap;gap:6px}.theory-chip{background:#0000;border:1px solid var(--line-2);color:var(--text-1);font-weight:500;gap:6px;transition:all .15s ease}.theory-chip:hover{border-color:var(--text-3);color:var(--text-0)}.theory-chip.active{background:var(--bg-2);border-color:var(--line-2);color:var(--text-0)}.theory-chip-count{font-family:var(--font-mono);font-size:10.5px;opacity:.7}.theories-filter-group{align-items:center;display:flex;gap:8px}.theories-filter-divider{background:var(--line);flex-shrink:0;height:24px;margin:0 4px;width:1px}.theories-toggle{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;display:inline-flex;gap:2px;padding:3px}.theories-toggle-btn{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:5px;color:var(--text-2);cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:500;padding:5px 12px;transition:background .12s,color .12s}.theories-toggle-btn:hover:not(.active){background:var(--bg-2);color:var(--text-0)}.theories-toggle-btn.active{background:var(--green);color:#052017;font-weight:700}.theories-kpi-row{grid-gap:var(--s-3);display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:0}.theories-kpi-card{background:linear-gradient(180deg,#10171f,#0a0f15);border:1px solid var(--line);border-radius:var(--radius-lg);min-height:130px;overflow:hidden;padding:var(--s-5);position:relative;transition:box-shadow .2s ease}.theories-kpi-card:hover{box-shadow:var(--shadow-1)}.theories-kpi-card:before{background:var(--green);background:var(--kpi-accent,var(--green));bottom:0;box-shadow:0 0 14px -2px var(--green);box-shadow:0 0 14px -2px var(--kpi-accent,var(--green));content:"";left:0;position:absolute;top:0;width:3px}.theories-kpi-card--primary{--kpi-accent:var(--green)}.theories-kpi-card--secondary{--kpi-accent:var(--blue)}.theories-kpi-card--tertiary{--kpi-accent:var(--amber)}.theories-kpi-card--error{--kpi-accent:var(--red)}.theories-kpi-top{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:10px}.theories-kpi-label{align-items:center;color:var(--text-3);display:flex;font-size:10px;font-weight:700;gap:6px;letter-spacing:.2em;text-transform:uppercase}.theories-kpi-value{color:var(--text-0);font-family:var(--font-display);font-size:52px;letter-spacing:.01em;line-height:1;margin-top:14px}.theories-kpi-value--positive{color:var(--green)}.theories-kpi-value--negative{color:var(--red)}.theories-kpi-unit{color:var(--text-2);font-family:var(--font-sans);font-size:16px;font-weight:600;letter-spacing:0}.theories-kpi-bar{background:var(--bg-2);border-radius:999px;height:4px;margin-bottom:8px;overflow:hidden;width:100%}.theories-kpi-bar-fill{border-radius:999px;height:100%;transition:width .5s ease}.theories-kpi-bar-fill--primary{background:var(--green)}.theories-kpi-bar-fill--tertiary{background:var(--amber)}.theories-kpi-sub{color:var(--text-2);font-size:11.5px;margin-top:10px}.theories-charts-row{grid-gap:var(--s-3);align-items:start;display:grid;gap:var(--s-3);grid-template-columns:1fr 380px}@media (max-width:1100px){.theories-charts-row{grid-template-columns:1fr}}.theories-chart-card{background:linear-gradient(180deg,var(--bg-1) 0,#0a0f15 100%);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden}.theories-chart-header{border-bottom:1px solid var(--line);padding:var(--s-4) var(--s-5)}.theories-chart-header-top{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.theories-chart-toggles{align-items:center;display:flex;flex-shrink:0;gap:8px}.theories-chart-toggle{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;display:inline-flex;gap:2px;padding:3px}.theories-chart-title{color:var(--text-0);font-size:13.5px;font-weight:600;margin-bottom:2px}.theories-chart-subtitle{color:var(--text-2);font-size:12px}.theories-chart-card .js-plotly-plot .plotly .modebar{background:#091328d9!important;border-radius:8px}.theories-chart-card .js-plotly-plot .plotly .modebar-btn{color:var(--text-2)!important}.theories-donut-legend{padding:0 4px 4px}.theories-donut-legend-table{border-collapse:collapse;font-size:.78rem;width:100%}.theories-donut-legend-table tbody tr{border-top:1px solid #1f293730}.theories-donut-legend-table tbody tr:first-child{border-top:none}.theories-donut-legend-table td{padding:5px 4px;vertical-align:middle}.theories-donut-legend-name{align-items:center;color:var(--text-2);display:flex;gap:8px;width:100%}.theories-donut-legend-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.theories-donut-legend-count{font-feature-settings:"tnum";color:var(--text-0);font-variant-numeric:tabular-nums;font-weight:600;padding-right:8px;text-align:right;white-space:nowrap}.theories-donut-legend-pct{font-feature-settings:"tnum";color:var(--text-2);font-variant-numeric:tabular-nums;min-width:36px;text-align:right;white-space:nowrap}.theories-signal-card-header-row{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.theories-signal-avg{color:var(--text-2);font-size:.78rem;margin-top:6px}.theories-signal-avg strong{color:var(--blue);font-weight:700}.theories-field-buckets{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-top:16px}.theories-field-bucket{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:12px 8px;text-align:center;transition:border-color .2s ease}.theories-field-bucket.dominant{background:var(--blue-soft);border-color:var(--blue)}.theories-field-bucket-pct{color:var(--text-0);font-family:var(--font-display);font-size:40px;line-height:1;margin-bottom:4px}.theories-field-bucket-pct span{color:var(--text-2);font-family:var(--font-sans);font-size:14px;font-weight:600}.theories-field-bucket-label{color:var(--text-3);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.theories-field-bucket-winbar{background:var(--green-soft);border-radius:2px;height:4px;margin-top:8px;overflow:hidden;width:100%}.theories-field-bucket-winbar-fill{background:var(--green);border-radius:2px;height:100%;transition:width .4s ease}.theories-field-bucket-winlabel{color:var(--green);font-size:.62rem;font-weight:700;letter-spacing:.04em;margin-top:4px;opacity:.8}.info-icon{align-items:center;border:1px solid var(--line-2);border-radius:50%;color:var(--text-3);cursor:default;display:inline-flex;flex-shrink:0;font-size:9px;height:14px;justify-content:center;margin-left:4px;position:relative;vertical-align:middle;width:14px}.info-icon svg{display:block;height:12px;width:12px}.info-icon:focus,.info-icon:hover{color:var(--text-2);outline:none}.info-icon:after{background:var(--bg-3);border:1px solid var(--line-2);border-radius:8px;bottom:calc(100% + 7px);box-shadow:var(--shadow-2);color:var(--text-2);content:attr(data-tooltip);font-size:.72rem;left:50%;letter-spacing:normal;line-height:1.5;opacity:0;padding:8px 11px;pointer-events:none;position:absolute;text-align:left;text-transform:none;transform:translateX(-50%);transition:opacity .15s ease;white-space:normal;width:220px;z-index:40}.info-icon:focus:after,.info-icon:hover:after{opacity:1}.theories-loading{align-items:center;display:flex;justify-content:center;min-height:300px}.theories-spinner{animation:spin 1s linear infinite;border-top:3px solid var(--green-soft);border:3px solid var(--green-soft);border-radius:50%;border-top-color:var(--green);height:40px;width:40px}.theories-error{background:var(--bg-1);border-radius:var(--radius-lg);padding:20px}.theories-empty,.theories-error{color:var(--text-2);text-align:center}.theories-empty{font-size:.875rem;padding:40px 20px}.theory-ticker{align-items:center;background:linear-gradient(90deg,#0c1117,#0a0f15);border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:var(--s-3);margin-bottom:var(--s-5);overflow:hidden;padding:10px 14px;position:relative}.theory-ticker-label{align-items:center;border-right:1px solid var(--line);color:var(--green);display:flex;flex-shrink:0;font-size:10px;font-weight:700;gap:6px;letter-spacing:.2em;padding-right:var(--s-3);text-transform:uppercase;white-space:nowrap}.theory-ticker-viewport{flex:1 1;-webkit-mask-image:linear-gradient(90deg,#0000,#000 40px,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#0000,#000 40px,#000 calc(100% - 40px),#0000);min-width:0;overflow:hidden;position:relative}.theory-ticker-track{display:flex;font-family:var(--font-mono);font-size:12.5px;gap:var(--s-5);white-space:nowrap;width:-webkit-max-content;width:max-content}.theory-ticker-track--scroll{animation:theory-ticker-scroll 28s linear infinite}@keyframes theory-ticker-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.theory-ticker-track--scroll{animation:none}}.theory-chip{align-items:center;border:1px solid #0000;border-radius:6px;cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:11px;font-weight:600;gap:8px;height:24px;line-height:1;padding:0 10px;transition:opacity .2s ease,transform .15s ease;white-space:nowrap}.theory-chip:hover{opacity:1!important;transform:translateY(-1px)}.theory-chip:focus-visible{outline:2px solid currentColor;outline-offset:2px}.theory-chip-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:6px;width:6px}.theory-chip-time{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;margin-left:2px;opacity:.7}.race-list-main{flex:1 1;min-width:0}.race-list-hero{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--s-6);justify-content:space-between;margin-bottom:var(--s-6)}.race-list-hero-text{flex-shrink:0}.race-list-title{color:var(--text-0);font-family:var(--font-display);font-size:clamp(52px,5vw,72px);letter-spacing:.02em;line-height:.92}.race-list-title .accent{color:var(--green)}.race-list-subtitle{color:var(--text-2);font-size:14px;margin-top:var(--s-3);max-width:520px}.race-list-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.input-prefix{align-items:center;background:var(--bg-1);border:1px solid var(--line);border-radius:8px;display:flex;height:38px;padding-left:12px;transition:border-color .12s}.input-prefix:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #2ee6a022}.input-prefix .pfx{color:var(--text-3);flex-shrink:0;margin-right:8px}.input-prefix .inner-input{background:#0000;border:0;color:var(--text-0);font-family:var(--font-sans);font-size:13px;height:100%;min-width:120px;outline:none;padding:0}.input-prefix .inner-input::-webkit-calendar-picker-indicator{filter:invert(.6)}input[type=date].inner-input{color-scheme:dark}.filter-select{appearance:none;-webkit-appearance:none;background:var(--bg-1);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235c6a7d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border:1px solid var(--line);border-radius:8px;color:var(--text-0);cursor:pointer;font-family:var(--font-sans);font-size:13px;height:38px;min-width:130px;outline:none;padding:0 32px 0 12px;transition:border-color .12s}.filter-select:focus{border-color:var(--green);box-shadow:0 0 0 3px #2ee6a022}.filter-select option{background:var(--bg-3);color:var(--text-0)}@media (max-width:900px){.race-list-hero{align-items:flex-start;flex-direction:column;margin-bottom:var(--s-5)}.race-list-title{font-size:52px}}.horse-info-container{background:linear-gradient(180deg,var(--bg-1) 0,#0a0f15 100%);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden;width:100%}.horse-info-title{align-items:center;border-bottom:1px solid var(--line);color:var(--text-0);display:flex;font-size:13.5px;font-weight:600;justify-content:space-between;padding:var(--s-4) var(--s-5)}.horse-info-meta{color:var(--text-3);font-size:12px;font-weight:400}.horse-table-scroll{overflow-x:auto;width:100%}.horse-table-scroll::-webkit-scrollbar{height:4px}.horse-table-scroll::-webkit-scrollbar-track{background:#0000}.horse-table-scroll::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:2px}.horse-info-container table{border-collapse:initial;border-spacing:0;font-size:13px;width:100%}.horse-info-container thead tr th{background:#0a0f15;border-bottom:1px solid var(--line);color:var(--text-3);font-size:10px;font-weight:600;letter-spacing:.18em;padding:12px 14px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap}.horse-info-container thead tr th.col-right{text-align:right}.horse-info-container tbody tr td{border-bottom:1px solid var(--line);color:var(--text-1);padding:14px;transition:background .15s ease;vertical-align:middle}.horse-info-container tbody tr:hover td{background:#ffffff04}.horse-info-container tbody tr:last-child td{border-bottom:0}.horse-info-container td.col-right{text-align:right}.color-header{padding:8px!important}.color-cell,.color-header{max-width:36px;min-width:36px;width:36px}.color-cell{padding:14px 8px!important;text-align:center}.horse-color-indicator{border-radius:3px;display:inline-block;height:10px;width:10px}.result-badge{border-radius:6px;display:inline-grid;font-family:var(--font-display);font-size:14px;height:24px;letter-spacing:.04em;place-items:center;width:24px}.result-badge.result-winner{background:linear-gradient(180deg,#ffd56a,#c79829);box-shadow:0 0 0 1px #ffd56a55;color:#2a1d05}.result-badge:not(.result-winner):not(.result-none){background:var(--bg-2);color:var(--text-2)}.result-badge.result-none{background:#0000;color:var(--text-3)}.horse-name-cell{color:var(--text-0);font-weight:600;white-space:nowrap}.person-name{color:var(--text-1);font-size:13px;font-weight:500;margin:0;white-space:nowrap}.col-trend{min-width:140px;padding:8px 14px!important;width:140px}.col-sub{color:var(--text-3);font-size:9px;font-weight:400;letter-spacing:.05em}.odds-trend-sparkline{display:block;overflow:visible}.trend-empty{color:var(--text-4);font-size:13px}.odds-delta{font-family:var(--font-mono);font-size:12.5px;font-weight:600}.odds-delta.odds-shortening{color:var(--green)}.odds-delta.odds-drifting{color:var(--red)}.odds-delta.odds-neutral,.time-value{color:var(--text-2)}.time-value{font-family:var(--font-mono);font-size:12.5px}.horse-row-hidden{opacity:.3}.horse-row-hidden:hover{opacity:.5}.race-graph-container{background:linear-gradient(180deg,var(--bg-1) 0,#0a0f15 100%);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden;width:100%}.race-graph-header{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:var(--s-4) var(--s-5)}.race-graph-title{align-items:center;color:var(--text-0);display:flex;font-size:13.5px;font-weight:600;gap:8px;margin:0}.race-graph-refresh-btn{flex-shrink:0}.race-graph-refresh-btn:disabled{cursor:not-allowed;opacity:.5}.race-detail-page{display:flex;flex-direction:column;gap:var(--s-5);margin:0 auto;max-width:1440px;width:100%}.race-back-link{align-items:center;color:var(--text-2);display:inline-flex;font-family:var(--font-mono);font-size:12px;gap:6px;margin-bottom:var(--s-4);text-decoration:none;transition:color .15s ease}.race-back-link:hover{color:var(--text-0)}.race-back-date{opacity:.7}.race-hero{border-bottom:1px solid var(--line);margin-bottom:var(--s-5);padding-bottom:var(--s-7);position:relative}.race-chips{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:var(--s-3)}.race-type-chip{align-items:center;border:1px solid #0000;border-radius:6px;display:inline-flex;font-family:var(--font-sans);font-size:10.5px;font-weight:700;height:22px;letter-spacing:.1em;padding:0 8px;text-transform:uppercase;white-space:nowrap}.race-type-chip.chip-flat{background:#5ea0ff18;border-color:#5ea0ff33;color:var(--rt-flat)}.race-type-chip.chip-hurdle{background:#ffb54718;border-color:#ffb54733;color:var(--rt-hurdle)}.race-type-chip.chip-chase{background:#ff547018;border-color:#ff547033;color:var(--rt-chase)}.race-type-chip.chip-nh-flat{background:#b48dff18;border-color:#b48dff33;color:var(--rt-nh-flat)}.race-type-chip.chip-default{background:#0000;border-color:var(--line-2);color:var(--text-2)}.race-time-chip{border:1px solid var(--line-2);border-radius:6px;color:var(--text-2);font-family:var(--font-sans);font-weight:500;gap:5px}.race-bet-chip,.race-time-chip{align-items:center;display:inline-flex;font-size:11px;height:22px;padding:0 8px}.race-bet-chip{background:var(--green-soft);border:1px solid var(--green-line);border-radius:6px;color:var(--green);font-weight:600}.race-headline{word-wrap:break-word;color:var(--text-0);font-family:var(--font-display);font-size:clamp(36px,5vw,64px);letter-spacing:.02em;line-height:.95;max-width:min(900px,calc(100% - 320px))}.race-meta{align-items:center;color:var(--text-2);display:flex;font-size:13px;font-weight:500;gap:6px;margin-top:var(--s-4)}.race-meta-sep{color:var(--text-3)}.race-hero-stats{display:flex;gap:var(--s-3);position:absolute;right:0;top:0}.hero-stat{background:linear-gradient(180deg,#11181f,#0a0f15);border:1px solid var(--line);border-radius:var(--radius);min-width:140px;padding:12px 16px}.hero-stat .lbl{color:var(--text-3);font-size:9.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.hero-stat .val{color:var(--text-0);font-family:var(--font-display);font-size:28px;line-height:1;margin-top:6px}.hero-stat .sub{color:var(--text-2);font-size:11px;margin-top:4px}.hero-stat.up .val{color:var(--green)}.hero-stat.down .val{color:var(--red)}.hero-stat .secondary{color:var(--blue)}.race-graph-container,.race-info-card{background:linear-gradient(180deg,var(--bg-1) 0,#0a0f15 100%);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden;position:relative}.race-graph-header,.race-info-header{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:space-between;padding:var(--s-4) var(--s-5)}.race-graph-title,.race-info-title{color:var(--text-0);font-size:13.5px;font-weight:600;letter-spacing:.01em}.race-graph-subtitle{color:var(--text-2);font-size:12px;margin-left:8px}.race-graph-body{padding:var(--s-5)}.race-graph-controls{align-items:center;display:flex;flex-direction:row;gap:8px}.race-graph-toggle{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;display:inline-flex;gap:2px;padding:3px}.race-graph-toggle-btn{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:5px;color:var(--text-2);cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.02em;padding:5px 12px;transition:background .12s,color .12s}.race-graph-toggle-btn:hover:not(.active){background:var(--bg-2);color:var(--text-0)}.race-graph-toggle-btn.active{background:var(--green);color:#052017;font-weight:700}.race-graph-toggle-btn:disabled{cursor:not-allowed;opacity:.4}.race-graph-refresh-btn{align-items:center;background:var(--bg-2);border:1px solid var(--line-2);border-radius:8px;color:var(--text-2);cursor:pointer;display:inline-flex;height:36px;justify-content:center;transition:all .12s ease;width:36px}.race-graph-refresh-btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--line-2);color:var(--text-0)}.race-graph-refresh-btn--spinning svg{animation:refresh-spin .8s linear infinite}@keyframes refresh-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.race-graph-refresh-btn--spinning svg{animation:none}}.race-loading-container{align-items:center;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--s-6);padding:60px 40px}.race-loading-spinner{animation:spin 1s linear infinite;border:3px solid var(--green-soft);border-radius:50%;border-top-color:var(--green);height:48px;width:48px}@keyframes spin{to{transform:rotate(1turn)}}.race-loading-text{color:var(--text-2);font-size:1rem;font-weight:500}.race-loading-skeleton{display:flex;flex-direction:column;gap:16px;margin-top:8px;max-width:400px;width:100%}.race-loading-skeleton-bar{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#2ee6a005,#2ee6a012 50%,#2ee6a005);background-size:200% 100%;border-radius:6px;height:12px}.race-loading-skeleton-bar:first-child{width:80%}.race-loading-skeleton-bar:nth-child(2){width:60%}.race-loading-skeleton-bar:nth-child(3){width:70%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.race-error{background:var(--red-soft);color:var(--red);padding:24px}.race-error,.race-no-data{border-radius:12px;text-align:center}.race-no-data{background:var(--bg-1);color:var(--text-2);padding:48px}.race-graph-container .js-plotly-plot .plotly .modebar{background:#091328d9!important;border-radius:8px}.race-graph-container .js-plotly-plot .plotly .modebar-btn{color:var(--text-2)!important}.race-graph-container .js-plotly-plot .plotly .modebar-btn:hover{background:var(--green-soft)!important}.race-graph-container .spikeline{stroke:var(--green)!important;stroke-dasharray:4 4!important;stroke-opacity:.5!important;stroke-width:1!important}@media (max-width:1100px){.race-headline{max-width:100%}.race-hero-stats{margin-top:var(--s-5);position:static}.race-hero{padding-bottom:var(--s-6)}}@media (max-width:900px){.race-detail-page{padding:0}.race-hero-stats{flex-wrap:wrap}}.login-container{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 56px);padding:20px}.login-form{background:linear-gradient(180deg,var(--bg-1) 0,#0a0f15 100%);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:8px;max-width:380px;padding:40px;width:100%}.login-form:before{color:var(--text-0);content:"Welcome Back";display:block;font-family:var(--font-display);font-size:2.8rem;letter-spacing:.04em;margin-bottom:4px;text-align:center}.login-form:after{color:var(--text-3);content:"Sign in to access your racing data";display:block;font-size:.85rem;margin-bottom:24px;margin-top:-4px;text-align:center}.login-label{color:var(--text-3);font-size:.7rem;font-weight:700;letter-spacing:.15em;margin-bottom:6px;margin-top:8px;text-transform:uppercase}.login-input,.login-label{font-family:var(--font-sans)}.login-input{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;color:var(--text-0);font-size:.9rem;margin-bottom:8px;min-height:44px;outline:none;padding:13px 16px;transition:all .2s ease}.login-input::placeholder{color:var(--text-4)}.login-input:focus{background:var(--bg-3);border-color:var(--green-line);box-shadow:0 0 0 2px var(--green-soft)}.login-button{background:var(--green);border:none;border-radius:10px;box-shadow:0 8px 20px -4px #2ee6a04d;color:#052017;cursor:pointer;font-family:var(--font-sans);font-size:.9rem;font-weight:700;letter-spacing:.04em;margin-top:16px;min-height:44px;padding:14px 24px;transition:all .2s ease}.login-button:hover{box-shadow:0 12px 28px -4px #2ee6a066;filter:brightness(1.08);transform:translateY(-2px)}.login-button:active{transform:translateY(0)}@media (max-width:480px){.login-form{padding:32px 24px}.login-form:before{font-size:2.2rem}}.app-sidebar{align-self:flex-start;background:linear-gradient(180deg,#0a0e14,#07090d);border-right:1px solid var(--line);display:flex;flex-direction:column;flex-shrink:0;gap:var(--s-6);height:calc(100vh - 56px);min-width:200px;overflow-y:auto;padding:var(--s-6) var(--s-4);position:-webkit-sticky;position:sticky;top:56px;width:240px}.sidebar-section-label{color:var(--text-3);font-size:10px;font-weight:700;letter-spacing:.2em;margin:0 var(--s-3) var(--s-2);text-transform:uppercase}.sidebar-nav-item{align-items:center;background:#0000;border:1px solid #0000;border-radius:8px;color:var(--text-1);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:13.5px;font-weight:500;gap:var(--s-3);padding:10px var(--s-3);text-align:left;transition:background .12s ease,color .12s ease,border-color .12s ease;width:100%}.sidebar-nav-item:hover{background:var(--bg-2);color:var(--text-0)}.sidebar-nav-item.active{background:linear-gradient(180deg,#2ee6a015,#2ee6a008);border-color:#2ee6a033;color:var(--green)}.sidebar-nav-icon{flex-shrink:0;height:16px;width:16px}.sidebar-nav-badge{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;color:var(--text-3);font-family:var(--font-mono);font-size:10.5px;margin-left:auto;padding:2px 7px}.sidebar-nav-item.active .sidebar-nav-badge{background:#2ee6a015;border-color:#2ee6a033;color:var(--green)}.sidebar-live{background:linear-gradient(180deg,#0d141d,#0a0f17);border:1px solid var(--line);border-radius:var(--radius);margin-top:auto;padding:var(--s-3)}.sidebar-live-dot{animation:sidebar-pulse 2s ease-in-out infinite;background:var(--green);border-radius:50%;box-shadow:0 0 6px var(--green);flex-shrink:0;height:7px;width:7px}@keyframes sidebar-pulse{0%,to{opacity:1}50%{opacity:.4}}.sidebar-live-label{align-items:center;color:var(--text-3);display:flex;font-size:9.5px;font-weight:700;gap:6px;letter-spacing:.2em;margin-bottom:var(--s-2);text-transform:uppercase}.sidebar-next-race{color:var(--text-0);font-family:var(--font-display);font-size:28px;letter-spacing:.04em;line-height:1}.sidebar-next-course{color:var(--text-2);font-size:11.5px;margin-top:4px}.sidebar-countdown{color:var(--green);font-family:var(--font-mono);font-size:11.5px;margin-top:4px}@media (max-width:900px){.app-sidebar{display:none}}
/*# sourceMappingURL=main.e7a43ed4.css.map*/