@import"https://fonts.googleapis.com/css2?family=Anton&family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-bg: #0E0F13;--color-surface: #15171D;--color-surface-2: #1C1F27;--color-border: rgba(255, 255, 255, .08);--color-text: #F4F5F7;--color-muted: #9AA0AC;--color-dim: #6B7280;--color-nav-inactive: #505663;--color-accent: #E5384A;--color-accent-hover: #ef5562;--color-accent-2: #ECB94A;--color-danger: #E5384A;--color-success: #4ADE80;--color-warning: #ECB94A;--color-silver: #C9CDD6;--color-bronze: #C8884E;--font-display: "Anton", "Impact", system-ui, sans-serif;--font-sans: "Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--radius: .375rem;--radius-sm: .25rem;--nav-height: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100dvh}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:16px;line-height:1.5;font-feature-settings:"tnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-up{animation:fadeUp .22s ease forwards;opacity:0}.app-glow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 55% 35% at 6% 0%,rgba(229,56,74,.09) 0%,transparent 70%),radial-gradient(ellipse 55% 35% at 94% 0%,rgba(236,185,74,.08) 0%,transparent 70%)}.app-grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.025;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px}.app-shell{display:flex;flex-direction:column;min-height:100dvh;position:relative}.app-content{flex:1;position:relative;z-index:1;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));overflow-y:auto}@media(min-width:768px){.app-content{padding-bottom:0}}.app-header{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:env(safe-area-inset-top,0px) 16px 0;padding-top:max(12px,env(safe-area-inset-top,12px));padding-bottom:12px;border-bottom:1px solid var(--color-border);background:#0e0f13e0;backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);max-width:100%}.app-header-inner{max-width:896px;width:100%;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 16px}@media(min-width:768px){.app-header-inner{padding:0 20px}}.app-wordmark{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.04em;text-transform:uppercase;line-height:1;flex-shrink:0}.wordmark-prono{color:var(--color-text)}.wordmark-liga{color:var(--color-accent)}.desktop-nav{display:none;align-items:center;gap:4px}@media(min-width:768px){.desktop-nav{display:flex}}.desktop-nav-btn{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;padding:6px 14px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-nav-inactive);cursor:pointer;transition:color .15s;position:relative;min-height:32px}.desktop-nav-btn.active{color:var(--color-accent-2)}.desktop-nav-btn.active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:1rem;height:2px;border-radius:1px;background:var(--color-accent-2)}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;background-color:#090a0ef7;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);box-shadow:0 -8px 32px #0009,0 -2px 8px #00000073;padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}@media(min-width:768px){.mobile-nav{display:none}}.mobile-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 8px;min-height:var(--nav-height);min-width:44px;border:none;background:transparent;color:var(--color-nav-inactive);cursor:pointer;position:relative;transition:color .15s}.mobile-nav-btn.active{color:var(--color-accent-2)}.mobile-nav-btn.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:1rem;height:2px;border-radius:1px;background:var(--color-accent-2)}.mobile-nav-icon{width:18px;height:18px;flex-shrink:0}.mobile-nav-label{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;line-height:1}.desktop-nav a.desktop-nav-btn,.desktop-nav-btn{text-decoration:none;display:inline-flex;align-items:center}.mobile-nav a.mobile-nav-btn,.mobile-nav-btn{text-decoration:none}.header-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.account-control{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s;position:relative}.account-control:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.account-control:hover{border-color:#fff3;background:var(--color-surface-2)}.account-control:focus-visible{outline:2px solid var(--color-accent-2);outline-offset:2px}.account-control__icon{width:18px;height:18px;flex-shrink:0}.live-header{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.match-card.is-live{border-color:var(--color-accent-2)}.match-card.is-finished-pending{border-color:#ffffff1f}.live-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.live-score{display:flex;align-items:center;gap:6px;font-size:28px;font-weight:700;font-family:var(--font-mono);letter-spacing:-.01em}.live-elapsed{font-size:12px;font-family:var(--font-mono);color:var(--color-accent-2);font-weight:600}.badge-finished-pending{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--color-dim);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.live-match-bar{display:flex;flex-direction:column;gap:4px}@media(min-width:768px){.live-match-bar{flex-direction:row;flex-wrap:wrap}}.live-match-bar__item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);cursor:pointer;font-size:13px;text-align:left;transition:border-color .15s}.live-match-bar__item:hover{border-color:#ffffff2e}.live-match-bar__teams{font-weight:600}.live-match-bar__score{font-family:var(--font-mono);font-size:13px;font-weight:700}.prediction-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--color-border);font-size:14px}.prediction-row:last-child{border-bottom:none}.prediction-row--mine{font-weight:600}.prediction-row__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prediction-row__score{font-family:var(--font-mono);font-size:14px;font-weight:600;white-space:nowrap}.prediction-row__points{white-space:nowrap;min-width:42px;text-align:right}.pools-panel{display:flex;flex-direction:column;gap:24px}.pools-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.pools-list-item{display:block}.pools-list-btn{display:flex;flex-direction:column;gap:4px;width:100%;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);text-align:left;cursor:pointer;transition:border-color .15s}.pools-list-btn:hover{border-color:#ffffff2e}.pools-list-btn--selected{border-color:var(--color-accent-2)}.pools-list-btn__name{font-size:14px;font-weight:600}.pools-list-btn__meta{display:flex;align-items:center;flex-wrap:wrap}.pool-selector{position:relative;display:flex;align-items:center;gap:8px}.pool-selector--loading,.pool-selector--error,.pool-selector--empty{min-height:36px}.pool-selector__label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-dim)}.pool-selector__retry{margin-left:8px}.pool-selector__trigger{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;max-width:240px;transition:border-color .15s}.pool-selector__trigger:hover,.pool-selector__trigger--open{border-color:#fff3}.pool-selector__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.pool-selector__chevron{flex-shrink:0;color:var(--color-muted);transition:transform .15s}.pool-selector__chevron--up{transform:rotate(180deg)}.pool-selector__list{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;max-width:320px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 8px 24px #00000073;z-index:200;list-style:none;padding:4px 0;margin:0}.pool-selector__option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px 14px;background:transparent;border:none;color:var(--color-text);font-family:var(--font-sans);font-size:13px;text-align:left;cursor:pointer;transition:background .1s}.pool-selector__option:hover{background:var(--color-surface-2)}.pool-selector__option--active{color:var(--color-accent-2)}.pool-selector__option-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.pool-selector__check{flex-shrink:0;color:var(--color-accent-2)}.empty-state{padding:32px 16px;text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius)}.container{max-width:896px;margin:0 auto;padding:16px}@media(min-width:768px){.container{padding:20px}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px}.card-shadow{box-shadow:0 1px 3px #00000059,0 4px 16px #0000002e}.meta-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--color-dim);font-variant-numeric:tabular-nums}.meta-label-bright{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted);font-variant-numeric:tabular-nums}.meta-label-accent{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--color-accent-2);font-variant-numeric:tabular-nums}.meta-label-small{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-dim)}.section-kicker{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--color-accent-2);margin-bottom:6px}.status-badge{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;padding:2px 7px;border-radius:3px;line-height:1.4}.badge-locked{background:#e5384a1f;color:var(--color-danger)}.badge-live{background:#ecb94a1f;color:var(--color-accent-2)}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.match-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:14px 16px 16px;transition:border-color .15s}.match-card.is-locked{opacity:.72}.match-card.is-dirty{border-color:#e5384a66}.match-card.is-saved{border-color:#ecb94a59}.match-card.is-error{border-color:var(--color-danger)}.match-kicker{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.match-body{display:flex;align-items:center;gap:8px}.match-team-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.match-team-name{font-family:var(--font-display);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;line-height:1.25;-webkit-hyphens:auto;hyphens:auto;word-break:break-word;color:var(--color-text)}@media(min-width:400px){.match-team-name{font-size:.85rem}}.match-centre{flex-shrink:0;min-width:108px;display:flex;flex-direction:column;align-items:center;gap:8px}.steppers-row{display:flex;align-items:center;gap:8px}.score-sep{font-family:var(--font-display);font-size:1.25rem;color:var(--color-dim);line-height:1;-webkit-user-select:none;user-select:none}.stepper{display:flex;flex-direction:column;align-items:center;gap:3px}.stepper-value{font-family:var(--font-display);font-size:1.875rem;line-height:1;width:2rem;text-align:center;font-variant-numeric:tabular-nums;color:var(--color-text);-webkit-user-select:none;user-select:none}.stepper-btn{position:relative;display:flex;align-items:center;justify-content:center;width:1.625rem;height:1.625rem;border-radius:.25rem;border:1px solid rgba(255,255,255,.1);background:var(--color-surface-2);color:var(--color-muted);font-size:14px;font-family:var(--font-mono);line-height:1;transition:border-color .15s,color .15s,transform .15s;cursor:pointer;padding:0;-webkit-user-select:none;user-select:none}.stepper-btn:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px}.stepper-btn:hover:not(:disabled){border-color:#e5384a73;color:var(--color-accent)}.stepper-btn:active:not(:disabled){transform:scale(.93)}.stepper-btn:disabled{opacity:.4;cursor:not-allowed}.confirm-btn{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;padding:.375rem .875rem;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:opacity .15s,transform .1s;min-height:28px;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}.confirm-btn:active:not(:disabled){transform:scale(.97)}.confirm-btn.is-confirm{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.confirm-btn.is-confirm:hover{opacity:.88}.confirm-btn.is-saving{background:var(--color-surface-2);color:var(--color-muted);cursor:not-allowed;opacity:.65}.confirm-btn.is-saved{background:transparent;color:var(--color-accent-2);border-color:#ecb94a4d;cursor:default}.confirm-btn.is-error{background:transparent;color:var(--color-danger);border-color:#e5384a66}.confirm-btn.is-error:hover{background:#e5384a14}.confirm-error{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-danger);text-align:center;max-width:120px}.matchday-header{margin-bottom:14px}.matchday-kicker{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--color-accent-2);margin-bottom:6px;text-align:center}.matchday-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.matchday-nav-centre{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.matchday-title{font-family:var(--font-display);font-size:1.25rem;text-transform:uppercase;letter-spacing:.04em;line-height:1;color:var(--color-text)}.matchday-progress{font-family:var(--font-mono);font-size:11px;line-height:1;font-variant-numeric:tabular-nums}.progress-filled{color:var(--color-text);font-weight:600}.progress-total{color:var(--color-dim)}.matchday-progress-all{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent-2)}.matchday-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,border-color .15s}.matchday-btn:disabled{opacity:.3;cursor:not-allowed}.matchday-btn:not(:disabled):hover{color:var(--color-text);border-color:var(--color-muted)}.matches-grid{display:grid;grid-template-columns:1fr;gap:.625rem}@media(min-width:768px){.matches-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}.competition-selector{width:100%;padding:8px 32px 8px 12px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;outline:none;cursor:pointer;margin-bottom:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.competition-selector:focus{border-color:var(--color-accent)}.title{font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:.02em;text-transform:uppercase}.subtitle{font-size:14px;color:var(--color-muted);margin-top:4px}.label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);margin-bottom:6px;display:block}.error-text{color:var(--color-danger);font-size:13px}.success-text{color:var(--color-success);font-size:13px}.muted{color:var(--color-muted);font-size:13px}.input{width:100%;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:16px;outline:none;transition:border-color .15s;-webkit-appearance:none}.input:focus{border-color:var(--color-accent)}.input::placeholder{color:var(--color-dim)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:var(--radius);border:none;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:opacity .15s;width:100%;min-height:44px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){opacity:.88}.btn-ghost{background:transparent;color:var(--color-muted);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){color:var(--color-text);border-color:var(--color-muted)}.btn-danger{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-sm{padding:6px 14px;font-size:10px;width:auto;min-height:32px}.stack>*+*{margin-top:16px}.stack-sm>*+*{margin-top:0}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.badge{display:inline-block;padding:2px 10px;border-radius:100px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.badge-ok{background:#4ade801f;color:var(--color-success)}.badge-error{background:#e5384a1f;color:var(--color-danger)}.loading-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;color:var(--color-muted);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.setup-error-page{position:relative;z-index:1}.results-header{display:flex;flex-direction:column;gap:12px}.results-loading,.results-error,.results-empty{padding:24px 0}.results-content{display:flex;flex-direction:column}.results-no-pool-banner{padding-bottom:0}.results-no-pool-cta{margin-top:8px;font-size:13px;color:var(--color-muted)}.results-cta-link{color:var(--color-accent);text-decoration:underline}.results-matchday-group{padding-bottom:0}.results-matchday-header{font-family:var(--font-display);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0 0 8px}.results-match-list,.result-match-card{display:flex;flex-direction:column;gap:8px}.result-match-header{display:flex;align-items:flex-start;gap:8px}.result-teams{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap}.result-team-name{font-size:13px;font-weight:600;color:var(--color-text);min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-team-name--away{text-align:right}.result-score-block{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.result-score-display{font-family:var(--font-display);font-size:22px;letter-spacing:.04em;color:var(--color-text);display:flex;align-items:center;gap:2px}.result-score-sep{color:var(--color-muted);font-size:18px}.result-decided-by{font-size:9px;background:#ffffff12;color:var(--color-muted)}.result-predictions{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);padding-top:8px;margin-top:4px}.result-prediction-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:var(--color-muted)}.result-prediction-row--mine{color:var(--color-text)}.result-pred-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-pred-score{font-family:var(--font-mono);font-size:12px;flex-shrink:0;min-width:36px;text-align:right;color:var(--color-muted)}.result-prediction-row--mine .result-pred-score{color:var(--color-text)}.result-pts{font-family:var(--font-mono);font-size:11px;flex-shrink:0;min-width:36px;text-align:right;color:var(--color-accent-2)}.result-pts--null{color:var(--color-dim)}.result-no-predictions{font-size:13px;margin:4px 0 0;padding-top:8px;border-top:1px solid var(--color-border)}
