/* ============================================================================
   CONCLAVE — sistema de PAINÉIS (control-panel, idioma Hostinger)
   Casca de sidebar + cards + linhas-de-ação + métricas em donut + botões pill.
   Acento OPERACIONAL violeta (--violet); teal (--live) e ouro (--gold) da marca
   permanecem. Substrato near-black do Observatório (--brand-obs-*). Um só arquivo
   para /central, /admin, /decisoes e a sala de deliberação. Dark-first.
   ============================================================================ */

/* ---------- casca: sidebar + conteúdo ---------- */
.pshell{ display:grid; grid-template-columns:236px minmax(0,1fr); min-height:100vh;
  background:var(--brand-obs-0); color:var(--body); }
.psidebar{ position:sticky; top:0; align-self:start; height:100vh; display:flex; flex-direction:column;
  background:var(--brand-obs-1); border-right:1px solid var(--brand-obs-4); padding:16px 12px; gap:4px; }
.psb-brand{ display:flex; align-items:center; gap:10px; padding:6px 8px 14px; margin-bottom:6px;
  border-bottom:1px solid var(--brand-obs-4); }
.psb-brand .mark{ width:30px; height:30px; display:grid; place-items:center; color:var(--live); flex:0 0 auto; }
.psb-brand b{ font-family:var(--sans); font-weight:800; letter-spacing:-.02em; color:var(--ink); font-size:15px; }
.psb-brand small{ display:block; font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted); margin-top:1px; }
.psb-nav{ display:flex; flex-direction:column; gap:2px; overflow-y:auto; flex:1; margin-top:6px; }
.psb-sec{ font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); padding:12px 10px 5px; }
.psb-item{ display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:10px;
  color:var(--body); background:none; border:0; cursor:pointer; font:inherit; font-size:13.5px;
  text-align:left; width:100%; position:relative; transition:background .14s, color .14s; text-decoration:none; }
.psb-item .g,.psb-item i{ font-size:17px; width:19px; color:var(--muted); flex:0 0 auto; transition:color .14s; }
.psb-item:hover{ background:var(--brand-obs-2); color:var(--ink); }
.psb-item:hover .g,.psb-item:hover i{ color:var(--body); }
.psb-item.on{ background:var(--violet-soft); color:var(--ink); font-weight:600; }
.psb-item.on .g,.psb-item.on i{ color:var(--violet); }
.psb-item.on::before{ content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px;
  border-radius:0 3px 3px 0; background:var(--violet); }
.psb-item .tbadge{ margin-left:auto; background:var(--bad); color:#fff; font-size:10px; font-weight:700;
  border-radius:99px; min-width:17px; height:17px; padding:0 5px; display:grid; place-items:center;
  font-variant-numeric:tabular-nums; }
.psb-foot{ margin-top:auto; padding-top:10px; border-top:1px solid var(--brand-obs-4); }

.pmain{ min-width:0; padding:clamp(18px,3vw,34px) clamp(16px,3.4vw,40px) 64px; }

/* ---------- topo: breadcrumb + título + ação ---------- */
.ptop{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-bottom:22px; }
.pcrumb{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--muted);
  display:flex; align-items:center; gap:7px; margin-bottom:9px; }
.pcrumb a{ color:var(--muted); text-decoration:none; } .pcrumb a:hover{ color:var(--body); }
.pcrumb .sep{ opacity:.5; }
.ptitle{ font-family:var(--sans); font-weight:800; letter-spacing:-.03em; line-height:1.05;
  font-size:clamp(1.6rem,3.2vw,2.2rem); color:var(--ink); margin:0; }
.psub{ color:var(--muted); font-size:13.5px; margin:7px 0 0; }
.pactions{ display:flex; gap:9px; flex-wrap:wrap; }

/* ---------- botões pill ---------- */
.pbtn{ display:inline-flex; align-items:center; gap:8px; font:inherit; font-size:13px; font-weight:600;
  padding:9px 16px; border-radius:99px; border:1px solid var(--brand-obs-4); background:var(--brand-obs-2);
  color:var(--ink); cursor:pointer; text-decoration:none; transition:border-color .14s, background .14s; white-space:nowrap; }
.pbtn:hover{ border-color:var(--brand-obs-6); background:var(--brand-obs-3); }
.pbtn .g,.pbtn i{ font-size:16px; color:var(--muted); }
.pbtn-primary{ background:var(--violet); border-color:var(--violet); color:#fff; }
.pbtn-primary .g,.pbtn-primary i{ color:#fff; }
.pbtn-primary:hover{ background:var(--violet-strong); border-color:var(--violet-strong); }
.pbtn-sm{ padding:6px 12px; font-size:12px; }

/* ---------- grid de cards ---------- */
.pgrid{ display:grid; gap:16px; }
.pgrid.cols-2{ grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); }
.pgrid.cols-3{ grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.pgrid.cols-4{ grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); }

.pcard{ background:var(--brand-obs-2); border:1px solid var(--brand-obs-4); border-radius:16px;
  padding:20px 22px; min-width:0; }
.pcard.pad-sm{ padding:14px 16px; }
.pcard-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.pcard-title{ font-family:var(--sans); font-weight:700; letter-spacing:-.01em; font-size:16px;
  color:var(--ink); display:flex; align-items:center; gap:9px; margin:0; }
.pcard-title .g,.pcard-title i{ color:var(--violet); font-size:18px; }
.pcard-sub{ color:var(--muted); font-size:12.5px; margin:2px 0 0; }

/* ---------- linha-de-ação (o coração do idioma) ---------- */
.prow{ display:flex; align-items:center; gap:14px; padding:13px 0; border-top:1px solid var(--brand-obs-4); }
.prow:first-of-type{ border-top:0; }
.prow-ic{ width:38px; height:38px; border-radius:10px; flex:0 0 auto; display:grid; place-items:center;
  background:var(--brand-obs-3); border:1px solid var(--brand-obs-4); color:var(--violet); font-size:18px; }
.prow-b{ min-width:0; flex:1; }
.prow-t{ font-size:14px; font-weight:600; color:var(--ink); letter-spacing:-.01em; overflow-wrap:anywhere; }
.prow-s{ font-size:12.5px; color:var(--muted); margin-top:1px; overflow-wrap:anywhere; }
.prow-act{ flex:0 0 auto; display:flex; align-items:center; gap:8px; }
.prow-chev{ color:var(--muted); font-size:18px; }
.prow.clickable{ cursor:pointer; border-radius:10px; margin:0 -10px; padding-left:10px; padding-right:10px;
  transition:background .14s; } .prow.clickable:hover{ background:var(--brand-obs-1); }

/* ---------- métrica em DONUT (conic-gradient, sem lib) ---------- */
.pmetric{ display:flex; align-items:center; gap:16px; }
.pdonut{ --pct:0; --dc:var(--violet); width:76px; height:76px; border-radius:50%; flex:0 0 auto;
  background:conic-gradient(var(--dc) calc(var(--pct)*1%), var(--brand-obs-4) 0);
  -webkit-mask:radial-gradient(farthest-side,transparent 62%,#000 63%);
          mask:radial-gradient(farthest-side,transparent 62%,#000 63%); position:relative; }
.pdonut-wrap{ position:relative; width:76px; height:76px; flex:0 0 auto; display:grid; place-items:center; }
.pdonut-wrap .pdonut{ position:absolute; inset:0; }
.pdonut-val{ position:relative; font-family:var(--sans); font-weight:800; font-size:17px; color:var(--ink);
  font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.pmetric-b .mv{ font-family:var(--sans); font-weight:800; font-size:26px; letter-spacing:-.02em;
  color:var(--ink); line-height:1; font-variant-numeric:tabular-nums; }
.pmetric-b .mk{ font-size:12px; color:var(--muted); margin-top:4px; }
.pmetric-b .msub{ font-size:11px; color:var(--muted); margin-top:2px; }

/* pares stat compactos (grade dentro de um card) */
.pstats{ display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; }
.pstat .sv{ font-family:var(--sans); font-weight:800; font-size:20px; color:var(--ink);
  font-variant-numeric:tabular-nums; line-height:1; letter-spacing:-.02em; }
.pstat .sv small{ font-size:12px; color:var(--muted); font-weight:600; }
.pstat .sk{ font-size:11.5px; color:var(--muted); margin-top:4px; }

/* ---------- chips / badges de status ---------- */
.pchip{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600;
  padding:3px 10px; border-radius:99px; border:1px solid var(--brand-obs-4); color:var(--body);
  background:var(--brand-obs-3); }
.pchip.ok{ color:#8fe3a8; border-color:#1f4a30; background:#0f2418; }
.pchip.warn{ color:#e8c37a; border-color:#4a3a1a; background:#241c0f; }
.pchip.bad{ color:#f0a0a0; border-color:#4a2020; background:#241010; }
.pchip.violet{ color:var(--violet); border-color:var(--violet-line); background:var(--violet-soft); }

.pempty{ color:var(--muted); font-size:13px; padding:22px 4px; text-align:center; }

/* ---------- responsivo: sidebar vira topo/drawer ---------- */
.psb-toggle{ display:none; }
/* o scrim do drawer NÃO existe no desktop (senão vira um item do grid ocupando a coluna
   principal e empurra a .pmain para fora). Só aparece no mobile como overlay fixo. */
.psb-scrim{ display:none; }
@media (max-width:900px){
  .pshell{ grid-template-columns:1fr; }
  .psidebar{ position:fixed; z-index:60; left:0; top:0; width:250px; transform:translateX(-100%);
    transition:transform .22s cubic-bezier(.22,1,.36,1); box-shadow:0 0 60px rgba(0,0,0,.6); }
  .pshell.nav-open .psidebar{ transform:none; }
  .psb-scrim{ display:block; position:fixed; inset:0; z-index:59; background:rgba(0,0,0,.5);
    opacity:0; visibility:hidden; transition:opacity .2s; }
  .pshell.nav-open .psb-scrim{ opacity:1; visibility:visible; }
  .psb-toggle{ display:inline-flex; }
  .pmain{ padding-top:14px; }
}
@media (prefers-reduced-motion:reduce){
  .psidebar,.psb-scrim{ transition:none; }
}
