@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Manrope:wght@400;600;700;800&display=swap";.victory-overlay-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;cursor:pointer;pointer-events:auto}.transition-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,#121a1f,#05080a 70%);z-index:9000;pointer-events:none;overflow:hidden}.transition-overlay.intro-mode{animation:overlayIntroFadeOut 18s ease forwards}.logo-wrap{position:absolute;top:20%;left:50%;transform:translate(-50%) scale(1);display:flex;flex-direction:column;align-items:center;text-align:center;max-width:80vw}.logo-wrap.intro-mode{animation:logoMoveScale 18s cubic-bezier(.4,0,.2,1) forwards}.logo-wrap.victory-mode{animation:logoVictoryScale 12.6s cubic-bezier(.4,0,.2,1) forwards}.logo-wrap .ceremony-logo{width:280px;margin-bottom:28px;filter:drop-shadow(0 0 50px rgba(216,207,164,.45))}.logo-wrap .ceremony-title{font-size:14px;letter-spacing:.22em;color:#d8cfa4;opacity:.75;text-transform:uppercase;text-align:center}@keyframes logoMoveScale{0%{top:20%;transform:translate(-50%) scale(1);opacity:1}70%{top:50%;transform:translate(-50%,-50%) scale(1.6);opacity:1}85%{top:50%;transform:translate(-50%,-50%) scale(2.2);opacity:0}to{top:50%;transform:translate(-50%,-50%) scale(2.2);opacity:0}}@keyframes logoVictoryScale{0%{top:20%;transform:translate(-50%) scale(1);opacity:1}to{top:50%;transform:translate(-50%,-50%) scale(1.6);opacity:1}}.start-screen{transition:opacity .5s ease-out;opacity:1}.start-screen.hidden{opacity:0;pointer-events:none}.cinematic-winner{font-size:clamp(22px,4.2vw,36px);letter-spacing:.06em}.winner-line{white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}.overlay-outro{animation:overlayFadeOut 5s ease forwards}@keyframes overlayIntroFadeOut{0%{opacity:1}90%{opacity:1}to{opacity:0}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}.admin-shell{min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(79,140,255,.08),transparent 25%),radial-gradient(circle at 80% 10%,rgba(45,212,191,.06),transparent 22%),var(--bg-main);color:var(--text-primary);padding:28px;display:grid;grid-template-columns:64px 1fr;gap:20px;font-family:Manrope,Segoe UI,sans-serif}.admin-launcher{background:var(--bg-panel-soft);border:1px solid rgba(255,255,255,.04);border-radius:12px;padding:12px 8px;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;align-items:center;gap:16px;height:fit-content;position:sticky;top:28px}.launcher-header{width:100%;display:flex;justify-content:center}.launcher-logo{width:48px;height:48px;border-radius:12px;background:var(--bg1);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;transition:all .2s}.launcher-logo:hover{background:var(--bg2);border-color:#ffffff1f;transform:scale(1.05)}.launcher-actions{width:100%;display:flex;flex-direction:column;gap:8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.launcher-action-btn{width:48px;height:48px;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;transition:all .2s;text-decoration:none}.launcher-action-btn:hover{background:#ffffff0f;border-color:#ffffff1f;color:var(--text-primary);transform:scale(1.05)}.launcher-tournaments{width:100%;display:flex;flex-direction:column;gap:8px;flex:1}.launcher-tournament-btn{width:48px;height:48px;border-radius:10px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);cursor:pointer;transition:all .2s;position:relative;padding:0}.launcher-tournament-btn:hover{background:#ffffff0f;border-color:#ffffff1f;transform:scale(1.05)}.launcher-tournament-btn.selected-workspace{background:var(--bg2);border-color:#fff3;box-shadow:0 0 0 1px #ffffff1a}.tournament-indicator{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-primary)}.live-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--green);border-radius:50%;animation:pulse 2s infinite}.live-dot.test-mode{background:var(--yellow);animation:pulse-yellow 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}@keyframes pulse-yellow{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #ffc107b3}50%{opacity:.8;transform:scale(1.2);box-shadow:0 0 0 3px #ffc10700}}.launcher-footer{width:100%;padding-top:8px;border-top:1px solid rgba(255,255,255,.05)}.launcher-more-btn{width:48px;height:48px;border-radius:10px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;transition:all .2s}.launcher-more-btn:hover{background:#ffffff0f;border-color:#ffffff1f;color:var(--text-primary);transform:scale(1.05)}.drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tournament-drawer{position:fixed;top:0;left:0;bottom:0;width:400px;background:var(--bg-panel-soft);border-right:1px solid rgba(255,255,255,.08);box-shadow:8px 0 24px #0006;z-index:1001;display:flex;flex-direction:column;animation:slideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{padding:24px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;align-items:center}.drawer-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.drawer-close{width:32px;height:32px;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:all .2s}.drawer-close:hover{background:#ffffff0f;border-color:#ffffff1f;color:var(--text-primary)}.drawer-tournament-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.drawer-tournament-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);cursor:pointer;transition:all .2s;text-align:left}.drawer-tournament-item:hover{background:#ffffff0f;border-color:#ffffff1f;transform:translate(4px)}.drawer-tournament-item.selected{background:var(--bg2);border-color:var(--accent-blue);box-shadow:0 0 0 2px #4f8cff33}.tournament-indicator-large{width:48px;height:48px;border-radius:10px;background:var(--bg1);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:var(--text-primary);flex-shrink:0}.tournament-info{flex:1;min-width:0}.tournament-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tournament-meta{display:flex;gap:6px;margin-top:4px}.meta-badge{font-size:11px;padding:2px 6px;border-radius:4px;background:#ffffff0f;color:var(--text-muted);font-weight:500}.meta-badge.live{background:#4caf5033;color:var(--green)}.admin-main{background:var(--bg-panel-soft);border:1px solid rgba(255,255,255,.04);border-radius:14px;padding:22px;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:16px}.admin-tabs{display:flex;flex-wrap:wrap;gap:10px;padding:6px;background:#ffffff08;border-radius:12px;border:1px solid rgba(255,255,255,.05)}.admin-tab{border:1px solid rgba(255,255,255,.08);background:#ffffff05;color:var(--text-muted);border-radius:10px;padding:8px 14px;font-weight:700;cursor:pointer;transition:transform .1s ease,border-color .15s ease,color .15s ease}.admin-tab.active{color:var(--text-primary);border-color:#4f8cff59;background:#4f8cff1f;box-shadow:var(--shadow-soft)}.admin-tab-panel{display:flex;flex-direction:column;gap:16px}.sos-row{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.sos-debug .button-row{justify-content:flex-start;margin-bottom:8px}.sos-log{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px;background:#0003;max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.sos-log-row{display:grid;grid-template-columns:72px 160px 1fr;gap:10px;font-size:12px;color:var(--text-muted)}.sos-log-event{color:var(--text-primary)}.sos-log-data{color:#d3c6aab3}.admin-nav-header{display:flex;flex-direction:column;gap:6px}.nav-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-link{color:var(--text-muted);font-size:13px;text-decoration:underline}.nav-link:hover{color:var(--text-primary)}.admin-label{font-size:13px;color:var(--text-muted)}.admin-input{width:100%;padding:11px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:var(--bg-panel-soft);color:var(--text-primary)}.admin-button{padding:10px 14px;border-radius:10px;border:1px solid rgba(167,192,128,.35);background:#a7c0801f;color:var(--text-primary);font-weight:700;cursor:pointer;transition:transform .1s ease,border-color .15s ease,box-shadow .15s ease}.admin-button:hover:not(:disabled){border-color:#a7c08099;box-shadow:0 0 0 1px #a7c08040}.admin-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.admin-subtext{font-size:13px;color:var(--text-muted)}.admin-subtle{font-size:14px;color:var(--text-primary);font-weight:700}.admin-log{background:var(--bg-panel-soft);border-radius:10px;padding:12px}.admin-log-title{font-weight:700;margin-bottom:6px}.admin-log-entry{font-size:14px;color:var(--text-primary)}.admin-log-inline{padding:10px 12px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);font-size:14px}.admin-list{display:flex;flex-direction:column;gap:8px}.range-row{display:flex;align-items:center;gap:10px}.range-input{flex:1;accent-color:rgba(219,188,127,.9)}.range-value{font-size:12px;color:#d3c6aacc;min-width:40px;text-align:right}.admin-list-title{font-weight:700;font-size:16px}.admin-list-items{display:flex;flex-direction:column;gap:8px}.admin-list-row{width:100%;display:flex;align-items:center;justify-content:space-between;background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--text-primary);transition:background .15s ease,border-color .15s ease,transform .1s ease}.admin-list-row.selected{border-color:#4f8cff40;background:#4f8cff14;box-shadow:var(--shadow-soft)}.icon-button{width:36px;height:36px;border-radius:10px;border:1px solid rgba(211,198,170,.16);background:#272e33a6;color:#d3c6aad9;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.icon-button:hover{background:#272e33d9;border-color:#d3c6aa52;color:#d3c6aa}.icon-button:active{transform:translateY(1px)}.admin-list-row:not(.selected):hover{background:#ffffff0a;transform:translateY(-1px)}.row-title{font-weight:700;font-size:15px}.row-sub{font-size:12px;color:var(--text-muted)}.row-active{font-size:12px;color:var(--text-muted);margin-top:2px}.status-badge{padding:6px 10px;border-radius:8px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;border:1px solid rgba(255,255,255,.08)}.status-badge.upcoming{color:var(--text-muted)}.status-badge.active{color:var(--text-primary);border-color:#4f8cff66}.status-badge.archived{color:var(--text-primary)}.status-badge.connected{color:#a7c080f2;border-color:#a7c0808c}.admin-detail{background:var(--bg-panel-soft);border-radius:10px;padding:12px}.admin-detail-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.admin-detail-title{font-weight:800;font-size:20px}.admin-detail-subtle{font-size:12px;color:var(--text-muted)}.admin-main-header{display:flex;justify-content:space-between;align-items:center}.header-actions{display:flex;align-items:center;gap:8px}.admin-detail-actions{display:flex;gap:10px;flex-direction:column}.admin-schedule{background:#ffffff06;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;border:1px solid rgba(255,255,255,.04);height:100%}.admin-checklist{margin:0;padding-left:16px;color:var(--text-muted);font-size:14px}.success-text{color:#a4f4c4;font-size:13px}.admin-button.danger{border:1px solid rgba(255,120,120,.35);background:#ff787814;color:#ffdede}.admin-button.danger:hover{border-color:#ff7878cc}.admin-placeholder{padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:var(--text-muted)}.muted{color:var(--text-muted)}.team-form{display:flex;gap:8px;flex-wrap:wrap}.tournament-edit{display:flex;flex-direction:column;gap:8px}.tournament-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:center}.field-stack{display:flex;flex-direction:column;gap:6px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-stack{display:flex;flex-direction:column;gap:14px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.time-row{display:flex;flex-direction:column;gap:6px}.sync-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.sync-status{font-size:13px;color:var(--text-muted)}.sync-status.warn{color:#ff9f9f}.sync-status.ok{color:#9ae6b4}.admin-teams{margin-top:10px;display:flex;flex-direction:column;gap:8px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:12px;padding:14px}.admin-teams-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.team-block-admin{background:#ffffff04;border-radius:10px;padding:12px;border:1px solid rgba(255,255,255,.03)}.team-block-admin .team-short{font-weight:700;font-size:15px}.team-players{list-style:none;padding-left:16px;margin:6px 0 0;display:flex;flex-direction:column;gap:6px}.admin-players{margin-top:12px;background:#ffffff05;border-radius:10px;padding:12px}.admin-player-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.admin-player-row{display:grid;grid-template-columns:1fr auto;align-items:center;padding:10px;border-radius:8px;background:#ffffff05;transition:background .15s ease}.admin-player-row:hover{background:#ffffff0a}.player-info{display:flex;flex-direction:column;gap:2px}.player-name{font-size:15px;font-weight:700;color:var(--text-primary)}.player-team{font-size:12px;color:var(--text-muted)}.player-goals{padding:6px 10px;border-radius:999px;background:#4f8cff24;color:var(--accent-primary);font-weight:800;min-width:44px;text-align:center}.team-player-row{display:flex;align-items:center;gap:8px}.fairness-panel{background:#ffb84f14;border:1px solid rgba(255,184,79,.35);border-radius:10px;padding:12px;color:var(--text-primary)}.fairness-title{font-weight:800;margin-bottom:6px}.fairness-body{display:flex;flex-direction:column;gap:6px}.fairness-message{color:var(--text-primary);line-height:1.4}.fairness-meta{color:var(--text-muted);font-size:13px}.fairness-warnings{list-style:disc;padding-left:18px;margin:0;color:var(--text-primary);opacity:.9;display:flex;flex-direction:column;gap:4px}.team-modal{max-width:520px;width:90vw}.team-form-modal{display:flex;flex-direction:column;gap:10px;margin-top:10px}.inline-panel{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px}.swish-panel{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:12px}.swish-cards{display:flex;flex-direction:column;gap:10px}.swish-card{background:#ffffff04;border:1px solid rgba(255,255,255,.03);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.swish-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.swish-meta{font-size:13px;color:var(--text-muted)}.swish-per-person{font-size:13px;color:#d3c6aacc}.swish-warning{font-size:12px;color:#ff9f9f}.swish-save-badge{align-self:flex-end;font-size:12px;color:#9ae6b4;background:#9ae6b41f;border-radius:999px;padding:4px 8px}.swish-test-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.swish-test-status{font-size:12px;color:var(--text-muted)}.swish-test-status.ok{color:#9ae6b4}.swish-test-status.warn{color:#f6c177}.swish-test-status.error{color:#ff9f9f}.swish-expenses{display:flex;flex-direction:column;gap:6px}.swish-expense-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;font-size:13px}.swish-expense-editor{display:flex;flex-direction:column;gap:8px}.swish-expense-edit-row{display:grid;grid-template-columns:1.2fr 1fr .6fr auto;gap:8px}.icon-only{padding:6px 8px}.swish-qr-modal{width:min(92vw,980px)}.swish-qr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:10px}.swish-qr-card{background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:10px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.swish-qr-name{font-weight:700}.swish-qr-amount{font-size:13px;color:var(--text-muted)}.swish-qr-image{width:160px;height:auto;border-radius:6px}.swish-qr-placeholder{font-size:12px;color:var(--text-muted);padding:14px 0}.swish-qr-number{border:none;background:transparent;color:var(--text-muted);font-size:12px;letter-spacing:.4px;cursor:pointer}.swish-qr-number:hover,.swish-qr-number:focus-visible{color:var(--text-primary);outline:none}.playoff-preview{margin-top:12px;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px;background:#ffffff08;display:flex;flex-direction:column;gap:10px}.preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.preview-round{display:flex;flex-direction:column;gap:8px}.preview-match{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.preview-line{font-size:14px;font-weight:600}.preview-meta{font-size:12px;color:var(--text-muted);white-space:nowrap}.preview-byes{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-radius:8px;background:#ffffff05;border:1px dashed rgba(255,255,255,.08)}.admin-schedule.separated{border-color:#ffffff14;box-shadow:0 0 0 1px #4f8cff14}.playoff-grid{display:grid;grid-template-columns:1fr;gap:10px}.admin-label-inline{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.round-row{display:grid;grid-template-columns:160px 1fr 1fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.round-row:last-child{border-bottom:none}.round-name{font-weight:700;color:var(--text-primary)}.hint{font-size:12px;color:var(--text-muted);margin-top:6px}.inline-error{font-size:12px;color:#ff9f9f;margin-top:4px}.toggle-row{display:flex;align-items:center;gap:8px}.mini-helper{font-size:12px;color:var(--text-muted)}.primary-action-row{display:flex;align-items:center;gap:8px;margin-top:8px}.field-row{display:grid;grid-template-columns:160px 1fr;gap:10px;align-items:center}.field-row input[type=checkbox]{justify-self:start}.structure-group,.rounds-group{display:grid;grid-template-columns:1fr;gap:8px}.group-label{font-size:13px;color:var(--text-muted);margin-top:4px}.drawer-header+button{margin:0 24px 16px;width:calc(100% - 48px)}@media (max-width: 1100px){.admin-shell{grid-template-columns:64px 1fr}.tournament-drawer{width:100%;max-width:400px}.settings-grid,.tournament-row{grid-template-columns:1fr}.admin-main-header{flex-direction:column;align-items:flex-start;gap:8px}.round-row{grid-template-columns:1fr;gap:6px}}.admin-tab.dimmed{opacity:.5}.admin-tab.dimmed:hover{opacity:.7}:root{--bg-dim: #1E2326;--bg0: #272E33;--bg1: #2E383C;--bg2: #374145;--bg3: #414B50;--bg4: #495156;--bg5: #4F5B58;--fg: #D3C6AA;--red: #E67E80;--yellow: #DBBC7F;--green: #A7C080;--blue: #7FBBB3;--purple: #D699B6;--aqua: #83C092;--orange: #E69875;--bg-main: var(--bg-dim);--bg-panel: var(--bg1);--bg-panel-soft: var(--bg2);--accent-primary: var(--green);--accent-secondary: var(--yellow);--accent-info: var(--blue);--text-primary: var(--fg);--text-muted: rgba(211, 198, 170, .7);--shadow-soft: 0 10px 30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;font-family:Manrope,Segoe UI,sans-serif;background:linear-gradient(135deg,var(--bg-dim),var(--bg0) 55%,var(--bg-dim));color:var(--text-primary);overflow-y:scroll}.app-shell{display:flex;flex-direction:column;gap:12px;padding:18px 18px 64px;min-height:100vh}.partner-band{width:100%;margin-top:0;padding:2px 0 4px;background:transparent}.partner-band-inner{max-width:1200px;margin:0 auto;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:14px}.partner-logo{height:60px;width:auto;opacity:.95}.app-footer{position:fixed;left:0;right:0;bottom:0;margin:0;padding:14px 24px;border-top:1px solid rgba(211,198,170,.1);background:var(--bg-dim);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;width:100%;z-index:30}.app-footer.welcome-footer{background:transparent;border-top:none}.footer-zone{display:flex;align-items:center;min-width:0}.footer-left{justify-content:flex-start;gap:10px}.footer-center{justify-content:center}.footer-right{justify-content:flex-end;gap:10px;flex-wrap:wrap}.footer-indicator{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:#d3c6aa8c}.footer-control{border:1px solid rgba(211,198,170,.12);background:transparent;color:#d3c6aab3;padding:6px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.8px;font-size:11px;font-weight:600;cursor:pointer;text-decoration:none}.footer-control:hover,.footer-control:focus-visible{color:var(--text-primary);border-color:#d3c6aa4d;outline:none}.footer-brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:#d3c6aa8c;text-transform:uppercase;letter-spacing:.8px;text-decoration:none}.footer-brand img{height:28px;width:auto;opacity:.95}.footer-brand span{font-size:10px;letter-spacing:.6px}.footer-status{font-size:11px;text-transform:uppercase;letter-spacing:.9px;color:#d3c6aab3;display:inline-flex;align-items:center;gap:8px}.footer-dot{opacity:.6}.pin-modal{max-width:360px}.pin-form{display:flex;flex-direction:column;gap:12px;margin-top:8px}.pin-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.pin-input{border-radius:10px;border:1px solid rgba(211,198,170,.2);background:#d3c6aa0a;color:var(--text-primary);padding:10px 12px;font-size:18px;letter-spacing:6px;text-align:center}.pin-input:focus-visible{outline:2px solid rgba(167,192,128,.5);outline-offset:2px}.pin-feedback{font-size:12px;color:#e67e80d9}.pin-modal.pin-error{animation:pin-shake .18s ease}@keyframes pin-shake{0%{transform:translate(0)}30%{transform:translate(-4px)}60%{transform:translate(4px)}to{transform:translate(0)}}.sync-modal{max-width:520px}.sync-issues{display:flex;flex-direction:column;gap:14px}.sync-section{display:flex;flex-direction:column;gap:8px}.sync-title{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.sync-list{display:flex;flex-direction:column;gap:8px}.sync-item{border:1px solid rgba(211,198,170,.08);background:#d3c6aa08;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.sync-item-title{font-weight:600;color:var(--text-primary)}.sync-item-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px 10px}.sync-field{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--text-muted)}.sync-field-values{color:var(--text-primary);font-weight:600}.sync-meta{font-size:11px;color:var(--text-muted)}.button-row.sync-actions{margin-top:12px;display:flex;justify-content:flex-end;gap:10px}.footer-brand img{height:22px;width:auto;filter:none}.main-area{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:stretch}.column{padding:14px;min-height:0;background:var(--bg-panel-soft);border:1px solid rgba(211,198,170,.04);border-radius:12px;box-shadow:var(--shadow-soft)}.column.right{display:flex;flex-direction:column;gap:14px}.column.center{display:flex;flex-direction:column}.column.center .current-match{flex:1}.column.right .panel-title{margin-bottom:6px}.panel-title{text-transform:uppercase;letter-spacing:.5px;font-size:12px;color:var(--text-muted);margin-bottom:8px;font-weight:700}.standings-title{display:flex;align-items:center;gap:8px}.icon-button{border:1px solid rgba(211,198,170,.12);background:#d3c6aa0a;color:var(--text-primary);border-radius:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-button:disabled{opacity:.6;cursor:not-allowed}.sync-dot{width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px #e67e8040}.match-header-bar{background:var(--bg-panel-soft);padding:14px 16px;border-radius:14px;box-shadow:var(--shadow-soft);border:1px solid rgba(211,198,170,.06);display:flex;align-items:center;justify-content:space-between;gap:16px}.match-header-meta{display:flex;flex-direction:column;gap:4px;min-width:200px}.match-number{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.match-header-time{font-size:15px;font-weight:700;color:var(--text-primary)}.match-header-status{font-size:12px;letter-spacing:.5px;color:var(--text-muted)}.match-header-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end}.match-strip{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid rgba(211,198,170,.06)}.match-strip-scroll-wrap{position:relative;flex:1 1 auto;overflow:hidden;padding-right:0}.match-strip-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;padding-right:0;scrollbar-width:thin;-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 36px),transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 36px),transparent 100%)}.match-strip-scroll::-webkit-scrollbar{height:0}.match-strip-scroll{scrollbar-width:none}.match-strip-scroll-wrap{--fade-left: 1;--fade-right: 1}.match-strip-scroll{-webkit-mask-image:none;mask-image:none}.match-strip-scroll-wrap.scroll-left{--fade-left: 0}.match-strip-scroll-wrap.scroll-right{--fade-right: 0}.match-pill{background:#d3c6aa05;border:1px solid rgba(211,198,170,.05);border-radius:8px;padding:8px 10px 6px;min-width:180px;color:var(--text-primary);display:grid;grid-template-rows:auto auto auto;gap:3px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;opacity:.6}.match-pill.selected{border-color:#d3c6aa33;box-shadow:var(--shadow-soft);opacity:1;background:linear-gradient(135deg,#7fbbb324,#7fbbb30d)}.match-pill.current{position:relative;border-color:transparent;background:#e6987514;box-shadow:0 8px 18px #e698752e;cursor:default;transform:translateZ(0);opacity:1}.match-pill.locked,.match-pill:disabled{cursor:not-allowed;opacity:.4;transform:none}.match-pill.finished{opacity:.45}.match-pill.finished .pill-team-row{color:#d3c6aa99}.match-pill.current .pill-team-row{color:#d3c6aafa}.match-pill.current+.match-pill{opacity:.85;border-color:#dbbc7f73;background:#dbbc7f14}.match-pill.current+.match-pill .pill-team-row{color:#d3c6aae6}.match-pill.live{border-color:#7fbbb359;box-shadow:0 8px 24px #7fbbb326}.match-pill.round-boundary{border-color:#dbbc7fa6;background:#dbbc7f2e}.match-pill.midpoint{border-color:#d699b699;background:#d699b61f}.pill-meta.progress{display:flex;align-items:center;gap:8px}.pill-meta.progress.has-flag{justify-content:space-between}.pill-meta.progress:not(.has-flag){justify-content:flex-end}.pill-shot-flag{display:inline-flex;align-items:center;font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:#dbbc7ff2;padding:2px 6px;border-radius:999px;border:1px solid rgba(219,188,127,.45);background:#dbbc7f1f;white-space:nowrap}.pill-lunch-flag{color:#e69875f2;border-color:#e698758c;background:#e6987529}.match-pill.selected.current{transform:none}.match-pill.current:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:1px solid rgba(230,152,117,.9);box-shadow:0 0 0 1px #e6987540,0 8px 18px #e6987538;pointer-events:none;animation:current-pill-pulse 2.6s ease-in-out infinite}.match-pill.current:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;box-shadow:inset 0 1px #d3c6aa2e;pointer-events:none}.match-pill.current,.match-pill.selected.current,.match-pill.current.round-boundary,.match-pill.current.midpoint{border-color:transparent}@media (hover: hover){.match-pill:not(.current):not(:disabled):hover{border-color:#d3c6aa1f;box-shadow:0 6px 16px #00000040}.match-pill.current:hover:before{box-shadow:0 0 0 1px #e6987559,0 10px 22px #e6987547}}@keyframes current-pill-pulse{0%,to{opacity:.85;box-shadow:0 0 0 1px #e6987547,0 8px 18px #e6987533}50%{opacity:1;box-shadow:0 0 0 1px #e6987566,0 12px 26px #e698754d}}.pill-team-row{font-size:13px;line-height:1.2;white-space:normal;word-break:break-word;color:#d3c6aae6}.pill-text-block{transform:translateY(-1px)}.pill-team-row.primary{font-weight:700}.pill-team-row.secondary{font-weight:600;color:#d3c6aabf}.pill-meta{display:flex;align-items:flex-end;justify-content:flex-end;font-size:12px;color:var(--text-muted);min-height:12px;margin-top:0;margin-bottom:0}.pill-result{display:flex;justify-content:center;font-size:12px;margin-top:2px}.pill-result .pill-score{opacity:.9}.pill-score{color:var(--text-primary);font-weight:700}.pill-meta.progress .pill-score{font-size:12px;font-weight:600;opacity:.6}.pill-meta.result .pill-score{font-size:12px;opacity:.9}.shots-panel{display:flex;flex-direction:column;gap:12px;margin-top:10px}.lunch-panel{align-items:center;text-align:center;gap:10px;flex:1;overflow-y:auto;min-height:0}.swish-body{display:grid;grid-template-columns:1fr 420px;gap:2rem;height:calc(92vh - 90px);min-height:0;padding:1.5rem;overflow:clip}.swish-left{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1.5rem;overflow:clip;min-height:0}.swish-left .panel-title{font-size:1.125rem;flex-shrink:0}.swish-right{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.swish-status-header{flex:0 0 auto;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.swish-status-title{font-size:.875rem;font-weight:800;color:var(--text-primary);letter-spacing:1.5px;opacity:.9;text-align:center}.swish-status-count{display:flex;align-items:baseline;justify-content:center;gap:.5rem;line-height:1}.swish-count-number{font-size:3.5rem;font-weight:800;color:#7fbbb3}.swish-count-separator{font-size:2.25rem;font-weight:400;color:var(--text-muted);opacity:.5}.swish-count-total{font-size:2.25rem;font-weight:600;color:var(--text-muted);opacity:.7}.swish-status-subtitle{font-size:.875rem;font-weight:500;color:var(--text-muted);text-align:center}.swish-status-progress{width:100%;height:12px;background:#d3c6aa26;border-radius:6px;overflow:hidden}.swish-status-progress-fill{height:100%;background:linear-gradient(90deg,#7fbbb3d9,#7fbbb3);border-radius:6px;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px #7fbbb34d}.swish-status-scroll{flex:1 1 auto;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:1rem;padding-right:8px;overscroll-behavior:contain}.swish-status-scroll::-webkit-scrollbar{width:4px}.swish-status-scroll::-webkit-scrollbar-track{background:transparent}.swish-status-scroll::-webkit-scrollbar-thumb{background:#d3c6aa40;border-radius:2px}.swish-status-scroll::-webkit-scrollbar-thumb:hover{background:#d3c6aa66}.swish-section{flex-shrink:0}.swish-section-title{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:.75rem;opacity:.8}.swish-status-grid{display:grid;grid-template-columns:1fr;gap:.5rem}.swish-status-row{display:flex;align-items:center;gap:.75rem;min-height:3rem;padding:.5rem .875rem;cursor:pointer;border-radius:8px;transition:all .2s ease;border:1px solid transparent}.swish-status-row input{position:absolute;opacity:0;pointer-events:none}.swish-status-row:hover{background:#d3c6aa14;border-color:#d3c6aa26}.swish-status-row.paid{background:#7fbbb314}.swish-status-row.paid:hover{background:#7fbbb31f;border-color:#7fbbb333}.swish-status-row.paid .swish-status-icon{color:#7fbbb3;font-weight:700;font-size:1.125rem;animation:checkmark-pop .3s cubic-bezier(.68,-.55,.265,1.55)}.swish-status-row.paid .swish-status-name{color:var(--text-primary);opacity:1;font-weight:600}.swish-status-row.unpaid .swish-status-icon{color:#d3c6aa59;font-weight:400;font-size:1rem}.swish-status-row.unpaid .swish-status-name{color:var(--text-muted);opacity:.65}.swish-status-icon{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.swish-status-name{font-size:1rem;font-weight:500;transition:all .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}@keyframes checkmark-pop{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.lunch-qr{width:100%;max-width:380px;border-radius:12px;padding:.875rem;background:#2e383c99;border:1px solid rgba(211,198,170,.08);box-shadow:0 12px 24px #0003;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:visible}.lunch-qr img{max-height:42vh;width:auto;max-width:100%;object-fit:contain;border-radius:12px}.lunch-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;width:100%;margin-top:6px}.lunch-check{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#d3c6aa0a;border:1px solid rgba(211,198,170,.06);cursor:pointer;transition:background .15s ease,border-color .15s ease}.lunch-check input{position:absolute;opacity:0;pointer-events:none}.lunch-check-mark{width:36px;height:36px;border-radius:10px;border:2px solid rgba(211,198,170,.2);display:inline-flex;align-items:center;justify-content:center;background:#d3c6aa0a;flex-shrink:0}.lunch-check.checked .lunch-check-mark{border-color:#7fbbb3b3;background:#7fbbb333}.lunch-check.checked .lunch-check-mark:after{content:"";width:12px;height:20px;border-right:3px solid rgba(211,198,170,.95);border-bottom:3px solid rgba(211,198,170,.95);transform:rotate(40deg)}.lunch-check-name{font-weight:600;color:var(--text-primary);font-size:14px}.lunch-check:hover{border-color:#d3c6aa29;background:#d3c6aa0f}.swish-tabs{display:flex;gap:8px;border-bottom:1px solid rgba(211,198,170,.15);overflow-x:auto;margin:-20px -20px 0;padding:12px 20px}.swish-tab{flex-shrink:0;padding:8px 16px;border-radius:8px;border:1px solid rgba(211,198,170,.2);background:transparent;color:var(--text-muted);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.swish-tab:hover{border-color:#d3c6aa66;background:#d3c6aa14}.swish-tab.active{border-color:#7fbbb399;background:#7fbbb326;color:var(--text-primary)}.swish-amount-box{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin:.75rem 0;flex-shrink:0}.swish-amount-value{font-size:4rem;font-weight:800;color:var(--text-primary);line-height:1;letter-spacing:-.02em}.swish-amount-label{font-size:.875rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.swish-instructions{display:flex;flex-direction:column;gap:8px;text-align:left;max-width:300px;margin:16px auto}.swish-instruction-step{font-size:14px;font-weight:600;color:var(--text-primary);padding:8px 12px;background:#d3c6aa14;border-radius:8px;border-left:3px solid rgba(127,187,179,.5)}.swish-recipient-box{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin:.875rem 0;padding:1rem;background:#d3c6aa1a;border-radius:10px;border:1px solid rgba(211,198,170,.2);flex-shrink:0}.swish-recipient-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.swish-recipient-name{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.swish-recipient-number{font-size:1.0625rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:.02em}.swish-progress{display:flex;flex-direction:column;gap:6px;margin:12px 0 10px}.swish-progress-text{font-size:13px;font-weight:600;color:var(--text-primary);text-align:center}.swish-progress-bar{width:100%;height:6px;background:#d3c6aa33;border-radius:3px;overflow:hidden}.swish-progress-fill{height:100%;background:linear-gradient(90deg,#7fbbb3b3,#7fbbb3e6);border-radius:3px;transition:width .3s ease}.lunch-check-paid{font-size:13px;font-weight:600;color:#7fbbb3e6;margin-left:6px}.shots-section{display:flex;flex-direction:column;gap:6px}.shots-line{font-weight:700;color:var(--text-primary)}.shots-list{display:flex;flex-direction:column;gap:6px}.shots-calculating{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 20px}.calculating-spinner{width:32px;height:32px;border:3px solid rgba(211,198,170,.2);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.shots-awards{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.shots-award-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:16px;padding:16px 18px;background:var(--bg2);border-radius:10px;border:1px solid rgba(211,198,170,.08);transition:all .2s ease}.shots-award-card:hover{background:var(--bg3);border-color:#d3c6aa1f}.shots-award-card.doubleLeader{background:linear-gradient(135deg,#dbbc7f1f,#dbbc7f0f);border:1px solid rgba(216,207,164,.35);box-shadow:inset 0 0 20px #d8cfa414}.shots-award-card.doubleLeader:hover{background:linear-gradient(135deg,#dbbc7f29,#dbbc7f14);border-color:#d8cfa473}.awardIconWrap{display:flex;align-items:center;justify-content:center}.awardIcon{width:22px;height:22px;filter:brightness(0) saturate(100%) invert(86%) sepia(15%) saturate(449%) hue-rotate(6deg) brightness(98%) contrast(91%);opacity:.75}.awardIcon.gold{opacity:1;filter:brightness(0) saturate(100%) invert(86%) sepia(15%) saturate(449%) hue-rotate(6deg) brightness(98%) contrast(91%) drop-shadow(0 0 6px rgba(216,207,164,.35))}.award-info{display:flex;flex-direction:column;gap:6px;min-width:0}.award-name{font-size:1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.award-badges{display:flex;gap:6px;flex-wrap:wrap}.awardBadge{padding:3px 10px;border-radius:999px;font-size:11px;letter-spacing:.08em;border:1px solid rgba(216,207,164,.25);background:#d8cfa414;color:#d8cfa4;font-weight:600}.awardBonus{font-size:2rem;font-weight:800;color:var(--green);font-family:Barlow Condensed,sans-serif;letter-spacing:-.02em;text-align:right;min-width:60px;text-shadow:0 0 8px rgba(166,191,98,.35)}.doubleLeader .awardBonus{color:var(--yellow)}.shots-totals-section{margin-top:12px;padding-top:20px;border-top:1px solid rgba(211,198,170,.08)}.shots-totals-toggle{display:flex;align-items:center;gap:8px;padding:10px 12px;background:transparent;border:1px solid rgba(211,198,170,.1);border-radius:8px;color:var(--text-muted);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;text-align:left}.shots-totals-toggle:hover{background:#d3c6aa0d;border-color:#d3c6aa26;color:var(--text-primary)}.toggle-arrow{font-size:.7rem;transition:transform .2s ease;display:inline-block;width:12px}.shots-totals-list{margin-top:16px;display:flex;flex-direction:column;gap:8px;padding:16px;background:#00000026;border-radius:8px}.shots-total-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;font-size:.875rem;color:var(--text-muted);font-family:SF Mono,Consolas,monospace}.total-name{font-weight:500;color:var(--text-primary)}.total-dots{border-bottom:1px dotted rgba(211,198,170,.2);height:1px;margin-bottom:6px}.total-count{font-weight:600;color:var(--text-muted);text-align:right;white-space:nowrap}.match-strip-actions{display:flex;align-items:center;gap:0;position:static;z-index:1;justify-content:center;width:56px;height:46px;pointer-events:auto}.match-strip-cta{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;min-width:max-content}.match-strip-icon{border-radius:12px;border:1px solid rgba(211,198,170,.08);background:#d3c6aa0a;color:var(--text-muted);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;padding:0;pointer-events:auto;position:relative;z-index:2}.match-strip-icon svg{width:16px;height:16px}.match-strip-icon:hover{border-color:#d3c6aa24;background:#d3c6aa0f;color:var(--text-primary)}.match-strip-progress-bar{display:flex;align-items:center;gap:12px;width:100%;margin-top:6px}.playoff-cta{border-color:#a7c08059;background:#a7c0801f;color:var(--text-primary);box-shadow:0 0 0 1px #a7c0802e;position:relative}.playoff-cta:not(:disabled):hover,.playoff-cta:not(:disabled):focus-visible{border-color:#a7c0808c;box-shadow:0 0 0 1px #a7c08047}.playoff-cta:disabled{opacity:.55;border-color:#d3c6aa29;background:#d3c6aa0a;box-shadow:none;cursor:not-allowed}.playoff-cta-label.hover{display:none}.playoff-cta:not(:disabled):hover .playoff-cta-label.idle,.playoff-cta:not(:disabled):focus-visible .playoff-cta-label.idle{display:none}.playoff-cta:not(:disabled):hover .playoff-cta-label.hover,.playoff-cta:not(:disabled):focus-visible .playoff-cta-label.hover{display:inline}.playoff-link{display:inline-flex;align-items:center;gap:8px}.playoff-pill{font-size:11px;padding:4px 8px;border-radius:999px;border:1px solid rgba(211,198,170,.1);color:var(--text-muted);background:#d3c6aa0a}.playoff-pill.active{color:var(--blue);border-color:#7fbbb373;background:#7fbbb31f}.playoff-pill.done{color:var(--green);border-color:#a7c0804d;background:#a7c0801f}.progress-bar{position:relative;flex:1;height:4px;border-radius:999px;background:#d3c6aa0f;overflow:hidden}.progress-track{position:absolute;top:0;right:0;bottom:0;left:0;background:#d3c6aa0a}.progress-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:0%;background:linear-gradient(90deg,#7fbbb380,#7fbbb333);transition:width .2s ease}.match-row{width:100%;min-width:0;border:none;background:#d3c6aa05;color:var(--text-primary);padding:10px 12px;display:grid;grid-template-rows:auto auto auto;gap:4px;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease,opacity .15s ease,border-color .15s ease;border-left:3px solid transparent;border-radius:10px;opacity:.92;border:1px solid rgba(211,198,170,.04)}.match-row.selected{border-left-color:var(--accent-primary);box-shadow:var(--shadow-soft);transform:translateY(-1px);opacity:1;border-color:#7fbbb340;animation:subtle-highlight .2s ease}.match-list-scroll{display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:calc(100vh - 240px);padding-right:6px}.round-group{display:flex;flex-direction:column;gap:6px}.round-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.match-time{font-size:12px;color:var(--text-muted)}.match-status{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.match-status.played,.match-status.upcoming{color:var(--text-muted)}.match-teams{display:flex;align-items:baseline;gap:6px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;font-size:15px;font-family:Barlow Condensed,Manrope,sans-serif}.vs{color:var(--text-muted);font-weight:500}.match-meta{display:flex;align-items:center;gap:6px}.match-score{font-weight:800;color:var(--accent-primary);font-size:16px}.current-match{display:flex;flex-direction:column;gap:12px;height:100%;box-shadow:none;padding:16px 14px 12px;background:linear-gradient(140deg,#2e383cf2,#374145eb);border-radius:12px;border:1px solid rgba(211,198,170,.05)}.current-match.is-locked .goals-card,.current-match.is-locked .goal-actions,.current-match.is-locked .team-total,.current-match.is-locked .actions-row{opacity:.6}.match-panel.entering{animation:panel-enter .2s ease}.match-panel.leaving{animation:panel-leave .18s ease}@keyframes panel-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-leave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}.match-header{display:flex;align-items:baseline;justify-content:space-between;padding:6px 2px 12px}.match-counter{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.label{font-size:11px;color:var(--text-muted);letter-spacing:.4px;text-transform:uppercase}.status-stack{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--text-muted)}.match-nav-row{display:flex;align-items:center;gap:8px;justify-content:flex-end}.status-chip{padding:6px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.6px;font-weight:800;font-size:12px;border:1px solid rgba(211,198,170,.14);background:#d3c6aa0f}.status-chip.pulse{animation:status-pulse .2s ease}@keyframes status-pulse{0%{transform:scale(.96);box-shadow:0 0 #e6987500}to{transform:scale(1);box-shadow:0 0 #e6987533}}.status-chip.upcoming{color:var(--text-muted)}.status-chip.live,.status-chip.active{color:var(--orange);border-color:#e6987573;background:#e698751f}.status-chip.final,.status-chip.completed{color:var(--green);border-color:#a7c0804d;background:#a7c0801f}.overtime-chip{padding:0;border:none;background:transparent;color:var(--text-muted)}.save-chip{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;color:var(--green);border:1px solid rgba(167,192,128,.4);background:#a7c08024;animation:save-pop .2s ease}@keyframes save-pop{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.teams-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.match-header-row{display:flex;align-items:center;justify-content:center;gap:10px;padding:2px 0 4px;margin:0}.match-header-score{font-size:14px;font-weight:700;color:var(--text-primary);letter-spacing:.3px;white-space:nowrap}.match-header-label{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}.match-header-line{height:1px;width:100%;max-width:120px;background:#d3c6aa33}.match-players{display:flex;flex-direction:column;gap:8px}.team-block{display:flex;flex-direction:column;gap:6px}.team-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px}.team-name{font-size:28px;font-weight:800;color:var(--text-primary);letter-spacing:.3px;font-family:Barlow Condensed,Manrope,sans-serif}.team-name.emphasize{font-size:32px}.current-match .team-name.emphasize{font-size:22px;color:var(--text-muted);font-weight:600;letter-spacing:.2px}.team-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.goals-card{padding:0;min-height:120px}.goals-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.goal-row{display:flex;flex-direction:column;align-items:flex-start;padding:12px 14px;border-radius:14px;background:#d3c6aa0a;border:1px solid rgba(211,198,170,.06)}.goal-row:last-child{border-bottom:none}.goal-row.editable{gap:10px}.goal-row.editable .player-name{flex:1 1 auto}.player-row-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%}.player-name{color:var(--text-primary);font-size:16px;font-weight:700}.player-team-tag{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);padding:2px 6px;border-radius:999px;border:1px solid rgba(211,198,170,.12);background:#d3c6aa0a;font-weight:600}.goal-count{font-weight:800;color:var(--accent-primary);font-size:17px}.column.right .top-scorer-row .goal-count{color:#d3c6aabf;font-size:13px;font-weight:700;text-align:right}.top-scorer-row .player-name{font-size:12px;font-weight:600;color:#d3c6aad1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-input{width:70px;padding:6px 8px;border-radius:8px;border:1px solid rgba(211,198,170,.12);background:#d3c6aa0a;color:var(--text-primary)}.goal-stepper{display:inline-flex;align-items:center;gap:4px}.goal-actions{display:flex;align-items:center;gap:16px;width:100%;justify-content:center}.goal-stepper input{width:56px;text-align:center;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;font-size:14px}.goal-value{min-width:72px;text-align:center;font-weight:800;color:var(--text-primary);border-radius:12px;padding:8px 14px;display:inline-flex;align-items:center;justify-content:center;font-size:22px}.goal-value.readonly{background:transparent;border:none}.goal-value.pulse-plus{animation:goal-pulse-plus .08s ease}.goal-value.pulse-minus{animation:goal-pulse-minus .08s ease}@keyframes goal-pulse-plus{0%{opacity:.7;color:var(--green)}to{opacity:1;color:var(--text-primary)}}@keyframes goal-pulse-minus{0%{opacity:.7;color:var(--red)}to{opacity:1;color:var(--text-primary)}}.goal-stepper input::-webkit-outer-spin-button,.goal-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.goal-stepper button{width:28px;height:28px;border-radius:6px;border:1px solid rgba(211,198,170,.1);background:#d3c6aa0d;color:var(--text-primary);font-weight:700;cursor:pointer;font-size:16px}.goal-action{width:72px;height:56px;border-radius:14px;border:1px solid rgba(211,198,170,.2);background:#d3c6aa08;color:var(--text-primary);font-weight:700;cursor:pointer;font-size:22px;transition:background .08s ease,box-shadow .08s ease,border-color .08s ease,color .08s ease,filter .08s ease;box-shadow:inset 0 0 0 1px #0000001f;position:relative}.current-match .goal-action:not(:disabled):hover{background:#d3c6aa0f;border-color:#d3c6aa4d;box-shadow:inset 0 0 0 1px #d3c6aa14}.goal-action-plus{border-color:#a7c08080;background:#a7c08029;color:var(--text-primary)}.goal-action-minus{border-color:#e67e8052;background:#e67e8014;color:var(--text-primary)}.current-match .goal-action-plus:not(:disabled):hover{background:#a7c08033;border-color:#a7c08099}.current-match .goal-action-minus:not(:disabled):hover{background:#e67e801f;border-color:#e67e8073}.current-match .goal-action:not(:disabled):active{box-shadow:inset 0 0 0 1px #d3c6aa29;transform:translateY(1px);filter:brightness(.96)}.player-card{box-shadow:inset 0 0 0 1px #d3c6aa05}.goal-stepper button:disabled{opacity:.5;cursor:not-allowed}.goal-action:disabled{opacity:.48;cursor:not-allowed;box-shadow:inset 0 0 0 1px #00000014}.goal-action:active:not(:disabled){background:#d3c6aa14;box-shadow:inset 0 0 0 1px #d3c6aa29}.current-match .goal-action:disabled:hover,.current-match .goal-action:disabled:active{background:inherit;border-color:inherit;box-shadow:inherit;transform:none;filter:none}.goal-action:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.undo-button{margin-left:auto}.goals-empty{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:13px;padding:8px 0}.goals-empty-dot{width:10px;height:10px;border-radius:50%;background:#d3c6aa14;box-shadow:0 0 0 4px #d3c6aa0a}.actions-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.sos-map{margin-top:8px;padding:8px 10px;border-radius:12px;background:#d3c6aa0a;border:1px solid rgba(211,198,170,.08);display:flex;flex-direction:column;gap:6px}.sos-map-summary{cursor:pointer;list-style:none;font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 2px;border-radius:8px;-webkit-user-select:none;user-select:none}.sos-map-summary::-webkit-details-marker{display:none}.sos-map-summary:after{content:"▾";font-size:12px;color:var(--text-muted);transition:transform .15s ease}.sos-map[open]>.sos-map-summary:after{transform:rotate(180deg)}.sos-map-summary:hover{background:#d3c6aa0f;color:var(--text-primary)}.sos-map-summary:focus,.sos-map-summary:focus-visible{outline:none;box-shadow:none}.sos-map-grid{display:grid;grid-template-columns:1fr;gap:6px}.sos-map-row{display:flex;flex-direction:column;gap:4px;font-size:12px}.sos-map-label{text-transform:uppercase;font-size:10px;letter-spacing:.6px;color:var(--text-muted)}.sos-map-select{padding:4px 8px;border-radius:6px;border:1px solid rgba(211,198,170,.14);background:#d3c6aa0a;color:var(--text-primary);font-size:13px}.actions-row.button-stack{justify-content:flex-start}.actions-row.footer-actions{align-items:center;justify-content:space-between;gap:14px}.actions-row.footer-actions .admin-button.danger{min-width:180px}.overtime-toggle{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);cursor:pointer}.actions-row.top-gap{margin-top:12px}.actions-row.top-gap label{display:inline-flex;align-items:center;gap:8px;font-weight:600}.actions-row.top-gap input[type=checkbox]{position:relative;width:18px;height:18px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(211,198,170,.15);border-radius:4px;background:#d3c6aa0a;cursor:pointer}.actions-row.top-gap input[type=checkbox]:checked{border-color:#7fbbb399;background:linear-gradient(135deg,#7fbbb359,#7fbbb333)}.actions-row.top-gap input[type=checkbox]:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;background:linear-gradient(45deg,transparent 45%,rgba(211,198,170,.9) 45%,rgba(211,198,170,.9) 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,rgba(211,198,170,.9) 45%,rgba(211,198,170,.9) 55%,transparent 55%);transform:scale(0);transition:transform .1s ease}.actions-row.top-gap input[type=checkbox]:checked:after{transform:scale(1)}.overtime-toggle input[type=checkbox]{position:relative;width:44px;height:44px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(211,198,170,.2);border-radius:12px;background:#d3c6aa0a;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.current-match .overtime-toggle:hover input[type=checkbox]{border-color:#d3c6aa4d;background:#d3c6aa14}.current-match .overtime-toggle input[type=checkbox]:active{transform:scale(.98)}.overtime-toggle input[type=checkbox]:checked{border-color:#7fbbb3b3;background:#7fbbb347}.overtime-toggle input[type=checkbox]:after{content:"";width:18px;height:18px;background:linear-gradient(45deg,transparent 44%,rgba(211,198,170,.92) 44%,rgba(211,198,170,.92) 56%,transparent 56%),linear-gradient(-45deg,transparent 44%,rgba(211,198,170,.92) 44%,rgba(211,198,170,.92) 56%,transparent 56%);transform:scale(0);transition:transform .12s ease}.overtime-toggle input[type=checkbox]:checked:after{transform:scale(1)}.team-total{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:10px 0 6px}.team-total.inline{margin:0;align-items:center}.team-total.inline .total-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}.team-total .total-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.total-score{font-size:30px;font-weight:800;color:#d3c6aac7;letter-spacing:.4px}.total-score.display{padding:6px 10px;border-radius:10px;background:#d3c6aa0a;border:1px solid rgba(211,198,170,.06);min-width:58px;text-align:center}.muted{color:var(--text-muted);font-size:13px}.empty-state{margin:48px auto;max-width:520px;padding:24px;text-align:center;border-radius:16px;background:#2e383cbf;border:1px solid rgba(211,198,170,.08)}.mode-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12px;letter-spacing:.4px;text-transform:uppercase;font-weight:700}.mode-badge.replay{color:var(--yellow);border:1px solid rgba(219,188,127,.35);background:#dbbc7f1f}.playoff-shell{min-height:100vh;padding:18px 18px 96px;display:flex;flex-direction:column;gap:16px}.playoff-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.playoff-devtools{padding:8px 10px;border-radius:10px;border:1px dashed rgba(211,198,170,.12);background:#d3c6aa05;min-width:220px}.playoff-devtools summary{cursor:pointer;font-size:12px;letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted);list-style:none}.playoff-devtools summary::-webkit-details-marker{display:none}.playoff-devtools summary:after{content:"▾";float:right;color:var(--text-muted)}.playoff-devtools[open] summary:after{content:"▴"}.devtools-row{display:flex;flex-direction:column;gap:8px;margin-top:10px}.app-footer .playoff-devtools{position:relative;min-width:200px}.app-footer .playoff-devtools .devtools-row{display:none;position:absolute;right:0;bottom:calc(100% + 10px);margin-top:0;padding:10px;border-radius:10px;border:1px solid rgba(211,198,170,.12);background:#272e33fa;box-shadow:0 12px 24px #00000040;z-index:40;min-width:220px}.app-footer .playoff-devtools[open] .devtools-row{display:flex}.playoff-title{font-size:20px;font-weight:800}.playoff-bracket{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}.playoff-bracket.compact{display:block;overflow-x:auto}.playoff-bracket.compact .preview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.playoff-column{display:flex;flex-direction:column;gap:6px;min-width:220px}.playoff-card{background:#d3c6aa0a;border:1px solid rgba(211,198,170,.06);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;text-align:center;align-items:center;cursor:pointer;color:var(--text-primary);transition:border-color .2s ease,background .2s ease,transform .2s ease}.playoff-card-header{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.playoff-header-right{display:inline-flex;align-items:center;gap:6px}.playoff-card.is-selected{border-color:#7fbbb38c;box-shadow:0 0 0 1px #7fbbb333}.playoff-card.is-live{border-color:#7fbbb380;background:#7fbbb31f}.playoff-card.is-finished{background:#d3c6aa0d}.playoff-card.is-waiting{border-style:dashed;opacity:.7}.playoff-card.is-ready:not(.is-live):not(.is-finished){border-color:#d3c6aa33}.playoff-status-dot{width:8px;height:8px;border-radius:999px;background:#d3c6aa59;margin-top:4px}.playoff-card.is-live .playoff-status-dot{background:var(--orange);box-shadow:0 0 8px #e6987599}.playoff-card.is-finished .playoff-status-dot{background:#d3c6aab3}.playoff-card.is-ready .playoff-status-dot{background:#d3c6aa8c}.playoff-card.is-waiting .playoff-status-dot{background:#d3c6aa40}.playoff-teams{display:flex;flex-direction:column;gap:8px;font-weight:600;font-size:11px;align-items:center}.playoff-team-block{display:flex;flex-direction:column;gap:4px;align-items:center}.playoff-team-text{letter-spacing:.3px;font-weight:600;white-space:nowrap}.playoff-team-helper{font-size:10px;color:var(--text-muted)}.playoff-vs{font-size:10px;color:var(--text-muted);text-transform:uppercase;width:100%;text-align:center;margin:2px 0}.playoff-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.playoff-winner{font-size:11px;color:var(--green);font-weight:600}.playoff-main{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:stretch}@media (max-width: 960px){.playoff-main{grid-template-columns:1fr}}.playoff-main .column{display:flex;flex-direction:column;min-height:0}.playoff-main .column.right .top-scorers{flex:1 1 auto;min-height:0}.playoff-main .column.right .top-scorers-list{flex:1 1 auto;overflow-y:auto;min-height:0}.series-games{margin-top:14px;padding:12px;border-radius:12px;border:1px solid rgba(211,198,170,.06);background:#d3c6aa08}.series-games-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.series-game-row{display:grid;grid-template-columns:1fr 80px 90px;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;border:1px solid rgba(211,198,170,.08);background:#d3c6aa05;color:var(--text-primary);text-align:left;cursor:pointer}.series-game-row.selected{border-color:#7fbbb38c;background:#7fbbb31f}.series-game-row:disabled{opacity:.6;cursor:not-allowed}.series-game-label{font-weight:600;font-size:12px}.series-game-score{font-size:12px;color:var(--text-muted);text-align:right}.series-game-status{font-size:11px;color:var(--text-muted);text-align:right}.playoff-bracket.compact .panel-title{font-size:12px;letter-spacing:.4px}.playoff-bracket.compact .playoff-card{border-style:solid}.playoff-bracket.compact .playoff-status-dot{width:6px;height:6px}.playoff-empty{padding:16px;border-radius:12px;border:1px dashed rgba(211,198,170,.14);background:#d3c6aa0a;display:flex;flex-direction:column;gap:6px}.playoff-empty-title{font-weight:700}.main-area.single{grid-template-columns:1fr}.error-text{color:var(--red);font-size:13px}.standings-compact{cursor:default;padding:4px 0}.standings-compact-table{display:flex;flex-direction:column;gap:0;transition:all .2s ease}.standings-compact-row{position:relative;display:grid;grid-template-columns:28px 1fr 46px;align-items:center;padding:4px 6px;border-bottom:1px solid rgba(211,198,170,.08);line-height:1.2;transition:background .2s ease,border-color .2s ease;will-change:transform}.standings-compact-row:last-child{border-bottom:none}.standings-compact-row.active-team{border-left:2px solid rgba(230,152,117,.5);padding-left:4px}.standings-compact-row.playoff-bye{background:#a7c08042;border-color:#a7c08073;box-shadow:inset 3px 0 #a7c080bf}.standings-compact-row.playoff-advance{background:#dbbc7f2e;border-left:2px solid rgba(219,188,127,.75);padding-left:4px}.standings-compact-row.playoff-out{background:#e67e8029;border-color:#e67e804d;box-shadow:inset 3px 0 #e67e80b3}.standings-compact-row .team-short{text-transform:uppercase;font-weight:600;letter-spacing:.4px;color:var(--text-primary);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank{color:#d3c6aa8c;font-weight:600;font-size:11px}.points{text-align:right;font-weight:900;color:var(--accent-primary);font-size:15px}.column.right .points{font-weight:600;color:#d3c6aab3;font-size:12px}.standings-compact-row:first-child .rank,.standings-compact-row:first-child .points{color:var(--accent-primary)}.rank.top1{color:var(--accent-primary);font-size:16px}.rank.top2{color:var(--accent-secondary)}.team-lead{font-size:15px}.points-lead{color:var(--accent-primary)}.note{margin-top:6px;font-size:12px}.hint{margin-top:6px;font-size:12px;color:var(--text-muted)}.hint-button{margin-top:8px;padding:0;border:none;background:transparent;color:var(--text-muted);font-size:12px;text-decoration:underline;cursor:pointer;align-self:flex-start;text-align:left}.hint-button:hover,.hint-button:focus-visible{color:var(--text-primary);outline:none}.top-scorers{margin-top:12px;padding:4px 0}.top-scorers-list{display:flex;flex-direction:column;gap:0}.top-scorer-row{display:grid;grid-template-columns:28px 1fr 46px;align-items:center;padding:3px 6px;border-bottom:1px solid rgba(211,198,170,.08);line-height:1.2;transition:transform .2s ease,background .2s ease;animation:rowAppear .25s ease}.top-scorer-row:last-child{border-bottom:none}.column.right .top-scorers{padding-top:8px;border-top:1px solid rgba(211,198,170,.08)}.top-scorer-row:nth-child(n+4){opacity:.68}.column.right .top-scorers .panel-title{font-size:11px;color:#d3c6aa8c}.top-scorer-row:nth-child(1) .player-name,.top-scorer-row:nth-child(1) .goal-count{font-weight:800;color:var(--accent-primary)}.top-scorer-row:nth-child(2) .player-name,.top-scorer-row:nth-child(2) .goal-count,.top-scorer-row:nth-child(3) .player-name,.top-scorer-row:nth-child(3) .goal-count{font-weight:700;color:#d3c6aad9}.top-scorer-row .player-name{font-size:12px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:#d3c6aac7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-scorer-row .goal-count{text-align:right;font-weight:600;font-size:12px;color:#d3c6aab3}@keyframes rowAppear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060d17bf;display:flex;align-items:center;justify-content:center;z-index:100;opacity:1;transition:opacity .2s ease}.modal{background:var(--bg-panel-soft);border:1px solid rgba(211,198,170,.05);border-radius:10px;padding:14px;width:80vw;max-width:960px;max-height:92vh;display:flex;flex-direction:column;box-shadow:var(--shadow-soft);transform:translateY(0);opacity:1;transition:transform .2s ease,opacity .2s ease}.swish-modal{height:92vh;max-height:92vh;width:90vw;max-width:1400px;overflow:hidden;min-height:0}.modal-overlay.entering{animation:modal-fade-in .2s ease}.modal.entering{animation:modal-enter .2s ease}.modal-overlay.leaving{opacity:0}.modal.leaving{opacity:0;transform:translateY(8px)}@keyframes modal-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.playoff-start-modal{max-width:1024px}.playoff-start-modal .admin-button.primary{background:#a7c08038;border-color:#a7c08080;color:var(--text-primary)}.playoff-start-modal .admin-button.primary:disabled{background:#d3c6aa0d;border-color:#d3c6aa2e;color:var(--text-muted)}.playoff-start-modal .admin-button.primary:not(:disabled):hover{border-color:#a7c080a6;background:#a7c08047}.playoff-start-modal .ghost-button{border-color:#d3c6aa2e;color:var(--text-muted)}.playoff-preview{display:flex;flex-direction:column;gap:16px;margin-top:12px}.preview-section{display:flex;flex-direction:column;gap:10px}.preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.preview-grid-bracket .preview-match{opacity:.85;transition:opacity .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.preview-grid-bracket .preview-match.is-live,.preview-grid-bracket .preview-match.is-active{opacity:1;border-color:#a7c08099;box-shadow:0 0 0 1px #a7c0804d,0 10px 20px #a7c0801f}.preview-grid-bracket .preview-match.is-selected:not(.is-live){opacity:.92;border-color:#d3c6aa33;box-shadow:0 0 0 1px #d3c6aa1f}.preview-grid-bracket .preview-match.is-finished{background:#d3c6aa08}.preview-grid-bracket .preview-match.is-finished:after{content:"";position:absolute;top:8px;right:8px;width:6px;height:6px;border-radius:999px;background:#d3c6aa99}.preview-grid-bracket .preview-match.is-flash{animation:preview-flash .16s ease}@keyframes preview-flash{0%{box-shadow:0 0 #a7c08000}50%{box-shadow:0 0 0 1px #a7c08073,0 10px 18px #a7c0802e}to{box-shadow:0 0 #a7c08000}}.preview-team-text.winner{font-weight:700}.preview-active-label{align-self:center;margin-top:2px;padding:2px 8px;border-radius:999px;font-size:9px;font-weight:600;color:var(--green);letter-spacing:.6px;text-transform:uppercase;border:1px solid rgba(167,192,128,.35);background:#a7c08014}.preview-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preview-panel{background:var(--bg-panel-soft);border:1px solid rgba(211,198,170,.08);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}.playoff-start-modal .preview-panel .top-scorers-list{max-height:220px;overflow-y:auto;padding-right:6px}.preview-subtitle{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.preview-round{position:relative;padding-left:0;border-left:none;display:flex;flex-direction:column;gap:10px}.preview-round-title{display:flex;align-items:baseline;gap:6px;font-size:14px;text-transform:uppercase;letter-spacing:1px;color:#f5f0e6f2;font-weight:800;padding-bottom:6px;border-bottom:1px solid rgba(211,198,170,.15)}.preview-round-name{color:#d3c6aaf2}.preview-round-bo{font-size:9px;letter-spacing:.3px;color:#d3c6aa73;font-weight:600}.preview-match{padding:10px 12px;border-radius:8px;background:#d3c6aa0f;border:1px solid rgba(211,198,170,.12);display:flex;flex-direction:column;gap:10px;position:relative;align-items:center;width:100%;color:var(--text-primary);height:116px;min-height:116px;justify-content:center}.preview-match-button{width:100%;border:1px solid rgba(211,198,170,.08);background:#d3c6aa0a;text-align:center;cursor:pointer;color:var(--text-primary);font-family:inherit}.preview-match:hover{border-color:#d3c6aa33;box-shadow:0 6px 14px #00000040}.preview-grid-bracket .preview-match.preview-match-button.is-active,.preview-grid-bracket .preview-match.preview-match-button.is-live{border-color:#a7c08099;box-shadow:0 0 0 1px #a7c0804d,0 10px 20px #a7c0801f}.preview-match.is-selected:not(.is-live):not(.is-active){border-color:#7fbbb38c;box-shadow:0 0 0 1px #7fbbb333}.preview-match.is-live{border-color:#7fbbb380;background:#7fbbb31f}.preview-match.is-finished{background:#d3c6aa0d}.preview-match.is-waiting{border-style:dashed;opacity:.7}.preview-line{display:none}.preview-team-text{letter-spacing:.25px;font-weight:700;color:#fffaf0fa;font-size:14px;white-space:nowrap;text-align:center;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;transition:opacity .16s ease}.preview-team-text.placeholder{color:#d3c6aa8c;font-weight:500;font-size:12px;font-style:italic;padding:2px 6px;border-radius:999px;border:1px dashed rgba(211,198,170,.25);background:#d3c6aa0a}.preview-team-block{display:flex;flex-direction:column;align-items:center;gap:10px}.preview-match.is-waiting .preview-team-text{opacity:.6}.preview-match.is-ready .preview-team-text{opacity:1}.preview-vs{color:var(--text-muted);text-transform:uppercase;font-size:8px;width:100%;text-align:center;margin:4px 0;letter-spacing:.5px;opacity:.45}.preview-grid-bracket .preview-match{padding:8px;gap:8px;height:112px;min-height:112px}.preview-grid-bracket .preview-team-block{gap:8px}.preview-grid-bracket .preview-vs{margin:2px 0}.preview-active-label{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--green);min-height:14px}.preview-active-label.is-winner{color:var(--yellow)}.preview-meta{font-size:11px;color:var(--text-muted);min-height:14px}.preview-active-label.is-empty,.preview-meta.is-empty{visibility:hidden}.playoff-start-modal .preview-active-label,.playoff-start-modal .preview-meta{display:none}@keyframes match-pulse{0%,to{border-color:#ffd700b3;box-shadow:0 0 0 1px #ffd70066,0 0 20px #ffd7004d,0 10px 25px #0000004d}50%{border-color:#ffd700e6;box-shadow:0 0 0 2px #ffd70099,0 0 30px #ffd70080,0 10px 30px #0006}}.preview-grid-bracket .preview-match.match-live-pulsing{animation:match-pulse 2s ease-in-out infinite;opacity:1;border-width:2px;background:#ffd70014}.preview-score{font-size:16px;font-weight:800;color:#ffd700f2;letter-spacing:1px;margin-top:2px;padding:4px 10px;border-radius:6px;background:#ffd7001f;border:1px solid rgba(255,215,0,.3);min-width:45px;text-align:center}.preview-grid-bracket .preview-match.is-finished .preview-score{color:#d3c6aad9;background:#d3c6aa14;border-color:#d3c6aa40}.preview-team-text.placeholder{color:#d3c6aa59;font-weight:400;font-size:11px;font-style:italic;padding:3px 8px;border-radius:999px;border:1px dashed rgba(211,198,170,.18);background:#d3c6aa05;opacity:.6}.preview-match.is-waiting .preview-team-text.placeholder{opacity:.45}.preview-grid-bracket .preview-round:first-child{gap:18px}.preview-grid-bracket{position:relative;padding:12px 0}.preview-round{position:relative}.preview-round:nth-child(1):after{content:"";position:absolute;right:-6px;top:50%;width:12px;height:2px;background:linear-gradient(to right,rgba(211,198,170,.3),transparent);pointer-events:none}.preview-round:nth-child(2):after{content:"";position:absolute;right:-6px;top:50%;width:12px;height:2px;background:linear-gradient(to right,rgba(211,198,170,.3),transparent);pointer-events:none}.preview-round:nth-child(2):before{content:"";position:absolute;right:-6px;top:30%;bottom:30%;width:2px;background:#d3c6aa40;pointer-events:none}.preview-round:nth-child(1) .preview-match:nth-child(2):after,.preview-round:nth-child(1) .preview-match:nth-child(3):after{content:"";position:absolute;right:-6px;top:0;height:100%;width:2px;background:#d3c6aa33;pointer-events:none}.victory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1e2326b3;z-index:999;pointer-events:auto;--modal-fade-ms: .6s;--glow-start-ms: .6s;--glow-pulse-ms: 525ms}.victory-overlay:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:-1}.victory-card{position:relative;z-index:1001;text-align:center;padding:32px 40px;border-radius:16px;background:#2e383cd9;border:1px solid rgba(211,198,170,.12);box-shadow:0 18px 40px #00000059;opacity:0;transform:scale(.98)}.victory-overlay.phase-entrance .victory-card{animation:victory-entrance var(--modal-fade-ms) ease-out forwards}.victory-overlay.phase-celebration .victory-card{opacity:1;transform:scale(1)}.victory-overlay.phase-outro .victory-card{animation:victory-outro var(--modal-fade-ms) ease-in forwards}.victory-label{font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.victory-name{font-size:38px;font-weight:800;color:var(--text-primary);letter-spacing:.4px;margin-bottom:6px}.victory-overlay.phase-celebration .victory-name{animation:victory-glow-cycle 7s ease-in-out infinite}.victory-tournament{font-size:12px;color:#d3c6aab3;letter-spacing:.4px}.winnerLogo{height:128px;opacity:.5;margin-bottom:10px}.winnerName{font-size:40px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;text-shadow:0 0 14px rgba(216,207,164,.45),0 0 48px rgba(216,207,164,.15)}.winnerSubWrap{margin-top:8px;display:inline-block;padding:4px 10px;border-radius:6px;background:#00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.winnerSub{font-size:11px;letter-spacing:.14em;color:#e8f5dcbf}.victory-confetti{position:fixed;top:0;right:0;bottom:0;left:0;overflow:visible;z-index:9500;pointer-events:none;opacity:0;animation:victory-confetti-in .2s ease-out .15s forwards}.victory-confetti canvas{width:100%!important;height:100%!important;display:block!important;position:absolute!important;top:0!important;left:0!important}.reveal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,#121a1f,#05080a 70%);overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:35;cursor:pointer;-webkit-user-select:none;user-select:none}.reveal-center{display:flex;flex-direction:column;align-items:center;gap:16px;transition:opacity .8s ease-out}.reveal-center.reveal-fade-out{opacity:0}.reveal-logo-large{width:clamp(220px,28vw,340px);height:auto;filter:drop-shadow(0 8px 24px rgba(12,25,38,.6))}.reveal-tournament-name{font-family:Barlow Condensed,sans-serif;font-size:clamp(18px,2vw,26px);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#d3c6aa99}.reveal-tap-hint{position:absolute;bottom:32px;font-size:13px;color:#d3c6aa4d;letter-spacing:.04em;animation:reveal-pulse 2s ease-in-out infinite}@keyframes reveal-pulse{0%,to{opacity:.3}50%{opacity:.6}}.reveal-name-area{flex:1;display:flex;align-items:center;justify-content:center}.reveal-name{font-family:Barlow Condensed,sans-serif;font-size:clamp(42px,7vw,84px);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fg);text-align:center;text-shadow:0 0 60px rgba(167,192,128,.12);opacity:0;transform:scale(.88);transition:opacity .5s ease-out,transform .5s ease-out}.reveal-name.reveal-name-in{opacity:1;transform:scale(1)}.reveal-name.reveal-name-out{opacity:0;transform:scale(1.06);transition:opacity .35s ease-in,transform .35s ease-in}.reveal-progress{position:absolute;bottom:56px;display:flex;gap:8px}.reveal-dot{width:8px;height:8px;border-radius:50%;background:#d3c6aa1f;transition:background .3s}.reveal-dot.done{background:var(--accent-primary)}.reveal-dot.active{background:var(--accent-secondary)}.reveal-outro{position:absolute;top:20%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;text-align:center;opacity:0;transition:opacity 1.5s ease-out}.reveal-outro.reveal-outro-in{opacity:1}.reveal-outro-logo{width:280px;margin-bottom:28px;filter:drop-shadow(0 0 50px rgba(216,207,164,.45))}.reveal-outro-title{font-size:14px;letter-spacing:.22em;color:#d8cfa4;opacity:.75;text-transform:uppercase}.welcome-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 20%,rgba(127,187,179,.08),transparent 40%),var(--bg-dim);display:flex;align-items:center;justify-content:flex-start;flex-direction:column;gap:16px;padding-top:calc(6vh - 15px);z-index:30}.welcome-screen:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 50% 35%,#0000 50%,#0006)}.welcome-hero{display:flex;flex-direction:column;align-items:center;gap:10px}.welcome-logo-top{width:clamp(180px,18vw,240px);height:auto;opacity:.9;filter:drop-shadow(0 6px 16px rgba(12,25,38,.45))}.welcome-hero-title{font-size:clamp(22px,2.4vw,30px);font-weight:800;letter-spacing:.11em;color:#f5f0e6fc;text-transform:uppercase;text-align:center;position:relative;text-shadow:0 0 10px rgba(219,188,127,.12)}.welcome-hero-title:after{content:"";position:absolute;left:50%;bottom:-10px;transform:translate(-50%);width:120px;height:1px;background:#dbbc7f33;opacity:.3}.welcome-panel{width:min(980px,92vw);background:#242b30eb;border:1px solid rgba(211,198,170,.06);border-radius:18px;padding:36px 36px 32px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:28px;text-align:left;color:#d3c6aa;box-shadow:0 16px 36px #0c192680,inset 0 1px #ffffff05,inset 0 -1px #00000040}.welcome-identity{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;min-width:260px}.welcome-teams{display:flex;flex-direction:column;gap:10px;flex:1;padding-right:18px}.welcome-teams-title{font-size:12px;letter-spacing:.8px;text-transform:uppercase;color:#d3c6aa99}.welcome-list{display:flex;flex-direction:column;gap:14px;text-align:left;font-size:clamp(16px,1.4vw,19px);color:#d3c6aa9e;text-transform:uppercase;letter-spacing:.075em;font-weight:600}.welcome-team{padding:6px 0;background:transparent;border:none;color:inherit;text-align:left;cursor:default;transition:color .2s ease,text-shadow .2s ease,font-weight .2s ease,opacity .2s ease}.welcome-team.clickable{cursor:pointer}.welcome-team.placeholder{opacity:.7}.welcome-team.clickable:hover{color:#f5f0e6d9}.welcome-team.present{font-weight:700;color:#f5f0e6fa;text-shadow:0 0 14px rgba(219,188,127,.2);position:relative}.welcome-team.present:before{content:none}.welcome-team-amp{margin:0 6px;opacity:.28}.welcome-start{margin:6px auto 0;padding:12px 22px;box-shadow:0 6px 16px #0c19264d;align-self:center}.welcome-start-row{display:flex;justify-content:center;grid-column:1 / -1}.welcome-start:hover,.welcome-start:focus-visible{box-shadow:0 8px 20px #0c192659,0 0 14px #dbbc7f2e}@media (max-width: 900px){.welcome-panel{grid-template-columns:1fr}.welcome-teams{order:1;padding-right:0;border-right:none}.welcome-identity{order:2}.welcome-list{width:100%;border-left:none;padding-left:0}.welcome-start-row{grid-column:1 / -1}}.welcome-info{display:flex;flex-direction:column;gap:16px;margin-top:6px;color:#d3c6aa9e;font-size:clamp(13px,1.1vw,15px);letter-spacing:.3px;align-self:stretch;text-align:left}.welcome-info-title{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:#d3c6aa8c}.welcome-info-list{display:flex;flex-direction:column;gap:22px;margin:0;padding:0}.welcome-info-row{display:flex;align-items:center;gap:10px}.welcome-info-icon{font-size:13px;color:#d3c6aa80}.welcome-info-text{color:#d3c6aaa8;line-height:1.6}@keyframes victory-entrance{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes victory-outro{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@keyframes victory-glow-cycle{0%,15%,30%,to{text-shadow:none}7.5%,22.5%{text-shadow:0 0 20px rgba(255,215,0,.6),0 0 30px rgba(255,215,0,.4),0 0 40px rgba(255,215,0,.2)}}@keyframes victory-confetti-in{0%{opacity:0}to{opacity:1}}.preview-helper{font-size:10px;color:var(--text-muted)}.seed-pill{padding:2px 6px;border-radius:999px;font-size:10px;color:var(--text-muted);background:#d3c6aa14}.preview-meta{font-size:11px;color:var(--text-muted)}.preview-standings .preview-table,.preview-scorers-list{display:flex;flex-direction:column;gap:0}.preview-table-row,.preview-scorer-row{display:grid;grid-template-columns:28px 1fr 46px;align-items:center;padding:4px 6px;border-bottom:1px solid rgba(211,198,170,.08);font-size:12px}.preview-table-row:last-child,.preview-scorer-row:last-child{border-bottom:none}.preview-table-row.lead,.preview-scorer-row.lead{color:var(--green);font-weight:700}.preview-table-row.bye{background:#dbbc7f14}.preview-scorer-row.podium{color:#d3c6aae6;font-weight:600}.playoff-helper{margin-top:10px;font-size:12px;color:var(--text-muted)}.button-row.playoff-actions{margin-top:10px;margin-bottom:12px;display:flex;justify-content:flex-end;gap:12px}@media (max-width: 960px){.preview-grid,.preview-stats-grid{grid-template-columns:1fr}}.ghost-button{background:transparent;border:1px solid rgba(211,198,170,.12);color:var(--text-primary);padding:6px 10px;border-radius:6px;cursor:pointer}.ghost-button.danger{border-color:#e67e8080;color:var(--red)}.ghost-button:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.table-scroll{max-height:70vh;overflow:auto}.standings-table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.standings-table th,.standings-table td{padding:8px 6px;text-align:right;background:transparent;white-space:nowrap}.standings-table th:first-child,.standings-table td:first-child,.standings-table th:nth-child(2),.standings-table td:nth-child(2){text-align:left}.standings-table thead th{font-weight:700;background:transparent;border-bottom:1px solid rgba(211,198,170,.08);font-size:13px;color:var(--text-muted)}.standings-table tbody td{border-bottom:1px solid rgba(211,198,170,.05);font-size:14px;color:var(--text-primary)}.standings-table tbody tr:last-child td{border-bottom:none}.standings-table tbody tr{transition:none}.standings-table tbody tr.playoff-bye{background:#a7c08033}.standings-table tbody tr.playoff-advance{background:#dbbc7f2e}.standings-table tbody tr.playoff-out{background:#e67e801f}.standings-table tbody tr.playoff-out td:first-child{box-shadow:inset 3px 0 #e67e80b3}.standings-table button.sort-header{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-muted);font:inherit;cursor:pointer;padding:0}.standings-table button.sort-header:hover,.standings-table button.sort-header:focus-visible{color:var(--text-primary);outline:none}.sort-icon{display:inline-block;width:10px;text-align:center;opacity:0;font-size:12px;transition:opacity .15s ease}.sort-header:hover .sort-icon,.sort-header:focus-visible .sort-icon,.sort-icon.active{opacity:1}.points-cell{color:var(--accent-primary);font-weight:800}.standings-table th:nth-child(1),.standings-table td:nth-child(1){width:7%}.standings-table th:nth-child(2),.standings-table td:nth-child(2){width:24%}.standings-table th:nth-child(n+3):nth-child(-n+10),.standings-table td:nth-child(n+3):nth-child(-n+10){width:7%}.standings-table th:nth-child(11),.standings-table td:nth-child(11){width:9%}.toast-viewport{position:fixed;right:16px;top:16px;display:flex;flex-direction:column;gap:8px;z-index:9999}.toast{background:#2e383ce6;color:var(--text-primary);padding:12px 14px;border-radius:10px;min-width:220px;box-shadow:0 12px 30px #00000059;border:1px solid rgba(211,198,170,.08);font-size:14px}.toast-success{border-color:#a7c08066;color:var(--green)}.toast-error{border-color:#e67e8099;color:var(--red)}.toast-info{border-color:#7fbbb366}.match-list button,.ghost-button{font-family:inherit}.standings-compact:focus-visible,.ghost-button:focus-visible,.match-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@media (max-width: 1100px){.app-shell{grid-template-columns:1fr}.match-list-scroll{max-height:none}.teams-row{grid-template-columns:1fr}}.all-matches-modal{max-width:1100px}.all-matches-groups{display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto}.matches-group{background:#d3c6aa05;border-radius:10px;padding:10px}.group-label{font-size:13px;color:var(--text-muted);margin-bottom:6px;letter-spacing:.4px;text-transform:uppercase}.group-list{display:flex;flex-direction:column;gap:6px}.group-row{display:grid;grid-template-columns:80px 1fr 90px;align-items:center;gap:10px;padding:10px 12px;background:#d3c6aa05;border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;transition:background .15s ease,transform .1s ease}.group-row:hover{background:#7fbbb314}.group-row.selected{background:#7fbbb329;box-shadow:var(--shadow-soft)}.group-row.finished{opacity:.7}.group-row.live{border:1px solid rgba(127,187,179,.35);background:#7fbbb314}.group-time{font-size:13px;color:var(--text-muted)}.group-teams{font-weight:700;letter-spacing:.3px}.group-score{text-align:right;font-weight:800;color:var(--accent-primary)}.group-score.final{color:var(--text-primary)}.group-score.live{color:var(--accent-primary)}.group-score.upcoming{color:var(--text-muted);font-weight:600}.group-score .winner{color:var(--accent-primary)}.button-stack .admin-button.primary{border-color:#7fbbb380}.admin-button.has-spinner{position:relative;padding-right:36px}.current-match .admin-button.has-spinner{padding-left:36px;padding-right:36px}.current-match .admin-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;min-height:44px}.current-match .admin-button:not(:disabled):hover{border-color:#d3c6aa33;box-shadow:0 8px 18px #0003}.current-match .admin-button:not(:disabled):active{transform:translateY(1px)}.button-label{display:inline-flex;align-items:center;gap:8px}.button-spinner{position:absolute;right:12px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:999px;border:2px solid rgba(211,198,170,.3);border-top-color:#d3c6aacc;opacity:0;transition:opacity .2s ease;animation:spin .6s linear infinite}.button-spinner.visible{opacity:1}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.match-panel,.status-chip,.save-chip,.goal-value,.match-pill.current,.match-pill.current:before,.match-row,.top-scorer-row,.modal,.modal-overlay,.button-spinner{transition:none!important;animation:none!important}}
