@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600;700&family=Source+Serif+4:ital,wght@0,400;0,600;0,700;1,400&display=swap');

/* Layout: cabeçalho vermelho PT fixo com abas; conteúdo em grade de cartões; detalhe em painel lateral. */
:root{
  --bg:#F7F5F3;--surface:#FFFFFF;--surface2:#F0ECE9;--ink:#24171A;--muted:#6E5D60;--line:#E4DBD8;
  --red:var(--tp,#C8102E);--red-deep:var(--tp-deep,#8F0A21);--red-soft:var(--tp-soft,#FBE5E8);--red-ink:var(--tp-ink,#A50D26);--gold:var(--ta,#F2B705);--gold-ink:var(--ta-ink,#7A5A00);--gold-soft:var(--ta-soft,#FFF3C7);
  --brass:var(--tp-ink,#A50D26);--slate:#4A5A6A;--slate-soft:#EAEFF3;--good:#1E8A4C;--warn:#C46A00;--bad:#B3261E;--blue:#2A67B0;--violet:#6B4FB3;--teal:#0F7472;
  --hdr1:var(--tp-h1,#B00E29);--hdr2:var(--tp-h2,#6E0718);--on-hdr:#FFFFFF;
  --paper:#FFFDFA;--paper-ink:#1E1214;--paper-line:#E6D9D6;--ins:#DCEFE2;--del:#FADCDC;
  --st-novo:#2A67B0;--st-em-analise:#6B4FB3;--st-em-andamento:#B07400;--st-aguardando:#D4590F;--st-aprovada:#0F7472;--st-cumprido:#1E8A4C;--st-arquivado:#8A7B7E;
  --st-indicada:#2A67B0;--st-pago:#1E8A4C;--st-aguardando-repasse:#D4590F;--st-sem-execucao:#8A7B7E;
  --a0:var(--tp,#C8102E);--a1:#B07400;--a2:#1E8A4C;--a3:#2A67B0;--a4:#6B4FB3;--a5:#D4590F;--a6:#0F7472;--a7:#B5195F;--a8:#5D6D7E;--a9:#8A6A00;--a10:#00838F;--a11:#6A9A1F;
  --shadow:0 1px 2px rgba(50,12,18,.07),0 6px 18px rgba(50,12,18,.06);
  --font-d:'Space Grotesk','Segoe UI',system-ui,sans-serif;--font-b:'Inter','Segoe UI',system-ui,sans-serif;--font-m:'Space Grotesk','Segoe UI',system-ui,sans-serif;--font-doc:'Source Serif 4','Times New Roman',Georgia,serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#161012;--surface:#211719;--surface2:#2C2023;--ink:#F5ECED;--muted:#B8A5A8;--line:#3A2B2E;
  --red:var(--tpd,#FF5A6E);--red-deep:var(--tpd-deep,#E0344B);--red-soft:var(--tpd-soft,#43161D);--red-ink:var(--tpd-ink,#FF8796);--gold:var(--tad,#FFC93C);--gold-ink:var(--tad-ink,#FFD866);--gold-soft:var(--tad-soft,#3D3213);
  --brass:var(--tpd-ink,#FF8796);--slate:#9FB4CA;--slate-soft:#232C36;--good:#4CC77E;--warn:#FFA53D;--bad:#FF6B5E;--blue:#7FA6E0;--violet:#B39DDB;--teal:#3CC2BC;
  --hdr1:var(--tpd-h1,#7E0A1D);--hdr2:var(--tpd-h2,#40050F);
  --paper:#F6EEE9;--paper-ink:#1E1214;--paper-line:#D9C7C2;--ins:#1F4A33;--del:#5A1E23;
  --st-novo:#7FA6E0;--st-em-analise:#B39DDB;--st-em-andamento:#FFBE2E;--st-aguardando:#FF8A4C;--st-aprovada:#3CC2BC;--st-cumprido:#4CC77E;--st-arquivado:#A39396;
  --st-indicada:#7FA6E0;--st-pago:#4CC77E;--st-aguardando-repasse:#FF8A4C;--st-sem-execucao:#A39396;
  --a0:var(--tpd,#FF5A6E);--a1:var(--tad,#FFC93C);--a2:#4CC77E;--a3:#7FA6E0;--a4:#B39DDB;--a5:#FF8A4C;--a6:#3CC2BC;--a7:#F06292;--a8:#8497AB;--a9:#D3A62A;--a10:#2EC4D6;--a11:#9BCB4B;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.25);color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#161012;--surface:#211719;--surface2:#2C2023;--ink:#F5ECED;--muted:#B8A5A8;--line:#3A2B2E;
  --red:var(--tpd,#FF5A6E);--red-deep:var(--tpd-deep,#E0344B);--red-soft:var(--tpd-soft,#43161D);--red-ink:var(--tpd-ink,#FF8796);--gold:var(--tad,#FFC93C);--gold-ink:var(--tad-ink,#FFD866);--gold-soft:var(--tad-soft,#3D3213);
  --brass:var(--tpd-ink,#FF8796);--slate:#9FB4CA;--slate-soft:#232C36;--good:#4CC77E;--warn:#FFA53D;--bad:#FF6B5E;--blue:#7FA6E0;--violet:#B39DDB;--teal:#3CC2BC;
  --hdr1:var(--tpd-h1,#7E0A1D);--hdr2:var(--tpd-h2,#40050F);
  --paper:#F6EEE9;--paper-ink:#1E1214;--paper-line:#D9C7C2;--ins:#1F4A33;--del:#5A1E23;
  --st-novo:#7FA6E0;--st-em-analise:#B39DDB;--st-em-andamento:#FFBE2E;--st-aguardando:#FF8A4C;--st-aprovada:#3CC2BC;--st-cumprido:#4CC77E;--st-arquivado:#A39396;
  --st-indicada:#7FA6E0;--st-pago:#4CC77E;--st-aguardando-repasse:#FF8A4C;--st-sem-execucao:#A39396;
  --a0:var(--tpd,#FF5A6E);--a1:var(--tad,#FFC93C);--a2:#4CC77E;--a3:#7FA6E0;--a4:#B39DDB;--a5:#FF8A4C;--a6:#3CC2BC;--a7:#F06292;--a8:#8497AB;--a9:#D3A62A;--a10:#2EC4D6;--a11:#9BCB4B;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.25);color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--font-b);margin:0}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--hdr1);z-index:30}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--font-d);margin:0;text-wrap:balance}
.num{font-variant-numeric:tabular-nums}
.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));max-width:1280px;margin:0 auto}
/* cabeçalho */
/* menu lateral à esquerda; no celular vira gaveta aberta pelo botão Menu */
.shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:linear-gradient(180deg,var(--hdr1),var(--hdr2));color:var(--on-hdr);padding:16px 12px calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px;z-index:25;box-shadow:4px 0 18px rgba(80,5,10,.2)}
.content{min-width:0}.topbar{display:none}
.sidebtn{display:block;width:100%;text-align:left;background:rgba(255,255,255,.14);border:0;color:#fff;border-radius:10px;padding:9px 12px;font:inherit;font-weight:600;font-size:13.5px;cursor:pointer;text-decoration:none}
.sidebtn:hover{background:rgba(255,255,255,.22)}.sidebtn.gold{background:#FFC20E;color:var(--on-ta,#2A1700)}
.sidefoot{display:grid;gap:8px;font-size:12.5px}
.menubtn{background:rgba(255,255,255,.16);border:0;color:#fff;border-radius:10px;padding:8px 12px;font:inherit;font-weight:700;cursor:pointer}
#mscrim{position:fixed;inset:0;background:rgba(20,5,8,.5);z-index:40}
@media (max-width:900px){.shell{display:block}
  .side{position:fixed;inset:0 auto 0 0;width:min(292px,86vw);height:100%;transform:translateX(-105%);transition:transform .2s ease;box-shadow:12px 0 40px rgba(0,0,0,.35);z-index:45}
  .side.open{transform:none}
  .topbar{display:flex;align-items:center;gap:10px;justify-content:space-between;position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:linear-gradient(115deg,var(--hdr1),var(--hdr2));color:#fff;padding:10px 16px;box-shadow:0 4px 18px rgba(80,5,10,.25)}}
@media (prefers-reduced-motion:reduce){.side{transition:none}}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.star{width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none}
.star svg{width:28px;height:28px}
.brand h1{font-size:16px;font-weight:800;letter-spacing:-.01em;line-height:1.15}
.brand small{display:block;font-size:12px;opacity:.85;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.who{display:grid;gap:6px;justify-items:start;font-size:13px;opacity:.95}
.pill-lock{background:rgba(255,255,255,.16);border-radius:99px;padding:4px 10px;font-weight:600;font-size:12px}
nav{display:flex;flex-direction:column;gap:2px;flex:1}
nav .grp{font-size:11px;letter-spacing:.09em;text-transform:uppercase;opacity:.72;margin:14px 10px 4px;font-weight:700}
nav button{display:block;width:100%;text-align:left;background:none;border:0;color:#fff;opacity:.86;padding:9px 12px;font:inherit;font-weight:600;font-size:14.5px;border-left:4px solid transparent;cursor:pointer;border-radius:0 10px 10px 0}
nav button:hover{opacity:1;background:rgba(255,255,255,.1)}
nav button[aria-selected="true"]{opacity:1;border-left-color:var(--gold);background:rgba(255,255,255,.17)}
nav button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.card-k:focus-visible,tr.row:focus-visible{outline:3px solid var(--gold);outline-offset:1px}
main{padding-block:20px 60px;display:grid;gap:18px}
/* componentes */
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);min-width:0}
.card h2{font-size:17px;font-weight:700;margin-bottom:12px}
.card h2 small{font:500 12px var(--font-b);color:var(--muted);margin-left:8px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.kpi{border-radius:14px;padding:14px 16px;color:#fff;position:relative;overflow:hidden;min-width:0}
.kpi b{display:block;font:800 32px/1.05 var(--font-d);font-variant-numeric:tabular-nums}
.kpi span{display:block;font-size:13px;font-weight:600;opacity:.95;margin-top:4px}
.kpi small{display:block;font-size:12px;opacity:.85;margin-top:2px}
.k-red{background:linear-gradient(135deg,#D6141B,#9C0B13)}.k-gold{background:linear-gradient(135deg,#F2B300,#C98A00);color:var(--on-ta,#2A1700)}
.k-green{background:linear-gradient(135deg,#0F8A47,#0B6A34)}.k-blue{background:linear-gradient(135deg,#2F6FDE,#1D48A8)}
.k-violet{background:linear-gradient(135deg,#7B4DD8,#4F2A9E)}.k-orange{background:linear-gradient(135deg,#C2570C,#963A04)}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 14px;font-weight:600;cursor:pointer}
.btn:hover{background:var(--surface2)}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.primary:hover{background:var(--red-deep)}
.btn.danger{color:var(--red-ink);border-color:var(--red)}
.btn.sm{padding:4px 10px;font-size:13px;border-radius:8px}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:2px 10px 2px 8px;font-size:12.5px;font-weight:600;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c);white-space:nowrap}
.chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}
.chip.plain::before{display:none}.chip.plain{padding:2px 10px}
.p-alta{--c:var(--red-ink)}.p-media{--c:var(--gold-ink)}.p-baixa{--c:var(--muted)}
.tag{display:inline-block;background:var(--red-soft);color:var(--red-ink);border-radius:6px;padding:1px 7px;font-size:12px;font-weight:600}
.muted{color:var(--muted)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar input,.toolbar select,.f input,.f select,.f textarea{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;min-width:0;max-width:100%}
.toolbar input[type=search]{flex:1 1 220px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;font-size:14px}
th{position:sticky;top:0;background:var(--surface2);text-align:left;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:9px 10px;white-space:nowrap}
td{padding:9px 10px;border-top:1px solid var(--line);vertical-align:top}
tr.row{cursor:pointer}tr.row:hover td{background:var(--surface2)}
td.sum{min-width:240px;max-width:420px}
td.sum b{font-weight:600}
.pager{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:12px}
.empty{padding:36px 16px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);font:700 17px var(--font-d);margin-bottom:4px}
/* gráficos */
.hb{display:grid;gap:8px}
.hb div.r{display:grid;grid-template-columns:minmax(90px,150px) 1fr auto;gap:10px;align-items:center;font-size:13.5px}
.hb .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb .tr{height:14px;background:var(--surface2);border-radius:99px;overflow:hidden}
.hb .fi{height:100%;border-radius:99px;background:var(--c)}
.donut{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.donut svg{width:170px;height:170px;flex:none}
.legend{display:grid;gap:6px;font-size:13.5px;flex:1 1 150px}
.legend div{display:flex;gap:8px;align-items:center}.legend i{width:11px;height:11px;border-radius:3px;background:var(--c);flex:none}
.legend b{margin-left:auto;font-variant-numeric:tabular-nums}
.chart{width:100%;height:auto}.ax{fill:var(--muted);font:11px var(--font-b)}.gl{stroke:var(--line);stroke-width:1}
.lg2{display:flex;gap:14px;font-size:13px;margin-bottom:6px}.lg2 i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.mand{background:var(--surface2);border-radius:99px;height:12px;overflow:hidden}
.mand i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--red));border-radius:99px}
.hero{display:grid;gap:10px;background:linear-gradient(120deg,var(--red-soft),var(--surface));}
.hero h2{font-size:22px;margin:0}
.alertlist{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.alertlist li{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:var(--surface2);cursor:pointer}
.alertlist li:hover{outline:2px solid var(--line)}
.alertlist .d{flex:none;min-width:46px;text-align:center;font:800 16px var(--font-d);color:var(--red-ink)}
.alertlist .d small{display:block;font:500 11px var(--font-b);color:var(--muted)}
/* quadro */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:10px;align-items:start}
.col{background:var(--surface2);border-radius:14px;padding:10px;min-height:120px;border-top:5px solid var(--c)}
.col.over{outline:3px dashed var(--c)}
.col h3{font-size:15px;display:flex;justify-content:space-between;margin:2px 4px 10px}
.card-k{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;cursor:grab;display:grid;gap:6px;font-size:13.5px}
.card-k b{font-weight:600;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.row2{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dot{width:10px;height:10px;border-radius:50%;background:var(--c);display:inline-block}
/* agenda */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal .wd{font-size:12px;color:var(--muted);text-align:center;font-weight:600;padding:4px 0}
.cal button{aspect-ratio:1.15;border:1px solid var(--line);background:var(--surface);border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:2px;min-height:44px}
.cal button.off{opacity:.35}.cal button.today{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}.cal button.sel{background:var(--red);color:#fff}
.cal button .dots{display:flex;gap:2px;height:6px}.cal button .dots i{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.ev{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}
.ev:first-child{border-top:0}
.ev .dt{text-align:center;font:800 20px/1 var(--font-d);color:var(--red-ink)}.ev .dt small{display:block;font:600 11px var(--font-b);text-transform:uppercase;color:var(--muted);margin-top:3px}
.ev.done{opacity:.6}
/* gaveta */
#scrim{position:fixed;inset:0;background:rgba(20,5,8,.55);z-index:40}
#drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--bg);z-index:50;transform:translateX(105%);transition:transform .22s ease;overflow-y:auto;box-shadow:-12px 0 40px rgba(0,0,0,.3);padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) 16px}
#drawer.open{transform:none}
@media (prefers-reduced-motion:reduce){#drawer{transition:none}}
.dh{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.dh h2{font-size:20px}
.f{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.f label{display:grid;gap:4px;font-size:12.5px;font-weight:600;color:var(--muted)}
.f label.w{grid-column:1/-1}.f textarea{min-height:76px;resize:vertical}
.f input,.f select,.f textarea{width:100%;color:var(--ink)}
.f .chk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink)}.f .chk input{width:auto}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.tl{list-style:none;margin:8px 0 0;padding:0 0 0 14px;border-left:3px solid var(--line);display:grid;gap:10px}
.tl li{font-size:13.5px;position:relative}.tl li::before{content:"";position:absolute;left:-21px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--red)}
.tl small{color:var(--muted);display:block}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;z-index:60;font-weight:600;max-width:calc(100% - 32px)}
.lock{max-width:520px;margin:60px auto;text-align:center}
.lock .star{margin:0 auto 14px;background:var(--red)}.lock .star svg path{fill:#fff}
.meter{height:12px;border-radius:99px;background:var(--surface2);overflow:hidden}.meter i{display:block;height:100%;background:var(--st-cumprido)}
.sk{height:84px;border-radius:14px;background:var(--surface2);animation:pu 1.2s ease-in-out infinite}
@keyframes pu{50%{opacity:.5}}
@media (prefers-reduced-motion:reduce){.sk{animation:none}}
.banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:var(--red-soft);border:1px solid var(--red)}
.banner b{color:var(--red-ink)}
.banner .btn{margin-left:auto}
.mv{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:4px 6px;font-size:12.5px;max-width:100%}
.rep h3{font-size:15px;margin:16px 0 6px}.rep ul{margin:0;padding-left:18px}.rep li{margin-bottom:3px}
.rawtxt{width:100%;min-height:260px;font:13px/1.45 ui-monospace,monospace;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface)}
@media print{.side,.topbar,#mscrim,#scrim,#drawer,#toast,.noprint{display:none!important}.shell{display:block}body{background:#fff;color:#000}.card{box-shadow:none;border-color:#aaa;break-inside:avoid}.kpi{color:#000!important;background:#fff!important;border:1px solid #888}main{padding:0}}
@media (max-width:640px){.f{grid-template-columns:1fr}.hide-s{display:none}.brand h1{font-size:17px}.who{margin-left:0;width:100%}.hb div.r{grid-template-columns:90px 1fr auto}}

/* ---------- identidade PT ---------- */
h1,h2,h3{font-stretch:88%}
.brand h1{font-size:16px;font-weight:800;line-height:1.15}
.kpi b{font-family:var(--font-d);font-stretch:80%;font-weight:800;letter-spacing:-.01em}
.btn.primary{color:#fff}
.sidebtn.gold{background:var(--gold);color:var(--on-ta,#2A1700)}
.star{background:#fff;border-radius:50%}
