:root{
 --bg:#f4f7fb;--card:#fff;--text:#122033;--muted:#667085;--line:#e2e8f0;
 --primary:#2563eb;--nav:#0f172a;--ok:#166534;--danger:#991b1b
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}
a{color:var(--primary);text-decoration:none}
.container{width:min(1180px,94%);margin:auto}
.topbar{background:var(--nav);color:#fff}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0}
.brand{font-weight:800}
.navlinks{display:flex;gap:8px;flex-wrap:wrap}
.navlinks a{color:#fff;padding:8px 10px;border-radius:8px}
.hero{background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;padding:28px 0}
.hero h1{margin:0 0 6px;font-size:clamp(26px,4vw,38px)}
.hero p{margin:0;color:#dbeafe}
main.container{padding:22px 0 40px}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-12{grid-column:span 12}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 28px #1020330a}
.card h1,.card h2,.card h3{margin-top:0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.stat b{display:block;font-size:26px}.stat span,.small{font-size:12px;color:var(--muted)}
.field{margin-bottom:13px}.field label{display:block;font-weight:700;margin-bottom:6px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd5e1;border-radius:9px;font:inherit;background:#fff}
textarea{min-height:120px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:10px 13px;font-weight:700;cursor:pointer}
.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:#e8eef7;color:#172033}.btn-danger{background:#fee2e2;color:#991b1b}.btn-ok{background:#dcfce7;color:#166534}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:16px}.flash.ok{background:#dcfce7;color:#166534}.flash.err{background:#fee2e2;color:#991b1b}
.item{border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:10px}.item h3{margin:4px 0 8px}
.matter{font-size:12px;text-transform:uppercase;color:#1d4ed8;font-weight:800}.meta{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.ativa,.entregue{background:#dcfce7;color:#166534}.proxima,.pendente{background:#dbeafe;color:#1e40af}.encerrada{background:#eef2f7;color:#475569}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}
table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f8fafc;font-size:12px;color:#475569}
.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a,#1d4ed8);padding:20px}.login-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:28px;box-shadow:0 30px 90px #0008}
.progress{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:#2563eb}
.question{padding:16px;border:1px solid var(--line);border-radius:14px;margin-bottom:14px}.option{display:block;padding:9px 11px;border:1px solid var(--line);border-radius:9px;margin:7px 0}
@media(max-width:900px){
 .topbar .container{align-items:flex-start;flex-direction:column}
 .navlinks{width:100%;overflow:auto;flex-wrap:nowrap}
 .navlinks a{white-space:nowrap;background:#ffffff0b}
 .stats{grid-template-columns:repeat(2,1fr)}
 .col-4,.col-5,.col-6,.col-7,.col-8,.col-12{grid-column:span 12}
}
@media(max-width:600px){
 .container{width:95%}.card{padding:14px}.stats{gap:8px}.stat{padding:12px}
 .actions .btn,.btn{width:100%}.meta{display:block}.meta span{display:block;margin:3px 0}
}

/* Recursos acadêmicos: controles de toque e conteúdo sem rolagem lateral. */
input[type=checkbox],input[type=radio]{width:auto;min-width:18px;min-height:18px;accent-color:var(--primary)}
.card,.grid>*{min-width:0}.texto-longo,.item,.question{overflow-wrap:anywhere}
.filtros{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.filtros>.field{flex:1 1 200px}
.chamada-aluno{background:white;border:1px solid var(--line);border-radius:14px;padding:14px;margin:16px 0;min-width:0}
.chamada-aluno legend{font-weight:700;overflow-wrap:anywhere;max-width:100%;padding:0 6px}
.presenca-opcoes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.presenca-opcoes label{position:relative;min-width:0;cursor:pointer}
.presenca-opcoes input{position:absolute;opacity:0}
.presenca-opcoes span{display:flex;min-height:48px;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:9px;font-size:14px}
.presenca-opcoes input:checked+span{background:#dbeafe;border-color:#2563eb;color:#1e40af;font-weight:bold}
.presenca-opcoes input[value=F]:checked+span{background:#fee2e2;border-color:#dc2626;color:#991b1b}
.presenca-opcoes input[value=J]:checked+span{background:#fef3c7;border-color:#d97706;color:#92400e}
.presenca-opcoes input:focus-visible+span{outline:3px solid #0f172a;outline-offset:2px}
.chamada-salvar{position:sticky;bottom:0;padding:12px;background:#f4f7fbf0;padding-bottom:max(12px,env(safe-area-inset-bottom))}
summary{cursor:pointer;padding:10px 0;overflow-wrap:anywhere}
@media(max-width:900px){.navlinks{flex-wrap:wrap;overflow:visible}.navlinks a{white-space:normal}.filtros{display:block}.filtros button{margin-bottom:12px}}
@media print{.topbar,.no-print,.chamada-salvar{display:none!important}body{background:#fff}.container{width:100%}.card{box-shadow:none}.item{break-inside:avoid}.card{border:0}a{color:#000}}
