*{box-sizing:border-box}:root{font-family:Ubuntu Mono,monospace;line-height:1.6;font-weight:400;color-scheme:dark;color:#e5e7eb;background-color:#101828;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:#101828}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;line-height:1.2}a{color:#60a5fa;text-decoration:none;transition:color .2s}a:hover{color:#93c5fd;text-decoration:underline}ul,ol{margin:0;padding:0}input,select,textarea,button{font-family:Ubuntu Mono,monospace}::selection{background-color:#60a5fa;color:#fff}.navigation{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:#1a2332;border-bottom:2px solid #374151}.nav-brand h1{margin:0;font-size:1.25rem;font-weight:700;color:#60a5fa}.nav-links{display:flex;gap:24px;align-items:center}.nav-links a{color:#9ca3af;text-decoration:none;padding:8px 16px;border-radius:6px;transition:color .2s,background-color .2s;font-weight:500}.nav-links a:hover{color:#e5e7eb;background:#1f2937}.nav-links a.active{color:#fff;background:#2563eb}.nav-actions{display:flex;align-items:center;gap:8px}.logout-button{padding:8px 16px;background:transparent;color:#ef4444;border:1px solid #ef4444;border-radius:6px;font-weight:700;cursor:pointer;transition:background-color .2s,color .2s}.logout-button:hover{background:#ef4444;color:#fff}@media(max-width:768px){.navigation{flex-direction:column;gap:16px;padding:16px}.nav-links{width:100%;flex-wrap:wrap;justify-content:center;gap:8px}.nav-links a{flex:1 1 auto;text-align:center;min-width:100px}.nav-actions{width:100%;justify-content:center}.logout-button{width:100%;max-width:200px}}.modal-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#1a2332;border:1px solid #374151;border-radius:8px;max-width:500px;width:90%;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:20px 24px 16px;border-bottom:1px solid #374151}.modal-header h2{margin:0;font-size:1.25rem;color:#e5e7eb;font-weight:700}.modal-body{padding:20px 24px}.modal-body p{margin:0 0 16px;color:#e5e7eb;line-height:1.6}.modal-body p:last-child{margin-bottom:0}.modal-footer{padding:16px 24px 20px;display:flex;justify-content:flex-end;gap:16px;border-top:1px solid #374151}.modal-footer button{min-width:100px}.app-shell{display:flex;flex-direction:column;gap:24px}.app-shell header{margin-bottom:8px}.app-shell header h1{margin-bottom:8px;font-size:2rem;color:#e5e7eb}.app-shell header p{color:#9ca3af;margin:0}.uploader{display:flex;flex-direction:column;gap:12px;align-items:center}.dropzone{width:100%;border:2px dashed #374151;border-radius:8px;padding:24px;text-align:center;cursor:pointer;background:#1a2332;transition:border-color .2s,background .2s;color:#9ca3af}.dropzone:hover{border-color:#60a5fa;background:#60a5fa14}.dropzone strong{display:block;color:#e5e7eb;margin-bottom:4px}.dropzone span{font-size:.875rem}.error{color:#fca5a5;margin:0}.board-and-score{display:grid;grid-template-columns:minmax(0,auto) minmax(280px,1fr);gap:24px;align-items:start}.score-panel{background:#1a2332;border:1px solid #374151;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:16px}.scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.scores div{background:#1f2937;border-radius:8px;padding:16px;display:flex;flex-direction:column;align-items:center}.score-label{font-size:.875rem;color:#9ca3af}.score-value{font-size:1.75rem;font-weight:700;color:#e5e7eb}.boards.single-board{display:flex;flex-direction:column;gap:12px;align-items:center}.board-wrapper{background:#1a2332;border:1px solid #374151;border-radius:8px;padding:16px}.board-wrapper h2{margin:0 0 12px;font-size:1rem;color:#e5e7eb;text-align:center}.board{border-collapse:collapse;table-layout:fixed}.board td{width:32px;padding:0;border:1px solid #2d3748;font-weight:700;background:#1f2937}.cell-content{width:100%;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#e5e7eb}.board td.state-1 .cell-content{background:#2563eb}.board td.state-2 .cell-content{background:#dc2626}.board td.state-0 .cell-content{background:#1f2937}.flip-btn{padding:8px 16px;border-radius:6px;background:#374151;color:#e5e7eb;border:none;cursor:pointer;font-weight:700;transition:background-color .2s}.flip-btn:hover:not(:disabled){background:#4b5563}.flip-btn:disabled{opacity:.4;cursor:not-allowed}.chart-wrapper{width:100%}.chart-labels{display:flex;justify-content:space-between;font-size:.875rem;color:#9ca3af;margin-bottom:8px}.chart-key{display:flex;align-items:center;gap:6px}.chart-key:before{content:"";width:10px;height:10px;border-radius:50%;display:inline-block}.chart-key.key-one:before{background:#60a5fa}.chart-key.key-two:before{background:#f87171}.score-chart{width:100%;height:160px;background:#1f2937;border-radius:6px}.score-line{stroke-width:2;vector-effect:non-scaling-stroke}.score-line-one{stroke:#60a5fa}.score-line-two{stroke:#f87171}.chart-placeholder{color:#9ca3af;font-size:.875rem;text-align:center;padding:40px}.chart-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.chart-header h3{margin:0;font-size:1rem;font-weight:700;color:#e5e7eb}.chart-toggle{display:flex;gap:6px}.chart-toggle button{padding:6px 12px;border-radius:6px;border:1px solid #374151;background:transparent;color:#9ca3af;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s,border-color .2s,color .2s}.chart-toggle button:hover:not(:disabled){background:#1f2937;color:#e5e7eb}.chart-toggle button.active{background:#2563eb;border-color:#2563eb;color:#fff}.chart-toggle button:disabled{opacity:.4;cursor:not-allowed}.timeline{background:#1a2332;border:1px solid #374151;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.controls button{padding:8px 12px;border-radius:6px;border:none;background:#374151;color:#e5e7eb;cursor:pointer;font-weight:700;transition:background-color .2s}.controls button:hover:not(:disabled){background:#4b5563}.controls button:disabled{opacity:.4;cursor:not-allowed}.timeline input[type=range]{width:100%;accent-color:#60a5fa}.timeline-meta{display:flex;justify-content:space-between;font-size:.875rem;color:#9ca3af}.timeline-meta label{display:flex;align-items:center;gap:8px}.timeline-meta input[type=range]{width:100px;accent-color:#60a5fa}@media(max-width:900px){.board-and-score{grid-template-columns:1fr}.timeline-meta{flex-direction:column;gap:8px}}.app-container{min-height:100vh;display:flex;flex-direction:column;background:#101828}.main-content{flex:1;padding:40px 20px;width:100%;max-width:1400px;margin:0 auto}.page-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #374151}.page-header h1{font-size:2rem;margin-bottom:8px;color:#e5e7eb}.page-header p{color:#9ca3af;font-size:1rem;margin:0}.card{background:#1a2332;border:1px solid #374151;border-radius:8px;padding:20px;margin-bottom:20px}.card h2{margin:0 0 16px;font-size:1.25rem;color:#e5e7eb;padding-bottom:12px;border-bottom:2px solid #374151}.card h3{margin:16px 0 12px;font-size:1rem;color:#e5e7eb}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:700;color:#e5e7eb;font-size:.875rem}.form-group small{display:block;margin-top:6px;color:#9ca3af;font-size:.875rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:1px solid #374151;border-radius:6px;background:#1f2937;color:#e5e7eb;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#60a5fa}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{opacity:.5;cursor:not-allowed}.form-group input[type=file]{padding:8px;cursor:pointer}.form-group input[type=checkbox]{width:auto;cursor:pointer;margin-right:8px}button{padding:12px 32px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}button:hover:not(:disabled){background:#1d4ed8}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:#374151}button.secondary:hover:not(:disabled){background:#4b5563}button.danger{background:#dc2626}button.danger:hover:not(:disabled){background:#b91c1c}.error-message{color:#fca5a5;padding:16px;background:#450a0a;border:1px solid #991b1b;border-radius:6px;margin-bottom:16px}.success-message{color:#86efac;padding:16px;background:#052e16;border:1px solid #166534;border-radius:6px;margin-bottom:16px;white-space:pre-line}.loading{text-align:center;padding:40px;color:#9ca3af;font-size:1rem}table{width:100%;border-collapse:collapse;margin-top:16px}table th,table td{padding:16px 20px;text-align:left;border-bottom:1px solid #2d3748}table th{font-weight:700;color:#e5e7eb;background:#1f2937;font-size:.875rem}table th:first-child{border-top-left-radius:6px}table th:last-child{border-top-right-radius:6px}table td{color:#e5e7eb}table tr:last-child td{border-bottom:none}table tbody tr{transition:background-color .2s}table tbody tr:hover{background:#1f2937}table tbody tr.your-team-row{background:#1e3a8a;border-left:3px solid #60a5fa}table tbody tr.your-team-row:hover{background:#1e40af}.team-grid{display:grid;gap:16px;margin-top:16px}.team-item{padding:20px;background:#1f2937;border-radius:6px;border:1px solid #374151;transition:border-color .2s}.team-item:hover{border-color:#60a5fa}.team-item.my-team{border:2px solid #60a5fa;background:#1e3a8a}.team-item h3{margin:0 0 8px;font-size:1rem;color:#e5e7eb}.team-item .members{font-size:.875rem;color:#9ca3af}.member-list{list-style:none;padding:0;margin:12px 0}.member-list li{padding:12px 16px;border-bottom:1px solid #374151;background:#1f2937;transition:background-color .2s}.member-list li:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.member-list li:last-child{border-bottom:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.member-list li:hover{background:#374151}.state-grid{display:grid;grid-template-columns:200px 1fr;gap:12px;margin-bottom:20px}.state-grid div{display:flex;align-items:center}.state-open{color:#86efac;font-weight:700}.state-closed{color:#fca5a5;font-weight:700}.flex{display:flex}.flex-col{flex-direction:column}.gap-1{gap:16px}.gap-2{gap:32px}.text-center{text-align:center}.text-muted{color:#9ca3af;font-size:.875rem}.auto-refresh-info{font-size:.875rem;color:#9ca3af;text-align:center;margin-top:20px;padding:12px;background:#1f2937;border-radius:6px;border:1px solid #374151}.standings-rank{font-weight:700;font-size:1rem}.standings-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px;background:#1f2937;border-radius:6px;border:1px solid #374151}.standings-controls label{display:flex;align-items:center;gap:8px;cursor:pointer;color:#e5e7eb}.login-container{max-width:500px;margin:60px auto;padding:0 20px}.login-container h1{text-align:center;margin-bottom:8px;font-size:1.75rem}.login-container p.text-muted{text-align:center;margin-bottom:20px}.admin-controls{display:flex;flex-direction:column;gap:20px}.admin-section{padding:16px;background:#1f2937;border-radius:6px;border:1px solid #374151}.admin-section h3{margin:0 0 12px;color:#e5e7eb}.admin-buttons{display:flex;gap:16px;margin-top:12px;flex-wrap:wrap}.admin-warning{font-size:.875rem;color:#9ca3af;margin-top:8px;padding:12px;background:#1f2937;border-left:3px solid #ef4444;border-radius:4px}.admin-warning strong{color:#fca5a5}.text-muted.small{font-size:.875rem;margin-top:8px}.reset-logout-button{position:fixed;bottom:32px;right:32px;padding:12px 24px;background:#dc2626;color:#fff;border:1px solid #ef4444;border-radius:6px;font-weight:700;font-size:.875rem;cursor:pointer;transition:background-color .2s;z-index:1000}.reset-logout-button:hover{background:#b91c1c}.reset-logout-button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.reset-logout-button{bottom:16px;right:16px;padding:10px 20px;font-size:.875rem}}.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:16px}.team-card{background:#1f2937;border:1px solid #374151;border-radius:8px;padding:20px;transition:border-color .2s}.team-card:hover{border-color:#60a5fa}.team-card h3{margin:0 0 16px;color:#e5e7eb;font-size:1.125rem}.team-members{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.member-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#1a2332;border-radius:4px;border-left:3px solid #60a5fa}.member-name{color:#e5e7eb}.member-crsid{color:#9ca3af;font-size:.875rem}.team-meta{display:flex;justify-content:space-between;padding-top:16px;border-top:1px solid #374151;color:#9ca3af;font-size:.875rem}.waiting-message{text-align:center;margin-top:40px;padding:32px;color:#9ca3af}.waiting-message p{margin-top:16px;font-size:1rem}.spinner{margin:0 auto;border:4px solid #374151;border-top:4px solid #60a5fa;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-section{display:flex;flex-direction:column;gap:16px}.upload-button{display:inline-block;padding:12px 24px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-weight:700;cursor:pointer;transition:background-color .2s;text-align:center;max-width:300px}.upload-button:hover{background:#1d4ed8}.submissions-list{display:flex;flex-direction:column;gap:16px}.submission-item{background:#1f2937;border:1px solid #374151;border-radius:6px;padding:20px;transition:border-color .2s}.submission-item.latest{border-color:#60a5fa;background:#1e3a8a}.submission-item:hover{border-color:#60a5fa}.submission-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.submission-header h3{margin:0;color:#e5e7eb;font-size:1rem}.badge-latest,.badge-active{padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:700}.badge-latest{background:#60a5fa;color:#fff}.badge-active{background:#10b981;color:#fff}.submission-meta{display:flex;gap:24px;color:#9ca3af;font-size:.875rem;margin-bottom:16px}.submission-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.game-request-section{display:flex;align-items:center;gap:8px}.team-select{padding:8px 12px;background:#1f2937;color:#e5e7eb;border:1px solid #374151;border-radius:6px;font-size:.875rem;cursor:pointer}.team-select:hover{border-color:#60a5fa}.team-select:focus{outline:none;border-color:#60a5fa}.games-list{display:flex;flex-direction:column;gap:12px}.game-item{background:#1f2937;border:1px solid #374151;border-radius:6px;padding:16px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.game-info{display:flex;align-items:center;gap:16px}.game-id{font-weight:700;color:#e5e7eb}.game-status{padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:700}.status-pending{background:#6b7280;color:#fff}.status-running{background:#f59e0b;color:#fff}.status-completed{background:#10b981;color:#fff}.status-error{background:#ef4444;color:#fff}.game-score{display:flex;gap:12px;color:#e5e7eb;font-size:.875rem}.button.small{padding:8px 16px;font-size:.875rem}code{padding:2px 6px;background:#1f2937;border:1px solid #374151;border-radius:4px;font-size:.875rem;color:#60a5fa}.live-indicator{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;background:#1f2937;border:1px solid #ef4444;border-radius:4px;color:#ef4444;font-size:.875rem;font-weight:700;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}
