:root{color-scheme:light dark}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;background:#f5f5f7;color:#1a1a1a}.container{max-width:640px;margin:0 auto;padding:1rem}.container-wide{max-width:960px}.hero{text-align:center;padding:2rem 0 1rem}.hero h1{font-size:2.5rem;letter-spacing:.08em}.subtitle{color:#555;margin-top:.25rem}.card{background:#fff;border:1px solid #e2e2e6;border-radius:.5rem;padding:1rem;margin-top:1rem}.card h2{font-size:1.1rem;margin-bottom:.5rem}.footer{text-align:center;margin:2rem 0}.muted{color:#888;font-size:.9em}.error{color:#b3261e}.error,.success{margin-top:.5rem}.success{color:#1b5e20}a{color:#1a4f8b}.tournament-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.tournament-list .card{margin-top:0}.tournament-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;flex-wrap:wrap}.tournament-name{font-weight:600;font-size:1.05rem}.tournament-meta{font-size:.92rem;margin-top:.15rem}.tournament-actions{display:flex;gap:.75rem;align-items:center;margin-top:.5rem;flex-wrap:wrap}.player-list{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.player-chip{background:#eef1f6;border-radius:999px;padding:.1rem .6rem;font-size:.9rem}.seed{color:#666;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{font-size:.75rem;border-radius:999px;padding:.1rem .55rem;white-space:nowrap}.badge-draft{background:#ececec;color:#555}.badge-live{background:#d9f0dd;color:#1b5e20}.badge-registrations{background:#fdf0d5;color:#7a5b00}.badge-finished{background:#dbe7f5;color:#1a4f8b}.badge-phase-upcoming{background:#ececec;color:#555}.badge-phase-live{background:#d9f0dd;color:#1b5e20}.badge-phase-finished{background:#dbe7f5;color:#1a4f8b}.staff-header{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.tabs{display:flex;gap:.25rem;overflow-x:auto;margin:.75rem 0 .25rem;border-bottom:2px solid #e2e2e6}.tab{border:none;background:none;padding:.45rem .7rem;border-radius:.35rem .35rem 0 0;white-space:nowrap;color:#555}.tab-active{color:#1a4f8b;font-weight:600;background:#fff;box-shadow:inset 0 -2px 0 #1a4f8b}.table{width:100%;border-collapse:collapse;font-size:.95rem}.table td,.table th{text-align:left;padding:.35rem .5rem;border-bottom:1px solid #e2e2e6}.table th{font-size:.8rem;color:#777;text-transform:uppercase;letter-spacing:.03em}.form-margin{margin-top:.75rem}.inline-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.edit-toggle{margin-top:.75rem}.chip-edit{display:grid;grid-template-columns:1fr;grid-gap:.35rem;gap:.35rem;width:100%;margin:.5rem 0;padding:.5rem;background:#fff;border:1px solid #d5d5dc;border-radius:.4rem}.chip-edit label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}.phase-hint{margin-bottom:.5rem}.placement-list{list-style:none;display:flex;flex-direction:column;gap:.35rem;margin:.75rem 0}.placement-item{display:flex;align-items:center;gap:.6rem;padding:.4rem .6rem;background:#fafafa;border:1px solid #d5d5dc;border-radius:.4rem;cursor:-webkit-grab;cursor:grab}.placement-name{flex:1 1}.placement-buttons{display:flex;gap:.35rem}.prewrap{white-space:pre-wrap}.btn-register{display:inline-block;padding:.5rem 1.1rem;text-decoration:none;border-radius:.35rem}.rgpd{text-align:left;margin-bottom:2rem}.form-grid{display:grid;grid-template-columns:1fr;grid-gap:.75rem;gap:.75rem}@media (min-width:640px){.form-grid{grid-template-columns:1fr 1fr}}.form-grid label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.form-grid-full{grid-column:1/-1}.checkbox-label{flex-direction:row!important;align-items:center;gap:.5rem!important}.form-inline{display:flex;gap:.5rem;flex-wrap:wrap}button,input,select{font:inherit;border:1px solid #c9c9d0;border-radius:.35rem;padding:.45rem .6rem;background:#fff;color:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary,button[type=submit]{background:#1a4f8b;color:#fff;border-color:#1a4f8b}.btn-link{background:none;border:none;color:#1a4f8b;text-decoration:underline;padding:0}.btn-chip{font-size:.75rem;margin-left:.25rem}.btn-danger{background:none;border:1px solid #b3261e;color:#b3261e;border-radius:.35rem;padding:.2rem .6rem}.champion{border-color:#c9a227;background:#fff8e1}.champion-name{font-size:1.6rem;font-weight:700}.bracket{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem}.bracket-col{display:flex;flex-direction:column;gap:.6rem;min-width:11rem;flex:1 0 auto}.bracket-col-title{font-size:.85rem;color:#666;text-align:center;font-weight:600}.match-box{border:1px solid #d5d5dc;border-radius:.4rem;padding:.4rem;background:#fafafa}.match-box.finished,.match-box.forfeit{border-color:#b9c6d8}.match-line{display:flex;justify-content:space-between;gap:.5rem;padding:.1rem .25rem}.match-line.winner{font-weight:700}.match-score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.match-status{font-size:.72rem;color:#888;text-align:right;border-top:1px dashed #e2e2e6;margin-top:.2rem;padding-top:.15rem}.match-note{text-align:center;font-size:.78rem;color:#8a6d1a;background:#fff3cd;border-radius:.25rem;margin-top:.25rem;padding:.1rem 0}.score-round{margin-bottom:1.25rem}.score-round h3{font-size:.95rem;margin-bottom:.5rem}.score-form{border:1px solid #e2e2e6;border-radius:.4rem;padding:.6rem;margin-bottom:.5rem}.score-names{display:flex;gap:.4rem;font-weight:600}.score-inputs{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}.score-inputs input{width:4.5rem;text-align:center}.forfeit-label{display:flex;align-items:center;gap:.35rem;font-size:.85rem}@media (prefers-color-scheme:dark){body{background:#141416;color:#eee}.card,.match-box{background:#1e1e22;border-color:#333}.match-box{background:#232329}.bracket-col-title,.match-status,.muted,.subtitle{color:#aaa}.badge-draft,.player-chip{background:#2a2a30}.badge-draft{color:#aaa}.badge-live{background:#12301a;color:#7fd68a}.badge-finished{background:#16283c;color:#8fbce8}input,select{background:#232329;border-color:#444;color:#eee}.btn-primary,button[type=submit]{background:#3a7bc4;border-color:#3a7bc4;color:#fff}.btn-link{color:#8fbce8}.btn-danger{border-color:#e57368;color:#e57368}.champion{background:#332c14;border-color:#c9a227}.match-note{background:#3a3016;color:#d9b64a}.tabs{border-bottom-color:#333}.tab{color:#aaa;background:none}.tab-active{color:#8fbce8;background:#1e1e22;box-shadow:inset 0 -2px 0 #3a7bc4}.table td,.table th{border-bottom-color:#333}.table th{color:#888}.chip-edit,.placement-item{background:#232329;border-color:#444}.badge-registrations{background:#3a3016;color:#d9b64a}.badge-phase-upcoming{background:#2a2a30;color:#aaa}.badge-phase-live{background:#12301a;color:#7fd68a}.badge-phase-finished{background:#16283c;color:#8fbce8}a{color:#8fbce8}}.tv{min-height:100vh;background:#0b0e14;color:#e8ecf3;padding:1.25rem;font-size:1.05rem}.tv-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;border-bottom:1px solid #2a3242;padding-bottom:.75rem;margin-bottom:1rem}.tv-header h1{font-size:2.2rem;letter-spacing:.05em}.tv-sub{color:#93a0b8;font-size:.95rem}.tv-clock{text-align:right}.tv-clock-time{font-size:2.2rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-grid{display:grid;grid-template-columns:1fr;grid-gap:1.25rem;gap:1.25rem}@media (min-width:900px){.tv-grid{grid-template-columns:2.2fr 1fr}}.tv-grid h2{font-size:1.1rem;text-transform:uppercase;letter-spacing:.08em;color:#93a0b8;margin-bottom:.6rem}.tv-bracket .bracket{gap:1.5rem}.tv-bracket .bracket-col{min-width:14rem}.tv-bracket .match-box{background:#131824;border-color:#2a3242;color:#e8ecf3}.tv-bracket .bracket-col-title,.tv-bracket .match-status{color:#93a0b8}.tv-side{display:flex;flex-direction:column;gap:1.25rem}.tv-match{display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:#131824;border:1px solid #2a3242;border-radius:.4rem;padding:.45rem .7rem;margin-bottom:.4rem}.tv-match-name{flex:1 1}.tv-match-name.tv-win{font-weight:700;color:#7fd68a}.tv-match-score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.tv-vs{color:#93a0b8;font-size:.85rem}.tv-round-hint{margin-bottom:.6rem}.tv-round-hint .tv-sub{margin:0 0 .2rem .15rem}.tv-empty{color:#93a0b8}.tv-back{color:#8fbce8;display:inline-block;margin-top:.5rem}.tv .match-note{background:#3a3016;color:#d9b64a}.tv .champion{background:#241f0e;border-color:#c9a227;color:#eee}