:root{
  --navy:#07152b; --navy2:#0b2244; --blue:#1565c0; --blue2:#2b8cff;
  --gold:#ffc107; --green:#4caf50; --red:#e53935; --white:#f5f7fa;
  --muted:#9fb3c8; --panel:#0d1b32; --panel2:#102847; --border:#244c7d;
  --shadow:0 18px 50px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top,#123c70 0,#07152b 34%,#050d19 100%);color:var(--white);min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.app{min-height:100vh}
.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(4,14,29,.88);border-bottom:1px solid #1b416e;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:14px}
.logoMark{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,var(--gold),#f39c12);display:grid;place-items:center;color:#07152b;font-size:26px;font-weight:900;box-shadow:0 0 0 3px #123e69,0 8px 24px rgba(255,193,7,.22)}
.brand h1{font-size:19px;margin:0;letter-spacing:.6px}.brand small{color:#9fb3c8;display:block;margin-top:3px}
.btn{border:0;border-radius:12px;padding:11px 16px;font-weight:800;color:white;background:#173a67;transition:.2s;box-shadow:inset 0 0 0 1px #2a5a91}.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
.btn.gold{background:linear-gradient(180deg,#ffc927,#f3a600);color:#08111f;box-shadow:none}.btn.green{background:linear-gradient(180deg,#55c75e,#2d9d47);box-shadow:none}.btn.red{background:linear-gradient(180deg,#ee4b46,#c62828);box-shadow:none}.btn.ghost{background:transparent;border:1px solid #345d89;box-shadow:none}
.hero{min-height:100vh;padding:42px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}
.hero:before,.hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.06);border-radius:50%;width:900px;height:900px;top:36%;left:50%;transform:translate(-50%,-50%)}
.hero:after{width:680px;height:680px;border-color:rgba(255,193,7,.12)}
.heroBadge{position:relative;z-index:2;text-align:center;max-width:860px}
.trophy{font-size:70px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.4));margin-bottom:5px}
.heroTitle{font-size:clamp(52px,8vw,105px);line-height:.86;margin:0;font-weight:1000;letter-spacing:-3px;text-shadow:0 6px 0 #0a1e38,0 12px 25px rgba(0,0,0,.45)}
.heroTitle span{display:block;color:var(--gold);font-size:.57em;letter-spacing:-1px;margin-top:10px}
.subtitle{display:inline-block;margin-top:18px;padding:8px 18px;border-radius:10px;background:#1456a0;font-weight:900;letter-spacing:1px}
.ops{display:flex;justify-content:center;gap:10px;margin:18px 0 8px}.op{width:54px;height:54px;border-radius:10px;display:grid;place-items:center;font-size:29px;font-weight:1000;box-shadow:0 8px 18px rgba(0,0,0,.25)}
.op:nth-child(1){background:#43a047}.op:nth-child(2){background:#e53935}.op:nth-child(3){background:#1565c0}.op:nth-child(4){background:#f5b400;color:#111}
.tagline{font-size:21px;font-weight:900;margin:20px 0 26px}.accessGrid{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:16px;max-width:980px;width:100%}
.accessCard{background:linear-gradient(180deg,rgba(15,43,78,.95),rgba(7,22,43,.97));border:1px solid #2c5c90;border-radius:18px;padding:24px;min-height:180px;text-align:left;box-shadow:var(--shadow);transition:.2s}.accessCard:hover{transform:translateY(-4px);border-color:#4d8fd0}.accessIcon{font-size:38px}.accessCard h3{color:var(--gold)!important;font-size:24px;margin:14px 0 8px}.accessCard p{color:#b8c7d8;line-height:1.45;margin:0}
.footerStrip{position:relative;z-index:2;margin-top:28px;color:#b9c9da;font-weight:800;letter-spacing:1px}
.layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 74px)}
.sidebar{background:linear-gradient(180deg,#08172c,#06111f);border-right:1px solid #1f436e;padding:20px 14px;position:sticky;top:74px;height:calc(100vh - 74px)}
.navBtn{width:100%;border:0;color:#c7d5e4;background:transparent;border-radius:12px;padding:13px 14px;text-align:left;font-weight:800;margin:4px 0}.navBtn:hover,.navBtn.active{background:#123966;color:#fff}.navBtn span{margin-right:10px}
.main{padding:24px;max-width:1500px;width:100%;margin:0 auto}
.sectionTitle{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.sectionTitle h2{margin:0;font-size:30px}.sectionTitle p{margin:4px 0 0;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat{background:linear-gradient(180deg,#102846,#0b1b31);border:1px solid #244f80;border-radius:15px;padding:18px}.stat strong{font-size:32px;display:block}.stat span{color:#a9bed1}
.grid2{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.panel{background:linear-gradient(180deg,#0f2848,#0a1b31);border:1px solid #275180;border-radius:16px;box-shadow:var(--shadow);padding:18px}.panel h3{margin:0 0 14px;font-size:19px}
.modeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.modeCard{border:1px solid #325f91;background:#0a1d36;border-radius:14px;padding:18px;min-height:180px;transition:.2s;position:relative}.modeCard:hover,.modeCard.selected{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 0 0 2px rgba(255,193,7,.12)}.modeCard .emoji{font-size:40px}.modeCard h4{margin:12px 0 7px;font-size:18px}.modeCard p{color:#aabed1;margin:0;line-height:1.4;font-size:14px}
.recent{display:flex;flex-direction:column;gap:10px}.recentItem{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border:1px solid #244b79;border-radius:12px;background:#0a1c34}.recentItem small{color:#9fb3c8}.status{font-size:12px;font-weight:900;padding:6px 9px;border-radius:999px}.status.done{background:#123d29;color:#73e59b}.status.live{background:#0e3a67;color:#63b7ff}.status.sched{background:#49370a;color:#ffd65d}
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick button{min-height:88px;border:1px solid #2b5689;background:#0c203b;color:#fff;border-radius:12px;font-weight:800}.quick button b{display:block;font-size:26px;margin-bottom:4px}
.liveBox{border:1px solid #943c3c;background:linear-gradient(180deg,#2a1016,#180c12);border-radius:14px;padding:16px}.progress{height:10px;background:#223b58;border-radius:99px;overflow:hidden}.progress i{display:block;width:48%;height:100%;background:linear-gradient(90deg,#ffc107,#f28c00)}
.wizard{max-width:1160px;margin:0 auto}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}.step{padding:10px 12px;border-radius:10px;background:#0b1d34;border:1px solid #244b79;color:#8ea8be;font-size:13px;font-weight:900;text-align:center}.step.active{background:#174b7f;color:white;border-color:#4a8dcd}.step.done{background:#123b2a;color:#89e5a7;border-color:#2f8154}
.formGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:13px;font-weight:900;color:#c9d5e2}.field input,.field select,.field textarea{width:100%;background:#081a31;border:1px solid #315b88;color:#fff;border-radius:10px;padding:12px 13px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#63a7e4}.field textarea{min-height:220px;resize:vertical;line-height:1.55}.importHint{margin-top:8px;color:#8fa9c4;font-size:12px;line-height:1.5}.studentToolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:18px 0 10px}.studentSummary{color:#9fb3c8;font-size:13px}.bulkGrid{display:grid;grid-template-columns:1.4fr .6fr;gap:18px}@media(max-width:850px){.bulkGrid{grid-template-columns:1fr}}
.classGroup{margin:10px 0;border:1px solid #2f6ca6;border-radius:14px;overflow:hidden;background:#081a31}.classHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:linear-gradient(90deg,#174f86,#0d294a);cursor:pointer;user-select:none}.classHeader:hover{filter:brightness(1.07)}.classHeader h4{margin:0;font-size:17px;letter-spacing:.2px;display:flex;align-items:center;gap:8px}.classHeaderRight{display:flex;align-items:center;gap:10px}.classHeader span{font-size:11px;font-weight:900;color:#a9c6df;background:#07172b;border:1px solid #285483;padding:5px 8px;border-radius:999px}.classToggle{font-size:16px;color:#d9e9f8;transition:.2s}.classGroup.open .classToggle{transform:rotate(180deg)}.classStudents{display:none;padding:5px 8px 8px;border-top:1px solid #2f6ca6}.classGroup.open .classStudents{display:block}.studentRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 8px;border-bottom:1px solid rgba(71,111,151,.25)}.studentRow:last-child{border-bottom:0}.studentMain{display:flex;align-items:center;gap:9px;min-width:0}.studentNumber{display:inline-grid;place-items:center;min-width:30px;height:30px;border-radius:8px;background:#153f6d;font-weight:900}.studentName{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.levelBadge{display:inline-block;margin-left:4px;padding:4px 7px;border-radius:999px;background:#14375f;color:#cfe6ff;font-size:10px;font-weight:900;white-space:nowrap}.studentActions{display:flex;gap:6px;align-items:center}.studentActions .btn{padding:7px 10px;border-radius:9px;font-size:12px}.modalBackdrop{position:fixed;inset:0;background:rgba(1,8,18,.78);display:grid;place-items:center;padding:20px;z-index:100}.editModal{width:min(660px,100%);background:linear-gradient(180deg,#102b4c,#08182c);border:1px solid #3970a8;border-radius:20px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.5)}.editModalHead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.editModalHead h3{margin:0;font-size:24px}.editActions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}@media(max-width:850px){.classHeader{align-items:flex-start}.recentItem{align-items:flex-start;gap:12px;flex-direction:column}.studentActions{width:100%}.studentActions .btn{flex:1}.formGrid{grid-template-columns:1fr}}
.checkRow{display:flex;gap:10px;flex-wrap:wrap}.chip{padding:9px 12px;border:1px solid #315b88;background:#0a1d36;border-radius:999px;user-select:none}.chip input{margin-right:7px}.wizardActions{display:flex;justify-content:space-between;margin-top:18px;gap:10px}.review{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.reviewItem{background:#091b32;border:1px solid #244d7c;padding:13px;border-radius:10px}.reviewItem small{color:#9fb3c8;display:block}.reviewItem strong{font-size:17px}
.studentArena{min-height:calc(100vh - 74px);display:grid;place-items:center;padding:28px}.questionCard{max-width:860px;width:100%;background:linear-gradient(180deg,#102949,#0a1a30);border:1px solid #315d8b;border-radius:20px;padding:28px;box-shadow:var(--shadow)}.questionMeta{display:flex;justify-content:space-between;color:#9fb3c8;font-weight:800}.question{font-size:48px;font-weight:1000;text-align:center;margin:40px 0}.answer{display:flex;gap:12px}.answer input{flex:1;padding:16px 18px;border-radius:12px;border:1px solid #3d6c99;background:#07182c;color:white;font-size:22px}.suspense{text-align:center;margin-top:14px;color:#b6c8d9}
@media(max-width:1050px){.accessGrid,.modeGrid,.stats{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}.sidebar{display:none}.grid2{grid-template-columns:1fr}}
@media(max-width:700px){.accessGrid,.modeGrid,.stats,.formGrid,.review{grid-template-columns:1fr}.quick{grid-template-columns:repeat(2,1fr)}.heroTitle{letter-spacing:-1px}.topbar{padding:0 12px}.main{padding:16px}.steps{grid-template-columns:1fr 1fr}.question{font-size:36px}}

.studentIdentity{max-width:620px;width:100%;background:linear-gradient(180deg,#102949,#0a1a30);border:1px solid #315d8b;border-radius:20px;padding:28px;box-shadow:var(--shadow)}
.studentIdentity h2{margin:0 0 6px;font-size:30px}.studentIdentity p{color:#a9bed1;margin:0 0 20px}.studentIdentity .field{margin-bottom:14px}
.studentBadge{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;padding:12px 14px;border-radius:12px;background:#0a2039;border:1px solid #294f79}.studentBadge b{font-size:18px}.studentBadge small{display:block;color:#9fb3c8;margin-top:3px}
.waitingCard{text-align:center;max-width:680px;width:100%;background:linear-gradient(180deg,#102949,#0a1a30);border:1px solid #315d8b;border-radius:20px;padding:36px;box-shadow:var(--shadow)}
.waitingCard .big{font-size:58px}.waitingCard h2{font-size:30px;margin:10px 0}.waitingCard p{color:#a9bed1;line-height:1.5}.timerDanger{color:#ff6b66!important;animation:pulseTimer .8s infinite alternate}@keyframes pulseTimer{from{opacity:1}to{opacity:.55}}

/* ===== COPA MATEMÁTICA — estrutura competitiva ===== */
.cupWrap{display:grid;gap:18px}.cupTop{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.cupBadge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#f2b705;color:#071b31;font-weight:900}.cupGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.groupCard{background:linear-gradient(180deg,#102b49,#0a2039);border:1px solid #244968;border-radius:16px;overflow:hidden;box-shadow:0 10px 22px #03101d4d}.groupHead{padding:12px 14px;background:#173c62;display:flex;justify-content:space-between;align-items:center}.groupHead b{font-size:17px}.seed{font-size:11px;color:#ffd85c;font-weight:900}.groupPlayers{padding:8px 12px}.groupPlayer{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #ffffff12}.groupPlayer:last-child{border-bottom:0}.groupPlayer .num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#071a2d;color:#ffd65a;font-weight:900}.groupPlayer small{color:#91abc1}.tableWrap{overflow:auto;border:1px solid #244968;border-radius:12px}.cupTable{width:100%;border-collapse:collapse;min-width:540px}.cupTable th,.cupTable td{padding:9px 10px;text-align:center;border-bottom:1px solid #ffffff12}.cupTable th{background:#0d2946;color:#9fb8cd;font-size:11px;text-transform:uppercase}.cupTable td:nth-child(2),.cupTable th:nth-child(2){text-align:left}.cupTable tr:last-child td{border-bottom:0}.qualZone td{background:#0d593733}.fixtureRounds{display:grid;gap:12px}.roundBox{border:1px solid #244968;border-radius:14px;padding:12px;background:#081d33}.roundTitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.matchRow{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;padding:8px 10px;margin:6px 0;background:#102b49;border-radius:10px}.matchRow span:first-child{text-align:right}.matchRow span:last-child{text-align:left}.vs{font-size:11px;font-weight:900;color:#f5bd1d}.bracketInfo{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.bracketSlot{padding:12px;border:1px dashed #3b6382;border-radius:12px;background:#071b31}.bracketSlot small{color:#88a5bd;display:block}.bracketSlot b{display:block;margin-top:5px}.arenaTabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.arenaTabs button{border:1px solid #315674;background:#0a2139;color:#c8d8e6;padding:9px 13px;border-radius:10px;font-weight:800;cursor:pointer}.arenaTabs button.active{background:#f3bd1b;color:#071b31;border-color:#f3bd1b}.cupSection{margin-top:16px}.emptyWarn{padding:14px;border-radius:12px;background:#6b3f101f;border:1px solid #b77b2d;color:#ffd88c}


/* ===== LOBBY E CONFRONTOS DO COMPETIDOR ===== */
.studentLobby{max-width:900px;width:100%}.lobbyTitle{text-align:center;margin-bottom:18px}.lobbyTitle h2{font-size:30px;margin:0 0 6px}.lobbyTitle p{color:#a9bed1;margin:0}.competitionCards{display:grid;gap:14px}.competitionCard{background:linear-gradient(180deg,#102b49,#091d34);border:1px solid #315d8b;border-radius:17px;padding:18px;box-shadow:var(--shadow)}.competitionCardTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.competitionCard h3{margin:0 0 4px}.competitionCard small{color:#9fb3c8}.matchCard{margin-top:14px;padding:14px;border-radius:13px;background:#071a2e;border:1px solid #2c567e}.matchPlayers{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:10px 0 14px}.matchPlayers div:first-child{text-align:right}.matchPlayers div:last-child{text-align:left}.matchPlayers b{font-size:16px}.matchPlayers span{font-size:11px;color:#f3c43e;font-weight:900}.matchState{padding:8px 10px;border-radius:9px;background:#0b2945;color:#b9d3e9;font-size:12px;font-weight:800}.waitingPulse{display:inline-block;width:10px;height:10px;background:#ffc107;border-radius:50%;margin-right:7px;animation:pulseTimer .8s infinite alternate}.thirdZone td{background:#7353152c}.bestThirdBox{margin-top:14px;padding:14px;border:1px solid #8b6b22;border-radius:13px;background:#392d0f55}.bestThirdBox h4{margin:0 0 10px;color:#ffd96b}.bestThirdRow{display:grid;grid-template-columns:34px 1fr 60px 70px 80px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #ffffff10}.bestThirdRow:last-child{border-bottom:0}.qualifiedThird{color:#7ee8a4;font-weight:900}

/* ===== v18 • organização de espaço ===== */
.standingsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,590px),1fr));gap:14px;align-items:start}
.standingsGrid .groupCard{min-width:0}
.standingsGrid .tableWrap{border-radius:10px}
.standingsGrid .cupTable{min-width:0;table-layout:fixed}
.standingsGrid .cupTable th,.standingsGrid .cupTable td{padding:7px 5px;font-size:12px}
.standingsGrid .cupTable th{font-size:10px}
.standingsGrid .cupTable th:nth-child(1),.standingsGrid .cupTable td:nth-child(1){width:34px}
.standingsGrid .cupTable th:nth-child(2),.standingsGrid .cupTable td:nth-child(2){width:34%;white-space:normal;overflow-wrap:anywhere;line-height:1.15}
.standingsGrid .cupTable th:nth-child(n+3),.standingsGrid .cupTable td:nth-child(n+3){width:auto}
.fixtureRounds{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start}
.roundBox{min-width:0}
.matchRow{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);padding:7px 8px}
.matchRow span{min-width:0;overflow-wrap:anywhere;font-size:12px}
#screen>div:nth-child(2){max-width:1600px!important;padding:18px 22px!important}
#screenCompetitionList{gap:16px}
#screenCompetitionList .competitionCard{padding:15px}
#screenCompetitionList .competitionCardTop{align-items:center}
#screenCompetitionList .competitionCard h3{font-size:21px}
.screenMatchGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px;margin-top:10px}
.screenMatchCard{min-width:0}
.screenMatchCard .groupHead{padding:9px 11px}
.screenMatchCard .groupHead b{font-size:14px}
.screenMatchBody{padding:10px}
.screenDuel{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);gap:8px;align-items:center}
.screenDuel .player{min-width:0;font-size:12px;line-height:1.2;overflow-wrap:anywhere}
.screenDuel .player b{font-size:13px}
.screenDuel .player.right{text-align:right}
.screenScore{text-align:center;font-size:20px;font-weight:1000;white-space:nowrap;color:#fff}
.screenScore small{display:block;font-size:9px;color:#8faac0;margin-top:2px;font-weight:800}
.screenResult{margin-top:7px;padding:6px 8px;border-radius:8px;background:#0b2945;color:#bfd8ec;font-size:10px;font-weight:800;text-align:center}
.screenRaceTable .cupTable{min-width:0;table-layout:fixed}
.screenRaceTable .cupTable th,.screenRaceTable .cupTable td{padding:7px 8px;font-size:12px}
.screenRaceTable .cupTable th:nth-child(1),.screenRaceTable .cupTable td:nth-child(1){width:48px}
.screenRaceTable .cupTable th:nth-child(2),.screenRaceTable .cupTable td:nth-child(2){width:auto;white-space:normal;overflow-wrap:anywhere}
.screenRaceTable .cupTable th:nth-child(3),.screenRaceTable .cupTable td:nth-child(3){width:75px}
.screenRaceTable .cupTable th:nth-child(4),.screenRaceTable .cupTable td:nth-child(4){width:90px}
@media(max-width:1050px){
 .standingsGrid{grid-template-columns:1fr}
 .fixtureRounds{grid-template-columns:1fr}
 .screenMatchGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
 .screenMatchGrid{grid-template-columns:1fr}
 .screenDuel{grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr)}
 .standingsGrid .cupTable th,.standingsGrid .cupTable td{font-size:10px;padding:6px 3px}
 .standingsGrid .cupTable th{font-size:9px}
}


/* v19 - Equipes Matemáticas */
.teamGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:13px}
.teamCard{background:#081d33;border:1px solid #173956;border-radius:13px;overflow:hidden;min-width:0}
.teamHead{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 13px;background:#0b2945}
.teamHead b{color:#f3c43e;font-size:14px}.teamHead span{font-size:10px;color:#9fc0d9;font-weight:900}
.teamMembers{padding:7px 10px}.teamMember{display:flex;align-items:center;gap:8px;padding:7px 3px;border-bottom:1px solid #12304a;min-width:0}.teamMember:last-child{border-bottom:0}
.teamMember .num{width:27px;height:27px;border-radius:8px;background:#123d61;display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.teamMember .who{min-width:0;flex:1;line-height:1.15}.teamMember .who b{font-size:11px;overflow-wrap:anywhere}.teamMember .who small{font-size:9px;color:#89a9c2}
.teamRankTable{table-layout:fixed;min-width:0}.teamRankTable th,.teamRankTable td{padding:8px 7px;font-size:12px}
.teamRankTable th:nth-child(1),.teamRankTable td:nth-child(1){width:48px}.teamRankTable th:nth-child(3),.teamRankTable td:nth-child(3){width:90px}.teamRankTable th:nth-child(4),.teamRankTable td:nth-child(4){width:80px}.teamRankTable th:nth-child(5),.teamRankTable td:nth-child(5){width:90px}.teamRankTable th:nth-child(6),.teamRankTable td:nth-child(6){width:95px}
.teamLiveGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px;margin-top:10px}
.teamLiveCard{background:#081d33;border:1px solid #173956;border-radius:12px;padding:11px;min-width:0}.teamLiveTop{display:flex;justify-content:space-between;gap:8px;align-items:start}.teamLiveTop b{font-size:14px;color:#f3c43e}.teamLiveScore{font-size:22px;font-weight:1000}
.teamProgressBar{height:6px;background:#102c44;border-radius:99px;overflow:hidden;margin-top:8px}.teamProgressBar i{height:100%;display:block;background:#f3c43e}
@media(max-width:720px){.teamRankTable th,.teamRankTable td{font-size:10px;padding:6px 4px}}

.reportFilters{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;margin:16px 0 18px}
.reportFilterCard{position:relative;background:linear-gradient(180deg,#0d2a48,#081d33);border:1px solid #214d70;border-radius:14px;padding:12px 12px 11px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03);min-width:0}
.reportFilterCard:focus-within{border-color:#f3c43e;box-shadow:0 0 0 2px rgba(243,196,62,.12)}
.reportFilterTop{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.reportFilterIcon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#123d61;font-size:14px;flex:0 0 auto}
.reportFilterTitle{font-size:10px;font-weight:1000;letter-spacing:.7px;color:#f3c43e;text-transform:uppercase}
.reportFilterCard select{width:100%;appearance:none;-webkit-appearance:none;border:0;outline:0;background:#071a2d;color:#eef7ff;border-radius:9px;padding:10px 34px 10px 10px;font-weight:850;font-size:12px;cursor:pointer;box-shadow:inset 0 0 0 1px #173956}
.reportFilterCard select:hover{box-shadow:inset 0 0 0 1px #2c628c}
.reportFilterCard:after{content:'⌄';position:absolute;right:22px;bottom:18px;color:#f3c43e;font-size:16px;font-weight:1000;pointer-events:none}
.reportFilterCard option{background:#081d33;color:#fff}
.reportFilterHint{display:block;margin-top:6px;color:#7898b1;font-size:9px;line-height:1.2}.reportCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.reportCard{background:linear-gradient(135deg,#0b2945,#0a2037);border:1px solid #173956;border-radius:13px;padding:13px}.reportCard small{display:block;color:#8faac0;font-size:10px;font-weight:900}.reportCard b{display:block;font-size:24px;margin-top:5px}.reportCard span{font-size:10px;color:#a9c3d7}.reportTabs{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.reportTabs button{border:1px solid #1a4668;background:#0b2945;color:#bdd5e7;border-radius:9px;padding:9px 12px;font-weight:900;cursor:pointer}.reportTabs button.active{background:#f3c43e;color:#071b2d}.reportGrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reportBox{background:#081d33;border:1px solid #173956;border-radius:13px;padding:13px}.reportBox h4{margin:0 0 10px;color:#f3c43e}.reportBarRow{display:grid;grid-template-columns:105px 1fr 55px;gap:8px;align-items:center;margin:8px 0;font-size:11px}.reportBar{height:9px;background:#102c44;border-radius:99px;overflow:hidden}.reportBar i{display:block;height:100%;background:#f3c43e}.reportEmpty{text-align:center;padding:28px;color:#8faac0;border:1px dashed #245070;border-radius:12px}.reportTable{table-layout:fixed;min-width:0}.reportTable th,.reportTable td{font-size:11px;padding:7px 6px}.reportTable td{white-space:normal;overflow-wrap:anywhere}@media(max-width:1050px){.reportFilters{grid-template-columns:repeat(2,minmax(0,1fr))}.reportCards{grid-template-columns:repeat(2,1fr)}.reportGrid2{grid-template-columns:1fr}}@media(max-width:600px){.reportFilters,.reportCards{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.reportTabs{display:none!important}.layout{display:block!important}.main{padding:0!important}.reportBox,.reportCard,.panel{box-shadow:none!important}}


.dashboardEmpty{padding:22px;text-align:center;border:1px dashed #294f79;border-radius:12px;color:#8faac0}
.liveHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.liveHeader h3{margin:0}.liveMeta{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.livePill{padding:6px 9px;border-radius:999px;background:#35151a;border:1px solid #6f3038;color:#efc2c6;font-size:10px;font-weight:900}
.liveActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.liveActions .btn{width:100%}
.liveProgressText{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#d7adb1;margin:8px 0 5px}


/* v28 - Grupos da Copa mais compactos, alinhados ao padrão das Equipes */
#cupGroups .cupGrid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));
  gap:13px;
  align-items:start;
}
#cupGroups .groupCard{
  background:#081d33;
  border:1px solid #173956;
  border-radius:13px;
  box-shadow:none;
  min-width:0;
}
#cupGroups .groupHead{
  padding:11px 13px;
  background:#0b2945;
  gap:10px;
}
#cupGroups .groupHead b{
  color:#f3c43e;
  font-size:14px;
}
#cupGroups .groupHead span{
  font-size:10px;
  color:#9fc0d9;
  font-weight:900;
  white-space:nowrap;
}
#cupGroups .groupPlayers{
  padding:7px 10px;
}
#cupGroups .groupPlayer{
  grid-template-columns:27px minmax(0,1fr) auto;
  gap:8px;
  padding:7px 3px;
  border-bottom:1px solid #12304a;
  min-width:0;
}
#cupGroups .groupPlayer .num{
  width:27px;
  height:27px;
  border-radius:8px;
  background:#123d61;
  font-size:11px;
  flex:0 0 auto;
}
#cupGroups .groupPlayer>div{
  min-width:0;
  line-height:1.15;
}
#cupGroups .groupPlayer>div b{
  display:block;
  font-size:11px;
  overflow-wrap:anywhere;
}
#cupGroups .groupPlayer small{
  font-size:9px;
  color:#89a9c2;
}
#cupGroups .seed{
  font-size:9px;
  padding:3px 5px;
  border-radius:999px;
  background:#3a2e08;
  border:1px solid #6b5613;
  white-space:nowrap;
}
@media(max-width:760px){
  #cupGroups .cupGrid{grid-template-columns:1fr}
}


/* v29 - refinamento visual da Copa */
#cupGroups .groupPlayer{
  display:grid;
  grid-template-columns:27px minmax(0,1fr) auto;
  align-items:center;
  column-gap:8px;
  padding:7px 3px;
}
#cupGroups .groupPlayer>div{
  display:block;
  min-width:0;
  line-height:1.2;
}
#cupGroups .groupPlayer>div b{
  display:block;
  margin:0 0 2px 0;
  padding:0;
  border:0;
  line-height:1.2;
}
#cupGroups .groupPlayer>div br{display:none}
#cupGroups .groupPlayer small{
  display:block;
  margin:0;
  padding:0;
  border:0;
  line-height:1.25;
}
#cupGroups .seed{
  align-self:center;
  justify-self:end;
}

/* Confrontos: impede nomes, placar e textos de invadirem outras colunas */
#cupGames .fixtureRounds{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));
  gap:12px;
}
#cupGames .roundBox{
  min-width:0;
  overflow:hidden;
}
#cupGames .matchRow{
  display:grid;
  grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);
  gap:8px;
  align-items:center;
  min-width:0;
  padding:8px;
}
#cupGames .matchRow span{
  display:block;
  min-width:0;
  max-width:100%;
  font-size:11px;
  line-height:1.2;
  overflow-wrap:anywhere;
  word-break:normal;
}
#cupGames .matchRow span:first-child{
  text-align:right;
}
#cupGames .matchRow span:last-child{
  text-align:left;
}
#cupGames .matchRow .vs{
  width:72px;
  min-width:72px;
  max-width:72px;
  text-align:center;
  font-size:10px;
  line-height:1.15;
  white-space:normal;
  overflow-wrap:anywhere;
}
#cupGames .roundTitle{
  gap:8px;
  flex-wrap:wrap;
}
@media(max-width:650px){
 #cupGames .matchRow{
   grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);
   gap:5px;
 }
 #cupGames .matchRow .vs{
   width:54px;min-width:54px;max-width:54px;font-size:9px;
 }
}


/* v30 - status dos confrontos sempre em uma linha */
#cupGames .matchRow{
  grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);
}
#cupGames .matchRow .vs{
  width:92px;
  min-width:92px;
  max-width:92px;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  font-size:9px;
}
@media(max-width:650px){
 #cupGames .matchRow{
   grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);
 }
 #cupGames .matchRow .vs{
   width:82px;
   min-width:82px;
   max-width:82px;
   font-size:8px;
 }
}


/* v32 - confrontos da Copa: nomes em uma linha e X no centro */
#cupGames .matchRow{
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);
  gap:8px;
}
#cupGames .matchRow span:first-child,
#cupGames .matchRow span:last-child{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  overflow-wrap:normal;
  word-break:normal;
}
#cupGames .matchRow .vs{
  width:34px;
  min-width:34px;
  max-width:34px;
  white-space:nowrap;
  font-size:11px;
  overflow:visible;
}
@media(max-width:650px){
 #cupGames .matchRow{
   grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);
 }
 #cupGames .matchRow .vs{
   width:28px;
   min-width:28px;
   max-width:28px;
   font-size:10px;
 }
}


/* v37 - área pessoal do competidor */
.studentSimpleCompetition .competitionCardTop{align-items:center}
.studentSimpleCompetition h3{margin:0}
.studentPersonalStats{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
 gap:10px;
}
.studentPersonalStats>div{
 background:#081d33;
 border:1px solid #173956;
 border-radius:12px;
 padding:12px;
 text-align:center;
 min-width:0;
}
.studentPersonalStats small{
 display:block;
 color:#8faabd;
 font-size:9px;
 font-weight:800;
 letter-spacing:.7px;
 margin-bottom:5px;
}
.studentPersonalStats b{
 display:block;
 color:#f3c94b;
 font-size:17px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.studentPersonalList{display:grid;gap:8px}
.studentPersonalRow{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 gap:12px;
 align-items:center;
 padding:10px 11px;
 border:1px solid #173956;
 border-radius:10px;
 background:#07192d;
}
.studentPersonalRow.current{border-color:#c99c2d}
.studentPersonalRow small{display:block;color:#8faabd;font-size:9px;margin-bottom:3px}
.studentPersonalRow b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.studentPersonalResult{text-align:right;min-width:90px}
.studentPersonalResult b{color:#f3c94b}
.studentPersonalResult small{margin:3px 0 0}
@media(max-width:600px){
 .studentPersonalStats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .studentPersonalRow{grid-template-columns:minmax(0,1fr) 82px}
}


/* v38 - ação de participação dentro da competição */
#studentCompetitionDetail .btn.gold{
 min-width:150px;
}


/* v39 - botão CONFRONTO sempre visível na área pessoal */
.studentConfrontationBar{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:14px;
 padding:14px 16px;
 border:1px solid #2b557a;
 border-radius:13px;
 background:linear-gradient(135deg,#0a2847,#0b213c);
}
.studentConfrontationBar>div{min-width:0}
.studentConfrontationBar small{
 display:block;
 color:#8faabd;
 font-size:9px;
 font-weight:800;
 letter-spacing:.8px;
 margin-bottom:4px;
}
.studentConfrontationBar b{
 display:block;
 color:#fff;
 font-size:13px;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.studentConfrontationBar .btn{
 flex:0 0 auto;
 min-width:150px!important;
}
@media(max-width:560px){
 .studentConfrontationBar{align-items:stretch;flex-direction:column}
 .studentConfrontationBar .btn{width:100%}
}


/* AUTENTICAÇÃO E ADMINISTRAÇÃO */
.authShell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#123c70 0,#07152b 38%,#050d19 100%)}
.authCard{width:min(430px,100%);padding:30px;border-radius:22px;background:linear-gradient(180deg,#102b49,#081a2e);border:1px solid #315d8b;box-shadow:0 22px 60px rgba(0,0,0,.35)}
.authLogo{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;margin:0 auto 14px;background:linear-gradient(145deg,#f7c743,#e6a813);font-size:38px}
.authCard h2{text-align:center;margin:0 0 7px}.authCard>p{text-align:center;color:#9fb3c8;margin:0 0 22px}.authMainBtn{width:100%;margin-top:18px}.authBackBtn{width:100%;margin-top:9px}
.authHint{margin-top:16px;padding:10px 12px;border-radius:10px;background:#0b213c;color:#8faac0;font-size:11px;text-align:center}
.authError{margin-top:12px;padding:10px 12px;border-radius:10px;background:#451923;border:1px solid #79313e;color:#ffc2cb;font-size:12px;font-weight:800}
.accountPill{padding:7px 11px;border-radius:999px;background:#0b2947;border:1px solid #2d5d86;color:#cde0ef;font-size:11px;font-weight:900}
.adminMain{max-width:1500px;margin:0 auto;padding:26px}.adminStats{margin-bottom:20px}.adminGrid{align-items:start}.adminClassCatalog{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.adminClassChip{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:10px;background:#0a2743;border:1px solid #28577d;color:#d5e5f1;font-size:11px;font-weight:800}
.adminClassChip button{border:0;background:transparent;color:#ff9aa9;cursor:pointer;font-weight:900}.adminTeacherList{display:grid;gap:12px;margin-top:14px}
.adminTeacherCard{padding:14px;border-radius:14px;background:#081d33;border:1px solid #28557b}.adminTeacherTop{display:flex;justify-content:space-between;gap:10px;align-items:start}.adminTeacherTop h4{margin:0}.adminTeacherTop small{color:#8faac0}
.adminTeacherActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.adminAssignment{margin-top:12px;padding-top:12px;border-top:1px solid #173b5b}.adminAssignmentGrid{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.adminAssignmentGrid label{display:flex;align-items:center;gap:5px;padding:6px 8px;border-radius:8px;background:#0b2947;border:1px solid #265377;font-size:10px;color:#d5e5f1}
.accountInfo{padding:12px;border-radius:12px;background:#0a2743;border:1px solid #275578;line-height:1.7;color:#c8dbea;font-size:12px}
@media(max-width:720px){.adminMain{padding:16px}.accountPill{display:none}}


.adminClassRosterList{display:grid!important;gap:10px!important}
.adminRosterCard{padding:12px;border-radius:12px;background:#081d33;border:1px solid #28557b}
.adminRosterTop{display:flex;justify-content:space-between;align-items:center;gap:10px}
.adminRosterTop h4{margin:0}.adminRosterTop small{color:#8faac0}
.adminRosterNames{margin-top:9px;padding-top:9px;border-top:1px solid #173b5b;color:#bcd0df;font-size:11px;line-height:1.55}

/* v46 - utilidades Cloud; não alteram o layout original */
.cloudBadge{display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:5px 8px;border-radius:999px;background:#0d4932;color:#9ef0bb;border:1px solid #23724f;font-size:10px;font-weight:900}
.cloudCode{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.3px;color:#ffd45d;font-weight:1000}

/* v47.3 - acesso público integrado à interface, sem prompt nativo */
.arenaAccessBox{margin-top:16px;padding:14px;border:1px solid #2b5689;border-radius:13px;background:#081d33}
.arenaAccessError{margin-top:12px;padding:10px 12px;border-radius:10px;background:#451923;border:1px solid #79313e;color:#ffc2cb;font-size:12px;font-weight:800}
.arenaConnectedBox{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 14px;border-radius:12px;background:#0c2a25;border:1px solid #2f8154}
.arenaConnectedBox>div{min-width:0}.arenaConnectedBox small{display:block;color:#8fcdb4;font-size:9px;font-weight:900;letter-spacing:.8px}.arenaConnectedBox b{display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arenaConnectedBox .btn{flex:0 0 auto;padding:8px 10px;font-size:11px}
@media(max-width:560px){.arenaConnectedBox{align-items:stretch;flex-direction:column}.arenaConnectedBox .btn{width:100%}}
