/* Paleta: escalas de verde e vermelho (identidade dos Institutos Federais). Verde = ação/aprovação; vermelho = alerta/erro/destaque. */
:root{
  --v50:#eef7ef;--v100:#d8ecdc;--v300:#7cc48a;--v500:#2f9e41;--v700:#1e7430;--v900:#0f4a1d;
  --r50:#fcedee;--r100:#f8d4d6;--r300:#e8777b;--r500:#cd191e;--r700:#9c1217;
  --bg:#f3f8f4;--fg:#18241b;--mut:#4f5f53;--card:#fff;--bd:#cfdcd2;--ac:var(--v700);--ac-fg:#fff;--ac-fundo:var(--v50);
  --ok:var(--v700);--er:#b3141a;--wa:#8a5a00;--topo:var(--v900);--topo-fg:#fff;--faixa:var(--r500)}
@media (prefers-color-scheme:dark){:root{
  --bg:#0e1a12;--fg:#e4efe6;--mut:#9db3a2;--card:#16251b;--bd:#294633;--ac:#4cb85f;--ac-fg:#07200e;--ac-fundo:#1b3524;
  --ok:#68d07c;--er:#ff8a8f;--wa:#f0b955;--topo:#0a2a14;--topo-fg:#fff;--faixa:#e0393e}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
header{display:flex;gap:16px;align-items:center;padding:10px 16px;background:var(--topo);color:var(--topo-fg);border-bottom:4px solid var(--faixa);flex-wrap:wrap;position:sticky;top:0;z-index:20;box-shadow:0 4px 14px rgba(0,0,0,.28)}
.marca-sigma{display:flex;align-items:center;gap:8px;font-size:18px;letter-spacing:.2px}
.logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--v500);color:#fff;font-weight:700;box-shadow:inset 0 -5px 0 var(--r500)}
/* abas em caixas flutuantes: cada aba é uma caixa elevada que sobe ao passar o mouse; a ativa fica destacada e mais alta */
header nav{display:flex;gap:8px;flex:1;flex-wrap:wrap;padding:4px 2px 6px}
header nav button{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:var(--topo-fg);padding:7px 11px;font-size:15px;border-radius:12px;cursor:pointer;font:inherit;
  box-shadow:0 3px 0 rgba(0,0,0,.28),0 6px 12px rgba(0,0,0,.22);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
header nav button:hover{background:rgba(255,255,255,.2);transform:translateY(-2px);box-shadow:0 5px 0 rgba(0,0,0,.28),0 10px 16px rgba(0,0,0,.28)}
header nav button:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(0,0,0,.28)}
header nav button.ativa{background:var(--card);color:var(--v900);border-color:var(--card);font-weight:700;transform:translateY(-3px);
  box-shadow:0 5px 0 var(--r500),0 12px 18px rgba(0,0,0,.32)}
@media (prefers-color-scheme:dark){header nav button.ativa{background:var(--ac);color:var(--ac-fg);border-color:var(--ac)}}
@media (prefers-reduced-motion:reduce){header nav button{transition:none}header nav button:hover,header nav button.ativa{transform:none}}
header nav button svg{width:22px;height:22px;flex:none}
.marca-sigma{cursor:pointer}
header button.link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);padding:6px 10px;border-radius:12px}
header button.link:hover{background:rgba(255,255,255,.2)}
header button.link svg{width:18px;height:18px}
#quem{color:#cfe6d4;font-size:14px;margin-left:auto}
header nav[hidden]{display:none}
header button.link{color:#fff}
main{max-width:920px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid var(--bd);border-top:3px solid var(--v500);border-radius:10px;padding:16px;margin:0 0 16px;box-shadow:0 1px 3px rgba(15,74,29,.08)}
h1,h2,h3{line-height:1.25;margin:0 0 12px}h1{font-size:22px;color:var(--ac)}h2{font-size:18px;color:var(--ac)}h3{font-size:16px}
label{display:block;font-weight:600;margin:12px 0 4px}
label small{font-weight:400;color:var(--mut)}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--bd);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--v500);outline-offset:1px}
select.v-ok{border-color:var(--v500);background:var(--v50);color:#0f4a1d}
select.v-er{border-color:var(--r500);background:var(--r50);color:#7a0e12}
@media (prefers-color-scheme:dark){select.v-pa{background:#3a2e10;color:#ffe3a0}input.falta{background:#3a1618}select.v-ok{background:#1b3524;color:#c8f0d1}select.v-er{background:#3a1618;color:#ffd3d5}}
select.v-pa{border-color:#c98a00;background:#fff4d6;color:#5c3d00}
.crit .aviso-obs{display:block;color:#8a5a00;margin-top:2px}.crit .aviso-obs[hidden]{display:none}.guia-escala span{display:block}
@media (prefers-color-scheme:dark){.crit .aviso-obs{color:#ffd27a}}
input.falta{border-color:var(--r500);background:var(--r50)}
textarea{min-height:88px;resize:vertical}
.linha{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.marca{display:flex;gap:8px;align-items:flex-start;font-weight:400;margin:6px 0}
.marca input{width:auto;margin-top:5px;accent-color:var(--v700)}
button.pri,button.sec{padding:9px 16px;border-radius:6px;border:1px solid var(--ac);cursor:pointer;font:inherit;font-weight:600}
button.pri{background:var(--ac);color:var(--ac-fg)}button.pri:hover{background:var(--v900);color:#fff}
button.sec{background:var(--ac-fundo);color:var(--ac)}button.sec:hover{background:var(--v100)}
button:disabled{opacity:.55;cursor:wait}
button.link{border:0;background:none;color:var(--er);cursor:pointer;font:inherit;padding:0}
.acoes{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;align-items:center}
.msg{white-space:pre-wrap;padding:10px 12px;border-radius:6px;border:1px solid var(--bd);border-left-width:5px;margin:12px 0}
.msg.er{border-color:var(--r500);background:var(--r50);color:#7a0e12}
.msg.ok{border-color:var(--v500);background:var(--v50);color:#0f4a1d}
.msg.wa{border-color:var(--wa);color:var(--wa)}
@media (prefers-color-scheme:dark){.msg.er{background:#3a1618;color:#ffd3d5}.msg.ok{background:#1b3524;color:#c8f0d1}}
.mut{color:var(--mut);font-size:14px}
table{border-collapse:collapse;width:100%;margin:8px 0}th,td{border:1px solid var(--bd);padding:6px 8px;text-align:left;vertical-align:top;font-size:14px}
th{background:var(--v700);color:#fff;border-color:var(--v700)}
tr:nth-child(even) td{background:var(--ac-fundo)}
.item .comando{font-weight:600;margin:12px 0}
.item .afirm{margin:4px 0 4px 18px}
.anexo{display:flex;gap:12px;align-items:flex-start;margin:8px 0}
.param{margin-bottom:14px}
.param .rot{font-weight:600;margin:12px 0 4px}
.param .rot small{font-weight:400;color:var(--mut)}
.param .valor{padding:8px 10px;border:1px solid var(--ac);border-radius:6px;background:var(--ac-fundo)}
.param .nota{margin:3px 0 4px}
.param .pergunta{font-weight:600;margin:8px 0 0}
.param .acoes{margin-top:8px}
.card details{margin:6px 0 10px}
.anexo>div{flex:1}
.mini{max-width:160px;max-height:110px;border:1px solid var(--bd,#ccc);border-radius:4px;background:#fff}
.item .alt{display:flex;gap:8px;margin:6px 0;padding:6px 8px;border-radius:6px;border:1px solid transparent}.item .alt b{min-width:24px;color:var(--ac)}
.item .gab{color:var(--ok);font-weight:700}
.item img.fig{max-width:100%;background:#fff}
.item .ficha{padding-bottom:8px;border-bottom:1px solid var(--bd)}
.item .baixar{margin:12px 0 4px}
.sel{cursor:pointer}.sel:hover td{background:var(--v100)}
details{margin:8px 0}summary{cursor:pointer;font-weight:600;color:var(--ac)}
.prog{font-family:ui-monospace,Consolas,monospace;font-size:13px;color:var(--mut)}
.crit{border-top:1px solid var(--bd);padding:8px 0}
@media (max-width:600px){main{padding:12px}header{padding:8px 12px}}
a{color:var(--ac)}
td button.link{color:var(--ac)}
td button.link.erro{color:var(--er)}

.grade2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 12px}
a.botao{display:inline-block;padding:8px 14px;border:1px solid var(--v500);border-radius:6px;color:var(--v700);text-decoration:none;font-weight:600;background:var(--card)}
a.botao:hover{background:var(--v50)}
td a.botao{padding:1px 8px;font-weight:500;font-size:13px}
input.na-prova{width:auto}

.rolagem{overflow-x:auto}
.indice{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:8px}
.indice a{padding:4px 10px;border:1px solid var(--v300);border-radius:999px;color:var(--v700);text-decoration:none;font-size:14px;background:var(--v50)}
.indice a:hover{background:var(--v100)}
.fluxo{list-style:none;padding:0;margin:12px 0;counter-reset:f}
.fluxo li{position:relative;padding:8px 12px 8px 12px;margin:0 0 14px;border:1px solid var(--bd);border-left:4px solid var(--v500);border-radius:6px;background:var(--bg);display:flex;flex-direction:column;gap:2px}
.fluxo li:not(:last-child)::after{content:"▼";position:absolute;left:14px;bottom:-14px;font-size:11px;color:var(--r500)}
.fluxo li strong{color:var(--v700)}
details{margin:8px 0;border:1px solid var(--bd);border-radius:6px;padding:6px 12px;background:var(--card)}
details summary{cursor:pointer;font-weight:600;color:var(--v700)}
section.card{scroll-margin-top:12px}

button.botao{display:inline-block;padding:8px 14px;border:1px solid var(--v500);border-radius:6px;color:var(--v700);font-weight:600;background:var(--card);cursor:pointer}
button.botao:hover{background:var(--v50)}
td button.botao{padding:1px 8px;font-weight:500;font-size:13px}

.fig-erro{border:1px dashed var(--r500);background:var(--r50);color:var(--fg);padding:10px 12px;border-radius:6px;margin:8px 0;font-size:14px}

.rolagem { overflow-x: auto; }

/* gráficos do painel do administrador */
.viz{--neu:#a3aba5;--s1:#2a78d6;--s2:#eb6834;--bom:#0ca30c;--medio:#fab219;--ruim:#d03b3b;--grade:#e1e1dc}
@media (prefers-color-scheme:dark){.viz{--neu:#6f7d74;--s1:#3987e5;--s2:#d95926;--grade:#2b3f31}}
.viz-topo{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.viz-topo h2{margin:0}.viz-modo{margin:0}
button.seg{padding:4px 12px;font-size:14px}
button.seg[aria-pressed="true"]{background:var(--ac);color:var(--ac-fg)}
.seletor{margin:8px 0 4px}
.viz-caixa{position:relative;margin-top:8px}.viz-area{width:100%;min-height:40px}
.viz-svg{display:block;max-width:100%;overflow:visible}
.viz-svg text{font:12px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;fill:var(--mut)}
.viz-svg text.forte,.viz-svg text.valor{fill:var(--fg);font-weight:600}
.viz-svg .grade{stroke:var(--grade);stroke-width:1}
.viz-svg .base{stroke:var(--mut);stroke-width:1}
.viz-svg .ref{stroke:var(--mut);stroke-width:1;stroke-dasharray:4 3}
.viz-svg .col.s1{fill:var(--s1)}
.viz-svg .col.realce{opacity:.78}
.viz-svg .seg{stroke:var(--card);stroke-width:2}
.viz-svg .seg.c-neu{fill:var(--neu)}.viz-svg .seg.c-ent{fill:var(--s1)}.viz-svg .seg.c-sai{fill:var(--s2)}.viz-svg .seg.c-bom{fill:var(--bom)}.viz-svg .seg.c-medio{fill:var(--medio)}.viz-svg .seg.c-ruim{fill:var(--ruim)}
.viz-svg g.realce{opacity:.8}
.viz-svg .area{outline:none}.viz-svg .area:focus-visible{outline:2px solid var(--v500);outline-offset:-2px}
.dica{position:absolute;z-index:5;pointer-events:none;background:var(--card);color:var(--fg);border:1px solid var(--bd);border-radius:6px;padding:6px 10px;font-size:13px;line-height:1.35;box-shadow:0 2px 8px rgba(0,0,0,.2);max-width:300px}
.dica[hidden]{display:none}.dica b{display:block}
.leg{list-style:none;display:flex;gap:4px 16px;flex-wrap:wrap;padding:0;margin:8px 0;font-size:14px}
.leg li{display:flex;align-items:center;gap:6px}
.amostra{display:inline-block;width:12px;height:12px;border-radius:3px}
.amostra.c-neu{background:var(--neu)}.amostra.c-ent{background:var(--s1)}.amostra.c-sai{background:var(--s2)}.amostra.c-bom{background:var(--bom)}.amostra.c-medio{background:var(--medio)}.amostra.c-ruim{background:var(--ruim)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.kpi{border:1px solid var(--bd);border-radius:8px;padding:10px 12px;background:var(--bg)}
.kpi .num{font-size:26px;font-weight:700;line-height:1.2}.kpi .rot{font-weight:600;font-size:14px}
.grade-viz{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:0 16px}.grade-viz>.card{min-width:0}
.pend{margin:6px 0 0 18px;padding:0}button.peq{padding:3px 10px;font-size:.85em;margin-left:4px}.pend li{margin:2px 0;font-weight:400}
fieldset.ajustes{border:1px solid var(--bd);border-radius:8px;margin:12px 0;padding:6px 12px 12px}
fieldset.ajustes legend{font-weight:600;padding:0 6px}fieldset.ajustes legend small{font-weight:400;color:var(--mut)}
fieldset.ajustes.falta{border-color:var(--r500);background:var(--r50)}
fieldset.ajustes input[type=text]{margin:4px 0 0}
fieldset.ajustes[hidden],fieldset.ajustes input[hidden]{display:none}
@media (prefers-color-scheme:dark){fieldset.ajustes.falta{background:#3a1618}}
.anexo.coluna{flex-direction:column}.anexo.coluna>*{width:100%}
textarea.tab-colada{min-height:110px;font-family:ui-monospace,Consolas,monospace;font-size:13px}
textarea.falta,.anexo input.falta{border-color:var(--r500);background:var(--r50)}
@media (prefers-color-scheme:dark){textarea.falta,.anexo input.falta{background:#3a1618}}

/* barra de andamento do item em preparação e cartão da encomenda */
.barra{position:relative;height:14px;border-radius:999px;background:var(--ac-fundo);border:1px solid var(--bd);overflow:hidden}
.barra-preenche{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--v500),var(--v300),var(--v500));background-size:200% 100%;animation:barra-corre 2.2s linear infinite;transition:width .6s ease}
@keyframes barra-corre{from{background-position:200% 0}to{background-position:0 0}}
.barra.pequena{height:10px;min-width:90px}.barra.pequena .barra-preenche{animation:none;background:var(--v500)}
.barra-topo{display:flex;justify-content:space-between;gap:8px;font-weight:600;margin-bottom:6px}.barra-pct{color:var(--ac)}
.barra-rodape{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-top:8px;min-height:44px}
.barra-frase{color:var(--mut);font-style:italic;font-size:15px}
.barra-frase.entra{animation:frase-entra .5s ease}
@keyframes frase-entra{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.barra-preenche,.barra-frase.entra{animation:none}}
.progresso details{margin-top:6px}
.enc-linha{display:grid;grid-template-columns:70px minmax(90px,1fr) auto auto;gap:10px;align-items:center;margin:8px 0}
@media (max-width:600px){.enc-linha{grid-template-columns:60px 1fr;}.enc-linha span,.enc-linha button{grid-column:2}}

/* tela inicial: caixas de ícone flutuantes no centro da tela, como o menu de um celular */
.inicio{min-height:calc(100vh - 190px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;text-align:center;padding:12px 0 28px}
.saudacao h1{font-size:28px;margin:0 0 6px}.saudacao p{margin:0;font-size:16px}
.grade-icones{display:grid;grid-template-columns:repeat(4,128px);gap:34px 30px;justify-content:center}
@media (max-width:760px){.grade-icones{grid-template-columns:repeat(3,minmax(88px,1fr));gap:24px 14px;width:100%;max-width:420px}}
.icone-app{display:flex;flex-direction:column;align-items:center;gap:11px;background:none;border:0;cursor:pointer;color:var(--fg);font:inherit;font-weight:600;font-size:15px;padding:0;-webkit-tap-highlight-color:transparent}
.icone-app .rotulo{max-width:128px;line-height:1.2}
.icone-app .caixa{position:relative;width:96px;height:96px;border-radius:28px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--c1),var(--c2));
  box-shadow:0 12px 24px rgba(15,74,29,.28),inset 0 2px 0 rgba(255,255,255,.28),inset 0 -4px 0 rgba(0,0,0,.14);animation:flutua 5s ease-in-out infinite;transition:transform .18s ease,box-shadow .18s ease}
.icone-app:nth-child(2n) .caixa{animation-delay:-1.2s}.icone-app:nth-child(3n) .caixa{animation-delay:-2.4s}.icone-app:nth-child(5n) .caixa{animation-delay:-3.4s}
@keyframes flutua{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.icone-app:hover .caixa,.icone-app:focus-visible .caixa{animation-play-state:paused;transform:translateY(-8px) scale(1.06);box-shadow:0 18px 30px rgba(15,74,29,.34),inset 0 2px 0 rgba(255,255,255,.3),inset 0 -4px 0 rgba(0,0,0,.14)}
.icone-app:active .caixa{animation:none;transform:scale(.94)}
.icone-app:focus-visible{outline:none}.icone-app:focus-visible .rotulo{text-decoration:underline}
.icone-app svg{width:46px;height:46px}
.icone-app .selo{position:absolute;top:-8px;right:-8px;min-width:28px;height:28px;padding:0 7px;border-radius:14px;background:var(--r500);color:#fff;font-size:15px;font-weight:700;display:grid;place-items:center;border:3px solid var(--bg);box-shadow:0 2px 6px rgba(0,0,0,.3)}
.t-novo{--c1:#34a84a;--c2:#1e7430}.t-adaptar{--c1:#27a291;--c2:#0f6e63}.t-meus{--c1:#3d9a6b;--c2:#1b4d38}.t-json{--c1:#6b8070;--c2:#34443a}
.t-testes{--c1:#c2569b;--c2:#7d2560}.t-uso{--c1:#8fb339;--c2:#4f7a18}.t-sobre{--c1:#3f9db0;--c2:#25606c}.t-coord{--c1:#d99a2b;--c2:#8a5a00}.t-correcao{--c1:#2f9e7a;--c2:#13604a}.t-contexto{--c1:#4f86d9;--c2:#1f4f9c}.t-elaboradores{--c1:#8a5cc7;--c2:#56308f}.t-admin{--c1:#e0393e;--c2:#9c1217}
@media (prefers-reduced-motion:reduce){.icone-app .caixa{animation:none}}
header nav button.t-novo.ativa svg,header nav button.t-adaptar.ativa svg,header nav button.t-meus.ativa svg,header nav button.t-json.ativa svg,
header nav button.t-uso.ativa svg,header nav button.t-sobre.ativa svg,header nav button.t-coord.ativa svg,header nav button.t-correcao.ativa svg,header nav button.t-contexto.ativa svg,header nav button.t-elaboradores.ativa svg,header nav button.t-admin.ativa svg{color:var(--c2)}
@media (prefers-color-scheme:dark){header nav button.ativa svg{color:var(--ac-fg)!important}}
@media (max-width:600px){
  header{gap:8px 10px}.marca-sigma{margin-right:auto}
  header button.link span{display:none}
  #quem{order:3;flex-basis:100%;margin-left:0;font-size:13px}
  header nav{order:4;flex-basis:100%;justify-content:center}
  header nav button{padding:7px 9px}
  .inicio{min-height:calc(100vh - 150px)}
}
td input[type=number]{min-width:64px;max-width:96px}

/* referências citadas no item */
.refs{margin:16px 0;padding-top:4px}
.refs-lista{margin:8px 0 8px 18px;padding:0}.refs-lista li{margin:6px 0}
.refs-lista a{word-break:break-word}
.refs-confirma{font-size:17px;margin:12px 0 6px;padding:10px 12px;border:2px solid var(--v500);border-radius:8px;background:var(--ac-fundo)}
.refs-confirma input{width:20px;height:20px;margin-top:3px}

/* diagrama do fluxo (novo item / adaptar): passos com ícone, numerados, ligados por setas; "você" em verde claro, "Sigma" em verde escuro com a base vermelha do logotipo */
details.diagrama-fluxo{margin:8px 0 18px;padding:12px 14px 6px;border:1px solid var(--bd);border-radius:12px;background:linear-gradient(180deg,var(--ac-fundo),var(--card))}
details.diagrama-fluxo>summary{cursor:pointer;font-weight:700;color:var(--ac);margin-bottom:10px}
ol.passos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 20px}
li.passo{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:6px 2px}
li.passo .num{position:absolute;top:0;left:calc(50% - 46px);width:22px;height:22px;border-radius:50%;background:var(--card);border:2px solid var(--ac);color:var(--ac);font-size:12px;font-weight:700;display:grid;place-items:center;z-index:1}
li.passo .caixa{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;margin-bottom:4px;box-shadow:0 4px 10px rgba(15,74,29,.22);animation:passo-pulsa 9s ease-in-out infinite}
li.passo .caixa svg{width:32px;height:32px}
li.passo.voce .caixa{background:var(--card);color:var(--ac);border:2px solid var(--v500)}
li.passo.sigma .caixa{background:linear-gradient(160deg,var(--v700),var(--v900));color:#fff;border-bottom:5px solid var(--r500)}
li.passo b{font-size:14px;line-height:1.25}
li.passo small{font-size:12.5px;line-height:1.35;color:var(--mut)}
li.passo .quem{margin-top:2px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 8px;border-radius:999px}
li.passo.voce .quem{background:var(--v100);color:var(--v900)}
li.passo.sigma .quem{background:var(--v900);color:#fff}
@media (prefers-color-scheme:dark){li.passo.voce .quem{background:var(--ac-fundo);color:var(--ac)}li.passo.sigma .quem{background:var(--v700)}}
li.passo:not(:last-child)::after{content:"";position:absolute;top:26px;right:-15px;width:10px;height:10px;border-top:3px solid var(--v300);border-right:3px solid var(--v300);transform:rotate(45deg)}
li.passo:nth-child(2) .caixa{animation-delay:1.5s}li.passo:nth-child(3) .caixa{animation-delay:3s}li.passo:nth-child(4) .caixa{animation-delay:4.5s}li.passo:nth-child(5) .caixa{animation-delay:6s}li.passo:nth-child(6) .caixa{animation-delay:7.5s}
@keyframes passo-pulsa{0%,12%,100%{transform:none}6%{transform:translateY(-4px) scale(1.06);box-shadow:0 10px 18px rgba(15,74,29,.3)}}
.fluxo-nota{font-size:12.5px;margin:12px 0 4px}
@media (max-width:1000px){ol.passos{grid-template-columns:repeat(3,minmax(0,1fr))}li.passo:nth-child(3)::after{display:none}}
@media (max-width:600px){ol.passos{grid-template-columns:1fr;gap:26px}li.passo{padding:6px 12px}li.passo .num{left:calc(50% - 50px)}
  li.passo:not(:last-child)::after{display:block;top:auto;right:auto;bottom:-20px;left:calc(50% - 5px);transform:rotate(135deg)}li.passo:nth-child(3)::after{display:block}}
@media (prefers-reduced-motion:reduce){li.passo .caixa{animation:none}}

.destaques{margin:8px 0 0;padding-left:20px}.destaques li{margin:4px 0}

/* painéis flutuantes do contexto dos estudantes: a partir de 1280 px, um de cada lado do formulário.
   Em telas de 1280 a ~1640 px o formulário encolhe um pouco (classe com-laterais no body) para abrir espaço aos painéis. */
.lateral{display:none}
@media (min-width:1280px){
  body{--lw:clamp(230px,calc((100vw - 920px)/2 - 28px),340px)}
  body.com-laterais main{max-width:min(920px,calc(100vw - 2*var(--lw) - 56px))}
  .lateral{display:block;position:fixed;top:128px;width:var(--lw);max-height:calc(100vh - 148px);overflow:auto;z-index:10}
  .lateral[hidden]{display:none}
  .lateral.esq{left:14px}.lateral.dir{right:14px}
  .lateral .card{margin:0;padding:12px}
  .lateral .viz-topo h2{font-size:16px}
  .lateral .viz-topo{gap:8px}.lateral .acoes.viz-modo .seg{padding:3px 8px;font-size:13px}
  .lateral .mut{font-size:13px;margin:4px 0}
  .lateral .leg{font-size:13px;gap:2px 10px}
  .lateral .lateral-alterna{display:block;margin:0 0 6px auto;padding:3px 10px;font-size:12px;border-radius:8px}
  .lateral.recolhida .card{display:none}
  .lateral.dir.recolhida{display:none}
}

.previa{white-space:pre-wrap;background:var(--bg);border:1px solid var(--bd);border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;margin:8px 0}
.editor-enc{border:1px solid var(--bd);border-radius:10px;padding:12px 14px;margin:12px 0;background:var(--ac-fundo,var(--bg))}
.anexos{list-style:none;margin:8px 0;padding:0}.anexos li{display:flex;gap:10px;align-items:center;padding:4px 0;border-bottom:1px solid var(--bd)}
.tag-tipo{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:2px 8px;background:var(--ac-fundo,var(--bg));color:var(--v700)}
.texto-com{min-height:190px}
.anexar,.card h3{margin-top:14px}

/* conheça os elaboradores: nuvens de palavras e índice de publicações */
.grade-nuvens{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.grade-nuvens .card{margin:0}
.nuvem{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;padding:8px 0;line-height:1.15}
.cartao-nuvem{--p0:#1e7430;--p1:#7a4bbf;--p2:#2563c4;--p3:#c46a12;--p4:#b8325f;--p5:#0f7f75}
@media (prefers-color-scheme:dark){.cartao-nuvem{--p0:#5cc770;--p1:#b392f0;--p2:#6aa5ff;--p3:#f0a24d;--p4:#f0779f;--p5:#45c9bb}}
.cartao-nuvem .viz-topo h3{margin:0}.cartao-nuvem [hidden]{display:none}
.nuvem .nv{font-family:inherit;font-weight:650;line-height:1.15;background:none;border:0;border-radius:6px;padding:0 3px;cursor:pointer;color:var(--fg)}
.nuvem .nv:hover,.nuvem .nv:focus-visible{background:var(--ac-fundo);opacity:1!important}
.nuvem .c0{color:var(--p0)}.nuvem .c1{color:var(--p1)}.nuvem .c2{color:var(--p2)}.nuvem .c3{color:var(--p3)}.nuvem .c4{color:var(--p4)}.nuvem .c5{color:var(--p5)}
.ranking.c0 .bar{background:var(--p0)}.ranking.c1 .bar{background:var(--p1)}.ranking.c2 .bar{background:var(--p2)}
.ranking{display:grid;grid-template-columns:minmax(0,max-content) 1fr auto;gap:5px 8px;align-items:center;font-size:14px;padding:4px 0}
.ranking .t{font:inherit;text-align:right;background:none;border:0;padding:0;color:var(--fg);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px}
.ranking .t:hover{text-decoration:underline}
.ranking .trilho{display:block;height:12px}.ranking .bar{display:block;height:100%;border-radius:6px}
.ranking .n{color:var(--mut);font-variant-numeric:tabular-nums}
details.elab{border-top:1px solid var(--bd);padding:8px 0}
details.elab summary{cursor:pointer}
ol.pubs{padding-left:20px;margin:6px 0}
ol.pubs li{margin:6px 0}
ol.pubs .ano{font-variant-numeric:tabular-nums;font-weight:600}
ol.pubs details summary{font-size:13px;color:var(--ac);cursor:pointer}
.obra-elab a{color:inherit}

/* correção de cartões (piloto) */
.grade-respostas{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px 14px;margin:12px 0}
.q-resp{display:grid;grid-template-columns:2em minmax(0,1fr);align-items:center;column-gap:6px;margin:0;min-width:0}
.q-resp b{text-align:right}
.q-resp select{width:100%;min-width:0;margin:0}
.q-resp small{grid-column:2;color:var(--wa);font-size:.8em}
.q-resp.duvida select{outline:2px solid var(--r500)}
.conf-matricula input.matricula{font-family:ui-monospace,Consolas,monospace;letter-spacing:.18em;font-size:1.1em}
.conf-matricula img.recorte{display:block;max-width:100%;border:1px solid var(--bd);border-radius:4px;margin:6px 0;background:#fff}
tr.alerta td{background:rgba(224,57,62,.07)}
.prazo.perto{color:#8a5a00;font-weight:600}.prazo.vencido{color:var(--r500);font-weight:600}
@media (prefers-color-scheme:dark){.prazo.perto{color:#ffd27a}}

/* confirmação depois do envio da ficha de avaliação: ícone grande e centralizado, no estilo das etapas "Sigma" do diagrama de fluxo */
.card.sucesso{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:28px 18px;border-color:var(--v500);background:linear-gradient(180deg,var(--ac-fundo),var(--card))}
.sucesso-icone{display:grid;place-items:center;width:104px;height:104px;border-radius:28px;background:linear-gradient(160deg,var(--v700),var(--v900));color:#fff;border-bottom:7px solid var(--r500);box-shadow:0 8px 18px rgba(15,74,29,.28);animation:sucesso-entra .5s ease-out}
.sucesso-icone svg{width:58px;height:58px;stroke-width:2.6}
.sucesso-texto{margin:0;font-size:18px;font-weight:700;color:var(--v900);max-width:34em}
.card.sucesso .mut{margin:0;max-width:40em}
.item-recolhido>summary{cursor:pointer;margin:6px 0 12px}
@keyframes sucesso-entra{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.sucesso-icone{animation:none}}
@media (prefers-color-scheme:dark){.sucesso-texto{color:var(--ac)}}

/* ficha: apontamento do agente de revisão só no critério a que se refere; oferta de reescrita e ficha resumida */
.crit.com-ressalva{background:linear-gradient(90deg,var(--r50),transparent 60%);border-left:3px solid var(--r500);padding-left:10px}
.ressalva-agente{margin:6px 0 4px;font-size:15px}
.ressalva-agente p{margin:2px 0}
.ressalva-um+.ressalva-um{margin-top:6px;padding-top:6px;border-top:1px dashed var(--bd)}
.selo-rep{display:inline-block;font-size:12px;font-weight:700;color:#fff;background:var(--r500);border-radius:4px;padding:0 6px}
.oferta-reescrita{border-top-color:var(--r500)}
.oferta-pergunta{font-size:17px;font-weight:700;margin:0 0 6px}
.pergunta-melhorou label{font-size:16px}
@media (prefers-color-scheme:dark){.crit.com-ressalva{background:linear-gradient(90deg,rgba(205,25,30,.16),transparent 60%)}}

/* paginação das tabelas do administrador */
.paginacao{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:8px 0 4px;flex-wrap:wrap}
.paginacao[hidden]{display:none}
.paginacao button{padding:6px 12px}
.paginacao button:disabled{opacity:.45;cursor:default}

/* memória dos e-mails de notificação */
.ver-email summary{cursor:pointer;color:var(--ac);font-size:14px}
.ver-email .email-previa{margin-top:6px;padding:8px 10px;border:1px solid var(--bd);border-radius:6px;background:var(--card);color:var(--fg)}
.ver-email .email-previa p{margin:2px 0}
.ver-email pre.previa{white-space:pre-wrap;max-width:60ch}
.msg .ver-email{margin:2px 0 6px;font-weight:normal}

/* entrada: os dois exames em botões grandes, no estilo dos ícones do fluxograma */
.card.entrada{max-width:760px;margin-left:auto;margin-right:auto}
.contextos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0 8px}
.contexto-btn{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:22px 14px 18px;border:2px solid var(--bd);border-radius:18px;background:var(--card);color:var(--fg);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.contexto-btn:hover,.contexto-btn:focus-visible{transform:translateY(-3px);box-shadow:0 10px 18px rgba(15,74,29,.18);border-color:var(--v500)}
.contexto-btn .caixa{display:grid;place-items:center;width:104px;height:104px;border-radius:26px;margin-bottom:6px;background:linear-gradient(160deg,var(--v700),var(--v900));color:#fff;border-bottom:7px solid var(--r500);box-shadow:0 6px 14px rgba(15,74,29,.25)}
.contexto-btn .caixa svg{width:52px;height:52px}
.contexto-btn b{font-size:19px}
.contexto-btn small{font-size:13px;color:var(--mut);line-height:1.35;max-width:28ch}
.contexto-btn.ativo{border-color:var(--v700);background:var(--ac-fundo)}
.contexto-btn.ativo .caixa{animation:passo-pulsa 9s ease-in-out infinite}
.login-codigo{margin-top:10px;padding-top:12px;border-top:1px solid var(--bd)}
.login-codigo[hidden]{display:none}
.login-codigo h2{margin:0 0 8px}
@media (max-width:760px){.contextos{grid-template-columns:1fr}.contexto-btn .caixa{width:84px;height:84px}.contexto-btn .caixa svg{width:42px;height:42px}}
@media (prefers-reduced-motion:reduce){.contexto-btn,.contexto-btn .caixa{transition:none;animation:none}}
.chip-contexto{display:inline-flex;align-items:center;gap:6px;margin-right:10px;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.12);color:var(--topo-fg);font-weight:700;font-size:13px;cursor:pointer}
.chip-contexto svg{width:16px;height:16px}
.contexto-atual{display:inline-flex;align-items:center;gap:6px;margin:2px 0 4px;font-weight:700;color:var(--ac)}
.contexto-atual svg{width:18px;height:18px}
/* na entrada a faixa do topo fica só com a marca (sem "Sair", usuário e abas) */
#topo[hidden] #sair,#topo[hidden] #quem,#topo[hidden] #abas,#topo[hidden] #contexto{display:none}

/* card das fichas não enviadas (tabela como a da encomenda) */
.card.pendentes td.num{text-align:center}
.card.pendentes td .ver-email{margin-top:4px}
.card.pendentes td .erro{color:var(--er)}
.card.pendentes td button{white-space:nowrap}

/* disciplina do ENEM no formulário (some nos módulos sem disciplina) */
label[hidden],.dica-disc[hidden]{display:none}
.dica-disc{margin:-4px 0 8px}
.marca.sub{margin-left:26px;font-size:.95em}
/* encomenda de teste do ENEM (testes.js) */
.teste-grade{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
@media (max-width:900px){.teste-grade{grid-template-columns:1fr}}
.card.cal{position:sticky;top:12px}
.cal-linha{display:grid;grid-template-columns:64px 1fr auto;gap:8px;align-items:center;margin:6px 0;font-size:14px}
.cal-barras{display:flex;flex-direction:column;gap:3px}
.cal-barras span{display:block;height:8px;border-radius:4px;min-width:2px}
.cal-teste{background:var(--v500)}.cal-enem{background:var(--bd)}
.cal-ind{display:grid;grid-template-columns:1fr auto;gap:6px 10px;margin:12px 0;font-size:14px}
.cal-ind dt{color:var(--mut)}.cal-ind dd{margin:0;font-weight:600;text-align:right}
.questao-t summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.selo-q{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--bd);color:var(--mut)}
.selo-q.ok{border-color:var(--v500);color:var(--v500)}.selo-q.falta{border-color:var(--r500);color:var(--r500)}
.lista-q{list-style:none;padding:0;margin:12px 0}.lista-q li{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid var(--bd);font-size:14px}
.lista-q .q-erro{color:var(--r500)}.lista-q .q-gerando{font-weight:600}
.portao{list-style:none;padding:0;margin:8px 0}.portao li{padding:4px 0}.portao .ok{color:var(--v500)}.portao .falta{color:var(--r500)}
.questoes-marca{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:6px 0}
.marca.curta{display:inline-flex;gap:4px;align-items:center;margin:0}
.questoes-marca[hidden]{display:none}
.teste-grade td select{min-width:96px}.teste-grade td select.hab{min-width:240px}
