:root{--primary:#00d25b;--primary-dark:#00a343;--primary-light:#e8fbf2;--primary-rgb:0, 210, 91;--accent:#ffd600;--accent-dark:#e5be00;--background:#f3f7f4;--surface:#fff;--text:#0b1a0e;--text-muted:#536b58;--border:#e2ece4;--danger:#ff3b30;--danger-light:#ffebe6;--shadow-sm:0 2px 8px #001a080a;--shadow-md:0 8px 24px #001a080f;--shadow-lg:0 16px 40px #001a081a;--radius-lg:20px;--radius-md:12px;--radius-sm:8px;--transition:all .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;max-width:100%;overflow-x:hidden}body{background-color:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 100% 0,#00d25b0d 0%,#0000 40%),radial-gradient(circle at 0 100%,#ffd6000d 0%,#0000 40%);background-attachment:fixed;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-family:Outfit,sans-serif;font-weight:700}.app-container{flex-direction:column;max-width:1200px;min-height:100vh;margin:0 auto;padding:16px;display:flex}.app-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:100;background:#ffffffd9;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 24px;display:flex;position:sticky;top:16px}.brand{align-items:center;gap:12px;display:flex}.brand-icon{font-size:32px;animation:4s ease-in-out infinite bounce-slow}.brand h1{background:linear-gradient(135deg, var(--text) 0%, var(--primary-dark) 100%);-webkit-text-fill-color:transparent;text-transform:uppercase;letter-spacing:-.04em;-webkit-background-clip:text;font-size:24px;font-weight:900}.nav-tabs{background:var(--primary-light);border-radius:var(--radius-md);gap:8px;margin-bottom:24px;padding:6px;display:flex}.nav-tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);text-transform:uppercase;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-family:Outfit,sans-serif;font-size:14px;font-weight:600;display:flex}.nav-tab:hover{color:var(--primary-dark);background:#ffffff80}.nav-tab.active{background:var(--surface);color:var(--primary-dark);box-shadow:var(--shadow-sm)}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md);transition:var(--transition);margin-bottom:24px;padding:24px}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-title{color:var(--text);border-bottom:2px solid var(--primary-light);align-items:center;gap:10px;margin-bottom:16px;padding-bottom:10px;font-size:20px;display:flex}.form-group{margin-bottom:16px}.form-label{color:var(--text-muted);margin-bottom:6px;font-size:14px;font-weight:600;display:block}.input-text{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;transition:var(--transition);background:#f9fbf9;outline:none;padding:12px 16px;font-family:inherit;font-size:15px}.input-text:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px #00d25b26}.btn{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:.02em;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:Outfit,sans-serif;font-size:15px;font-weight:700;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;box-shadow:0 4px 12px #00d25b33}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00d25b4d}.btn-primary:active{transform:translateY(1px)}.btn-accent{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);color:var(--text);box-shadow:0 4px 12px #ffd60033}.btn-accent:hover{transform:translateY(-1px);box-shadow:0 6px 18px #ffd6004d}.btn-danger{background:var(--danger-light);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-secondary{color:var(--text-muted);background:#f0f4f1}.btn-secondary:hover{color:var(--text);background:#e2ece4}.btn-sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:12px}.team-tag{border:1px solid var(--border);border-radius:var(--radius-sm);background:#f0f4f1;align-items:center;gap:8px;padding:6px 12px;font-size:14px;font-weight:500;display:inline-flex}.team-tag-delete{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:14px;font-weight:700}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:20px;overflow-x:auto}.standings-table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.standings-table th{color:var(--text-muted);border-bottom:2px solid var(--border);background:#edf3ee;padding:12px 16px;font-family:Outfit,sans-serif;font-weight:600}.standings-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 16px}.standings-table tr:last-child td{border-bottom:none}.standings-table tr:hover{background:var(--primary-light)}.standings-table tr.highlight-advance{border-left:4px solid var(--primary)}.standings-table tr.highlight-advance-possible{border-left:4px solid var(--accent-dark)}.table-rank{color:var(--text-muted);width:30px;font-weight:700}.table-team-name{align-items:center;gap:8px;font-weight:600;display:flex}.table-pts{color:var(--primary-dark);font-weight:700}.matches-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=768px){.matches-grid{grid-template-columns:1fr 1fr}}.match-item{border:1px solid var(--border);border-radius:var(--radius-md);transition:var(--transition);background:#f9fbf9;flex-direction:column;gap:12px;padding:16px;display:flex}.match-item:hover{border-color:var(--primary);background:var(--surface);box-shadow:var(--shadow-sm)}.match-header{color:var(--text-muted);border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;padding-bottom:6px;font-size:12px;display:flex}.match-body{justify-content:space-between;align-items:center;gap:8px;display:flex}.match-body-stacked{flex-direction:column;gap:10px;display:flex}.match-team-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.match-team{flex:1;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:600;display:flex}.match-team .team-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-team.right{text-align:right;justify-content:flex-end}.match-scores{align-items:center;gap:8px;font-weight:700;display:flex}.input-score{text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:44px;height:40px;transition:var(--transition);outline:none;font-family:Outfit,sans-serif;font-size:18px;font-weight:700}.input-score:focus{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 3px #00d25b26}.input-score::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-score::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-score[type=number]{-moz-appearance:textfield}.score-divider{color:var(--text-muted);font-size:16px}.match-status{text-transform:uppercase;border-radius:12px;align-self:center;padding:2px 8px;font-size:11px;font-weight:600}.match-status.played{background:var(--primary-light);color:var(--primary-dark)}.match-status.pending{color:#888;background:#f0f0f0}.bracket-container{flex-direction:column;gap:32px;padding:16px 0;display:flex;overflow-x:auto}@media (width>=900px){.bracket-container{flex-direction:row;justify-content:space-around;align-items:center}}.bracket-round{flex-direction:column;flex:1;gap:24px;min-width:240px;display:flex}.bracket-round-title{text-align:center;text-transform:uppercase;color:var(--primary-dark);background:var(--primary-light);border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:8px;padding:8px;font-size:16px;font-weight:700}.playoff-match{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition);flex-direction:column;gap:10px;padding:14px;display:flex;position:relative}.playoff-match:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.playoff-team-row{justify-content:space-between;align-items:center;display:flex}.playoff-team-name{flex:1;align-items:center;gap:8px;min-width:0;margin-right:8px;font-size:13px;font-weight:500;display:flex}.playoff-team-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.playoff-team-row.winner .playoff-team-name{color:var(--primary-dark);font-weight:700}.playoff-team-row.loser{opacity:.5}.playoff-penalty-badge{background:var(--accent);color:var(--text);border-radius:4px;margin-left:6px;padding:1px 4px;font-size:10px;font-weight:700}.penalty-inputs{border-top:1px dashed var(--border);color:var(--text-muted);align-items:center;gap:4px;margin-top:6px;padding-top:6px;font-size:11px;display:flex}.penalty-inputs span{margin-right:auto}.input-penalty{text-align:center;border:1px solid var(--border);border-radius:4px;outline:none;width:32px;height:28px;font-size:12px;font-weight:700}.input-penalty:focus{border-color:var(--accent-dark);background:#fffde6}.winner-announcement{color:#fff;border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#1b3d22 0%,#051408 100%);padding:40px;position:relative;overflow:hidden}.winner-announcement:before{content:"";pointer-events:none;background-image:radial-gradient(circle,#00de5f26 0%,#0000 60%);position:absolute;inset:0}.trophy-icon{margin-bottom:16px;font-size:72px;animation:2s ease-in-out infinite pulse-slow;display:inline-block}.winner-title{text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(135deg, #fff 0%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-size:28px;font-weight:800}.winner-team-name{text-transform:uppercase;text-shadow:0 4px 12px #00d25b66;margin-bottom:24px;font-family:Outfit,sans-serif;font-size:36px;font-weight:900}.sync-indicator{transition:var(--transition);background:#f0f4f1;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.sync-indicator.synced{color:var(--primary-dark);background:var(--primary-light)}.sync-indicator.syncing{color:var(--accent-dark);background:#fffde6}.sync-indicator.offline{color:var(--danger);background:var(--danger-light)}.sync-dot{background-color:currentColor;border-radius:50%;width:8px;height:8px}.sync-dot.pulse{animation:1.5s ease-in-out infinite pulse-dot}@keyframes bounce-slow{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(10deg)}}@keyframes pulse-slow{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes pulse-dot{0%,to{opacity:.4}50%{opacity:1;transform:scale(1.2)}}.teams-setup-list{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.team-input-row{gap:8px;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-sm{gap:8px}.mt-md{margin-top:16px}.text-center{text-align:center}@media (width<=480px){.app-container{padding:10px}.app-header{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;position:static}.brand{justify-content:center}.brand h1{font-size:20px}.brand-icon{font-size:24px}.sync-indicator{padding:4px 10px;font-size:11px}.card{border-radius:16px;margin-bottom:16px;padding:16px}.card-title{margin-bottom:12px;font-size:17px}.nav-tabs{gap:4px;margin-bottom:16px;padding:4px}.nav-tab{gap:4px;padding:8px 10px;font-size:12px}.standings-table th,.standings-table td{padding:10px 8px;font-size:13px}.table-rank{width:20px}.match-item{gap:8px;padding:12px}.match-body{gap:4px}.match-team{gap:6px;font-size:13px}.input-score{width:38px;height:36px;font-size:16px}.bracket-round{min-width:100%}.playoff-match{padding:10px}.btn{padding:10px 16px;font-size:14px}}.score-adjuster{border:1px solid var(--border);border-radius:var(--radius-sm);background:#f0f4f1;align-items:center;height:40px;display:flex;overflow:hidden}.score-btn{width:32px;height:40px;color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;border:none;justify-content:center;align-items:center;font-size:12px;display:flex}.score-btn:hover:not(:disabled){background:var(--border);color:var(--text)}.score-btn:disabled{opacity:.3;cursor:not-allowed}.score-btn.plus:active:not(:disabled){background:var(--primary-light);color:var(--primary-dark)}.score-btn.minus:active:not(:disabled){background:var(--danger-light);color:var(--danger)}.score-adjuster .input-score{border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface);text-align:center;border-radius:0;width:36px;height:40px;padding:0;font-family:Outfit,sans-serif;font-weight:700}.score-adjuster.disabled{opacity:.6;pointer-events:none}@media (width<=480px){.score-adjuster{height:34px}.score-btn{width:28px;height:34px;font-size:10px}.score-adjuster .input-score{width:30px;height:34px;font-size:15px}}.bottom-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);z-index:999;background:#fffffff2;justify-content:space-around;align-items:center;height:64px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #0000000d}.bottom-nav-item{height:100%;color:var(--text-muted);cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:.02em;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-family:Outfit,sans-serif;font-size:11px;font-weight:600;display:flex}.bottom-nav-item i{font-size:18px}.bottom-nav-item:hover{color:var(--primary-dark)}.bottom-nav-item.active{color:var(--primary-dark);border-top:3px solid var(--primary);padding-top:0}
