:root{
  --fundo:#F2F5F8; --sup:#FFFFFF; --sup2:#E9EEF3; --linha:#D5DDE5;
  --tinta:#14202E; --tinta2:#4A5A6B; --tinta3:#7A8898;
  --navy:#1F3864; --azul:#03517D; --ceu:#038CCC; --laranja:#E6A438; --ferrugem:#DE6E28;
  --ok:#2E7D4F; --okf:#E3F2E8; --av:#9A6200; --avf:#FCF0D6; --mau:#B3261E; --mauf:#FBE4E2; --inf:#E1EEF7;
  --corpo:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--fundo);color:var(--tinta);font-family:var(--corpo);font-size:14px;line-height:1.45}
a{color:var(--azul)}
.topo{background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:10px 20px;gap:12px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:14px}
.logo{height:30px}
.nome-app{font-weight:600;letter-spacing:.02em;opacity:.9}
.userbox{display:flex;align-items:center;gap:10px;font-size:13px}
.userbox .papel{opacity:.75}
.menu{background:var(--sup);border-bottom:1px solid var(--linha);display:flex;gap:2px;padding:0 16px;overflow-x:auto}
.menu a{padding:11px 14px;text-decoration:none;color:var(--tinta2);font-weight:500;border-bottom:3px solid transparent;white-space:nowrap}
.menu a.ativo{color:var(--navy);border-bottom-color:var(--ceu)}
.menu .n{font-family:var(--mono);font-size:11px;background:var(--laranja);color:#1F2A36;border-radius:9px;padding:1px 6px;margin-left:4px}
.menu .n:empty{display:none}
.app{max-width:1400px;margin:0 auto;padding:20px 20px 60px;display:flex;flex-direction:column;gap:16px}
h1{font-size:22px;margin:0}
h2{font-size:15px;margin:0}
h3{font-size:14px;margin:0 0 8px}
.sub{color:var(--tinta2);font-size:13px}
.muted{color:var(--tinta3)}
.small{font-size:12px}
.cab{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.painel{background:var(--sup);border:1px solid var(--linha);border-radius:10px}
.painel-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:12px 16px;border-bottom:1px solid var(--linha);flex-wrap:wrap}
.painel-c{padding:14px 16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.kpi{padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.kpi .rot{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--tinta3);font-weight:600}
.kpi .v{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.kpi .d{font-size:12px;color:var(--tinta2)}
.barra{height:6px;background:var(--sup2);border-radius:3px;overflow:hidden}.barra i{display:block;height:100%;background:var(--azul)}
.grelha2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}
.tabela{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px}
th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--tinta3);font-weight:600;text-align:left;padding:8px 10px;border-bottom:1px solid var(--linha);white-space:nowrap;background:var(--sup)}
td{padding:8px 10px;border-bottom:1px solid var(--linha);vertical-align:top}
tbody tr.clic{cursor:pointer}tbody tr.clic:hover td{background:var(--sup2)}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cod{font-family:var(--mono);font-size:12px;color:var(--azul);white-space:nowrap}
.chip{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;background:var(--sup2);color:var(--tinta2)}
.chip.ok{background:var(--okf);color:var(--ok)}.chip.av{background:var(--avf);color:var(--av)}.chip.mau{background:var(--mauf);color:var(--mau)}.chip.inf{background:var(--inf);color:var(--azul)}
.perto{color:var(--ferrugem);font-weight:600}
.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
input,select,textarea{font:inherit;color:var(--tinta);background:var(--sup);border:1px solid var(--linha);border-radius:6px;padding:6px 9px}
textarea{width:100%;min-height:70px}
input[type=checkbox]{width:auto}
label.campo{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--tinta2)}
label.campo input,label.campo select,label.campo textarea{font-size:14px;color:var(--tinta)}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 14px}
.form .largo{grid-column:1/-1}
.btn{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--linha);background:var(--sup);color:var(--tinta);padding:7px 12px;font-weight:500}
.btn:hover{border-color:var(--azul)}
.btn.pri{background:var(--azul);border-color:var(--azul);color:#fff}
.btn.peq{padding:4px 9px;font-size:12px}
.btn.perigo{color:var(--mau)}
.btn:disabled{opacity:.5;cursor:not-allowed}
:focus-visible{outline:2px solid var(--ceu);outline-offset:2px}
.acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lista-prazos .li{display:grid;grid-template-columns:70px 1fr auto;gap:12px;padding:9px 16px;border-top:1px solid var(--linha)}
.lista-prazos .li:first-child{border-top:0}
.li .dt{font-family:var(--mono);font-size:12px;color:var(--tinta2)}.li .dt b{display:block;font-size:14px;color:var(--tinta);font-family:var(--corpo)}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.col{background:var(--sup2);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.col-h{display:flex;justify-content:space-between;font-weight:600;font-size:13px;padding:0 4px}
.col-h span{font-family:var(--mono);font-weight:400;font-size:11.5px;color:var(--tinta2)}
.cartao{background:var(--sup);border:1px solid var(--linha);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:5px;cursor:pointer}
.cartao:hover{border-color:var(--ceu)}
.cartao .t{font-weight:500;font-size:13px;line-height:1.3}
.cartao .m{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--tinta2);flex-wrap:wrap}
.separadores{display:flex;gap:4px;border-bottom:1px solid var(--linha);margin-bottom:12px;flex-wrap:wrap}
.separadores button{border:0;background:none;padding:8px 12px;font:inherit;color:var(--tinta2);border-bottom:3px solid transparent;cursor:pointer}
.separadores button.ativo{color:var(--navy);border-bottom-color:var(--ceu);font-weight:600}
.gate{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:6px 0;border-top:1px dashed var(--linha)}
.gate:first-child{border-top:0}
.gate .g{font-family:var(--mono);font-size:12px;color:var(--tinta3)}
.nota{font-size:12px;color:var(--tinta2);background:var(--sup2);border-radius:6px;padding:8px 10px}
.nota.alerta{background:var(--avf);color:var(--av)}
.nota.erro{background:var(--mauf);color:var(--mau)}
.modal{position:fixed;inset:0;background:rgba(20,32,46,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;z-index:20}
.modal-caixa{background:var(--sup);border-radius:12px;max-width:1100px;width:100%;padding:22px;position:relative}
.fechar{position:absolute;right:12px;top:8px;border:0;background:none;font-size:26px;cursor:pointer;color:var(--tinta2)}
.aviso{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:8px;z-index:30;max-width:90vw}
.aviso.erro{background:var(--mau)}
.login-box{max-width:420px;margin:60px auto;background:var(--sup);border:1px solid var(--linha);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:12px;text-align:center}
.timeline .tl{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:7px 0;border-top:1px solid var(--linha);align-items:center}
.timeline .tl:first-child{border-top:0}
.timeline .tl small{display:block;color:var(--tinta3);font-size:11.5px}
.dl{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:13px}.dl dt{color:var(--tinta3)}.dl dd{margin:0}
@media (max-width:1000px){.grelha2{grid-template-columns:1fr}}
@media (max-width:640px){.app{padding:14px}.topo{padding:10px 14px}.lista-prazos .li{grid-template-columns:60px 1fr}}
