html,body{margin:0;padding:0;height:100%}body{background:#f5f5f5}body.login-body{background:#242424}#root{min-height:100vh}.app{min-height:100vh;background:#f5f5f5}.app.login-page-container{background:#242424;min-height:100vh}.navbar{background:#242424;color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.navbar h1{margin:0;font-size:1.5rem}.nav-links{display:flex;gap:1rem;align-items:center}.nav-links a{color:#fff;text-decoration:none;font-weight:600;padding:.6rem 1.25rem;border-radius:6px;background:#c91010;border:2px solid #a00d0d;transition:all .2s ease;font-size:.95rem}.nav-links a:hover{background:#a00d0d;border-color:#8a0b0b;transform:translateY(-1px);box-shadow:0 2px 8px #c9101066}.nav-button{color:#fff;text-decoration:none;font-weight:600;padding:.6rem 1.25rem;border-radius:6px;background:#c91010;border:2px solid #a00d0d;transition:all .2s ease;font-size:.95rem;cursor:pointer;font-family:inherit}.nav-button:hover{background:#a00d0d;border-color:#8a0b0b;transform:translateY(-1px);box-shadow:0 2px 8px #c9101066}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:white;padding:2rem;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:400px;width:90%}.modal-content h2{margin-top:0;color:#2c3e50;font-size:1.5rem;margin-bottom:1.5rem}.modal-content form{display:flex;flex-direction:column;gap:1rem}.modal-actions{display:flex;gap:1rem;margin-top:.5rem}.modal-actions button{flex:1}.cancel-button{padding:.75rem;background:#95a5a6;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.cancel-button:hover{background:#7f8c8d}.container{max-width:1200px;margin:2rem auto;padding:0 2rem}.login-page-container .container{margin:0;padding:0;max-width:100%}.auth-container{max-width:400px;margin:4rem auto;padding:2rem;background:white;border-radius:8px;box-shadow:0 4px 8px #0000001a;text-align:center}.auth-container h2{margin-top:0;color:#2c3e50}.auth-container p{color:#6c757d;margin-bottom:1.5rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-input{padding:1rem 1.25rem;border:2px solid #c8102e;border-radius:8px;font-size:1.1rem;transition:all .3s;background:white}.auth-input:focus{outline:none;border-color:#242424;box-shadow:0 0 0 3px #2424241a}.auth-button{padding:1rem 1.5rem;background:linear-gradient(135deg,#c8102e 0%,#a00d25 100%);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 4px 12px #c8102e4d}.auth-button:hover{background:linear-gradient(135deg,#242424 0%,#1a1a1a 100%);transform:translateY(-2px);box-shadow:0 6px 16px #24242466}.auth-button:active{transform:translateY(0)}.auth-error{color:#c8102e;margin-top:1.5rem;font-weight:600;font-size:1.05rem;padding:.75rem;background:#fee;border-radius:6px;border:1px solid #c8102e}.landing-page{max-width:900px;margin:3rem auto;padding:3rem;text-align:center;background:white;border-radius:12px;box-shadow:0 8px 32px #0000004d}.landing-page h1{font-size:2.8rem;color:#c8102e;margin-bottom:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}.landing-subtitle{color:#242424;font-size:1.2rem;margin-bottom:3rem;font-weight:500}.landing-quote{color:#000;font-size:1.3rem;margin-top:2.5rem;margin-bottom:1rem;font-weight:700;font-style:italic}.user-guide-link{display:inline-block;color:#c8102e;font-size:1rem;font-weight:600;text-decoration:underline;margin-top:1rem;transition:all .2s ease}.user-guide-link:hover{color:#242424;text-decoration:none;transform:translateY(-1px)}.role-selection{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2.5rem;margin-bottom:2.5rem}.role-button{background:linear-gradient(135deg,#ffffff 0%,#f8f9fa 100%);border:3px solid #c8102e;border-radius:16px;padding:2.5rem 2rem;cursor:pointer;transition:all .3s ease;text-align:center;position:relative;overflow:hidden}.role-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(200,16,46,.1),transparent);transition:left .5s}.role-button:hover:before{left:100%}.role-button:hover{border-color:#242424;transform:translateY(-6px);box-shadow:0 12px 24px #c8102e4d}.role-button-active{border-color:#242424;background:linear-gradient(135deg,#242424 0%,#1a1a1a 100%);box-shadow:0 8px 20px #24242466}.role-button-active .role-title,.role-button-active .role-description{color:#fff}.role-icon{font-size:3.5rem;margin-bottom:1.2rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.role-title{font-size:1.6rem;font-weight:700;color:#c8102e;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.role-description{font-size:1rem;color:#495057;line-height:1.5;font-weight:500}.login-form{max-width:450px;margin:2.5rem auto 0;display:flex;flex-direction:column;gap:1.25rem;animation:fadeIn .4s ease-in;padding:2rem;background:linear-gradient(135deg,#f8f9fa 0%,#ffffff 100%);border-radius:12px;border:2px solid #e9ecef}@keyframes fadeIn{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}.setup-form{display:flex;gap:1rem;margin:2rem 0}.setup-form input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.setup-form button{padding:.75rem 1.5rem;background:#242424;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500}.setup-form button:hover{background:#1a1a1a}.tournaments-list{margin-top:2rem}.tournament-card{background:white;padding:1rem;margin:.5rem 0;border-radius:4px;box-shadow:0 1px 3px #0000001a}.judge-controls{background:white;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.ring-selector{margin-bottom:2rem}.ring-buttons{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.ring-btn{padding:1rem 1.5rem;background:#ecf0f1;border:2px solid #bdc3c7;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.ring-btn:hover{background:#d5dbdb}.ring-btn.active{background:#242424;color:#fff;border-color:#1a1a1a}.event-selector{padding-top:2rem;border-top:2px solid #ecf0f1}.ring-number-header{text-align:center;margin-bottom:2rem;padding:1.5rem;background:#242424;border-radius:12px;box-shadow:0 4px 12px #0000004d;border:3px solid #c91010}.tournament-name-label{margin:0 0 .5rem;font-size:1.3rem;color:#ffffffd9;font-weight:600;text-transform:uppercase;letter-spacing:1px;text-align:center}.ring-number-header h2{margin:0;font-size:3rem;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:2px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.current-event{font-size:1.2rem;color:#2c3e50;font-weight:600;margin:1rem 0}.event-dropdown{width:100%;padding:1rem;font-size:1.1rem;border:2px solid #242424;border-radius:4px;margin-top:.5rem;cursor:pointer}.category-selector{margin-top:1.5rem}.category-selector label{display:block;margin-bottom:.5rem;color:#34495e;font-weight:600}.category-dropdown{width:100%;padding:.85rem;font-size:1rem;border:2px solid #242424;border-radius:4px;cursor:pointer;background:white;transition:border-color .2s}.category-dropdown:hover{border-color:#1a1a1a}.category-dropdown:focus{outline:none;border-color:#1a1a1a;box-shadow:0 0 0 3px #2424241a}.current-status{margin-bottom:1.5rem;padding:1rem;background:#ecf0f1;border-radius:6px;border:2px solid #242424;text-align:center}.color-belt-selector{margin-top:1.5rem;padding:1rem;background:#fff7ed;border-radius:4px;border:1px solid #f97316}.black-belt-selector{margin-top:1.5rem;padding:1rem;background:#f3f4f6;border-radius:4px;border:2px solid #1f2937}.black-belt-selector label{display:block;margin-bottom:1rem;color:#2c3e50;font-weight:600}.age-bracket-selector{margin-top:1.5rem;padding:1rem;background:#f3f4f6;border-radius:4px;border:2px solid #1f2937}.age-bracket-selector label{display:block;margin-bottom:1rem;color:#2c3e50;font-weight:600}.rank-selector-box{margin-top:1.5rem;padding:1rem;background:#f3f4f6;border-radius:4px;border:2px solid #1f2937}.rank-selector-box .category-selector{margin-top:0}.belt-ranks-section{margin-top:1rem;padding-top:1rem;border-top:1px solid #d1d5db}.belt-ranks-section label{display:block;margin-bottom:1rem;color:#2c3e50;font-weight:600}.special-abilities-box{padding:1rem;background:#f0f9ff;border-radius:6px;border:2px solid #3b82f6}.stacked-ring-box{padding:1rem;background:#f3f4f6;border-radius:6px;border:2px solid #9ca3af}.ring-status-box{padding:1rem;background:#fef3c7;border-radius:6px;border:2px solid #f59e0b;margin-bottom:.75rem}.division-type-box{padding:1rem;background:#f3f4f6;border-radius:6px;border:2px solid #6b7280;margin-bottom:.75rem}.ring-control-box{padding:1rem;background:#fef2f2;border-radius:6px;border:2px solid #dc2626;margin-bottom:.75rem}.ring-control-warning{color:#991b1b;font-size:.9rem;font-weight:600;margin-bottom:.75rem;padding:.5rem;background:#fee2e2;border-radius:4px;text-align:center}.ring-control-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.btn-start-ring{padding:.75rem 1.5rem;background:#1e40af;color:#fff;border:2px solid #1e3a8a;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-start-ring:hover:not(:disabled){background:#1e3a8a;border-color:#1e293b}.btn-start-ring:disabled{opacity:1;cursor:not-allowed;background:#1e40af;border-color:#1e3a8a}.btn-end-ring{padding:.75rem 1.5rem;background:#dc2626;color:#fff;border:2px solid #b91c1c;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-end-ring:hover:not(:disabled){background:#b91c1c;border-color:#991b1b}.btn-end-ring:disabled{opacity:.5;cursor:not-allowed}.confirm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:2000}.confirm-modal-content{background:white;padding:2rem;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:500px;width:90%}.confirm-modal-content h3{margin-top:0;color:#2c3e50;font-size:1.5rem;margin-bottom:1rem}.confirm-modal-content p{color:#6c757d;margin-bottom:1.5rem;line-height:1.6}.confirm-modal-actions{display:flex;gap:1rem}.confirm-modal-actions button{flex:1;padding:.75rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-confirm{background:#dc2626;color:#fff}.btn-confirm:hover{background:#b91c1c}.btn-confirm.btn-confirm-start{background:#22c55e}.btn-confirm.btn-confirm-start:hover{background:#16a34a}.status-toggle-btn.status-toggle-division.status-toggle-active{background:#ffffff;color:#1f2937;border-color:#000;box-shadow:0 2px 8px #ffffff4d}.status-toggle-btn.status-toggle-division.status-toggle-active:hover:not(:disabled){background:#f3f4f6;border-color:#000}.status-toggle-btn.status-toggle-division.status-toggle-recreational.status-toggle-active{background:#eab308;color:#1f2937;border-color:#000;box-shadow:0 2px 8px #eab3084d}.status-toggle-btn.status-toggle-division.status-toggle-recreational.status-toggle-active:hover:not(:disabled){background:#ca8a04;border-color:#000}.status-toggle-btn{padding:.75rem 1.5rem;background:#e5e7eb;color:#6b7280;border:2px solid #d1d5db;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.status-toggle-btn:hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.status-toggle-btn.status-toggle-active{background:#22c55e;color:#fff;border-color:#000;box-shadow:0 2px 8px #22c55e4d}.status-toggle-btn.status-toggle-active:hover:not(:disabled){background:#16a34a;border-color:#000}.status-toggle-btn.status-toggle-open:not(.status-toggle-active){background:#e5e7eb;color:#6b7280;border-color:#d1d5db}.status-toggle-btn.status-toggle-open:not(.status-toggle-active):hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn.status-toggle-open.status-toggle-active{background:#22c55e;color:#fff;border-color:#000;box-shadow:0 2px 8px #22c55e4d}.status-toggle-btn.status-toggle-open.status-toggle-active:hover:not(:disabled){background:#16a34a;border-color:#000}.status-toggle-btn.status-toggle-judges:not(.status-toggle-active){background:#e5e7eb;color:#6b7280;border-color:#d1d5db}.status-toggle-btn.status-toggle-judges:not(.status-toggle-active):hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn.status-toggle-judges.status-toggle-active{background:#ea580c;color:#fff;border-color:#000;box-shadow:0 2px 8px #ea580c4d}.status-toggle-btn.status-toggle-judges.status-toggle-active:hover:not(:disabled){background:#c2410c;border-color:#000}.status-toggle-btn.status-toggle-rttl:not(.status-toggle-active){background:#e5e7eb;color:#6b7280;border-color:#d1d5db}.status-toggle-btn.status-toggle-rttl:not(.status-toggle-active):hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn.status-toggle-rttl.status-toggle-active{background:#991b1b;color:#fff;border-color:#000;box-shadow:0 2px 8px #991b1b4d}.status-toggle-btn.status-toggle-rttl.status-toggle-active:hover:not(:disabled){background:#7f1d1d;border-color:#000}.status-toggle-btn.status-toggle-stacked:not(.status-toggle-active){background:#e5e7eb;color:#6b7280;border-color:#d1d5db}.status-toggle-btn.status-toggle-stacked:not(.status-toggle-active):hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn.status-toggle-stacked.status-toggle-active{background:#3b82f6;color:#fff;border-color:#000;box-shadow:0 2px 8px #3b82f64d}.status-toggle-btn.status-toggle-stacked.status-toggle-active:hover:not(:disabled){background:#2563eb;border-color:#000}.status-toggle-btn.status-toggle-physical:not(.status-toggle-active){background:#e5e7eb;color:#6b7280;border-color:#d1d5db}.status-toggle-btn.status-toggle-physical:not(.status-toggle-active):hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn.status-toggle-physical.status-toggle-active{background:#10b981;color:#fff;border-color:#000;box-shadow:0 2px 8px #10b9814d}.status-toggle-btn.status-toggle-physical.status-toggle-active:hover:not(:disabled){background:#059669;border-color:#000}.status-toggle-btn.status-toggle-cognitive:not(.status-toggle-active){background:#e5e7eb;color:#6b7280;border-color:#d1d5db}.status-toggle-btn.status-toggle-cognitive:not(.status-toggle-active):hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn.status-toggle-cognitive.status-toggle-active{background:#f59e0b;color:#fff;border-color:#000;box-shadow:0 2px 8px #f59e0b4d}.status-toggle-btn.status-toggle-cognitive.status-toggle-active:hover:not(:disabled){background:#d97706;border-color:#000}.status-toggle-btn.status-toggle-autistic:not(.status-toggle-active){background:#e5e7eb;color:#6b7280;border-color:#d1d5db}.status-toggle-btn.status-toggle-autistic:not(.status-toggle-active):hover:not(:disabled){background:#d1d5db;border-color:#9ca3af}.status-toggle-btn.status-toggle-autistic.status-toggle-active{background:#8b5cf6;color:#fff;border-color:#000;box-shadow:0 2px 8px #8b5cf64d}.status-toggle-btn.status-toggle-autistic.status-toggle-active:hover:not(:disabled){background:#7c3aed;border-color:#000}.belt-toggle-btn{padding:.75rem 1rem;background:#f3f4f6;color:#4b5563;border:2px solid #6b7280;border-radius:6px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.belt-toggle-btn:hover:not(:disabled){background:#e5e7eb;border-color:#4b5563}.belt-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.belt-toggle-btn.belt-toggle-active{background:#1f2937;color:#d1d5db;border-color:#111827;box-shadow:0 2px 6px #1f29374d}.belt-toggle-btn.belt-toggle-active:hover:not(:disabled){background:#111827;border-color:#000}.belt-toggle-btn.belt-toggle-all{background:#dbeafe;color:#1e40af;border:2px solid #3b82f6;font-weight:600;grid-column:1 / -1}.belt-toggle-btn.belt-toggle-all:hover:not(:disabled){background:#bfdbfe;border-color:#2563eb}.belt-toggle-btn.belt-toggle-all.belt-toggle-active{background:#3b82f6;color:#fff;border-color:#2563eb;box-shadow:0 2px 8px #3b82f64d}.belt-toggle-btn.belt-toggle-all.belt-toggle-active:hover:not(:disabled){background:#2563eb;border-color:#1d4ed8}.belt-toggle-btn.belt-white{background:#ffffff;color:#9ca3af;border:2px solid #d1d5db;opacity:.6}.belt-toggle-btn.belt-white:hover:not(:disabled){opacity:.8;border-color:#9ca3af}.belt-toggle-btn.belt-white.belt-toggle-active{background:#e5e7eb;color:#111827;border-color:#4b5563;box-shadow:0 2px 6px #6b72804d;opacity:1}.belt-toggle-btn.belt-orange{background:#ffe0b2;color:#e65100;border:2px solid #ffcc80;opacity:.6}.belt-toggle-btn.belt-orange:hover:not(:disabled){opacity:.8;background:#ffcc80}.belt-toggle-btn.belt-orange.belt-toggle-active{background:#ff9800;color:#fff;border-color:#e65100;box-shadow:0 2px 6px #e6510066;opacity:1}.belt-toggle-btn.belt-yellow{background:#fff9c4;color:#f57f17;border:2px solid #fff59d;opacity:.6}.belt-toggle-btn.belt-yellow:hover:not(:disabled){opacity:.8;background:#fff59d}.belt-toggle-btn.belt-yellow.belt-toggle-active{background:#ffd600;color:#1f2937;border-color:#ffa000;box-shadow:0 2px 6px #ffa00066;opacity:1}.belt-toggle-btn.belt-camo{background:linear-gradient(135deg,#c5d3b8 0%,#d5e3c8 25%,#e5f3d8 50%,#d5e3c8 75%,#c5d3b8 100%);color:#4a5f3a;border:2px solid #b5c3a8;opacity:.6}.belt-toggle-btn.belt-camo:hover:not(:disabled){opacity:.8;background:linear-gradient(135deg,#b5c3a8 0%,#c5d3b8 25%,#d5e3c8 50%,#c5d3b8 75%,#b5c3a8 100%)}.belt-toggle-btn.belt-camo.belt-toggle-active{background:linear-gradient(135deg,#4a5f3a 0%,#6b7c5a 25%,#8b9a7a 50%,#6b7c5a 75%,#4a5f3a 100%);color:#fff;border-color:#2d3f1f;box-shadow:0 2px 6px #2d3f1f66;opacity:1}.belt-toggle-btn.belt-green{background:#c8e6c9;color:#2e7d32;border:2px solid #a5d6a7;opacity:.6}.belt-toggle-btn.belt-green:hover:not(:disabled){opacity:.8;background:#a5d6a7}.belt-toggle-btn.belt-green.belt-toggle-active{background:#4caf50;color:#fff;border-color:#2e7d32;box-shadow:0 2px 6px #2e7d3266;opacity:1}.belt-toggle-btn.belt-purple{background:#e1bee7;color:#6a1b9a;border:2px solid #ce93d8;opacity:.6}.belt-toggle-btn.belt-purple:hover:not(:disabled){opacity:.8;background:#ce93d8}.belt-toggle-btn.belt-purple.belt-toggle-active{background:#9c27b0;color:#fff;border-color:#6a1b9a;box-shadow:0 2px 6px #6a1b9a66;opacity:1}.belt-toggle-btn.belt-blue{background:#bbdefb;color:#1565c0;border:2px solid #90caf9;opacity:.6}.belt-toggle-btn.belt-blue:hover:not(:disabled){opacity:.8;background:#90caf9}.belt-toggle-btn.belt-blue.belt-toggle-active{background:#2196f3;color:#fff;border-color:#1565c0;box-shadow:0 2px 6px #1565c066;opacity:1}.belt-toggle-btn.belt-brown{background:#d7ccc8;color:#4e342e;border:2px solid #bcaaa4;opacity:.6}.belt-toggle-btn.belt-brown:hover:not(:disabled){opacity:.8;background:#bcaaa4}.belt-toggle-btn.belt-brown.belt-toggle-active{background:#795548;color:#fff;border-color:#4e342e;box-shadow:0 2px 6px #4e342e66;opacity:1}.belt-toggle-btn.belt-red{background:#ffcdd2;color:#c62828;border:2px solid #ef9a9a;opacity:.6}.belt-toggle-btn.belt-red:hover:not(:disabled){opacity:.8;background:#ef9a9a}.belt-toggle-btn.belt-red.belt-toggle-active{background:#f44336;color:#fff;border-color:#c62828;box-shadow:0 2px 6px #c6282866;opacity:1}.belt-toggle-btn.belt-red-black{background:linear-gradient(135deg,#ffcdd2 0%,#ffcdd2 50%,#e5e7eb 50%,#e5e7eb 100%);color:#c62828;border:2px solid #ef9a9a;opacity:.6}.belt-toggle-btn.belt-red-black:hover:not(:disabled){opacity:.8;background:linear-gradient(135deg,#ef9a9a 0%,#ef9a9a 50%,#d1d5db 50%,#d1d5db 100%)}.belt-toggle-btn.belt-red-black.belt-toggle-active{background:linear-gradient(135deg,#f44336 0%,#f44336 50%,#1f2937 50%,#1f2937 100%);color:#fff;border-color:#c62828;box-shadow:0 2px 6px #c6282866;opacity:1}.color-belt-selector label{display:block;margin-bottom:.75rem;color:#2c3e50;font-weight:600}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:white;border-radius:4px;cursor:pointer;transition:background .2s;font-weight:400}.checkbox-label:hover{background:#fef3c7}.checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.checkbox-label span{font-size:.95rem;color:#2c3e50}.checkbox-label-all{background:#dbeafe;border:2px solid #3b82f6;font-weight:600;grid-column:1 / -1}.checkbox-label-all:hover{background:#bfdbfe}.checkbox-label-all span{font-weight:600;color:#1e40af}.rings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-top:2rem}.ring-card{background:white;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center;transition:all .3s ease;display:flex;flex-direction:column}.ring-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #00000026}.ring-card-open{background:#f0fdf4;border:2px solid #22c55e;box-shadow:0 4px 8px #22c55e33}.ring-card-team{background:#fff7ed;border:2px solid #f97316;box-shadow:0 4px 8px #f9731633}.ring-card-judges-needed{background:#fef2f2;border:2px solid #dc2626;box-shadow:0 4px 8px #dc26264d;animation:flash-red 1.5s ease-in-out infinite}.ring-card-rttl-needed{background:#fef2f2;border:2px solid #991b1b;box-shadow:0 4px 8px #991b1b66;animation:flash-dark-red 1.5s ease-in-out infinite}@keyframes flash-dark-red{0%,to{background:#fef2f2;border-color:#991b1b;box-shadow:0 4px 8px #991b1b66}50%{background:#fee2e2;border-color:#7f1d1d;box-shadow:0 6px 12px #7f1d1d99}}.ring-card-stacked{background:#eff6ff;border:2px solid #3b82f6;box-shadow:0 4px 12px #3b82f666}@keyframes flash-red{0%,to{background:#fef2f2;border-color:#dc2626;box-shadow:0 4px 8px #dc26264d}50%{background:#fee2e2;border-color:#ef4444;box-shadow:0 6px 12px #ef444480}}.ring-card h3{margin:0 0 1rem;color:#2c3e50;font-size:1.5rem}.ring-badges{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.division-type-badge{background:#ffffff;color:#1f2937;padding:.4rem .6rem;border-radius:4px;font-size:.75rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.3px;border:2px solid #000;word-wrap:break-word;overflow-wrap:break-word}.division-type-badge.division-type-recreational{background:#eab308;color:#1f2937}.ring-status-footer{margin-top:auto;padding-top:.75rem;border-top:3px solid #6b7280}.ring-status-badge{padding:.5rem .6rem;border-radius:4px;font-size:.75rem;font-weight:700;text-align:center;letter-spacing:.3px;border:2px solid #000;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.ring-status-ready{background:#d1d5db;color:#1f2937}.ring-status-in-progress{background:#1e40af;color:#fff}.ring-status-ended{background:#6b7280;color:#fff}.ring-status-reset{background:#f59e0b;color:#fff;transition:all .2s}.ring-status-reset:hover{background:#d97706;transform:translateY(-1px);box-shadow:0 4px 8px #f59e0b66}.stacked-ring-badge{background:#3b82f6;color:#fff;padding:.4rem .6rem;border-radius:4px;font-size:.75rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.3px;border:2px solid #000;word-wrap:break-word;overflow-wrap:break-word}.judges-needed-badge{background:#dc2626;color:#fff;padding:.75rem 1.5rem;border-radius:6px;font-size:1.1rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;justify-content:center;border:2px solid #000;width:100%;box-sizing:border-box}.rttl-needed-badge{background:#991b1b;color:#fff;padding:.75rem 1.5rem;border-radius:6px;font-size:1.1rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;justify-content:center;border:2px solid #000;width:100%;box-sizing:border-box}.open-badge{background:#22c55e;color:#fff;padding:.75rem 1.5rem;border-radius:6px;font-size:1.1rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:1px;border:2px solid #000;width:100%;box-sizing:border-box}.special-abilities-badge{color:#fff;padding:.4rem .6rem;border-radius:4px;font-size:.75rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.3px;border:2px solid #000;word-wrap:break-word;overflow-wrap:break-word}.special-abilities-physical{background:#10b981}.special-abilities-cognitive{background:#f59e0b}.special-abilities-autistic{background:#8b5cf6}.ring-info{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:2rem;margin-bottom:.5rem}.event-display{color:#fff;padding:1rem;border-radius:4px;font-size:1.1rem;font-weight:600;border:1px solid #000}.event-open{background:#22c55e;animation:pulse-open 2s ease-in-out infinite}.event-judges-needed{background:#dc2626;animation:pulse-open 2s ease-in-out infinite}.event-forms{background:#3b82f6}.event-weapons{background:#a78bfa}.event-combat-sparring{background:#ef4444}.event-traditional-sparring{background:#f59e0b}.event-creative-forms{background:#06b6d4}.event-creative-weapons{background:#0891b2}.event-xma-forms{background:#ec4899}.event-xma-weapons{background:#6d28d9}.event-team-combat{background:#f97316}.event-team-traditional{background:#ea580c}@keyframes pulse-open{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.02)}}.category-info{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;border-radius:4px;font-size:1.1rem;color:#2c3e50;border:1px solid #000}.category-male{background:#dbeafe}.category-female{background:#fce7f3}.category-item{font-weight:700}.category-divider{color:#95a5a6;font-weight:300}.rank-info{padding:1rem;border-radius:4px;font-size:1.1rem;font-weight:700;text-align:center;border:1px solid #000}.rank-color-belts{background:#fff7ed;color:#000}.rank-black-belts{background:#1f2937;color:#d1d5db}.color-belts-display{padding:1rem;background:#fef3c7;border-radius:4px;font-size:1.1rem;color:#000;text-align:center;border:1px solid #000;font-weight:700;line-height:1.4}.black-belts-display{padding:1rem;background:#e5e7eb;border-radius:4px;font-size:1.1rem;color:#1f2937;text-align:center;border:1px solid #000;font-weight:700;line-height:1.4}.division-info{padding:1rem;background:#ffffff;border-radius:4px;font-size:1.1rem;font-weight:700;color:#000;text-align:center;border:1px solid #000}.tournament-select{background:white;padding:1rem;border-radius:4px;margin-bottom:2rem;display:flex;align-items:center;gap:.5rem}.tournament-select select{padding:.5rem;font-size:1rem;margin-left:.5rem}.judges-needed-alert{background:#fff7ed;border:2px solid #ea580c;border-radius:6px;padding:.75rem 1rem;margin-top:1rem;margin-bottom:1rem;box-shadow:0 2px 4px #ea580c4d;animation:flash-orange 2s ease-in-out infinite;display:flex;align-items:center;gap:1rem}.judges-needed-alert h4{margin:0;color:#000;font-size:1rem;font-weight:600;white-space:nowrap}@keyframes flash-orange{0%,to{background:#fff7ed}50%{background:#fed7aa}}.open-rings-alert{background:#f0fdf4;border:2px solid #22c55e;border-radius:6px;padding:.75rem 1rem;margin-top:1rem;margin-bottom:1rem;box-shadow:0 2px 4px #22c55e33;display:flex;align-items:center;gap:1rem}.open-rings-alert h4{margin:0;color:#000;font-size:1rem;font-weight:600;white-space:nowrap}.rttl-needed-alert{background:#fef2f2;border:2px solid #dc2626;border-radius:6px;padding:.75rem 1rem;margin-top:1rem;margin-bottom:1rem;box-shadow:0 2px 4px #dc26264d;animation:flash-alert 2s ease-in-out infinite;display:flex;align-items:center;gap:1rem}.rttl-needed-alert h4{margin:0;color:#000;font-size:1rem;font-weight:600;white-space:nowrap}.alert-list{display:flex;flex-wrap:wrap;gap:.5rem;flex:1}.alert-item{padding:.35rem .75rem;border-radius:4px;font-weight:600;font-size:.9rem;white-space:nowrap}.alert-item-urgent{background:white;color:#dc2626;border:2px solid #000}.alert-item-open{background:white;color:#22c55e;border:2px solid #000}.alert-item-clickable{cursor:pointer;transition:all .2s ease}.alert-item-clickable:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}@keyframes flash-alert{0%,to{background:#fef2f2;border-color:#dc2626}50%{background:#fca5a5;border-color:#991b1b}}.tournament-setup-section,.selection-section{background:white;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;overflow:hidden}.setup-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;cursor:pointer;background:#f8f9fa;border-bottom:1px solid #e9ecef;transition:background .2s}.setup-header:hover{background:#e9ecef}.setup-header-content{display:flex;flex-direction:column;gap:.25rem}.setup-header h3{margin:0;color:#2c3e50;font-size:1.25rem}.setup-hint{font-size:.75rem;color:#6c757d;font-style:italic}.toggle-icon{font-size:1rem;color:#6c757d;transition:transform .2s}.setup-content{padding:1.5rem}.tournament-management{margin-bottom:1.5rem}.tournament-management h4{margin-top:0;margin-bottom:1rem;color:#2c3e50;font-size:1.1rem}.tournaments-section h4{color:#2c3e50;margin-top:0;margin-bottom:1rem;font-size:1.1rem}.tournament-card{display:flex;justify-content:space-between;align-items:center;background:#f8f9fa;padding:1rem 1.5rem;margin:.5rem 0;border-radius:4px;border:1px solid #e9ecef;transition:box-shadow .2s}.tournament-card:hover{box-shadow:0 2px 6px #0000001a}.tournament-info{flex:1}.tournament-info>div:first-child{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem;font-size:1.1rem}.tournament-info strong{color:#2c3e50}.tournament-meta{color:#7f8c8d;font-size:.9rem}.tournament-actions{display:flex;gap:.5rem}.status-badge{padding:.35rem .85rem;border-radius:16px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:inline-block}.status-not-started{background:#95a5a6;color:#fff}.status-active{background:#27ae60;color:#fff;animation:pulse-active 2s ease-in-out infinite}.status-ended{background:#e74c3c;color:#fff}@keyframes pulse-active{0%,to{opacity:1}50%{opacity:.85}}.btn-start{padding:.6rem 1.75rem;background:#242424;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #2424244d}.btn-start:hover{background:#1a1a1a;transform:translateY(-1px);box-shadow:0 4px 8px #24242466}.btn-start:active{transform:translateY(0);box-shadow:0 1px 2px #2424244d}.btn-end{padding:.6rem 1.75rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #e74c3c4d}.btn-end:hover{background:#c0392b;transform:translateY(-1px);box-shadow:0 4px 8px #e74c3c66}.btn-end:active{transform:translateY(0);box-shadow:0 1px 2px #e74c3c4d}.btn-edit-small,.btn-save-small,.btn-cancel-small{padding:.25rem .75rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s}.btn-edit-small{background:#242424;color:#fff}.btn-edit-small:hover{background:#1a1a1a}.btn-save-small{background:#27ae60;color:#fff}.btn-save-small:hover{background:#229954}.btn-cancel-small{background:#95a5a6;color:#fff}.btn-cancel-small:hover{background:#7f8c8d}.btn-delete{padding:.6rem 1.75rem;background:#95a5a6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #95a5a64d}.btn-delete:hover{background:#7f8c8d;transform:translateY(-1px);box-shadow:0 4px 8px #95a5a666}.btn-delete:active{transform:translateY(0);box-shadow:0 1px 2px #e74c3c4d}.btn-delete{padding:.6rem 1.75rem;background:#8b0000;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #8b00004d}.btn-report{padding:.6rem 1.75rem;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #3b82f64d}.btn-report:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f666}.btn-report:active{transform:translateY(0);box-shadow:0 1px 2px #3b82f64d}.btn-delete:hover{background:#a00000;transform:translateY(-1px);box-shadow:0 4px 8px #8b000066}.btn-delete:active{transform:translateY(0);box-shadow:0 1px 2px #8b00004d}.no-tournaments-message{background:white;padding:3rem 2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center}.no-tournaments-message p{font-size:1.1rem;color:#7f8c8d;margin:0}.error-message{background:#e74c3c;color:#fff;padding:1rem;border-radius:4px;margin-bottom:1rem;font-weight:500}.tournament-ended-notice{color:#e74c3c;font-weight:600;margin-top:.5rem}.event-dropdown:disabled,.category-dropdown:disabled{background:#ecf0f1;cursor:not-allowed;opacity:.6}@media (max-width: 768px){.container{padding:0 1rem;margin:1rem auto}.navbar{padding:1rem;flex-direction:column;gap:1rem}.navbar h1{font-size:1.25rem}.nav-links{gap:1rem}.setup-form{flex-direction:column}.setup-form input,.setup-form button{width:100%}.tournament-card{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem}.tournament-info{width:100%}.tournament-actions{width:100%;justify-content:stretch}.tournament-actions button{flex:1}.rings-grid{grid-template-columns:1fr;gap:1rem}.ring-buttons{justify-content:center}.ring-btn{flex:1 1 calc(33.333% - .5rem);min-width:80px}.tournament-select{padding:.75rem}.tournament-select select{width:100%;margin-left:0;margin-top:.5rem}.tournament-management,.tournaments-section{padding:1rem}}@media (max-width: 480px){.navbar h1{font-size:1.1rem}.nav-links{flex-direction:column;gap:.5rem;text-align:center}.status-badge{font-size:.7rem;padding:.3rem .7rem}.btn-start,.btn-end,.btn-report,.btn-delete{padding:.5rem 1rem;font-size:.9rem}.ring-btn{flex:1 1 calc(50% - .5rem)}}.judge-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #c8102e}.judge-management-header h2{margin:0;color:#2c3e50}.btn-return{background:#c91010;color:#fff;border:2px solid #a00d0d;padding:.6rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-return:hover{background:#a00d0d;transform:translateY(-1px)}.judge-management-actions{margin-bottom:2rem}.btn-add-judge{background:#10b981;color:#fff;border:2px solid #059669;padding:.75rem 1.5rem;border-radius:6px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.btn-add-judge:hover{background:#059669;transform:translateY(-1px)}.judge-form-container{background:white;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.judge-form-container h3{margin-top:0;margin-bottom:1.5rem;color:#2c3e50}.judge-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.form-row.checkboxes{display:flex;flex-wrap:wrap;gap:1.5rem}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field label{font-weight:600;color:#2c3e50}.form-field input,.form-field select{padding:.6rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#2c3e50;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-actions{display:flex;gap:1rem;margin-top:1rem}.btn-submit{background:#3b82f6;color:#fff;border:2px solid #2563eb;padding:.75rem 1.5rem;border-radius:6px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.btn-submit:hover{background:#2563eb;transform:translateY(-1px)}.btn-cancel{background:#6b7280;color:#fff;border:2px solid #4b5563;padding:.75rem 1.5rem;border-radius:6px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.btn-cancel:hover{background:#4b5563;transform:translateY(-1px)}.judges-table-container{background:white;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.judges-table{width:100%;border-collapse:collapse;min-width:1000px}.judges-table th{background:#242424;color:#fff;padding:1rem;text-align:left;font-weight:600;border:1px solid #1f2937}.judges-table td{padding:.75rem 1rem;border:1px solid #e5e7eb}.judges-table tbody tr:nth-child(2n){background:#f9fafb}.judges-table tbody tr:hover{background:#f3f4f6}.btn-edit-judge,.btn-delete-judge{padding:.4rem .8rem;border-radius:4px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;margin-right:.5rem}.btn-edit-judge{background:#3b82f6;color:#fff;border:1px solid #2563eb}.btn-edit-judge:hover{background:#2563eb}.btn-delete-judge{background:#ef4444;color:#fff;border:1px solid #dc2626}.btn-delete-judge:hover{background:#dc2626}.no-judges-message{text-align:center;padding:2rem;color:#6b7280;font-size:1.1rem}.judge-management-header{flex-direction:column;align-items:flex-start;gap:1rem}.btn-return{width:100%}.judge-form-container{padding:1rem}.form-row{grid-template-columns:1fr}.form-row.checkboxes{flex-direction:column;gap:1rem}.form-actions{flex-direction:column}.form-actions button{width:100%}.judges-table-container{padding:.5rem;overflow-x:auto}.judges-table{font-size:.875rem}.judges-table th,.judges-table td{padding:.5rem;white-space:nowrap}.btn-edit-judge,.btn-delete-judge{display:block;width:100%;margin-bottom:.25rem;margin-right:0}.no-judges-message{padding:1rem;font-size:1rem}} .tournament-chat{background:white;border:3px solid #3b82f6;border-radius:12px;box-shadow:0 4px 12px #3b82f633;display:flex;flex-direction:column;margin-top:2rem;margin-bottom:2rem}.chat-header{padding:.75rem 1rem;border-bottom:2px solid #3b82f6;display:flex;justify-content:space-between;align-items:center;background:#dbeafe;flex-shrink:0}.chat-header h3{margin:0;color:#1e40af;font-size:1.1rem;font-weight:700}.chat-name-display{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#1e40af}.chat-name-display strong{color:#1e40af}.btn-edit-name{padding:.25rem .75rem;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-edit-name:hover{background:#2563eb}.chat-name-edit{display:flex;align-items:center;gap:.5rem}.chat-name-edit input{padding:.4rem .6rem;border:2px solid #3b82f6;border-radius:4px;font-size:.9rem}.btn-save-name,.btn-cancel-name{padding:.4rem .75rem;border:none;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-save-name{background:#22c55e;color:#fff}.btn-save-name:hover{background:#16a34a}.btn-cancel-name{background:#6b7280;color:#fff}.btn-cancel-name:hover{background:#4b5563}.chat-messages{height:180px;max-height:180px;overflow-y:scroll;overflow-x:hidden;padding:0;display:flex;flex-direction:column;background:#f8fafc}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#e2e8f0}.chat-messages::-webkit-scrollbar-thumb{background:#3b82f6;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#2563eb}.chat-empty{text-align:center;color:#9ca3af;padding:2rem;font-style:italic}.chat-message{padding:.35rem .75rem;flex-shrink:0;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.chat-message:nth-child(odd){background:#ffffff}.chat-message:nth-child(2n){background:#f1f5f9}.chat-message-content{flex:1;display:flex;gap:.5rem;align-items:baseline;min-width:0}.chat-message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.chat-sender{font-weight:700;color:#1e40af;font-size:.9rem;flex-shrink:0}.chat-time{font-size:.75rem;color:#9ca3af;flex-shrink:0;align-self:flex-start;margin-top:.1rem}.chat-message-text{color:#4b5563;line-height:1.4;word-wrap:break-word;white-space:pre-wrap;font-size:.9rem;flex:1;min-width:0}.chat-input-form{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:2px solid #3b82f6;background:#dbeafe;flex-shrink:0}.chat-input{flex:1;padding:.5rem .75rem;border:2px solid #3b82f6;border-radius:6px;font-size:.95rem;transition:border-color .2s;background:white}.chat-input:focus{outline:none;border-color:#1e40af;box-shadow:0 0 0 3px #3b82f61a}.chat-send-btn{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s}.chat-send-btn:hover:not(:disabled){background:#2563eb}.chat-send-btn:disabled{background:#9ca3af;cursor:not-allowed}@media (max-width: 768px){.tournament-chat{height:300px;max-height:300px}.chat-header{flex-direction:column;align-items:flex-start;gap:.75rem}.chat-name-display,.chat-name-edit{width:100%}.chat-name-edit input{flex:1}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h2{color:#2c3e50;margin-top:0}label{font-weight:600;color:#34495e}
