:root{
  --font-display:'ZCFraunces',Georgia,'Iowan Old Style',serif;
  --font-body:'ZCPublicSans',-apple-system,'Segoe UI',sans-serif;
  --font-mono:'ZCPlexMono','SFMono-Regular',Consolas,monospace;

  /* Paleta "Vitral" (Ajuste do dono, 2026-08-12): tons de vidro
     colorido de igreja no lugar do azul-marinho + dourado apagado de
     antes — mais rico e diverso, sem perder a seriedade. Ver
     documentacao/08-ajustes-pos-lancamento.md. */
  --bg:#F7F3E8; --surface:#FFFFFF; --surface-2:#FBF8F1;
  --border:#E9E0CC; --border-strong:#D8CDB0;
  --ink:#211B3D; --ink-soft:#5C5578; --ink-faint:#948EAA;

  --primary:#3357A6; --primary-600:#2A4686; --primary-soft:#E7ECF6; --primary-strong:#1F3568;
  --accent:#D69A2D; --accent-strong:#A97717; --accent-soft:#F8EDD6; --accent-line:#C98F2A;

  --success:#2B8A67; --success-soft:#E1F1EA;
  --warning:#B9770E; --warning-soft:#FBEAD2;
  --critical:#B8433D; --critical-soft:#F8E4E2;
  --info:#4A6FD1; --info-soft:#E9ECFA;

  /* Paleta diversa pra graficos/categorias (Ajuste do dono, 2026-08-12)
     — de proposito SEPARADA das cores semanticas acima (sucesso/alerta/
     erro tem SIGNIFICADO; estas sao so pra distinguir series/categorias
     visualmente, ex.: fatias de um grafico de pizza). */
  --chart-1:#3357A6; --chart-2:#B8433D; --chart-3:#2B8A67; --chart-4:#6E52B5; --chart-5:#D69A2D;

  --chrome-bg:#1C2142; --chrome-bg-2:#141833; --chrome-ink:#EDEBFA; --chrome-ink-soft:#A79FC9;
  --chrome-border:rgba(255,255,255,0.09); --chrome-active:rgba(255,255,255,0.08);
  --chrome-accent:#D69A2D;

  --shadow-sm:0 1px 2px rgba(33,27,61,.07);
  --shadow-md:0 6px 20px rgba(33,27,61,.10);
  --shadow-lg:0 20px 48px rgba(33,27,61,.18);

  --r-sm:7px; --r-md:11px; --r-lg:18px;
  color-scheme: light;
}

@media (prefers-color-scheme: dark){
  :root{
    --bg:#16132A; --surface:#201C38; --surface-2:#1B1830;
    --border:#322C52; --border-strong:#443C6E;
    --ink:#EDEAFB; --ink-soft:#B3A9D6; --ink-faint:#7B7099;

    --primary:#7C97DE; --primary-600:#6685D4; --primary-soft:#23305C; --primary-strong:#DCE4F7;
    --accent:#E8BE5C; --accent-strong:#F0D189; --accent-soft:#3A2E14; --accent-line:#8F6E22;

    --success:#5FC79A; --success-soft:#163828;
    --warning:#E0A855; --warning-soft:#3D2A0C;
    --critical:#E28178; --critical-soft:#3D1E1A;
    --info:#8FA3E8; --info-soft:#232F5C;

    --chart-1:#7C97DE; --chart-2:#E28178; --chart-3:#5FC79A; --chart-4:#A996E0; --chart-5:#E8BE5C;

    --chrome-bg:#12142A; --chrome-bg-2:#0E1022; --chrome-ink:#EDEAFB; --chrome-ink-soft:#9C93BE;
    --chrome-border:rgba(255,255,255,0.07); --chrome-active:rgba(255,255,255,0.06);
    --chrome-accent:#E8BE5C;

    --shadow-sm:0 1px 2px rgba(0,0,0,.35);
    --shadow-md:0 6px 20px rgba(0,0,0,.4);
    --shadow-lg:0 20px 48px rgba(0,0,0,.55);
    color-scheme: dark;
  }
}

:root[data-theme="dark"]{
  --bg:#16132A; --surface:#201C38; --surface-2:#1B1830;
  --border:#322C52; --border-strong:#443C6E;
  --ink:#EDEAFB; --ink-soft:#B3A9D6; --ink-faint:#7B7099;
  --primary:#7C97DE; --primary-600:#6685D4; --primary-soft:#23305C; --primary-strong:#DCE4F7;
  --accent:#E8BE5C; --accent-strong:#F0D189; --accent-soft:#3A2E14; --accent-line:#8F6E22;
  --success:#5FC79A; --success-soft:#163828;
  --warning:#E0A855; --warning-soft:#3D2A0C;
  --critical:#E28178; --critical-soft:#3D1E1A;
  --info:#8FA3E8; --info-soft:#232F5C;
  --chart-1:#7C97DE; --chart-2:#E28178; --chart-3:#5FC79A; --chart-4:#A996E0; --chart-5:#E8BE5C;
  --chrome-bg:#12142A; --chrome-bg-2:#0E1022; --chrome-ink:#EDEAFB; --chrome-ink-soft:#9C93BE;
  --chrome-border:rgba(255,255,255,0.07); --chrome-active:rgba(255,255,255,0.06);
  --chrome-accent:#E8BE5C;
  --shadow-sm:0 1px 2px rgba(0,0,0,.35); --shadow-md:0 6px 20px rgba(0,0,0,.4); --shadow-lg:0 20px 48px rgba(0,0,0,.55);
  color-scheme: dark;
}
:root[data-theme="light"]{
  --bg:#F7F3E8; --surface:#FFFFFF; --surface-2:#FBF8F1;
  --border:#E9E0CC; --border-strong:#D8CDB0;
  --ink:#211B3D; --ink-soft:#5C5578; --ink-faint:#948EAA;
  --primary:#3357A6; --primary-600:#2A4686; --primary-soft:#E7ECF6; --primary-strong:#1F3568;
  --accent:#D69A2D; --accent-strong:#A97717; --accent-soft:#F8EDD6; --accent-line:#C98F2A;
  --success:#2B8A67; --success-soft:#E1F1EA;
  --warning:#B9770E; --warning-soft:#FBEAD2;
  --critical:#B8433D; --critical-soft:#F8E4E2;
  --info:#4A6FD1; --info-soft:#E9ECFA;
  --chart-1:#3357A6; --chart-2:#B8433D; --chart-3:#2B8A67; --chart-4:#6E52B5; --chart-5:#D69A2D;
  --chrome-bg:#1C2142; --chrome-bg-2:#141833; --chrome-ink:#EDEBFA; --chrome-ink-soft:#A79FC9;
  --chrome-border:rgba(255,255,255,0.09); --chrome-active:rgba(255,255,255,0.08);
  --chrome-accent:#D69A2D;
  --shadow-sm:0 1px 2px rgba(33,27,61,.07); --shadow-md:0 6px 20px rgba(33,27,61,.10); --shadow-lg:0 20px 48px rgba(33,27,61,.18);
  color-scheme: light;
}

/* =====================================================================
   BASE
   ===================================================================== */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); font-size:15px; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; margin:0; text-wrap:balance; color:var(--ink); }
p{ margin:0; }
button{ font-family:inherit; }
a{ color:inherit; }
::selection{ background:var(--accent-line); color:#1a1206; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

.tabular{ font-variant-numeric: tabular-nums; }
.mono{ font-family:var(--font-mono); }

::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:var(--border-strong); border-radius:8px; }
::-webkit-scrollbar-track{ background:transparent; }

/* Icones (SVG inline) */
svg.ic{ width:18px; height:18px; flex:none; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* =====================================================================
   TELA DE LOGIN
   ===================================================================== */
.login-wrap{ min-height:100vh; display:grid; grid-template-columns: 1fr 1fr; }
@media (max-width: 900px){ .login-wrap{ grid-template-columns:1fr; } .login-side{ display:none; } }

.login-side{
  position:relative; overflow:hidden;
  /* Azul Royal + Dourado (Ajuste do dono, 2026-07-30) — paleta propria
     da tela de abertura, deliberadamente diferente do --chrome-bg usado
     na barra lateral do sistema logado (que continua azul-marinho). */
  background: radial-gradient(620px 620px at 18% 15%, rgba(232,201,122,.22), transparent 60%), linear-gradient(165deg, #2A46C4, #101B4D 75%);
  color:var(--chrome-ink); padding:56px 60px; display:flex; flex-direction:column; justify-content:space-between;
}
.login-side .tree-motif{ position:absolute; inset:0; opacity:.5; }
.brandmark{ display:flex; align-items:center; gap:12px; }
.brandmark .mark{ width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; background:linear-gradient(155deg, var(--chrome-accent), #C9A227); color:#1a1206; font-family:var(--font-display); font-weight:700; font-size:20px; box-shadow: 0 6px 18px rgba(0,0,0,.35); }
.brandmark .wordmark{ font-family:var(--font-display); font-weight:700; font-size:19px; letter-spacing:.01em; }
.brandmark .wordmark sup{ font-family:var(--font-body); font-weight:700; font-size:10px; color:var(--chrome-accent); letter-spacing:.08em; margin-left:5px; vertical-align:2px; }

.login-side .pitch{ position:relative; max-width:400px; margin-top:40px; }
.login-side .pitch h1{ color:#fff; font-size:34px; line-height:1.18; margin-bottom:16px; }
.login-side .pitch p{ color:var(--chrome-ink-soft); font-size:15px; line-height:1.6; }
.trust-row{ position:relative; display:flex; gap:10px; flex-wrap:wrap; margin-top:36px; }
.trust-chip{ display:flex; align-items:center; gap:7px; padding:7px 13px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid var(--chrome-border); color:var(--chrome-ink-soft); font-size:12.5px; }
.trust-chip svg{ width:14px; height:14px; stroke:var(--chrome-accent); }
.login-side .tz-row{ position:relative; margin-top:18px; }
.login-side .footnote{ position:relative; color:var(--chrome-ink-soft); font-size:12px; opacity:.75; }

.login-form-pane{ display:flex; align-items:center; justify-content:center; padding:40px 32px; background:var(--bg); }
.login-form{ width:100%; max-width:376px; }
.login-form h2{ font-size:25px; margin-bottom:6px; }
.login-form .sub{ color:var(--ink-soft); font-size:14px; margin-bottom:30px; }
.field{ margin-bottom:18px; }
.field label{ display:block; font-size:12.5px; font-weight:600; color:var(--ink-soft); margin-bottom:6px; letter-spacing:.01em; }
.field .hint{ font-size:11.5px; color:var(--ink-faint); margin-top:5px; }
.input, select.input{ width:100%; padding:11px 13px; border-radius:var(--r-sm); border:1.5px solid var(--border-strong); background:var(--surface); color:var(--ink); font-size:14.5px; font-family:inherit; transition:border-color .15s, box-shadow .15s; }
.input:focus{ outline:none; border-color:var(--primary-600); box-shadow:0 0 0 3px var(--primary-soft); }
input[type="color"].input{ padding:2px; height:40px; cursor:pointer; }
textarea.input{ resize:vertical; min-height:80px; font-family:inherit; }
.input-icon-wrap{ position:relative; }
.input-icon-wrap .input{ padding-right:42px; }
.input-icon-btn{ position:absolute; right:6px; top:50%; transform:translateY(-50%); border:0; background:transparent; color:var(--ink-faint); width:30px; height:30px; border-radius:6px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.input-icon-btn:hover{ background:var(--primary-soft); color:var(--primary-600); }
.row-between{ display:flex; align-items:center; justify-content:space-between; }
.checkbox-row{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--ink-soft); }
.checkbox-row input{ width:15px; height:15px; accent-color:var(--primary-600); }
.link{ color:var(--primary-600); font-weight:600; font-size:13.5px; text-decoration:none; }
.link:hover{ text-decoration:underline; }

.btn{ appearance:none; border:0; cursor:pointer; font-family:inherit; font-weight:700; font-size:14.5px; padding:11px 18px; border-radius:var(--r-sm); display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:filter .15s, transform .05s, background .15s, box-shadow .15s; }
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--primary); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover{ filter:brightness(1.12); }
.btn-ghost{ background:transparent; color:var(--ink-soft); border:1.5px solid var(--border-strong); }
.btn-ghost:hover{ background:var(--surface-2); color:var(--ink); }
.btn-block{ width:100%; }
.btn-sm{ padding:7px 12px; font-size:13px; }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }

.divider-text{ display:flex; align-items:center; gap:12px; color:var(--ink-faint); font-size:12px; margin:22px 0; }
.divider-text::before,.divider-text::after{ content:""; flex:1; height:1px; background:var(--border); }
.twofa-note{ display:flex; gap:10px; padding:12px 14px; border-radius:var(--r-sm); background:var(--info-soft); border:1px solid color-mix(in srgb, var(--info) 30%, transparent); font-size:12.5px; color:var(--ink-soft); }
.twofa-note svg{ stroke:var(--info); flex:none; margin-top:1px; }

/* =====================================================================
   APP SHELL
   ===================================================================== */
.app{ display:grid; grid-template-columns: 256px 1fr; min-height: 100vh; }
@media (max-width:980px){ .app{ grid-template-columns: 74px 1fr; } .app .navlabel, .app .brandmark .wordmark, .app .tenant-switch .tsub, .app .userchip .uinfo{ display:none; } .logomarca-sidebar{ height:34px !important; } .logo-secundaria-sidebar{ display:none; } }

.sidebar{ background:var(--chrome-bg); color:var(--chrome-ink); border-right:1.5px solid var(--chrome-accent); box-shadow:2px 0 10px -4px color-mix(in srgb, var(--chrome-accent) 60%, transparent); display:flex; flex-direction:column; position:sticky; top:0; align-self:flex-start; height:100vh; }
.sidebar .sb-top{ padding:20px 18px 16px; border-bottom:1px solid var(--chrome-border); }
.sidebar .brandmark .mark{ width:34px; height:34px; font-size:16px; border-radius:9px; }
.sidebar .brandmark .wordmark{ font-size:15.5px; }
.tenant-switch{ margin-top:16px; display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:var(--r-sm); background:rgba(255,255,255,.045); border:1px solid var(--chrome-border); cursor:pointer; }
.tenant-switch:hover{ background:rgba(255,255,255,.08); }
.tenant-switch .tico{ width:26px; height:26px; border-radius:7px; background:var(--chrome-active); display:flex; align-items:center; justify-content:center; color:var(--chrome-accent); flex:none; }
.tenant-switch .ttext{ min-width:0; flex:1; }
.tenant-switch .tname{ font-size:12.5px; font-weight:600; color:var(--chrome-ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tenant-switch .tsub{ font-size:11px; color:var(--chrome-ink-soft); }
.tenant-switch svg.chev{ color:var(--chrome-ink-soft); flex:none; }
.sidebar nav{ flex:1; overflow-y:auto; padding:14px 10px; }
.navgroup{ margin-bottom:4px; }
.navgroup-label{ font-size:10px; text-transform:uppercase; letter-spacing:.09em; color:var(--chrome-ink-soft); font-weight:700; padding:12px 10px 6px; opacity:.7; }
.navgroup-toggle{ display:flex; align-items:center; justify-content:space-between; width:100%; background:transparent; border:0; margin:0; border-radius:0; appearance:none; -webkit-appearance:none; box-shadow:none; cursor:pointer; font-family:inherit; color:inherit; }
.navgroup-toggle:hover{ opacity:1; }
.navgroup-toggle:focus{ outline:none; }
.navgroup-seta{ flex:none; transition:transform .15s ease; opacity:.8; }
.navgroup.recolhido .navgroup-seta{ transform:rotate(-90deg); }
.navgroup-itens{ display:grid; grid-template-rows:1fr; transition:grid-template-rows .15s ease; }
.navgroup-itens-int{ overflow:hidden; min-height:0; }
.navgroup.recolhido .navgroup-itens{ grid-template-rows:0fr; }
.navitem{ display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:var(--r-sm); color:var(--chrome-ink-soft); text-decoration:none; font-size:13.5px; font-weight:500; cursor:pointer; position:relative; margin-bottom:1px; border:0; background:transparent; width:100%; text-align:left; font-family:inherit; }
.navitem svg{ flex:none; }
.navitem:hover{ background:var(--chrome-active); color:var(--chrome-ink); }
.navitem[aria-current="true"]{ background:var(--chrome-active); color:#fff; font-weight:700; }
.navitem[aria-current="true"]::before{ content:""; position:absolute; left:-10px; top:8px; bottom:8px; width:3px; border-radius:3px; background:var(--chrome-accent); }
.badge-count{ background:var(--critical); color:#fff; font-size:10.5px; font-weight:700; padding:1px 6px; border-radius:999px; }
.navitem .badge-count{ margin-left:auto; }
.sidebar .sb-bottom{ padding:14px; border-top:1px solid var(--chrome-border); }
.master-badge{ display:flex; align-items:center; gap:7px; padding:6px 10px; border-radius:999px; background:rgba(232,201,122,.14); border:1px solid rgba(232,201,122,.35); color:var(--chrome-accent); font-size:11px; font-weight:700; letter-spacing:.02em; margin-bottom:10px; }
.master-badge svg{ width:13px; height:13px; flex:none; }
.userchip{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:var(--r-sm); cursor:pointer; }
.userchip:hover{ background:var(--chrome-active); }
.avatar{ width:32px; height:32px; border-radius:50%; background:var(--primary-600); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12.5px; font-weight:700; flex:none; }
.userchip .uinfo{ min-width:0; flex:1; }
.userchip .uname{ font-size:13px; font-weight:600; color:var(--chrome-ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.userchip .urole{ font-size:11px; color:var(--chrome-ink-soft); }
.sessao-info{ margin-top:10px; padding-top:10px; border-top:1px solid var(--chrome-border); }
.sessao-linha{ display:flex; align-items:center; justify-content:space-between; font-size:11px; color:var(--chrome-ink-soft); padding:2px 2px; }
.sessao-linha span:last-child{ color:var(--chrome-ink); font-weight:600; }

.content{ min-width:0; }
.topbar{ position:sticky; top:0; z-index:50; background:var(--surface); border-bottom:1px solid var(--border); display:flex; align-items:center; gap:16px; padding:12px 26px; }
.crumbs{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-faint); flex:1; min-width:0; }
.crumbs .crumb{ white-space:nowrap; }
.crumbs .crumb.current{ color:var(--ink); font-weight:600; }
.crumbs svg{ width:13px; height:13px; flex:none; }
.topbar-actions{ display:flex; align-items:center; gap:14px; }
.topbar-clock{ display:flex; align-items:center; gap:6px; font-size:12px; color:var(--ink-faint); padding-right:12px; border-right:1px solid var(--border); white-space:nowrap; }
.topbar-clock svg{ stroke:var(--ink-faint); width:14px; height:14px; }
.topbar-clock b{ color:var(--ink-soft); font-family:var(--font-mono); font-weight:500; }
.iconbtn{ width:34px; height:34px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--ink-soft); display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative; }
.iconbtn:hover{ background:var(--surface-2); color:var(--ink); }
.iconbtn .dot{ position:absolute; top:6px; right:7px; width:7px; height:7px; border-radius:50%; background:var(--critical); border:1.5px solid var(--surface); }

.page{ padding:26px 30px 60px; max-width:1360px; }
.page-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; flex-wrap:wrap; }
.page-head h1{ font-size:25px; }
.page-head .sub{ color:var(--ink-soft); font-size:13.5px; margin-top:5px; }
.page-head-actions{ display:flex; gap:10px; align-items:center; }

.card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.card-pad{ padding:22px 24px; }
.card-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--border); }
.card-head h3{ font-size:15.5px; font-weight:700; font-family:var(--font-body); }
.card-head .sub{ font-size:12px; color:var(--ink-faint); margin-top:2px; }

.pill{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; letter-spacing:.01em; white-space:nowrap; }
.pill-dot{ width:6px; height:6px; border-radius:50%; background:currentColor; }
.pill-success{ background:var(--success-soft); color:var(--success); }
.pill-warning{ background:var(--warning-soft); color:var(--warning); }
.pill-critical{ background:var(--critical-soft); color:var(--critical); }
.pill-info{ background:var(--info-soft); color:var(--info); }
.tipo-badge{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; padding:3px 9px; border-radius:6px; color:#fff; white-space:nowrap; }

.filter-bar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.search-box{ position:relative; flex:1; min-width:220px; max-width:340px; }
.search-box svg{ position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--ink-faint); }
.search-box input{ width:100%; padding:9px 12px 9px 36px; border-radius:999px; border:1.5px solid var(--border-strong); background:var(--surface); font-size:13.5px; color:var(--ink); }
.search-box input:focus{ outline:none; border-color:var(--primary-600); box-shadow:0 0 0 3px var(--primary-soft); }
.chip-filter{ display:flex; gap:6px; flex-wrap:wrap; }
.chip{ padding:7px 14px; border-radius:999px; border:1.5px solid var(--border-strong); background:var(--surface); color:var(--ink-soft); font-size:12.5px; font-weight:600; cursor:pointer; }
.chip:hover{ background:var(--surface-2); }
.chip[aria-pressed="true"]{ background:var(--primary); border-color:var(--primary); color:#fff; }

.tree-layout{ display:grid; grid-template-columns: 1fr 320px; gap:22px; align-items:start; }
@media (max-width:1180px){ .tree-layout{ grid-template-columns:1fr; } }
.tree-row{ display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:var(--r-sm); cursor:pointer; }
.tree-row:hover{ background:var(--surface-2); }
.tree-row.selected{ background:var(--primary-soft); }
.tree-row .twisty{ width:20px; height:20px; flex:none; display:flex; align-items:center; justify-content:center; color:var(--ink-faint); border-radius:5px; }
.tree-row .twisty:hover{ background:var(--border); }
.tree-row .twisty svg{ transition:transform .15s; }
.tree-row.expanded > .twisty svg{ transform:rotate(90deg); }
.tree-row .unit-name{ font-weight:600; font-size:14px; }
.tree-row .unit-meta{ font-size:11.5px; color:var(--ink-faint); margin-left:auto; display:flex; align-items:center; gap:14px; white-space:nowrap; }
.tree-row .status-dot{ width:7px; height:7px; border-radius:50%; }
.tree-children{ margin-left:26px; border-left:1.5px dashed var(--border); padding-left:6px; }
.tree-children.collapsed{ display:none; }
.tree-row .more-btn{ border:0; background:transparent; color:var(--ink-faint); width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.tree-row .more-btn:hover{ background:var(--border); color:var(--ink); }
.detail-panel{ position:sticky; top:104px; }
.detail-panel .dp-header{ padding:20px 22px 16px; border-bottom:1px solid var(--border); }
.detail-panel .dp-header h3{ font-size:17px; }
.detail-fact{ display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--border); font-size:13px; }
.detail-fact:last-child{ border-bottom:0; }
.detail-fact dt{ color:var(--ink-faint); }
.detail-fact dd{ margin:0; font-weight:600; text-align:right; }

/* Grade de campos so-leitura (ex.: dados de uma pessoa, unidade etc.) */
.info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; }
@media (max-width:640px){ .info-grid{ grid-template-columns:1fr; } }
.info-item label{ display:block; font-size:11.5px; font-weight:600; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.03em; margin-bottom:4px; }
.info-item .val{ font-size:14.5px; }

/* Listagem simples de itens (contato, membro de familia, cargo...) */
.lista-item{ display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); gap:10px; }
.lista-item:last-child{ border-bottom:0; }
.lista-item .rotulo{ font-size:11px; color:var(--ink-faint); text-transform:uppercase; margin-right:8px; }
.tag-suave{ font-size:12px; color:var(--ink-faint); }
.tag-selo{ font-size:11px; font-weight:700; padding:2px 9px; border-radius:5px; background:var(--primary-soft); color:var(--primary-600); }

.tabs{ display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:22px; overflow-x:auto; }
.tab{ border:0; background:transparent; padding:11px 6px; margin-right:22px; font-size:13.5px; font-weight:600; color:var(--ink-faint); cursor:pointer; position:relative; white-space:nowrap; font-family:inherit; }
.tab:hover{ color:var(--ink-soft); }
.tab[aria-selected="true"]{ color:var(--primary); }
.tab[aria-selected="true"]::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2.5px; background:var(--accent); border-radius:2px; }
.tabpanel{ display:none; }
.tabpanel.active{ display:block; }

.person-layout{ display:grid; grid-template-columns:260px 1fr; gap:22px; align-items:start; }
@media (max-width:980px){ .person-layout{ grid-template-columns:1fr; } }
.person-card{ text-align:center; padding:26px 20px; }
.person-photo{ width:104px; height:104px; border-radius:50%; margin:0 auto 14px; background:linear-gradient(155deg,var(--primary-600),var(--primary)); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:34px; }
.person-card h3{ font-size:17px; }
.person-card .psub{ font-size:12.5px; color:var(--ink-faint); margin-top:3px; }
.person-quickactions{ display:flex; flex-direction:column; gap:8px; margin-top:18px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.form-grid .span2{ grid-column:1 / -1; }
.sensitive-block{ background:var(--warning-soft); border:1px solid color-mix(in srgb, var(--warning) 35%, transparent); border-radius:var(--r-md); padding:18px 20px; margin:22px 0; }
.sensitive-block .sb-label{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:var(--warning); text-transform:uppercase; letter-spacing:.04em; margin-bottom:14px; }
.mask-field{ display:flex; align-items:center; gap:10px; background:var(--surface); border:1.5px solid var(--border-strong); border-radius:var(--r-sm); padding:10px 12px; }
.mask-field .masked-value{ font-family:var(--font-mono); font-size:14px; letter-spacing:.03em; flex:1; }
.mask-field button{ border:0; background:transparent; color:var(--primary-600); font-weight:700; font-size:12.5px; cursor:pointer; display:flex; align-items:center; gap:5px; padding:5px 8px; border-radius:6px; }
.mask-field button:hover{ background:var(--primary-soft); }
.reveal-caption{ font-size:11px; color:var(--ink-faint); margin-top:6px; }
.savebar{ position:sticky; bottom:0; background:var(--surface); border-top:1px solid var(--border); padding:14px 24px; display:flex; justify-content:flex-end; gap:10px; margin-top:26px; border-radius:0 0 var(--r-lg) var(--r-lg); }

.table-wrap{ overflow-x:auto; }
table.data{ width:100%; border-collapse:collapse; font-size:13.5px; min-width:760px; }
table.data th{ text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); font-weight:700; padding:12px 16px; border-bottom:1px solid var(--border); white-space:nowrap; }
table.data td{ padding:13px 16px; border-bottom:1px solid var(--border); vertical-align:middle; }
table.data tbody tr:hover{ background:var(--surface-2); }
table.data tbody tr:last-child td{ border-bottom:0; }
.person-cell{ display:flex; align-items:center; gap:10px; }

/* Sanfona da arvore de "Igrejas e Unidades" (Ajuste do dono, 2026-08-12) */
.arvore-toggle{ background:transparent; border:0; padding:2px; margin-right:4px; cursor:pointer; display:inline-flex; align-items:center; vertical-align:middle; color:var(--ink-soft); appearance:none; -webkit-appearance:none; box-shadow:none; }
.arvore-toggle:hover{ color:var(--ink); }
.arvore-seta{ transition:transform .15s ease; }
.arvore-toggle.recolhido .arvore-seta{ transform:rotate(-90deg); }
.person-cell .avatar{ background:var(--primary-soft); color:var(--primary-600); }
.person-cell .pname{ font-weight:600; }
.person-cell .prol{ font-size:11.5px; color:var(--ink-faint); }
.row-actions{ display:flex; gap:4px; justify-content:flex-end; }
.table-foot{ display:flex; justify-content:space-between; align-items:center; padding:14px 20px; font-size:12.5px; color:var(--ink-faint); }
.pager{ display:flex; gap:4px; }
.pager button{ width:28px; height:28px; border-radius:7px; border:1px solid var(--border); background:var(--surface); color:var(--ink-soft); cursor:pointer; font-size:12.5px; }
.pager button[aria-current="true"]{ background:var(--primary); border-color:var(--primary); color:#fff; font-weight:700; }

.alert-banner{ display:flex; gap:14px; align-items:flex-start; padding:16px 20px; border-radius:var(--r-md); margin-bottom:22px; }
.alert-banner.critical{ background:var(--critical-soft); border:1px solid color-mix(in srgb, var(--critical) 35%, transparent); }
.alert-banner svg{ stroke:var(--critical); flex:none; margin-top:2px; }
.alert-banner strong{ color:var(--critical); }
.alert-banner .ab-text{ font-size:13.5px; color:var(--ink); }
.alert-banner .ab-sub{ font-size:12.5px; color:var(--ink-soft); margin-top:2px; }
.count-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
@media (max-width:860px){ .count-grid{ grid-template-columns:1fr; } }
.count-card .cc-head{ display:flex; align-items:center; gap:12px; padding:16px 20px; border-bottom:1px solid var(--border); }
.count-card .cc-head .avatar{ background:var(--primary-soft); color:var(--primary-600); }
.count-card .cc-title{ font-weight:700; font-size:13.5px; }
.count-card .cc-meta{ font-size:11.5px; color:var(--ink-faint); }
.breakdown{ padding:14px 20px; }
.breakdown-row{ display:flex; justify-content:space-between; font-size:12.5px; color:var(--ink-soft); padding:5px 0; }
.breakdown-row.total{ margin-top:8px; padding-top:12px; border-top:1px solid var(--border); font-size:16px; font-weight:700; color:var(--ink); }
.diff-strip{ display:flex; align-items:center; justify-content:space-between; padding:16px 22px; border-radius:var(--r-md); background:var(--critical-soft); border:1px solid color-mix(in srgb, var(--critical) 30%, transparent); margin-bottom:22px; }
.diff-strip .dtitle{ font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--critical); font-weight:700; }
.diff-strip .dval{ font-family:var(--font-mono); font-size:22px; font-weight:700; color:var(--critical); }
.resolve-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:22px; align-items:start; }
@media (max-width:980px){ .resolve-grid{ grid-template-columns:1fr; } }
textarea.input{ resize:vertical; min-height:86px; font-family:inherit; }
.mini-history{ display:flex; flex-direction:column; }
.mini-history-row{ display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--border); font-size:12.5px; }
.mini-history-row:last-child{ border-bottom:0; }
.mini-history-row .mh-date{ color:var(--ink-faint); width:64px; flex:none; }
.mini-history-row .mh-val{ margin-left:auto; font-family:var(--font-mono); font-weight:600; }

.kpi-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:22px; }
@media (max-width:980px){ .kpi-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .kpi-grid{ grid-template-columns:1fr; } }
.kpi{ padding:20px 20px 18px; }
.kpi .klabel{ font-size:11.5px; color:var(--ink-faint); font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.kpi .kvalue{ font-family:var(--font-display); font-size:27px; font-weight:700; margin-top:8px; }
.kpi .ktrend{ font-size:12px; margin-top:8px; display:flex; align-items:center; gap:5px; }
.kpi .ktrend.up{ color:var(--success); } .kpi .ktrend.down{ color:var(--critical); }
.dash-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:22px; align-items:start; }
@media (max-width:1080px){ .dash-grid{ grid-template-columns:1fr; } }
.campo-row{ display:grid; grid-template-columns: 1.6fr .8fr .8fr 1.1fr .9fr; gap:12px; align-items:center; padding:13px 20px; border-bottom:1px solid var(--border); font-size:13px; }
.campo-row:last-child{ border-bottom:0; }
.campo-row.head{ font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); font-weight:700; padding-bottom:10px; }
.campo-row .cname{ font-weight:600; }
.campo-row .csub{ font-size:11px; color:var(--ink-faint); }
.bar-track{ height:6px; border-radius:4px; background:var(--border); overflow:hidden; }
.bar-fill{ height:100%; border-radius:4px; }
.donut-wrap{ display:flex; align-items:center; gap:20px; padding:20px 22px 6px; }
.donut{ width:120px; height:120px; border-radius:50%; flex:none; position:relative; }
.donut .donut-center{ position:absolute; inset:16px; border-radius:50%; background:var(--surface); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.donut .donut-center b{ font-size:20px; font-family:var(--font-display); }

/* Grafico de barras verticais (Ajuste do dono, 2026-08-12 — "dashboard
   com informacoes opcional de graficos"). O donut acima ja existia no
   mockup original (Fase 0), so nunca tinha sido ligado a dado de
   verdade — este e novo, mesmo espirito hand-rolled, sem lib externa. */
.grafico-barras{ display:flex; align-items:flex-end; gap:10px; height:120px; padding:4px 4px 0; }
.gb-col{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:6px; }
.gb-barra{ width:100%; max-width:34px; border-radius:5px 5px 2px 2px; background:var(--chart-1); min-height:3px; transition:height .2s ease; }
.gb-rotulo{ font-size:10.5px; color:var(--ink-faint); white-space:nowrap; }
.gb-valor{ font-size:10px; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.donut .donut-center span{ font-size:10px; color:var(--ink-faint); }
.legend{ display:flex; flex-direction:column; gap:9px; font-size:12.5px; }
.legend-item{ display:flex; align-items:center; gap:8px; }
.legend-dot{ width:9px; height:9px; border-radius:50%; flex:none; }
.alert-list{ display:flex; flex-direction:column; }
.alert-item{ display:flex; gap:11px; padding:13px 22px; border-bottom:1px solid var(--border); }
.alert-item:last-child{ border-bottom:0; }
.alert-item .ai-icon{ width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex:none; }
.alert-item .ai-icon.warning{ background:var(--warning-soft); color:var(--warning); }
.alert-item .ai-icon.critical{ background:var(--critical-soft); color:var(--critical); }
.alert-item .ai-icon.info{ background:var(--info-soft); color:var(--info); }
.alert-item .ai-title{ font-size:12.5px; font-weight:600; }
.alert-item .ai-sub{ font-size:11.5px; color:var(--ink-faint); margin-top:2px; }

/* =====================================================================
   CONFIGURACOES / MASTER / INATIVIDADE
   ===================================================================== */
.settings-grid{ display:flex; flex-direction:column; gap:18px; max-width:760px; }
.settings-section{ padding:22px 24px; }
.settings-section h3{ font-size:15.5px; margin-bottom:4px; }
.settings-section .sec-sub{ font-size:12.5px; color:var(--ink-faint); margin-bottom:18px; }
.brand-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:12px; }
.brand-option{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:var(--r-sm); border:1.5px solid var(--border-strong); background:var(--surface); cursor:pointer; text-align:left; font-family:inherit; }
.brand-option:hover{ background:var(--surface-2); }
.brand-option[aria-pressed="true"]{ border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-soft); }
.brand-option .swatch-pair{ display:flex; flex:none; }
.brand-option .swatch-pair span{ width:16px; height:26px; }
.brand-option .swatch-pair span:first-child{ border-radius:6px 0 0 6px; }
.brand-option .swatch-pair span:last-child{ border-radius:0 6px 6px 0; }
.brand-option .bo-name{ font-size:12.5px; font-weight:600; color:var(--ink); }
.master-only-note{ display:flex; gap:10px; padding:12px 14px; border-radius:var(--r-sm); background:var(--accent-soft); border:1px solid color-mix(in srgb, var(--accent) 30%, transparent); font-size:12.5px; color:var(--ink-soft); margin-bottom:18px; }
.master-only-note svg{ stroke:var(--accent-strong); flex:none; margin-top:1px; }
.idle-flash{ display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:var(--r-sm); background:var(--critical-soft); color:var(--critical); font-size:13px; font-weight:600; margin-bottom:18px; }
.idle-overlay{ display:none; position:fixed; inset:0; z-index:500; background:rgba(8,12,18,.55); align-items:center; justify-content:center; padding:20px; }
.idle-overlay.visible{ display:flex; }
.idle-modal-card{ background:var(--surface); border-radius:var(--r-lg); padding:30px 28px; max-width:380px; width:100%; box-shadow:var(--shadow-lg); text-align:center; }
.idle-modal-icon{ width:52px; height:52px; border-radius:50%; background:var(--warning-soft); color:var(--warning); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.idle-modal-card h3{ font-size:17px; margin-bottom:8px; }
.idle-modal-card p{ font-size:13.5px; color:var(--ink-soft); margin-bottom:22px; }
.idle-modal-actions{ display:flex; gap:10px; justify-content:center; }
.inline-number{ width:80px; display:inline-block; text-align:center; }
