*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--lh-body);color:var(--text-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font:inherit;background:none;border:0;padding:0;cursor:pointer}a,button{color:inherit}a{text-decoration:none}img,svg{display:block;max-width:100%}:root{--color-navy-900:#0b1120;--color-navy-800:#111827;--color-navy-700:#1a2332;--color-navy-600:#243044;--color-navy-500:#334155;--color-blue-500:#2563eb;--color-blue-400:#3b82f6;--color-blue-300:#60a5fa;--color-gold-400:#facc15;--color-gold-500:#eab308;--color-white:#fff;--color-gray-300:#cbd5e1;--color-gray-400:#94a3b8;--color-red-500:#ef4444;--color-green-400:#4ade80;--color-cyan-400:#22d3ee;--color-sport-football:#2563eb;--color-sport-ice-hockey:#06b6d4;--color-sport-basketball:#f97316;--color-sport-tennis:#84cc16;--color-sport-other:#8b5cf6;--bg-app:var(--color-navy-800);--bg-surface:var(--color-navy-700);--surface-glass-1:var(--color-navy-600);--text-primary:var(--color-white);--text-muted:var(--color-gray-300);--text-accent:var(--color-blue-300);--text-on-brand:var(--color-white);--text-on-featured:var(--color-navy-900);--text-on-cta:var(--color-navy-900);--brand-primary:var(--color-blue-500);--brand-cta:var(--color-gold-400);--brand-featured:var(--color-gray-400);--semantic-danger:var(--color-red-500);--semantic-success:var(--color-green-400);--border-subtle:var(--color-navy-500);--border-accent:color-mix(in srgb,var(--brand-primary) 40%,transparent);--border-on-brand:color-mix(in srgb,var(--color-white) 15%,transparent);--border-danger:var(--semantic-danger);--odds-bg:var(--color-blue-500);--odds-fg:var(--color-white);--team-home:var(--color-blue-400);--team-away:var(--color-cyan-400);--sport-football:var(--color-sport-football);--sport-ice-hockey:var(--color-sport-ice-hockey);--sport-basketball:var(--color-sport-basketball);--sport-tennis:var(--color-sport-tennis);--sport-other:var(--color-sport-other);--form-win:var(--color-green-400);--form-draw:var(--color-gray-400);--form-loss:var(--color-red-500);--form-empty:var(--color-navy-500);--font-family:var(--font-roboto),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--weight-regular:400;--weight-medium:500;--weight-bold:700;--weight-black:900;--text-2xs:9px;--text-xs:10px;--text-sm:11px;--text-base:12px;--text-md:13px;--text-lg:15px;--text-xl:20px;--lh-tight:1.1;--lh-body:1.4;--lh-loose:1.6;--tracking-tight:-0.01em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-xs:3px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-pill:9999px;--shadow-card:0 1px 3px rgba(37,99,235,.08),0 4px 12px rgba(0,0,0,.25);--shadow-elevated:0 2px 8px rgba(37,99,235,.12),0 8px 24px rgba(0,0,0,.35);--shadow-sticky:0 -4px 16px rgba(0,0,0,.4);--shadow-glow:0 0 20px rgba(37,99,235,.15);--opacity-disabled:0.4;--opacity-hover:0.08;--opacity-pressed:0.12;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}.app-shell{max-width:390px;margin-inline:auto;min-height:100dvh;background:var(--bg-app);padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}.card-elevated{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);border:1px solid color-mix(in srgb,var(--color-blue-500) 12%,transparent)}.accent-top{border-top:2px solid var(--brand-cta)}:root{--anim-fast:150ms;--anim-normal:300ms;--anim-slow:500ms;--anim-spring:cubic-bezier(0.34,1.56,0.64,1);--anim-decel:cubic-bezier(0.16,1,0.3,1);--anim-smooth:cubic-bezier(0.4,0,0.2,1);--anim-snap:cubic-bezier(0.2,0,0,1);--anim-bounce:cubic-bezier(0.68,-0.55,0.265,1.55)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animShimmer{background:linear-gradient(90deg,#e8e8e8,#f2f2f2 50%,#e8e8e8);background-size:200% 100%;animation:shimmer 1.8s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animFadeIn{animation:fadeIn var(--anim-normal) var(--anim-decel) forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animFadeInUp{animation:fadeInUp .4s var(--anim-decel) var(--stagger-delay,0ms) forwards;opacity:0}.animFadeInUp.animVisible{opacity:1}.animFadeUp{opacity:0;transform:translateY(12px);transition:opacity .5s var(--anim-decel) var(--stagger-delay,0ms),transform .5s var(--anim-decel) var(--stagger-delay,0ms)}.animFadeUp.animVisible{opacity:1;transform:translateY(0)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.animFadeInDown{animation:fadeInDown .4s var(--anim-decel) var(--stagger-delay,0ms) forwards;opacity:0}.animFadeInDown.animVisible{opacity:1}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.animSlideUp{animation:slideUp .3s cubic-bezier(.22,.61,.36,1) forwards}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.animSlideDown{animation:slideDown .3s var(--anim-decel) forwards}@keyframes scaleUp{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.animScaleUp{animation:scaleUp .25s var(--anim-spring) forwards;opacity:0}.animScaleUp.animVisible{opacity:1}.animScaleIn{opacity:0;transform:scale(.5);transition:opacity .4s var(--anim-decel) var(--stagger-delay,0ms),transform .4s var(--anim-spring) var(--stagger-delay,0ms)}.animScaleIn.animVisible{opacity:1;transform:scale(1)}@keyframes popIn{0%{opacity:0;transform:scale(0)}70%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.animPopIn{animation:popIn .4s var(--anim-bounce) forwards;opacity:0}.animPopIn.animVisible{opacity:1}@keyframes ripple{0%{transform:scale(0);opacity:.4}to{transform:scale(4);opacity:0}}.animRipple{animation:ripple .6s var(--anim-snap) forwards}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animPulse{animation:pulse 2s var(--anim-smooth) infinite}@keyframes glow{0%,to{box-shadow:0 0 0 0 rgba(20,123,69,.4)}50%{box-shadow:0 0 0 10px rgba(20,123,69,0)}}.animGlow{animation:glow 2s var(--anim-smooth) infinite}@keyframes countFlipExit{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@keyframes countFlipEnter{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.animCountFlipExit{animation:countFlipExit .2s var(--anim-smooth) forwards}.animCountFlipEnter{animation:countFlipEnter .2s var(--anim-smooth) forwards}@keyframes cardPress{0%{transform:scale(1)}to{transform:scale(.97)}}.animCardPress{animation:cardPress .1s var(--anim-smooth) forwards}@keyframes barFillSpring{0%{width:0}to{width:var(--target-width,100%)}}.animBarFillSpring{animation:barFillSpring .8s var(--anim-spring) forwards;width:0}.animBarGrow{--bar-width:0%;transition:width .7s var(--anim-spring) var(--stagger-delay,0ms)}@keyframes dotBlink{0%,to{opacity:1}50%{opacity:.3}}.animDotBlink{animation:dotBlink 1.5s var(--anim-smooth) infinite}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}.animSlideInLeft{animation:slideInLeft .35s var(--anim-decel) var(--stagger-delay,0ms) forwards;opacity:0}.animSlideInLeft.animVisible{opacity:1}.animSlideLeft{opacity:0;transform:translateX(-20px);transition:opacity .4s var(--anim-decel) var(--stagger-delay,0ms),transform .4s var(--anim-decel) var(--stagger-delay,0ms)}.animSlideLeft.animVisible{opacity:1;transform:translateX(0)}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}.animSlideInRight{animation:slideInRight .35s var(--anim-decel) var(--stagger-delay,0ms) forwards;opacity:0}.animSlideInRight.animVisible{opacity:1}.animSlideRight{opacity:0;transform:translateX(20px);transition:opacity .4s var(--anim-decel) var(--stagger-delay,0ms),transform .4s var(--anim-decel) var(--stagger-delay,0ms)}.animSlideRight.animVisible{opacity:1;transform:translateX(0)}@keyframes tabIndicatorSlide{to{transform:translateX(var(--indicator-offset,0))}}.animTabIndicatorSlide{animation:tabIndicatorSlide var(--anim-normal) var(--anim-smooth) forwards}@keyframes numberTick{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.animNumberTick{animation:numberTick .3s var(--anim-spring) forwards}@keyframes borderGlow{0%,to{border-color:#147b45}50%{border-color:rgba(20,123,69,.4)}}.animBorderGlow{animation:borderGlow 1s var(--anim-smooth) infinite}@keyframes oddsPulse{0%{background-color:var(--odds-bg)}25%{background-color:var(--brand-cta)}to{background-color:var(--odds-bg)}}.animOddsPulse{animation:oddsPulse .6s var(--anim-smooth)}@keyframes scoreFlash{0%{transform:scale(1);color:inherit}30%{transform:scale(1.3);color:var(--status-win)}to{transform:scale(1);color:inherit}}.animScoreFlash{animation:scoreFlash .8s var(--anim-spring)}.pressable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform 80ms var(--anim-smooth)}.pressable:active{transform:scale(.97)}.liftable{transition:transform .2s var(--anim-decel),box-shadow .2s var(--anim-decel)}.liftable:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.12)}.ripple-container{position:relative;overflow:hidden}.stagger-child{--stagger-delay:0ms;transition-delay:var(--stagger-delay)}@media (prefers-reduced-motion:reduce){@keyframes shimmer{0%,to{background-position:-200% 0}}@keyframes fadeIn,
  @keyframes fadeInUp,
  @keyframes fadeInDown,
  @keyframes slideUp,
  @keyframes slideDown,
  @keyframes scaleUp,
  @keyframes popIn,
  @keyframes slideInLeft,
  @keyframes slideInRight{0%,to{opacity:1;transform:none}}.animBarFillSpring,.animBorderGlow,.animCardPress,.animCountFlipEnter,.animCountFlipExit,.animDotBlink,.animFadeIn,.animFadeInDown,.animFadeInUp,.animFadeUp,.animGlow,.animNumberTick,.animOddsPulse,.animPopIn,.animPulse,.animRipple,.animScaleIn,.animScaleUp,.animScoreFlash,.animShimmer,.animSlideDown,.animSlideInLeft,.animSlideInRight,.animSlideLeft,.animSlideRight,.animSlideUp,.animTabIndicatorSlide{animation:none;transition:none}.animBarGrow{transition:none}.pressable:active{transform:none}.liftable:hover{transform:none;box-shadow:none}}