/* Art Cycles - sistema da oficina. Visual claro com menu lateral; cores e tipos em tokens. */
:root{
  --bg:#eef1f5; --surface:#fff; --ink:#333c48; --muted:#657281; --line:#e1e6ec;
  --accent:#2a7ab8; --accent-ink:#fff; --accent-soft:#e1eef8;
  --menu:#364150; --menu-topo:#2b3643; --menu-ativo:#2c3542; --menu-ink:#c3cbd6;
  --warn:#8f4f00; --warn-soft:#f8ead2; --crit:#b3261e; --crit-soft:#f9dedb; --ok:#1c6c44; --ok-soft:#dcf0e4;
  --display:"Open Sans","Segoe UI",system-ui,sans-serif; --body:"Open Sans","Segoe UI",system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--body)}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2{font-family:var(--display);line-height:1.2;margin:0;text-wrap:balance}
h1{font-size:clamp(22px,3.4vw,27px);font-weight:300;color:#4a5564}
h2{font-size:14.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--accent)}
p{margin:0}
/* Estrutura: barra superior escura, menu lateral, conteudo */
.topo{display:flex;align-items:center;gap:16px;min-height:50px;padding:6px 20px;background:var(--menu-topo);color:#fff}
.marca{font-weight:700;font-size:18px;letter-spacing:.02em;color:#fff;text-decoration:none}
.marca span{font-weight:300;color:var(--menu-ink)}
.topo .sair{margin-left:auto}
.topo .link{color:var(--menu-ink);text-decoration:none}
.topo .link:hover{color:#fff;text-decoration:underline}
.topo :focus-visible,.lateral :focus-visible{outline-color:#fff}
.corpo{display:flex;align-items:stretch;min-height:calc(100vh - 50px)}
.lateral{flex:0 0 220px;display:flex;flex-direction:column;padding:14px 0;background:var(--menu)}
.lateral a{display:flex;align-items:center;gap:11px;padding:11px 18px;color:var(--menu-ink);text-decoration:none;border-left:3px solid transparent}
.lateral a:hover{background:var(--menu-ativo);color:#fff}
.lateral a[aria-current]{background:var(--menu-ativo);color:#fff;border-left-color:#5c9ef8;font-weight:600}
.lateral svg{flex:none;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
main{flex:1;min-width:0;max-width:1400px;padding:22px clamp(16px,2.4vw,28px) 56px;display:flex;flex-direction:column;gap:18px}
@media (max-width:820px){
  .corpo{flex-direction:column;min-height:0}
  .lateral{flex:none;flex-direction:row;overflow-x:auto;padding:0}
  .lateral a{flex:none;padding:10px 14px;border-left:0;border-bottom:3px solid transparent}
  .lateral a[aria-current]{border-bottom-color:#5c9ef8}
}
/* Caixas brancas (secoes, tabelas e formularios soltos) */
section,main>.rolagem,main>form.form,main>.ficha,main>.colunas>section{background:var(--surface);border:1px solid var(--line)}
section{display:flex;flex-direction:column;gap:14px;padding:16px 18px 18px;scroll-margin-top:12px}
section>h2:first-child{padding-bottom:11px;border-bottom:1px solid var(--line)}
main>form.form,main>.ficha{padding:18px}
.cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.cab>div:first-child{display:flex;flex-direction:column;gap:6px;min-width:0}
.acoes{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sobre{color:var(--muted);font-size:14px}
.botao{display:inline-block;font:600 13px var(--body);text-transform:uppercase;letter-spacing:.02em;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:8px 14px;cursor:pointer;text-decoration:none}
.botao:hover{background:#226699;border-color:#226699}
.botao.sec:hover{background:var(--accent-soft)}
.botao.sec{background:transparent;color:var(--accent)}
.link{font:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.link.perigo{color:var(--crit)}
form{margin:0}
form.inline{display:inline}
.aviso{padding:10px 12px;border-left:3px solid var(--ok);background:var(--ok-soft)}
.aviso.erro{border-color:var(--crit);background:var(--crit-soft)}
.vazio{padding:20px 16px;border:1px dashed var(--line);color:var(--muted)}
.perigo{padding-top:16px}
.form{display:flex;flex-direction:column;gap:14px}
.form.linha{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:12px;background:#f9fafc;border:1px solid var(--line)}
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px}
fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
legend{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:8px}
.campo{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:13px;color:var(--muted)}
.grade .campo:has(.largo){grid-column:span 2}
.linha .campo{flex:1 1 150px}.linha .campo:has(.largo){flex:3 1 260px}.linha .campo:has(.curto){flex:0 1 110px}
@media (max-width:520px){.grade .campo:has(.largo){grid-column:auto}}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=datetime-local],input[type=search],input[type=file],select,textarea{
  font:14px var(--body);color:var(--ink);background:#fff;border:1px solid #c2cad8;border-radius:2px;padding:7px 10px;width:100%;min-width:0}
textarea{resize:vertical}
.busca{display:flex;flex-wrap:wrap;gap:10px}.busca input{flex:1 1 220px;width:auto}.busca select{flex:0 1 200px;width:auto}
.rolagem{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th{font-size:12.5px;text-align:left;color:var(--ink);font-weight:700;text-transform:uppercase;padding:9px 10px;border-bottom:2px solid var(--line);white-space:nowrap}
tbody tr:nth-child(odd){background:#f9fafc}
tbody tr:hover{background:var(--accent-soft)}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.n{text-align:right;white-space:nowrap}
.rodape-lista{color:var(--muted);font-size:13px}
.paginas{display:flex;flex-wrap:wrap;gap:6px}.paginas a{padding:4px 10px;border:1px solid var(--line);text-decoration:none}.paginas a[aria-current]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.selo{display:inline-block;font-family:var(--display);font-weight:600;font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;padding:1px 7px;border-radius:2px;white-space:nowrap}
.s-aprovado{background:var(--ok-soft);color:var(--ok)}.s-aguardando,.s-hoje{background:var(--warn-soft);color:var(--warn)}
.s-negado,.s-atraso{background:var(--crit-soft);color:var(--crit)}.s-concluida{background:var(--accent-soft);color:var(--accent)}.s-neutro{border:1px solid var(--line);color:var(--muted)}
.contadores{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.contadores li{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:16px 18px;color:#fff;background:var(--accent)}
.contadores b{font-size:34px;font-weight:300;line-height:1.1}
.contadores span{font-size:14px}
.contadores .c-verde{background:#1e7d53}.contadores .c-roxo{background:#7d3c98}.contadores .c-laranja{background:#a85400}
.cartoes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.cartoes a{display:flex;flex-direction:column;gap:5px;height:100%;padding:14px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.cartoes a:hover{border-color:var(--accent)}
.num{font-family:var(--display);font-weight:600;color:var(--muted)}.tit{font-weight:600;font-size:16px;overflow-wrap:anywhere}.det{font-size:13.5px;color:var(--muted)}
.selos{display:flex;flex-wrap:wrap;gap:5px}
.ficha{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px 20px}
.ficha dt,.totais dt{font-size:12.5px;color:var(--muted)}.ficha dd{margin:0;overflow-wrap:anywhere}
.totais{margin:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 28px}
.totais dd{margin:0;font-family:var(--display);font-weight:600;font-size:18px;font-variant-numeric:tabular-nums}
.totais .forte dd{font-size:23px;color:var(--accent)}
.ancoras{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}
.lista,.hist,.check,.fotos{list-style:none;margin:0;padding:0}
.lista li{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--line)}
.lista li.feito span{color:var(--muted);text-decoration:line-through}
.lista li.grupo,.check li.grupo{font-family:var(--display);font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-size:13.5px;border-bottom:2px solid var(--line)}
.colunas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;align-items:start}
.hist li{padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.hist time{color:var(--muted);font-variant-numeric:tabular-nums}
.fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.fotos li{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.fotos img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--line)}
.check li{display:grid;grid-template-columns:minmax(0,1.2fr) auto minmax(0,1fr);gap:8px 14px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line)}
.check li.grupo{display:block}
@media (max-width:760px){.check li{grid-template-columns:minmax(0,1fr)}}
.ops{display:flex;flex-wrap:wrap;gap:6px}
.op input{position:absolute;opacity:0;width:1px;height:1px}
.op span{display:inline-block;padding:6px 10px;border:1px solid var(--line);border-radius:3px;font-size:13.5px;cursor:pointer}
.op input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.op.r-ok input:checked+span{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}
.op.r-atencao input:checked+span{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}
.op.r-problema input:checked+span{background:var(--crit-soft);color:var(--crit);border-color:var(--crit)}
.op.r-nao_se_aplica input:checked+span{background:var(--line);border-color:var(--muted)}
body.login{display:grid;place-items:center;min-height:100vh;padding:16px;background:var(--menu)}
body.login main{flex:none;width:min(380px,100%);gap:14px;padding:26px 28px 30px;background:var(--surface)}
.login h1{text-align:center;color:var(--accent)}.login .sub{color:var(--muted);text-align:center}.pilha{display:flex;flex-direction:column;gap:12px}
/* Impressao */
body.papel{background:#fff;color:#111;max-width:800px;margin:0 auto;padding:24px;font-size:13.5px;display:flex;flex-direction:column;gap:14px;color-scheme:light}
.papel h2{font-size:16px;border-bottom:1px solid #999;padding-bottom:3px}
.papel-cab{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #111;padding-bottom:10px}.papel-cab strong{font-size:17px}.dir{text-align:right}
.papel table{font-size:13px}.papel th,.papel td{border-bottom:1px solid #ccc;color:#111;padding:5px 6px}.papel ul{margin:0;padding-left:18px}
.papel .totais dt{color:#444}.papel .totais .forte dd{color:#111}
.assinaturas{display:flex;gap:40px;margin-top:48px}.assinaturas span{flex:1;border-top:1px solid #111;padding-top:4px;text-align:center;font-size:12px}
@media print{.noprint{display:none}body.papel{padding:0}}

tr.negado td{color:var(--muted)}
.totais.interno dd{font-size:16px;color:var(--muted)}
.totais.interno{padding-top:6px;border-top:1px dashed var(--line)}
main td:first-child{white-space:nowrap}
