:root{--azul:#005ca9;--azul-escuro:#003b71;--laranja:#f7941d;--fundo:#f4f7fb;--texto:#17324d;--verde:#198754;--vermelho:#c0392b;--borda:#d9e3ee;--sombra:0 12px 30px rgba(0,59,113,.12)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--fundo);color:var(--texto)}a{color:inherit}.topbar{min-height:68px;background:linear-gradient(135deg,var(--azul-escuro),var(--azul));color:white;padding:14px clamp(18px,4vw,48px);display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar strong{font-size:clamp(1.05rem,2vw,1.45rem)}.topbar a{color:white;text-decoration:none}.container{width:min(1180px,94%);margin:28px auto}.card{background:white;border:1px solid var(--borda);border-radius:20px;box-shadow:var(--sombra);padding:22px}.setup-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:22px}.hero{grid-column:1/-1;background:linear-gradient(135deg,#fff,#eaf5ff)}.hero h1{font-size:clamp(2rem,4vw,3.4rem);margin:.3rem 0}.eyebrow{color:var(--laranja);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.step{position:relative}.step-number{position:absolute;right:18px;top:14px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--laranja);color:white;font-weight:900;font-size:1.2rem}.student-access{grid-column:1/-1}label{display:grid;gap:7px;font-weight:700;margin:12px 0}input,select{width:100%;padding:13px 14px;border:1px solid #bdccdc;border-radius:12px;font:inherit;background:white}input:focus,select:focus{outline:3px solid rgba(0,92,169,.15);border-color:var(--azul)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:800;font-size:.96rem;cursor:pointer;background:#e8eef5;color:var(--texto);width:100%;margin:5px 0}.btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:var(--laranja);color:#17212b}.btn.secondary{background:var(--azul);color:white}.btn.danger{background:var(--vermelho);color:white}.btn.ghost{background:white;border:1px solid var(--borda)}.btn.large{padding:15px 18px;font-size:1.05rem}.download{display:inline-block;margin-top:10px;color:var(--azul);font-weight:700}.status{border-radius:12px;padding:12px 14px;margin-top:12px}.status.neutral{background:#eef3f8}.status.success{background:#dff3e7;color:#126135}.status.error{background:#fde5e2;color:#8b2018}.hidden{display:none!important}.dashboard{display:grid;grid-template-columns:310px minmax(0,1fr);gap:20px;width:min(1500px,97%);margin:20px auto}.controls{align-self:start;position:sticky;top:18px}.room-code{background:var(--azul-escuro);color:white;border-radius:16px;padding:16px;text-align:center;margin-bottom:14px}.room-code strong{display:block;font-size:2.3rem;letter-spacing:.16em}.rules{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.rules div,.student-stats div{background:#eef4fa;border-radius:12px;padding:10px;text-align:center}.rules span,.student-stats span{display:block;font-size:.78rem}.rules b,.student-stats b{font-size:1.25rem}.join-url{margin-top:14px}.join-url code{display:block;overflow-wrap:anywhere;background:#f2f5f8;padding:10px;border-radius:10px;margin-top:5px}.mainstage{display:grid;gap:16px}.scoreboard{display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;text-align:center;padding:14px}.team-score{padding:10px;border-radius:14px}.team-score span{display:block;font-weight:800}.team-score b{font-size:2rem}.team-a{background:#dceeff;color:#004e91}.team-b{background:#fff0dc;color:#9b5000}.game-status{display:grid;gap:5px}.game-status strong{font-size:1.1rem}.question-card{text-align:center;min-height:120px;display:grid;place-items:center}.question-card h2{margin:.4rem 0;font-size:clamp(1.3rem,2.4vw,2.1rem)}.question-card .theme{display:inline-block;background:var(--azul);color:white;padding:5px 12px;border-radius:999px;font-weight:800}.court{height:min(62vh,620px);min-height:430px;position:relative;overflow:hidden;background:linear-gradient(90deg,#d9efff 0 50%,#fff0d9 50% 100%);border:8px solid white;outline:3px solid var(--azul-escuro);padding:0}.court:before,.court:after{content:"";position:absolute;top:8%;bottom:8%;width:18%;border:3px solid rgba(0,59,113,.4)}.court:before{left:0;border-left:0}.court:after{right:0;border-right:0}.center-line{position:absolute;left:50%;top:0;bottom:0;width:3px;background:rgba(0,59,113,.5)}.center-line:after{content:"";position:absolute;left:50%;top:50%;width:130px;height:130px;border:3px solid rgba(0,59,113,.5);border-radius:50%;transform:translate(-50%,-50%)}.team-label{position:absolute;top:12px;font-weight:900;opacity:.4}.team-label.left{left:18px}.team-label.right{right:18px}.player{position:absolute;transform:translate(-50%,-50%);min-width:96px;max-width:135px;border:3px solid white;border-radius:16px;background:white;box-shadow:0 8px 20px rgba(0,0,0,.16);padding:8px;z-index:3;text-align:center;color:var(--texto)}.player .avatar{display:block;font-size:2rem}.player .pname{display:block;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player .pstats{display:block;font-size:.72rem}.player.active{outline:5px solid var(--laranja);animation:pulse 1s infinite}.player.target{outline:5px solid var(--vermelho)}.player.selectable{cursor:pointer}.player.selectable:hover{transform:translate(-50%,-50%) scale(1.1);outline:5px solid var(--vermelho)}.player.eliminated{opacity:.55;filter:grayscale(1);min-width:76px}.player.eliminated .avatar{font-size:1.4rem}@keyframes pulse{50%{box-shadow:0 0 0 12px rgba(247,148,29,.18)}}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rank-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:9px;border-bottom:1px solid var(--borda)}.rank-row small{display:block;color:#60758a}.event{padding:9px 0;border-bottom:1px solid var(--borda)}.final-result{text-align:center;background:linear-gradient(135deg,#fff5d9,#fff)}.final-result .winner{font-size:1.8rem;font-weight:900;color:var(--azul-escuro)}.student-page{max-width:1050px}.join-card{max-width:520px;margin:auto}.student-game{display:grid;gap:16px}.student-header{display:flex;align-items:center;justify-content:space-between}.student-header h1{margin:.2rem 0}.student-stats{display:flex;gap:10px}.student-stats div{min-width:100px}.instruction{text-align:center;font-weight:800;font-size:1.08rem}.answer-box{max-width:700px;margin:auto;width:100%}.answer-box input{font-size:1.2rem}.student-game .court{height:500px}
@media(max-width:900px){.setup-grid,.dashboard,.bottom-grid{grid-template-columns:1fr}.controls{position:static}.form-grid{grid-template-columns:1fr 1fr}.dashboard{width:94%}.court{min-height:500px}.player{min-width:82px}.setup-grid .student-access{grid-column:auto}}
@media(max-width:560px){.topbar{align-items:flex-start;flex-direction:column}.form-grid,.scoreboard{grid-template-columns:1fr}.student-header{align-items:flex-start;flex-direction:column;gap:12px}.student-stats{width:100%}.student-stats div{flex:1}.court{min-height:600px}.player{min-width:72px;padding:5px}.player .avatar{font-size:1.55rem}.player .pname{font-size:.75rem}.player .pstats{font-size:.62rem}.center-line:after{width:80px;height:80px}}

/* Layout solicitado: página inicial e painel do professor */
.landing-body{background:#fff}.landing-wrap{min-height:100vh;display:grid;place-items:start center;padding:28px 16px}.landing-card{width:min(760px,100%);border:7px solid #edf3fa;background:#fff;padding:20px 16px 16px}.brand-row{display:flex;gap:16px;align-items:center}.brand-icon,.teacher-icon{font-size:3.1rem}.brand-badge{display:inline-block;background:var(--azul);color:#fff;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:900}.brand-row h1{margin:5px 0 2px;color:var(--azul-escuro);font-size:clamp(1.7rem,4vw,2.6rem)}.brand-row p{margin:0;color:#495d72}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}.access-card{border:1px solid #dbe8f5;border-radius:17px;padding:18px;text-align:center;box-shadow:0 4px 12px rgba(0,59,113,.06)}.access-card h2{color:var(--azul-escuro);font-size:1rem}.access-card p{min-height:42px;font-size:.82rem;color:#556a7e}.btn.compact{display:inline-block;width:auto;text-decoration:none;font-size:.78rem;padding:10px 15px}.teacher-page{width:min(1180px,96%);margin:22px auto 50px}.teacher-heading{display:flex;align-items:center;gap:15px;margin:10px 0 26px}.teacher-heading .gear{font-size:2.7rem}.teacher-heading h1{margin:0;color:var(--azul-escuro);font-size:clamp(2rem,4vw,3.3rem)}.teacher-heading p{margin:4px 0 0}.teacher-config-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:18px}.panel-box{background:#fff;border:1px solid #d3e5f6;border-radius:18px;padding:20px}.panel-box h2{margin-top:0;color:var(--azul-escuro)}.panel-box label{margin:10px 0}.panel-box input,.panel-box textarea{border-radius:12px;border:1px solid #bfd7ee}.questions-box .help{font-size:.8rem;color:#566f86}.questions-box textarea{width:100%;min-height:198px;resize:vertical;padding:12px;font-family:Consolas,monospace}.loaded-file{background:#e4f6ea;color:#126135;padding:12px;border-radius:12px;margin-bottom:10px}.action-panel{margin-top:18px;text-align:center}.action-row{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}.action-btn{width:auto;min-width:155px}.action-panel h3{font-size:1.35rem;color:var(--azul-escuro);margin:10px 0}.student-link-box{border:1px dashed #1680d6;background:#f6fbff;border-radius:12px;padding:10px;overflow-wrap:anywhere}.room-inline{letter-spacing:.15em}.game-area{display:grid;gap:16px;margin-top:20px}.game-area .court{height:min(62vh,620px)}
@media(max-width:760px){.access-grid,.teacher-config-grid{grid-template-columns:1fr}.teacher-heading{align-items:flex-start}.teacher-heading .gear{display:none}.action-btn{flex:1 1 42%}.brand-row{align-items:flex-start}.brand-icon{font-size:2.4rem}}
