:root{--primary:#1a5276;--primary-light:#2980b9;--secondary:#27ae60;--danger:#e74c3c;--warning:#f39c12;--bg:#f5f6fa;--card-bg:#fff;--text:#2c3e50;--text-light:#7f8c8d;--border:#dcdde1;--shadow:0 2px 10px #0000001a;--radius:8px;[contenteditable=true]:empty:before{color:#a0aec0;content:attr(data-placeholder);display:block;pointer-events:none}}html{overflow-y:scroll;scrollbar-gutter:stable}*{box-sizing:border-box;margin:0;padding:0}[contenteditable] ol,[contenteditable] ul,[dangerouslysetinnerhtml] ol,[dangerouslysetinnerhtml] ul,div ol,div ul{margin:.4em 0;padding-left:1.5em}[contenteditable] li,div li{margin-bottom:.2em}body{background:#f5f6fa;background:var(--bg);color:#2c3e50;color:var(--text);font-family:Segoe UI,Tahoma,sans-serif}.app-container{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1;margin:0 auto;max-width:1800px;padding:20px;width:100%}.app-header{background:#1a5276;background:var(--primary);box-shadow:0 2px 10px #0000001a;box-shadow:var(--shadow);color:#fff;padding:env(safe-area-inset-top,0) calc(20px + env(safe-area-inset-right, 0px)) 0 calc(20px + env(safe-area-inset-left, 0px));position:relative;z-index:100}.header-content{align-items:center;display:flex;height:64px;justify-content:space-between;margin:0 auto;max-width:1200px}.logo{color:#fff;flex-shrink:0;text-decoration:none}.logo h1{font-size:1.4rem;white-space:nowrap}.header-row{gap:4px}.header-actions,.header-row{align-items:center;display:flex}.header-actions{flex-shrink:0;gap:2px;position:relative}.header-actions a{border-radius:8px;border-radius:var(--radius);color:#fffc;font-size:1rem;padding:8px;text-decoration:none;transition:all .2s}.close-btn{font-size:1.2rem;min-height:44px;min-width:44px;padding:8px}.header-actions a.active,.header-actions a:hover{background:#fff3;color:#fff}.nav-links{-webkit-overflow-scrolling:touch;display:flex;flex:1 1;flex-wrap:nowrap;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}.nav-links a{border-radius:8px;border-radius:var(--radius);color:#fffc;font-size:.9rem;padding:8px 16px;text-decoration:none;transition:all .2s;white-space:nowrap}.nav-links a.active,.nav-links a:hover{background:#fff3;color:#fff}.app-footer{background:linear-gradient(135deg,#1a365d,#2b6cb0);color:#ffffffb3;font-size:.85rem;padding:12px calc(12px + env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) calc(12px + env(safe-area-inset-left, 0px));text-align:center}.btn{border:none;border-radius:8px;border-radius:var(--radius);cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.btn-primary{background:#2980b9;background:var(--primary-light);color:#fff}.btn-primary:hover{background:#1a5276;background:var(--primary)}.btn-secondary{background:#dcdde1;background:var(--border);color:#2c3e50;color:var(--text)}.btn-secondary:hover{filter:brightness(.92)}.btn-danger{background:#e74c3c;background:var(--danger);box-shadow:0 4px 14px #e74c3c59;color:#fff}.btn-danger:hover{box-shadow:0 6px 24px #e74c3c8c;filter:brightness(1.15)}.btn-warning{background:#f39c12;background:var(--warning);color:#fff}.btn-warning:hover{background:#e67e22}.btn-small{font-size:.8rem;padding:4px 8px}.btn-icon{align-items:center;background:#0000;border:none;border-radius:50%;color:#7f8c8d;color:var(--text-light);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:1rem;height:32px;justify-content:center;min-height:32px;min-width:32px;padding:0;transition:all .2s;vertical-align:middle;width:32px}.btn-icon:hover{background:#dcdde1;background:var(--border);color:#2c3e50;color:var(--text)}.btn-icon.icon-save{color:#2980b9;color:var(--primary-light)}.btn-icon.icon-save:hover{background:#2980b9;background:var(--primary-light);color:#fff}.btn-icon.icon-cancel{color:#7f8c8d;color:var(--text-light)}.btn-icon.icon-cancel:hover{background:#dcdde1;background:var(--border);color:#2c3e50;color:var(--text)}.btn-icon.icon-edit{color:#7f8c8d;color:var(--text-light)}.btn-icon.icon-edit:hover{background:#2980b9;background:var(--primary-light);color:#fff}.btn-icon.icon-delete{color:#7f8c8d;color:var(--text-light)}.btn-icon.icon-delete:hover{background:#e74c3c;background:var(--danger);color:#fff}.btn-large{font-size:1.1rem;padding:12px 32px}.btn-start{background:#2980b9;background:var(--primary-light);border:none;border-radius:8px;box-shadow:0 4px 14px #1a527659;color:#fff;cursor:pointer;font-size:1.1rem;padding:14px 48px;transition:box-shadow .25s ease,transform .15s ease;white-space:nowrap}.btn-start:hover{background:#1a5276;background:var(--primary);box-shadow:0 6px 24px #1a52768c}.btn-start:disabled:hover{background:#2980b9;background:var(--primary-light);box-shadow:0 4px 14px #1a527659}.btn-start:active{box-shadow:0 2px 8px #1a52764d;transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.5}.welcome-page{align-items:center;display:flex;justify-content:center;min-height:70vh}.welcome-card{background:#fff;background:var(--card-bg);border-radius:16px;box-shadow:0 2px 10px #0000001a;box-shadow:var(--shadow);max-width:500px;padding:48px;text-align:center;width:100%}.welcome-logo{font-size:4rem;margin-bottom:16px}.welcome-title{color:#1a5276;color:var(--primary);font-size:2.5rem;margin-bottom:8px}.welcome-subtitle{color:#7f8c8d;color:var(--text-light);font-size:1.1rem;margin-bottom:32px}.year-selector{align-items:center;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.year-selector select{border:2px solid #dcdde1;border:2px solid var(--border);border-radius:8px;border-radius:var(--radius);font-size:1.2rem;margin-top:4px;padding:10px 20px;text-align:center;text-align-last:center}.year-selector select option{padding:4px 12px;text-align:left}.past-tournaments{margin-top:32px}.tournament-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.form-group{margin-bottom:16px;text-align:left}.form-group label{color:#4a5568;display:block;font-size:.82rem;font-weight:500;letter-spacing:.2px;margin-bottom:4px}.form-group input,.form-group select{background:#fff;border:1.5px solid #dce3ed;border-radius:10px;box-sizing:border-box;font-size:.95rem;padding:10px;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input[type=date]{height:calc(23px + .95rem)}.form-group input:focus,.form-group select:focus{border-color:#90cdf4;box-shadow:0 0 0 3px #4299e11f;outline:none}.game-form,.registration-form{align-items:flex-end;background:linear-gradient(135deg,#fff,#f7f9fc);border:1.5px solid #dce3ed;border-radius:18px;box-shadow:0 4px 14px #00000012;display:flex;flex-wrap:nowrap;gap:16px;margin-bottom:24px;padding:24px}.game-form .form-group,.registration-form .form-group{margin-bottom:0}.registration-form .form-group:first-child{flex:2 1;min-width:0}.registration-form .form-group:nth-child(2),.registration-form .form-group:nth-child(3){flex:1 1;min-width:0}.game-form .btn,.registration-form .btn{box-sizing:border-box;font-size:1rem;height:calc(24px + 1rem);min-width:120px;padding:10px 16px}table{background:#fff;background:var(--card-bg);border-collapse:collapse;border-radius:8px;border-radius:var(--radius);box-shadow:0 2px 10px #0000001a;box-shadow:var(--shadow);overflow:hidden;width:100%}th{background:#1a5276;background:var(--primary);color:#fff;font-size:.85rem;padding:12px;text-align:left}td{border-bottom:1px solid #dcdde1;border-bottom:1px solid var(--border);padding:10px 12px}tr:last-child td{border-bottom:none}tr:hover{background:#f0f3f7}.matrix-table tr:hover,.schedule-table tr:hover{background:#0000}.matrix-table td.matrix-clickable{transition:background .15s ease,box-shadow .15s ease}.matrix-table td.matrix-clickable:hover{background:#3182ce1f!important;box-shadow:inset 0 0 0 2px #3182ce73}.matrix-row-name{cursor:pointer}.schedule-page{max-width:100%;overflow:clip;padding:20px 10px}.schedule-table-container{-webkit-overflow-scrolling:touch;background:#fff;background:var(--card-bg);border:1px solid #e8ecf1;border-radius:16px;box-shadow:0 4px 16px #0000001f;margin-bottom:32px;max-width:100%;overflow-x:auto}.schedule-table{border:none;border-collapse:collapse;border-radius:0;box-shadow:none;min-width:100%;width:-webkit-max-content;width:max-content}.schedule-table-container.schedule-compact{display:flex;justify-content:center;margin:0 auto;width:-webkit-fit-content;width:fit-content}.schedule-compact .schedule-table{min-width:0;width:auto}.schedule-table td{font-size:.8rem;padding:6px 10px;text-align:center;vertical-align:top;white-space:nowrap}.schedule-table th{background:linear-gradient(180deg,#f4f7fb,#eef2f8);border-bottom:1px solid #e2e8f0;color:#8b9ab5;font-size:.68rem;font-weight:600;letter-spacing:.6px;padding:10px 12px;text-align:center;text-transform:uppercase;white-space:nowrap}.round-header{background:linear-gradient(180deg,#f4f7fb,#eef2f8);color:#8b9ab5;width:70px!important;z-index:2}.round-cell,.round-header{left:0;position:-webkit-sticky;position:sticky}.round-cell{background:#f0f3f7;min-width:100px;z-index:1}.game-header{min-width:190px;width:190px}.game-header .game-name{font-size:.68rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-header .station-num{font-size:.62rem;opacity:.7}.match-cell{border:1.5px solid #e2e8f0;border-radius:14px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;font-size:.85rem;height:120px;justify-content:center;margin:0 auto;min-width:190px;overflow:hidden;padding:6px 4px;position:relative;transition:all .2s;white-space:nowrap;width:190px}.match-replay-btn{background:none;border:none;border-radius:4px;bottom:3px;color:#7f8c8d;color:var(--text-light);cursor:pointer;font-size:1.3rem;line-height:1;opacity:.6;padding:2px 4px;position:absolute;right:5px;transition:opacity .2s,color .2s}.match-replay-btn:hover{color:#1a5276;color:var(--primary);opacity:1}.match-team{height:1.4em;line-height:1.4em;overflow:hidden;white-space:nowrap}.match-vs{font-size:.7rem;margin:1px 0}.match-vs,.no-match{color:#7f8c8d;color:var(--text-light)}.score-entry{background:linear-gradient(135deg,#fff,#f7f9fc);border:1.5px solid #dce3ed;border-radius:18px;box-shadow:0 4px 14px #00000012;box-sizing:border-box;margin:0 auto;max-width:800px;padding:16px 32px 32px;width:100%}.score-entry-backdrop{padding:16px 8px}.score-entry-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.score-entry.score-entry-expand{animation:scoreEntryExpand .4s cubic-bezier(.25,.46,.45,.94) forwards;transform-origin:top center}.score-entry.score-entry-collapse{animation:scoreEntryCollapse .35s cubic-bezier(.55,.06,.68,.19) forwards;pointer-events:none;transform-origin:top center}.score-entry-backdrop.backdrop-fade-in{animation:backdropFadeIn .35s ease-out forwards}.score-entry-backdrop.backdrop-fade-out{animation:backdropFadeOut .35s ease-in forwards;pointer-events:none}@keyframes scoreEntryExpand{0%{border-radius:12px;opacity:0;transform:scale(.3) translateY(-20px)}50%{opacity:1}to{border-radius:8px;border-radius:var(--radius);opacity:1;transform:scale(1) translateY(0)}}@keyframes scoreEntryCollapse{0%{opacity:1;transform:scale(1) translateY(0)}50%{opacity:.7}to{border-radius:12px;opacity:0;transform:scale(.3) translateY(-20px)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes backdropFadeOut{0%{opacity:1}to{opacity:0}}.scoring-info{color:#7f8c8d;color:var(--text-light);font-style:italic;margin-bottom:24px}.game-row{background:#f5f6fa;background:var(--bg);border-radius:8px;border-radius:var(--radius);margin-bottom:16px;padding:16px}.winner-select{display:flex;gap:16px;margin:12px 0}.team-option{background:#fff;border:1.5px solid #dce3ed;border-radius:16px;color:#4a5568;cursor:pointer;flex:1 1;font-weight:500;padding:12px 20px;text-align:center;transition:all .2s}.team-option.selected{background:linear-gradient(135deg,#ebf8ff,#bee3f8);border-color:#90cdf4;color:#2b6cb0;font-weight:600}.team-option input{display:none}.skunk-label{align-items:center;cursor:pointer;display:flex;gap:8px}.score-preview{background:#f5f6fa;background:var(--bg);border-radius:8px;border-radius:var(--radius);display:flex;justify-content:space-around;margin:24px 0;padding:16px}.preview-score{color:#1a5276;color:var(--primary);font-size:1.5rem;font-weight:700}.score-actions{display:flex;flex-wrap:wrap;gap:12px}.icon-action,.score-actions{align-items:center;justify-content:center}.icon-action{background:#0000;border:none;border-radius:50%;cursor:pointer;display:inline-flex;height:40px;position:relative;transition:all .2s ease;width:40px}.icon-action:hover{transform:scale(1.15)}.icon-action:active{transform:scale(.95)}.icon-action-edit{color:#7f8c8d}.icon-action-edit:hover{background:#f39c121f;color:#e67e22}.icon-action-reset{color:#bdc3c7}.icon-action-reset:hover{background:#e74c3c1f;color:#e74c3c}.lb-container{background:#fff;background:var(--card-bg);border:1px solid #e8ecf1;border-radius:16px;box-shadow:0 2px 12px #0000000f;margin-left:auto;margin-right:auto;margin-top:32px;max-width:640px;overflow:hidden}.lb-compact{max-width:380px}.lb-header{background:linear-gradient(135deg,#f8fafc,#edf2f7);border-bottom:1px solid #e2e8f0;padding:22px 20px 14px;text-align:center}.lb-header-icon{font-size:1.6rem;margin-bottom:2px}.lb-title{color:#1a202c;font-size:1.15rem;font-weight:800;letter-spacing:-.3px;margin:0}.lb-subtitle{color:#718096;font-size:.78rem;font-weight:500;margin-top:4px}.lb-subtitle strong{color:#1a5276;color:var(--primary)}.lb-col-headers{background:linear-gradient(180deg,#f4f7fb,#eef2f8);border-bottom:1px solid #e2e8f0;color:#8b9ab5;font-size:.68rem;font-weight:600;letter-spacing:.6px;padding:10px 16px;text-transform:uppercase}.lb-col-headers,.lb-row{align-items:center;display:flex;gap:0}.lb-row{border-bottom:1px solid #f0f3f7;cursor:pointer;min-height:46px;padding:0 16px;position:relative;transition:background .15s ease,transform .15s ease}.lb-row:last-child{border-bottom:none}.lb-row-qualifying{background:#f0f7ff}.lb-row-cutoff{border-bottom:2px dashed #2980b9;border-bottom:2px dashed var(--primary-light)}.lb-col-rank{flex-shrink:0;justify-content:center;width:42px}.lb-col-rank,.lb-col-team{align-items:center;display:flex}.lb-col-team{flex:1 1;gap:6px;min-width:0}.lb-col-players{color:#718096;flex:1 1;font-size:.8rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-col-stat{font-feature-settings:"tnum";color:#4a5568;flex-shrink:0;font-size:.88rem;font-variant-numeric:tabular-nums;font-weight:600;text-align:center;width:48px}.lb-col-score{width:52px}.lb-col-primary-stat{color:#1a5276;color:var(--primary);font-size:.95rem;font-weight:800}.lb-team-name{color:#2d3748;font-size:.9rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-team-number{color:#a0aec0;flex-shrink:0;font-size:.72rem;font-weight:600}.lb-rank-badge{align-items:center;border-radius:8px;display:inline-flex;font-size:.75rem;font-weight:800;height:26px;justify-content:center;width:26px}.lb-rank-1{background:linear-gradient(135deg,gold,#ffecb3);box-shadow:0 1px 3px #ffd70066;color:#7a5c00}.lb-rank-2{background:linear-gradient(135deg,silver,#e8e8e8);box-shadow:0 1px 3px #0000001f;color:#555}.lb-rank-3{background:linear-gradient(135deg,#cd7f32,#e8b87a);box-shadow:0 1px 3px #cd7f3259;color:#5a3510}.lb-rank-other{background:#edf2f7;color:#718096}.lb-tied-ring{align-items:center;border:2px solid;border-radius:50%;display:inline-flex;font-size:.85rem;height:28px;justify-content:center;min-width:28px;padding:2px}.lb-footer{background:#f8fafc;border-top:1px solid #edf2f7;color:#a0aec0;font-size:.72rem;line-height:1.5;padding:10px 16px 12px;text-align:center}.lb-tiebreak-label{display:block}.lb-tiebreak-detail{color:#718096;margin-top:2px}.lb-tiebreak-score{align-items:center;border:1.5px solid #a0aec0;border-radius:50%;display:inline-flex;font-size:.68rem;height:18px;justify-content:center;margin-right:4px;min-width:18px;vertical-align:middle}.lb-compact .lb-row{min-height:40px}.lb-compact .lb-col-stat{width:42px}.lb-compact .lb-team-name{font-size:.85rem}@media (max-width:480px){.lb-col-players{display:none}.lb-col-stat{font-size:.82rem;width:40px}.lb-row{padding:0 12px}.lb-col-headers{padding:8px 12px}}.team-roster{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:24px 0}.team-card{background:linear-gradient(135deg,#fff,#f7f9fc);border:1.5px solid #dce3ed;border-radius:18px;box-shadow:0 4px 14px #00000012;padding:22px 24px;text-align:center;transition:box-shadow .3s ease,transform .3s ease,border-color .3s ease}.team-card:hover{border-color:#bee3f8;box-shadow:0 8px 28px #1a52761f;transform:translateY(-2px)}.team-rank{color:#1a5276;color:var(--primary);font-size:.78rem;font-weight:600;letter-spacing:1px;text-transform:uppercase}.team-name{color:#2d3748;font-size:1.05rem;font-weight:500;letter-spacing:0;margin:6px 0}.team-number{color:#2980b9;color:var(--primary-light);font-size:.85rem;font-weight:600;margin-bottom:4px}.team-players{color:#718096;font-size:.85rem;font-weight:500}.bracket-scroll-wrapper{-webkit-overflow-scrolling:touch;margin-bottom:16px;overflow-x:auto}.bracket-container{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr 1fr 1fr 1fr 1fr;margin:0 auto;min-height:400px;width:-webkit-fit-content;width:fit-content}.bracket-col{display:flex;flex-direction:column;gap:24px}.bracket-col h3{color:#aaa;font-size:.7rem;letter-spacing:1px;margin:0 0 -16px;text-align:center;text-transform:uppercase}.bracket-col-final h3{color:#666;font-size:.9rem;margin:0 0 -16px}.bracket-col-qf{justify-content:space-around}.bracket-col-final,.bracket-col-sf{justify-content:center}.bracket-card{background:#fff;background:var(--surface,#fff);border:1.5px solid #e2e8f0;border-radius:14px;cursor:pointer;min-width:230px;padding:12px 8px;text-align:center;transition:transform .1s,box-shadow .1s;white-space:nowrap}.bracket-card:hover{box-shadow:0 2px 8px #0000001f;transform:scale(1.03)}.bracket-card.match-complete{background:linear-gradient(135deg,#f0fff4,#bbf7d0)}.bracket-card.match-complete:hover{background:linear-gradient(135deg,#d1fae5,#86efac)}.bracket-card.match-pending{background:linear-gradient(135deg,#ebf5ff,#bfdbfe)}.bracket-card.match-pending:hover{background:linear-gradient(135deg,#dbeafe,#93c5fd)}.bracket-card.match-bye{background:linear-gradient(135deg,#f7f7f7,#e5e5e5);cursor:default;opacity:.7;pointer-events:none}.bracket-card.match-bye:hover{background:linear-gradient(135deg,#f7f7f7,#e5e5e5);box-shadow:none;transform:none}.bracket-card.match-placeholder{background:linear-gradient(135deg,#f7f7f7,#e5e5e5);border-style:dashed;cursor:default;pointer-events:none}.bracket-card.match-placeholder:hover{background:linear-gradient(135deg,#f7f7f7,#e5e5e5);box-shadow:none;transform:none}.bracket-card.match-in-progress{background:linear-gradient(135deg,#fffbeb,#fef3c7)}.bracket-card.match-in-progress:hover{background:linear-gradient(135deg,#fef9c3,#fde68a)}.bracket-card.match-early{background:linear-gradient(135deg,#fefce8,#fef08a)}.bracket-card.match-early:hover{background:linear-gradient(135deg,#fef9c3,#fde047)}.bracket-card.match-past-half{background:linear-gradient(135deg,#fff7ed,#fed7aa)}.bracket-card.match-past-half:hover{background:linear-gradient(135deg,#ffedd5,#fdba74)}.bracket-card.match-final-game{background:linear-gradient(135deg,#fef2f2,#fecaca)}.bracket-card.match-final-game:hover{background:linear-gradient(135deg,#fee2e2,#fca5a5)}.bracket-card.match-deep-series{background:linear-gradient(135deg,#fef3e2,#fcd9b6)}.bracket-card.match-deep-series:hover{background:linear-gradient(135deg,#fdebd0,#f8c99a)}.bracket-time-badge{color:#888;font-size:.65rem;font-weight:600;position:absolute;right:6px;top:4px}.bracket-round-time{font-size:.7em;font-weight:400;margin-top:2px;opacity:.7}.bracket-card-final{padding:16px 12px}.bracket-team{font-size:.85rem;font-weight:600;padding:4px 0}.bracket-team.winner{color:#28a745;color:var(--success,#28a745)}.bracket-team.champion{color:#28a745;font-size:.95rem;font-weight:800}.bracket-winner-icon{font-size:.75rem;margin-right:4px}.bracket-vs{color:#999;font-size:.75rem;font-weight:700;padding:2px 0}.bracket-status{line-height:1.4;padding:4px 0;text-align:center}.bracket-status-box{background:linear-gradient(135deg,#f8f9fb,#eef1f5);border:1px solid #d0d7de;border-radius:8px;box-shadow:0 1px 3px #00000014;margin:6px 0;padding:6px 10px;text-align:center}.bracket-status-box.completed{background:linear-gradient(135deg,#f0fff4,#e6f9ec);border-color:#e2e8f0}.bracket-status-box.bye{align-items:center;background:linear-gradient(135deg,#f7f7f7,#eee);border-color:#e2e8f0;display:flex;flex-direction:column;justify-content:center}.bracket-status-bye{color:#888!important;font-size:.78rem!important;font-weight:600!important;text-align:center}.bracket-status-game{color:#333;font-size:.85rem;font-weight:700}.bracket-status-box.completed .bracket-status-game{color:#28a745}.bracket-status-series{color:#777;font-size:.7rem;font-weight:400;margin-top:2px}.pf-score{color:#666;display:inline-block;font-size:.8rem;font-weight:400;margin-left:16px}.champion-banner{background:linear-gradient(135deg,gold,#fa0);border-radius:8px;font-size:1.2rem;font-weight:700;margin-top:8px;padding:14px;text-align:center}.match-placeholder{background:#f0f0f0;border:2px dashed #ccc}.bracket-expand-btn{background:none;border:none;border-radius:3px;bottom:4px;color:#888;cursor:pointer;font-size:.65rem;line-height:1;padding:2px 4px;position:absolute;right:6px}.bracket-expand-btn:hover{background:#0000000f;color:#555}.bracket-game-results{background:#f8f9fb;border:1px solid #e2e6ea;border-radius:6px;font-size:.75rem;margin-top:4px;overflow:visible;padding:6px 8px}.bracket-game-result-row{align-items:center;border-bottom:1px solid #eee;display:flex;flex-wrap:nowrap;gap:8px;overflow:hidden;padding:2px 0}.bracket-game-result-row:last-child{border-bottom:none}.bracket-game-result-label{color:#666;font-weight:600;white-space:nowrap}.bracket-game-result-winner{color:#28a745;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loading{font-size:1.2rem;padding:48px}.empty-state,.loading{color:#7f8c8d;color:var(--text-light);text-align:center}.empty-state{font-style:italic;padding:24px}.game-count,.player-count{font-size:1.1rem;margin-bottom:16px}.randomize-section{margin:32px 0;text-align:center}.hint{color:#7f8c8d;color:var(--text-light);font-size:.85rem;margin-top:8px}.admin-panel{background:#fff;background:var(--card-bg);border-radius:16px;box-shadow:0 2px 10px #0000001a;box-shadow:var(--shadow);max-width:1800px;padding:32px;width:100%}.admin-panel h2{margin-bottom:24px;text-align:center}.admin-section{border-bottom:1px solid #dcdde1;border-bottom:1px solid var(--border);padding:24px 0}.admin-section:last-child{border-bottom:none}.admin-section h3{margin-bottom:8px}.admin-description{color:#7f8c8d;color:var(--text-light);font-size:.9rem;line-height:1.6;margin-bottom:16px}.admin-danger-zone{background:#fdf2f2;border:2px solid #e74c3c;border:2px solid var(--danger);border-radius:8px;border-radius:var(--radius);margin-top:16px;padding:24px}.admin-danger-zone h3{color:#e74c3c;color:var(--danger)}.admin-success{background:#22c55e1f;border:1px solid #22c55e4d;border-radius:8px;color:#86efac;margin-bottom:12px}.admin-error,.admin-success{font-size:.85rem;font-weight:500;padding:10px 14px}.admin-error{background:#ef44441f;border:1px solid #ef44444d;border-radius:8px;color:#fca5a5;margin-top:12px}.nav-admin{font-size:1.1rem;opacity:.6}.nav-admin:hover{opacity:1}.section-toggle{margin:16px 0}.unassigned-section{background:#fff8e1;border:2px solid #f39c12;border:2px solid var(--warning);border-radius:8px;border-radius:var(--radius);margin:16px 0;padding:20px}.team-action-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.warning-text{color:#f39c12;color:var(--warning);font-weight:600;margin-top:8px}.edit-input{border:2px solid #1a5276;border:2px solid var(--primary);border-radius:4px;font-size:.9rem;padding:4px 8px;width:100%}.action-buttons{white-space:nowrap}.action-buttons .btn-icon{margin-right:2px;vertical-align:middle}td.action-buttons{min-width:70px;white-space:nowrap;width:70px}.registration-form-wrapper{margin-bottom:24px}.suggestions-dropdown{background:#fff;border:2px solid #1a5276;border:2px solid var(--primary);border-radius:0 0 8px 8px;border-top:none;box-shadow:0 4px 12px #00000026;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.suggestion-item{align-items:center;border-bottom:1px solid #dcdde1;border-bottom:1px solid var(--border);cursor:pointer;display:flex;gap:8px;overflow:hidden;padding:8px 12px;white-space:nowrap}.suggestion-highlighted,.suggestion-item:hover{background:#2980b9;background:var(--primary-light,#e8f0fe)}.suggestion-item:last-child{border-bottom:none}.suggestion-name{font-size:.85rem;font-weight:600}.suggestion-name,.suggestion-nickname{overflow:hidden;text-overflow:ellipsis}.suggestion-nickname{color:#7f8c8d;color:var(--text-light);font-size:.8rem}.previous-players-section{margin-top:16px}.prev-players-accordion{align-items:center;background:linear-gradient(135deg,#fff,#f7f9fc);border:1.5px solid #dce3ed;border-radius:14px;box-shadow:0 2px 8px #0000000a;cursor:pointer;display:flex;font-family:inherit;padding:14px 18px;transition:border-color .2s,box-shadow .2s;width:100%}.prev-players-accordion:hover{border-color:#bee3f8;box-shadow:0 4px 14px #1a527614}.prev-players-accordion:disabled{cursor:default;opacity:.6}.prev-players-accordion-label{color:#2d3748;font-size:.88rem;font-weight:500;letter-spacing:.2px}.prev-players-accordion-count{background:#1a5276;background:var(--primary);border-radius:10px;color:#fff;font-size:.72rem;font-weight:700;margin-left:8px;padding:2px 8px}.prev-players-chevron{color:#8b9ab5;display:inline-block;font-size:1.2rem;font-weight:600;margin-left:auto;transform:rotate(0deg);transition:transform .3s ease}.prev-players-chevron-open{transform:rotate(90deg)}.game-list{margin-top:24px}.previous-players-list{border:1px solid #e8ecf1;border-radius:12px;box-shadow:0 2px 10px #0000000a;margin-top:12px;max-height:300px;overflow-y:auto}.previous-players-slide{max-height:0;overflow:hidden;transition:max-height .35s ease}.previous-players-slide-open{max-height:500px}.previous-players-list table{margin-bottom:0}.game-list,.player-list{background:#fff;background:var(--card-bg);border:1px solid #e8ecf1;border-radius:16px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.game-list h3,.player-list h3{background:linear-gradient(135deg,#f8fafc,#edf2f7);border-bottom:1px solid #e2e8f0;color:#4a5568;font-size:.95rem;font-weight:500;letter-spacing:.2px;margin:0!important;padding:18px 20px 12px;text-align:center}.game-list table,.player-list table,.previous-players-list table{border:none;border-radius:0;box-shadow:none}.game-list th,.player-list th,.previous-players-list th{background:linear-gradient(180deg,#f4f7fb,#eef2f8);border-bottom:1px solid #e2e8f0;color:#8b9ab5;font-size:.68rem;font-weight:600;letter-spacing:.6px;padding:10px 14px;text-transform:uppercase}.game-list td,.player-list td,.previous-players-list td{border-bottom:1px solid #f0f3f7;color:#2d3748;font-size:.88rem;padding:11px 14px}.game-list tr:last-child td,.player-list tr:last-child td,.previous-players-list tr:last-child td{border-bottom:none}.game-list tr:hover,.player-list tr:hover,.previous-players-list tr:hover{background:#0000}.game-list td:first-child,.player-list td:first-child{color:#718096;font-size:.78rem;font-weight:700;text-align:center;width:38px}.game-list td:nth-child(2),.player-list td:nth-child(2){color:#1a202c;font-weight:600}.game-list .action-buttons,.player-list .action-buttons{text-align:right}.btn-play-ahead-circle{align-items:center;animation:circleGlow 2s ease-in-out infinite;animation-delay:.5s;background:linear-gradient(145deg,#3498db,#1a5276);border:none;border-radius:50%;box-shadow:0 0 12px #2ecc7199;color:#fff;cursor:pointer;display:flex;font-size:15px;height:36px;justify-content:center;line-height:1;padding:0 0 0 2px;transition:transform .15s;width:36px}.btn-play-ahead-circle:hover{box-shadow:0 0 22px #2ecc71d9;transform:scale(1.12)}.btn-play-ahead-circle:active{transform:scale(.95)}@keyframes circleGlow{0%,to{box-shadow:0 0 8px #2ecc7166}50%{box-shadow:0 0 20px #2ecc71d9,0 0 36px #2ecc714d}}.play-ahead-select{background:#1e1e1e;border:1px solid #555;border-radius:6px;color:#fff;font-size:.72rem;max-width:80px;padding:4px 5px}.page-title{font-size:2rem;margin:8px auto 0;max-width:100%;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:-webkit-fit-content;width:fit-content}@media (max-width:768px){.page-title{font-size:clamp(.9rem,5.5vw,2rem)}}.teams-page{margin:0 auto;max-width:900px;padding:20px}.games-page,.registration-page{animation:cardReveal .5s ease-out forwards;margin:0 auto;max-width:900px;padding:20px}.teams-info{font-size:1.1rem;margin-bottom:20px}.no-teams-section{padding:40px 20px;text-align:center}.no-teams-section .btn{margin:12px 8px}.unassigned-list{list-style:none;margin:12px 0;padding:0}.unassigned-list li{background:#fff;border:1px solid #dcdde1;border:1px solid var(--border);border-radius:4px;margin-bottom:4px;padding:8px 12px}@media (max-width:768px){.header-content{flex-direction:column;gap:6px;height:auto;padding:6px 0}.logo h1{font-size:1.1rem;text-align:center}.header-row{align-items:center;gap:0;justify-content:center;width:100%}.nav-links{-webkit-overflow-scrolling:touch;flex:1 1;flex-wrap:nowrap;gap:4px;justify-content:flex-start;min-width:0;overflow-x:auto;padding:0 4px 4px;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}.nav-links a{align-items:center;display:inline-flex;font-size:1rem;min-height:44px;padding:8px 12px}.header-actions{align-items:center;gap:0;padding-left:4px}.header-actions a{align-items:center;display:inline-flex;padding:8px 10px}.close-btn,.header-actions a{font-size:1.1rem;min-height:44px}.close-btn{min-width:44px;padding:8px}.registration-form{align-items:stretch;flex-direction:column;flex-wrap:wrap}.winner-select{flex-direction:column;gap:10px}.game-row,.team-option{padding:12px}.welcome-title{font-size:1.8rem}.schedule-table-container{padding:0 8px}.schedule-table-container.schedule-compact{margin:0 auto;max-width:100%;overflow-x:auto;padding:0;width:-webkit-fit-content;width:fit-content}.schedule-table td{font-size:.7rem;padding:8px 2px 4px}.schedule-table th{font-size:.62rem;padding:8px 4px}.game-header,.match-cell{min-width:170px;width:170px}.match-cell{font-size:.65rem}.main-content{overflow-x:hidden;padding:12px 0}.games-page,.registration-page,.teams-page{padding:12px}.welcome-page{padding:0 12px}.score-entry{box-sizing:border-box;max-width:100%;padding:16px 16px 24px}.score-entry-backdrop{padding-top:155px!important}table{font-size:.8rem}th{font-size:.75rem;padding:8px 6px;white-space:nowrap}td{font-size:.8rem;padding:6px 4px}.leaderboard{-webkit-overflow-scrolling:touch;box-sizing:border-box;max-width:100%;overflow-x:hidden;padding:0 8px}.leaderboard h3{font-size:1.1rem}.leaderboard table{table-layout:auto;white-space:nowrap;width:100%}.leaderboard td,.leaderboard th{font-size:.72rem;padding:5px 2px}.leaderboard td:first-child,.leaderboard th:first-child{white-space:nowrap;width:1%}.leaderboard td:nth-child(n+3),.leaderboard th:nth-child(n+3){text-align:center;white-space:nowrap;width:1%}.rank-cell{font-size:.9rem;white-space:nowrap;width:36px}.score-cell{font-size:.85rem;white-space:nowrap;width:44px}.statistics-page{padding:12px 4px}.statistics-page table{min-width:700px}}@media (max-height:500px) and (orientation:landscape){.header-content{flex-direction:column;gap:4px;height:auto;padding:4px 0}.logo h1{font-size:.85rem;text-align:center}.header-row{gap:0;justify-content:center;width:100%}.nav-links{-webkit-overflow-scrolling:touch;flex:1 1;flex-wrap:nowrap;gap:2px;justify-content:flex-start;min-width:0;overflow-x:auto;padding:0 4px 4px;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}.nav-links a{align-items:center;display:inline-flex;font-size:.75rem;min-height:32px;padding:6px 12px}.header-actions{gap:0;padding-left:4px}.header-actions a{padding:5px 6px}.schedule-table-container{padding:0 8px}.page-title{font-size:clamp(1.3rem,4vw,2.5rem);margin-bottom:0;margin-top:4px}.page-subtitle{font-size:.85rem!important;margin-bottom:8px!important;margin-top:0!important}.welcome-title{font-size:1.4rem}.welcome-subtitle{font-size:.85rem;margin-bottom:16px}.leaderboard h3{font-size:1rem}.game-count,.player-count,.teams-info{font-size:.85rem}.page-title{margin-bottom:4px!important}}.match-pending{background:linear-gradient(135deg,#ebf5ff,#bfdbfe)}.match-pending:hover{background:linear-gradient(135deg,#dbeafe,#93c5fd);box-shadow:0 2px 8px #0000001f;transform:scale(1.02)}.match-early{background:linear-gradient(135deg,#fefce8,#fef08a)}.match-early:hover{background:linear-gradient(135deg,#fef9c3,#fde047);box-shadow:0 2px 8px #0000001f;transform:scale(1.02)}.match-past-half{background:linear-gradient(135deg,#fff7ed,#fed7aa)}.match-past-half:hover{background:linear-gradient(135deg,#ffedd5,#fdba74);box-shadow:0 2px 8px #0000001f;transform:scale(1.02)}.match-final-game{background:linear-gradient(135deg,#fef2f2,#fecaca)}.match-final-game:hover{background:linear-gradient(135deg,#fee2e2,#fca5a5);box-shadow:0 2px 8px #0000001f;transform:scale(1.02)}.match-in-progress{background:linear-gradient(135deg,#fff7ed,#fed7aa)}.match-in-progress:hover{background:linear-gradient(135deg,#ffedd5,#fdba74);box-shadow:0 2px 8px #0000001f;transform:scale(1.02)}.match-game2-done{background:linear-gradient(135deg,#fff7ed,#fed7aa)}.match-game2-done:hover{background:linear-gradient(135deg,#ffedd5,#fdba74);box-shadow:0 2px 8px #0000001f;transform:scale(1.02)}.match-complete{background:linear-gradient(135deg,#f0fff4,#bbf7d0)}.match-complete:hover{background:linear-gradient(135deg,#d1fae5,#86efac);box-shadow:0 2px 8px #0000001f;transform:scale(1.02)}.match-bye{background:linear-gradient(135deg,#f7f7f7,#e5e5e5);opacity:.7}.match-team-winner{color:#2c5282;font-weight:700}.match-team-winner span{font-weight:700}.winner-icon{font-size:.7rem}.skunk-icon{font-size:.85rem;line-height:1;vertical-align:middle}.match-team-loser{color:#000c}.match-score-badge{font-feature-settings:"tnum";align-self:center;background:#27ae60;background:var(--secondary);border-radius:12px;color:#fff;display:inline-block;font-size:.7rem;font-variant-numeric:tabular-nums;margin-top:2px;padding:2px 6px;width:-webkit-fit-content;width:fit-content}.match-bye-badge{background:#999}.match-live-badge,.match-partial-badge{background:#888;color:#fff}.match-timer-section{margin:16px 0;text-align:center}.match-timer{align-items:center;border-radius:16px;display:inline-flex;flex-direction:column;padding:12px 28px}.timer-running{background:linear-gradient(135deg,#fffdf5,#fef9e7);border:1.5px solid #e8d9a0}.timer-stopped{background:linear-gradient(135deg,#f0faf4,#e6f7ed);border:1.5px solid #a3d9b1}.timer-label{color:#4a5568;font-size:.82rem;font-weight:500;margin-bottom:4px}.timer-display{font-feature-settings:"tnum";color:#2d3748;font-family:monospace;font-size:2rem;font-variant-numeric:tabular-nums;font-weight:700}.team-option.disabled{cursor:not-allowed;opacity:.5}.match-completed-badge{background:linear-gradient(135deg,#e0e0e0,#c8c8c8);border:none;border-radius:50px;box-shadow:0 2px 8px #0000001a,inset 0 1px 0 #ffffff80;color:#555;font-size:.85rem;font-weight:700;letter-spacing:1.5px;padding:10px 28px;text-align:center;text-transform:uppercase}.round-timer-row td{border-bottom:2px solid #dcdde1;border-bottom:2px solid var(--border);padding:4px 0 12px!important}.round-timer-row td,.round-timer-row:hover{background:#0000!important}.round-timer-text{font-feature-settings:"tnum";border-radius:12px;display:inline-block;font-size:.85rem;font-variant-numeric:tabular-nums;font-weight:600;padding:4px 16px}.round-timer-text.timer-active{background:#fef9e7;border:1px solid #f1c40f;color:#856404}.round-timer-text.timer-done{background:#f0f0f0;border:1px solid #bbb;color:#666}.randomize-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;display:flex;flex-direction:column;inset:0;justify-content:center;position:fixed;transition:opacity 1.5s ease-out,-webkit-backdrop-filter 1s ease-out;transition:opacity 1.5s ease-out,backdrop-filter 1s ease-out;transition:opacity 1.5s ease-out,backdrop-filter 1s ease-out,-webkit-backdrop-filter 1s ease-out;z-index:9999}.randomize-overlay.overlay-fading{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0;pointer-events:none}.washer-toss-scene{height:200px;margin-bottom:24px;perspective:500px;position:relative;width:300px}.washer-board{background:linear-gradient(180deg,#1e8449,#27ae60 30%,#2ecc71 60%,#27ae60);border:4px solid #6b3a1f;border-radius:12px;bottom:0;box-shadow:0 8px 30px #00000080,inset 0 0 20px #0000001a,0 0 0 2px #8b5e3c;height:280px;left:50%;position:absolute;transform:translateX(-50%) rotateX(62deg);transform-origin:bottom center;transform-style:preserve-3d;width:120px}.washer-board:before{background:repeating-linear-gradient(0deg,#0000,#0000 4px,#00000008 0,#00000008 5px),repeating-linear-gradient(90deg,#0000,#0000 6px,#ffffff05 0,#ffffff05 7px);border-radius:8px;content:"";inset:0;position:absolute}.washer-hole{background:radial-gradient(circle,#080808 50%,#1a1a1a 70%,#111);border:2px solid #1a6b35;border-radius:50%;box-shadow:inset 0 3px 10px #000000e6;height:38px;left:50%;position:absolute;transform:translateX(-50%);width:38px}.washer-hole.h1{top:50px}.washer-hole.h2{top:130px}.washer-hole.h3{top:210px}.toss-washer{background:#0000;border:8px solid #c0392b;border-radius:50%;box-shadow:0 0 8px #c0392b80,inset 0 0 4px #c0392b4d,0 3px 10px #0000004d;height:38px;opacity:0;pointer-events:none;position:absolute;width:38px;z-index:10}.toss-washer:after{border:1.5px solid #e74c3c59;border-radius:50%;content:"";inset:2px;position:absolute}.toss-washer.black{border-color:#1a1a1a;box-shadow:0 0 8px #1a1a1a80,inset 0 0 4px #1a1a1a4d,0 3px 10px #0000004d}.toss-washer.black:after{border-color:#3c3c3c59}.toss-washer.active{animation:tossArc var(--dur) cubic-bezier(.22,.6,.36,1) var(--delay) forwards}@keyframes tossArc{0%{left:-50px;opacity:0;top:50%;transform:translateY(-50%) rotate(0deg) scale(1.4)}8%{opacity:1}35%{left:90px;top:25%;transform:translateY(-50%) rotate(300deg) scale(1.1)}65%{left:var(--land-x);opacity:1;top:var(--land-y);transform:translateY(-50%) rotate(580deg) scale(var(--land-scale)) scaleY(.55)}80%{left:var(--land-x);opacity:1;top:var(--land-y);transform:translateY(-50%) rotate(680deg) scale(var(--land-scale)) scaleY(.5)}to{left:var(--land-x);opacity:1;top:var(--land-y);transform:translateY(-50%) rotate(2turn) scale(var(--land-scale)) scaleY(.45)}}.toss-washer.fading{opacity:0!important;transition:opacity .6s ease-out}.toss-washer.fall-in{opacity:0!important;transform:translateY(-50%) rotate(2turn) scale(0) scaleY(.15)!important;transition:transform .45s ease-in,opacity .45s ease-in}.toss-washer.sliding{transition:left .5s ease-in-out,top .5s ease-in-out,transform .5s ease-in-out}.toss-washer.bounce-off{left:260px!important;opacity:0!important;top:95%!important;transform:translateY(-50%) rotate(3turn) scale(.7) scaleY(.6)!important;transition:left .6s ease-in,top .6s ease-out,opacity .5s ease-in .15s,transform .6s ease-in}.randomize-text{animation:pulseText 1.5s ease-in-out infinite;color:#fff;font-size:1.4rem;font-weight:600;text-shadow:0 2px 8px #00000080}.randomize-subtext{animation:pulseText 1.5s ease-in-out .3s infinite;color:#ffffffb3;font-size:.95rem;margin-top:8px}@keyframes spinWheel{to{transform:rotate(1turn)}}.team-card-hidden{opacity:0;transform:scale(.8) translateY(20px)}.team-card-reveal{animation:cardReveal .5s ease-out forwards}@keyframes cardReveal{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.schedule-row-hidden td{opacity:0;transform:scale(.8) translateY(20px)}.schedule-row-reveal td{animation:scheduleRowReveal .5s ease-out;opacity:1;transform:none}.schedule-header-hidden .btn-play-ahead-circle,.schedule-header-hidden .play-ahead-select{animation:none;opacity:0}.schedule-header-reveal .btn-play-ahead-circle{animation:scheduleRowReveal .5s ease-out,circleGlow 2s ease-in-out .5s infinite}.schedule-header-reveal .play-ahead-select{animation:scheduleRowReveal .5s ease-out}.schedule-header-hidden{opacity:0}.schedule-header-reveal{animation:scheduleHeaderFadeIn .5s ease-out;opacity:1}@keyframes scheduleHeaderFadeIn{0%{opacity:0}to{opacity:1}}@keyframes scheduleRowReveal{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:none}}.content-fade-out{animation:contentFadeOut .4s ease-out forwards}@keyframes contentFadeOut{0%{opacity:1}to{opacity:0}}.schedule-returning tr{animation:scheduleRowFadeIn 1.1s ease-out both}.schedule-returning .match-cell-animate{animation:matchCellPop .5s ease-out forwards}@keyframes scheduleRowFadeIn{0%{opacity:0}to{opacity:1}}.match-cell-animate{animation:matchCellPop .5s ease-out forwards}@keyframes matchCellPop{0%{opacity:0;transform:scale(2) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulseText{0%,to{opacity:1}50%{opacity:.6}}.bracket-card-reveal{animation:bracketCardReveal .5s ease-out forwards}.bracket-returning .bracket-col{animation:scheduleRowFadeIn 1.1s ease-out both}.bracket-returning .match-cell-animate{animation:matchCellPop .5s ease-out forwards}.bracket-col-returning{animation:scheduleRowFadeIn 1.8s ease-out both}.bracket-header-hidden{opacity:0;transform:scale(.8) translateY(20px)}@keyframes bracketCardReveal{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.fade-in{animation:fadeInGeneric .5s ease-out both}@keyframes fadeInGeneric{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skill-game-container{display:flex;gap:24px}.skill-game-card{background:linear-gradient(135deg,#f7fafc,#edf2f7);border:1.5px solid #e2e8f0;border-radius:14px;flex:1 1;min-width:0;padding:16px}@media (max-width:600px){.skill-game-container{flex-direction:column;gap:24px}.skill-game-card{flex:none;width:100%}}@keyframes summaryModalIn{0%{opacity:0;transform:scale(.3) translateY(-40px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes summaryModalOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.3) translateY(-40px)}}@keyframes summaryBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes summaryBackdropOut{0%{opacity:1}to{opacity:0}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.stats-table{font-size:.9rem}.stats-table,.stats-table-sm{border-collapse:collapse;width:100%}.stats-table-sm{font-size:.85rem;margin-top:8px}.cell-center{padding:10px 8px;text-align:center}.cell-left,.cell-left-bold{padding:10px 12px}.cell-left-bold{font-weight:600}.cell-sm-center{padding:6px 8px;text-align:center}.cell-sm-left{padding:6px 10px;text-align:left}.cell-win{color:#28a745}.cell-loss,.cell-win{font-weight:600;padding:10px 8px;text-align:center}.cell-loss{color:#dc3545}.thead-light{background:#f0f0f0}.thead-sub{background:#e9ecef}.row-sep{border-bottom:1px solid #eee}.stat-card{background:linear-gradient(135deg,#f7fafc,#edf2f7);border:1.5px solid #e2e8f0;border-radius:14px;padding:20px;text-align:center}.section-header{border-bottom:2px solid #333;margin-bottom:16px;padding-bottom:8px}.stats-card-table{background:#fff;background:var(--card-bg);border:1px solid #e8ecf1;border-radius:16px;box-shadow:0 2px 12px #0000000f;margin-bottom:8px;overflow:hidden}.stats-card-table table{border:none;border-radius:0;box-shadow:none;width:100%}.stats-card-table th{background:linear-gradient(180deg,#f4f7fb,#eef2f8);border-bottom:1px solid #e2e8f0;color:#8b9ab5;font-size:.68rem;font-weight:600;letter-spacing:.6px;padding:10px 12px;text-transform:uppercase}.stats-card-table td{border-bottom:1px solid #f0f3f7;color:#2d3748;font-size:.88rem;padding:10px 12px}.stats-card-table tr:last-child td{border-bottom:none}.stats-card-table tr:hover{background:#f7fafc}.stats-card-table .expanded-row:hover{background:#0000}.stats-card-table .expanded-row>td{background:#f8fafc;padding:0}.stats-card-table .sub-table{border:none;border-radius:0;box-shadow:none;margin:0;width:100%}.stats-card-table .sub-table th{background:linear-gradient(180deg,#edf0f5,#e8ecf2);font-size:.64rem;padding:8px 10px}.stats-card-table .sub-table td{font-size:.82rem;padding:8px 10px}.admin-page{align-items:flex-start;display:flex;justify-content:center;min-height:80vh;padding:20px 0}@media (max-width:768px){.admin-page{padding:8px 0}.admin-panel{border-radius:0;box-shadow:none;padding:12px 8px}}.admin-login-card{animation:summaryModalIn .35s cubic-bezier(.34,1.56,.64,1) forwards;background:linear-gradient(135deg,#f7fafc,#edf2f7);border:2px solid #cbd5e0;border-radius:14px;box-shadow:0 8px 32px #0000002e;max-width:400px;padding:44px 36px;text-align:center;width:100%}.admin-login-card h2{color:#2d3748;font-size:1.5rem;font-weight:700;margin:0 0 6px}.admin-login-card p{color:#718096;font-size:.92rem;margin:0 0 24px}.admin-login-card .form-group input.input-error{border-color:#e53e3e;box-shadow:0 0 0 2px #e53e3e26}.admin-login-error{align-items:center;background:#e53e3e0f;border-radius:8px;color:#c53030;display:flex;font-size:.82rem;font-weight:500;gap:6px;margin-top:6px;padding:8px 12px}@media (max-width:640px){.league-card{align-items:stretch!important;flex-direction:column!important}.league-card-info{flex:initial!important}.league-card-invite{align-self:center}.league-card-controls{flex:initial!important;flex-wrap:wrap;justify-content:center!important}.user-card{align-items:stretch!important;flex-direction:column!important}.user-card-info{flex:initial!important}.user-card-actions{flex-wrap:wrap}.user-card-actions,.user-card-stats{justify-content:center}}.user-menu-item{transition:background .15s ease}.user-menu-item:hover:not(:disabled){background:#334155!important}.user-menu-item:active:not(:disabled){background:#475569!important}.admin-login-card .btn-primary{background:linear-gradient(135deg,#2980b9,#1a5276);border-radius:8px;box-shadow:0 4px 14px #1a527659;font-size:1rem;font-weight:600;margin-top:4px;padding:12px;transition:box-shadow .2s,transform .15s;width:100%}.admin-login-card .btn-primary:hover{box-shadow:0 6px 20px #1a527680;transform:translateY(-1px)}.admin-unlock-modal{animation:summaryModalIn .35s cubic-bezier(.34,1.56,.64,1) forwards;background:linear-gradient(135deg,#f7fafc,#edf2f7);border:2px solid #cbd5e0;border-radius:14px;box-shadow:0 8px 32px #00000040;max-width:380px;min-width:300px;padding:28px 32px 24px;text-align:center;width:90%}.admin-unlock-modal h3{color:#2d3748;font-size:1.15rem;font-weight:700;margin:0 0 8px}.admin-unlock-modal p{color:#4a5568;font-size:.88rem;line-height:1.4;margin:0 0 18px}.admin-unlock-modal input{background:#fff;border:1.5px solid #cbd5e0;border-radius:8px;box-sizing:border-box;font-size:.95rem;margin-bottom:8px;outline:none;padding:12px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.admin-unlock-modal input:focus{border-color:#63b3ed;box-shadow:0 0 0 3px #4299e126}.admin-unlock-modal input.input-error{border-color:#e53e3e}.admin-unlock-modal .error-text{color:#e53e3e;font-size:.82rem;margin:0 0 8px}.admin-unlock-modal .btn-row{display:flex;gap:12px;justify-content:center;margin-top:16px}.admin-unlock-modal .btn-primary{background:linear-gradient(135deg,#2980b9,#1a5276);min-width:110px}.admin-unlock-modal .btn-primary,.admin-unlock-modal .btn-secondary{border-radius:8px;box-shadow:0 2px 8px #00000026;font-weight:600;padding:10px 28px}.admin-unlock-modal .btn-secondary{background:linear-gradient(135deg,#4a5568,#2d3748);border:none;color:#fff}.play-ahead-backdrop{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.play-ahead-backdrop.closing{animation:summaryBackdropOut .3s ease forwards}.play-ahead-backdrop:not(.closing){animation:summaryBackdropIn .3s ease forwards}.play-ahead-panel{animation:summaryModalIn .35s cubic-bezier(.34,1.56,.64,1) forwards;background:linear-gradient(135deg,#f7fafc,#edf2f7);border:2px solid #cbd5e0;border-radius:14px;box-shadow:0 8px 32px #00000040;max-height:75vh;max-width:500px;overflow-y:auto;padding:28px 32px 24px;width:90%}.play-ahead-panel.closing{animation:summaryModalOut .28s ease forwards}.play-ahead-panel .pa-header{margin:0 0 18px;text-align:center}.play-ahead-panel .pa-title{color:#2d3748;font-size:1.4rem;font-weight:700;margin:0 0 2px}.play-ahead-panel .pa-subtitle{color:#718096;font-size:1rem;margin:0 0 4px}.play-ahead-panel .pa-link{background:none;border:none;color:#a0aec0;cursor:pointer;font-size:.75rem;padding:0;text-decoration:underline}.play-ahead-panel .pa-empty{color:#4a5568;font-size:.95rem;padding:28px 16px;text-align:center}.play-ahead-panel .pa-match-list{display:flex;flex-direction:column;gap:8px}.play-ahead-panel .pa-match-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;padding:14px 18px;text-align:left;transition:all .18s ease}.play-ahead-panel .pa-match-btn:hover{background:#f0f7ff;border-color:#a3bfdb;box-shadow:0 4px 12px #1a52761f;transform:translateY(-2px)}.play-ahead-panel .pa-match-title{color:#2d3748;font-size:.95rem;font-weight:700}.play-ahead-panel .pa-match-sub{color:#718096;font-size:.85rem;margin-top:2px}.play-ahead-panel .pa-close{background:linear-gradient(135deg,#4a5568,#2d3748);border:none;border-radius:8px;box-shadow:0 2px 8px #00000026;color:#fff;cursor:pointer;display:block;font-size:.9rem;font-weight:600;margin:18px auto 0;padding:10px 28px;transition:box-shadow .2s,transform .15s}.play-ahead-panel .pa-close:hover{box-shadow:0 4px 14px #00000040;transform:translateY(-1px)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
/*# sourceMappingURL=main.c80af334.css.map*/