@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}.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}
