/* Sistema de Gestão Académica — estilo
   Identidade visual do ISPG: verde e laranja, Manrope e Barlow Condensed (fontes incluídas em assets/fonts). */
@font-face{font-family:"Manrope";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/manrope-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/manrope-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/manrope-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/manrope-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/barlow-condensed-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/barlow-condensed-latin-700-normal.woff2") format("woff2")}

:root{
  /* Identidade ISPG */
  --green:#3bb64c; --green-dark:#00391c; --orange:#f58331; --orange-soft:#ffb074; --orange-pale:#ffd2a8;
  --bg:#f6f4ee; --bg-alt:#edeadf; --surface:#ffffff; --ink:#14201f; --muted:#4a5654; --line:#dad6c8; --b:#fff;
  --font-body:"Manrope",system-ui,sans-serif;
  --font-title:"Barlow Condensed","Arial Narrow",sans-serif;

  /* Papéis no sistema (derivados da identidade) */
  --papel:var(--bg); --folha:var(--surface); --tinta:var(--ink); --suave:var(--muted); --linha:var(--line); --linha-forte:#c2bdab;
  --acento:var(--green-dark); --acento-vivo:var(--green); --acento-claro:#e4f3e3; --topo:var(--green-dark); --topo-tinta:#e9f1ec;
  --bom:#1f7a35; --bom-claro:#e2f2e1; --aviso:#a4500c; --aviso-claro:#fde6cf;
  --mau:#b0362c; --mau-claro:#f9e3e0; --info:#2c5f8a; --info-claro:#e3edf6;
  --letra:var(--font-body);
  --num:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font:15px/1.5 var(--letra)}
a{color:var(--acento)}
:focus-visible{outline:2px solid var(--acento);outline-offset:2px}
h1,h2,h3{line-height:1.15;text-wrap:balance;font-family:var(--font-title);font-weight:700;letter-spacing:.005em}

/* topo */
.topo{background:var(--topo);color:var(--topo-tinta);border-bottom:4px solid var(--green)}
.topo-in{max-width:1240px;margin:0 auto;padding:0 16px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;min-height:58px}
.marca{display:flex;align-items:baseline;gap:10px;color:#fff;text-decoration:none;padding:12px 0}
.marca-sigla{font-family:var(--font-title);font-weight:700;letter-spacing:.06em;font-size:21px;background:var(--orange);color:var(--green-dark);padding:1px 9px;border-radius:4px}
.marca-nome{font-size:13px;color:var(--topo-tinta);opacity:.8}
.menu{display:flex;flex-wrap:wrap;gap:2px;flex:1}
.menu a{color:var(--topo-tinta);text-decoration:none;padding:8px 10px;border-radius:5px;font-size:14px}
.menu a:hover{background:rgba(255,255,255,.08)}
.menu a[aria-current="page"]{background:rgba(255,255,255,.1);color:var(--orange-soft);font-weight:700;box-shadow:inset 0 -3px 0 var(--orange)}
.conta{display:flex;align-items:center;gap:14px;font-size:13px}
.conta a,.conta .ligacao{color:var(--topo-tinta)}
.quem{opacity:.75}
.contador{background:var(--orange);color:var(--green-dark);border-radius:999px;padding:0 7px;font-weight:700;font-size:12px}
.menu-abrir,.menu-botao{display:none}
.inline{display:inline}
.ligacao{background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline}

/* conteúdo */
.conteudo{max-width:1240px;margin:0 auto;padding:26px 16px 60px}
.titulo-pagina{margin-bottom:18px}
.titulo-pagina h1{margin:0;font-size:34px}
.subtitulo{margin:4px 0 0;color:var(--suave)}
.rodape{max-width:1240px;margin:0 auto;padding:18px 16px 30px;color:var(--suave);font-size:12px;border-top:1px solid var(--linha)}

.aviso{padding:11px 14px;border-radius:6px;margin-bottom:14px;border:1px solid}
.aviso-ok{background:var(--bom-claro);border-color:var(--bom);color:var(--tinta)}
.aviso-erro{background:var(--mau-claro);border-color:var(--mau);color:var(--tinta)}
.aviso-info{background:var(--info-claro);border-color:var(--info);color:var(--tinta)}

.cartao{background:var(--folha);border:1px solid var(--linha);border-radius:8px;padding:18px;margin-bottom:20px}
.cartao h2{margin:0 0 4px;font-size:18px}
.cartao .nota-rodape{color:var(--suave);font-size:13px;margin:10px 0 0}
.grelha{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.numeros{display:flex;flex-wrap:wrap;gap:1px;background:var(--linha);border:1px solid var(--linha);border-radius:8px;overflow:hidden;margin-bottom:22px}
.numeros div{background:var(--folha);padding:14px 16px;flex:1 1 170px}
.numeros b{display:block;font-family:var(--font-title);font-size:32px;font-weight:700;font-variant-numeric:tabular-nums}
.numeros span{color:var(--suave);font-size:13px}

.seccao{font-family:var(--font-title);font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--green-dark);margin:24px 0 8px;font-weight:700}

/* tabelas */
.tabela{overflow-x:auto;background:var(--folha);border:1px solid var(--linha);border-radius:8px;margin-bottom:18px}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th{background:var(--bg-alt);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--suave);text-align:left;padding:10px 10px;border-bottom:1px solid var(--linha-forte);white-space:nowrap;font-weight:600}
td{padding:8px 10px;border-bottom:1px solid var(--linha);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--bg)}
.n{text-align:right;font-family:var(--num);font-size:14px;white-space:nowrap}
.c{text-align:center}
th.n{font-family:var(--letra);font-size:11.5px}
.na{color:var(--linha-forte)}
.baixa{color:var(--mau)}
.forte{font-weight:700}
.muted{color:var(--suave)}
.mono{font-family:var(--num);font-size:13.5px}
tfoot td{font-weight:700;border-top:1px solid var(--linha-forte)}

.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}
.p-bom{background:var(--bom-claro);color:var(--bom)} .p-mau{background:var(--mau-claro);color:var(--mau)}
.p-aviso{background:var(--aviso-claro);color:var(--aviso)} .p-info{background:var(--info-claro);color:var(--info)}
.p-neutro{background:var(--papel);color:var(--suave);border:1px solid var(--linha)}

/* formulários */
.btn{display:inline-block;border:1px solid var(--linha-forte);background:var(--folha);color:var(--tinta);padding:8px 14px;border-radius:6px;font:inherit;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:var(--tinta)}
.btn-p{background:var(--acento);border-color:var(--acento);color:#fff}
.btn-p:hover{background:var(--acento-vivo);border-color:var(--acento-vivo);color:var(--green-dark)}
.btn-perigo{color:var(--mau);border-color:var(--mau)}
.btn-peq{padding:4px 9px;font-size:13px}
.accoes{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--suave)}
input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=search],select,textarea{font:inherit;font-weight:400;color:var(--tinta);background:var(--folha);border:1px solid var(--linha-forte);border-radius:6px;padding:8px 10px;min-width:0}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 3px var(--acento-claro)}
textarea{min-height:90px;resize:vertical}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:end}
.form .todo{grid-column:1/-1}
input.nota{width:62px;text-align:right;font-family:var(--num);padding:6px 6px}
input.nota[readonly]{background:transparent;border-color:transparent}
input.nota.erro{border-color:var(--mau);background:var(--mau-claro)}
.barra-fixa{position:sticky;bottom:0;background:var(--folha);border:1px solid var(--linha);border-radius:8px;padding:12px 14px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;box-shadow:0 -4px 14px rgba(22,40,58,.06)}

.separadores{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--linha-forte);margin-bottom:16px}
.separadores a,.separadores span{padding:9px 14px;text-decoration:none;color:var(--suave);border-bottom:3px solid transparent;margin-bottom:-1px;font-weight:600;font-size:14px}
.separadores a[aria-current="page"]{color:var(--tinta);border-bottom-color:var(--orange)}
.separadores span{opacity:.45;cursor:not-allowed}

.vazio{text-align:center;padding:40px 16px;color:var(--suave)}
.vazio h2{color:var(--tinta);font-size:19px}

.lista-notif{list-style:none;margin:0;padding:0}
.lista-notif li{padding:12px 4px;border-bottom:1px solid var(--linha);display:flex;gap:14px;justify-content:space-between;align-items:flex-start}
.lista-notif li.nova{background:var(--acento-claro);padding-left:10px;padding-right:10px;border-radius:6px}
.lista-notif .quando{color:var(--suave);font-size:12.5px;white-space:nowrap}

/* entrada */
.entrada{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.entrada-lado{background:var(--topo);color:var(--topo-tinta);padding:48px 44px;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.entrada-lado h1{color:#fff;font-size:52px;line-height:1;margin:12px 0 14px;max-width:14ch}
.entrada-lado h1 em{font-style:normal;color:var(--orange-soft)}
.entrada-lado{border-right:6px solid var(--orange)}
.entrada-lado p{max-width:44ch;opacity:.85}
.entrada-form{display:flex;align-items:center;justify-content:center;padding:40px 18px}
.entrada-form form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px}
.entrada-form h2{margin:0;font-size:30px}
.codigo-mostrar{font-family:var(--num);font-size:22px;letter-spacing:.12em;background:var(--orange-pale);border:1px dashed var(--orange);padding:8px 14px;border-radius:6px;display:inline-block}

@media (max-width:820px){
  .menu-botao{display:inline-block;margin-left:auto;color:#fff;border:1px solid rgba(255,255,255,.3);padding:5px 12px;border-radius:5px;cursor:pointer;font-size:14px}
  .menu,.conta{display:none;flex-basis:100%}
  .menu-abrir:checked ~ .menu{display:flex;flex-direction:column;padding-bottom:8px}
  .menu-abrir:checked ~ .conta{display:flex;flex-wrap:wrap;padding-bottom:14px}
  .marca-nome{display:none}
  .entrada{grid-template-columns:1fr}
  .entrada-lado{padding:28px 20px}
  .entrada-lado h1{font-size:26px}
  .titulo-pagina h1{font-size:22px}
}

/* impressão de pautas e listas */
.pauta-cab{display:none}
@media print{
  @page{size:A4;margin:14mm 12mm}
  body{background:#fff;font-size:11pt}
  .topo,.rodape,.nao-imprimir,.filtros,.separadores,.aviso{display:none!important}
  .conteudo{padding:0;max-width:none}
  .tabela{border:0;overflow:visible}
  th,td{padding:4px 6px;border:1px solid #888!important}
  table{page-break-inside:auto} tr{page-break-inside:avoid}
  .pill{background:none!important;border:0!important;padding:0;color:#000!important;font-weight:400}
  .pauta-cab{display:block}
  .titulo-pagina{display:none}
}
.pauta-cab.sempre{display:block}
.pauta-cab{text-align:center;margin-bottom:12px}
.pauta-cab h2{margin:0;font-size:19pt;color:var(--green-dark)}
.pauta-cab p{margin:2px 0}
.pauta-dados{display:grid;grid-template-columns:1fr 1fr;gap:2px 30px;margin:10px 0;font-size:10.5pt;text-align:left}
.assinaturas{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:50px;text-align:center;font-size:10.5pt}
.assinaturas div{border-top:1px solid #000;padding-top:4px}
.duas-colunas{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
.duas-colunas.lista-detalhe{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
@media (max-width:900px){.duas-colunas,.duas-colunas.lista-detalhe{grid-template-columns:1fr}}
