/* ============================================================
   Pátio THC — sistema de gestão da Construtora THC
   Paleta: concreto (neutro verde-acinzentado) + pinho profundo.
   Séries de gráfico validadas para daltonismo em ambos os temas.
   ============================================================ */

:root{
  --ground:#E8EAE5; --panel:#F7F8F5; --raise:#FDFDFB; --sunk:#E0E3DC;
  --ink:#171B18; --ink2:#444B45; --muted:#6E766D;
  --line:#CED3C9; --hair:#DFE3DB;
  --accent:#1E3A34; --accent-hi:#2C534A; --accent-ink:#F3F6F1;
  --focus:#2065B4;
  --s-novo:#5E6E7B; --s-and:#8A6410; --s-agu:#7A6A1E; --s-med:#5B4B96; --s-ok:#2F6B45; --s-can:#787E76;
  --crit:#A32F2A; --warn:#8A6410; --good:#2F6B45; --info:#2065B4;
  --c-fat:#2065B4; --c-cus:#BF5A22;
  --tint-novo:#E7EAEC; --tint-and:#F3EBDA; --tint-med:#EAE6F3; --tint-ok:#E1EDE4;
  --tint-can:#E9EBE7; --tint-crit:#F5E3E2; --tint-info:#E2EAF3;
  --shadow:0 1px 2px rgba(23,27,24,.07), 0 6px 18px -10px rgba(23,27,24,.22);
  --railw:238px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#101310; --panel:#191C1A; --raise:#212520; --sunk:#141713;
    --ink:#E8EBE4; --ink2:#B4BBB1; --muted:#8C9489;
    --line:#343A33; --hair:#272C26;
    --accent:#8FC3AD; --accent-hi:#A6D3BF; --accent-ink:#0E1512;
    --focus:#6EA8E8;
    --s-novo:#93A5B3; --s-and:#D2A33E; --s-agu:#C1AE55; --s-med:#A392DC; --s-ok:#6FB98A; --s-can:#8D958B;
    --crit:#E38079; --warn:#D2A33E; --good:#6FB98A; --info:#6EA8E8;
    --c-fat:#4A8AD4; --c-cus:#C87840;
    --tint-novo:#232A2F; --tint-and:#2E2819; --tint-med:#262340; --tint-ok:#1B2A20;
    --tint-can:#222520; --tint-crit:#331F1D; --tint-info:#1D2735;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 22px -12px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --ground:#101310; --panel:#191C1A; --raise:#212520; --sunk:#141713;
  --ink:#E8EBE4; --ink2:#B4BBB1; --muted:#8C9489;
  --line:#343A33; --hair:#272C26;
  --accent:#8FC3AD; --accent-hi:#A6D3BF; --accent-ink:#0E1512;
  --focus:#6EA8E8;
  --s-novo:#93A5B3; --s-and:#D2A33E; --s-agu:#C1AE55; --s-med:#A392DC; --s-ok:#6FB98A; --s-can:#8D958B;
  --crit:#E38079; --warn:#D2A33E; --good:#6FB98A; --info:#6EA8E8;
  --c-fat:#4A8AD4; --c-cus:#C87840;
  --tint-novo:#232A2F; --tint-and:#2E2819; --tint-med:#262340; --tint-ok:#1B2A20;
  --tint-can:#222520; --tint-crit:#331F1D; --tint-info:#1D2735;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 22px -12px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
body{
  background:var(--ground); color:var(--ink);
  font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){*{animation:none!important; transition:none!important}}
:focus-visible{outline:2px solid var(--focus); outline-offset:2px; border-radius:3px}
h1,h2,h3{margin:0; text-wrap:balance}
.num,.mono{font-family:"IBM Plex Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums}

/* ---------------- topo ---------------- */
header.top{background:var(--panel); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50}
.topin{padding-block:11px; padding-inline:18px; display:flex; align-items:center; gap:14px; flex-wrap:wrap}
.brand{display:flex; align-items:center; gap:11px; margin-right:auto}
.mark{width:34px; height:34px; border-radius:5px; background:var(--accent); color:var(--accent-ink);
  display:grid; place-items:center; font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:16px; flex:none}
.brand b{font-family:"Barlow Condensed",sans-serif; font-size:21px; font-weight:700; display:block; line-height:1.1}
.brand span{font-size:11px; color:var(--muted); letter-spacing:.06em; text-transform:uppercase}
.burger{display:none}
.rolechip{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:500;
  border:1px solid var(--line); border-radius:999px; padding:5px 11px; background:var(--raise); color:var(--ink2)}
.rolechip i{width:7px; height:7px; border-radius:50%; background:var(--good); flex:none; font-style:normal}
.rolechip.op i{background:var(--s-novo)}
.rolechip.off i{background:var(--crit)}

/* ---------------- estrutura ---------------- */
.shell{display:grid; grid-template-columns:var(--railw) minmax(0,1fr); align-items:start}
aside.rail{
  position:sticky; top:57px; height:calc(100vh - 57px); overflow-y:auto;
  background:var(--panel); border-right:1px solid var(--line); padding:14px 10px 40px;
  display:flex; flex-direction:column; gap:3px; z-index:45;
}
.railgrp{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  letter-spacing:.09em; font-size:11px; color:var(--muted); padding:14px 10px 5px}
.railgrp:first-child{padding-top:2px}
.navb{appearance:none; background:none; border:0; font:inherit; text-align:left; width:100%;
  color:var(--ink2); padding:7px 10px; border-radius:5px; cursor:pointer;
  display:flex; align-items:center; gap:9px; line-height:1.35}
.navb:hover{background:var(--raise); color:var(--ink)}
.navb[aria-current="page"]{background:var(--accent); color:var(--accent-ink); font-weight:500}
.navb .badge{margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:11px; opacity:.75}
.navb .alert{margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:11px;
  background:var(--crit); color:#fff; border-radius:999px; padding:0 6px; opacity:1}
.navb[aria-current="page"] .alert{background:var(--accent-ink); color:var(--crit)}
main{padding-inline:22px; padding-block:22px 72px; display:flex; flex-direction:column; gap:26px; min-width:0}

@media (max-width:1000px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .burger{display:inline-flex}
  aside.rail{position:fixed; left:0; top:0; height:100vh; width:var(--railw);
    transform:translateX(-100%); transition:transform .18s ease; box-shadow:var(--shadow); padding-top:18px;
    z-index:61}                       /* acima do escurecimento (.scrim, 60): senão o menu aberto não recebe o toque */
  aside.rail.open{transform:none}
  main{padding-inline:16px}
}

/* ---------------- controles ---------------- */
select,input,textarea{font:inherit; color:var(--ink); background:var(--raise);
  border:1px solid var(--line); border-radius:5px; padding:7px 9px; width:100%}
textarea{resize:vertical; min-height:70px; line-height:1.45}
input[type="checkbox"]{width:auto; accent-color:var(--accent)}
label.f{display:flex; flex-direction:column; gap:5px; font-size:12px; color:var(--muted); font-weight:500}
label.chk{flex-direction:row; align-items:center; gap:8px; font-size:13px; color:var(--ink2); padding-top:18px}
.btn{appearance:none; font:inherit; font-weight:500; cursor:pointer; border:1px solid var(--line);
  background:var(--raise); color:var(--ink); border-radius:5px; padding:7px 13px;
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.pri{background:var(--accent); border-color:var(--accent); color:var(--accent-ink)}
.btn.pri:hover{background:var(--accent-hi); border-color:var(--accent-hi)}
.btn.sm{padding:4px 9px; font-size:12px}
.btn.danger{color:var(--crit); border-color:var(--crit)}
.btn:disabled{opacity:.45; cursor:not-allowed}
.toolbar{display:flex; gap:9px; flex-wrap:wrap; align-items:flex-end}
.toolbar label.f{min-width:130px; flex:1 1 130px; max-width:220px}
.toolbar .grow{flex:2 1 230px; max-width:none}

/* ---------------- blocos ---------------- */
section.block{display:flex; flex-direction:column; gap:13px; min-width:0}
.blockhead{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:9px}
.blockhead h2{font-family:"Barlow Condensed",sans-serif; font-size:24px; font-weight:600}
.blockhead h3{font-family:"Barlow Condensed",sans-serif; font-size:19px; font-weight:600}
.blockhead p{margin:0; font-size:13px; color:var(--muted); margin-right:auto}

.kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); gap:11px}
.kpi{background:var(--panel); border:1px solid var(--hair); border-radius:7px; padding:14px 15px;
  display:flex; flex-direction:column; gap:3px; box-shadow:var(--shadow); min-width:0}
.kpi .lbl{font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  letter-spacing:.07em; font-size:12px; color:var(--muted); overflow-wrap:anywhere}
.kpi .val{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums;
  font-size:clamp(17px,2vw,23px); font-weight:500; letter-spacing:-.02em; line-height:1.15;
  overflow-wrap:anywhere}
.kpi .sub{font-size:12px; color:var(--muted)}
.kpi.lead{border-left:3px solid var(--accent)}
.kpi .val.pos{color:var(--good)} .kpi .val.neg{color:var(--crit)} .kpi .val.warn{color:var(--warn)}

/* ---------------- tabelas ---------------- */
.tablewrap{overflow-x:auto; background:var(--panel); border:1px solid var(--hair); border-radius:7px}
table{border-collapse:collapse; width:100%; min-width:680px}
th{text-align:left; font-family:"Barlow Condensed",sans-serif; font-weight:600; text-transform:uppercase;
  letter-spacing:.06em; font-size:12px; color:var(--muted); padding:9px 12px; white-space:nowrap;
  border-bottom:1px solid var(--line); background:var(--panel); position:sticky; top:0; z-index:1}
td{padding:9px 12px; border-bottom:1px solid var(--hair); vertical-align:top}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--raise)}
td.n,th.n{text-align:right; font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; white-space:nowrap}
td.mono{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; white-space:nowrap}
tfoot td{border-top:1px solid var(--line); font-weight:600; background:var(--raise)}
.desc{max-width:320px; min-width:180px; color:var(--ink2); font-size:13px}
.rowact{display:flex; gap:5px; justify-content:flex-end}

/* ---------------- pílulas ---------------- */
.pill{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:500;
  border-radius:4px; padding:3px 8px; white-space:nowrap; border:1px solid transparent}
.pill i{width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; font-style:normal}
.p-novo{color:var(--s-novo); background:var(--tint-novo)}
.p-and{color:var(--s-and); background:var(--tint-and)}
.p-agu{color:var(--s-agu); background:var(--tint-and)}
.p-med{color:var(--s-med); background:var(--tint-med)}
.p-ok{color:var(--s-ok); background:var(--tint-ok)}
.p-can{color:var(--s-can); background:var(--tint-can)}
.p-crit{color:var(--crit); background:var(--tint-crit)}
.p-info{color:var(--info); background:var(--tint-info)}
.tag{font-size:11px; color:var(--muted); border:1px solid var(--line); border-radius:3px; padding:1px 5px; white-space:nowrap}
.tag.emerg{color:var(--crit); border-color:var(--crit)}

/* ---------------- barras de distribuição ---------------- */
.dist{display:flex; flex-direction:column; gap:1px; background:var(--panel);
  border:1px solid var(--hair); border-radius:7px; padding:12px 14px}
.dist .r{display:grid; grid-template-columns:186px 1fr 74px 46px; align-items:center; gap:11px; padding:5px 0}
.dist .r + .r{border-top:1px solid var(--hair)}
.dist .track{height:9px; background:var(--sunk); border-radius:999px; overflow:hidden}
.dist .fill{display:block; height:100%; min-width:2px; border-radius:999px}
.dist .qt{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; text-align:right; font-size:13px}
.dist .pc{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; text-align:right; font-size:12px; color:var(--muted)}
@media (max-width:640px){ .dist .r{grid-template-columns:1fr 74px 46px} .dist .track{grid-column:1/-1; order:3} }

/* ---------------- cartões de contrato / obra ---------------- */
.ctlist{display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:13px}
.ct{background:var(--panel); border:1px solid var(--hair); border-radius:7px; padding:16px;
  display:flex; flex-direction:column; gap:11px; box-shadow:var(--shadow)}
.ct .hd{display:flex; align-items:flex-start; gap:10px}
.ct .hd h3{font-family:"Barlow Condensed",sans-serif; font-size:20px; font-weight:600; line-height:1.15; margin-right:auto}
.ct .no{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--muted)}
.ct .obj{font-size:13px; color:var(--ink2); margin:0}
.ct .meta{display:grid; grid-template-columns:1fr 1fr; gap:9px 14px; font-size:12px}
.ct .meta div{display:flex; flex-direction:column; min-width:0}
.ct .meta .k{color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  font-family:"Barlow Condensed",sans-serif; font-weight:600}
.ct .meta .v{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; overflow-wrap:anywhere}
.bar{height:7px; background:var(--sunk); border-radius:999px; overflow:hidden}
.bar>i{display:block; height:100%; border-radius:999px; background:var(--accent)}
.bar>i.over{background:var(--crit)}
.bar>i.warn{background:var(--warn)}
.barlbl{display:flex; justify-content:space-between; gap:10px; font-size:11px; color:var(--muted)}

/* ---------------- gráfico ---------------- */
.chartbox{background:var(--panel); border:1px solid var(--hair); border-radius:7px; padding:16px}
.legend{display:flex; gap:16px; flex-wrap:wrap; font-size:12px; color:var(--ink2); margin-bottom:10px}
.legend b{display:inline-flex; align-items:center; gap:7px; font-weight:500}
.swatch{width:11px; height:11px; border-radius:3px; flex:none}
.chartscroll{overflow-x:auto}
svg.chart{display:block; width:100%; min-width:520px; height:auto; max-width:100%}
svg.chart text{font-family:"IBM Plex Sans",sans-serif}

/* ---------------- painel lateral (formulários) ---------------- */
.scrim{position:fixed; inset:0; background:rgba(10,14,11,.45); z-index:60; display:none}
.scrim.on{display:block}
.sheet{position:fixed; top:0; right:0; bottom:0; width:min(620px,100%); background:var(--panel);
  border-left:1px solid var(--line); z-index:61; display:none; flex-direction:column;
  box-shadow:-14px 0 40px -18px rgba(0,0,0,.5)}
.sheet.on{display:flex}
.sheet header{display:flex; align-items:center; gap:12px; padding:15px 20px; border-bottom:1px solid var(--line)}
.sheet header h2{font-family:"Barlow Condensed",sans-serif; font-size:21px; font-weight:600; margin-right:auto}
.sheet .body{overflow-y:auto; padding:18px 20px; display:flex; flex-direction:column; gap:14px; flex:1}
.sheet footer{display:flex; gap:9px; padding:14px 20px; border-top:1px solid var(--line); background:var(--raise); flex-wrap:wrap}
.sheet footer .sp{margin-left:auto}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.grid3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px}
.grid4{display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:12px}
@media (max-width:600px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}
fieldset{border:0; border-top:1px solid var(--line); margin:0; padding:14px 0 0; display:flex; flex-direction:column; gap:12px}
legend{padding:0 8px 0 0; font-family:"Barlow Condensed",sans-serif; font-weight:600;
  text-transform:uppercase; letter-spacing:.07em; font-size:12px; color:var(--muted)}

/* itens editáveis (propostas, compras, medição) */
.itens{display:flex; flex-direction:column; gap:7px}
.item{display:grid; grid-template-columns:1fr 78px 92px 108px 34px; gap:7px; align-items:end}
.item .del{padding:7px 0; justify-content:center}
@media (max-width:600px){.item{grid-template-columns:1fr 1fr; }.item .del{grid-column:1/-1}}
.totrow{display:flex; justify-content:space-between; gap:12px; font-size:13px; padding:5px 0}
.totrow + .totrow{border-top:1px solid var(--hair)}
.totrow b{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums}
.totrow.big{font-size:15px; border-top:1px solid var(--line); padding-top:9px}

/* ---------------- avisos e vazios ---------------- */
.note{background:var(--raise); border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:6px; padding:11px 14px; font-size:13px; color:var(--ink2)}
.note.warn{border-left-color:var(--warn)}
.note.crit{border-left-color:var(--crit)}
.note.info{border-left-color:var(--info)}
.empty{padding:38px 20px; text-align:center; color:var(--muted); background:var(--panel);
  border:1px dashed var(--line); border-radius:7px}
.empty b{display:block; color:var(--ink); font-family:"Barlow Condensed",sans-serif; font-size:19px; margin-bottom:5px}
.toast{position:fixed; left:50%; bottom:22px; transform:translateX(-50%); z-index:80;
  background:var(--accent); color:var(--accent-ink); padding:10px 17px; border-radius:6px;
  font-size:13px; font-weight:500; box-shadow:var(--shadow); max-width:calc(100% - 40px)}
.toast.err{background:var(--crit); color:#fff}
.skel{color:var(--muted); padding:34px 0; text-align:center}

/* ---------------- logo da empresa ----------------
   Exibida sem alteração; o fundo branco do arquivo fica sobre uma placa
   branca, para não aparecer como um retângulo solto em nenhum tema. */
[data-logo]{display:inline-flex; flex:none}
.logo-img{display:block; height:44px; width:auto; background:#fff; border-radius:6px; padding:2px 5px}
.login-marca .logo-img{height:96px; padding:6px 10px}

/* ---------------- documentos (recibo / RPS / boletim) ---------------- */
.doc .doc-topo{display:flex; align-items:center; gap:16px; border-bottom:2px solid var(--line); padding-bottom:12px; margin-bottom:14px}
.doc .doc-logo{height:64px; width:auto; flex:none; background:#fff; border-radius:6px; padding:3px 6px}
.doc .doc-emp{display:flex; flex-direction:column; font-size:12px; color:var(--ink2); line-height:1.45}
.doc .doc-emp b{font-size:14px; color:var(--ink)}
.doc{background:var(--raise); border:1px solid var(--line); border-radius:6px; padding:18px; font-size:13px; line-height:1.6}
.doc h3{font-family:"Barlow Condensed",sans-serif; font-size:18px; margin-bottom:10px}
.doc dl{display:grid; grid-template-columns:auto 1fr; gap:5px 14px; margin:0 0 14px}
.doc dt{font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
  font-family:"Barlow Condensed",sans-serif; font-weight:600; padding-top:2px}
.doc dd{margin:0; overflow-wrap:anywhere}
.doc .decl{font-size:12px; color:var(--ink2); border-top:1px solid var(--line); padding-top:12px; text-align:justify}
.doc table{min-width:0; font-size:12px}
.doc th,.doc td{padding:5px 8px}
.sigrow{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:26px; font-size:11px; text-align:center; color:var(--muted)}
.sigrow span{display:block; border-top:1px solid var(--ink2); padding-top:6px}

/* ---------------- funil de oportunidades (kanban) ---------------- */
.kanban{display:flex; gap:11px; overflow-x:auto; padding-bottom:8px; align-items:flex-start}
.kcol{flex:0 0 268px; background:var(--panel); border:1px solid var(--hair); border-radius:7px;
  display:flex; flex-direction:column; min-height:120px}
.kcol > header{padding:11px 13px 9px; border-bottom:1px solid var(--hair);
  display:flex; align-items:baseline; gap:8px; position:sticky; top:0; background:var(--panel); border-radius:7px 7px 0 0}
.kcol > header h3{font-family:"Barlow Condensed",sans-serif; font-size:16px; font-weight:600; margin-right:auto}
.kcol > header .sm2{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--muted)}
.kcol .cards{display:flex; flex-direction:column; gap:8px; padding:10px}
.kcard{background:var(--raise); border:1px solid var(--line); border-radius:6px; padding:10px 11px;
  display:flex; flex-direction:column; gap:6px; cursor:pointer; text-align:left; font:inherit; color:var(--ink); width:100%}
.kcard:hover{border-color:var(--muted)}
.kcard b{font-size:13px; font-weight:600; line-height:1.3}
.kcard .cli{font-size:12px; color:var(--muted)}
.kcard .vl{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; font-size:14px}
.kcard .ft{display:flex; align-items:center; gap:7px; font-size:11px; color:var(--muted); flex-wrap:wrap}
.kcard .mv{display:flex; gap:4px; margin-top:2px}
.kcard .mv button{flex:1; padding:2px 0; font-size:12px; border:1px solid var(--line);
  background:var(--panel); color:var(--ink2); border-radius:4px; cursor:pointer; font-family:inherit}
.kcard .mv button:hover{border-color:var(--muted); color:var(--ink)}
.kcol .vaziok{padding:16px 12px; text-align:center; color:var(--muted); font-size:12px}
.kbar{height:3px; border-radius:3px 3px 0 0; margin:-1px -1px 0}

/* ---------------- agenda de atividades ---------------- */
.agenda{display:flex; flex-direction:column; gap:1px; background:var(--panel);
  border:1px solid var(--hair); border-radius:7px; overflow:hidden}
.ativ{display:grid; grid-template-columns:96px 1fr auto; gap:12px; align-items:start; padding:11px 14px;
  background:var(--panel); text-align:left; border:0; border-bottom:1px solid var(--hair); font:inherit; color:var(--ink); width:100%; cursor:pointer}
.ativ:last-child{border-bottom:0}
.ativ:hover{background:var(--raise)}
.ativ .dt{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; font-size:12px; color:var(--muted); padding-top:2px}
.ativ .dt.late{color:var(--crit); font-weight:600}
.ativ .mid{min-width:0}
.ativ .mid b{display:block; font-size:13.5px; font-weight:600}
.ativ .mid span{display:block; font-size:12.5px; color:var(--muted); overflow-wrap:anywhere}
.ativ .rt{display:flex; flex-direction:column; align-items:flex-end; gap:5px}
.ativ.done .mid b{text-decoration:line-through; color:var(--muted)}
@media (max-width:600px){ .ativ{grid-template-columns:1fr; gap:6px} .ativ .rt{align-items:flex-start; flex-direction:row} }

/* ---------------- novas oportunidades (captação no PNCP) ---------------- */
.cap-filtros{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin:4px 0 6px}
.cap-filtro{display:flex;flex-direction:column;gap:3px;background:var(--panel);border:1px solid var(--hair);border-radius:7px;padding:10px 12px;font-size:13px;min-width:0}
.cap-filtro span{color:var(--ink2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cap-filtro .cap-msg{color:var(--muted);font-size:12px;line-height:1.4}
.cap-nota{margin:6px 0 12px;font-size:12px;color:var(--muted)}
.cap-lista{display:flex;flex-direction:column;gap:10px}
.cap-card{background:var(--panel);border:1px solid var(--hair);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.cap-top{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cap-obj{margin:0;font-size:15px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.cap-obj mark{background:var(--tint-and);color:inherit;border-radius:3px;padding:0 2px}
.cap-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12.5px;color:var(--ink2)}
.cap-meta span{min-width:0;overflow-wrap:anywhere}
.cap-acoes{justify-content:flex-start;flex-wrap:wrap}
.cap-mods{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2px 12px}
.cap-ia{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink2)}
.cap-obj mark{padding:0}

/* ---------------- agente de licitações ---------------- */
.ag-chat{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.ag-sug{display:flex;gap:6px;flex-wrap:wrap}
.ag-sug .btn{font-weight:400;text-align:left;white-space:normal}
.ag-lista{display:flex;flex-direction:column;gap:10px}
.ag-item{background:var(--panel);border:1px solid var(--hair);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.ag-perg{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ag-perg span{font-size:12px;color:var(--muted)}
.ag-resp{white-space:pre-wrap;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.ag-cit{color:var(--accent);font-weight:600}
.ag-passos ol{margin:4px 0 0;padding-left:20px;font-size:13px;line-height:1.5}
.ag-rodape{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ag-ref{text-decoration:none;cursor:help}
a.ag-ref{cursor:pointer;text-decoration:underline}
.ag-parecer{background:var(--panel);border:1px solid var(--hair);border-left:3px solid var(--accent);border-radius:8px;padding:14px 16px}
.ag-rec{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ag-nota{font-size:13px;color:var(--ink2)}
.ag-nota b{font-size:20px;color:var(--ink)}
.ag-minuta{background:var(--panel);border:1px solid var(--hair);border-radius:8px;padding:10px 14px;margin-bottom:8px}
.ag-minuta summary{cursor:pointer;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ag-minuta .ag-resp{margin:10px 0}

/* ---------------- sessão e chat ---------------- */
.ag-item.sess-thc{border-left:3px solid var(--crit)}
tr.sess-thc td{background:var(--tint-crit)}

/* ---------------- documentos da empresa (habilitação) ---------------- */
.doc-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.doc-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--hair);border-left:3px solid var(--line);border-radius:7px;padding:10px 12px;background:var(--panel);font-size:13px;min-width:0}
.doc-card.doc-crit{border-left-color:var(--crit)}
.doc-card.doc-and{border-left-color:var(--warn)}
.doc-card.doc-ok{border-left-color:var(--good)}
.doc-checks{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.doc-checks li{display:flex;gap:10px;align-items:flex-start;font-size:13px}
.doc-checks li span{color:var(--ink2);overflow-wrap:anywhere}
.doc-ok,.doc-no,.doc-q{flex:none;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.doc-ok{background:var(--tint-ok);color:var(--good)}
.doc-no{background:var(--tint-crit);color:var(--crit)}
.doc-q{background:var(--tint-and);color:var(--warn)}

/* ---------------- polimento ---------------- */
.chartbox{overflow-x:auto}
button.kpi-link{font:inherit;text-align:left;cursor:pointer;color:inherit}
button.kpi-link:hover{border-color:var(--accent)}
button.kpi-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (max-width:600px){
  #sessaoUsuario [data-nome]{display:none}
  .lic-abas{gap:4px}
  .lic-abas .btn{padding:6px 9px}
}

/* ---------------- sessão e login ---------------- */
body{margin:0}
[hidden]{display:none!important}
a.navb{text-decoration:none}
.sessao{display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--ink2)}
.sessao b{font-weight:600; color:var(--ink)}
.sessao form{margin:0}
body.tela-login{margin:0; min-height:100vh; display:grid; place-items:center; padding:24px 16px}
.login-cartao{width:min(400px,100%); background:var(--panel); border:1px solid var(--line);
  border-radius:10px; padding:30px 28px; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:16px}
.login-marca{display:flex; align-items:center; gap:12px; margin-bottom:6px}
.login-marca b{font-family:"Barlow Condensed",sans-serif; font-size:26px; font-weight:700; display:block; line-height:1.05}
.login-marca span{font-size:11px; color:var(--muted); letter-spacing:.07em; text-transform:uppercase}
.login-cartao .btn.pri{justify-content:center; padding:11px 14px; font-size:15px}
.login-erro{background:var(--tint-crit); color:var(--crit); border-left:3px solid var(--crit);
  border-radius:6px; padding:10px 12px; font-size:13px}
.login-rodape{font-size:12px; color:var(--muted); text-align:center; margin:4px 0 0}
