*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1419;--surface: #1a2332;--surface-hover: #243044;--border: #2d3a4f;--text: #e8edf4;--text-muted: #8b9cb3;--primary: #4f8cff;--primary-hover: #3a7aef;--secondary: #2d3a4f;--danger: #ff6b6b;--success: #51cf66;--radius: 12px;--shadow: 0 8px 32px rgba(0, 0, 0, .4);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}body{min-height:100vh;background:radial-gradient(ellipse at top,#1a2744 0%,var(--bg) 60%)}#root{min-height:100vh}.app{max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem}.admin-bar{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-bottom:1.5rem}.role-badge{font-size:.8rem;font-weight:600;padding:.25rem .625rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.role-admin{background:rgba(81,207,102,.15);color:var(--success);border:1px solid rgba(81,207,102,.35)}.role-viewer{background:rgba(139,156,179,.15);color:var(--text-muted);border:1px solid var(--border)}.hero{text-align:center;margin-bottom:3rem}.hero h1{font-size:2.25rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.hero p{color:var(--text-muted);font-size:1.1rem}.sport-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem}.sport-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.5rem;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;color:var(--text)}.sport-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 40px #0000004d}.sport-icon{font-size:3rem}.sport-name{font-size:1.25rem;font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:440px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow)}.modal-wide{max-width:640px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-body{padding:1.5rem}.btn-icon{background:none;border:none;color:var(--text-muted);font-size:1.75rem;cursor:pointer;line-height:1;padding:0 .25rem}.btn-icon:hover{color:var(--text)}.wip-message{text-align:center;padding:1rem 0}.wip-icon{font-size:3rem;display:block;margin-bottom:1rem}.wip-message p{font-size:1.25rem;font-weight:600}.wip-sub{color:var(--text-muted)!important;font-size:.95rem!important;font-weight:400!important;margin-top:.5rem}.mode-prompt{text-align:center;color:var(--text-muted);margin-bottom:1.25rem}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.mode-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;background:var(--surface-hover);border:2px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:1rem;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}.mode-btn span:first-child{font-size:2rem}.mode-btn:hover{border-color:var(--primary);background:rgba(79,140,255,.1)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--secondary);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{color:var(--text);border-color:var(--text-muted)}.btn-sm{padding:.4rem .875rem;font-size:.85rem}.btn-text{background:none;border:none;cursor:pointer;font-size:.85rem;font-weight:500}.btn-danger{color:var(--danger)}.setup-panel{display:flex;flex-direction:column;gap:1.25rem}.setup-intro{color:var(--text-muted);line-height:1.6}.setup-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--border)}.team-list{display:flex;flex-direction:column;gap:1rem}.team-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.team-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.team-number{font-weight:600;color:var(--primary);font-size:.9rem}.form-grid{display:grid;gap:.75rem}.form-grid label,.form-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500;color:var(--text-muted)}input,select{padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.95rem}input:focus,select:focus{outline:none;border-color:var(--primary)}.error-text{color:var(--danger);font-size:.875rem}.format-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.format-card{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.25rem;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:var(--text);transition:border-color .15s}.format-card:hover{border-color:var(--primary)}.format-icon{font-size:1.75rem}.format-title{font-weight:600;font-size:1.05rem}.format-desc{font-size:.85rem;color:var(--text-muted);line-height:1.4}.tournament-view{display:flex;flex-direction:column;gap:1.5rem}.tournament-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.tournament-header-actions{display:flex;gap:.5rem}.tournament-header h2{font-size:1.5rem}.tournament-meta{color:var(--text-muted);font-size:.9rem;margin-top:.25rem}.tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border)}.tab{padding:.75rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:.95rem;font-weight:600;cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab:hover:not(.active){color:var(--text)}.schedule{display:flex;flex-direction:column;gap:1.5rem}.round-group h3{font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem}.match-list{display:flex;flex-direction:column;gap:.75rem}.match-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.875rem}.match-card.completed{border-left:3px solid var(--success)}.match-teams{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.match-team{flex:1;min-width:120px;display:flex;flex-direction:column;gap:.15rem}.match-players{font-size:.8rem;color:var(--text-muted)}.match-vs{color:var(--text-muted);font-size:.85rem;font-weight:600}.match-result{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.score-display{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.score-pending{color:var(--text-muted);font-size:.9rem}.score-editor{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid var(--border)}.score-editor label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-muted)}.score-editor input{width:70px}.score-actions{display:flex;gap:.5rem;margin-left:auto}.standings-wrapper{overflow-x:auto}.standings-note{color:var(--text-muted);font-size:.85rem;margin-bottom:1rem}.standings-table{width:100%;border-collapse:collapse;font-size:.9rem}.standings-table th,.standings-table td{padding:.75rem .875rem;text-align:center;border-bottom:1px solid var(--border)}.standings-table th{background:var(--surface);color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.standings-table td:nth-child(2){text-align:left}.standings-table tbody tr:hover{background:rgba(255,255,255,.03)}.standings-table tr.leader{background:rgba(81,207,102,.08)}.table-players{display:block;font-size:.75rem;color:var(--text-muted);font-weight:400}.positive{color:var(--success)}.negative{color:var(--danger)}.points-cell{font-weight:700;color:var(--primary)}.history-section{margin-top:3rem}.history-section h2{font-size:1.25rem;margin-bottom:1rem}.history-empty{color:var(--text-muted);font-size:.95rem}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:var(--text);transition:border-color .15s,background .15s}.history-card:hover{border-color:var(--primary);background:var(--surface-hover)}.history-card-main{display:flex;align-items:center;gap:.75rem}.history-format{font-size:.8rem;color:var(--primary);background:rgba(79,140,255,.12);padding:.15rem .5rem;border-radius:999px}.history-card-meta{font-size:.85rem;color:var(--text-muted);display:flex;gap:.5rem;flex-wrap:wrap}.error-banner{background:rgba(255,107,107,.12);border:1px solid rgba(255,107,107,.35);color:var(--danger);padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}@media (max-width: 600px){.mode-options,.format-options{grid-template-columns:1fr}.match-teams{flex-direction:column;align-items:flex-start}.match-vs{display:none}}
