/* ============================================================
   SKYVIDYA v5.1 — Top-bar trims, Properties (KPIs/filters/
   scorebox+gauge/vs-H3), Asset map (toggles + sized basemap
   pills), Module cards (mc-gauge), Protocolos (KPIs + filter
   bar), Alertas (sub-section divider).
   Layered on app-v2 / app-v3 / app-v4 / app-v5.
   ============================================================ */

/* ---- Properties · macro-KPIs of the credit portfolio ---- */
.asset-kpis { display:grid; grid-template-columns:repeat(5, 1fr); gap:1px; background:var(--rule-soft); border:1px solid var(--rule); border-radius:var(--radius-lg,10px); overflow:hidden; margin-bottom:14px; }
@media (max-width: 1100px) { .asset-kpis { grid-template-columns:repeat(3, 1fr); } }
@media (max-width: 640px)  { .asset-kpis { grid-template-columns:repeat(2, 1fr); } }
.akpi { background:var(--bg-elev); padding:13px 16px; display:flex; flex-direction:column; gap:6px; }
.akpi-l { font-size:8.5px; letter-spacing:0.12em; color:var(--fg-mute); text-transform:uppercase; }
.akpi-v { font-family:var(--font-display); font-weight:600; font-size:24px; line-height:1; letter-spacing:-0.02em; color:var(--fg); font-variant-numeric:tabular-nums; }
.akpi-v small { font-size:10px; font-weight:500; color:var(--fg-mute); margin-left:5px; letter-spacing:0; }

/* ---- Properties · filters ---- */
.asset-filters { display:flex; gap:14px; align-items:flex-end; flex-wrap:wrap; padding:13px 15px; background:var(--bg-elev); border:1px solid var(--rule); border-radius:var(--radius-lg,10px); margin-bottom:14px; }
.af-field { display:flex; flex-direction:column; gap:6px; min-width:140px; }
.af-field.grow { flex:1; min-width:180px; }
.af-field .eyebrow { color:var(--fg-mute); }
.af-field select { width:100%; background:var(--bg); border:1px solid var(--rule); border-radius:6px; color:var(--fg); font-family:var(--font-body); font-size:12px; padding:7px 10px; outline:none; -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238A8F99' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 8px center; padding-right:24px; }
.af-range { -webkit-appearance:none; appearance:none; width:100%; height:4px; border-radius:2px; outline:none; cursor:pointer; background:linear-gradient(to right, var(--sv-coral) var(--pct,0%), var(--sv-ink-600,#262A33) var(--pct,0%)); }
.af-range::-webkit-slider-thumb { -webkit-appearance:none; width:13px; height:13px; border-radius:50%; background:var(--sv-coral); border:2px solid var(--bg-elev); cursor:pointer; }
.af-range::-moz-range-thumb { width:11px; height:11px; border-radius:50%; background:var(--sv-coral); border:2px solid var(--bg-elev); cursor:pointer; }
.tl-pip { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--sv-cyan); margin-left:8px; vertical-align:middle; box-shadow:0 0 8px var(--sv-cyan); }

/* ---- AssetDetail · scorebox with gauge + vs-H3 ---- */
.pd-scorebox { grid-template-columns:auto 1fr auto !important; align-items:center !important; gap:14px !important; }
.pd-gauge { width:92px; flex:none; display:flex; align-items:center; justify-content:center; }
.pd-gauge .sg-wrap { padding:0; }
.pd-cmp .pdb i { transition:width 480ms cubic-bezier(.2,.7,.3,1); }
.pd-cmp .pi-flag.good { display:inline-flex; align-items:center; gap:7px; padding:5px 9px; border-radius:5px;
  font-size:11px; color:var(--sv-cyan); background:color-mix(in srgb, var(--sv-cyan) 8%, transparent); border:1px solid color-mix(in srgb, var(--sv-cyan) 30%, transparent); }

/* ---- module cards · gauge ---- */
.mc-gauge { width:54px; flex:none; display:flex; align-items:center; justify-content:center; }
.mc-gauge .sg-wrap { padding:0; }

/* ---- asset map · sized basemap pills ---- */
.pm-basemap { position:absolute; bottom:14px; right:14px; z-index:6; display:flex; align-items:center; gap:5px;
  background:color-mix(in srgb, var(--bg-elev) 90%, transparent); backdrop-filter:blur(8px); padding:5px;
  border:1px solid var(--rule); border-radius:var(--radius-lg,10px); }
.pm-bm-lab { font-size:8px; letter-spacing:0.14em; color:var(--fg-mute); padding:0 6px 0 4px; }
.pm-bm-btn { font-family:var(--font-mono); font-size:10px; letter-spacing:0.04em; padding:7px 12px; min-width:62px; cursor:pointer; transition:all 140ms;
  border:1px solid var(--rule); border-radius:7px; background:var(--bg); color:var(--fg-soft); }
.pm-bm-btn:hover { color:var(--fg); border-color:var(--sv-ink-500,#353A45); }
.pm-bm-btn.on { background:color-mix(in srgb, var(--sv-coral) 16%, transparent); color:var(--sv-coral); border-color:color-mix(in srgb, var(--sv-coral) 45%, transparent); }

/* ---- asset map · layer toggle row (replaces checkbox) ---- */
.pi-layers .layer-list { gap:9px; }
.pm-lr { display:flex; align-items:center; gap:11px; padding:6px 5px; border-radius:5px; transition:background 130ms; cursor:default; }
.pm-lr:hover { background:var(--bg-elev-2); }
.pm-lr .ltg { width:28px; height:16px; border-radius:9px; border:1px solid var(--rule); background:var(--sv-ink-600,#262A33); cursor:pointer; padding:0; position:relative; flex:none; transition:background 200ms,border-color 200ms; }
.pm-lr .ltg .ptg-sw { display:none; }
.pm-lr .ltg::after { content:""; position:absolute; top:2px; left:2px; width:10px; height:10px; border-radius:50%; background:var(--fg-soft); transition:transform 200ms,background 200ms; }
.pm-lr .ltg.on { background:var(--sv-coral); border-color:var(--sv-coral); }
.pm-lr .ltg.on::after { transform:translateX(12px); background:#fff; }
.pm-ll { font-size:11px; color:var(--fg-soft); flex:1; line-height:1.3; }
.pm-lr.on .pm-ll { color:var(--fg); }
.pm-ll em { font-style:normal; color:var(--fg-mute); font-family:var(--font-mono); font-size:9.5px; }

/* ---- protocolo library · KPI strip + filter bar ---- */
.proto-kpis { display:grid; grid-template-columns:repeat(6, 1fr); gap:1px; background:var(--rule-soft); border:1px solid var(--rule); border-radius:var(--radius-lg,10px); overflow:hidden; margin-bottom:16px; }
@media (max-width:1100px) { .proto-kpis { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px)  { .proto-kpis { grid-template-columns:repeat(2,1fr); } }
.pk-c { background:var(--bg-elev); padding:12px 14px; display:flex; flex-direction:column; gap:5px; }
.pk-l { font-size:8.5px; letter-spacing:0.12em; color:var(--fg-mute); text-transform:uppercase; }
.pk-v { font-family:var(--font-display); font-weight:600; font-size:22px; line-height:1; letter-spacing:-0.02em; color:var(--fg); font-variant-numeric:tabular-nums; }
.pk-v small { font-size:10px; font-weight:500; color:var(--fg-mute); margin-left:5px; letter-spacing:0; }

.proto-lib-bar { display:flex; align-items:center; gap:14px; margin:14px 0 4px; flex-wrap:wrap; }
.proto-lib-bar .seg button { padding:7px 13px; font-size:10.5px; }
.proto-search { flex:1; min-width:200px; max-width:340px; display:flex; align-items:center; gap:9px; padding:7px 12px;
  background:var(--bg-elev); border:1px solid var(--rule); border-radius:6px; transition:border-color 150ms; }
.proto-search:focus-within { border-color:color-mix(in srgb, var(--sv-coral) 50%, transparent); }
.proto-search input { flex:1; background:none; border:none; outline:none; color:var(--fg); font-family:var(--font-body); font-size:12px; }
.proto-search input::placeholder { color:var(--fg-mute); }

/* ---- Alertas · subsection divider after home band ---- */
.alerts-sec { margin-top:24px; padding-top:24px; border-top:1px solid var(--rule); }

/* ---- home · cliente ---- */
.hc-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:16px; }
.hc-card { background:var(--bg-elev); border:1px solid var(--rule); border-radius:var(--radius-lg); padding:20px; border-top:3px solid var(--risk-low); }
.hc-card.warn { border-top-color:var(--sv-warn); }
.hc-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.hc-name { display:block; font-family:var(--font-display); font-size:17px; font-weight:600; letter-spacing:-0.01em; color:var(--fg); }
.hc-id { font-size:9px; letter-spacing:0.06em; color:var(--fg-mute); }
.hc-score { font-family:var(--font-display); font-weight:600; font-size:34px; line-height:1; letter-spacing:-0.03em; }
.hc-score small { font-size:13px; color:var(--fg-mute); }
.hc-rows { display:flex; flex-direction:column; }
.hc-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--rule-soft); font-size:13px; color:var(--fg-mid); }
.hc-row:last-child { border-bottom:none; }
.hc-actions { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }

/* selo pill */
.selo-pill { font-size:9px; letter-spacing:0.06em; padding:3px 9px; border-radius:10px; border:1px solid; text-transform:uppercase; }
.selo-pill.s-ativo { color:var(--risk-low); border-color:color-mix(in srgb, var(--risk-low) 45%, transparent); background:color-mix(in srgb, var(--risk-low) 8%, transparent); }
.selo-pill.s-elegivel { color:var(--sv-cyan); border-color:color-mix(in srgb, var(--sv-cyan) 45%, transparent); }
.selo-pill.s-suspenso { color:var(--sv-warn); border-color:color-mix(in srgb, var(--sv-warn) 45%, transparent); }
.selo-pill.s-bloqueado { color:var(--risk-critical); border-color:color-mix(in srgb, var(--risk-critical) 45%, transparent); }

/* ---- home · analista (work queue) ---- */
.wq-row { display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--rule-soft); cursor:pointer; transition:background 130ms; }
.wq-row:hover { background:var(--bg-elev-2); }
.wq-row:last-child { border-bottom:none; }
.wq-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.wq-main b { font-size:12.5px; font-weight:500; color:var(--fg); }
.wq-main .mono { font-size:9px; letter-spacing:0.06em; color:var(--fg-mute); text-transform:uppercase; }
.wq-go { color:var(--fg-mute); flex:none; }
.wq-row:hover .wq-go { color:var(--sv-coral); }

/* ---- home · gestor ---- */
.hg-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:14px; }
.hg-card { padding:16px; display:flex; flex-direction:column; gap:8px; }
.hg-card .gik-v { margin-top:2px; }
.hg-click { cursor:pointer; transition:border-color 150ms; }
.hg-click:hover { border-color:var(--sv-ink-500); }
.hg-note { font-size:9px; letter-spacing:0.05em; color:var(--fg-mute); text-transform:uppercase; display:inline-flex; align-items:center; gap:5px; }
.hg-dist { display:flex; flex-direction:column; gap:7px; margin-top:4px; }
.hg-bar { display:grid; grid-template-columns:16px 1fr 36px; align-items:center; gap:9px; }
.hg-bt { font-size:10px; color:var(--fg-soft); }
.hg-bp { font-size:10px; color:var(--fg-soft); text-align:right; }
.hg-track { height:6px; border-radius:3px; background:var(--sv-ink-600); overflow:hidden; }
.hg-track i { display:block; height:100%; border-radius:3px; transition:width 700ms cubic-bezier(.2,.7,.3,1); }

/* ---- alertas ---- */
.al-dot { width:8px; height:8px; border-radius:50%; flex:none; }
.al-dot.sev-alta { background:var(--risk-critical); animation:anom-pulse 1.6s infinite; }
.al-dot.sev-media { background:var(--sv-warn); }
.al-dot.sev-info { background:var(--fg-mute); }
.alert-row { display:flex; align-items:flex-start; gap:13px; padding:15px 18px; border-bottom:1px solid var(--rule-soft); }
.alert-row:last-child { border-bottom:none; }
.al-ico { width:30px; height:30px; flex:none; display:grid; place-items:center; border:1px solid var(--rule); border-radius:6px; color:var(--fg-soft); background:var(--bg); margin-top:2px; }
.al-main { flex:1; min-width:0; }
.al-t { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.al-t b { font-size:13.5px; font-weight:600; color:var(--fg); }
.al-sev { font-size:8px; letter-spacing:0.08em; padding:2px 7px; border-radius:4px; border:1px solid; }
.al-sev.sev-alta { color:var(--risk-critical); border-color:color-mix(in srgb, var(--risk-critical) 45%, transparent); }
.al-sev.sev-media { color:var(--sv-warn); border-color:color-mix(in srgb, var(--sv-warn) 45%, transparent); }
.al-sev.sev-info { color:var(--fg-mute); border-color:var(--rule); }
.al-desc { font-size:12px; color:var(--fg-soft); line-height:1.55; margin:5px 0 6px; max-width:72ch; }
.al-meta { font-size:8.5px; letter-spacing:0.07em; color:var(--fg-mute); }
.al-actions { display:flex; gap:7px; flex:none; align-self:center; }

/* thresholds */
.thr-panel { margin-bottom:16px; overflow:hidden; }
.thr-grid { padding:16px; display:grid; grid-template-columns:repeat(auto-fit, minmax(290px, 1fr)); gap:16px 28px; }
.thr-row { display:grid; grid-template-columns:1fr; gap:8px; }
.thr-l { font-size:12px; color:var(--fg-mid); }
.thr-v { font-size:11px; color:var(--sv-coral); }

/* ---- relatórios ---- */
.rp-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(330px, 1fr)); gap:14px; }
.rp-card { padding:16px; display:flex; flex-direction:column; gap:9px; }
.rp-top { display:flex; align-items:center; justify-content:space-between; }
.rp-status { font-size:8.5px; letter-spacing:0.1em; padding:3px 8px; border-radius:4px; border:1px solid; }
.rp-status.rascunho { color:var(--fg-soft); border-color:var(--rule); background:var(--bg); }
.rp-status.aprovado { color:var(--sv-warn); border-color:color-mix(in srgb, var(--sv-warn) 45%, transparent); }
.rp-status.publicado { color:var(--risk-low); border-color:color-mix(in srgb, var(--risk-low) 45%, transparent); }
.rp-date { font-size:9px; color:var(--fg-mute); letter-spacing:0.05em; }
.rp-title { font-size:14px; font-weight:600; color:var(--fg); letter-spacing:-0.01em; line-height:1.3; }
.rp-meta { font-size:8.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--fg-mute); }
.rp-actions { display:flex; gap:7px; flex-wrap:wrap; margin-top:4px; }
.rp-wait { font-size:9px; letter-spacing:0.05em; color:var(--fg-mute); align-self:center; }

/* ---- ENSO ---- */
.enso-wrap { margin-top:4px; }
.enso-top { display:grid; grid-template-columns:minmax(300px, 420px) 1fr; gap:16px; }
@media (max-width:1000px){ .enso-top { grid-template-columns:1fr; } }
.enso-phase { padding:18px; display:flex; flex-direction:column; gap:8px; }
.enso-fase { font-family:var(--font-display); font-weight:600; font-size:34px; letter-spacing:-0.02em; color:var(--sv-cyan); line-height:1; }
.enso-oni { display:flex; align-items:baseline; gap:8px; }
.enso-oni .mono { font-size:9px; letter-spacing:0.1em; color:var(--fg-mute); text-transform:uppercase; }
.enso-oni b { font-size:22px; }
.enso-scales { margin-bottom:12px; }
.enso-map { position:relative; border:1px solid var(--rule); border-radius:var(--radius); overflow:hidden; background:var(--bg-void); }
.enso-lock { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:9px;
  background:color-mix(in srgb, var(--bg-void) 55%, transparent); backdrop-filter:blur(2px); font-size:12px; color:var(--fg); }
.enso-map-cap { position:absolute; bottom:6px; left:8px; font-size:8px; letter-spacing:0.1em; color:var(--fg-soft); }
.enso-blocks { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:14px; margin-top:16px; }
.enso-block { padding:16px; border-top:2px solid var(--rule); }
.enso-block.tone-coral { border-top-color:var(--sv-coral); }
.enso-block.tone-warn { border-top-color:var(--sv-warn); }
.enso-block.tone-cyan { border-top-color:var(--sv-cyan); }
.eb-t { font-size:9px; letter-spacing:0.13em; text-transform:uppercase; color:var(--fg-mute); }
.enso-block p { font-size:12px; color:var(--fg-mid); line-height:1.6; margin:9px 0 0; }

/* ---- impactos econômicos ---- */
.econ-feed { display:flex; flex-direction:column; gap:14px; margin-top:4px; }
.econ-card { padding:18px; }
.ec-head { display:flex; align-items:center; gap:12px; margin-bottom:13px; flex-wrap:wrap; }
.ec-title { font-size:15px; font-weight:600; color:var(--fg); letter-spacing:-0.01em; }
.ec-evid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:10px; }
.ec-ev { display:flex; flex-direction:column; gap:4px; padding:10px 12px; border:1px solid var(--rule-soft); border-radius:var(--radius); background:var(--bg); }
.ec-src { font-size:8.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--sv-cyan); }
.ec-txt { font-size:11.5px; color:var(--fg-mid); line-height:1.45; }
.ec-foot { display:flex; gap:24px; flex-wrap:wrap; margin-top:13px; padding-top:12px; border-top:1px solid var(--rule-soft); }
.ec-sig, .ec-exp { display:flex; flex-direction:column; gap:3px; }
.ec-exp { cursor:pointer; }
.ec-exp:hover b { text-decoration:underline; }
.ec-sig .mono, .ec-exp .mono { font-size:8px; letter-spacing:0.1em; color:var(--fg-mute); }
.ec-sig b, .ec-exp b { font-size:15px; }
.ec-acao { display:flex; align-items:center; gap:9px; margin-top:13px; padding:10px 13px; border-radius:var(--radius);
  background:color-mix(in srgb, var(--sv-cyan) 6%, transparent); border:1px solid color-mix(in srgb, var(--sv-cyan) 18%, transparent); }
.ec-acao span { font-size:12px; color:var(--fg-mid); line-height:1.45; }

/* ---- selo / verify ---- */
.selo-block { border-top:1px solid var(--rule-soft); }
.selo-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.selo-why { font-size:11.5px; color:var(--fg-soft); }
.verify-panel { width:min(520px, 94vw); }
.vf-url { display:flex; align-items:center; gap:7px; font-size:10px; letter-spacing:0.04em; color:var(--fg-soft);
  background:var(--bg); border:1px solid var(--rule); border-radius:6px; padding:8px 11px; margin-bottom:12px; }
.vf-page { border:1px solid var(--rule); border-radius:var(--radius); overflow:hidden; background:var(--bg); }
.vf-head { display:flex; align-items:center; gap:11px; padding:14px; border-bottom:1px solid var(--rule-soft); }
.vf-mark { width:24px; height:24px; object-fit:contain; }
[data-theme="dark"] .vf-mark { filter:invert(1); }
.vf-head b { display:block; font-size:13px; color:var(--fg); }
.vf-head .mono { font-size:9px; color:var(--fg-mute); letter-spacing:0.05em; }
.vf-head > div { flex:1; }
.vf-evid { padding:6px 14px; }
.vf-ev { display:grid; grid-template-columns:24px 1fr auto; align-items:center; gap:9px; padding:8px 0; border-bottom:1px solid var(--rule-soft); }
.vf-ev:last-child { border-bottom:none; }
.vf-ev-t { font-size:11.5px; color:var(--fg-mid); }
.vf-ev-s { font-size:8.5px; color:var(--fg-mute); letter-spacing:0.04em; }
.vf-note { font-size:8.5px; letter-spacing:0.06em; color:var(--sv-coral); line-height:1.6; padding:10px 14px; margin:0; border-top:1px solid var(--rule-soft); }

/* ---- mini gauge in client cards + seal ---- */
.hc-gauge { width:64px; flex:none; }
.hc-gauge .sg-wrap { padding:0; }
.vf-seal { display:flex; align-items:center; gap:18px; padding:16px 14px; border-bottom:1px solid var(--rule-soft); }
.vf-seal .sg-wrap { width:118px; flex:none; padding:0; }
.vf-seal-meta { display:flex; flex-direction:column; gap:4px; }
.vf-seal-meta .mono { font-size:8.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--fg-mute); }
.vf-seal-meta b { font-size:14px; color:var(--fg); font-weight:600; }
.vf-seal-meta em { font-style:normal; font-size:9px; letter-spacing:0.04em; color:var(--fg-soft); }
.map-scope-banner { position:absolute; top:16px; left:50%; transform:translateX(-50%); z-index:8;
  font-size:9px; letter-spacing:0.1em; color:var(--fg); background:color-mix(in srgb, var(--bg-elev) 90%, transparent);
  backdrop-filter:blur(8px); border:1px solid color-mix(in srgb, var(--sv-coral) 40%, transparent);
  border-radius:20px; padding:7px 14px; display:flex; align-items:center; gap:8px; white-space:nowrap; }
.map-scope-banner .msb-dot { width:6px; height:6px; border-radius:50%; background:var(--sv-coral); }
