:root{--bg:#16161a;--card:#1e1e22;--card-alt:#26262b;--border:#303036;--border-light:#3c3c43;--text:#f4f4f5;--text-muted:#9a9aa2;--text-faint:#6b6b72;--accent:#4ecdc4;--accent-dark:#3db8b0;--accent-bg:#4ecdc41a;--on-accent:#000;--heading-from:#fff;--danger:#ff6b6b;--warn:#f0b43c;--success-bg:#1a3a2a;--warn-bg:#3a2e14;--danger-bg:#3a1a1a;--owngoal-bg:#3a2a1a;--danger-soft-bg:#ff6b6b14;--success-border:#4ecdc44d;--warn-border:#f0b43c4d;--danger-border:#ff6b6b4d;--radius-lg:14px;--radius-md:10px;--radius-sm:6px;--shadow-card:0 10px 30px -8px #00000080;--shadow-sm:0 2px 8px #00000040}:root[data-theme=light]{--bg:#f2f3f5;--card:#fff;--card-alt:#eef0f2;--border:#e1e3e7;--border-light:#ccced3;--text:#17181c;--text-muted:#5c5e65;--text-faint:#8b8d94;--accent:#1f9d93;--accent-dark:#17827a;--accent-bg:#1f9d931f;--on-accent:#fff;--heading-from:#17181c;--danger:#c93b3b;--warn:#a8710a;--success-bg:#dcf3ec;--warn-bg:#fbedd2;--danger-bg:#fbe1e1;--owngoal-bg:#f7e3cf;--danger-soft-bg:#c93b3b14;--success-border:#1f9d9359;--warn-border:#a8710a4d;--danger-border:#c93b3b4d;--shadow-card:0 10px 24px -10px #14141e26;--shadow-sm:0 2px 8px #14141e1a}*{box-sizing:border-box;margin:0;padding:0}@media (width>=900px){html{font-size:19.5px}main,.back-link{max-width:880px}.home-menu,.season-range{max-width:420px}.puzzle-calendar{max-width:520px}}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;transition:background-color .2s,color .2s}.app{flex-direction:column;min-height:100vh;display:flex}header{text-align:center;border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--accent-bg), transparent 70%);padding:2.25rem 1rem 1.75rem;position:relative}header h1{letter-spacing:-.02em;background:linear-gradient(135deg, var(--heading-from), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.4rem;font-size:2.5rem;font-weight:800}header p{color:var(--text-muted);font-size:1rem}.theme-toggle{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.1rem;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;position:absolute;top:1.25rem;right:1.25rem}.theme-toggle:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.theme-toggle:active{transform:scale(.92)}main{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:780px;margin:0 auto;padding:2rem 1.5rem;display:flex}.home-screen{flex:1;justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.home-menu{flex-direction:column;gap:.75rem;width:100%;max-width:380px;display:flex}.menu-item{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:var(--radius-md);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;padding:1rem 1.5rem;font-size:1.05rem;font-weight:600;transition:border-color .2s,background .2s,transform .15s,box-shadow .2s;display:flex}.menu-item:hover:not(:disabled){border-color:var(--accent);background:var(--card-alt);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.menu-item:active:not(:disabled){transform:translateY(0)}.menu-item:disabled{color:var(--text-faint);cursor:not-allowed}.menu-item-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.menu-item-primary:hover{background:var(--accent-dark)}.season-range{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);width:100%;max-width:380px;margin:0 auto 1.25rem;padding:.85rem 1rem 1rem}.season-range-label{color:var(--text-muted);justify-content:space-between;align-items:baseline;margin-bottom:.6rem;font-size:.8rem;display:flex}.season-range-value{color:var(--accent);font-size:.85rem;font-weight:600}.season-range-track{height:1.5rem;position:relative}.season-range-input{pointer-events:none;appearance:none;background:0 0;width:100%;height:1.5rem;margin:0;position:absolute;top:0;left:0}.season-range-input::-webkit-slider-runnable-track{background:var(--border-light);border-radius:2px;height:4px}.season-range-input::-moz-range-track{background:var(--border-light);border-radius:2px;height:4px}.season-range-input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;background:var(--accent);border:2px solid var(--bg);cursor:pointer;border-radius:50%;width:16px;height:16px;margin-top:-6px}.season-range-input::-moz-range-thumb{pointer-events:auto;background:var(--accent);border:2px solid var(--bg);cursor:pointer;border-radius:50%;width:14px;height:14px}.coming-soon{color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem;font-weight:500}.back-link{color:var(--text-muted);cursor:pointer;box-sizing:border-box;background:0 0;border:none;align-self:flex-start;width:100%;max-width:780px;margin:0 auto;padding:1rem 1.5rem 0;font-size:.9rem;transition:color .15s}.back-link:hover{color:var(--text)}.puzzle-calendar{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-card);padding:1.75rem}.puzzle-calendar-header{align-items:center;gap:.5rem;margin-bottom:1.25rem;display:flex}.calendar-month-label{text-align:center;flex:1;font-size:1.25rem;font-weight:700}.calendar-nav-btn,.calendar-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.35rem .7rem;font-size:1.6rem;line-height:1;transition:background .15s,color .15s}.calendar-nav-btn:hover:not(:disabled),.calendar-close-btn:hover{background:var(--card-alt);color:var(--text)}.calendar-nav-btn:disabled{color:var(--text-faint);cursor:not-allowed}.calendar-close-btn{margin-left:.25rem}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.calendar-weekdays{text-align:center;color:var(--text-faint);margin-bottom:.6rem;font-size:.85rem;font-weight:600}.calendar-cell{aspect-ratio:1}.calendar-day{background:var(--card-alt);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;font-size:1.1rem;font-weight:500;transition:border-color .15s,color .15s,transform .1s;position:relative}.calendar-day:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.calendar-day:active:not(:disabled){transform:scale(.94)}.calendar-day.is-today{border-color:var(--accent)}.calendar-day.is-selected{background:var(--accent);color:var(--on-accent);font-weight:600}.calendar-day.is-disabled{color:var(--text-faint);cursor:not-allowed;background:0 0}.calendar-day.status-green{background:var(--success-bg);border-color:var(--success-border)}.calendar-day.status-amber{background:var(--warn-bg);border-color:var(--warn-border)}.calendar-day.status-red{background:var(--danger-bg);border-color:var(--danger-border)}.calendar-status-mark{font-size:.75rem;line-height:1;position:absolute;bottom:2px;right:5px}.status-green .calendar-status-mark{color:var(--accent)}.status-amber .calendar-status-mark{color:var(--warn)}.status-red .calendar-status-mark{color:var(--danger)}.calendar-day.is-selected .calendar-status-mark{color:var(--on-accent)}.team-select{text-align:center;width:100%}.team-select h2{margin-bottom:.4rem;font-size:1.4rem}.team-select-subtitle{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.team-list{text-align:left;grid-template-columns:repeat(2,1fr);gap:.6rem;display:grid}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.stat-tile{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center;padding:1.5rem 1rem}.stat-value{color:var(--accent);font-size:2rem;font-weight:700}.stat-label{color:var(--text-muted);margin-top:.35rem;font-size:.8rem}.link-devices{border:1px solid var(--border);background:var(--card);border-radius:var(--radius-lg);text-align:left;margin-top:2rem;padding:1.25rem}.link-devices h3{margin-bottom:.35rem;font-size:1.05rem}.link-devices-columns{grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1rem;display:grid}.link-devices-col-label{color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}.link-code-display{letter-spacing:.15em;color:var(--accent);text-align:center;background:var(--card-alt);border-radius:var(--radius-sm);padding:.6rem 0;font-size:1.6rem;font-weight:700}.link-devices-hint{color:var(--text-faint);margin-top:.5rem;font-size:.8rem}.link-devices-error{color:var(--danger);margin-top:.5rem;font-size:.85rem}.link-devices-success{color:var(--accent);font-size:.9rem}@media (width<=520px){.link-devices-columns{grid-template-columns:1fr}}.team-item{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s,background .2s,transform .15s}.team-item:hover{border-color:var(--accent);background:var(--card-alt);transform:translateY(-1px)}@media (width<=500px){.team-list{grid-template-columns:1fr}}.puzzle-display{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-card);text-align:center;margin-bottom:2rem;padding:2.25rem 2.5rem}.puzzle-display.error{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.match-date{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.kickoff-time{color:var(--accent)}.match-details{border-top:1px solid var(--border);text-align:center;color:var(--text-faint);margin-top:1.5rem;padding-top:1rem;font-size:.8rem}.detail-dot{color:var(--border-light);margin:0 .5rem}.scoreboard{grid-template-columns:1fr auto 1fr;align-items:start;gap:1.25rem;display:grid}.side{flex-direction:column;align-items:center;min-width:0;display:flex}.side.home{align-items:flex-end}.side.away{align-items:flex-start}.side .team-name{margin-bottom:1rem;font-size:1.1rem;font-weight:600}.score-center{white-space:nowrap;align-items:center;gap:.5rem;padding-top:.1rem;display:flex}.score-center .score{color:var(--accent);font-size:2.5rem;font-weight:700}.score-center .score-divider{color:var(--text-faint);font-size:1.5rem}.goal-slots{flex-direction:column;gap:.5rem;width:100%;display:flex}.goal-slots.right{align-items:flex-end}.goal-slots.left{align-items:flex-start}.goal-slot{border-radius:var(--radius-sm);align-items:center;gap:.4rem;max-width:100%;padding:.3rem .6rem;font-size:.95rem;transition:background .2s;display:flex}.goal-slot .ball{opacity:.7;flex-shrink:0;font-size:1rem}.ball-group{flex-shrink:0;align-items:center;gap:.3rem;display:inline-flex}.goal-slot .minute{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:500}.goal-slot .flag{font-size:.95rem}.position-badge{letter-spacing:.3px;color:var(--text-muted);background:var(--card-alt);border-radius:3px;flex-shrink:0;padding:.1rem .35rem;font-size:.65rem;font-weight:700}.goal-slot .slot-name{white-space:nowrap;overflow:visible}.goal-slot.empty .slot-name{color:var(--text-faint);letter-spacing:1px}.goal-slot.filled{background:var(--success-bg)}.goal-slot.filled .slot-name{color:var(--text);font-weight:600;animation:.3s ease-out slot-name-pop}.goal-slot.filled .ball{opacity:1}@keyframes slot-name-pop{0%{opacity:.4;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.goal-slot.own-goal.empty{background:var(--danger-soft-bg)}.goal-slot.own-goal .ball{opacity:1}.goal-slot.own-goal.filled{background:var(--owngoal-bg)}.guess-input{gap:.5rem;width:100%;margin-bottom:1.5rem;display:flex}.guess-input input{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--card-alt);color:var(--text);flex:1;padding:.75rem .9rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.guess-input input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.guess-input input:disabled{opacity:.5;cursor:not-allowed}.guess-input button{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:.75rem 1.5rem;font-weight:600;transition:background .2s,transform .15s}.guess-input button:hover:not(:disabled){background:var(--accent-dark)}.guess-input button:active:not(:disabled){transform:translateY(1px)}.guess-input button:disabled{opacity:.5;cursor:not-allowed}.guess-input-incorrect input{border-color:var(--danger);animation:.4s ease-in-out guess-shake}.skip-btn{color:var(--text-faint);cursor:pointer;background:0 0;border:none;margin:-.75rem 0 1.5rem;padding:0;font-size:.8rem;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s}.skip-btn:hover:not(:disabled){color:var(--warn);-webkit-text-decoration-color:var(--warn);text-decoration-color:var(--warn)}.skip-btn:disabled{opacity:.4;cursor:not-allowed}@keyframes guess-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.lives{justify-content:center;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.lives-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:.75rem;font-weight:700}.lives-balls{gap:.4rem;font-size:1.3rem;display:flex}.life{opacity:1;filter:none;transition:opacity .2s,filter .2s}.life-used{opacity:.25;filter:grayscale()}.puzzle-failed{text-align:center;width:100%;color:var(--danger);margin-bottom:1rem;font-weight:600}.puzzle-solved{text-align:center;width:100%;color:var(--accent);margin-bottom:1rem;font-weight:600;animation:.35s ease-out puzzle-solved-pop}@keyframes puzzle-solved-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.actions{justify-content:center;gap:1rem;width:100%;margin-bottom:1rem;display:flex}.reveal-btn,.new-puzzle-btn{border:1px solid var(--border-light);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.75rem 1.5rem;font-size:.9rem;transition:border-color .2s,color .2s,background .2s}.reveal-btn:hover,.new-puzzle-btn:hover{border-color:var(--text-muted);color:var(--text);background:var(--card-alt)}.share-btn{border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;transition:color .2s,background .2s}.share-btn:hover{color:var(--bg);background:var(--accent)}@media (width<=600px){header h1,.score{font-size:2rem}main{padding:1.25rem 1rem}.puzzle-display{padding:1.5rem 1.25rem}}
