@import "https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Rajdhani:wght@500;600;700&display=swap";:root{--p1-color:#f3c300;--p2-color:#8a8d8f;--bg-color:#1a1a1a;--text-light:#fff}*{box-sizing:border-box}body,html{width:100%;height:100%;margin:0;padding:0;font-family:Rajdhani,Helvetica Neue,Arial,sans-serif}.score,.player-clock,.in-game-clock,.countdown,.vs-badge,.overlay-title,.buzzer-button,.buzzer-round-score{letter-spacing:2px;font-family:Bebas Neue,sans-serif}.hidden{display:none!important}.no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-khtml-user-select:none}.no-select input,.no-select select,.no-select textarea{-webkit-user-select:auto;user-select:auto;-khtml-user-select:auto}.login-overlay-bg{-webkit-backdrop-filter:blur(10px);z-index:9999;background:#0f0f0ff2;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.login-card-logo{cursor:pointer;width:120px;margin-bottom:30px}.login-card-title{color:#fff;text-transform:uppercase;text-shadow:0 2px 10px #000c;margin-bottom:20px;font-family:Bebas Neue,sans-serif;font-size:2rem}.login-card-input{color:#fff;text-align:center;background:#111;border:2px solid #444;border-radius:8px;width:80%;max-width:300px;margin-bottom:15px;padding:15px;font-size:1.5rem;box-shadow:0 5px 15px #00000080}.login-card-btn{color:#fff;cursor:pointer;text-transform:uppercase;background:#4caf50;border:none;border-radius:8px;width:80%;max-width:300px;padding:15px 30px;font-size:1.2rem;font-weight:700;box-shadow:0 5px 15px #00000080}.login-card-error{color:#f44;background:#00000080;border-radius:4px;margin-top:15px;padding:5px 15px;font-size:1.1rem;font-weight:700;display:none}.floating-action-btn{color:#fff;cursor:pointer;z-index:9000;text-transform:uppercase;background:#f44;border:none;border-radius:6px;padding:8px 12px;font-family:Rajdhani,sans-serif;font-size:.85rem;font-weight:700;transition:transform .1s,opacity .2s;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 6px #0000004d}.floating-action-btn:hover{opacity:.8}.floating-action-btn:active{transform:scale(.95)}input,select,textarea{color:#fff;box-sizing:border-box;background:#000;border:1px solid #444;border-radius:8px;width:100%;margin-bottom:15px;padding:12px;font-family:inherit;font-size:1rem}input:focus,select:focus,textarea:focus{border-color:#4caf50;outline:none}.pwd-input-group{margin-bottom:15px}.pwd-input-group label{color:var(--p1-color);margin-bottom:5px;font-weight:700;display:block}.pwd-input-wrapper{display:flex;position:relative}.pwd-input-wrapper input{flex-grow:1;margin-bottom:0;padding-right:45px}.toggle-pwd-btn{cursor:pointer;filter:grayscale();opacity:.7;font-size:1.2rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.toggle-pwd-btn:hover{opacity:1}.btn-primary{color:#fff!important;background:#4caf50!important}.btn-secondary{color:#fff!important;background:#8a8d8f!important}.btn-danger{color:#fff!important;background:#f44!important}.btn-warning{background:var(--p1-color)!important;color:#000!important}.btn-ai{color:#fff!important;background:#8e44ad!important}.btn-export{color:#fff!important;background:#2c3e50!important;border:1px solid #34495e!important}.button-group{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.modal-overlay{z-index:10000;background:#000000f2;justify-content:center;align-items:center;width:100%;height:100%;padding:20px;display:flex;position:fixed;top:0;left:0}.modal-form,.modal-content{background:#1e1e1e;border:1px solid #333;border-radius:12px;flex-direction:column;width:100%;max-width:650px;max-height:90vh;padding:30px;display:flex;overflow-y:auto;box-shadow:0 10px 40px #000c}.modal-header{border-bottom:1px solid #444;margin-bottom:20px;padding-bottom:15px}.modal-header h2{color:#fff;text-transform:uppercase;text-align:center;margin:0;font-size:1.5rem}.modal-body{flex-grow:1;padding:0;overflow-y:auto}.modal-footer{border-top:1px solid #444;justify-content:space-between;gap:15px;margin-top:20px;padding-top:20px;display:flex}.diff-badge{color:#fff;vertical-align:middle;background:#8e44ad;border:1px solid #bc70dd;border-radius:6px;margin-right:5px;padding:3px 8px;font-size:.8rem;font-weight:700}.topic-badge{color:#fff;vertical-align:middle;text-transform:uppercase;background:#34495e;border:1px solid #455a64;border-radius:6px;margin-right:10px;padding:3px 8px;font-size:.8rem;font-weight:700}.loading-spinner{border:4px solid #333;border-top:4px solid var(--p1-color);border-radius:50%;width:40px;height:40px;margin:20px auto;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.question-item{background:#252525;border:1px solid #333;border-radius:8px;margin-bottom:15px;padding:20px;transition:border-color .3s;position:relative}.question-item:hover{border-color:var(--p1-color)}.question-item .q-text{margin-bottom:10px;font-size:1.2rem;font-weight:700;display:block}.question-item .ans-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.question-item .ans-item{background:#111;border:1px solid #222;border-radius:4px;padding:8px;font-size:.9rem}.question-item .ans-item.correct{color:#4caf50;background:#4caf501a;border-color:#4caf50}.q-actions{gap:8px;display:flex;position:absolute;top:15px;right:15px}.q-actions button{cursor:pointer;border:none;border-radius:4px;padding:5px 10px;font-size:.7rem}.answer-row{align-items:center;gap:15px;margin-bottom:12px;display:flex}.answer-row input[type=text]{flex-grow:1;margin-bottom:0}.answer-row input[type=radio]{cursor:pointer;accent-color:#4caf50;width:25px;height:25px}.ai-preview-item{background:#252525;border:1px solid #444;border-radius:8px;align-items:flex-start;gap:15px;margin-bottom:10px;padding:15px;display:flex}.ai-preview-item input[type=checkbox]{cursor:pointer;width:20px;height:20px;accent-color:var(--p1-color);margin-top:5px}.topic-list-item{background:#222;border:1px solid #444;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:10px 15px;display:flex}.topic-list-item button{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:4px;padding:5px 10px;font-size:.8rem}.logo-container{z-index:100;position:absolute;top:20px;right:20px}.logo-container img{opacity:.85;filter:drop-shadow(0 4px 6px #00000080);width:100px;height:auto}body.admin-mode .logo-container{top:20px;right:20px}body.admin-mode .logo-container img{width:80px}body.display-mobile .logo-container{top:10px;right:10px}body.display-mobile .logo-container img,body.buzzer-mode .logo-container img{width:60px}@media (orientation:landscape){body.display-mobile .logo-container img{width:70px}}.fullscreen-overlay{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:50;width:100%;height:100%;color:var(--text-light);text-align:center;background-color:#050505e6;flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;left:0}.buzzer-flash{z-index:900;animation:.3s infinite alternate buzzerBlink}@keyframes buzzerBlink{0%{opacity:.8;transform:scale(.98)}to{opacity:1;transform:scale(1.02)}}.overlay-title{letter-spacing:4px;text-shadow:0 5px 20px #000c;margin-bottom:10px;font-size:5rem}.overlay-subtitle{color:#aaa;margin-bottom:40px;font-size:2rem}.countdown{text-shadow:0 0 40px #f3c30066;color:var(--p1-color);font-size:12rem}.winner-title{color:#fff;letter-spacing:8px;text-transform:uppercase;margin-bottom:20px;font-size:4rem;animation:1s ease-out fadeInDown}.winner-name{text-shadow:0 10px 40px #fff3;font-size:10rem;animation:.8s cubic-bezier(.175,.885,.32,1.275) forwards popIn,2.5s .8s infinite pulseWinner}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes pulseWinner{0%{transform:scale(1)}50%{text-shadow:0 15px 50px #fff6;transform:scale(1.05)}to{transform:scale(1)}}.name-input-row{align-items:center;margin-bottom:15px;display:flex}.name-input-row label{width:90px;color:var(--p1-color);font-size:1.1rem;font-weight:700}.name-input-row input{color:#fff;background:#111;border:2px solid #444;border-radius:6px;flex-grow:1;padding:12px;font-size:1.1rem}.name-input-row input:focus{border-color:#4caf50;outline:none}body.admin-mode{background-color:var(--bg-color);color:var(--text-light);height:auto;padding:20px}.admin-mode .screen{display:none}.admin-mode .screen.active{display:block}.admin-mode .setup-container{z-index:10;background:#2a2a2a;border-radius:12px;max-width:600px;margin:20px auto 50px;padding:40px;position:relative;box-shadow:0 10px 30px #00000080}.admin-mode .setup-container h1{text-align:center;color:#fff;margin-bottom:30px;font-size:2rem}.setup-grid{grid-template-columns:1fr;gap:0;display:grid}.admin-mode .form-group{margin-bottom:25px}.admin-mode .form-group label{color:#ccc;text-transform:uppercase;margin-bottom:10px;font-size:.9rem;font-weight:700;display:block}.admin-mode .header{text-align:center;background:#333;border-radius:8px;margin-bottom:20px;padding:20px}.admin-buzzer-controls{background:#0000004d;border:1px solid #555;border-radius:8px;margin-top:15px;padding:15px}.admin-buzzer-controls h3{color:#fff;text-transform:uppercase;margin:0 0 10px;font-size:1rem}.player-clock-controls{text-align:center;background:#00000040;border:1px solid #ffffff1a;border-radius:8px;margin-top:20px;padding:15px}.player-clock-controls h3{color:#fff;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;font-size:.9rem}.clock-btn-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:8px;display:flex}.clock-btn-row button{margin:0!important;padding:8px 12px!important;font-size:.85rem!important}.admin-player-clock{color:#fff;font-size:2.5rem}.admin-mode .grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.admin-mode .panel{text-align:center;border-radius:8px;padding:30px;box-shadow:inset 0 0 50px #0000004d}.admin-mode .panel.p1{background-color:var(--p1-color)}.admin-mode .panel.p2{background-color:var(--p2-color)}.admin-mode h1,.admin-mode h2{text-transform:uppercase;margin:0 0 10px;font-weight:700}.admin-mode .score{margin:10px 0;font-size:5rem}.admin-mode button{cursor:pointer;text-transform:uppercase;border:none;border-radius:4px;padding:12px 20px;font-family:Rajdhani,sans-serif;font-weight:700;transition:transform .1s}.admin-mode button:active{transform:scale(.95)}.admin-mode button:disabled{opacity:.5;cursor:not-allowed}.admin-mode .override-controls{border-top:2px solid #fff3;margin-top:20px;padding-top:20px}.logbook-container{background:#222;border:1px solid #444;border-radius:8px;margin-top:40px;padding:20px}.logbook-container h2{color:#fff;text-transform:uppercase;text-align:center;margin-top:0}.logbook-table{border-collapse:collapse;width:100%;margin-top:15px;font-size:1.1rem}.logbook-table th,.logbook-table td{text-align:left;border-bottom:1px solid #444;padding:12px}.logbook-table th{color:var(--p1-color);text-transform:uppercase;font-weight:700}.logbook-table tr:hover{background:#ffffff0d}@media (orientation:landscape) and (width>=600px){.admin-mode .setup-container{max-width:900px;margin-top:10px;padding:30px 40px}.setup-grid{grid-template-columns:1fr 1fr;gap:30px}}body.display-mode{-webkit-user-select:none;user-select:none;background:linear-gradient(-45deg,#050505,#111119,#050505,#1a1a1a) 0 0/400% 400%;flex-direction:column;height:100vh;animation:20s infinite bgShift;display:flex;overflow:hidden}@keyframes bgShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.display-mode .split-screen{flex:1;width:100%;display:flex;position:relative}.display-mode .side{color:var(--text-light);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.display-mode .side.p1{background-color:#f3c300d9}.display-mode .side.p2{background-color:#8a8d8fd9}.display-mode .match-title{-webkit-backdrop-filter:blur(15px);text-transform:uppercase;width:100%;color:var(--text-light);z-index:20;text-align:center;white-space:nowrap;background:#0f0f0fb3;border-bottom:1px solid #ffffff0d;font-weight:700;position:relative;box-shadow:0 5px 25px #000c}.display-mode .matchball-banner{color:#fff;text-transform:uppercase;z-index:15;background:#e50000;border-radius:0 0 10px 10px;padding:5px 20px;font-size:1.2rem;font-weight:700;animation:1s infinite alternate matchballPulse;position:absolute;bottom:-35px;left:50%;transform:translate(-50%);box-shadow:0 5px 15px #e5000080}@keyframes matchballPulse{0%{background:#e50000;box-shadow:0 5px 15px #e5000080}to{background:#f33;box-shadow:0 5px 25px #ff3333e6}}.display-mode .name{text-transform:uppercase;text-align:center;word-wrap:break-word;width:90%;font-weight:700;position:absolute}.display-mode .score{line-height:1;transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.display-mode .side.p1 .score{text-shadow:0 0 20px #0000004d,0 0 60px #f3c30099}.display-mode .side.p2 .score{text-shadow:0 0 20px #0000004d,0 0 60px #fff6}.display-mode .center-overlay{-webkit-backdrop-filter:blur(20px);color:#fff;text-transform:uppercase;z-index:10;text-align:center;background:#141414b3;border:1px solid #ffffff1a;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #000c}.display-mode .vs-badge{-webkit-backdrop-filter:blur(10px);color:#fff;z-index:15;background:#0a0a0acc;border:2px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:0 10px 30px #000000b3}.display-mode .player-clock{color:#fff;text-shadow:0 5px 15px #000c;margin-top:20px;line-height:1}.display-mode .player-clock.danger{color:#f33;text-shadow:0 0 25px #e50000e6;animation:1s infinite pulseClock}@keyframes pulseClock{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.display-mode .buzzer-round-score{color:#fff;background:#00000080;border:2px solid #fff3;border-radius:12px;margin-top:20px;padding:5px 25px;line-height:1;box-shadow:0 5px 15px #00000080}.display-mode .buzzer-round-score .label{color:#aaa;text-transform:uppercase;margin-bottom:5px;font-family:Rajdhani,sans-serif;font-size:1.2rem;display:block}body.display-mobile .buzzer-round-score{display:none!important}body.display-tv .split-screen{flex-direction:row}body.display-tv .match-title{letter-spacing:4px;padding:20px 0;font-size:3.5rem}body.display-tv .name{letter-spacing:2px;text-shadow:0 4px 15px #0009;font-size:4rem;top:12%}body.display-tv .score{font-size:25rem}body.display-tv .score.pop{transform:scale(1.1)}body.display-tv .center-overlay{padding:25px 50px;font-size:3rem}body.display-tv .player-clock{font-size:8rem}body.display-tv .vs-badge{width:100px;height:100px;font-size:3.5rem;top:15%;left:50%;transform:translate(-50%,-50%)}body.display-tv .buzzer-round-score{font-size:6rem}body.display-mobile .split-screen{flex-direction:column}body.display-mobile .match-title{letter-spacing:2px;z-index:20;padding:15px 0;font-size:6vw;position:relative}body.display-mobile .name{letter-spacing:1px;text-shadow:0 3px 12px #0009;margin-bottom:2vh;font-size:9vw;position:relative;top:auto}body.display-mobile .score{margin:0;font-size:20vh;line-height:1}body.display-mobile .score.pop{transform:scale(1.15)}body.display-mobile .center-overlay{border-radius:12px;width:85%;padding:12px 20px;font-size:1.1rem;top:auto;bottom:4%;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #000c}body.display-mobile .vs-badge{border-width:2px;width:60px;height:60px;font-size:1.6rem;top:50%;left:50%;transform:translate(-50%,-50%)}body.display-mobile .overlay-title{font-size:10vw}body.display-mobile .overlay-subtitle{margin-bottom:20px;font-size:5vw}body.display-mobile .countdown{font-size:22vw}body.display-mobile .winner-title{font-size:6vw}body.display-mobile .winner-name{font-size:14vw}body.display-mobile .matchball-banner{padding:3px 10px;font-size:3vw;bottom:-20px}body.display-mobile .player-clock{margin-top:10px;font-size:12vw}@media (orientation:landscape){body.display-mobile .split-screen{flex-direction:row}body.display-mobile .match-title{padding:10px 0;font-size:4vw}body.display-mobile .name{margin-bottom:0;font-size:4vw;position:absolute;top:12%}body.display-mobile .score{margin-top:5vh;font-size:22vw}body.display-mobile .center-overlay{width:auto;padding:10px 30px;font-size:1.4rem;top:auto;bottom:5%;transform:translate(-50%)}body.display-mobile .vs-badge{border-width:3px;width:80px;height:80px;font-size:2.8rem;top:50%;left:50%;transform:translate(-50%,-50%)}body.display-mobile .overlay-title{font-size:6vw}body.display-mobile .overlay-subtitle{margin-bottom:20px;font-size:3vw}body.display-mobile .countdown{font-size:15vw}body.display-mobile .winner-title{font-size:4vw}body.display-mobile .winner-name{font-size:8vw}body.display-mobile .player-clock{margin-top:15px;font-size:7vw}}body.buzzer-mode{background-color:var(--bg-color);color:var(--text-light);-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:20px;display:flex;overflow:hidden}.buzzer-setup{text-align:center;width:100%;max-width:400px}.buzzer-setup h1{text-transform:uppercase;margin-bottom:30px;font-size:3rem}.buzzer-setup button{text-transform:uppercase;cursor:pointer;border:none;border-radius:12px;width:100%;margin-bottom:20px;padding:25px;font-size:1.5rem;font-weight:700;display:block}.buzzer-setup .btn-p1{background-color:var(--p1-color);color:#000}.buzzer-setup .btn-p2{background-color:var(--p2-color);color:#fff}.buzzer-play{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:none}.buzzer-play.active{display:flex}.buzzer-round-info{color:#fff;text-transform:uppercase;text-align:center;background:#ffffff1a;border-radius:12px;margin-bottom:30px;padding:10px 20px;font-size:2rem}.buzzer-button{cursor:pointer;text-shadow:0 2px 5px #00000080;border:15px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:75vmin;max-width:500px;height:75vmin;max-height:500px;font-size:4rem;transition:transform .1s,background-color .3s;display:flex;box-shadow:0 20px 50px #000c,inset 0 10px 30px #ffffff4d}.buzzer-button:active{transform:scale(.95);box-shadow:0 10px 20px #000c}.buzzer-button.locked{color:#666;cursor:not-allowed;box-shadow:none;text-shadow:none;border-color:#222;transform:none;background-color:#333!important}.buzzer-button.won{border-color:#fff;animation:.3s infinite alternate buzzerBlink}.buzzer-status-text{text-transform:uppercase;text-align:center;margin-top:30px;font-size:2.5rem;font-weight:700}
