:root{
  --bg:#07111f;--bg2:#0c1a2f;--panel:rgba(255,255,255,.08);--line:rgba(255,255,255,.1);
  --text:#f8fbff;--muted:#b9c6db;--brand:#0ea5e9;--brand2:#7c3aed;--accent:#22c55e;--danger:#ef4444;--warn:#f59e0b;
  --shadow:0 20px 50px rgba(0,0,0,.32);
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:
 radial-gradient(circle at top right, rgba(124,58,237,.22), transparent 20%),
 radial-gradient(circle at bottom left, rgba(14,165,233,.16), transparent 25%),
 linear-gradient(135deg,var(--bg),var(--bg2) 58%,#10182c);color:var(--text)}
button,input,select,textarea{font:inherit} button{cursor:pointer}
.hidden{display:none!important}
.small{font-size:.92rem}.muted{color:var(--muted)} .mono{font-family:ui-monospace,Consolas,monospace}
body.locked{overflow:hidden}
a{color:inherit}
.login{min-height:100vh;display:grid;place-items:center;padding:22px}
.login-wrap{width:min(1180px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.panel{background:rgba(255,255,255,.07);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}
.hero{padding:36px;position:relative;overflow:hidden}
.hero::after{content:'';position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(14,165,233,.26),transparent 65%)}
.logo-row{display:flex;gap:18px;align-items:center;margin-bottom:16px}
.logo-row img{width:140px;height:140px;object-fit:contain;border-radius:28px;background:rgba(255,255,255,.08);padding:12px}
.hero h1{margin:0;line-height:1.06}
.login-main-title{display:flex;flex-direction:column;gap:6px}
.login-sismat{
  display:block;
  font-size:34px;
  font-weight:900;
  letter-spacing:1px;
  text-shadow:0 0 10px rgba(255,255,255,.18);
}
.login-subtitle{
  display:block;
  font-size:13px;
  font-weight:600;
  color:var(--muted);
  line-height:1.35;
  max-width:420px;
}
.hero p{color:var(--muted);line-height:1.65;font-size:1.04rem;max-width:760px}
.tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.tag{padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--line);font-weight:700}
.login-card{padding:28px}
.tabs{display:flex;gap:8px;background:rgba(255,255,255,.05);padding:6px;border-radius:18px;margin-bottom:16px}
.tab{flex:1;border:0;background:transparent;color:#fff;padding:12px 14px;border-radius:14px;font-weight:800}
.tab.active{background:linear-gradient(135deg,var(--brand),var(--brand2))}
.grid{display:grid;gap:14px}
.row2,.row3,.row4{display:grid;gap:12px}
.row2{grid-template-columns:repeat(2,1fr)} .row3{grid-template-columns:repeat(3,1fr)} .row4{grid-template-columns:repeat(4,1fr)}
.field label{display:block;margin-bottom:6px;font-weight:700}
.field input,.field select,.field textarea{width:100%;padding:13px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:#fff;outline:none}
.field option{color:#081120}
.btn{border:0;padding:13px 16px;border-radius:16px;font-weight:900;transition:.2s ease}
.btn:hover{transform:translateY(-1px)}
.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}
.soft{background:rgba(255,255,255,.08);color:#fff;border:1px solid var(--line)}
.green{background:linear-gradient(135deg,#22c55e,#16a34a);color:#f7fff9}
.red{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff}
.gold{background:linear-gradient(135deg,#f59e0b,#fb923c);color:#1f2937}
.app{display:grid;grid-template-columns:300px 1fr;min-height:100vh}
.sidebar{background:rgba(4,9,18,.74);border-right:1px solid var(--line);padding:16px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:14px;align-items:center;padding:8px 10px 16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.brand img{width:58px;height:58px;object-fit:contain;padding:6px;background:rgba(255,255,255,.09);border-radius:18px}
.brand h2{margin:0;font-size:1.22rem}
.brand p{margin:4px 0 0;color:var(--muted);font-size:.92rem}
.status{padding:14px;border-radius:22px;border:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,rgba(14,165,233,.1),rgba(124,58,237,.08));margin:0 6px 16px}
.status .line{display:flex;justify-content:space-between;gap:10px;margin:8px 0}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--accent);box-shadow:0 0 16px rgba(34,197,94,.55)}
.nav{display:grid;gap:8px}
.nav button{display:flex;align-items:center;gap:12px;width:100%;background:rgba(255,255,255,.04);color:#fff;border:1px solid transparent;border-radius:18px;padding:13px 14px;text-align:left}
.nav button.active,.nav button:hover{background:linear-gradient(135deg,rgba(14,165,233,.14),rgba(124,58,237,.14));border-color:rgba(255,255,255,.12)}
.nav .ico{width:38px;height:38px;display:grid;place-items:center;background:rgba(255,255,255,.08);border-radius:14px}
.main{padding:24px}
.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.title h1{margin:0;font-size:clamp(1.6rem,3vw,2.7rem)}
.title p{margin:6px 0 0;color:var(--muted)}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--line);font-weight:700}
.hero-mini{padding:24px;border-radius:28px;background:
 radial-gradient(circle at top right,rgba(14,165,233,.14),transparent 28%),
 radial-gradient(circle at bottom left,rgba(124,58,237,.15),transparent 28%),
 rgba(255,255,255,.06);border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:18px}
.hero-mini h3{margin:0 0 8px;font-size:clamp(1.4rem,2.3vw,2.2rem)}
.hero-mini p{margin:0;color:#d7e2f4;line-height:1.55}
.cards4,.cards3,.cards2{display:grid;gap:16px;margin-bottom:18px}
.cards4{grid-template-columns:repeat(4,minmax(160px,1fr))}
.cards3{grid-template-columns:repeat(3,minmax(200px,1fr))}
.cards2{grid-template-columns:1.1fr .9fr}
.card-white{background:rgba(255,255,255,.96);color:#0f172a;border-radius:24px;padding:20px;box-shadow:var(--shadow)}
.card-white h4{margin:0 0 8px;color:#64748b}
.num{font-size:2.2rem;font-weight:900}
.glass{background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:26px;padding:20px;box-shadow:var(--shadow)}
.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.toolbar,.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.08);vertical-align:top;text-align:left}
th{text-transform:uppercase;font-size:.84rem;color:#dce7fb;letter-spacing:.04em}
.badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:7px 11px;font-weight:800;font-size:.84rem}
.ok{background:rgba(34,197,94,.14);color:#bbf7d0}
.warn{background:rgba(245,158,11,.14);color:#fde68a}
.bad{background:rgba(239,68,68,.14);color:#fecaca}
.soft-badge{background:rgba(255,255,255,.1);color:#fff}
.empty{padding:18px;border:1px dashed rgba(255,255,255,.18);border-radius:18px;color:#cdd8eb;text-align:center}
.modal-bg{position:fixed;inset:0;background:rgba(4,7,14,.7);display:none;place-items:center;padding:22px;z-index:1000}
.modal-bg.show{display:grid}
.modal{width:min(1120px,100%);max-height:90vh;overflow:auto;background:#101b31;border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:var(--shadow)}
.notice{position:fixed;top:10px;left:50%;transform:translateX(-50%);display:none;z-index:2000;padding:12px 16px;border-radius:16px;font-weight:800}
.notice.show{display:block}
.notice.ok{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.25);color:#d1fae5}
.notice.bad{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25);color:#fecaca}
.notice.warn{background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.25);color:#fde68a}
.answer-grid{display:grid;grid-template-columns:repeat(6,minmax(72px,1fr));gap:10px}
.answer-btn{border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px;background:rgba(255,255,255,.06);color:#fff;font-weight:900}
.answer-btn.sel{background:linear-gradient(135deg,var(--brand),var(--brand2))}
.answer-btn.special{font-size:.82rem}
.questao-card{padding:16px;border:1px solid rgba(14,165,233,.28);box-shadow:inset 0 0 0 1px rgba(124,58,237,.10)}
.questao-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.questao-num{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border-radius:14px;font-weight:900;background:linear-gradient(135deg,rgba(14,165,233,.18),rgba(124,58,237,.18));border:1px solid rgba(255,255,255,.10)}
.student-list{display:grid;gap:10px;max-height:58vh;overflow:auto}
.student-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:18px}
.student-item.active{outline:2px solid rgba(14,165,233,.5)}
.lista-correcao-scroll{max-height:60vh;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:20px}
.lista-correcao-scroll table thead th{position:sticky;top:0;background:#16233d;z-index:2}
.progress{height:12px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden}
.progress > div{height:100%;background:linear-gradient(135deg,var(--brand),var(--brand2))}
.rank-item{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.05);border:1px solid var(--line);margin-bottom:10px}
.pill{padding:6px 10px;border-radius:999px;font-weight:800;font-size:.8rem}
.pill.green{background:rgba(34,197,94,.16);color:#bbf7d0}
.pill.red{background:rgba(239,68,68,.16);color:#fecaca}
.pill.blue{background:rgba(14,165,233,.16);color:#bae6fd}
.switch{display:inline-flex;background:rgba(255,255,255,.08);padding:6px;border-radius:14px;gap:6px}
.switch button{padding:8px 12px;border:0;background:transparent;color:#fff;border-radius:10px}
.switch button.active{background:linear-gradient(135deg,var(--brand),var(--brand2))}
.report{background:#fff;color:#111827;padding:26px}
.report h1,.report h2,.report h3{color:#111827}
@media (max-width:1150px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.login-wrap,.cards2{grid-template-columns:1fr}.cards4,.cards3,.row4,.row3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){.row2,.row3,.row4,.cards4,.cards3,.cards2,.answer-grid{grid-template-columns:1fr}.main{padding:16px}}