/* ============================================================
   dentsu Social Growth OS · HNK — Design System
   Enterprise, sóbrio, orientado à decisão. PT-BR.
   Acento verde Heineken #007A33 sobre fundo claro neutro.
   ============================================================ */

:root {
  /* Paleta */
  --hnk-green: #007A33;
  --hnk-green-dark: #005925;
  --hnk-green-soft: #e6f2ea;
  --ink: #14181c;
  --ink-soft: #475059;
  --ink-faint: #7b8590;
  --line: #e4e8ec;
  --line-strong: #d2d8de;
  --bg: #f6f8f9;
  --surface: #ffffff;
  --surface-2: #fbfcfc;

  /* Semáforo de veredito */
  --ok: #007A33;
  --warn: #c98a00;
  --warn-soft: #fdf3df;
  --bad: #c0392b;
  --bad-soft: #fbeae8;
  --info: #1f6feb;

  /* Tipografia */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --radius: 10px;
  --radius-sm: 7px;
  --shadow: 0 1px 2px rgba(20, 24, 28, .04), 0 6px 18px rgba(20, 24, 28, .05);
  --shadow-soft: 0 1px 2px rgba(20, 24, 28, .05);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }

/* ---------------- Layout shell ---------------- */
.shell {
  display: grid;
  grid-template-columns: 248px 1fr;
  min-height: 100vh;
}

/* ---------------- Sidebar ---------------- */
.sidebar {
  background: var(--surface);
  border-right: 1px solid var(--line);
  padding: 22px 16px;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
}

.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 4px 8px 20px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 14px;
}
.brand .logo-mark {
  width: 34px; height: 34px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 18px;
  letter-spacing: -1px;
  flex-shrink: 0;
}
.brand .logo-mark .dot { color: var(--hnk-green); }
.brand .brand-text { line-height: 1.15; }
.brand .brand-text .b-top { font-weight: 700; font-size: 13.5px; letter-spacing: -.2px; }
.brand .brand-text .b-sub {
  font-size: 11px; color: var(--ink-faint);
  text-transform: uppercase; letter-spacing: .6px; font-weight: 600;
}

.nav { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.nav a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  color: var(--ink-soft);
  font-weight: 600; font-size: 14px;
  transition: background .12s, color .12s;
}
.nav a .ico { width: 18px; text-align: center; opacity: .8; }
.nav a:hover { background: var(--surface-2); color: var(--ink); }
.nav a.active {
  background: var(--hnk-green-soft);
  color: var(--hnk-green-dark);
}
.nav a.active .ico { opacity: 1; }

.sidebar .foot {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  color: var(--ink-faint);
  line-height: 1.5;
}
.sidebar .foot b { color: var(--ink-soft); }

/* ---------------- Main / topbar ---------------- */
.main { display: flex; flex-direction: column; min-width: 0; }

.topbar {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 26px 38px 0;
  gap: 20px;
}
.topbar .page-kicker {
  font-size: 11.5px; font-weight: 700; letter-spacing: 1px;
  text-transform: uppercase; color: var(--hnk-green);
  margin-bottom: 4px;
}
.topbar h1 { margin: 0; font-size: 25px; letter-spacing: -.5px; font-weight: 750; }
.topbar .page-sub { margin: 6px 0 0; color: var(--ink-soft); font-size: 14px; max-width: 640px; }
.topbar .acct-tag {
  font-size: 12px; color: var(--ink-faint);
  text-align: right; white-space: nowrap;
}
.topbar .acct-tag b { color: var(--ink-soft); display: block; font-size: 13px; }

.content { padding: 26px 38px 48px; }

/* ---------------- Triad: o que / por que / o que fazer ---------------- */
.triad {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 14px; margin: 22px 0 28px;
}
.triad .t-cell {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 16px 18px;
}
.triad .t-cell .t-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .6px; color: var(--ink-faint); margin-bottom: 6px;
}
.triad .t-cell.fato .t-label { color: var(--info); }
.triad .t-cell.porque .t-label { color: var(--warn); }
.triad .t-cell.acao .t-label { color: var(--hnk-green); }
.triad .t-cell p { margin: 0; font-size: 13.5px; color: var(--ink-soft); }

/* ---------------- Hero KPIs ---------------- */
.kpis {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 16px; margin-bottom: 30px;
}
.kpi {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px 22px 20px;
  box-shadow: var(--shadow-soft);
  position: relative;
  overflow: hidden;
}
.kpi::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--hnk-green);
}
.kpi.accent-warn::before { background: var(--warn); }
.kpi.accent-info::before { background: var(--info); }
.kpi .kpi-label {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .5px; color: var(--ink-faint);
}
.kpi .kpi-value {
  font-size: 40px; font-weight: 800; letter-spacing: -1.5px;
  line-height: 1.05; margin: 10px 0 4px; color: var(--ink);
}
.kpi .kpi-value .unit { font-size: 18px; font-weight: 700; color: var(--ink-soft); letter-spacing: -.3px; }
.kpi .kpi-note { font-size: 12.5px; color: var(--ink-soft); }

/* ---------------- Section heads ---------------- */
.section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  margin: 6px 0 16px;
}
.section-head h2 { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -.3px; }
.section-head .hint { font-size: 12.5px; color: var(--ink-faint); }

/* ---------------- Insight cards ---------------- */
.cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 18px 20px;
  box-shadow: var(--shadow-soft);
  display: flex; flex-direction: column; gap: 10px;
  transition: box-shadow .15s, transform .15s;
}
.card:hover { box-shadow: var(--shadow); transform: translateY(-1px); }
.card .c-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.card .c-title { font-size: 15.5px; font-weight: 700; letter-spacing: -.2px; line-height: 1.3; }
.card .c-num {
  font-size: 19px; font-weight: 800; color: var(--hnk-green);
  white-space: nowrap; letter-spacing: -.5px;
}
.card .c-detail { font-size: 13.5px; color: var(--ink-soft); margin: 0; }
.card .c-action {
  font-size: 13px; color: var(--ink); background: var(--hnk-green-soft);
  border-radius: var(--radius-sm); padding: 9px 12px;
  border-left: 3px solid var(--hnk-green);
}
.card .c-action b { color: var(--hnk-green-dark); }
.card .c-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }

/* ---------------- Pills / tags ---------------- */
.pill {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 700; letter-spacing: .3px;
  padding: 3px 9px; border-radius: 999px;
  background: var(--surface-2); color: var(--ink-soft);
  border: 1px solid var(--line-strong); text-transform: uppercase;
}
.pill.mod { background: #eef4fb; color: #1f6feb; border-color: #d6e4f7; }
.pill.persona { background: #f3eefb; color: #6b3fb5; border-color: #e3d6f7; }
.pill.ok { background: var(--hnk-green-soft); color: var(--hnk-green-dark); border-color: #c6e3d2; }
.pill.warn { background: var(--warn-soft); color: var(--warn); border-color: #f0e0bb; }
.pill.bad { background: var(--bad-soft); color: var(--bad); border-color: #f2cfc9; }

/* ---------------- Panels (generic) ---------------- */
.panel {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 22px 24px;
  box-shadow: var(--shadow-soft); margin-bottom: 22px;
}
.panel h3 { margin: 0 0 4px; font-size: 16px; font-weight: 700; }
.panel .panel-sub { margin: 0 0 16px; color: var(--ink-faint); font-size: 13px; }

.grid-2 { display: grid; grid-template-columns: 360px 1fr; gap: 22px; align-items: start; }
@media (max-width: 1100px) { .grid-2 { grid-template-columns: 1fr; } }

/* ---------------- Donut (Guardian) ---------------- */
.donut-wrap { display: flex; align-items: center; gap: 24px; }
.donut {
  --ok-pct: 82.3;     /* 204/248 */
  --warn-pct: 17.7;   /* 44/248 */
  width: 168px; height: 168px; border-radius: 50%;
  background: conic-gradient(
    var(--ok) 0 calc(var(--ok-pct) * 1%),
    var(--warn) calc(var(--ok-pct) * 1%) 100%
  );
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.donut .hole {
  width: 116px; height: 116px; background: var(--surface);
  border-radius: 50%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
}
.donut .hole .big { font-size: 30px; font-weight: 800; letter-spacing: -1px; }
.donut .hole .small { font-size: 11px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: .5px; font-weight: 700; }

.legend { display: flex; flex-direction: column; gap: 12px; }
.legend .leg-row { display: flex; align-items: center; gap: 12px; }
.legend .swatch { width: 14px; height: 14px; border-radius: 4px; flex-shrink: 0; }
.legend .swatch.ok { background: var(--ok); }
.legend .swatch.warn { background: var(--warn); }
.legend .swatch.bad { background: var(--bad); }
.legend .leg-txt .leg-n { font-size: 20px; font-weight: 800; letter-spacing: -.5px; line-height: 1; }
.legend .leg-txt .leg-l { font-size: 12.5px; color: var(--ink-soft); }

/* ---------------- Showcase callout ---------------- */
.showcase {
  background: var(--surface); border: 1px solid var(--line);
  border-left: 4px solid var(--hnk-green);
  border-radius: var(--radius); padding: 18px 22px; margin-bottom: 22px;
}
.showcase .sc-kicker {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .6px; color: var(--hnk-green); margin-bottom: 6px;
}
.showcase h4 { margin: 0 0 6px; font-size: 16px; }
.showcase p { margin: 0; color: var(--ink-soft); font-size: 13.5px; }
.showcase code {
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: 5px; padding: 1px 6px; font-size: 12.5px; color: var(--ink);
}

/* ---------------- Tables ---------------- */
.tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tbl th, .tbl td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--line); }
.tbl th {
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--ink-faint); font-weight: 700; background: var(--surface-2);
}
.tbl tr:last-child td { border-bottom: none; }
.tbl td.num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.tbl tr.is-hot td { background: var(--bad-soft); }
.tbl tr.is-good td { background: var(--hnk-green-soft); }

/* ---------------- Heat cells ---------------- */
.heat {
  display: inline-block; min-width: 58px; text-align: center;
  padding: 4px 8px; border-radius: 6px; font-weight: 700;
  font-variant-numeric: tabular-nums; font-size: 13px;
}
.heat.h-vlow { background: #fbeae8; color: #a3271a; }
.heat.h-low  { background: #fdf3df; color: #97670a; }
.heat.h-mid  { background: #f0f4f7; color: var(--ink-soft); }
.heat.h-high { background: #d9efe2; color: var(--hnk-green-dark); }
.heat.h-vhigh{ background: #007A33; color: #fff; }

/* ---------------- Reallocation bar ---------------- */
.realloc {
  background: linear-gradient(90deg, var(--hnk-green) 0%, var(--hnk-green-dark) 100%);
  color: #fff; border-radius: var(--radius);
  padding: 20px 24px; display: flex; align-items: center; justify-content: space-between;
  gap: 18px; margin-bottom: 22px;
}
.realloc .rl-num { font-size: 30px; font-weight: 800; letter-spacing: -1px; white-space: nowrap; }
.realloc .rl-txt { font-size: 14px; opacity: .95; }
.realloc .rl-txt b { font-weight: 800; }

/* ---------------- Misc ---------------- */
.muted { color: var(--ink-faint); }
.spacer { height: 8px; }
.bar-mini {
  height: 8px; border-radius: 999px; background: var(--line);
  overflow: hidden; min-width: 80px;
}
.bar-mini > span { display: block; height: 100%; background: var(--hnk-green); border-radius: 999px; }
.bar-mini.warn > span { background: var(--warn); }
.bar-mini.bad > span { background: var(--bad); }

/* ---------------- Responsive ---------------- */
@media (max-width: 900px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: static; height: auto; flex-direction: column; }
  .nav { flex-direction: row; flex-wrap: wrap; }
  .kpis, .triad, .cards { grid-template-columns: 1fr; }
  .topbar, .content { padding-left: 20px; padding-right: 20px; }
}

/* ── Camada de Visão ── */
.note{font-size:.86rem;color:#334;background:#f3f7f4;border-left:3px solid #007A33;padding:.6rem .8rem;border-radius:4px;margin:.5rem 0}
.note.muted{color:#667;background:#f6f7f8;border-left-color:#ccd}
.vision-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:1.2rem 0}
.vision-card{border:1px solid #e3e7e4;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.vision-thumb{position:relative;background:#0b1a12;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.vision-thumb img{width:100%;height:100%;object-fit:cover}
.badge{position:absolute;top:8px;right:8px;font-size:.66rem;font-weight:700;letter-spacing:.04em;padding:.2rem .5rem;border-radius:99px;color:#fff}
.badge-aprovado{background:#1a7f37}.badge-atencao{background:#b8860b}.badge-reprovado{background:#c0392b}
.vision-card.v-atencao{border-color:#e6cf8a}.vision-card.v-reprovado{border-color:#e2a59c}
.vision-body{padding:.7rem .8rem}
.vision-sku{font-weight:600;margin:0 0 .4rem;font-size:.9rem}
.vision-sku .tag{font-weight:500;font-size:.7rem;color:#778;background:#eef1ee;padding:.1rem .4rem;border-radius:4px;margin-left:.3rem}
.vision-det{list-style:none;padding:0;margin:0 0 .5rem;font-size:.76rem}
.vision-det li{display:flex;justify-content:space-between;padding:.12rem 0;border-bottom:1px dotted #eef}
.det-k{color:#667}.det-v{font-weight:600;color:#334}
.det-yes{color:#1a7f37}.det-no{color:#99a}
.vision-razao{font-size:.8rem;color:#445;margin:.3rem 0 0;line-height:1.35}

/* ── Action Center ── */
.ac-summary{display:flex;gap:.5rem;margin:0 0 1.2rem}
.vchip{font-size:.78rem;font-weight:600;padding:.25rem .6rem;border-radius:99px;background:#eef1ee;color:#445}
.vchip.v-aprovado{background:#e3f3e8;color:#1a7f37}
.ac-list{display:flex;flex-direction:column;gap:1rem}
.ac-card{background:#fff;border:1px solid #e3e7e4;border-left:4px solid #ccd;border-radius:10px;padding:1.1rem 1.2rem;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.ac-card.prio-high{border-left-color:#c0392b}.ac-card.prio-medium{border-left-color:#b8860b}.ac-card.prio-low{border-left-color:#8aa}
.ac-card.st-approved{opacity:.72;background:#fafdfb}.ac-card.st-dismissed{opacity:.5}
.ac-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.ac-mod{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#007A33;background:#e8f3ec;padding:.15rem .5rem;border-radius:4px}
.ac-prio,.ac-status{font-size:.68rem;font-weight:700;text-transform:uppercase;padding:.15rem .45rem;border-radius:4px;margin-left:.3rem}
.ac-prio.prio-high{background:#fdecea;color:#c0392b}.ac-prio.prio-medium{background:#fcf3e0;color:#b8860b}.ac-prio.prio-low{background:#eef;color:#778}
.ac-status{background:#eef1ee;color:#667}.ac-status.st-approved{background:#e3f3e8;color:#1a7f37}.ac-status.st-dismissed{background:#f3e3e3;color:#999}
.ac-metric{text-align:right;line-height:1.1}.ac-metric b{font-size:1.25rem;color:#0b1a12;display:block}.ac-metric span{font-size:.72rem;color:#778}
.ac-title{margin:.7rem 0 .6rem;font-size:1.05rem;color:#0b1a12}
.ac-triple{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:.7rem}
.ac-triple span{font-size:.68rem;font-weight:700;text-transform:uppercase;color:#99a;letter-spacing:.04em}
.ac-triple p{margin:.2rem 0 0;font-size:.85rem;color:#334;line-height:1.4}
.ac-action{background:#f0f9f3;border:1px solid #cfe8d8;border-radius:7px;padding:.6rem .8rem;font-size:.88rem;color:#14532d;margin-bottom:.6rem}
.ac-ev{margin-bottom:.6rem}.ac-ev summary{font-size:.78rem;color:#667;cursor:pointer}
.ac-ev ul{list-style:none;padding:.4rem 0 0;margin:0;font-size:.78rem}
.ac-ev li{padding:.2rem 0;color:#445;display:flex;gap:.5rem;align-items:baseline}
.ev-kind{font-size:.64rem;font-weight:700;text-transform:uppercase;color:#778;background:#eef1ee;padding:.05rem .35rem;border-radius:3px}
.ac-ev small{color:#aab;margin-left:auto}
.ac-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid #f0f2f0;padding-top:.7rem;flex-wrap:wrap}
.ac-tags{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}
.ac-tag{font-size:.68rem;background:#eef1ee;color:#667;padding:.12rem .45rem;border-radius:4px}
.ac-owner{font-size:.7rem;color:#99a;margin-left:.4rem}
.ac-btns{display:flex;gap:.5rem}
.btn-approve,.btn-dismiss{font-size:.82rem;font-weight:600;padding:.45rem .9rem;border-radius:7px;border:1px solid;cursor:pointer}
.btn-approve{background:#007A33;color:#fff;border-color:#007A33}.btn-approve:hover{background:#00692c}
.btn-dismiss{background:#fff;color:#888;border-color:#dadce0}.btn-dismiss:hover{background:#f7f8f8}
.ac-decided{font-size:.78rem;font-weight:700;text-transform:uppercase;color:#1a7f37}

/* ── Learning Memory ── */
.mem-h{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#99a;margin:1.4rem 0 .7rem;font-weight:700}
.mem-rules{margin-bottom:.5rem}
.mem-rule{background:#f0f9f3;border:1px solid #cfe8d8;border-left:4px solid #007A33;border-radius:8px;padding:.7rem .9rem;margin-bottom:.6rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.mem-rule p{margin:0;font-size:.9rem;color:#14532d;flex:1;min-width:60%}
.rule-conf{font-size:.66rem;font-weight:700;text-transform:uppercase;background:#007A33;color:#fff;padding:.12rem .45rem;border-radius:4px}
.mem-list{display:flex;flex-direction:column;gap:.8rem}
.mem-card{background:#fff;border:1px solid #e3e7e4;border-radius:10px;padding:1rem 1.1rem;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.mem-card.promoted{border-left:4px solid #007A33;background:#fafdfb}
.mem-head{display:flex;justify-content:space-between;align-items:center;color:#aab;font-size:.72rem}
.mem-conf{font-size:.66rem;font-weight:700;text-transform:uppercase;padding:.12rem .45rem;border-radius:4px;margin-left:.3rem}
.conf-directional{background:#eef1ee;color:#778}.conf-measured{background:#fcf3e0;color:#b8860b}.conf-proven{background:#e3f3e8;color:#1a7f37}
.mem-promoted{font-size:.66rem;font-weight:700;color:#1a7f37;margin-left:.4rem}
.mem-title{margin:.5rem 0 .3rem;font-size:.98rem;color:#0b1a12}
.mem-learn{margin:0 0 .4rem;font-size:.88rem;color:#334;line-height:1.4}
.mem-outcome{font-size:.82rem;color:#445;margin:.2rem 0}
.mem-ba{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.5rem 0}
.mem-ba span{font-size:.66rem;text-transform:uppercase;color:#99a;font-weight:700}
.mem-ba code{display:block;font-size:.74rem;background:#f6f7f8;padding:.3rem .5rem;border-radius:5px;color:#445;margin-top:.2rem;word-break:break-word}
.mem-btns{margin-top:.6rem}

/* ── Loop bar ── */
.loop-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#fff;border:1px solid #e3e7e4;border-radius:9px;padding:.6rem .9rem;margin:0 0 1.2rem;flex-wrap:wrap}
.loop-runs{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.loop-lbl{font-size:.74rem;color:#778;font-weight:600;margin-right:.2rem}
.loop-chip{font-size:.7rem;font-weight:600;background:#eef1ee;color:#556;padding:.18rem .5rem;border-radius:99px}
.loop-chip.st-completed{background:#e8f3ec;color:#1a7f37}.loop-chip.st-failed{background:#fdecea;color:#c0392b}

/* ── QA: vchip semânticos faltantes ── */
.vchip.v-atencao{background:#fcf3e0;color:#b8860b}
.vchip.v-reprovado{background:#fdecea;color:#c0392b}

/* ── QA: status pills do Action Center (todos os estados do enum) ── */
.ac-status.st-new,.loop-chip.st-new{background:#eef1ee;color:#556}
.ac-status.st-reviewing{background:#eaf1fb;color:#2563a8}
.ac-status.st-in_progress{background:#fcf3e0;color:#b8860b}
.ac-status.st-done{background:#e3f3e8;color:#1a7f37}

/* ── QA: filtros + paginação (Vision/Competitive) ── */
.vfilter{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;background:#fff;border:1px solid #e3e7e4;border-radius:9px;padding:.55rem .8rem;margin:0 0 1rem}
.vfgroup{display:flex;align-items:center;gap:.3rem}
.vflbl{font-size:.74rem;color:#778;font-weight:600;margin-right:.15rem}
.vfchip{font-size:.76rem;font-weight:600;border:1px solid #dfe4e0;background:#fff;color:#556;padding:.28rem .7rem;border-radius:99px;cursor:pointer}
.vfchip:hover{background:#f5f7f5}
.vfchip.active{background:#007A33;color:#fff;border-color:#007A33}
.vfcount{margin-left:auto;font-size:.74rem;color:#99a}
.vpager{display:flex;align-items:center;justify-content:center;gap:.8rem;margin:1.2rem 0;font-size:.82rem;color:#556}
.vpager button{font-size:.8rem;font-weight:600;border:1px solid #dfe4e0;background:#fff;color:#334;padding:.35rem .8rem;border-radius:7px;cursor:pointer}
.vpager button:disabled{opacity:.4;cursor:default}

/* ── QA: Competitive — cards, KPIs, badges (estavam sem CSS) ── */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:1rem 0 1.2rem}
.kpi{background:#fff;border:1px solid #e3e7e4;border-radius:10px;padding:.9rem 1rem}
.kpi.warn{border-left:4px solid #b8860b}
.kpi-n{font-size:1.5rem;font-weight:800;color:#0b1a12;line-height:1}
.kpi-l{font-size:.76rem;color:#556;margin-top:.35rem;line-height:1.3}
.kpi-l .muted{color:#99a}
.comp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin:.3rem 0}
.comp-card{background:#fff;border:1px solid #e3e7e4;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04);display:flex;flex-direction:column}
.comp-thumb{display:flex;justify-content:space-between;align-items:center;padding:.55rem .7rem;background:#0b1a12}
.brand-chip{font-size:.72rem;font-weight:700;color:#fff;letter-spacing:.02em}
.comp-owner{font-size:.62rem;font-weight:700;text-transform:uppercase;padding:.12rem .45rem;border-radius:4px}
.comp-owner.is-owned{background:#1a7f37;color:#fff}
.comp-owner.is-mention{background:#445;color:#cdd}
.comp-body{padding:.75rem .85rem;display:flex;flex-direction:column;gap:.4rem}
.comp-body h4{margin:0;font-size:.92rem;color:#0b1a12}
.badges{display:flex;gap:.35rem;flex-wrap:wrap}
.comp-card .badge{position:static;top:auto;right:auto;font-size:.66rem;font-weight:700;padding:.15rem .5rem;border-radius:99px;color:#fff;background:#778}
.comp-card .badge.life{background:#eef1ee;color:#556}
.comp-card .badge.life.hot{background:#fcf3e0;color:#b8860b}
.comp-card .badge.conar{background:#fdecea;color:#c0392b}
.comp-note{font-size:.82rem;color:#445;line-height:1.4;margin:0}
.comp-prov{font-size:.72rem;color:#99a;margin:0}
.comp-prov a{color:#007A33}

/* ── QA: toast + RBAC hints ── */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#0b1a12;color:#fff;padding:.7rem 1.2rem;border-radius:9px;font-size:.86rem;font-weight:600;opacity:0;pointer-events:none;transition:.25s;z-index:999;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.ok{background:#1a7f37}.toast.err{background:#c0392b}
.ac-norole{font-size:.72rem;color:#99a;font-style:italic}
/* ── QA: responsivo — tabelas largas e KPI row ── */
.tbl-wrap{overflow-x:auto}
@media(max-width:760px){.kpi-row{grid-template-columns:repeat(2,1fr)}.ac-triple{grid-template-columns:1fr}.mem-ba{grid-template-columns:1fr}}

/* ── QA: a11y skip link ── */
.skip-link{position:absolute;left:-999px;top:0;background:#007A33;color:#fff;padding:.5rem 1rem;border-radius:0 0 6px 0;z-index:1000}
.skip-link:focus{left:0}

/* ── Componente de Proveniência (governança) ── */
.prov{border:1px solid #e3e7e4;border-radius:8px;background:#fbfcfb;margin:.8rem 0;font-size:.78rem}
.prov>summary{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;cursor:pointer;list-style:none}
.prov>summary::-webkit-details-marker{display:none}
.prov-ico{color:#778}
.prov-lead{font-weight:600;color:#556}
.prov-type{font-size:.64rem;font-weight:700;padding:.1rem .4rem;border-radius:4px;letter-spacing:.03em}
.prov-real{background:#e3f3e8;color:#1a7f37}.prov-mock{background:#f3e3e3;color:#a04040}.prov-derived{background:#eaf1fb;color:#2563a8}.prov-best-effort{background:#fcf3e0;color:#b8860b}
.prov-conf{font-size:.66rem;font-weight:600;margin-left:auto;color:#778}
.conf-alta{color:#1a7f37}.conf-média{color:#b8860b}.conf-media{color:#b8860b}.conf-baixa{color:#c0392b}
.prov-body{padding:.2rem .7rem .7rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem 1rem}
.prov-body>div{display:flex;flex-direction:column}
.prov-body span{font-size:.64rem;text-transform:uppercase;color:#99a;font-weight:700}
.prov-body b{font-weight:500;color:#334;font-size:.78rem}
.prov-lim{grid-column:1/-1}.prov-lim b{color:#8a6d2f}

/* ── Vision: seleção, bulk bar, modal ── */
.vision-card{position:relative}
.vsel{position:absolute;top:8px;left:8px;z-index:3;background:rgba(255,255,255,.9);border-radius:5px;padding:.15rem;display:flex;cursor:pointer}
.vsel input{cursor:pointer;width:16px;height:16px;accent-color:#007A33}
.vision-thumb{cursor:pointer}.vision-body{cursor:pointer}
.bulkbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.8rem;background:#0b1a12;color:#fff;padding:.6rem 1rem;border-radius:9px;margin:0 0 1rem}
.bulkbar b{color:#5bd08a}
.bulkbar .btn-approve{padding:.4rem .9rem}.bulkbar .btn-dismiss{padding:.4rem .9rem;background:transparent;color:#cdd;border-color:#445}
.modal-bg{position:fixed;inset:0;background:rgba(11,26,18,.6);display:flex;align-items:center;justify-content:center;z-index:100;padding:2rem}
.modal{background:#fff;border-radius:14px;max-width:760px;width:100%;max-height:88vh;overflow:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.modal-x{position:absolute;top:12px;right:14px;background:none;border:none;font-size:1.6rem;color:#889;cursor:pointer;line-height:1}
.modal-grid{display:grid;grid-template-columns:300px 1fr;gap:1.4rem;padding:1.6rem}
.modal-grid img{width:100%;border-radius:10px;background:#0b1a12}
.modal-grid h3{margin:.4rem 0 .8rem;font-size:1.1rem}
.modal-actions{margin-top:1rem}
@media(max-width:680px){.modal-grid{grid-template-columns:1fr}}

/* ── Competitive: cards enriquecidos + briefing ── */
.comp-card.risk-high{border-left:4px solid #c0392b}.comp-card.risk-medium{border-left:4px solid #b8860b}.comp-card.risk-low{border-left:4px solid #ccd}
.comp-hook{font-size:.92rem;font-weight:600;color:#0b1a12;margin:0;line-height:1.35}
.comp-meta-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.2rem 0}
.cm{font-size:.72rem;color:#667;background:#f1f4f1;padding:.15rem .5rem;border-radius:5px}
.badge-risk{font-weight:700;text-transform:uppercase;font-size:.64rem}
.badge-risk.risk-high{background:#fdecea;color:#c0392b}.badge-risk.risk-medium{background:#fcf3e0;color:#b8860b}.badge-risk.risk-low{background:#eef1ee;color:#778}
.comp-opp,.comp-rec{font-size:.8rem;color:#445;margin:.1rem 0;line-height:1.35}
.comp-rec{color:#14532d}
.comp-foot{display:flex;gap:.6rem;align-items:center;margin-top:.4rem;flex-wrap:wrap}
.comp-link{font-size:.74rem;color:#007A33}
.btn-mini{font-size:.74rem;font-weight:600;border:1px solid #007A33;background:#fff;color:#007A33;padding:.3rem .7rem;border-radius:6px;cursor:pointer}
.btn-mini:hover{background:#f0f9f3}
.brief-pre{white-space:pre-wrap;font-size:.8rem;line-height:1.5;background:#f6f7f8;border-radius:8px;padding:1rem;color:#334;max-height:50vh;overflow:auto;font-family:ui-monospace,monospace}
.eyebrow{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#007A33;margin:0 0 .6rem}

/* ── Learning Memory: regras + decisões ── */
.mem-rule-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.3rem}
.rule-stat{font-size:.7rem;color:#667;background:#eef1ee;padding:.1rem .45rem;border-radius:4px}
.dec-table{background:#fff;border:1px solid #e3e7e4;border-radius:10px;overflow:hidden;font-size:.82rem}
.dec-row{display:grid;grid-template-columns:140px 110px 1fr 180px;gap:.6rem;padding:.55rem .9rem;border-bottom:1px solid #f0f2f0;align-items:center}
.dec-row:last-child{border-bottom:none}
.dec-head{background:#f8faf8;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:#99a;font-weight:700}
.dec-when{color:#778}.dec-actor{color:#556;font-size:.76rem}
.dec-act{font-size:.66rem;font-weight:700;text-transform:uppercase;padding:.12rem .45rem;border-radius:4px;text-align:center}
.act-approve{background:#e3f3e8;color:#1a7f37}.act-dismiss{background:#f3e3e3;color:#a04040}
.act-review{background:#eaf1fb;color:#2563a8}.act-task{background:#fcf3e0;color:#b8860b}.act-escalate{background:#fdecea;color:#c0392b}.act-create{background:#eef1ee;color:#667}
@media(max-width:760px){.dec-row{grid-template-columns:1fr 1fr}.dec-title{grid-column:1/-1}}

/* ── Source type badges (REAL/MOCK/INFERIDO/CALCULADO/VISION/HUMAN REVIEW) ── */
.src-badge{font-size:.62rem;font-weight:800;letter-spacing:.04em;padding:.12rem .45rem;border-radius:4px;white-space:nowrap}
.src-real,.src-snapshot,.src-real-snapshot,.src-real-best-effort{background:#e3f3e8;color:#1a7f37}
.src-mock{background:#f3e3e3;color:#a04040}
.src-inferido,.src-inferred{background:#eef0fb;color:#5b54b8}
.src-calculado,.src-calculated,.src-derived{background:#eaf1fb;color:#2563a8}
.src-vision{background:#ece5fa;color:#6b3fb5}
.src-human-review,.src-human{background:#fdecea;color:#c0392b}

/* ── Evidence Drawer (lateral, reutilizável) ── */
.drawer-bg{position:fixed;inset:0;background:rgba(11,26,18,.45);z-index:120;display:none}
.drawer-bg.open{display:block}
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(480px,92vw);background:#fff;box-shadow:-8px 0 40px rgba(0,0,0,.2);z-index:121;transform:translateX(100%);transition:.25s;overflow-y:auto}
.drawer.open{transform:translateX(0)}
.drawer-head{position:sticky;top:0;background:#0b1a12;color:#fff;padding:1rem 1.2rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.drawer-head h3{margin:.2rem 0 0;font-size:1.02rem}
.drawer-x{background:none;border:none;color:#cdd;font-size:1.5rem;cursor:pointer;line-height:1}
.drawer-body{padding:1.2rem}
.dw-sec{margin-bottom:1.1rem}
.dw-sec>span{display:block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#99a;margin-bottom:.35rem}
.dw-sec p{margin:0;font-size:.85rem;color:#334;line-height:1.45}
.dw-ev{list-style:none;padding:0;margin:0}
.dw-ev li{display:flex;gap:.5rem;align-items:baseline;padding:.3rem 0;border-bottom:1px dotted #eef;font-size:.8rem;color:#445}
.dw-ev .ev-kind{font-size:.62rem;font-weight:700;text-transform:uppercase;color:#778;background:#eef1ee;padding:.05rem .35rem;border-radius:3px}
.dw-ev small{color:#aab;margin-left:auto}
.dw-meta{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.dw-meta div{background:#f6f7f8;border-radius:6px;padding:.5rem .6rem}
.dw-meta span{font-size:.62rem;text-transform:uppercase;color:#99a;font-weight:700;display:block}
.dw-meta b{font-size:.82rem;color:#0b1a12}

/* ── Action Center: linha de evidência ── */
.ac-evrow{display:flex;align-items:center;gap:.7rem;margin:.5rem 0}
.ac-impact{font-size:.78rem;color:#778}

/* ── Vision refinada: summary + cards ricos ── */
.vs-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.7rem;margin:0 0 1rem}
.vs-kpi{background:#fff;border:1px solid #e3e7e4;border-radius:9px;padding:.7rem .6rem;text-align:center}
.vs-kpi b{display:block;font-size:1.4rem;font-weight:800;color:#0b1a12;line-height:1}
.vs-kpi span{font-size:.66rem;color:#778;margin-top:.25rem;display:block}
.vs-kpi.ok{border-top:3px solid #1a7f37}.vs-kpi.warn{border-top:3px solid #b8860b}.vs-kpi.bad{border-top:3px solid #c0392b}
.vc-top{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.vc-risk{font-size:.62rem;font-weight:700;text-transform:uppercase;padding:.1rem .4rem;border-radius:4px;margin-left:auto}
.vc-risk.risk-high{background:#fdecea;color:#c0392b}.vc-risk.risk-medium{background:#fcf3e0;color:#b8860b}.vc-risk.risk-low{background:#e3f3e8;color:#1a7f37}
.vc-place{font-size:.7rem;color:#778;margin:.3rem 0}
.vc-signals{display:flex;gap:.3rem;flex-wrap:wrap;margin:.3rem 0}
.sig{font-size:.64rem;font-weight:600;padding:.1rem .4rem;border-radius:4px}
.sig-bad{background:#fdecea;color:#c0392b}.sig-warn{background:#fcf3e0;color:#b8860b}.sig-ok{background:#e3f3e8;color:#1a7f37}
.vc-rec{font-size:.78rem;color:#14532d;margin:.3rem 0}
.vc-ev{font-size:.72rem;color:#007A33;background:none;border:none;padding:0;cursor:pointer}
.vc-reviewed{position:absolute;bottom:8px;left:8px;background:#1a7f37;color:#fff;font-size:.64rem;font-weight:700;padding:.1rem .45rem;border-radius:4px;z-index:3}
@media(max-width:900px){.vs-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.vs-grid{grid-template-columns:repeat(2,1fr)}}

/* ── Competitive: blocos estratégicos + grupos por marca ── */
.strat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0 1.4rem}
.strat-block{background:#fff;border:1px solid #e3e7e4;border-radius:10px;padding:1rem 1.1rem;border-top:3px solid #2563a8}
.strat-block.def{border-top-color:#1a7f37}.strat-block.off{border-top-color:#c0392b}
.strat-block h4{margin:0 0 .6rem;font-size:.9rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.strat-block ul{margin:0;padding-left:1.1rem;font-size:.82rem;color:#445;line-height:1.5}
.strat-block li{margin-bottom:.35rem}
.brand-group{margin:1.4rem 0}
.brand-h{font-size:1rem;color:#0b1a12;border-bottom:2px solid #007A33;padding-bottom:.4rem;margin:0 0 .8rem;display:flex;align-items:baseline;gap:.6rem}
.brand-count{font-size:.74rem;font-weight:500;color:#99a}
@media(max-width:860px){.strat-grid{grid-template-columns:1fr}}

/* ── Action Center: spec row + form ── */
.ac-spec{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:.6rem 0;padding:.5rem .7rem;background:#f8faf8;border-radius:7px;font-size:.76rem;color:#445}
.ac-spec .spec i{font-style:normal;font-size:.62rem;text-transform:uppercase;color:#99a;font-weight:700;margin-right:.3rem}
.ac-spec .spec-next{flex-basis:100%;color:#14532d}
.ac-status.st-in_progress{background:#fcf3e0;color:#b8860b}.ac-status.st-done{background:#e3f3e8;color:#1a7f37}.ac-status.st-reviewing{background:#eaf1fb;color:#2563a8}
.frm-l{display:block;font-size:.74rem;font-weight:600;color:#556;margin:.7rem 0 .3rem}
.frm-i{width:100%;border:1px solid #dadce0;border-radius:7px;padding:.5rem .6rem;font-size:.85rem;font-family:inherit;box-sizing:border-box}

/* ── Learning Memory: regra enriquecida ── */
.rule-card{background:#fff;border:1px solid #e3e7e4;border-left:4px solid #007A33;border-radius:10px;padding:1rem 1.1rem;margin-bottom:.8rem}
.rule-card.status-directional{border-left-color:#b8860b}.rule-card.status-deprecated{border-left-color:#aab;opacity:.65}
.rule-text{font-size:.95rem;font-weight:600;color:#0b1a12;margin-bottom:.7rem}
.rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem .9rem;font-size:.8rem}
.rule-grid>div{display:flex;flex-direction:column}
.rule-grid span{font-size:.62rem;text-transform:uppercase;color:#99a;font-weight:700}
.rule-grid b{color:#334;font-weight:600}
.rule-status{font-size:.68rem;text-transform:uppercase;padding:.05rem .4rem;border-radius:4px;width:fit-content}
.rs-proven{background:#e3f3e8;color:#1a7f37}.rs-directional{background:#fcf3e0;color:#b8860b}.rs-deprecated{background:#eef1ee;color:#889}
.rule-foot{margin-top:.7rem;border-top:1px solid #f0f2f0;padding-top:.6rem}

/* ── Decision Quality Score ── */
.dqs{font-size:.64rem;font-weight:800;padding:.12rem .45rem;border-radius:4px;letter-spacing:.02em}
.dqs-alto{background:#e3f3e8;color:#1a7f37}.dqs-médio{background:#fcf3e0;color:#b8860b}.dqs-baixo{background:#fdecea;color:#c0392b}
.dq-head{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.4rem}
.dq-head b{font-size:1rem}.dq-head span{font-size:.78rem;color:#778}
.dq-crit{list-style:none;padding:0;margin:0;font-size:.76rem}
.dq-crit li{display:flex;justify-content:space-between;padding:.18rem 0;border-bottom:1px dotted #eef}
.dq-crit b{color:#0b1a12}

/* ── Mode toggle (Cockpit/Boardroom) ── */
.mode-toggle{display:inline-flex;background:#eef1ee;border-radius:99px;padding:.2rem;margin:0 0 1.2rem}
.mt-btn{border:none;background:none;font-size:.82rem;font-weight:600;color:#667;padding:.4rem 1rem;border-radius:99px;cursor:pointer}
.mt-btn.active{background:#0b1a12;color:#fff}

/* ── Boardroom Mode ── */
#boardview{background:#0b1a12;color:#eaf2ec;border-radius:14px;padding:1.6rem 1.8rem;margin-bottom:1rem}
.board-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.6rem}
.board-head h2{margin:0;font-size:1.15rem;color:#fff}
#boardview .btn-mini{border-color:#3a5246;color:#9fe0b8;background:transparent}
.board-bullets{margin:0 0 1.2rem;padding-left:1.2rem;font-size:.95rem;line-height:1.6}
.board-bullets li{margin-bottom:.3rem}
.board-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin-bottom:1rem}
.board-block{background:rgba(255,255,255,.06);border-radius:10px;padding:.9rem 1rem}
.board-block h4{margin:0 0 .5rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#7fd0a0}
.board-block ul,.board-block ol{margin:0;padding-left:1.1rem;font-size:.82rem;line-height:1.5;color:#dce8e0}
.board-block small{color:#9fb3a8}
.bmod{font-size:.62rem;background:#1d3a2a;color:#7fd0a0;padding:.05rem .35rem;border-radius:4px;text-transform:uppercase}
.board-block.money{background:rgba(127,208,160,.12)}
.board-money{font-size:1.8rem;font-weight:800;color:#7fd0a0}
.board-next{background:rgba(255,255,255,.06);border-radius:10px;padding:.9rem 1rem}
.board-next h4{margin:0 0 .4rem;font-size:.78rem;text-transform:uppercase;color:#7fd0a0}
.board-next ul{margin:0;padding-left:1.1rem;font-size:.85rem;line-height:1.5}
@media(max-width:860px){.board-grid{grid-template-columns:1fr}}

/* ── Scenario Simulator ── */
.scn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:.5rem}
.scn-card{border:1px solid #e3e7e4;border-radius:10px;padding:1rem;background:#fff}
.scn-card h4{margin:0 0 .6rem;font-size:.92rem;color:#0b1a12}
.scn-meta{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:#445;margin-bottom:.6rem}
.scn-meta i{font-style:normal;font-size:.62rem;text-transform:uppercase;color:#99a;font-weight:700;margin-right:.4rem}
.scn-r.risk-high i{color:#c0392b}.scn-r.risk-medium i{color:#b8860b}.scn-r.risk-low i{color:#1a7f37}
.scn-rec{font-size:.8rem;color:#14532d;margin:0 0 .7rem}
.scn-btn{width:100%}

/* ── Compliance Heatmap ── */
.hm-wrap{overflow-x:auto}
.heatmap{border-collapse:collapse;font-size:.82rem;margin-top:.4rem}
.heatmap th{padding:.5rem .7rem;text-align:center;font-size:.72rem;color:#667;font-weight:700}
.heatmap tbody th{text-align:right;background:#f8faf8}
.heatmap td{width:90px;height:46px;text-align:center;font-weight:700;color:#0b1a12;border:2px solid #fff;border-radius:6px}
.hm-high{background:#f6c9c2;color:#7a241a}.hm-warn{background:#f6e4b8;color:#7a5b16}.hm-low{background:#c9ebd5;color:#15532d}
.hm-rules{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}
.hm-rule{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:#334;padding:.4rem .6rem;border-radius:6px}
.hm-rule.hm-high{background:#fdecea}.hm-rule.hm-warn{background:#fcf3e0}.hm-rule.hm-low{background:#e3f3e8}
.hm-dot{width:10px;height:10px;border-radius:50%}
.hm-rule.hm-high .hm-dot{background:#c0392b}.hm-rule.hm-warn .hm-dot{background:#b8860b}.hm-rule.hm-low .hm-dot{background:#1a7f37}

/* ── Agency Ops ── */
.ops-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.ops-card{background:#fff;border:1px solid #e3e7e4;border-radius:10px;padding:1rem 1.1rem}
.ops-card h4{margin:0 0 .7rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:#556}
.ops-list{list-style:none;padding:0;margin:0}
.ops-list li{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid #f0f2f0;font-size:.85rem}
.ops-list b{font-weight:800;color:#0b1a12}
.ops-pend{list-style:none;padding:0;margin:0}
.ops-pend li{padding:.4rem 0;border-bottom:1px solid #f0f2f0}
.ops-pend b{display:block;font-size:.84rem}.ops-pend small{color:#889;font-size:.74rem}
.ops-next{font-size:.78rem;color:#556;max-width:240px}
.aging{font-weight:700;font-size:.76rem;padding:.1rem .45rem;border-radius:4px}
.aging-hot{background:#fdecea;color:#c0392b}.aging-ok{background:#eef1ee;color:#667}
@media(max-width:860px){.ops-cols{grid-template-columns:1fr}}

/* ── Taxonomia de compliance (texto/visual/multimodal) ── */
.kpi.accent-warn{border-top:3px solid #b8860b}
.vs-kpi.accent{border-top:3px solid #2563a8}
.mm-microcopy{font-size:.82rem;color:#7a5b16;background:#fcf6e6;border:1px solid #f0e0b0;border-radius:8px;padding:.6rem .8rem;margin:0 0 1rem}
.mm-verdict{background:#fff;border:1px solid #e3e7e4;border-radius:12px;padding:1.1rem 1.3rem;margin:1.2rem 0}
.mm-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#556;font-weight:700;margin-bottom:.7rem}
.mm-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:.8rem}
.mm-cell{text-align:center;border-radius:9px;padding:.8rem;background:#f6f7f8}
.mm-cell b{display:block;font-size:1.8rem;font-weight:800;line-height:1}
.mm-cell span{font-size:.72rem;color:#667}
.mm-cell.bad{background:#fdecea}.mm-cell.bad b{color:#c0392b}
.mm-cell.warn{background:#fcf3e0}.mm-cell.warn b{color:#b8860b}
.mm-cell.ok{background:#e3f3e8}.mm-cell.ok b{color:#1a7f37}
.mm-note{font-size:.84rem;color:#445;line-height:1.5;margin:0}

/* ═══════════════ Competitive Pain Radar ═══════════════ */
.nav a.sub{padding-left:30px;font-size:.92em}
.nav a.sub .ico{opacity:.6}
.guard-rail{background:#f5f8f6;border:1px solid #dce5df;border-left:4px solid #1a7f37;border-radius:8px;padding:11px 14px;margin:14px 0 20px;font-size:13px;line-height:1.5;color:#34433a}
.pain-card{background:#fff;border:1px solid #e3e7e4;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.05);padding:20px 22px;margin-bottom:22px}
.pain-card.risk-high{border-left:4px solid #c0392b}.pain-card.risk-medium{border-left:4px solid #b8860b}.pain-card.risk-low{border-left:4px solid #1a7f37}
.pain-head .pill{margin-right:6px}
.pain-title{margin:.5rem 0 .3rem;font-size:1.25rem}
.pain-desc{margin:0;color:#566;font-size:14px;line-height:1.55;max-width:880px}
.pain-metrics{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.pain-metrics>div{background:#f7f9f8;border:1px solid #e7ece9;border-radius:8px;padding:8px 13px;min-width:120px}
.pain-metrics span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#8a9690}
.pain-metrics b{font-size:14.5px}
.pain-metrics b.risk-high{color:#c0392b}.pain-metrics b.risk-medium{color:#b8860b}.pain-metrics b.risk-low{color:#1a7f37}
.pain-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:6px 0 14px}
@media(max-width:780px){.pain-grid{grid-template-columns:1fr}}
.pain-col h4{margin:.4rem 0 .5rem;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:#445}
.pain-quotes{list-style:none;padding:0;margin:0}
.pain-quotes li{background:#faf7f5;border-left:3px solid #d8c4b8;border-radius:0 6px 6px 0;padding:8px 12px;margin-bottom:8px;font-size:13.5px;font-style:italic;color:#5a4d44}
.pain-quotes small{display:block;font-style:normal;color:#998;font-size:11.5px;margin-top:3px}
.pain-opp{background:#eef5f0;border-radius:8px;padding:10px 13px;font-size:14px;color:#23502f;line-height:1.5;margin:.2rem 0 .9rem}
.pain-angles{margin:.2rem 0 0;padding-left:20px}
.pain-angles li{margin-bottom:5px;font-weight:600;color:#1a7f37;font-size:14px}
.copy-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
@media(max-width:780px){.copy-split{grid-template-columns:1fr}}
.copy-safe,.copy-risky{border-radius:9px;padding:12px 14px}
.copy-safe{background:#f1f8f3;border:1px solid #cfe6d6}
.copy-risky{background:#fcf3f2;border:1px solid #f0d4d0}
.copy-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.copy-safe .copy-h{color:#1a7f37}.copy-risky .copy-h{color:#c0392b}
.copy-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;border-top:1px solid rgba(0,0,0,.05)}
.copy-row:first-of-type{border-top:none}
.copy-txt{font-size:13.5px;color:#3a4540}
.claim-badge{font-size:10.5px;font-weight:700;padding:.12rem .5rem;border-radius:99px;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em}
.claim-safe_positive_angle{background:#e3f3e8;color:#1a7f37}
.claim-needs_substantiation{background:#fcf3e0;color:#b8860b}
.claim-risky_comparative_claim{background:#fdecea;color:#c0392b}
.claim-prohibited_direct_attack{background:#fbe0de;color:#8e1f15}
.claim-legal_review_required{background:#e8e3f5;color:#5a3fa0}
.pain-note{font-size:13px;color:#667;background:#f7f9f8;border-radius:7px;padding:9px 13px;line-height:1.5}
.pain-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.opp-out{background:#f6f4fb;border:1px solid #e1dbf2;border-radius:9px;padding:13px 15px;margin:12px 0 4px}
.opp-head{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#5a3fa0;margin-bottom:7px}
.opp-hyp{font-size:13.5px;color:#444;line-height:1.5;margin:.2rem 0 .6rem}
.opp-claim{font-size:14px;color:#23502f;background:#eef5f0;border-radius:7px;padding:8px 12px;margin-bottom:9px}
.opp-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}
@media(max-width:680px){.opp-two{grid-template-columns:1fr}}
.opp-two span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#8a9690;margin-bottom:3px}
.opp-two p{margin:0;font-size:13.5px;color:#3a4540}
.opp-two .risky p{color:#a04040}
.opp-meta{font-size:12px;color:#778;border-top:1px solid #e1dbf2;padding-top:7px}
/* teaser no Competitive */
.complaint-teaser{display:flex;align-items:center;gap:16px;background:linear-gradient(95deg,#f5f8f6,#eef5f0);border:1px solid #d6e5dc;border-radius:12px;padding:16px 20px;margin:18px 0;text-decoration:none;color:inherit;transition:box-shadow .15s}
.complaint-teaser:hover{box-shadow:0 3px 12px rgba(26,127,55,.12)}
.complaint-teaser .ct-ico{font-size:1.9rem;color:#1a7f37}
.complaint-teaser .ct-body{flex:1}
.complaint-teaser .ct-h{font-weight:700;font-size:1.05rem;margin-bottom:3px}
.complaint-teaser p{margin:0;font-size:13px;color:#566;line-height:1.5}
.complaint-teaser .ct-cta{font-weight:700;color:#1a7f37;white-space:nowrap}
/* boardroom block */
.board-pains{grid-column:1/-1;background:#f6f9f7;border:1px solid #dce8e0;border-radius:10px;padding:14px 16px;margin-top:6px}
.board-pains>h4{margin:0 0 10px}
.pain-board-list{list-style:none;padding:0;margin:0 0 10px}
.pain-board-list li{padding:9px 0;border-top:1px solid #e3ece6}
.pain-board-list li:first-child{border-top:none}
.pain-board-list .bmod{font-size:11.5px;color:#8a9690;font-weight:600}
.pb-opp{font-size:13px;color:#34433a;margin:3px 0}
.pb-safe{font-size:12.5px;color:#1a7f37;font-weight:600}
.pb-safe small{color:#998;font-weight:400}

/* ═══════════════ REAL DATA ONLY — empty states ═══════════════ */
.empty-state{background:#fff;border:1px dashed #cdd6d0;border-radius:12px;padding:44px 28px;text-align:center;margin:18px 0;color:#566}
.empty-state .es-ico{font-size:2.4rem;color:#9aa8a0;margin-bottom:8px}
.empty-state h3{margin:.2rem 0 .5rem;font-size:1.12rem;color:#33413a}
.empty-state p{margin:.25rem 0;font-size:13.5px;line-height:1.55;max-width:560px;margin-left:auto;margin-right:auto}
.empty-state .es-src{color:#1a7f37}
.empty-state .es-rule{margin-top:12px;font-size:12px;color:#8a9690;background:#f6f9f7;display:inline-block;padding:6px 12px;border-radius:99px}

/* ═══════════════ FIX: honrar o atributo [hidden] ═══════════════ */
/* Regras de classe como .modal-bg{display:flex} e .bulkbar{display:flex}
   sobrepunham o [hidden] do navegador, deixando modais/barra VISÍVEIS no load.
   Esta regra global torna o atributo hidden autoritativo (modais só aparecem no clique). */
[hidden]{display:none!important}

/* ═══════════════ API-First badges + Data Sources ═══════════════ */
.src-platform{background:#e3f0fb;color:#1c5fa8}
.src-warehouse{background:#e8e3f5;color:#5a3fa0}
.src-listening{background:#fcefe0;color:#b8730b}
.src-vision{background:#e3f3e8;color:#1a7f37}
.src-export{background:#eef1f4;color:#566}
.src-calc{background:#e9f1ee;color:#2a7d5f}
.src-infer{background:#f3eede;color:#8a6d1b}
.src-human{background:#f0eef6;color:#6a5a8a}
.src-invalid{background:#fbe0de;color:#8e1f15}
.ds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;margin:16px 0}
.ds-card{background:#fff;border:1px solid #e3e7e4;border-left:4px solid #ccd;border-radius:11px;padding:16px 18px}
.ds-card.connected{border-left-color:#1a7f37}
.ds-card.not_configured{border-left-color:#b8860b}
.ds-card.error{border-left-color:#c0392b}.ds-card.disabled{border-left-color:#999}
.ds-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}
.ds-name{font-weight:700;font-size:1.04rem}
.ds-plat{font-size:12px;color:#8a9690}
.ds-status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.18rem .55rem;border-radius:99px;white-space:nowrap}
.ds-status.connected{background:#e3f3e8;color:#1a7f37}
.ds-status.not_configured{background:#fcf3e0;color:#b8860b}
.ds-status.error{background:#fdecea;color:#c0392b}.ds-status.disabled{background:#eee;color:#777}
.ds-note{font-size:13px;color:#566;line-height:1.5;margin:.4rem 0}
.ds-meta{font-size:12px;color:#778;border-top:1px solid #eef1ef;padding-top:8px;margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 14px}
.ds-meta b{color:#445}
/* Action Center — 4 seções */
.ac-section{margin:22px 0}
.ac-sec-head{display:flex;align-items:center;gap:10px;margin:0 0 4px}
.ac-sec-head h2{margin:0;font-size:1.18rem}
.ac-sec-count{font-size:12px;font-weight:700;background:#eef1ef;color:#566;padding:.12rem .55rem;border-radius:99px}
.ac-sec-sub{color:#8a9690;font-size:13px;margin:.1rem 0 .8rem}
.ac-blocked{background:#fcf6f5;border:1px solid #f0d9d5;border-radius:10px;padding:12px 15px;margin-bottom:10px}
.ac-blocked .blk-title{font-weight:700;color:#8e1f15}
.ac-blocked .blk-reasons{font-size:12.5px;color:#a05040;margin-top:4px}
.hdr-row{display:grid;grid-template-columns:150px 1fr 130px;gap:12px;padding:8px 0;border-top:1px solid #eef1ef;font-size:13.5px;align-items:center}
.hdr-row:first-child{border-top:none}
.hdr-kind{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.12rem .5rem;border-radius:99px;background:#f0eef6;color:#6a5a8a;justify-self:start}
.hdr-kind.approval{background:#e3f3e8;color:#1a7f37}.hdr-kind.rejection{background:#fdecea;color:#c0392b}

/* ═══ Source Authenticity — Data Sources detalhada ═══ */
.ds-card.ok{border-left-color:#1a7f37}.ds-card.warn{border-left-color:#b8860b}.ds-card.bad{border-left-color:#c0392b}
.ds-status.ok{background:#e3f3e8;color:#1a7f37}.ds-status.warn{background:#fcf3e0;color:#b8860b}.ds-status.bad{background:#fdecea;color:#c0392b}
.ds-hash{font-size:11px;word-break:break-all;color:#667}
.ds-lim{font-size:12.5px;color:#7a6a3a;background:#fcfaf3;border-radius:6px;padding:7px 11px;margin:8px 0 0;line-height:1.5}
.ds-block{background:#fcf6f5;border:1px solid #f0d9d5;border-radius:8px;padding:9px 12px;margin:8px 0;font-size:13px;color:#8e3b30;line-height:1.5}
.ds-block .ds-meta{color:#a05040;border-top-color:#f0d9d5}

/* ═══ Authenticity axes (3 eixos) ═══ */
.ds-card.warn2{border-left-color:#b8860b}
.ds-status.warn2{background:#fcf3e0;color:#9a6b08}
.ds-axes{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 14px;background:#f7f9f8;border:1px solid #e7ece9;border-radius:8px;padding:9px 12px;margin:8px 0;font-size:12px}
.ds-axes>div span{display:block;color:#8a9690;text-transform:uppercase;letter-spacing:.03em;font-size:10.5px}
.ds-axes>div b{font-size:12.5px}
.ax-ok{color:#1a7f37}.ax-bad{color:#c0392b}.ax-warn{color:#b8860b}.ax-mut{color:#8a9690}
.ds-warn{background:#fcf6e8;border:1px solid #ecd9a8;border-radius:7px;padding:8px 12px;margin:8px 0;font-size:12.5px;color:#8a6310;line-height:1.5}
.ac-livebadge{font-size:10px;font-weight:700;letter-spacing:.03em;padding:.12rem .5rem;border-radius:99px;text-transform:uppercase}
.ac-livebadge.lb-live{background:#e3f3e8;color:#177a35}
.ac-livebadge.lb-warn{background:#fcf3e0;color:#9a6b08}
.ac-livebadge.lb-ok{background:#e3f0fb;color:#1c5fa8}

/* ═══ LIVE-FIRST Action Center ═══ */
.ac-datamode{background:#0b1a12;color:#cfe8d8;border-radius:8px;padding:8px 14px;font-size:12.5px;margin:0 0 14px}
.ac-datamode b{color:#7fe3a6}
.ac-subhead{font-weight:700;font-size:13px;color:#445;margin:14px 0 6px;display:flex;gap:8px;align-items:center}
.ac-finding{background:#fcfaf3;border:1px solid #ecdfb8;border-left:4px solid #b8860b;border-radius:9px;padding:11px 14px;margin-bottom:9px}
.fnd-warn{font-size:11.5px;color:#8a6310;font-weight:600;margin-bottom:5px}
.fnd-title{font-weight:700;font-size:14.5px}
.fnd-meta{font-size:12px;color:#778;margin-top:3px}

/* Meta credentials diagnóstico */
.meta-diag{border-radius:10px;padding:12px 16px;margin:0 0 16px;border:1px solid #e3e8ef}
.meta-diag.ok{background:#f1f8f3;border-color:#cfe6d6}
.meta-diag.warn{background:#fcf6e8;border-color:#ecd9a8}
.md-h{font-weight:700;font-size:14px;margin-bottom:8px;display:flex;gap:8px;align-items:center}
.md-status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;background:#0b1a12;color:#7fe3a6;padding:.12rem .55rem;border-radius:99px}
.md-note{font-size:12px;color:#667;margin:8px 0 0;line-height:1.5}
.md-note code{background:#eef1ef;padding:1px 5px;border-radius:4px}

/* Audience LIVE */
.aud-live{background:#eef5fb;border:1px solid #d3e4f3;border-radius:8px;padding:9px 14px;margin:0 0 16px;font-size:13px;color:#1c5fa8}
.aud-live .src-badge{margin-right:8px}
.aud-tbl td,.aud-tbl th{padding:7px 10px}
.aud-tbl tr.is-warn,.aud-tbl .is-warn{background:#fcf6e8}
.aud-tbl .is-good{background:#f1f8f3}

/* P0 governança/narrativa */
.foot-empty{color:#8a9690;font-size:11.5px;line-height:1.4;display:block;margin-top:4px}
.acct-sub{display:block;font-size:11px;color:#8a9690}
.ds-op{background:#eaf6ee;border:1px solid #cfe6d6;border-radius:7px;padding:8px 12px;margin:8px 0;font-size:13px;color:#177a35;line-height:1.5}
.export-banner{background:#fcf6e8;border:1px solid #ecd9a8;border-left:4px solid #b8860b;border-radius:8px;padding:10px 14px;margin:0 0 16px;font-size:12.5px;color:#8a6310;line-height:1.5}
.export-banner code{background:#f3ecd6;padding:1px 5px;border-radius:4px}
.src-export{background:#eef1f4;color:#566}
.hist-banner{font-size:11.5px;color:#8a6310;font-weight:600;background:#fcf6e8;border-radius:6px;padding:5px 9px;margin-bottom:8px}
.rule-card.status-historical{border-left-color:#b8860b;opacity:.92}
.rs-historical{color:#8a6310}
.aud-defs{background:#f7f9f8;border:1px solid #e7ece9;border-radius:8px;padding:9px 13px;margin:0 0 16px;font-size:12px;color:#566;line-height:1.7}
.aud-defs b{color:#33413a}

/* Sync agendado (Data Sources) */
.ds-sync{background:#f6f9f7;border:1px solid #e3ece6;border-radius:8px;padding:9px 13px;margin:8px 0 0}
.ds-sync-h{font-weight:700;font-size:12px;color:#445;margin-bottom:5px}
.ds-syncerr{font-size:12px;color:#c0392b;margin:5px 0 0}

/* Persistência (banner) */
.persist-banner{border-radius:10px;padding:11px 15px;margin:0 0 16px;font-size:13px;line-height:1.5;border:1px solid #e3e8ef}
.persist-banner.warn{background:#fcf6e8;border-color:#ecd9a8;color:#8a6310}
.persist-banner.ok{background:#f1f8f3;border-color:#cfe6d6;color:#177a35}
.pb-tag{font-size:10.5px;font-weight:700;letter-spacing:.02em;background:#fbe0de;color:#8e1f15;padding:.12rem .5rem;border-radius:99px;text-transform:uppercase}
.pb-tag.ok{background:#e3f3e8;color:#177a35}
.pb-note{font-size:12px;color:#667;margin-top:6px}
.pb-stats{font-size:12px;color:#33506a;margin-top:6px}
/* DB-first Sync Worker panel */
.worker-panel{border:1px solid #d8e0ec;border-radius:10px;padding:13px 16px;margin:0 0 16px;background:#f7fafd}
.wp-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px}
.wp-state{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:.14rem .55rem;border-radius:99px;background:#eef1f5;color:#556}
.wp-healthy{background:#e3f3e8;color:#177a35}.wp-stale{background:#fcf6e8;color:#8a6310}
.wp-down,.wp-error{background:#fbe0de;color:#8e1f15}.wp-not_configured{background:#eef1f5;color:#667}
.wp-next{font-size:12px;color:#33506a}
.wp-btn{margin-left:auto;background:#1763b8;color:#fff;border:0;border-radius:7px;padding:.4rem .9rem;font-size:13px;font-weight:600;cursor:pointer}
.wp-btn:disabled{opacity:.55;cursor:default}
.wp-note{font-size:12px;color:#667;margin:8px 0 0;line-height:1.5}
.wp-warn{color:#8e1f15}
.wp-msg{margin-top:9px;font-size:12.5px;padding:8px 11px;border-radius:7px;background:#eef4fb;color:#26405c}
.wp-msg.ok{background:#e3f3e8;color:#177a35}.wp-msg.warn{background:#fcf6e8;color:#8a6310}
.wp-jobs{width:100%;border-collapse:collapse;margin-top:11px;font-size:12px}
.wp-jobs th{text-align:left;color:#667;font-weight:600;border-bottom:1px solid #dde3ec;padding:5px 7px}
.wp-jobs td{padding:5px 7px;border-bottom:1px solid #eef1f5;vertical-align:top}
.wp-jobs code{font-size:11px}
.wj-pill{font-size:10.5px;font-weight:700;text-transform:uppercase;padding:.1rem .45rem;border-radius:99px;background:#eef1f5;color:#556}
.wj-pill.wj-succeeded{background:#e3f3e8;color:#177a35}.wj-pill.wj-running{background:#e6f0fb;color:#1763b8}
.wj-pill.wj-queued{background:#eef1f5;color:#556}.wj-pill.wj-failed{background:#fbe0de;color:#8e1f15}
.wj-pill.wj-skipped,.wj-pill.wj-cancelled{background:#fcf6e8;color:#8a6310}
.wj-err{color:#8e1f15;max-width:240px;word-break:break-word}
/* Exec Cockpit live (Meta Ads) */
.exec-live{border:1px solid #cfe0d6;border-radius:12px;padding:15px 17px;margin:0 0 18px;background:#f4faf6}
.exec-live.pending-only{border-color:#e3e8ef;background:#f7f9fc}
.el-head{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.el-badge{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:#177a35;color:#fff;padding:.18rem .6rem;border-radius:99px}
.el-badge.muted{background:#9aa7b4}
.el-meta{font-size:12.5px;color:#33506a}
.el-worker{font-size:10.5px;font-weight:700;text-transform:uppercase;padding:.1rem .5rem;border-radius:99px;background:#eef1f5;color:#556}
.el-rl{font-size:11px;font-weight:600;color:#8a6310;background:#fcf6e8;padding:.1rem .5rem;border-radius:99px}
.el-lineage{font-size:11.5px;color:#5a6b7b;margin:8px 0 0}
.el-lineage code,.el-c-lineage code{font-size:11px;background:#eaf2ec;padding:.04rem .3rem;border-radius:4px}
.el-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:13px}
.el-card{background:#fff;border:1px solid #dde9e0;border-radius:10px;padding:12px 14px}
.el-card.el-rec{border-color:#cdddf0;background:#f7fbff}
.el-c-title{font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:#667;font-weight:600}
.el-c-value{font-size:18px;font-weight:700;color:#16324a;margin:4px 0}
.el-c-value a{color:#1763b8}
.el-c-note{font-size:12.5px;color:#445}
.el-c-lineage{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:9px;font-size:10.5px;color:#6a7b8b}
.el-c-lim{margin-top:8px;font-size:11px;color:#7a6a3a;line-height:1.45}
.el-pending{margin-top:14px;font-size:12.5px;color:#445}
.el-pending ul{margin:6px 0 0;padding-left:18px}.el-pending li{margin:3px 0}
.el-p-st{font-size:10px;font-weight:700;text-transform:uppercase;background:#eef1f5;color:#667;padding:.05rem .4rem;border-radius:99px}
/* Alertas (Data Sources) */
.alert-panel{margin:0 0 14px}
.alert-item{display:flex;gap:9px;align-items:baseline;border-radius:8px;padding:8px 12px;margin-bottom:7px;font-size:12.5px}
.alert-critical{background:#fbe0de;border:1px solid #f0b9b3;color:#8e1f15}
.alert-warning{background:#fcf6e8;border:1px solid #ecd9a8;color:#8a6310}
.alert-lvl{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .45rem;border-radius:99px;background:rgba(0,0,0,.07)}
.alert-detail{color:#667;font-size:11.5px}
.alert-ok{font-size:12.5px;color:#177a35;background:#f1f8f3;border:1px solid #cfe6d6;border-radius:8px;padding:8px 12px}
