.card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent),var(--surface);box-shadow:var(--shadow)}.card-body{padding:20px}
.hero{position:relative;overflow:hidden;min-height:250px;background:radial-gradient(circle at 90% 5%,rgba(39,209,127,.18),transparent 23rem),linear-gradient(135deg,#14213a,#101928)}.hero .card-body{min-height:250px;display:grid;align-content:space-between}.hero h1{max-width:590px;font-size:clamp(2rem,5vw,3.6rem)}.hero p{max-width:650px}
.btn{min-height:44px;padding:10px 15px;border:1px solid transparent;border-radius:var(--radiusSm);display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-weight:900}.btn-primary{background:var(--primary);color:#06140d}.btn-secondary{background:var(--surface2);border-color:var(--border)}.btn-ghost{background:transparent;color:var(--muted)}.btn-danger{background:rgba(239,91,91,.14);border-color:rgba(239,91,91,.35);color:#ffaaaa}.btn-block{width:100%}.actions{display:flex;flex-wrap:wrap;gap:9px}
.pill{display:inline-flex;width:max-content;padding:6px 9px;border-radius:999px;font-size:.73rem;font-weight:900}.success{background:var(--primarySoft);color:#79efb7}.warning{background:rgba(243,167,18,.14);color:#ffd178}.danger{background:rgba(239,91,91,.14);color:#ff9d9d}.gold{background:var(--goldSoft);color:#ffe07a}.info{background:rgba(88,166,255,.14);color:#9dcbff}
.metric-label{color:var(--muted);font-size:.76rem;font-weight:850}.metric-value{margin:5px 0;font-size:1.7rem;font-weight:950;letter-spacing:-.04em}.metric-detail{margin:0;color:var(--muted);font-size:.77rem}
.countdown{display:flex;flex-wrap:wrap;gap:8px}.timebox{min-width:62px;padding:9px;border:1px solid var(--border);border-radius:10px;background:rgba(11,18,32,.55);text-align:center}.timebox strong{display:block;font-size:1.2rem}.timebox span{color:var(--muted);font-size:.6rem;font-weight:900;text-transform:uppercase}
.progress{height:9px;border-radius:999px;background:var(--surface3);overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#66e9a8)}.progress-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:var(--muted);font-size:.77rem}
.fixture{overflow:hidden}.fixture-line{display:flex;justify-content:space-between;gap:10px;margin-bottom:16px;color:var(--muted);font-size:.76rem}.matchup{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.team{display:flex;align-items:center;gap:9px;min-width:0}.team.away{justify-content:flex-end;text-align:right}.badge{display:grid;flex:0 0 auto;width:38px;height:38px;place-items:center;border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--muted);font-size:.7rem;font-weight:950}.team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:850}.vs{color:var(--muted);font-size:.7rem;font-weight:900}
.prediction-card.missing{border-color:rgba(243,167,18,.45)}.prediction-card.boosted{border-color:rgba(244,197,66,.55);background:linear-gradient(180deg,rgba(244,197,66,.035),transparent),var(--surface)}
.score-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;margin-top:18px}.score-side{display:grid;justify-items:center;gap:8px}.score-label{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.75rem;font-weight:850}.score-control{display:grid;grid-template-columns:44px 56px 44px;gap:5px}.score-btn,.score-input{height:48px;border:1px solid var(--border);border-radius:11px;background:var(--surface2)}.score-btn{cursor:pointer;font-size:1.2rem;font-weight:900}.score-input{width:56px;color:var(--text);text-align:center;font-size:1.35rem;font-weight:950;appearance:textfield}.score-input::-webkit-inner-spin-button{appearance:none}.dash{margin-top:24px;color:var(--muted);font-weight:950}.fixture-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:15px;border-top:1px solid var(--border)}.boost{padding:9px 12px;border:1px solid rgba(244,197,66,.35);border-radius:999px;background:transparent;color:#ead675;cursor:pointer;font-weight:950}.boost.active{background:var(--gold);color:#251d00}.save{color:var(--muted);font-size:.75rem}.save::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--primary)}.save.saving::before{background:var(--warning)}.save.offline::before{background:var(--danger)}
.notice{padding:13px 15px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--muted);font-size:.86rem}.notice.warning{border-color:rgba(243,167,18,.35);background:rgba(243,167,18,.1);color:#ffd78d}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;background:var(--surface)}th,td{padding:13px 15px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{color:var(--muted);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}tr:last-child td{border:0}.num{text-align:right}.you{background:var(--primarySoft)}
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.podium>article{padding:17px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.podium small{color:var(--muted);font-weight:900}.podium h3{margin:5px 0 2px}.podium strong{display:block;color:var(--gold);font-size:1.3rem}
.form{display:grid;gap:7px}.form label{color:var(--muted);font-size:.77rem;font-weight:850}.input,.select{min-height:44px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#0e1727;color:var(--text)}
#toast{position:fixed;z-index:100;right:18px;bottom:18px;width:min(350px,calc(100% - 36px))}.toast{padding:13px 15px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);box-shadow:var(--shadow)}

.auth-shell{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:28px 0}.auth-card{width:min(100%,470px)}.auth-logo{width:58px;height:58px;margin-bottom:18px}.auth-form{display:grid;gap:14px;margin-top:20px}.auth-form label{display:grid;gap:7px;color:var(--muted);font-size:.78rem;font-weight:850}.auth-message{margin-top:15px}.auth-loading{color:var(--muted);font-weight:800}.soft-rule{height:1px;margin:20px 0;border:0;background:var(--border)}.btn:disabled{cursor:wait;opacity:.65}


/* Real Supabase fixture editor */
.real-manage-layout{align-items:start}.fixture-editor{display:grid;gap:12px;margin:18px 0}.fixture-editor-row{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:rgba(11,18,32,.35)}.fixture-editor-number{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--surface2);color:var(--muted);font-weight:950}.fixture-editor-grid{display:grid;grid-template-columns:minmax(180px,1fr) 36px minmax(180px,1fr);gap:10px;align-items:end}.fixture-editor-grid label{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:850}.fixture-editor-vs{padding-bottom:12px;text-align:center;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.kickoff-field{grid-column:1/-1}.team-select{cursor:pointer}.team-select option:disabled{color:var(--muted)}.fixture-editor-actions{margin-top:16px}.manage-message{display:none;margin-top:14px}.manage-message.visible{display:block}.real-fixture-list{margin-top:16px}.real-fixture-summary,.completion-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:rgba(11,18,32,.35)}.real-fixture-summary time{color:var(--muted);font-size:.76rem;text-align:right}
@media(max-width:720px){.fixture-editor-grid{grid-template-columns:minmax(0,1fr)}.fixture-editor-vs{display:none}.kickoff-field{grid-column:1}.fixture-editor-row{grid-template-columns:30px 1fr;padding:12px}.fixture-editor-number{width:30px;height:30px}.fixture-editor-actions .btn{width:100%}.real-fixture-summary{align-items:flex-start;flex-direction:column}.real-fixture-summary time{text-align:left}}

/* Live database player pages */
.empty-state{min-height:190px;display:grid;place-items:center;align-content:center;text-align:center}.empty-state h2{margin-bottom:7px}.empty-state .btn{margin-top:10px}.score-btn:disabled,.score-input:disabled,.boost:disabled{cursor:not-allowed;opacity:.58}.prediction-card .save.offline{color:#ff9d9d}.prediction-card .save.saving{color:#ffd178}

/* Commissioner results entry and scoring */
.manage-primary-actions{margin-top:16px}.result-editor{display:grid;gap:12px;margin:18px 0}.result-editor-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(150px,.65fr) minmax(230px,1fr);gap:14px;align-items:end;padding:15px;border:1px solid var(--border);border-radius:12px;background:rgba(11,18,32,.35)}.result-matchup{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:10px;align-items:center}.result-matchup .subtitle{margin-top:3px}.result-status-label,.result-score-grid label{display:grid;gap:6px;color:var(--muted);font-size:.72rem;font-weight:850}.result-score-grid{display:grid;grid-template-columns:minmax(80px,1fr) 18px minmax(80px,1fr);gap:8px;align-items:end}.result-score-grid>span{padding-bottom:12px;color:var(--muted);text-align:center;font-weight:950}.result-score-input{text-align:center;font-size:1.1rem;font-weight:950}.scoring-rule-list{display:grid;gap:8px;margin-top:12px}.scoring-rule-list span{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:rgba(11,18,32,.35);color:var(--muted)}.scoring-rule-list b{color:var(--gold)}.scoreboard-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:rgba(11,18,32,.35)}.scoreboard-row span{display:flex;gap:10px;align-items:center}.scoreboard-row span>b{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;background:var(--surface2);color:var(--gold)}
@media(max-width:900px){.result-editor-row{grid-template-columns:1fr}.result-score-grid{max-width:340px}.manage-primary-actions .btn{flex:1}}
@media(max-width:520px){.result-score-grid{max-width:none}.manage-primary-actions .btn{width:100%;flex-basis:100%}}

/* Local team badge previews beside native dropdowns */
.team-picker{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;align-items:center}.team-badge-preview{width:42px;height:48px;object-fit:contain;filter:drop-shadow(0 5px 8px rgba(0,0,0,.28));transition:transform .16s ease}.team-picker:focus-within .team-badge-preview{transform:scale(1.06)}.team-picker .team-select{min-width:0;width:100%}
@media(max-width:520px){.team-picker{grid-template-columns:40px minmax(0,1fr);gap:8px}.team-badge-preview{width:36px;height:42px}}

/* Invite-only onboarding */
.auth-card-wide{width:min(100%,620px)}.auth-secondary-link{display:block;margin-top:16px;text-align:center;color:var(--emerald);font-weight:850}.auth-help{margin-top:16px;color:var(--muted);font-size:.82rem;text-align:center}.invitation-local-warning{margin-top:16px}.invitation-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,1.25fr) minmax(120px,.6fr) auto;gap:12px;align-items:end;margin-top:18px}.invitation-form label{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:850}.invitation-created{margin-top:16px}.invitation-created p{margin:6px 0 12px}.invitation-link-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.invitation-list-heading{margin-top:24px}.invitation-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.invitation-row-title{display:flex;align-items:center;gap:10px}.invitation-row small{display:block;margin-top:5px;color:var(--muted)}.invitation-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.invitation-form{grid-template-columns:1fr 1fr}.invitation-form button{width:100%}}
@media(max-width:620px){.invitation-form{grid-template-columns:1fr}.invitation-link-box{grid-template-columns:1fr}.invitation-row{align-items:flex-start;flex-direction:column}.invitation-actions{width:100%}.invitation-actions .btn{flex:1}}

/* Registered player administration */
.player-admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.player-admin-metric .card-body{padding:16px}.player-admin-search-card{margin-bottom:14px}.player-admin-search-card label{display:grid;gap:7px;color:var(--muted);font-size:.78rem;font-weight:850}.player-account-card[hidden]{display:none}.player-account-main{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center}.player-account-avatar{display:grid;width:52px;height:52px;place-items:center;border:1px solid var(--border);border-radius:15px;background:linear-gradient(145deg,var(--surface2),rgba(16,185,129,.18));color:var(--gold);font-size:1rem;font-weight:950;letter-spacing:.04em}.player-account-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.player-account-title h3{margin:0;font-size:1.02rem}.player-account-dates{display:flex;gap:14px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:.73rem}.player-account-stats{display:grid;grid-template-columns:repeat(3,auto);gap:8px}.player-account-stats span{display:grid;min-width:74px;gap:2px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:rgba(11,18,32,.35);color:var(--muted);font-size:.7rem;text-align:center}.player-account-stats b{color:var(--text);font-size:.95rem}.player-account-editor{margin-top:14px;border-top:1px solid var(--border);padding-top:14px}.player-account-editor>summary{display:inline-flex;list-style:none;cursor:pointer}.player-account-editor>summary::-webkit-details-marker{display:none}.player-account-form{display:grid;grid-template-columns:1.1fr .8fr .8fr auto;gap:12px;align-items:end;margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:12px;background:rgba(11,18,32,.35)}.player-account-form label{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:850}.player-account-form small{min-height:28px;color:var(--muted);font-size:.68rem;font-weight:600}.player-account-form-actions{align-self:end;padding-bottom:1px}.player-account-message{display:none;grid-column:1/-1;margin:0}.player-account-message.visible{display:block}.player-account-protected{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem}.player-account-empty{margin-top:14px}
@media(max-width:1050px){.player-admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.player-account-main{grid-template-columns:52px minmax(0,1fr)}.player-account-stats{grid-column:1/-1}.player-account-form{grid-template-columns:1fr 1fr}.player-account-form-actions{align-self:auto}.player-account-form-actions .btn{width:100%}}
@media(max-width:620px){.player-admin-metrics{grid-template-columns:1fr 1fr}.player-account-main{grid-template-columns:44px minmax(0,1fr);align-items:start}.player-account-avatar{width:44px;height:44px;border-radius:12px}.player-account-stats{grid-template-columns:repeat(3,1fr)}.player-account-stats span{min-width:0}.player-account-form{grid-template-columns:1fr}.player-account-dates{display:grid;gap:4px}.player-account-form small{min-height:0}}

/* Password recovery and account security */
.profile-password-panel{margin-top:16px}.profile-password-panel>summary{list-style:none;cursor:pointer}.profile-password-panel>summary::-webkit-details-marker{display:none}.profile-password-form{margin-top:12px;padding:13px;border:1px solid var(--border);border-radius:12px;background:rgba(11,18,32,.35)}.profile-account-action{margin-top:10px}.profile-password-form .notice{margin-top:4px}.auth-card .auth-secondary-link{margin-top:15px}

/* PWA installation and home-screen guidance */
.pwa-status-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pwa-status-head h2{margin-top:2px}.pwa-install-notice{margin-top:14px}.pwa-install-steps{display:grid;gap:8px;margin:15px 0 0;padding-left:22px;color:var(--muted)}.pwa-install-steps li{padding-left:3px}.pwa-install-steps b{color:var(--text)}.pwa-small-print{margin:12px 0 0;color:var(--muted);font-size:.74rem;line-height:1.5}

/* In-app gameweek deadline reminders */
.reminder-banner{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:14px;align-items:center;margin-bottom:16px;padding:15px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.reminder-banner-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:13px;font-size:1rem;font-weight:950}.reminder-banner-copy b{font-size:.98rem}.reminder-banner-copy p{margin:4px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}.reminder-complete{border-color:rgba(16,185,129,.38);background:linear-gradient(135deg,rgba(16,185,129,.13),var(--surface))}.reminder-complete .reminder-banner-icon{background:rgba(16,185,129,.18);color:var(--emerald)}.reminder-incomplete{border-color:rgba(245,158,11,.38);background:linear-gradient(135deg,rgba(245,158,11,.11),var(--surface))}.reminder-incomplete .reminder-banner-icon{background:rgba(245,158,11,.16);color:var(--gold)}.reminder-urgent{border-color:rgba(239,68,68,.52);background:linear-gradient(135deg,rgba(239,68,68,.15),var(--surface));animation:reminder-pulse 2.4s ease-in-out infinite}.reminder-urgent .reminder-banner-icon{background:rgba(239,68,68,.19);color:#ff8181}.reminder-locked{border-color:rgba(148,163,184,.3);background:linear-gradient(135deg,rgba(148,163,184,.09),var(--surface))}.reminder-locked .reminder-banner-icon{background:rgba(148,163,184,.15);color:var(--muted)}@keyframes reminder-pulse{0%,100%{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 4px rgba(239,68,68,.08),var(--shadow)}}.reminder-page-grid{margin-top:0}.prediction-deadline-card{margin-bottom:16px}.prediction-deadline-layout{display:grid;grid-template-columns:auto minmax(220px,1fr);gap:18px;align-items:center;margin-top:14px}.prediction-progress-block{min-width:0}.nav-reminder-badge{display:inline-grid;min-width:18px;height:18px;place-items:center;margin-left:6px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.62rem;font-style:normal;font-weight:950;line-height:1}.desktop-nav a{position:relative}.bottom-nav a{position:relative}.bottom-nav .nav-reminder-badge{position:absolute;top:5px;left:calc(50% + 7px);margin:0;min-width:17px;height:17px;font-size:.58rem}.bottom-nav a.has-reminder b{color:#ff8181}.reminder-readiness-progress{margin:14px 0}.reminder-player-list{margin-top:12px}.reminder-player-row>span:first-child{display:grid;gap:3px}.reminder-player-row small{color:var(--muted);font-size:.7rem}.reminder-copy-button{margin-top:14px}.reminder-refresh-button{margin-top:10px}.reminder-all-ready{margin-top:14px}
@media(max-width:700px){.reminder-banner{grid-template-columns:40px minmax(0,1fr);align-items:start}.reminder-banner-icon{width:38px;height:38px;border-radius:11px}.reminder-banner-action{grid-column:1/-1}.reminder-banner-action .btn{width:100%}.prediction-deadline-layout{grid-template-columns:1fr}.prediction-deadline-layout .countdown{max-width:360px}}
@media(max-width:430px){.reminder-banner{padding:13px}.reminder-banner-copy p{font-size:.78rem}}
