*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.6;color:#333;background-color:#f5f5f5}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit;font-size:inherit}.app{max-width:1200px;margin:0 auto;padding:20px}.header{background:#1e40af;color:#fff;padding:20px;margin:-20px -20px 20px;text-align:center}.header h1{margin:0;font-size:1.8rem}.header a{color:#fff}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;margin-bottom:20px}.card h2{margin-bottom:15px;color:#1e40af}.card h3{margin-bottom:10px;color:#374151}.btn{display:inline-block;padding:10px 20px;border:none;border-radius:6px;font-size:1rem;font-weight:500;transition:background-color .2s}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn-success{background:#16a34a;color:#fff}.btn-success:hover{background:#15803d}.btn-small{padding:6px 12px;font-size:.875rem}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#374151}.form-group input,.form-group select{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-row{display:flex;gap:15px}.form-row .form-group{flex:1}.tournament-list{display:grid;gap:15px}.tournament-item{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.tournament-item h3{margin:0 0 5px}.tournament-info{font-size:.875rem;color:#6b7280}.tournament-actions{display:flex;gap:10px}.status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-setup{background:#fef3c7;color:#92400e}.status-active{background:#dcfce7;color:#166534}.status-completed{background:#e0e7ff;color:#3730a3}.tabs{display:flex;gap:5px;margin-bottom:20px;border-bottom:2px solid #e5e7eb}.tab{padding:10px 20px;background:none;border:none;font-size:1rem;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px}.tab:hover{color:#1e40af}.tab.active{color:#1e40af;border-bottom-color:#1e40af}.round{margin-bottom:30px}.round h3{margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #e5e7eb}.matches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.match-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.match-header{background:#f3f4f6;padding:8px 15px;font-size:.875rem;color:#6b7280;display:flex;justify-content:space-between}.match-body{padding:15px}.match-teams{display:flex;justify-content:space-between;align-items:center;gap:10px}.match-team{flex:1;text-align:center}.match-team.winner{font-weight:600;color:#166534}.match-vs{font-weight:600;color:#9ca3af}.match-score{display:flex;justify-content:center;gap:20px;margin-top:15px;padding-top:15px;border-top:1px solid #e5e7eb}.match-score span{font-size:1.5rem;font-weight:700}.match-score span.winner{color:#166534}.match-pending{text-align:center;color:#9ca3af;font-style:italic;margin-top:15px;padding-top:15px;border-top:1px solid #e5e7eb}.leaderboard{width:100%;border-collapse:collapse}.leaderboard th,.leaderboard td{padding:12px 15px;text-align:left;border-bottom:1px solid #e5e7eb}.leaderboard th{background:#f3f4f6;font-weight:600;color:#374151}.leaderboard tr:hover{background:#f9fafb}.leaderboard .rank{width:50px;font-weight:600;color:#1e40af}.leaderboard .points{font-weight:700;color:#166534}.player-list,.team-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.player-tag,.team-tag{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#e0e7ff;border-radius:20px;font-size:.875rem}.player-tag button,.team-tag button{background:none;border:none;color:#6b7280;font-size:1rem;padding:0;line-height:1}.player-tag button:hover,.team-tag button:hover{color:#dc2626}.add-form{display:flex;gap:10px}.add-form input{flex:1;padding:10px;border:1px solid #d1d5db;border-radius:6px}.result-form{display:flex;align-items:center;gap:10px;margin-top:15px;padding-top:15px;border-top:1px solid #e5e7eb}.result-form input{width:60px;padding:8px;text-align:center;border:1px solid #d1d5db;border-radius:6px;font-size:1.2rem;font-weight:600}.result-form span{font-weight:500;color:#6b7280}.loading{text-align:center;padding:40px;color:#6b7280}.error{background:#fef2f2;color:#b91c1c;padding:15px;border-radius:8px;margin-bottom:20px}.empty{text-align:center;padding:40px;color:#6b7280}@media(max-width:768px){.app{padding:10px}.header{margin:-10px -10px 15px;padding:15px}.form-row{flex-direction:column}.tournament-item{flex-direction:column;align-items:flex-start;gap:10px}.tournament-actions{width:100%}.tournament-actions .btn{flex:1}.matches-grid{grid-template-columns:1fr}.leaderboard{font-size:.875rem}.leaderboard th,.leaderboard td{padding:8px 10px}}
