:root{
  --papel:#F2EBDF; --papel-claro:#F8F4EC; --laranja:#F4721B; --teal:#1B9AA0;
  --turquesa:#2EC4CC; --teal-escuro:#0E7377; --azul-faixa:#4A87A0; --azul:#1A5276;
  --marinho:#1F3A5F; --vermelho:#C0392B; --vermelho-escuro:#922B21; --verde:#2D6A4F;
  --verde-escuro:#1B4332; --amarelo:#E8C547; --tinta:#2B3A4A;
  --display:'Dela Gothic One',sans-serif; --body:'Lora',serif; --ui:'Barlow Condensed',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background-color:var(--papel);
  background-image:radial-gradient(rgba(43,58,74,0.05) 1px,transparent 1.2px),radial-gradient(rgba(244,114,27,0.04) 1px,transparent 1.2px);
  background-size:18px 18px,29px 29px;background-position:0 0,9px 13px;
  color:var(--tinta);font-family:var(--body);line-height:1.6;overflow-x:hidden;min-height:100vh;
}
.hide{display:none!important}
.wrap{max-width:1100px;margin:0 auto;padding:16px}
/* HEADER */
header.topbar{background:var(--papel-claro);border-bottom:3px solid var(--laranja);position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(31,58,95,.08)}
.topbar-in{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.topbar img{height:46px;width:auto}
.topbar .ev{font-family:var(--display);font-size:.95rem;color:var(--marinho);line-height:1.1}
.topbar .ev small{display:block;font-family:var(--ui);font-weight:600;color:var(--laranja);font-size:.72rem;letter-spacing:.5px}
.topbar .sp{flex:1}
.btn-site{font-family:var(--ui);font-weight:600;border:2px solid var(--laranja);color:var(--laranja);background:transparent;padding:7px 14px;border-radius:8px;text-decoration:none;font-size:.85rem;transition:.15s;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.btn-site:hover{background:var(--laranja);color:#fff}
.topbar .who{font-family:var(--ui);font-weight:600;color:var(--teal-escuro);font-size:.9rem}
.btn-sair{font-family:var(--ui);font-weight:600;background:none;border:none;color:var(--vermelho);cursor:pointer;font-size:.85rem}
/* BOTOES */
.btn{font-family:var(--ui);font-weight:700;letter-spacing:.5px;border:none;border-radius:10px;padding:12px 22px;font-size:1rem;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn-pri{background:var(--laranja);color:#fff}.btn-pri:hover{background:#d8620f}
.btn-sec{background:var(--teal);color:#fff}.btn-sec:hover{background:var(--teal-escuro)}
.btn-out{background:transparent;border:2px solid var(--marinho);color:var(--marinho)}.btn-out:hover{background:var(--marinho);color:#fff}
.btn-success{background:var(--verde);color:#fff}.btn-success:hover{background:var(--verde-escuro)}
.btn-danger{background:var(--vermelho);color:#fff}.btn-danger:hover{background:var(--vermelho-escuro)}
.btn-sm{padding:7px 14px;font-size:.85rem;border-radius:8px}
.btn:disabled{opacity:.45;cursor:not-allowed}
/* ENTRADA */
.entrada{min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 16px;gap:18px}
.entrada img{width:200px;max-width:60vw;filter:drop-shadow(0 8px 24px rgba(31,58,95,.18))}
.entrada h1{font-family:var(--display);color:var(--marinho);font-size:1.5rem;line-height:1.2}
.entrada .lema{font-family:var(--body);font-style:italic;color:var(--teal-escuro);font-size:1.05rem;max-width:480px}
.entrada-btns{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;margin-top:10px}
.entrada-data{font-family:var(--ui);font-weight:600;color:var(--laranja);letter-spacing:1px}
/* CARD/LOGIN */
.auth-box{max-width:380px;margin:8vh auto;background:var(--papel-claro);border-radius:16px;padding:30px 26px;box-shadow:0 10px 40px rgba(31,58,95,.12);border-top:5px solid var(--laranja)}
.auth-box h2{font-family:var(--display);color:var(--marinho);font-size:1.2rem;text-align:center;margin-bottom:6px}
.auth-box .sub{text-align:center;font-style:italic;color:var(--teal-escuro);margin-bottom:20px;font-size:.92rem}
label{display:block;font-family:var(--ui);font-weight:600;color:var(--marinho);margin:14px 0 5px;letter-spacing:.4px}
input[type=text],input[type=password],input[type=number],textarea{width:100%;padding:11px 13px;border:2px solid #d8cfbe;border-radius:9px;font-family:var(--body);font-size:1rem;background:#fff;color:var(--tinta)}
input:focus,textarea:focus{outline:none;border-color:var(--laranja)}
.hint{font-family:var(--ui);font-size:.8rem;color:var(--azul-faixa);margin-top:14px;text-align:center}
.err{color:var(--vermelho);font-family:var(--ui);font-weight:600;font-size:.88rem;margin-top:10px;text-align:center}
/* SECAO TITULOS */
h2.sec{font-family:var(--display);color:var(--marinho);font-size:1.25rem;margin:6px 0 16px;display:flex;align-items:center;gap:10px}
h2.sec i{color:var(--laranja)}
.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:8px}
/* CARDS PROVA */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.pcard{background:var(--papel-claro);border-radius:14px;padding:18px;box-shadow:0 4px 16px rgba(31,58,95,.07);border-left:5px solid var(--teal);cursor:pointer;transition:.15s}
.pcard:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(31,58,95,.13)}
.pcard h3{font-family:var(--display);font-size:1rem;color:var(--marinho);margin-bottom:8px}
.pcard .prog{font-family:var(--ui);font-weight:600;font-size:.9rem;color:var(--teal-escuro)}
.pbar{height:9px;background:#e3dccb;border-radius:6px;overflow:hidden;margin-top:10px}
.pbar span{display:block;height:100%;background:linear-gradient(90deg,var(--laranja),var(--amarelo));transition:.4s}
.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
.s-nao{background:#c9c0ae}.s-rascunho{background:var(--amarelo)}.s-conf{background:var(--verde)}.s-bloq{background:var(--azul-faixa)}
.jr-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--ui);font-size:.85rem;padding:6px 0;border-bottom:1px dashed #e3dccb}
.jr-line>b{min-width:80px;color:var(--marinho)}
.jr-chips{display:flex;gap:8px;flex-wrap:wrap}
.jr-chip{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid #e3dccb;border-radius:20px;padding:3px 10px;font-weight:600;color:var(--tinta)}
.jr-reabrir{background:var(--laranja);color:#fff;border:none;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:.7rem;display:inline-flex;align-items:center;justify-content:center;margin-left:2px}
.jr-reabrir:hover{background:#d8620f}
.jrow{background:var(--papel-claro);border-radius:11px;padding:13px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:0 3px 10px rgba(31,58,95,.06)}
.jrow-off{opacity:.6}
.jr-info{flex:1;min-width:180px}
.jr-info b{font-family:var(--ui);font-weight:700;color:var(--marinho);display:block;font-size:1.02rem}
.jr-info small{font-style:italic;color:var(--teal-escuro)}
.jr-info code{font-family:var(--ui);background:#fff;border:1px solid #e3dccb;border-radius:5px;padding:1px 6px;font-style:normal}
.jr-acoes{display:flex;gap:6px;flex-wrap:wrap}
.jr-acoes .btn-sm{padding:7px 11px}
select:focus{outline:none;border-color:var(--laranja)}
/* LISTA TURMAS */
.tlist{display:flex;flex-direction:column;gap:10px}
.trow{background:var(--papel-claro);border-radius:11px;padding:13px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 3px 10px rgba(31,58,95,.06)}
.trow .tn{flex:1}
.trow .tn b{font-family:var(--ui);font-weight:700;color:var(--marinho);font-size:1.05rem;display:block}
.trow .tn small{font-style:italic;color:var(--teal-escuro)}
.badge{font-family:var(--ui);font-weight:600;font-size:.75rem;padding:3px 10px;border-radius:20px;letter-spacing:.5px;white-space:nowrap}
.bg-nao{background:#eee6d4;color:#8a7f68}.bg-rascunho{background:#fcf3cf;color:#9a7d10}.bg-conf{background:#d4efdf;color:var(--verde-escuro)}.bg-bloq{background:#d6e4f0;color:var(--azul)}
/* AVALIACAO */
.crit{background:var(--papel-claro);border-radius:13px;padding:18px;margin-bottom:14px;box-shadow:0 3px 12px rgba(31,58,95,.06)}
.crit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}
.crit-head h4{font-family:var(--ui);font-weight:700;color:var(--marinho);font-size:1.1rem}
.crit-head .max{font-family:var(--ui);font-weight:600;color:var(--laranja);font-size:.85rem;white-space:nowrap}
.crit p.d{font-size:.9rem;color:var(--tinta);margin-bottom:12px}
.crit-input{display:flex;align-items:center;gap:12px}
.crit-input input{max-width:120px;font-family:var(--display);font-size:1.1rem;text-align:center}
.q-btn{background:var(--teal);color:#fff;border:none;width:30px;height:30px;border-radius:50%;cursor:pointer;font-weight:700;font-family:var(--ui);flex-shrink:0}
.q-btn:hover{background:var(--teal-escuro)}
.crit .ierr{color:var(--vermelho);font-family:var(--ui);font-size:.82rem;margin-top:6px;font-weight:600}
.total-bar{position:sticky;bottom:0;background:var(--marinho);color:#fff;border-radius:13px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:8px;box-shadow:0 -4px 18px rgba(31,58,95,.2)}
.total-bar .tt{font-family:var(--display);font-size:1.2rem}.total-bar .tt b{color:var(--amarelo)}
.autosave{font-family:var(--ui);font-size:.78rem;color:var(--turquesa)}
/* MODAL */
.modal-bg{position:fixed;inset:0;background:rgba(31,58,95,.55);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}
.modal{background:var(--papel-claro);border-radius:16px;max-width:560px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-h{padding:18px 22px;border-bottom:2px solid #e3dccb;display:flex;align-items:center;justify-content:space-between}
.modal-h h3{font-family:var(--display);color:var(--marinho);font-size:1.1rem}
.modal-x{background:none;border:none;font-size:1.5rem;color:var(--vermelho);cursor:pointer;line-height:1}
.modal-b{padding:20px 22px}
.modal-f{padding:16px 22px;border-top:2px solid #e3dccb;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.rub-table{width:100%;border-collapse:collapse;margin-top:10px}
.rub-table td{padding:9px 10px;vertical-align:top;border-bottom:1px solid #e3dccb;font-size:.88rem}
.rub-lvl{font-family:var(--ui);font-weight:700;white-space:nowrap}
.rub-faixa{font-family:var(--ui);font-weight:600;color:var(--laranja);white-space:nowrap}
.lvl-Excelente{color:var(--verde)}.lvl-Bom{color:var(--teal-escuro)}.lvl-Regular{color:#9a7d10}.lvl-Insuficiente{color:var(--vermelho)}
.rev-line{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #d8cfbe;font-family:var(--ui)}
.rev-line b{color:var(--marinho)}.rev-line span{font-weight:700;color:var(--laranja)}
/* TABS */
.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.tab{font-family:var(--ui);font-weight:600;padding:9px 18px;border-radius:9px 9px 0 0;background:#e3dccb;color:var(--marinho);border:none;cursor:pointer}
.tab.active{background:var(--laranja);color:#fff}
/* TABELA STATUS */
.tbl-scroll{overflow-x:auto;border-radius:12px;box-shadow:0 4px 16px rgba(31,58,95,.07)}
table.matrix{border-collapse:collapse;width:100%;background:var(--papel-claro);min-width:620px}
table.matrix th,table.matrix td{padding:10px 12px;text-align:center;font-family:var(--ui);border:1px solid #e3dccb;font-size:.9rem}
table.matrix th{background:var(--marinho);color:#fff;font-weight:600}
table.matrix td.tname{text-align:left;font-weight:700;color:var(--marinho)}
.cell{display:inline-block;width:26px;height:26px;border-radius:6px;line-height:26px;color:#fff;font-weight:700}
.c-verde{background:var(--verde)}.c-amarelo{background:var(--amarelo);color:var(--tinta)}.c-vermelho{background:var(--vermelho)}.c-cinza{background:#c9c0ae}
/* RANKING */
.rank-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:760px){.rank-grid{grid-template-columns:1fr}.entrada h1{font-size:1.2rem}}
.rank-col h3{font-family:var(--display);color:var(--marinho);font-size:1.05rem;text-align:center;margin-bottom:12px;padding:10px;background:var(--papel-claro);border-radius:10px;border-bottom:4px solid var(--laranja)}
.rank-item{background:var(--papel-claro);border-radius:11px;padding:12px 15px;margin-bottom:9px;display:flex;align-items:center;gap:12px;box-shadow:0 3px 10px rgba(31,58,95,.06)}
.rank-pos{font-family:var(--display);font-size:1.3rem;color:var(--azul-faixa);width:34px;text-align:center}
.rank-item.gold{border-left:5px solid var(--amarelo)}.rank-item.gold .rank-pos{color:var(--laranja)}
.rank-item .ri-n{flex:1}.rank-item .ri-n b{font-family:var(--ui);font-weight:700;color:var(--marinho);display:block}
.rank-item .ri-n small{font-style:italic;color:var(--teal-escuro)}
.rank-nota{font-family:var(--display);font-size:1.3rem;color:var(--verde)}
.parcial{font-family:var(--ui);font-size:.72rem;color:var(--laranja);font-weight:600}
/* GRID FORMULARIO ADMIN NOTAS */
.nota-row{background:var(--papel-claro);border-radius:11px;padding:13px 16px;margin-bottom:9px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;box-shadow:0 3px 10px rgba(31,58,95,.06)}
.nota-row .nn{flex:1;min-width:140px;font-family:var(--ui);font-weight:700;color:var(--marinho)}
.nota-row input{max-width:130px}
.nota-calc{font-family:var(--display);color:var(--laranja);font-size:1.05rem;min-width:60px;text-align:center}
.toggle{display:inline-flex;border:2px solid #d8cfbe;border-radius:9px;overflow:hidden}
.toggle button{font-family:var(--ui);font-weight:700;border:none;padding:8px 16px;cursor:pointer;background:#fff;color:var(--tinta)}
.toggle button.on-100{background:var(--verde);color:#fff}.toggle button.on-0{background:var(--vermelho);color:#fff}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--verde);color:#fff;font-family:var(--ui);font-weight:600;padding:13px 26px;border-radius:30px;box-shadow:0 8px 30px rgba(0,0,0,.25);z-index:200;opacity:0;transition:.3s}
.toast.show{opacity:1}
.toast.err-toast{background:var(--vermelho)}
.note-banner{background:#fcf3cf;border:1px solid var(--amarelo);border-radius:10px;padding:10px 14px;font-family:var(--ui);font-size:.88rem;color:#7a6410;margin-bottom:14px}
.cred-box{background:#fff;border:1px dashed var(--teal);border-radius:9px;padding:10px 14px;font-family:var(--ui);font-size:.85rem;margin-top:8px}
.demo-pill{position:fixed;top:8px;right:8px;background:var(--vermelho);color:#fff;font-family:var(--ui);font-weight:700;font-size:.7rem;padding:4px 10px;border-radius:20px;z-index:300;letter-spacing:.5px}
.mini{font-family:var(--ui);font-size:.8rem;color:var(--azul-faixa)}
.reset-link{position:fixed;bottom:8px;left:8px;font-family:var(--ui);font-size:.7rem;color:var(--azul-faixa);cursor:pointer;z-index:300;text-decoration:underline}
/* ===== Ajustes específicos da versão PHP ===== */
.flash{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);font-family:var(--ui);font-weight:600;padding:13px 26px;border-radius:30px;box-shadow:0 8px 30px rgba(0,0,0,.25);z-index:200;color:#fff}
.flash-ok{background:var(--verde)}.flash-erro{background:var(--vermelho)}
a{color:var(--teal-escuro)}
.link-voltar{font-family:var(--ui);font-weight:600;color:var(--marinho);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.checkbox-line{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-family:var(--body)}
.checkbox-line input{width:auto;margin-top:4px}
form.inline{display:inline}
.regras-box{background:var(--papel-claro);border-radius:13px;padding:20px;box-shadow:0 3px 12px rgba(31,58,95,.06);margin-bottom:16px;line-height:1.7}
.regras-box h4{font-family:var(--ui);color:var(--marinho);margin:14px 0 4px}
