@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";.top-nav{background:linear-gradient(135deg,#0c2d48,#163a5c);border-bottom:3px solid var(--color-gold);position:sticky;top:0;z-index:200;box-shadow:0 4px 16px #0c2d4840}body[data-env=dev] .top-nav{background:linear-gradient(135deg,#0c4830,#165c3a);box-shadow:0 4px 16px #0c483040}.top-nav-inner{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.25rem;max-width:1600px;margin:0 auto;gap:1rem}.top-nav-brand{font-size:1.35rem;font-weight:800;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.top-nav-brand:hover{color:var(--color-gold)}.top-nav-menu{display:flex;align-items:center;gap:.75rem}.top-nav-select{padding:.4rem .8rem;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.top-nav-select option{background:#0c2d48;color:#fff}body[data-env=dev] .top-nav-select option{background:#0c4830}.top-nav-select:focus{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 2px #ffeb7a4d}.top-nav-select:hover{background:#ffffff26;border-color:#ffffff59}.top-nav-tabs{display:flex;gap:.25rem}.top-nav-tab{padding:.4rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);background:transparent;color:#ffffffbf;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;transition:all .15s ease}.top-nav-tab:hover{background:#ffffff1a;color:#fff}.top-nav-tab.active{background:var(--color-gold);color:#0c2d48;border-color:var(--color-gold)}body[data-env=dev] .top-nav-tab.active{color:#0c4830}.top-nav-hamburger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:4px}.top-nav-hamburger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:all .2s ease}.top-nav-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}.top-nav-hamburger.open span:nth-child(2){opacity:0}.top-nav-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}@media (max-width: 768px){.top-nav-hamburger{display:flex}.top-nav-brand{font-size:1rem}.top-nav-menu{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:linear-gradient(135deg,#0c2d48,#163a5c);padding:.75rem 1.25rem;border-bottom:3px solid var(--color-gold);box-shadow:0 8px 16px #0000004d;z-index:201}body[data-env=dev] .top-nav-menu{background:linear-gradient(135deg,#0c4830,#165c3a)}.top-nav-menu.open{display:flex}.top-nav-select{width:100%}.top-nav-tabs{width:100%;justify-content:center}.top-nav-tab{flex:1;text-align:center}}.leaderboard-table-container{overflow-x:auto;border-radius:var(--radius-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.leaderboard-table{border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums;--rank-col-width: 60px;width:max-content;margin:0 auto}.leaderboard-table thead{position:sticky;top:0;z-index:10}.leaderboard-table th{background:var(--color-accent);color:#fff;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:.5rem .25rem;text-align:center;border-bottom:3px solid var(--color-gold);white-space:nowrap}.leaderboard-table .sub-header th{background:#0c2d48d9;font-size:.7rem;font-weight:600;padding:.375rem .5rem;border-bottom:1px solid var(--color-border);letter-spacing:.04em}.col-course,.sub-header .col-score{border-left:1px solid rgba(255,255,255,.15)}.course-name{font-size:.8rem;display:block}.course-name-with-logo{display:none}.course-logo{max-height:80px;max-width:140px;object-fit:contain;display:block;margin:0 auto}.leaderboard-table td{padding:.35rem .25rem;text-align:center;border-bottom:1px solid var(--color-border-light);transition:background var(--transition-fast)}.col-rank{width:60px;max-width:60px;font-weight:700;font-size:1.05rem}.col-player{width:240px;min-width:200px;max-width:260px;text-align:left!important;font-weight:500;font-size:1.05rem}.leaderboard-table td.col-rank,.leaderboard-table th.col-rank{position:sticky;left:0;z-index:3}.leaderboard-table td.col-player,.leaderboard-table th.col-player{position:sticky;left:var(--rank-col-width);z-index:3}.leaderboard-table thead th.col-rank,.leaderboard-table thead th.col-player{z-index:12}.leaderboard-table td.col-rank,.leaderboard-table td.col-player{background:var(--color-bg-secondary)}.player-row.main-bracket.even td.col-rank,.player-row.main-bracket.even td.col-player{background:#fffdf4}.player-row.main-bracket.odd td.col-rank,.player-row.main-bracket.odd td.col-player{background:#fffceb}.player-row.purple-bracket.even td.col-rank,.player-row.purple-bracket.even td.col-player{background:#f9f6fd}.player-row.purple-bracket.odd td.col-rank,.player-row.purple-bracket.odd td.col-player{background:#f2eefb}.player-row.pink-bracket.even td.col-rank,.player-row.pink-bracket.even td.col-player{background:#fef4f9}.player-row.pink-bracket.odd td.col-rank,.player-row.pink-bracket.odd td.col-player{background:#fde9f4}.player-row.copper-bracket.even td.col-rank,.player-row.copper-bracket.even td.col-player{background:#fdf8f5}.player-row.copper-bracket.odd td.col-rank,.player-row.copper-bracket.odd td.col-player{background:#faf2eb}.player-row:hover td.col-rank,.player-row:hover td.col-player{filter:brightness(.97)}.col-score{width:42px;max-width:50px;font-weight:600;font-size:.95rem;border-left:1px solid var(--color-border)}.col-gsps{width:52px;max-width:65px;color:var(--color-text-muted);font-size:.8rem}.leaderboard-table td.col-score,.leaderboard-table td.col-gsps,.leaderboard-table th.col-score,.leaderboard-table th.col-gsps{padding-left:.15rem;padding-right:.15rem}.col-total-score,.col-total-gsps{width:70px;max-width:80px;font-weight:900;font-size:1.05rem}.col-total-gsps{padding-left:.75rem;padding-right:.75rem}.col-total-score{border-left:2px solid var(--color-border)}.section-end{border-right:2px solid var(--color-border)}thead .section-end{border-right-color:#ffffff40}.rank{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#e2e8f0;color:var(--color-text);font-weight:700;font-size:.85rem;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.player-row.main-bracket{border-left:4px solid #d4a800}.player-row.main-bracket.even{background:#ffeb7a14}.player-row.main-bracket.odd{background:#ffeb7a26}.player-row.main-bracket .rank{background:linear-gradient(135deg,#d4a800,#b8960e);color:#fff;box-shadow:0 1px 3px #d4a8004d}.player-row.purple-bracket{border-left:4px solid #9370db}.player-row.purple-bracket.even{background:#9370db0f}.player-row.purple-bracket.odd{background:#9370db1f}.player-row.purple-bracket .rank{background:linear-gradient(135deg,#9370db,#8a2be2);color:#fff;box-shadow:0 1px 3px #9370db4d}.player-row.purple-bracket .player-name{color:#6a1b9a}.player-row.pink-bracket{border-left:4px solid #e91e90}.player-row.pink-bracket.even{background:#e91e900d}.player-row.pink-bracket.odd{background:#e91e901a}.player-row.pink-bracket .rank{background:linear-gradient(135deg,#e91e90,#c2185b);color:#fff;box-shadow:0 1px 3px #e91e904d}.player-row.pink-bracket .player-name{color:#ad1457}.player-row.copper-bracket{border-left:4px solid #b87333}.player-row.copper-bracket.even{background:#b873330d}.player-row.copper-bracket.odd{background:#cd7f321a}.player-row.copper-bracket .rank{background:linear-gradient(135deg,#b87333,#cd7f32);color:#fff;box-shadow:0 1px 3px #b873334d}.player-row.copper-bracket .player-name{color:#8d5524}.unpaid-tag{font-size:.5rem;font-weight:800;padding:.05rem .25rem;margin-left:.3rem;border-radius:3px;background:#ff1744;color:#fff;letter-spacing:.5px;vertical-align:middle;animation:unpaidPulse 2s ease-in-out infinite}@keyframes unpaidPulse{0%,to{opacity:1}50%{opacity:.4}}.col-hio{width:45px;max-width:50px;text-align:center;border-left:1px solid var(--color-border)}thead .col-hio{border-left:1px solid rgba(255,255,255,.15)}.hio-value{font-weight:700;font-size:.95rem;color:#999}.hio-value.has-hio{color:#2196f3}.hio-no{font-weight:900;font-size:1.1rem;color:#e53935}.score.dnf{color:var(--color-error);font-style:italic}.course-best{position:relative;background:#ffd70026}.course-best .score{color:#b8860b}.best-indicator{color:#daa520;font-size:.7rem;margin-left:2px;vertical-align:super;text-shadow:0 0 4px rgba(255,215,0,.6);animation:starPulse 2s ease-in-out infinite}@keyframes starPulse{0%,to{opacity:1;text-shadow:0 0 4px rgba(255,215,0,.6)}50%{opacity:.7;text-shadow:0 0 8px rgba(255,215,0,.9)}}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.sortable:hover{background:#ffffff26}.sub-header .sortable:hover{background:#ffffff1f}.player-row{transition:transform var(--transition-fast),background var(--transition-fast)}.player-row:hover{background:#0c2d480a;transform:scale(1.002)}.player-row:hover .rank{transform:scale(1.1);box-shadow:0 2px 8px #00000026}.score-changed{animation:scoreChangeBlink 1.5s ease-in-out infinite}@keyframes scoreChangeBlink{0%,to{background:#f443362e}50%{background:#f443360f}}.player-row:nth-child(1) .rank,.player-row:nth-child(2) .rank,.player-row:nth-child(3) .rank{width:38px;height:38px;font-size:1rem;color:#fff;font-weight:800}.player-row:nth-child(1) .rank{background:linear-gradient(135deg,gold,#ffc107,#daa520);box-shadow:0 0 0 2px #ffd70066,0 0 16px #ffd70080;text-shadow:0 1px 2px rgba(0,0,0,.3);animation:goldPulse 2.5s ease-in-out infinite}@keyframes goldPulse{0%,to{box-shadow:0 0 0 2px #ffd70066,0 0 16px #ffd70080}50%{box-shadow:0 0 0 3px #ffd70080,0 0 24px #ffd70099}}.player-row:nth-child(2) .rank{background:linear-gradient(135deg,#e0e0e0,silver,#a0a0a0);box-shadow:0 0 0 2px #c0c0c066,0 0 12px #c0c0c066;text-shadow:0 1px 2px rgba(0,0,0,.3)}.player-row:nth-child(3) .rank{background:linear-gradient(135deg,#cd7f32,#b8860b,sienna);box-shadow:0 0 0 2px #cd7f3266,0 0 12px #cd7f3266;text-shadow:0 1px 2px rgba(0,0,0,.3)}.inline-gsps{display:block;font-size:.65rem;color:var(--color-text-muted);font-weight:400;line-height:1.1;margin-top:1px}.inline-gsps.total{font-size:.7rem;font-weight:600}.player-row.expanded{background:#0c2d480f!important}@media (max-width: 1200px){.leaderboard-table{font-size:.8rem}.leaderboard-table th,.leaderboard-table td{padding:.375rem .25rem}.course-name{font-size:.7rem}.course-logo{max-height:90px;max-width:180px}.player-row.main-bracket,.player-row.purple-bracket,.player-row.pink-bracket,.player-row.copper-bracket{border-left-width:3px}.rank{width:30px;height:30px;font-size:.8rem}.player-row:nth-child(1) .rank,.player-row:nth-child(2) .rank,.player-row:nth-child(3) .rank{width:34px;height:34px;font-size:.9rem}}@media (max-width: 768px){.col-player{min-width:100px}.player-name{font-size:.8rem}.player-row.main-bracket,.player-row.purple-bracket,.player-row.pink-bracket,.player-row.copper-bracket{border-left-width:3px}.rank{width:28px;height:28px;font-size:.75rem}.player-row:nth-child(1) .rank,.player-row:nth-child(2) .rank,.player-row:nth-child(3) .rank{width:30px;height:30px;font-size:.8rem}}@media (max-width: 480px){.leaderboard-table{--rank-col-width: 40px;font-size:.7rem}.leaderboard-table th{font-size:.6rem;padding:.4rem .15rem;letter-spacing:.02em}.leaderboard-table .sub-header th{font-size:.55rem;padding:.2rem .1rem}.leaderboard-table td{padding:.25rem .1rem}.col-rank{width:40px;font-size:.8rem}.col-player{min-width:80px;max-width:90px}.player-name{font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:80px}.col-score{width:34px;font-size:.75rem}.col-total-score,.col-total-gsps{font-size:.8rem}.rank{width:24px;height:24px;font-size:.65rem}.player-row:nth-child(1) .rank,.player-row:nth-child(2) .rank,.player-row:nth-child(3) .rank{width:26px;height:26px;font-size:.7rem}.course-logo{max-height:40px;max-width:60px}.course-name{font-size:.55rem}.leaderboard-table td.col-player{box-shadow:2px 0 4px #00000014}.leaderboard-table thead th.col-player{box-shadow:2px 0 4px #00000026}.best-indicator{font-size:.5rem}.player-row.main-bracket,.player-row.purple-bracket,.player-row.pink-bracket,.player-row.copper-bracket{border-left-width:2px}.leaderboard-table-container{border-radius:var(--radius-sm)}.inline-gsps{font-size:.55rem}.inline-gsps.total{font-size:.6rem}.player-row{cursor:pointer}.player-row:hover,.player-row:hover .rank{transform:none}}.hio-sidebar{width:300px;min-width:300px;background:#0f1a28;color:#e0e0e0;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.08);height:calc(100vh - 54px)}.hio-sidebar-header{padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between}.hio-sidebar-header h3{margin:0;font-size:.95rem;color:#fff;font-weight:700}.hio-sidebar-header .admin-link{font-size:.7rem;color:#ffffff80;text-decoration:none}.hio-sidebar-header .admin-link:hover{color:var(--color-gold)}.hio-player-list{flex:1;overflow-y:auto;padding:.5rem 0}.hio-player-row{display:flex;align-items:center;padding:.4rem 1rem;gap:.5rem;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}.hio-player-row:hover{background:#ffffff0a}.hio-player-name{flex:1;font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.hio-unpaid-badge{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#e53935;color:#fff;padding:.1rem .35rem;border-radius:3px;white-space:nowrap;flex-shrink:0}.hio-count{font-size:1rem;font-weight:800;color:#666;min-width:20px;text-align:center;flex-shrink:0}.hio-count.has-hio{color:#2196f3}.hio-buttons{display:flex;gap:.25rem;flex-shrink:0}.hio-btn{width:26px;height:26px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff0f;color:#e0e0e0;font-size:.85rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;line-height:1}.hio-btn:hover{background:#ffffff26;color:#fff}.hio-btn:active{transform:scale(.92)}.hio-btn.plus:hover{background:#4caf504d;border-color:#4caf5080}.hio-btn.minus:hover{background:#f443364d;border-color:#f4433680}.hio-earned{font-size:.7rem;font-weight:600;color:#4caf50;flex-shrink:0;min-width:36px;text-align:right}.hio-empty{padding:2rem 1rem;text-align:center;color:#fff6;font-size:.8rem}.hio-sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.35rem}.hio-stat-row{display:flex;justify-content:space-between;align-items:center}.hio-stat-label{font-size:.75rem;color:#ffffff80}.hio-stat-value{font-size:.85rem;font-weight:700;color:#fff}.connection-status{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-dot{width:8px;height:8px;border-radius:50%}.status-connected{background:#4caf5033;color:var(--color-success)}.status-connected .status-dot{background:var(--color-success);box-shadow:0 0 6px var(--color-success)}.status-disconnected{background:#f4433633;color:var(--color-error)}.status-disconnected .status-dot{background:var(--color-error)}.status-connecting{background:#ff980033;color:var(--color-warning)}.status-connecting .status-dot{background:var(--color-warning);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.leaderboard-page{display:flex;flex-direction:column;height:calc(100vh - 54px);background:var(--color-bg)}.leaderboard-controls{background:#0c2d4899;padding:.5rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.08)}.controls-inner{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;max-width:1600px;margin:0 auto}.control-select{padding:.35rem .75rem;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-full);background:#ffffff14;color:#fff;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.control-select option{background:#0c2d48;color:#fff}body[data-env=dev] .control-select option{background:#0c4830}.control-select:focus{outline:none;border-color:var(--color-gold)}.control-select:hover{background:#ffffff1f}.scroll-toggle{padding:.35rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);background:transparent;color:#ffffffbf;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .15s ease}.scroll-toggle:hover{background:#ffffff1a;color:#fff}.scroll-toggle.active{background:var(--color-gold);color:#0c2d48;border-color:var(--color-gold);box-shadow:0 0 12px #ffeb7a4d}body[data-env=dev] .scroll-toggle.active{color:#0c4830}.tournament-info{display:flex;gap:.75rem;align-items:center;margin-top:.4rem;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.08);max-width:1600px;margin-left:auto;margin-right:auto}.tournament-name{font-size:.9rem;font-weight:600;color:#ffffffd9}.tournament-phase{padding:.15rem .6rem;background:var(--color-gold);color:#0c2d48;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.hio-pot-summary{margin-left:auto;font-size:.75rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#1565c0,#1e88e5);padding:.2rem .75rem;border-radius:var(--radius-full);white-space:nowrap;box-shadow:0 0 10px #2196f366,0 2px 6px #0003;text-shadow:0 1px 2px rgba(0,0,0,.3)}body[data-env=dev] .tournament-phase{color:#0c4830}.leaderboard-body{display:flex;flex:1;min-height:0;overflow:hidden}.player-limit-input{width:70px;text-align:center}.player-limit-input::-webkit-outer-spin-button,.player-limit-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.player-limit-input[type=number]{-moz-appearance:textfield}.leaderboard-content{flex:1;min-height:0;min-width:0;overflow-y:auto;padding:1.25rem;max-width:1600px;margin:0 auto;width:100%}.loading-container,.error-container,.empty-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem}.leaderboard-footer{background:linear-gradient(135deg,#0c2d48,#163a5c);border-top:3px solid var(--color-gold);padding:.75rem;text-align:center;color:#fff9;font-size:.8rem;font-weight:500;box-shadow:0 -4px 16px #0c2d4826}body[data-env=dev] .leaderboard-footer{background:linear-gradient(135deg,#0c4830,#165c3a);box-shadow:0 -4px 16px #0c483026}@media (max-width: 768px){.controls-inner{justify-content:space-between}.control-select{flex:1;min-width:0}}@media (max-width: 480px){.leaderboard-controls{padding:.35rem .75rem}.controls-inner{gap:.5rem}.control-select{padding:.25rem .5rem;font-size:.75rem}.scroll-toggle{padding:.25rem .5rem;font-size:.6rem}.tournament-info{margin-top:.25rem;padding-top:.25rem;gap:.5rem}.tournament-name{font-size:.75rem}.tournament-phase{font-size:.55rem;padding:.1rem .35rem}.leaderboard-content{padding:.35rem}.leaderboard-footer{padding:.35rem;font-size:.65rem}}.tier-header{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:.75rem 1rem;flex-shrink:0}.tier-title{margin:0;font-size:1.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.tier-tabs{display:flex;gap:.25rem}.tier-tab{display:flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border:none;border-bottom:2px solid transparent;background:transparent;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:all .15s ease;border-radius:4px 4px 0 0}.tier-tab:hover{background:#ffffff0d;color:var(--tier-color, #ccc)}.tier-tab.active{background:#ffffff14}.tier-tab-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}@media (max-width: 600px){.tier-header{flex-direction:column;gap:.5rem}.tier-title{font-size:1.3rem}}.bracket-svg-container{position:relative;flex:1;min-height:0;overflow:hidden;background:#0d1b2a}.bracket-svg-wrapper{width:100%!important;height:100%!important}.bracket-svg-content{width:100%;height:100%}.bracket-svg{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.bracket-svg-empty{display:flex;align-items:center;justify-content:center;height:300px;color:#678;font-size:1rem}.bracket-match.clickable:hover rect:first-child{fill:#1e3448}.bracket-match.clickable:hover .bracket-match-hover{fill-opacity:.05!important}.bracket-zoom-controls{position:absolute;bottom:1rem;right:1rem;display:flex;gap:.25rem;z-index:10}.bracket-zoom-controls button{width:36px;height:36px;border:1px solid #2a3a4a;border-radius:6px;background:#1a2a3a;color:#ccd8e4;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.bracket-zoom-controls button:nth-child(n+4){width:auto;padding:0 .5rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.bracket-zoom-controls button:hover{background:#2a3a4a;border-color:#4a5a6a}.bracket-zoom-controls button.active{background:#0a3a2a;border-color:#0d6;color:#0d6}.match-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.match-modal{background:#1a2a3a;border-radius:12px;padding:1.5rem;width:90%;max-width:420px;box-shadow:0 8px 32px #00000080}.match-modal-title{margin:0 0 1.25rem;font-size:1.1rem;color:#fff;padding-bottom:.75rem;border-bottom:2px solid}.match-modal-players{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.match-modal-player{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:2px solid #2a3a4a;border-radius:8px;cursor:pointer;transition:all .15s ease}.match-modal-player:hover{border-color:#4a5a6a;background:#ffffff08}.match-modal-player.selected{background:#ffffff14}.match-modal-player input[type=radio]{accent-color:var(--color-gold)}.match-modal-player .seed-badge{background:#2a3a4a;color:#89a;padding:.15rem .5rem;border-radius:4px;font-size:.8rem;font-weight:600;min-width:24px;text-align:center}.match-modal-player .player-name{color:#ccd8e4;font-weight:500}.match-modal-field{margin-bottom:1rem}.match-modal-label{display:block;color:#89a;font-size:.85rem;margin-bottom:.35rem}.match-modal-select{width:100%;padding:.5rem .75rem;background:#0c2d48;border:1px solid #2a3a4a;border-radius:6px;color:#fff;font-size:.9rem;font-family:inherit;cursor:pointer}.match-modal-select:focus{outline:none;border-color:#4a5a6a}.score-spinners{display:flex;align-items:center;gap:.75rem;justify-content:center}.score-vs{color:#567;font-size:.85rem;font-weight:600;text-transform:uppercase}.score-spinner{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex:1}.score-spinner-label{color:#89a;font-size:.75rem;font-weight:500;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.score-spinner-controls{display:flex;align-items:center;gap:0}.score-spinner-btn{width:36px;height:36px;border:1px solid #2a3a4a;background:#0c2d48;color:#ccd8e4;font-size:1.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s ease;-webkit-user-select:none;user-select:none}.score-spinner-btn:first-child{border-radius:6px 0 0 6px}.score-spinner-btn:last-child{border-radius:0 6px 6px 0}.score-spinner-btn:hover{background:#1a3a5a}.score-spinner-btn:active{background:#2a4a6a}.score-spinner-value{min-width:52px;height:36px;display:flex;align-items:center;justify-content:center;background:#0c2d48;border-top:1px solid #2a3a4a;border-bottom:1px solid #2a3a4a;color:#fff;font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.match-modal-ot{color:#f94;font-size:.85rem;font-weight:600;margin-bottom:.75rem;text-align:center}.match-modal-error{color:#e74c3c;font-size:.85rem;margin-bottom:.75rem}.match-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.match-modal-actions .btn{padding:.5rem 1.25rem;border-radius:8px;font-weight:600;font-size:.85rem;border:none;cursor:pointer}.match-modal-actions .btn-secondary{background:#2a3a4a;color:#ccd8e4}.match-modal-actions .btn-secondary:hover{background:#3a4a5a}.match-modal-actions .btn-primary{color:#fff}.match-modal-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.match-modal-machines{display:flex;gap:.5rem;flex-wrap:wrap}.match-modal-machine-btn{padding:.4rem .9rem;border:2px solid #2a3a4a;border-radius:6px;background:#0c2d48;color:#ccd8e4;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease}.match-modal-machine-btn:hover:not(:disabled){background:#1a3a5a}.match-modal-machine-btn:disabled{opacity:.5;cursor:not-allowed}.match-modal-dispatched{color:#00e5ff;font-weight:600;font-size:.9rem}.dispatch-sidebar{width:360px;min-width:360px;min-height:0;background:#0f1a28;border-right:1px solid #1a2a3a;display:flex;flex-direction:column;overflow-y:auto;font-size:13px}.dispatch-sidebar h3{margin:0;padding:12px 14px 8px;font-size:13px;color:#89a;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #1a2a3a}.dispatch-admin-link{display:block;padding:8px 14px;color:#678;font-size:12px;text-decoration:none;border-bottom:1px solid #1a2a3a}.dispatch-admin-link:hover{color:#ccd8e4;background:#1a2a3a}.dispatch-header-row{display:flex;align-items:center;justify-content:space-between;padding:0;border-bottom:1px solid #1a2a3a}.dispatch-header-row h3{border-bottom:none}.dispatch-setup-btn{background:none;border:none;color:#567;font-size:16px;cursor:pointer;padding:8px 14px 8px 8px;line-height:1}.dispatch-setup-btn:hover{color:#ccd8e4}.dispatch-setup-content{padding:8px 14px 12px;border-bottom:1px solid #1a2a3a}.dispatch-add-row{display:flex;gap:6px;margin-bottom:8px}.dispatch-add-row input{width:70px;padding:5px 8px;background:#1a2a3a;border:1px solid #2a3a4a;border-radius:4px;color:#ccd8e4;font-size:12px}.dispatch-add-row select{flex:1;padding:5px 6px;background:#1a2a3a;border:1px solid #2a3a4a;border-radius:4px;color:#ccd8e4;font-size:12px}.dispatch-add-row button{padding:5px 10px;background:#2a4a6a;border:none;border-radius:4px;color:#ccd8e4;font-size:12px;cursor:pointer}.dispatch-add-row button:hover{background:#3a5a7a}.dispatch-machine-list{display:flex;flex-direction:column;gap:4px}.dispatch-machine-item{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#1a2a3a;border-radius:4px;font-size:12px}.dispatch-machine-item .machine-label{color:#ccd8e4}.dispatch-machine-item .machine-tier-select{background:#1a2a3a;border:1px solid #2a3a4a;border-radius:3px;font-size:11px;padding:2px 4px;cursor:pointer;text-transform:capitalize}.machine-stream-toggle{display:flex;align-items:center;gap:3px;cursor:pointer;font-size:10px;color:#678}.machine-stream-toggle input{margin:0;cursor:pointer}.machine-stream-toggle input:checked+span{color:#d4a800}.dispatch-machine-item .delete-btn{background:none;border:none;color:#655;cursor:pointer;font-size:14px;padding:0 2px;line-height:1}.dispatch-machine-item .delete-btn:hover{color:#e74c3c}.dispatch-machines-section{padding:8px 10px;display:flex;flex-wrap:wrap;gap:8px}.dispatch-machine-tile{flex:1 1 calc(50% - 4px);min-width:130px;max-width:calc(50% - 4px);background:#1a2a3a;border:1px solid #2a3a4a;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px}.dispatch-machine-tile.available{border-color:#1e3a2a;animation:available-blink 2s ease-in-out infinite}@keyframes available-blink{0%,to{border-color:#1e3a2a;box-shadow:none}50%{border-color:#2ecc71;box-shadow:0 0 14px #2ecc71b3}}.dispatch-machine-tile.occupied{border-color:#5a2222;background:#1e1520}.dispatch-machine-tile.needs-ack{animation:dispatch-blink .8s ease-in-out infinite}@keyframes dispatch-blink{0%,to{border-color:#ff6b6b;box-shadow:0 0 18px #ff6b6bcc}50%{border-color:#5a2222;box-shadow:none}}.dispatch-machine-tile .tile-header{display:flex;align-items:center;justify-content:space-between}.dispatch-machine-tile .tile-number{font-size:20px;font-weight:700;color:#ccd8e4;line-height:1}.dispatch-machine-tile .tile-tier-badge{font-size:9px;padding:2px 6px;border-radius:3px;text-transform:uppercase;font-weight:700;letter-spacing:.04em}.dispatch-machine-tile.available .tile-status{color:#27ae60;font-size:11px;font-weight:600}.dispatch-machine-tile.available:hover{background:#1a2a3a}.tile-next-match{display:flex;flex-direction:column;gap:1px}.tile-next-label{color:#567;font-size:10px;font-weight:600}.tile-next-players{display:flex;flex-direction:column;gap:0;color:#89a;font-size:12px;line-height:1.3;overflow:hidden}.tile-next-players span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-machine-tile.occupied .tile-players{display:flex;flex-direction:column;gap:0;color:#ccd8e4;font-size:14px;line-height:1.35;overflow:hidden}.dispatch-machine-tile.occupied .tile-players span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-machine-tile .tile-release-btn{background:none;border:1px solid #553333;border-radius:4px;color:#c66;font-size:10px;padding:3px 8px;cursor:pointer;align-self:flex-end}.dispatch-machine-tile .tile-release-btn:hover{background:#311;border-color:#e74c3c;color:#e74c3c}.dispatch-machine-tile .tile-ack-btn{background:#e74c3c;border:none;border-radius:4px;color:#fff;font-size:11px;font-weight:700;padding:5px 12px;cursor:pointer;align-self:stretch;text-transform:uppercase;letter-spacing:.08em}.dispatch-machine-tile .tile-ack-btn:hover{background:#c0392b}.dispatch-machine-tile .tile-course-select{background:#1a2a3a;border:1px solid #334455;border-radius:4px;color:#ccc;font-size:11px;padding:3px 4px;width:100%;cursor:pointer}.dispatch-machine-tile .tile-course-select.course-set{color:#00e5ff;border-color:#00e5ff55}.dispatch-machine-tile .tile-course-select:focus{outline:none;border-color:#58b}.dispatch-on-deck-section{padding:4px 10px 8px}.dispatch-on-deck-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#1a2530;border:1px dashed #3a4a5a;border-radius:6px;margin-bottom:4px}.dispatch-on-deck-item .match-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.dispatch-on-deck-item .match-number{color:#567;font-size:11px;font-weight:600}.on-deck-meta{display:flex;align-items:center;gap:6px}.on-deck-target{color:#9ab;font-size:18px;font-weight:700}.on-deck-cancel-btn{background:none;border:none;color:#655;cursor:pointer;font-size:16px;padding:0 2px;line-height:1}.on-deck-cancel-btn:hover{color:#e74c3c}.match-players-stacked{display:flex;flex-direction:column;gap:0;color:#ccd8e4;font-size:14px;line-height:1.35;overflow:hidden}.match-players-stacked span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispatch-queue-section{flex:none}.dispatch-queue-tier{padding:0}.dispatch-queue-tier-label{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 6px;color:#678;font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-user-select:none;user-select:none}.dispatch-queue-tier-label:hover{opacity:.8}.dispatch-queue-tier-label .chevron{font-size:10px;transition:transform .2s}.dispatch-queue-tier-label .chevron.open{transform:rotate(90deg)}.dispatch-match-item{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;border-bottom:1px solid #111d2b}.dispatch-match-item .match-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.dispatch-match-item .match-number{color:#567;font-size:11px;font-weight:600}.dispatch-btn-group{position:relative;display:flex;gap:0}.dispatch-btn{padding:8px 16px;background:#2a4a6a;border:none;border-radius:6px;color:#ccd8e4;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.dispatch-btn:hover{background:#3a5a7a}.dispatch-btn:disabled{opacity:.4;cursor:not-allowed}.dispatch-btn.on-deck-btn{background:#3a3520;color:#d4a800;border:1px solid #5a4a20;padding:8px 16px;font-size:14px;font-weight:600}.dispatch-btn.on-deck-btn:hover{background:#4a4530}.dispatch-dropdown{position:absolute;top:100%;right:0;z-index:10;background:#1a2a3a;border:1px solid #2a4a6a;border-radius:4px;box-shadow:0 4px 12px #0006;min-width:100px;margin-top:2px}.dispatch-dropdown button{display:block;width:100%;padding:6px 12px;background:none;border:none;color:#ccd8e4;font-size:12px;text-align:left;cursor:pointer}.dispatch-dropdown button:hover{background:#2a3a4a}.dispatch-dropdown button:first-child{border-radius:4px 4px 0 0}.dispatch-dropdown button:last-child{border-radius:0 0 4px 4px}.dispatch-empty{padding:16px 14px;color:#567;font-size:12px;text-align:center;font-style:italic}.sms-sidebar{width:320px;min-width:320px;min-height:0;background:#0f1a28;border-left:1px solid #1a2a3a;display:flex;flex-direction:column;font-size:13px}.sms-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #1a2a3a}.sms-sidebar-header h3{margin:0;font-size:13px;color:#89a;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:8px}.sms-unread-badge{background:#e74c3c;color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.sms-toggle-btn{background:none;border:1px solid #2a3a4a;color:#89a;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px}.sms-toggle-btn:hover{background:#1a2a3a;color:#ccd8e4}.sms-messages-list{flex:1;overflow-y:auto;padding:6px}.sms-message-item{background:#1a2a3a;border:1px solid #2a3a4a;border-radius:6px;padding:8px 10px;margin-bottom:6px;cursor:pointer;transition:border-color .15s}.sms-message-item:hover{border-color:#3a4a5a}.sms-message-item.pinned{border-color:#d4a800}.sms-message-item.inbound{border-left:3px solid #3498db}.sms-message-item.outbound{border-left:3px solid #667788}.sms-message-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.sms-player-name{font-weight:600;color:#ccd8e4;font-size:12px}.sms-direction-badge{font-size:10px;padding:1px 5px;border-radius:3px;font-weight:600;text-transform:uppercase}.sms-direction-badge.inbound{background:#3498db33;color:#3498db}.sms-direction-badge.outbound{background:#6783;color:#89a}.sms-message-time{font-size:10px;color:#678}.sms-message-body{color:#abc;font-size:12px;line-height:1.4;word-break:break-word}.sms-message-actions{display:flex;gap:6px;margin-top:6px;padding-top:6px;border-top:1px solid #2a3a4a}.sms-action-btn{background:none;border:1px solid #2a3a4a;color:#89a;padding:3px 8px;border-radius:3px;cursor:pointer;font-size:11px;transition:all .15s}.sms-action-btn:hover{background:#1a2a3a;color:#ccd8e4}.sms-action-btn.reply-btn:hover{border-color:#3498db;color:#3498db}.sms-action-btn.pin-btn.active{border-color:#d4a800;color:#d4a800}.sms-action-btn.dismiss-btn:hover{border-color:#e74c3c;color:#e74c3c}.sms-pin-icon{color:#d4a800;margin-right:4px;font-size:11px}.sms-thread-view{flex:1;display:flex;flex-direction:column;min-height:0}.sms-thread-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #1a2a3a}.sms-thread-back{background:none;border:none;color:#89a;cursor:pointer;font-size:16px;padding:2px 6px}.sms-thread-back:hover{color:#ccd8e4}.sms-thread-player{font-weight:600;color:#ccd8e4;font-size:13px}.sms-thread-phone{color:#678;font-size:11px}.sms-thread-messages{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px}.sms-thread-bubble{max-width:85%;padding:8px 10px;border-radius:10px;font-size:12px;line-height:1.4;word-break:break-word}.sms-thread-bubble.inbound{align-self:flex-start;background:#1a2a3a;color:#ccd8e4;border-bottom-left-radius:4px}.sms-thread-bubble.outbound{align-self:flex-end;background:#1a3a5a;color:#ccd8e4;border-bottom-right-radius:4px}.sms-thread-bubble-time{font-size:9px;color:#678;margin-top:2px}.sms-thread-input{display:flex;gap:6px;padding:8px;border-top:1px solid #1a2a3a}.sms-thread-input input{flex:1;background:#1a2a3a;border:1px solid #2a3a4a;color:#ccd8e4;padding:6px 10px;border-radius:4px;font-size:12px;outline:none}.sms-thread-input input:focus{border-color:#3498db}.sms-thread-input button{background:#3498db;border:none;color:#fff;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600}.sms-thread-input button:disabled{opacity:.5;cursor:not-allowed}.sms-thread-input button:hover:not(:disabled){background:#2980b9}.sms-empty{text-align:center;color:#678;padding:40px 20px;font-size:12px}.sms-message-item.sms-blink{animation:sms-blink-anim .6s ease-in-out 6}@keyframes sms-blink-anim{0%,to{background:#1a2a3a;border-color:#3498db}50%{background:#3498db40;border-color:#5dade2}}.bracket-view{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:#0d1b2a}.bracket-view-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:50vh;gap:.5rem;text-align:center;padding:2rem}.bracket-view-empty h2{color:#ccd8e4;font-size:1.5rem;margin:0}.bracket-view-empty p{color:#678;font-size:.95rem;max-width:400px}.bracket-view-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:50vh;gap:1rem;color:#678}.bracket-view-body{display:flex;flex:1;min-height:0;overflow:hidden}.bracket-view-main{flex:1;min-width:0;display:flex;flex-direction:column}.fullscreen-btn{position:absolute;top:8px;right:12px;z-index:100;background:#1a2a3ad9;border:1px solid #2a3a4a;color:#89a;font-size:20px;width:36px;height:36px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s,color .15s}.fullscreen-btn:hover{background:#2a3a4af2;color:#ccd8e4}.bracket-view-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:50vh;gap:1rem;color:#e74c3c}.admin-layout{display:flex;min-height:100vh}.admin-topbar{display:none}.admin-sidebar{width:250px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header{padding:1.5rem 1rem;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:.5rem}.sidebar-header h2{margin:0;font-size:1.25rem;color:var(--color-gold)}.admin-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;text-transform:uppercase;width:fit-content}.admin-badge.role-god{background:#dc354540;color:#ff6b6b}.admin-badge.role-super_admin{background:#ff980040;color:#ffb74d}.admin-badge.role-tournament_admin{background:#4caf5040;color:#81c784}.sidebar-nav{flex:1;padding:1rem 0;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}.nav-link{display:block;padding:.75rem 1rem;color:var(--color-text);text-decoration:none;border-left:3px solid transparent;transition:all .2s}.nav-link:hover{background:#ffffff0d;border-left-color:var(--color-text-muted)}.nav-link.active{background:#ffeb7a1a;border-left-color:var(--color-gold);color:var(--color-gold)}.nav-divider{height:1px;background:#333;margin:.5rem 1rem}.sidebar-footer{padding:1rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.5rem}.user-info{font-size:.875rem}.app-version{font-size:.7rem;color:var(--color-text-muted);opacity:.5}.user-email{color:var(--color-text-muted);word-break:break-all}.user-username{font-size:1.25rem;font-weight:600;color:#fff;word-break:break-all}.sidebar-collapse-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:.5rem;background:none;border:none;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.7rem;cursor:pointer;transition:background .15s,color .15s}.sidebar-collapse-btn:hover{background:#ffffff0d;color:var(--color-gold)}.admin-sidebar.collapsed{width:48px}.admin-sidebar.collapsed .sidebar-header,.admin-sidebar.collapsed .sidebar-nav,.admin-sidebar.collapsed .sidebar-footer>*:not(.sidebar-collapse-btn){display:none}.admin-sidebar.collapsed .sidebar-footer{padding:0}.admin-main{flex:1;margin-left:250px;padding:2rem;min-height:100vh;overflow-y:auto;transition:margin-left .2s}.admin-main.sidebar-collapsed{margin-left:48px}.scraper-warning-banner{background:#c6282826;border:1px solid var(--color-error, #c62828);color:var(--color-error, #ef5350);padding:.75rem 1.5rem;margin-bottom:1.5rem;border-radius:8px;display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:.95rem;animation:banner-pulse 3s ease-in-out infinite}@keyframes banner-pulse{0%,to{opacity:1}50%{opacity:.85}}.banner-warning-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-error, #c62828);color:#fff;font-weight:900;font-size:1rem;flex-shrink:0}.scraper-warning-banner .warning-link{margin-left:auto;color:var(--color-error, #ef5350);text-decoration:underline;white-space:nowrap;font-weight:700}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.sidebar-overlay{display:none}.hamburger-btn{background:none;border:none;color:var(--color-text);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center}.hamburger-icon{font-size:1.5rem;line-height:1}@media (max-width: 1024px){.admin-layout{flex-direction:column}.admin-topbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:90}.topbar-title{margin:0;font-size:1.1rem;color:var(--color-gold);flex:1}.admin-sidebar{width:280px;transform:translate(-100%);transition:transform .25s ease;top:0;bottom:0;z-index:200}.admin-sidebar.menu-open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:150}.admin-main{margin-left:0;padding:1rem}}@media (max-width: 480px){.admin-topbar{padding:.5rem .75rem}.topbar-title{font-size:1rem}.admin-sidebar{width:260px}.admin-main{padding:.75rem}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg) 0%,#252538 100%);padding:1rem}.login-card{width:100%;max-width:400px;background:var(--color-bg-secondary);border-radius:8px;border:1px solid var(--color-border);overflow:hidden}.login-header{padding:2rem;text-align:center;border-bottom:1px solid var(--color-border);background:var(--color-accent)}.login-header h1{margin:0 0 .5rem;color:var(--color-gold);font-size:1.5rem}.login-header p{margin:0;color:#ffffffb3}.login-form{padding:2rem}.btn-block{width:100%;margin-top:1rem}.login-footer{padding:1rem 2rem 2rem;text-align:center}.login-footer a{color:var(--color-text-muted);font-size:.875rem}.login-footer a:hover{color:var(--color-gold)}.dashboard-page{max-width:1200px}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.card.full-width{grid-column:1 / -1}.status-card-content{display:flex;align-items:center;justify-content:space-between;margin-top:1rem}.status-indicator{display:flex;align-items:center;gap:.5rem}.status-indicator .status-dot{width:12px;height:12px;border-radius:50%}.status-indicator.active .status-dot{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.status-indicator.inactive .status-dot{background:var(--color-text-muted)}.status-text{font-size:1.25rem;font-weight:600}.quick-actions{display:flex;gap:1rem;margin-top:1rem}.tournaments-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.tournament-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#00000026;border-radius:4px;flex-wrap:wrap;gap:.5rem}.tournament-info{display:flex;align-items:center;gap:.75rem}.tournament-name{font-weight:500}.phase-badge{padding:.25rem .5rem;border-radius:4px;font-size:.7rem;text-transform:uppercase}.tournament-actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn-action-manage,.btn-action-bracket,.btn-action-view{padding:.6rem 1.25rem;font-size:1rem;font-weight:600;border-radius:6px;border:none;cursor:pointer;text-decoration:none;transition:background .2s,transform .1s}.btn-action-manage{background:var(--color-gold, #d4a800);color:#000}.btn-action-manage:hover{background:#e6b800;transform:translateY(-1px)}.btn-action-bracket{background:#6c63ff;color:#fff}.btn-action-bracket:hover{background:#7d75ff;transform:translateY(-1px)}.btn-action-view{background:#2196f3;color:#fff}.btn-action-view:hover{background:#42a5f5;transform:translateY(-1px)}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.tournament-item{flex-direction:column;align-items:flex-start}.tournament-actions{width:100%;margin-top:.5rem}}@media (max-width: 480px){.quick-actions{flex-direction:column}.quick-actions .btn{width:100%}.tournament-item{padding:.5rem}.tournament-info{flex-wrap:wrap;gap:.5rem}.tournament-name{font-size:.9rem}.tournament-actions .btn{flex:1;font-size:.8rem}.status-text{font-size:1rem}}.tournament-manager{max-width:1200px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.manager-layout{display:grid;grid-template-columns:350px 1fr;gap:1.5rem}.tournament-list{height:fit-content;position:sticky;top:1rem}.list{list-style:none;margin:1rem 0 0;padding:0}.list-item{display:flex;flex-direction:column;gap:.375rem;padding:.75rem;margin-bottom:.25rem;border-radius:4px;cursor:pointer;transition:background .2s}.list-item:hover{background:#ffffff0d}.list-item.active{background:#ffeb7a1a;border-left:3px solid var(--color-gold)}.item-name{font-size:.9rem;line-height:1.3;word-break:break-word}.phase-badge{padding:.125rem .375rem;border-radius:3px;font-size:.65rem;text-transform:uppercase}.item-badges{display:flex;gap:.25rem;flex-wrap:wrap}.phase-qualifier{background:#4caf5033;color:var(--color-success)}.phase-bracket{background:#ff980033;color:var(--color-warning)}.phase-completed{background:#9c9c9c33;color:var(--color-text-muted)}.phase-default{background:#2196f333;color:#2196f3}.phase-hidden{background:#f4433633;color:#f44336}.tournament-form{padding:1.5rem}.form-help{font-size:.875rem;margin-bottom:.75rem}.course-links{display:flex;flex-direction:column;gap:.5rem}.course-link-row{display:flex;gap:.5rem;align-items:center;overflow:hidden}.course-number{width:24px;text-align:center;font-weight:600;color:var(--color-text-muted)}.course-select{width:150px;min-width:150px;max-width:150px;flex-shrink:0}.url-input{flex:1;min-width:0}.bracket-config{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.bracket-config-row{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem}.config-field{flex:1;min-width:180px}.config-field label{display:block;margin-bottom:.5rem;font-weight:500}.config-field input[type=number]{width:100%;max-width:120px}.config-field input[type=checkbox]{margin-right:.5rem}.config-hint{display:block;font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.bracket-preview{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;padding:.75rem 1rem;background:#ffffff0d;border-radius:4px;font-size:.875rem}.preview-label{color:var(--color-text-muted);font-weight:500}.preview-main{padding:.25rem .75rem;background:linear-gradient(135deg,#ffd7004d,#ffb70033);border:1px solid var(--color-gold);border-radius:4px;color:var(--color-gold)}.preview-purple{padding:.25rem .75rem;background:linear-gradient(135deg,#9370db4d,#8a2be233);border:1px solid #9370db;border-radius:4px;color:plum}.preview-pink{padding:.25rem .75rem;background:linear-gradient(135deg,#e91e904d,#c2185b33);border:1px solid #e91e90;border-radius:4px;color:#f48fb1}.preview-copper{padding:.25rem .75rem;background:linear-gradient(135deg,#b873334d,#cd7f3233);border:1px solid #b87333;border-radius:4px;color:#deb887}.inline-amount{display:flex;align-items:center;gap:.25rem;margin-top:.5rem}.dollar-sign{font-weight:600;color:var(--color-text-muted)}.amount-input{width:100px!important;max-width:100px!important}.challonge-config{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.challonge-key-select{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}.challonge-key-select select{flex:1;max-width:400px}.key-form-inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.key-form-inline .form-control{width:auto;min-width:180px}.key-form-inline .form-help{margin-bottom:0;white-space:nowrap}.password-field{position:relative;display:flex;align-items:center}.password-field .form-control{padding-right:3.5rem;min-width:220px}.password-toggle{position:absolute;right:.5rem;background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:.75rem;padding:.25rem .5rem}.password-toggle:hover{color:var(--color-text)}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}@media (max-width: 768px){.manager-layout{grid-template-columns:1fr}.tournament-list{position:relative;top:0}.page-header{flex-direction:column;align-items:flex-start;gap:.75rem}.page-header .btn{width:100%}.bracket-config-row{flex-direction:column;gap:1rem}.config-field{min-width:unset}.config-field input[type=number]{max-width:100%}.challonge-key-select{flex-direction:column;align-items:stretch}.challonge-key-select select{max-width:100%}.key-form-inline{flex-direction:column;align-items:stretch}.key-form-inline .form-control{width:100%;min-width:unset}.form-actions{flex-direction:column}.form-actions .btn{width:100%}.course-link-row{flex-wrap:wrap}.course-select{width:120px;min-width:120px;max-width:120px}.url-input{flex-basis:100%;order:3}}@media (max-width: 480px){.course-link-row{flex-direction:column;align-items:stretch}.course-number{display:none}.course-select{width:100%;min-width:unset;max-width:unset}.url-input{order:unset;flex-basis:auto}.list-item{padding:.5rem;font-size:.85rem}.item-name{font-size:.8rem}.tournament-form{padding:1rem}}.ps-manager-wrapper{display:flex;gap:0;min-height:0}.ps-manager{max-width:1600px;flex:1;min-width:0}.unmatched-sidebar{width:280px;min-width:280px;background:var(--color-bg-secondary, #1e1e2e);border-right:1px solid var(--color-border, rgba(255,255,255,.1));position:sticky;top:0;align-self:flex-start;max-height:calc(100vh - 60px);overflow-y:auto;border-radius:8px;margin-right:1rem}.unmatched-sidebar-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;font-weight:600;font-size:.85rem;border-bottom:1px solid var(--color-border, rgba(255,255,255,.1));white-space:nowrap}.unmatched-sidebar-section-toggle{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.75rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-border, rgba(255,255,255,.06))}.unmatched-sidebar-section-toggle:hover{background:#ffffff08;color:var(--color-text, #e0e0e0)}.unmatched-sidebar-section-toggle .toggle-arrow{font-size:.6rem;transition:transform .15s}.unmatched-sidebar-section-toggle .toggle-arrow.open{transform:rotate(90deg)}.unmatched-sidebar-list{padding:.5rem}.unmatched-sidebar-row{display:flex;flex-direction:column;gap:.35rem;padding:.5rem;border-bottom:2px solid rgba(255,255,255,.35)}.unmatched-sidebar-row:last-child{border-bottom:none}.unmatched-sidebar-nickname{font-family:monospace;font-size:1.2rem;color:var(--color-gold, #d4a800);font-weight:700}.unmatched-sidebar-select{width:100%;padding:.3rem .4rem;font-size:.8rem;background:var(--color-bg, #1a1a2e);color:var(--color-text, #e0e0e0);border:1px solid var(--color-border, rgba(255,255,255,.15));border-radius:4px}.btn-link-player{align-self:flex-end;padding:.25rem .75rem;font-size:.75rem;background:var(--color-gold, #d4a800);color:#000;border:none;border-radius:4px;cursor:pointer;font-weight:600}.btn-link-player:hover:not(:disabled){background:#e6b800}.btn-link-player:disabled{opacity:.4;cursor:not-allowed}.unmatched-sidebar-actions{display:flex;gap:.35rem;align-self:stretch}.unmatched-sidebar-actions .btn-link-player,.unmatched-sidebar-actions .btn-ignore-player,.unmatched-sidebar-actions .btn-lookup-player{flex:1}.btn-ignore-player{padding:.25rem .75rem;font-size:.75rem;background:#ffffff14;color:var(--color-text-muted, #999);border:1px solid var(--color-border, rgba(255,255,255,.15));border-radius:4px;cursor:pointer;font-weight:600}.btn-ignore-player:hover:not(:disabled){background:#ffffff26;color:var(--color-text, #e0e0e0)}.btn-ignore-player:disabled{opacity:.4;cursor:not-allowed}.btn-lookup-player{padding:.25rem .75rem;font-size:.75rem;background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.3);border-radius:4px;cursor:pointer;font-weight:600}.btn-lookup-player:hover:not(:disabled){background:#3b82f640;color:#93bbfd}.btn-lookup-player:disabled{opacity:.4;cursor:not-allowed}.lookup-result{font-size:.75rem;padding:.15rem .4rem;border-radius:3px;color:var(--color-text, #e0e0e0)}.lookup-result.matched{background:#22c55e26;color:#4ade80;font-weight:600}.lookup-result.not-found{color:#fb923c;font-style:italic}.btn-rename-player{margin-left:.4rem;padding:.1rem .4rem;font-size:.7rem;background:#fb923c33;color:#fb923c;border:1px solid rgba(251,146,60,.4);border-radius:3px;cursor:pointer}.btn-rename-player:hover{background:#fb923c59}.ignored-sidebar-row{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;border-bottom:1px solid var(--color-border, rgba(255,255,255,.04));font-size:.8rem}.ignored-sidebar-row:last-child{border-bottom:none}.ignored-sidebar-nickname{font-family:monospace;color:var(--color-text-muted)}.btn-unignore{background:none;border:none;color:var(--color-text-muted);font-size:.7rem;cursor:pointer;padding:.15rem .4rem;border-radius:3px}.btn-unignore:hover{background:#ffffff1a;color:var(--color-gold, #d4a800)}.unmatched-sidebar-footer{padding:.75rem .5rem;font-size:.8rem;color:var(--color-text-muted);text-align:center}.btn-unmatch{display:inline-block;background:none;border:none;color:var(--color-text-muted);font-size:1rem;cursor:pointer;padding:0 .25rem;margin-left:.25rem;line-height:1;opacity:0;transition:opacity .15s;vertical-align:middle}tr:hover .btn-unmatch{opacity:.6}.btn-unmatch:hover{opacity:1!important;color:#ff6b6b}.btn-delete-icon{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:.15rem .3rem;color:#ff1744;transition:transform .15s}.btn-delete-icon:hover{transform:scale(1.2)}.name-cell.unmatched{border-left:3px solid #ff9800;background:#ff980014}.name-cell.needs-nickname{border-left:3px solid #42a5f5;background:#42a5f514}.nickname-cell.needs-nickname{background:#42a5f50f}.inline-link-group{display:flex;align-items:center;gap:.25rem}.inline-link-select{flex:1;min-width:0;padding:.2rem .3rem;font-size:.75rem;background:var(--color-bg, #1a1a2e);color:var(--color-text, #e0e0e0);border:1px solid #42a5f5;border-radius:3px}.btn-inline-link{background:#42a5f5;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:.8rem;font-weight:700;padding:.2rem .4rem;line-height:1}.btn-inline-link:hover:not(:disabled){background:#1e88e5}.btn-inline-link:disabled{opacity:.4;cursor:not-allowed}.unmatched-name-select{border-color:#ff9800}.unmatched-link-btn{background:#ff9800}.unmatched-link-btn:hover:not(:disabled){background:#f57c00}.form-checkbox-group{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--color-text, #e0e0e0);cursor:pointer;white-space:nowrap;height:42px;padding-top:1.2rem}.form-checkbox-group input[type=checkbox]{width:16px;height:16px;cursor:pointer}.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.page-header h1{margin:0;font-size:1.5rem;display:flex;align-items:center;gap:.5rem}.ws-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.ws-status-dot.ws-connected{background:#4caf50;box-shadow:0 0 4px #4caf50}.ws-status-dot.ws-connecting{background:#ff9800;animation:pulse-dot 1s ease-in-out infinite}.ws-status-dot.ws-disconnected{background:#666}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.player-form{padding-top:1rem}.form-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.form-row .form-group{flex:1;min-width:150px;margin-bottom:0}.form-row .form-group-compact{flex:0 0 auto;width:200px;min-width:140px}.add-player-row{flex-wrap:nowrap}.form-row .btn{height:42px;margin-bottom:0}.card-header{display:flex;align-items:center;gap:.5rem}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .5rem;background:var(--color-accent);border-radius:12px;font-size:.75rem}.hint{margin-left:auto;font-size:.8rem;font-weight:400;color:var(--color-text-muted)}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:hover{color:var(--color-gold, #d4a800)}.row-actions{display:flex;gap:.5rem}.name-cell.editable{cursor:pointer;position:relative}.name-cell.editable:hover{background:#ffeb7a26}.name-cell.saving{opacity:.5;pointer-events:none}.name-cell .inline-edit-input{width:100%;padding:.25rem .5rem;border:2px solid var(--color-gold, #d4a800);border-radius:4px;background:var(--color-bg, #1a1a2e);color:var(--color-text, #e0e0e0);font-size:inherit;font-family:inherit;outline:none}.name-cell .inline-edit-input:focus{box-shadow:0 0 0 2px #d4a8004d}.name-cell .saving-indicator{color:var(--color-text-muted);font-style:italic}.nickname-cell{font-size:.85em;position:relative}.paid-col,.hio-col,.exclude-col{text-align:center;width:50px}.actions-cell{white-space:nowrap}.scores-table{font-size:.875rem;touch-action:manipulation;width:auto;border-collapse:collapse}.scores-table th,.scores-table td{padding:.5rem}.rank-cell{width:60px;min-width:45px;font-weight:600}.player-cell{text-align:left}.player-name-text{display:flex;align-items:center;gap:.35rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unpaid-tag{font-size:.55rem;font-weight:800;padding:.1rem .3rem;border-radius:3px;background:#ff1744;color:#fff;letter-spacing:.5px;flex-shrink:0;animation:unpaidPulse 2s ease-in-out infinite}@keyframes unpaidPulse{0%,to{opacity:1}50%{opacity:.5}}.sub-header{font-size:.7rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase}.score-cell{width:60px;min-width:45px;white-space:nowrap}.gsps-cell{color:var(--color-text-muted);font-size:.8em;border-right:1px solid var(--color-border, rgba(255,255,255,.1))}.score-cell.editable{cursor:pointer;position:relative}.score-cell.editable:hover{background:var(--color-accent)}.score-cell.overwrite{background:#ffa50026;border-left:2px solid #ff9800}.score-cell.saving{opacity:.5;pointer-events:none}.score-cell .inline-edit-input{width:100%;padding:.125rem .25rem;font-size:inherit;font-family:inherit;text-align:center;border:2px solid var(--color-gold);border-radius:3px;background:var(--color-bg);color:var(--color-text);outline:none;box-sizing:border-box}.saving-indicator{opacity:.5}.total-cell{width:80px;min-width:55px;font-weight:700;white-space:nowrap}.undo-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:#333;color:#fff;border-radius:8px;box-shadow:0 4px 20px #0006;z-index:1000;font-size:.9rem;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(1rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.btn-undo{padding:.35rem .75rem;background:var(--color-gold, #d4a800);color:#000;border:none;border-radius:4px;font-weight:600;font-size:.85rem;cursor:pointer}.btn-undo:hover{background:#e6b800}.btn-dismiss{background:none;border:none;color:#999;font-size:1.2rem;cursor:pointer;padding:0 .25rem;line-height:1}.btn-dismiss:hover{color:#fff}.phone-col{text-align:center;width:45px}.btn-phone-icon{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:.1rem .25rem;transition:transform .15s;line-height:1}.btn-phone-icon:hover{transform:scale(1.2)}.btn-phone-icon.has-phone{color:#4ade80;opacity:1}.btn-phone-icon.no-phone{color:#888;opacity:.4}.form-group-phone{flex:0 0 auto!important;width:150px!important;min-width:120px!important}.input-error{border-color:#f87171!important}.field-error{display:block;color:#f87171;font-size:.7rem;margin-top:.15rem}.phone-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.phone-popup{background:var(--color-bg-secondary, #1e1e2e);border:1px solid var(--color-border, rgba(255,255,255,.15));border-radius:8px;padding:1.25rem;width:320px;max-width:90vw;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;gap:.75rem}.phone-popup-title{font-weight:600;font-size:.95rem;color:var(--color-text, #e0e0e0)}.phone-popup .form-control{width:100%}.phone-popup-actions{display:flex;gap:.5rem}.sms-consent-text{font-size:10px;color:#89a;line-height:1.4;margin-top:4px}.sms-consent-text a{color:#5dade2;text-decoration:none}.sms-consent-text a:hover{text-decoration:underline}@media (max-width: 1024px){.unmatched-sidebar{display:none}.sticky-rank{position:sticky;left:0;z-index:3;background:var(--color-bg-secondary, #1e1e2e)}.sticky-player{position:sticky;left:60px;z-index:3;background:var(--color-bg-secondary, #1e1e2e);box-shadow:2px 0 4px #0000004d}.player-name-text{max-width:140px}thead .sticky-rank,thead .sticky-player{z-index:4}}@media (max-width: 768px){.form-row{flex-direction:column}.form-row .form-group,.form-row .form-group-compact{width:100%}.add-player-row{flex-wrap:wrap}.form-row .btn{width:100%}.form-checkbox-group{padding-top:0;height:auto}.hint,.hide-tablet{display:none}.sticky-rank{min-width:40px;width:40px}.sticky-player{left:40px}.player-name-text{max-width:110px}.scores-table{font-size:.75rem}.scores-table th,.scores-table td{padding:.25rem}.row-actions{flex-direction:column}.undo-toast{left:1rem;right:1rem;transform:none;bottom:1rem}@keyframes slideUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}}@media (max-width: 480px){.page-header{flex-direction:column;align-items:flex-start}.page-header h1{font-size:1.2rem}.hide-phone{display:none}.sticky-rank{min-width:32px;width:32px}.sticky-player{left:32px}.player-name-text{max-width:90px}.scores-table{font-size:.65rem}.scores-table th,.scores-table td{padding:.2rem}.rank-cell{width:auto}.player-cell{min-width:100px}.score-cell{width:45px}.total-cell{width:55px}}.scraper-control{max-width:900px}.page-header{margin-bottom:1.5rem}.page-header h1{margin:0;font-size:1.75rem}.scraper-status-banner{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 2rem;border-radius:12px;margin-bottom:1.5rem}.scraper-status-banner.running{background:linear-gradient(135deg,#4caf5026,#4caf500d);border:2px solid var(--color-success);box-shadow:0 0 20px #4caf5033}.scraper-status-banner.stale{background:linear-gradient(135deg,#ffc10726,#ffc1070d);border:2px solid var(--color-warning);box-shadow:0 0 20px #ffc10733}.scraper-status-banner.stopped{background:linear-gradient(135deg,#9c9c9c1a,#9c9c9c05);border:2px solid var(--color-text-muted)}.status-icon{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center}.pulse-dot{width:40px;height:40px;border-radius:50%;background:var(--color-success);box-shadow:0 0 20px var(--color-success),0 0 40px var(--color-success);animation:pulse-glow 1.5s ease-in-out infinite}@keyframes pulse-glow{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.warning-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--color-warning);color:#000;font-weight:900;font-size:1.5rem}.stopped-icon{font-size:3rem;color:var(--color-text-muted)}.status-info h2{margin:0 0 .25rem;font-size:1.5rem}.scraper-status-banner.running .status-info h2{color:var(--color-success)}.scraper-status-banner.stale .status-info h2{color:var(--color-warning)}.scraper-status-banner.stopped .status-info h2{color:var(--color-text-muted)}.last-heartbeat{margin:0;font-size:.9rem;color:var(--color-text-muted)}.ec2-card{margin-bottom:1.5rem}.ec2-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:1rem}.ec2-status-item{display:flex;flex-direction:column;gap:.25rem}.ec2-status-item.full-width{grid-column:1 / -1}.ec2-label{font-size:.75rem;text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em}.ec2-value{font-size:.95rem;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.ec2-error{color:var(--color-error, #ef5350)}.ec2-state-badge{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.85rem;font-weight:600;width:fit-content}.ec2-state-badge.state-running{background:#4caf5033;color:var(--color-success)}.ec2-state-badge.state-stopped{background:#9c9c9c33;color:var(--color-text-muted)}.ec2-state-badge.state-transitioning{background:#ff980033;color:var(--color-warning);animation:state-blink 1s ease-in-out infinite}.ec2-state-badge.state-unknown{background:#9c9c9c1a;color:var(--color-text-muted)}@keyframes state-blink{0%,to{opacity:1}50%{opacity:.5}}.ec2-actions{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border)}.btn-success{background:var(--color-success, #4caf50);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer}.btn-success:hover:not(:disabled){background:#66bb6a}.btn-warning{background:var(--color-warning, #ff9800);color:#000;border:none;padding:.5rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer}.btn-warning:hover:not(:disabled){background:#ffb74d}.btn-danger{background:var(--color-error, #c62828);color:#fff;border:none;padding:.5rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer}.btn-danger:hover:not(:disabled){background:#ef5350}.btn-success:disabled,.btn-warning:disabled,.btn-danger:disabled{opacity:.4;cursor:not-allowed}.log-viewer-card{margin-bottom:1.5rem}.log-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.log-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.log-lines-select{width:auto;padding:.3rem .5rem;font-size:.85rem;background:var(--color-bg-secondary, #1a1a2e);color:var(--color-text);border:1px solid var(--color-border);border-radius:4px}.auto-refresh-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.auto-refresh-toggle input{cursor:pointer}.log-terminal{background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:1rem;margin-top:1rem;max-height:500px;overflow-y:auto;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.5;color:#c9d1d9}.log-terminal::-webkit-scrollbar{width:8px}.log-terminal::-webkit-scrollbar-track{background:#0d1117}.log-terminal::-webkit-scrollbar-thumb{background:#30363d;border-radius:4px}.log-terminal::-webkit-scrollbar-thumb:hover{background:#484f58}.log-line{white-space:pre-wrap;word-break:break-all;padding:1px 0}.log-error-line{color:#f85149;background:#f851491a;padding:1px 4px;border-radius:2px}.log-warn-line{color:#d29922;background:#d299221a;padding:1px 4px;border-radius:2px}.log-empty{color:#484f58;text-align:center;padding:2rem 0;font-style:italic}.log-error{margin-top:.75rem}.log-footer{margin-top:.5rem;font-size:.75rem;color:var(--color-text-muted);text-align:right}.config-section{margin-bottom:1.5rem}.config-section h3{margin:0 0 1rem;font-size:1.1rem}.interval-control{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.interval-input{width:100px;text-align:center}.interval-unit{color:var(--color-text-muted)}hr{border:none;border-top:1px solid var(--color-border);margin:1.5rem 0}.scraper-info{color:var(--color-text-muted);font-size:.9rem}.scraper-info h3{color:var(--color-text);font-size:1.1rem;margin:0 0 .75rem}.scraper-info h4{color:var(--color-text);font-size:.95rem;margin:1.25rem 0 .5rem}.scraper-info p{margin:0 0 1rem;line-height:1.5}.scraper-info ol,.scraper-info ul{margin:0;padding-left:1.25rem}.scraper-info li{margin-bottom:.5rem;line-height:1.5}.scraper-info code{background:#ffffff1a;padding:.15rem .4rem;border-radius:4px;font-size:.85rem;color:var(--color-primary)}.command-example{background:#0000004d;padding:1rem;border-radius:8px;overflow-x:auto;font-size:.85rem;margin:.75rem 0;line-height:1.6;color:var(--color-text)}.loading-container{display:flex;align-items:center;justify-content:center;min-height:200px}@media (max-width: 768px){.scraper-status-banner{flex-direction:column;text-align:center;gap:1rem;padding:1.25rem 1.5rem}.status-icon{width:48px;height:48px}.pulse-dot{width:32px;height:32px}.status-info h2{font-size:1.25rem}.ec2-status-grid{grid-template-columns:1fr 1fr}.ec2-actions{flex-wrap:wrap}.log-header{flex-direction:column;align-items:flex-start}.log-controls{width:100%}.log-terminal{max-height:350px;font-size:.7rem}}@media (max-width: 480px){.scraper-status-banner{padding:1rem;border-radius:8px}.status-icon{width:40px;height:40px}.pulse-dot{width:24px;height:24px}.status-info h2{font-size:1.1rem}.interval-control{flex-wrap:wrap}.command-example{font-size:.75rem;padding:.75rem}.ec2-status-grid{grid-template-columns:1fr}.ec2-actions{flex-direction:column}.ec2-actions .btn{width:100%}.log-controls{flex-direction:column;align-items:flex-start;gap:.5rem}}.bracket-manager{max-width:800px}.page-header{margin-bottom:2rem}.back-link{display:inline-block;margin-bottom:.5rem;color:var(--color-text-muted);font-size:.875rem}.back-link:hover{color:var(--color-gold)}.page-header h1{margin:0;font-size:1.5rem}.bracket-status{padding-top:1rem}.bracket-link{word-break:break-all}.bracket-actions{padding-top:1rem}.action-step{padding:1rem 0;border-bottom:1px solid var(--color-border)}.action-step:last-child{border-bottom:none}.action-step h3{font-size:1.1rem;margin:0 0 .5rem}.action-step p{margin:0 0 1rem}.seed-controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.seed-controls label{display:flex;align-items:center;gap:.5rem}.inline-input{width:80px;display:inline-block}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem}.phase-buttons{display:flex;gap:.75rem;margin-top:.75rem;flex-wrap:wrap}.tier-status-row{display:flex;align-items:center;gap:.5rem;padding:.4rem 0}.tier-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.tier-status-row .tier-label{font-weight:600;min-width:120px}.tier-state{font-size:.85rem;text-transform:capitalize}.tier-state.not-created{color:var(--color-text-muted)}.tier-state.created{color:var(--color-success)}.tier-link{font-size:.8rem;margin-left:auto}@media (max-width: 480px){.seed-controls{flex-direction:column;align-items:stretch}.seed-controls .btn{width:100%}.action-step h3{font-size:1rem}.page-header h1{font-size:1.2rem}}.danger-zone{border-top:1px solid #dc3545;margin-top:1.5rem;padding-top:1.5rem}.btn-danger{background:#dc3545;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.btn-danger:hover{background:#c82333}.user-manager{max-width:1200px}.user-list{height:fit-content;position:sticky;top:1rem}.user-form{padding:1.5rem}.role-badge{padding:.125rem .375rem;border-radius:3px;font-size:.65rem;text-transform:uppercase;flex-shrink:0}.role-badge.role-god{background:#dc354540;color:#ff6b6b}.role-badge.role-super_admin{background:#ff980040;color:#ffb74d}.role-badge.role-tournament_admin{background:#4caf5040;color:#81c784}.tournament-checkboxes{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding:.5rem;background:#ffffff08;border-radius:4px}.checkbox-label{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:4px;cursor:pointer;transition:background .2s}.checkbox-label:hover{background:#ffffff0d}.checkbox-label input[type=checkbox]{flex-shrink:0}.checkbox-label span:first-of-type{flex:1}@media (max-width: 768px){.user-form{padding:1rem}.tournament-checkboxes{max-height:200px}}@media (max-width: 480px){.role-badge{font-size:.6rem;padding:.1rem .25rem}.checkbox-label{padding:.25rem .375rem;font-size:.85rem}.tournament-checkboxes{max-height:160px;padding:.375rem}}.course-manager{max-width:1200px}.course-logo-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.course-logo-section label{display:block;margin-bottom:.75rem;font-weight:500}.logo-preview-container{display:flex;align-items:center;gap:1rem}.logo-preview{width:64px;height:64px;object-fit:contain;border-radius:4px;border:1px solid var(--color-border)}.logo-placeholder{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--color-border);border-radius:4px;color:var(--color-text-muted);font-size:.75rem}.logo-actions{display:flex;gap:.5rem}@media (max-width: 768px){.logo-preview-container{flex-wrap:wrap}}@media (max-width: 480px){.logo-preview-container{flex-direction:column;align-items:flex-start}.logo-actions{width:100%}.logo-actions .btn{flex:1}.course-logo-section{margin-top:1rem;padding-top:1rem}}.featured-manager{max-width:1200px}.featured-controls{margin-bottom:1rem}.featured-controls .form-group{max-width:400px}.machine-list{display:flex;flex-direction:column}.machine-item{padding:1rem;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start}.machine-item:last-child{border-bottom:none}.machine-info{flex:1;min-width:200px}.machine-header-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.status-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-indicator.online{background:#4caf50;box-shadow:0 0 6px #4caf5080}.status-indicator.offline{background:#9e9e9e}.machine-location{font-size:.85rem;color:var(--color-text-muted)}.machine-state{display:flex;gap:1rem;font-size:.85rem;margin-bottom:.25rem}.machine-meta{font-size:.75rem;color:var(--color-text-muted)}.machine-actions{display:flex;gap:.5rem;align-items:center}.machine-history{width:100%;margin-top:.5rem;padding:.75rem;background:var(--color-bg-alt, rgba(0, 0, 0, .05));border-radius:6px;overflow-x:auto}.history-table{width:100%;border-collapse:collapse;font-size:.8rem}.history-table th,.history-table td{padding:.35rem .6rem;text-align:left;border-bottom:1px solid var(--color-border)}.history-table th{font-weight:600;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase}.register-form-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.register-form-row .form-group{flex:1;min-width:180px}.register-form-row .btn{margin-bottom:0;white-space:nowrap}.stream-badge{font-size:.65rem;font-weight:600;color:#7c4dff;background:#7c4dff1a;padding:.1rem .4rem;border-radius:3px;text-transform:uppercase;letter-spacing:.03em}.stream-section{width:100%;margin-top:.75rem;padding:.75rem;background:var(--color-bg-alt, rgba(0, 0, 0, .03));border-radius:6px;display:flex;flex-direction:column;gap:.75rem}.stream-type-block{border:1px solid var(--color-border);border-radius:6px;padding:.75rem}.stream-type-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.stream-optional{font-size:.75rem;color:var(--color-text-muted)}.stream-status{margin-left:auto;font-size:.7rem;font-weight:600;text-transform:uppercase;padding:.1rem .4rem;border-radius:3px}.stream-status.enabled{color:#4caf50;background:#4caf501a}.stream-status.disabled{color:var(--color-text-muted);background:#0000000d}.stream-config-row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.stream-config-row .form-group{flex:1;min-width:120px}.stream-config-row .btn{white-space:nowrap;margin-bottom:0}.form-control-sm{padding:.3rem .5rem;font-size:.85rem}.stream-info{display:flex;flex-direction:column;gap:.5rem}.stream-credentials{background:var(--color-bg, #fff);border:1px solid var(--color-border);border-radius:4px;padding:.5rem}.credential-row{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.credential-row+.credential-row{border-top:1px solid var(--color-border)}.credential-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);min-width:75px}.credential-value{flex:1;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#00000008;padding:.2rem .4rem;border-radius:3px}.copy-btn{flex-shrink:0;font-size:.7rem!important;padding:.2rem .4rem!important}.stream-meta{font-size:.75rem;color:var(--color-text-muted)}@media (max-width: 768px){.machine-item{flex-direction:column}.machine-state{flex-wrap:wrap;gap:.5rem}.register-form-row{flex-direction:column}.register-form-row .btn{width:100%}.stream-config-row{flex-direction:column}.stream-config-row .btn{width:100%}.credential-row{flex-wrap:wrap}.credential-value{width:100%;order:3}}.viewer-manager{max-width:1200px}.viewer-list{height:fit-content;position:sticky;top:1rem}.viewer-form{padding:1.5rem}.viewer-item-info{display:flex;flex-direction:column;gap:.1rem;flex:1;overflow:hidden}.viewer-username{font-size:.7rem;color:#fff6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-status-badge{padding:.125rem .375rem;border-radius:3px;font-size:.65rem;text-transform:uppercase;flex-shrink:0;cursor:pointer;transition:opacity .15s}.viewer-status-badge:hover{opacity:.8}.viewer-status-badge.active{background:#4caf5040;color:#81c784}.viewer-status-badge.inactive{background:#f4433640;color:#ff6b6b}@media (max-width: 768px){.viewer-form{padding:1rem}}@media (max-width: 480px){.viewer-status-badge{font-size:.6rem;padding:.1rem .25rem}}.ivs-dashboard{max-width:1200px}.ivs-summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}.ivs-summary-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.25rem}.summary-value{font-size:1.5rem;font-weight:700;color:var(--color-gold)}.summary-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.ivs-alerts{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.ivs-alert{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:4px;font-size:.8rem}.ivs-alert-error{background:#f4433626;border:1px solid rgba(244,67,54,.3);color:#ff6b6b}.ivs-alert-warning{background:#ff980026;border:1px solid rgba(255,152,0,.3);color:#ffb74d}.ivs-alert-info{background:#2196f31a;border:1px solid rgba(33,150,243,.2);color:#64b5f6}.alert-badge{padding:.1rem .35rem;border-radius:3px;font-size:.6rem;font-weight:600;text-transform:uppercase;flex-shrink:0}.ivs-alert-error .alert-badge{background:#f443364d}.ivs-alert-warning .alert-badge{background:#ff98004d}.ivs-alert-info .alert-badge{background:#2196f333}.ivs-section{margin-bottom:1rem}.table-responsive{overflow-x:auto}.ivs-table{width:100%;border-collapse:collapse;font-size:.8rem}.ivs-table th{text-align:left;padding:.5rem .75rem;color:var(--color-text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--color-border)}.ivs-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.05)}.ivs-table tr:last-child td{border-bottom:none}.channel-name{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{padding:.1rem .4rem;border-radius:3px;font-size:.65rem;font-weight:600;text-transform:uppercase}.status-badge.status-live{background:#4caf5040;color:#81c784}.status-badge.status-offline{background:#9e9e9e33;color:#9e9e9e}.status-badge.status-unknown{background:#ff980033;color:#ffb74d}.health-badge{padding:.1rem .4rem;border-radius:3px;font-size:.65rem;font-weight:600;text-transform:uppercase}.health-badge.health-healthy{background:#4caf5040;color:#81c784}.health-badge.health-starving{background:#f4433640;color:#ff6b6b}.health-badge.health-unknown,.health-badge.health-n\/a{background:#9e9e9e26;color:#9e9e9e}.stream-type-badge{padding:.1rem .35rem;border-radius:3px;font-size:.65rem;text-transform:uppercase;background:#2196f333;color:#64b5f6}.cost-breakdown{padding:.75rem}.cost-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.85rem;color:var(--color-text-muted)}.cost-row.cost-total{border-top:1px solid var(--color-border);margin-top:.25rem;padding-top:.5rem;font-weight:600;color:var(--color-gold)}.ivs-refresh-note{text-align:center;font-size:.7rem;color:var(--color-text-muted);margin-top:.5rem}@media (max-width: 768px){.ivs-summary-row{grid-template-columns:repeat(2,1fr)}.ivs-table{font-size:.75rem}.ivs-table th,.ivs-table td{padding:.4rem .5rem}.channel-name{max-width:120px}}@media (max-width: 480px){.ivs-summary-row{grid-template-columns:1fr 1fr;gap:.5rem}.ivs-summary-card{padding:.75rem .5rem}.summary-value{font-size:1.2rem}}.audit-log{max-width:1200px}.audit-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.audit-header h2{margin:0}.audit-controls{display:flex;align-items:center;gap:.5rem}.audit-filter{padding:.35rem .5rem;border-radius:4px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);font-size:.85rem}.audit-error{background:#dc262626;color:#f87171;padding:.5rem .75rem;border-radius:4px;margin-bottom:1rem}.audit-empty{text-align:center;color:var(--color-text-muted);padding:2rem}.audit-table{width:100%;border-collapse:collapse;font-size:.85rem}.audit-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.audit-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:top}.audit-table tbody tr:hover{background:var(--color-bg-secondary)}.audit-time{white-space:nowrap;color:var(--color-text-muted);font-family:monospace;font-size:.8rem}.audit-admin{font-weight:600;white-space:nowrap}.audit-action{white-space:nowrap;color:var(--color-gold)}.audit-details{max-width:350px;overflow:hidden;text-overflow:ellipsis}.audit-tournament{white-space:nowrap;color:var(--color-text-muted);font-size:.8rem}.challonge-browser{max-width:1400px}.challonge-browser .key-selector{margin-bottom:1.5rem}.challonge-browser .key-selector select{min-width:300px}.challonge-browser .two-pane{display:flex;gap:1.5rem;align-items:flex-start}.challonge-browser .tournament-list-pane{width:340px;flex-shrink:0}.challonge-browser .tournament-detail-pane{flex:1;min-width:0}.challonge-browser .tournament-list{border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.challonge-browser .tournament-list-item{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .15s}.challonge-browser .tournament-list-item:last-child{border-bottom:none}.challonge-browser .tournament-list-item:hover{background:var(--color-bg-hover, rgba(255, 255, 255, .05))}.challonge-browser .tournament-list-item.selected{background:var(--color-bg-selected, rgba(212, 168, 0, .15));border-left:3px solid var(--color-accent, #d4a800)}.challonge-browser .tournament-list-item .t-name{font-weight:600;font-size:.9rem;margin-bottom:.25rem}.challonge-browser .tournament-list-item .t-meta{display:flex;gap:.75rem;font-size:.75rem;color:var(--color-text-muted)}.challonge-browser .state-badge{display:inline-block;padding:.15rem .5rem;border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.challonge-browser .state-badge.pending{background:#96969633;color:#aaa}.challonge-browser .state-badge.underway{background:#2ecc7133;color:#2ecc71}.challonge-browser .state-badge.awaiting_review{background:#f39c1233;color:#f39c12}.challonge-browser .state-badge.complete{background:#3498db33;color:#3498db}.challonge-browser .detail-card{border:1px solid var(--color-border);border-radius:8px;padding:1.25rem}.challonge-browser .detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.challonge-browser .detail-header h3{margin:0;flex:1}.challonge-browser .tab-bar{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-bottom:1rem}.challonge-browser .tab-btn{padding:.5rem 1.25rem;background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:.85rem;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.challonge-browser .tab-btn:hover{color:var(--color-text)}.challonge-browser .tab-btn.active{color:var(--color-accent, #d4a800);border-bottom-color:var(--color-accent, #d4a800)}.challonge-browser .info-grid{display:grid;grid-template-columns:140px 1fr;gap:.5rem 1rem;font-size:.85rem}.challonge-browser .info-grid .info-label{font-weight:600;color:var(--color-text-muted)}.challonge-browser .info-grid a{color:var(--color-accent, #d4a800)}.challonge-browser .editable-cell{display:flex;align-items:center;gap:.4rem}.challonge-browser .editable-cell input{flex:1;padding:.2rem .4rem;font-size:.8rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-input, #1a1a2e);color:var(--color-text)}.challonge-browser .editable-cell .edit-btn,.challonge-browser .editable-cell .save-btn,.challonge-browser .editable-cell .cancel-btn{padding:.15rem .4rem;font-size:.7rem;border:none;border-radius:3px;cursor:pointer}.challonge-browser .editable-cell .edit-btn{background:#ffffff1a;color:var(--color-text-muted)}.challonge-browser .editable-cell .save-btn{background:#2ecc714d;color:#2ecc71}.challonge-browser .editable-cell .cancel-btn{background:#e74c3c4d;color:#e74c3c}.challonge-browser .data-table{width:100%;border-collapse:collapse;font-size:.8rem}.challonge-browser .data-table th{text-align:left;padding:.5rem .6rem;border-bottom:2px solid var(--color-border);font-weight:600;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.challonge-browser .data-table td{padding:.4rem .6rem;border-bottom:1px solid var(--color-border)}.challonge-browser .data-table tr:hover{background:var(--color-bg-hover, rgba(255, 255, 255, .03))}.challonge-browser .match-state-open{color:#2ecc71}.challonge-browser .match-state-complete{color:#3498db}.challonge-browser .match-state-pending{color:#888}.challonge-browser .danger-zone{margin-top:1.5rem;padding:1rem;border:1px solid rgba(231,76,60,.3);border-radius:8px;background:#e74c3c0d}.challonge-browser .danger-zone h4{margin:0 0 .5rem;color:#e74c3c;font-size:.85rem}.challonge-browser .danger-zone p{margin:0 0 .75rem;font-size:.8rem;color:var(--color-text-muted)}.challonge-browser .btn-danger{background:#e74c3c;color:#fff;border:none;padding:.4rem 1rem;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600}.challonge-browser .btn-danger:hover{background:#c0392b}.challonge-browser .btn-sm-action{padding:.2rem .5rem;font-size:.7rem;border:1px solid var(--color-border);border-radius:3px;background:none;color:var(--color-text);cursor:pointer}.challonge-browser .btn-sm-action:hover{background:#ffffff1a}.challonge-browser .empty-state{text-align:center;padding:2rem;color:var(--color-text-muted);font-size:.9rem}@media (max-width: 900px){.challonge-browser .two-pane{flex-direction:column}.challonge-browser .tournament-list-pane{width:100%}}@media (max-width: 480px){.challonge-browser .key-selector select{min-width:100%}.challonge-browser .info-grid{grid-template-columns:1fr}}.sms-log{max-width:1200px}.sms-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.sms-header h2{margin:0}.sms-controls{display:flex;align-items:center;gap:.5rem}.sms-filter{padding:.35rem .5rem;border-radius:4px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);font-size:.85rem}.sms-summary{margin-bottom:1rem;padding:.5rem .75rem;background:var(--color-bg-secondary);border-radius:4px;font-size:.85rem;color:var(--color-text-muted)}.sms-summary strong{color:var(--color-text)}.sms-error{background:#dc262626;color:#f87171;padding:.5rem .75rem;border-radius:4px;margin-bottom:1rem}.sms-empty{text-align:center;color:var(--color-text-muted);padding:2rem}.sms-table{width:100%;border-collapse:collapse;font-size:.85rem}.sms-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.sms-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:top}.sms-table tbody tr:hover{background:var(--color-bg-secondary)}.sms-time{white-space:nowrap;color:var(--color-text-muted);font-family:monospace;font-size:.8rem}.sms-recipient{font-weight:600;white-space:nowrap}.sms-phone{white-space:nowrap;font-family:monospace;color:var(--color-text-muted);font-size:.8rem}.sms-message{max-width:400px;overflow:hidden;text-overflow:ellipsis}.sms-status-sent{color:#4ade80;font-weight:600}.sms-status-failed{color:#f87171;font-weight:600}.payouts-page{padding:1.5rem;max-width:900px;margin:0 auto}.payouts-loading{display:flex;justify-content:center;padding:4rem}.payouts-empty{text-align:center;color:var(--color-text-muted);padding:4rem 2rem;font-size:1.1rem}.payouts-title{color:var(--color-text);font-size:1.4rem;margin:0 0 1.5rem;text-align:center}.payouts-cards{display:flex;flex-direction:column;gap:1.5rem}.payouts-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.payouts-card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-accent, #0c2d48);color:#fff;font-weight:700}.payouts-card-tier{font-size:1rem;text-transform:uppercase;letter-spacing:.04em}.payouts-card-pool{font-size:.9rem;opacity:.9}.payouts-card-table{width:100%;border-collapse:collapse}.payouts-card-table th{text-align:left;padding:.5rem 1rem;border-bottom:2px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;font-weight:600}.payouts-card-table td{padding:.5rem 1rem;border-bottom:1px solid var(--color-border);color:var(--color-text)}.payouts-card-table tbody tr:last-child td{border-bottom:none}.payouts-card-table tbody tr:hover{background:#00000008}.payouts-card-place{font-weight:600;white-space:nowrap}.payouts-card-count{font-weight:400;font-size:.8rem;color:var(--color-text-muted)}.payouts-card-pct{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.payouts-card-amount{font-weight:700;font-variant-numeric:tabular-nums;color:#15803d}@media (max-width: 600px){.payouts-page{padding:1rem}.payouts-card-header{flex-direction:column;gap:.25rem;text-align:center}.payouts-card-table th,.payouts-card-table td{padding:.4rem .6rem;font-size:.85rem}}.payout-manager{max-width:800px}.payout-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.payout-header h2{margin:0}.payout-tournament-select{padding:.35rem .5rem;border-radius:4px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);font-size:.85rem;min-width:200px}.payout-empty{text-align:center;color:var(--color-text-muted);padding:3rem}.payout-error{background:#dc262626;color:#f87171;padding:.5rem .75rem;border-radius:4px;margin-bottom:1rem}.payout-success{background:#22c55e26;color:#4ade80;padding:.5rem .75rem;border-radius:4px;margin-bottom:1rem}.payout-toggle-row{margin-bottom:1rem;padding:.75rem;background:var(--color-bg-secondary);border-radius:6px}.payout-toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.payout-toggle-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-gold, #d4a800)}.payout-tier-tabs{display:flex;gap:.25rem;margin-bottom:1.25rem}.payout-tier-tab{padding:.4rem 1rem;border:2px solid transparent;border-bottom-color:var(--tier-color);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;border-radius:6px 6px 0 0;font-size:.85rem;font-weight:500;position:relative;transition:background .15s}.payout-tier-tab:hover{background:var(--color-bg-tertiary, rgba(255,255,255,.05))}.payout-tier-tab.active{border-color:var(--tier-color);background:var(--color-bg-tertiary, rgba(255,255,255,.08))}.tier-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--tier-color);margin-left:4px;vertical-align:middle}.payout-section{margin-bottom:1.25rem}.payout-section h3{margin:0 0 .5rem;font-size:.9rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.payout-pool-modes{display:flex;gap:1rem;margin-bottom:.75rem}.payout-pool-modes label{display:flex;align-items:center;gap:.35rem;cursor:pointer}.payout-buyin-calc{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.payout-buyin-amount{font-weight:700;font-size:1.1rem}.payout-buyin-x{color:var(--color-text-muted)}.payout-player-count{width:60px;padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem;text-align:center}.payout-buyin-eq{color:var(--color-text-muted)}.payout-pool-total{font-weight:700;font-size:1.1rem;color:var(--color-gold, #d4a800)}.payout-manual-input{display:flex;align-items:center;gap:.25rem}.payout-manual-input input{width:120px;padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem}.payout-spots-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.payout-spots-row label{display:flex;align-items:center;gap:.5rem;font-weight:500}.payout-spots-select{padding:.3rem .5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem}.payout-table-wrapper{margin-bottom:1.25rem;overflow-x:auto}.payout-table{width:100%;border-collapse:collapse;font-size:.9rem}.payout-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--color-border);color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.payout-table td{padding:.4rem .75rem;border-bottom:1px solid var(--color-border)}.payout-table tbody tr:hover{background:var(--color-bg-secondary)}.payout-place{font-weight:600;white-space:nowrap}.payout-pct-cell{display:flex;align-items:center;gap:.25rem}.payout-adj-btn{width:26px;height:26px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}.payout-adj-btn:hover:not(:disabled){background:var(--color-bg-tertiary, rgba(255,255,255,.1))}.payout-adj-btn:disabled{opacity:.3;cursor:not-allowed}.payout-pct-value{min-width:40px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.payout-recommended{color:var(--color-text-muted);font-size:.85rem;font-variant-numeric:tabular-nums}.payout-pct-input{width:70px;padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}.payout-pct-input:focus,.payout-amt-input:focus{outline:none;border-color:var(--color-gold, #d4a800)}.payout-amt-input{width:90px;padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);font-size:.9rem;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.payout-dollar-prefix{color:var(--color-text-muted);font-weight:600;margin-right:2px}.payout-group-size{color:var(--color-text-muted);font-size:.85rem;white-space:nowrap}.payout-amount{font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}.payout-total-row{font-weight:700}.payout-total-row td{border-top:2px solid var(--color-border);border-bottom:none;padding-top:.6rem}.payout-total-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.85rem}.payout-total-badge.valid{background:#22c55e33;color:#4ade80}.payout-total-badge.invalid{background:#ef444433;color:#f87171}.payout-diff{font-weight:400;font-size:.8rem}.payout-actions{display:flex;gap:.75rem;align-items:center}.viewer-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f3460,#16213e);padding:1rem}.viewer-login-card{width:100%;max-width:400px;background:#ffffff14;border-radius:8px;border:1px solid rgba(255,255,255,.15);overflow:hidden}.viewer-login-header{padding:2rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.1);background:#0003}.viewer-login-header h1{margin:0 0 .5rem;color:gold;font-size:1.5rem}.viewer-login-header p{margin:0;color:#ffffffb3}.viewer-login-form{padding:2rem}.viewer-login-form .form-group{margin-bottom:1rem}.viewer-login-form label{display:block;margin-bottom:.35rem;color:#fffc;font-size:.85rem}.viewer-login-form .form-control{width:100%;padding:.5rem .75rem;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#0000004d;color:#fff;font-size:.9rem;box-sizing:border-box}.viewer-login-form .form-control:focus{outline:none;border-color:gold}.viewer-login-form .alert-error{background:#f4433633;border:1px solid rgba(244,67,54,.4);color:#ff6b6b;padding:.5rem .75rem;border-radius:4px;margin-bottom:1rem;font-size:.85rem}.viewer-login-form .btn-block{width:100%;margin-top:1rem;padding:.6rem;border:none;border-radius:4px;background:gold;color:#1a1a2e;font-weight:600;font-size:.9rem;cursor:pointer}.viewer-login-form .btn-block:hover{background:#ffed4a}.viewer-login-form .btn-block:disabled{opacity:.6;cursor:not-allowed}.viewer-login-footer{padding:1rem 2rem 2rem;text-align:center}.viewer-login-footer a{color:#ffffff80;font-size:.875rem;text-decoration:none}.viewer-login-footer a:hover{color:gold}body[data-env=dev] .viewer-login-page{background:linear-gradient(135deg,#0f6034,#163e21)}.live-scoreboard{width:1056px;min-height:540px;background:#e5e7eb;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;color:#1a1a2e;overflow:visible;position:relative}.live-header{display:flex;align-items:center;justify-content:space-between;padding:10px 28px 4px}.live-header h1{font-size:1.3rem;font-weight:800;letter-spacing:.03em;margin:0;color:#1a5e1f;text-transform:uppercase}.live-header .connection-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.live-header .connection-dot.connected{background:#22c55e;box-shadow:0 0 6px #22c55e}.live-header .connection-dot.disconnected{background:#ef4444;box-shadow:0 0 6px #ef4444}.live-header .connection-dot.connecting{background:#f59e0b;box-shadow:0 0 6px #f59e0b;animation:pulse-dot 1s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.live-grid{display:flex;flex-direction:column;gap:10px;padding:4px 28px 12px}.player-card{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:8px 10px;position:relative;overflow:visible;box-shadow:0 1px 3px #0000000f}.player-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:8px 8px 0 0}.player-card.state-playing:before{background:linear-gradient(90deg,#22c55e,#16a34a)}.player-card.state-loading:before{background:linear-gradient(90deg,#f59e0b,#d97706);animation:loading-pulse 2s ease-in-out infinite}.player-card.state-game_over:before{background:linear-gradient(90deg,#9ca3af,#d1d5db)}.player-card.state-idle:before{background:#e5e7eb}.player-card.state-game_over{opacity:.65}@keyframes loading-pulse{0%,to{opacity:1}50%{opacity:.5}}.card-top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.machine-badge{background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;padding:1px 6px;font-size:.6rem;font-weight:700;letter-spacing:.05em;color:#6b7280}.state-badge{font-size:.55rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:1px 8px;border-radius:10px}.state-badge.playing{color:#16a34a;background:#dcfce7;border:1px solid #86efac}.state-badge.loading{color:#d97706;background:#fef3c7;border:1px solid #fcd34d;animation:pulse-dot 2s infinite}.state-badge.game_over{color:#6b7280;background:#f3f4f6;border:1px solid #d1d5db}.state-badge.idle{color:#9ca3af;background:#f9fafb;border:1px solid #e5e7eb}.state-badge.paused{color:#d97706;background:#fef3c7;border:1px solid #f59e0b}.player-card.state-paused{opacity:.7}.scorecard-wrapper{overflow-x:auto}.scorecard{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;table-layout:fixed}.scorecard th,.scorecard td{text-align:center;padding:2px 1px;white-space:nowrap;vertical-align:middle}.scorecard .player-col{width:110px;text-align:left;padding-left:6px;font-size:.7rem;font-weight:700;color:#6b7280;letter-spacing:.05em;border-right:4px double #111827}.scorecard .total-col{width:65px;font-weight:800;color:#6b7280;font-size:.7rem;border-left:4px double #111827}.front-nine-last{border-right:3px solid #9ca3af!important}.scorecard .hole-row th{font-size:.9rem;font-weight:800;color:#eab308;padding-bottom:0}.scorecard .hole-header{font-size:.9rem}.scorecard .hole-header.current{color:#facc15;font-weight:900}.scorecard .par-row th{font-size:.55rem!important;font-weight:700;color:#4b5563;background:#f3f4f6;padding-top:0;padding-bottom:3px;border-bottom:2px solid #e5e7eb}.scorecard .score-row td{padding-top:5px;padding-bottom:3px;height:42px}.scorecard .player-name-cell{font-size:1.05rem;font-weight:800;color:#111827;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis}.score-cell{position:relative}.score-cell.current{background:#2563eb0f}.score-active{display:inline-block;width:8px;height:8px;border-radius:50%;background:#2563eb;animation:active-pulse 1.5s ease-in-out infinite}@keyframes active-pulse{0%,to{opacity:.3;box-shadow:0 0 4px #2563eb}50%{opacity:1;box-shadow:0 0 10px #2563eb}}.score-shape{display:inline-grid;place-items:center;width:28px!important;height:28px!important;font-size:25px!important;font-weight:800;line-height:1;padding:0;overflow:visible}.score-shape.par{color:#374151}.score-shape.under-1{color:#15803d;border:1.5px solid #22c55e;border-radius:50%}.score-shape.under-2{color:#a16207;border:1.5px solid #d97706;border-radius:50%;box-shadow:0 0 0 1px #fff,0 0 0 2.5px #d97706}.score-shape.under-3{color:#a16207;border:1.5px solid #d97706;border-radius:50%;box-shadow:0 0 0 1px #fff,0 0 0 2.5px #d97706,0 0 0 3.5px #fff,0 0 0 5px #d97706}.score-shape.under-4{color:#a16207;border:1.5px solid #d97706;border-radius:50%;box-shadow:0 0 0 1px #fff,0 0 0 2.5px #d97706,0 0 0 3.5px #fff,0 0 0 5px #d97706,0 0 0 6px #fff,0 0 0 7.5px #d97706}.score-shape.over-1{color:#dc2626;border:1.5px solid #dc2626;border-radius:1px}.score-shape.over-2{color:#dc2626;border:1.5px solid #dc2626;border-radius:1px;box-shadow:0 0 0 1px #fff,0 0 0 2.5px #dc2626}.score-shape.over-3{color:#dc2626;border:1.5px solid #dc2626;border-radius:1px;box-shadow:0 0 0 1px #fff,0 0 0 2.5px #dc2626,0 0 0 3.5px #fff,0 0 0 5px #dc2626}.score-shape.over-4{color:#dc2626;border:1.5px solid #dc2626;border-radius:1px;box-shadow:0 0 0 1px #fff,0 0 0 2.5px #dc2626,0 0 0 3.5px #fff,0 0 0 5px #dc2626,0 0 0 6px #fff,0 0 0 7.5px #dc2626}.total-cell{font-size:30px!important;font-weight:900;border-left:4px double #111827;overflow:visible}.total-cell.total-under{color:#15803d}.total-cell.total-over{color:#dc2626}.total-cell.total-even{color:#374151}.score-cell.new-score .score-shape{animation:score-pop .6s ease-out}@keyframes score-pop{0%{transform:scale(1.4)}50%{transform:scale(.9)}to{transform:scale(1)}}.waiting-state{display:flex;align-items:center;justify-content:center;padding:14px 0;color:#9ca3af;font-size:.85rem}.empty-machine{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af;font-size:1.2rem;font-weight:600}.player-card.full .scorecard .player-col{width:160px;font-size:.85rem}.player-card.full .scorecard .player-name-cell{font-size:1.3rem}.player-card.full .scorecard .hole-header{font-size:1.1rem}.player-card.full .scorecard .par-row th{font-size:.85rem!important}.player-card.full .score-shape{width:20px;height:20px;font-size:12px}.player-card.full .total-cell{font-size:1.5rem}.player-card.full .scorecard .total-col{width:64px;font-size:.85rem}.player-card.full .scorecard .score-row td{height:52px}.player-card.full{padding:20px 28px}.player-card.full .card-top-bar{margin-bottom:12px}.player-card.full .machine-badge{font-size:.75rem;padding:3px 10px}.player-card.full .state-badge{font-size:.7rem;padding:3px 12px}.player-card.compact{padding:6px 10px}.player-card.compact .scorecard .player-col{width:90px}:root{--color-gold-light: #fafad2;--color-gold: #ffeb7a;--color-purple-light: #e6e6fa;--color-purple: #e0b0ff;--color-bg: #f0f2f5;--color-bg-secondary: #ffffff;--color-text: #0f172a;--color-text-muted: #64748b;--color-accent: #0c2d48;--color-accent-light: #1a5276;--color-success: #2e7d32;--color-error: #c62828;--color-warning: #e65100;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease}.admin-layout,.login-page{--color-bg: #1e1e2e;--color-bg-secondary: #2a2a3c;--color-text: #e0e0e8;--color-text-muted: #9a9ab0;--color-accent: #5b8fb9;--color-border: #3a3a50;--color-success: #4caf50;--color-error: #ef5350;--color-warning: #ff9800;--color-gold: #ffeb7a}body[data-env=dev]{--color-bg: #edf5f0;--color-bg-secondary: #f8fcf8;--color-accent: #0c4830;--color-accent-light: #1a7652;--color-border: #d4e8d8}body[data-env=dev] .admin-layout,body[data-env=dev] .login-page{--color-bg: #1e2e22;--color-bg-secondary: #2a3c2e;--color-accent: #5bb98f;--color-border: #3a503e}.admin-layout,.login-page{background:var(--color-bg);color:var(--color-text)}*{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:var(--color-bg);color:var(--color-text);min-height:100%;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{display:flex;flex-direction:column;height:100%}.public-layout{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.container{max-width:1400px;margin:0 auto;padding:1rem}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.25rem;font-weight:500}.form-control{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text);font-size:1rem}.form-control:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #5b8fb94d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;transition:background-color .2s,transform .1s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:#1f6694}.btn-secondary{background:#e0e0e0;color:#1a1a2e}.btn-secondary:hover{background:#d0d0d0}.admin-layout .btn-secondary,.login-page .btn-secondary{background:#3a3a50;color:var(--color-text)}.admin-layout .btn-secondary:hover,.login-page .btn-secondary:hover{background:#4a4a62}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover{background:#b71c1c}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:#256b27}.btn-sm{padding:.25rem .5rem;font-size:.875rem}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background:var(--color-bg-secondary);border-radius:8px;padding:1.5rem;border:1px solid var(--color-border);box-shadow:0 1px 3px #00000014}.card-header{font-size:1.25rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:.75rem;text-align:center;border-bottom:1px solid var(--color-border)}th{background:var(--color-accent);color:#fff;font-weight:600;position:sticky;top:0;z-index:10}.alert{padding:.75rem 1rem;border-radius:4px;margin-bottom:1rem}.alert-success{background:#2e7d321a;border:1px solid var(--color-success);color:var(--color-success)}.alert-error{background:#c628281a;border:1px solid var(--color-error);color:var(--color-error)}.alert-warning{background:#e651001a;border:1px solid var(--color-warning);color:var(--color-warning)}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:4px;font-size:.875rem}.status-indicator:before{content:"";width:8px;height:8px;border-radius:50%}.status-connected:before{background:var(--color-success)}.status-disconnected:before{background:var(--color-error)}.status-connecting:before{background:var(--color-warning);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
