/* modules/vault/styles/vault.css · APENAS o que é exclusivo do Vault (badges de
   status/sigilo, fluxo CLM, timeline de versões, chip de usuário, layout de
   detalhe). O resto usa o design system do v28 (.adherence-card, .team-table,
   .stats-grid, .section-title, scope/section-tabs). Classes prefixadas `vlt-`. */

/* ── Badges de status / sigilo ───────────────────────────────────────────── */
.vlt-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 9px; border-radius:999px;
  font-size:11px; font-weight:600; line-height:1.6; white-space:nowrap; }
.vlt-badge--green   { background:#dcfce7; color:#166534; }   /* active/approved/signed */
.vlt-badge--amber   { background:#fef3c7; color:#92400e; }   /* review/pending/negotiation/monitoring */
.vlt-badge--blue    { background:#dbeafe; color:#1e40af; }   /* signing/info */
.vlt-badge--slate   { background:#e2e8f0; color:#475569; }   /* draft/archived */
.vlt-badge--red     { background:#fee2e2; color:#991b1b; }   /* expired/deleted/critical */
.vlt-badge--purple  { background:#ede9fe; color:#5b21b6; }   /* renewal */
/* sigilo */
.vlt-badge--public       { background:#e2e8f0; color:#475569; }
.vlt-badge--internal     { background:#dbeafe; color:#1e40af; }
.vlt-badge--confidential { background:#fed7aa; color:#9a3412; }
.vlt-badge--restricted   { background:#fee2e2; color:#991b1b; }

.vlt-retention-alert { color:#b91c1c; font-weight:600; font-size:12px; }

/* ── Chip de usuário (iniciais + nome) ───────────────────────────────────── */
.vlt-user { display:inline-flex; align-items:center; gap:7px; }
.vlt-user__ini { flex:0 0 24px; width:24px; height:24px; border-radius:50%; background:#1a365d; color:#fff;
  display:inline-flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; }

/* ── Fluxo CLM (9 estados) · horizontal, scroll no mobile ─────────────────── */
.vlt-clm { display:flex; align-items:flex-start; gap:0; overflow-x:auto; padding:8px 2px; }
.vlt-clm__step { flex:1 1 0; min-width:78px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; position:relative; }
.vlt-clm__circle { width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:700; border:2px solid #cbd5e0; background:#fff; color:#94a3b8; z-index:1; }
.vlt-clm__label { font-size:10.5px; color:#64748b; line-height:1.15; }
.vlt-clm__date  { font-size:9.5px; color:#94a3b8; }
.vlt-clm__step::before { content:''; position:absolute; top:15px; left:-50%; width:100%; height:2px; background:#e2e8f0; z-index:0; }
.vlt-clm__step:first-child::before { display:none; }
.vlt-clm__step--done .vlt-clm__circle { background:#16a34a; border-color:#16a34a; color:#fff; }
.vlt-clm__step--done::before { background:#16a34a; }
.vlt-clm__step--current .vlt-clm__circle { background:#1a365d; border-color:#1a365d; color:#fff; box-shadow:0 0 0 4px rgba(26,54,93,.15); }

/* ── Timeline de versões / eventos ───────────────────────────────────────── */
.vlt-timeline { position:relative; padding-left:22px; }
.vlt-timeline__item { position:relative; padding:0 0 16px 0; }
.vlt-timeline__item::before { content:''; position:absolute; left:-16px; top:4px; width:10px; height:10px; border-radius:50%;
  background:#1a365d; box-shadow:0 0 0 3px #fff; }
.vlt-timeline__item::after { content:''; position:absolute; left:-12px; top:14px; bottom:0; width:2px; background:#e2e8f0; }
.vlt-timeline__item:last-child::after { display:none; }
.vlt-timeline__head { font-weight:600; font-size:13px; color:#1e293b; }
.vlt-timeline__meta { font-size:11.5px; color:#64748b; }

/* ── Layout de detalhe (viewer + painel) · empilha no mobile ─────────────── */
.vlt-split { display:grid; grid-template-columns:1.6fr 1fr; gap:16px; align-items:start; }
.vlt-viewer { background:#f1f5f9; border:1px solid #e2e8f0; border-radius:10px; min-height:320px;
  display:flex; align-items:center; justify-content:center; color:#94a3b8; font-size:13px; }
.vlt-info { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; }
.vlt-info__label { font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:#94a3b8; font-weight:600; }
.vlt-info__value { font-size:13px; color:#1e293b; font-weight:500; }

/* ── Grid genérico de cards (templates, risco, partes) ───────────────────── */
.vlt-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; }

/* ── Busca ───────────────────────────────────────────────────────────────── */
.vlt-searchbar { display:flex; align-items:center; gap:10px; border:1.5px solid #cbd5e0; border-radius:10px;
  padding:10px 14px; background:#fff; transition:border-color .15s; }
.vlt-searchbar:focus-within { border-color:#1a365d; }
.vlt-searchbar__icon { color:#94a3b8; flex:0 0 auto; display:flex; }
.vlt-searchbar input { border:0; outline:0; flex:1; font-size:15px; background:transparent; color:#1e293b; }
.vlt-segmented { display:inline-flex; border:1px solid #cbd5e0; border-radius:8px; overflow:hidden; }
.vlt-seg { border:0; background:#fff; padding:6px 14px; font-size:13px; color:#64748b; cursor:pointer; }
.vlt-seg + .vlt-seg { border-left:1px solid #cbd5e0; }
.vlt-seg.is-active { background:#1a365d; color:#fff; font-weight:600; }
.vlt-results { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.vlt-result { text-align:left; width:100%; background:#fff; border:1px solid #e2e8f0; border-radius:10px;
  padding:14px 16px; cursor:pointer; transition:box-shadow .15s, border-color .15s; }
.vlt-result:hover { border-color:#1a365d; box-shadow:0 2px 10px rgba(15,23,42,.06); }
.vlt-result__top { display:flex; align-items:center; gap:8px; }
.vlt-result__icon { color:#1a365d; display:flex; }
.vlt-result__title { font-weight:600; color:#1e293b; font-size:14px; flex:1; }
.vlt-result__rel { flex:0 0 auto; display:flex; align-items:center; gap:6px; }
.vlt-relbar { display:inline-block; width:56px; height:6px; border-radius:3px; background:#e2e8f0; overflow:hidden; }
.vlt-relbar span { display:block; height:100%; background:#1a365d; }
.vlt-relpct { font-size:11px; font-weight:700; color:#1a365d; }
.vlt-excerpt { margin:8px 0; font-size:13px; color:#475569; line-height:1.5; }
.vlt-mark { background:#fef08a; color:#713f12; padding:0 2px; border-radius:2px; }
.vlt-result__meta { display:flex; align-items:center; gap:8px; }
.vlt-result__cat { font-size:11px; color:#94a3b8; text-transform:capitalize; }

/* ── Templates & cláusulas ───────────────────────────────────────────────── */
.vlt-tplcard__icon { color:#1a365d; margin-bottom:6px; }
.vlt-fields { display:flex; flex-wrap:wrap; gap:5px; }
.vlt-field { font-size:10.5px; font-family:ui-monospace,monospace; background:#eef2f7; color:#475569;
  padding:2px 7px; border-radius:5px; }
.vlt-clauses { display:flex; flex-direction:column; }
.vlt-clause { padding:14px 0; border-bottom:1px solid #eef2f7; }
.vlt-clause:last-child { border-bottom:0; }
.vlt-clause__head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.vlt-clause__head strong { font-size:14px; color:#1e293b; }
.vlt-clause__badges { display:flex; gap:6px; margin-left:auto; }
.vlt-clause__text { margin:8px 0; font-size:13px; color:#475569; line-height:1.55; }
.vlt-clause__foot { display:flex; align-items:center; justify-content:space-between; font-size:11.5px; color:#94a3b8; }

/* ── Barras horizontais (relatórios / risco) ─────────────────────────────── */
.vlt-bar-row { display:flex; align-items:center; gap:10px; margin:7px 0; }
.vlt-bar-row__label { flex:0 0 38%; font-size:12px; color:#475569; text-transform:capitalize;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vlt-bar { flex:1; height:8px; background:#eef2f7; border-radius:4px; overflow:hidden; }
.vlt-bar span { display:block; height:100%; background:#1a365d; border-radius:4px; }
.vlt-bar-row__val { flex:0 0 auto; font-size:12px; font-weight:700; color:#1e293b; min-width:24px; text-align:right; }

/* ── Medidor de risco (gauge) ────────────────────────────────────────────── */
.vlt-gauge { flex:0 0 auto; width:56px; height:56px; border-radius:50%;
  background:conic-gradient(var(--c,#1a365d) calc(var(--p,0)*1%), #e2e8f0 0); display:flex;
  align-items:center; justify-content:center; }
.vlt-gauge span { width:42px; height:42px; border-radius:50%; background:#fff; display:flex;
  align-items:center; justify-content:center; font-size:14px; font-weight:700; color:#1e293b; }
.vlt-riskcard { display:flex; align-items:center; gap:14px; }

/* ── Partes do contrato ──────────────────────────────────────────────────── */
.vlt-party { border:1px solid #e2e8f0; border-radius:10px; padding:12px 14px; }
.vlt-party__role { font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:#1a365d; font-weight:700; }
.vlt-party__name { font-weight:600; font-size:13.5px; color:#1e293b; margin:3px 0; }
.vlt-party__meta { font-size:11.5px; color:#64748b; }

/* ── Categorias (admin) ──────────────────────────────────────────────────── */
.vlt-cat { padding:11px 0; border-bottom:1px solid #eef2f7; }
.vlt-cat:last-child { border-bottom:0; }
.vlt-cat__head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.vlt-cat__subs { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }

/* ── Comentários (detalhe do documento) ──────────────────────────────────── */
.vlt-comments { display:flex; flex-direction:column; gap:10px; }
.vlt-comment { background:#f8fafc; border:1px solid #eef2f7; border-radius:9px; padding:10px 12px; }
.vlt-comment--reply { margin-left:24px; background:#fff; }
.vlt-comment__head { display:flex; align-items:center; gap:8px; }
.vlt-comment__text { margin:6px 0 0; font-size:13px; color:#475569; line-height:1.5; }
.vlt-comment-compose { display:flex; gap:8px; margin-top:12px; align-items:flex-start; }
.vlt-comment-compose .filter-select { flex:1; min-width:0; resize:vertical; }

/* ── Toolbar / barras de ação / filtros ──────────────────────────────────── */
.vlt-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.vlt-toolbar--back { justify-content:flex-start; }
.vlt-toolbar--back .hist-toolbar-title { margin:0; }
.vlt-filters { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.vlt-filters__search { flex:1; min-width:180px; }
.vlt-actions { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }
.vlt-mt-12 { margin-top:12px; }
.vlt-btn-back { padding:4px 10px; }
.vlt-btn-primary { background:#1a365d; color:#fff; border-color:#1a365d; }

/* ── Dashboard · linhas de contrato a vencer / alertas ───────────────────── */
.vlt-cards-2col { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:16px; }
.vlt-row { display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:8px 0; border-bottom:1px solid #eef2f7; }
.vlt-row__main { min-width:0; }
.vlt-row__title { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vlt-row__sub { font-size:12px; color:#64748b; }
.vlt-row__side { text-align:right; flex:0 0 auto; }
.vlt-row__when { font-size:12px; color:#64748b; }
.vlt-row__when--urgent { color:#b91c1c; font-weight:600; }
.vlt-alert { display:flex; gap:10px; padding:8px 0; border-bottom:1px solid #eef2f7; }
.vlt-alert__bar { flex:0 0 4px; align-self:stretch; border-radius:2px; }
.vlt-alert__body { min-width:0; }
.vlt-alert__desc { font-size:12px; color:#64748b; }
.vlt-alert--danger .vlt-alert__bar, .vlt-alert--danger .vlt-alert__title { background-color:transparent; }
.vlt-alert--danger .vlt-alert__bar { background:#b91c1c; }
.vlt-alert--danger .vlt-alert__title { color:#b91c1c; }
.vlt-alert--warning .vlt-alert__bar { background:#b45309; }
.vlt-alert--warning .vlt-alert__title { color:#b45309; }
.vlt-alert--info .vlt-alert__bar { background:#1e40af; }
.vlt-alert--info .vlt-alert__title { color:#1e40af; }

@media (max-width: 768px) {
  .vlt-split { grid-template-columns:1fr; }
  .vlt-clause__badges { margin-left:0; }
  .vlt-bar-row__label { flex-basis:44%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   FASE A · CAMADA DE UX SOTA (mobile-first). Tudo prefixado vlt-; aditivo.
   Base = telefone (empilhado); refina em min-width. Accent = #1a365d (do sistema).
   ═══════════════════════════════════════════════════════════════════════════ */

/* Botão de link discreto (usado em selo de integridade, entidades, smart folders) */
.vlt-link-btn { border:0; background:transparent; color:#1a365d; cursor:pointer; font-weight:600;
  padding:3px 6px; border-radius:7px; font-size:inherit; transition:background .12s; }
.vlt-link-btn:hover { background:#eef2f7; }
.vlt-link-btn:focus-visible { outline:2px solid #1a365d55; outline-offset:1px; }

/* ── Object Header: o documento como OBJETO governável (ficha SOTA) ────────── */
.vlt-objhead { background:linear-gradient(180deg,#ffffff,#fbfdff); border:1px solid #e8edf3; border-radius:16px;
  padding:16px; box-shadow:0 1px 2px rgba(15,23,42,.04), 0 10px 28px -16px rgba(15,23,42,.16); margin-bottom:14px; }
.vlt-objhead__top { display:flex; align-items:flex-start; gap:12px; }
.vlt-objhead__icon { flex:0 0 auto; width:42px; height:42px; border-radius:12px; display:flex; align-items:center;
  justify-content:center; background:linear-gradient(135deg,#1a365d,#2B6394); color:#fff;
  box-shadow:0 6px 14px -6px rgba(26,54,93,.55); }
.vlt-objhead__main { min-width:0; flex:1; }
.vlt-objhead__crumb { font-size:11.5px; color:#94a3b8; display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-bottom:2px; }
.vlt-objhead__crumb button { border:0; background:transparent; color:#64748b; cursor:pointer; padding:0; font-size:inherit; }
.vlt-objhead__crumb button:hover { color:#1a365d; text-decoration:underline; }
.vlt-objhead__title { font-size:18px; font-weight:680; color:#0f172a; line-height:1.22; letter-spacing:-.01em;
  margin:0; overflow-wrap:anywhere; }
.vlt-objhead__pills { display:flex; gap:6px; flex-wrap:wrap; margin-top:9px; align-items:center; }
.vlt-objhead__actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:13px; padding-top:13px; border-top:1px solid #eef2f7; }
.vlt-objhead__actions .admin-btn { flex:1 1 auto; justify-content:center; min-width:128px; }

/* Faixa de REVISÃO/FLUXO — preserva o conceito de CAIXA de aprovação (proeminente) */
.vlt-flowbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:11px;
  padding:9px 12px; border-radius:11px; background:#f8fafc; border:1px solid #eef2f7; }
.vlt-flowbar__dot { width:9px; height:9px; border-radius:50%; flex:0 0 auto; }
.vlt-flowbar__label { font-size:12px; color:#475569; font-weight:600; }
.vlt-flowbar__note { font-size:12px; color:#94a3b8; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vlt-flowbar--in_review { background:#fffbeb; border-color:#fde68a; }
.vlt-flowbar--approved { background:#ecfdf5; border-color:#a7f3d0; }
.vlt-flowbar--rejected, .vlt-flowbar--changes_requested { background:#fef2f2; border-color:#fecaca; }

/* Pills suaves (tipo/status/criticidade/selo) */
.vlt-pill { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px;
  font-size:11.5px; font-weight:600; background:#f1f5f9; color:#475569; border:1px solid transparent; white-space:nowrap; }
.vlt-pill svg { width:13px; height:13px; }
.vlt-pill--seal { background:#ecfdf5; color:#047857; border-color:#a7f3d0; cursor:pointer; }
.vlt-pill--seal:hover { background:#d1fae5; }
.vlt-pill--unsealed { background:#f8fafc; color:#94a3b8; }
.vlt-pill--pii { background:#f5f3ff; color:#6d28d9; border-color:#ddd6fe; }

/* Seções de metadados rotuladas (Identificação / Governança / Taxonomia) */
.vlt-section-label { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#1a365d;
  margin:16px 0 9px; display:flex; align-items:center; gap:8px; }
.vlt-section-label::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,#e2e8f0,transparent); }
.vlt-section-label:first-child { margin-top:0; }
.vlt-chips { display:flex; flex-wrap:wrap; gap:6px; }

/* Skeleton shimmer (carregamento elegante) */
.vlt-skel { background:linear-gradient(90deg,#eef2f7 25%,#f6f8fb 37%,#eef2f7 63%); background-size:400% 100%;
  animation:vlt-shimmer 1.4s ease infinite; border-radius:8px; }
.vlt-skel-row { height:14px; margin:9px 0; }
@keyframes vlt-shimmer { 0%{background-position:100% 0} 100%{background-position:-100% 0} }
@media (prefers-reduced-motion: reduce) { .vlt-skel { animation:none; } }

/* ── Command Palette (⌘K) — descoberta universal (mobile-first: quase tela cheia) ── */
.vlt-cmdk-backdrop { position:fixed; inset:0; background:rgba(15,23,42,.45); z-index:9000; display:flex;
  align-items:flex-start; justify-content:center; padding:10vh 12px 12px; animation:vlt-fade .12s ease; }
@supports (backdrop-filter:blur(2px)) { .vlt-cmdk-backdrop { backdrop-filter:blur(3px); } }
.vlt-cmdk { width:min(640px,100%); background:#fff; border-radius:16px; overflow:hidden;
  box-shadow:0 24px 64px -16px rgba(15,23,42,.5); animation:vlt-pop .14s cubic-bezier(.2,.8,.2,1); display:flex; flex-direction:column; }
.vlt-cmdk__in { display:flex; align-items:center; gap:10px; padding:13px 16px; border-bottom:1px solid #eef2f7; }
.vlt-cmdk__in svg { color:#94a3b8; flex:0 0 auto; }
.vlt-cmdk__in input { flex:1; border:0; outline:0; font-size:16px; color:#0f172a; background:transparent; min-width:0; }
.vlt-cmdk__list { overflow:auto; padding:8px; max-height:60vh; -webkit-overflow-scrolling:touch; }
.vlt-cmdk__group { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#94a3b8; padding:9px 10px 4px; }
.vlt-cmdk__item { display:flex; align-items:center; gap:11px; padding:10px 11px; border-radius:10px; cursor:pointer; }
.vlt-cmdk__item.is-active { background:#f1f5f9; }
.vlt-cmdk__item .ic { width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  background:#eef2f7; color:#1a365d; flex:0 0 auto; }
.vlt-cmdk__item .tx { min-width:0; flex:1; }
.vlt-cmdk__item .tt { font-size:14px; font-weight:600; color:#1e293b; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vlt-cmdk__item .sb { font-size:11.5px; color:#94a3b8; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vlt-cmdk__empty { padding:26px 16px; text-align:center; color:#94a3b8; font-size:13px; }
.vlt-cmdk__foot { display:flex; gap:14px; padding:9px 16px; border-top:1px solid #eef2f7; font-size:11px; color:#94a3b8; flex-wrap:wrap; }
.vlt-kbd { font:600 11px ui-monospace,monospace; background:#f1f5f9; border:1px solid #e2e8f0; border-bottom-width:2px;
  border-radius:6px; padding:1px 6px; color:#64748b; }
.vlt-cmdk-trigger { display:inline-flex; align-items:center; gap:8px; }
@keyframes vlt-fade { from{opacity:0} }
@keyframes vlt-pop { from{opacity:0; transform:translateY(-8px) scale(.985)} }

/* ── Drawer / bottom-sheet (editor de metadados etc.) ─────────────────────────
   Mobile-first: sobe de baixo (bottom-sheet, cantos arredondados, alça). Desktop: lateral à direita. */
.vlt-drawer-backdrop { position:fixed; inset:0; background:rgba(15,23,42,.42); z-index:8500; display:flex;
  align-items:flex-end; justify-content:center; animation:vlt-fade .12s ease; }
@supports (backdrop-filter:blur(2px)) { .vlt-drawer-backdrop { backdrop-filter:blur(2px); } }
.vlt-drawer { background:#fff; width:100%; max-height:88vh; border-radius:18px 18px 0 0; display:flex; flex-direction:column;
  box-shadow:0 -12px 40px -12px rgba(15,23,42,.4); animation:vlt-sheet-up .2s cubic-bezier(.2,.8,.2,1); }
.vlt-drawer__grip { width:38px; height:4px; border-radius:999px; background:#cbd5e1; margin:9px auto 2px; flex:0 0 auto; }
.vlt-drawer__head { display:flex; align-items:flex-start; gap:10px; padding:8px 18px 12px; border-bottom:1px solid #eef2f7; }
.vlt-drawer__title { font-size:16px; font-weight:680; color:#0f172a; margin:0; line-height:1.25; }
.vlt-drawer__sub { font-size:12px; color:#94a3b8; margin-top:2px; }
.vlt-drawer__x { margin-left:auto; border:0; background:#f1f5f9; color:#475569; width:30px; height:30px; border-radius:9px;
  cursor:pointer; font-size:17px; line-height:1; flex:0 0 auto; }
.vlt-drawer__x:hover { background:#e2e8f0; }
.vlt-drawer__body { padding:16px 18px; overflow:auto; -webkit-overflow-scrolling:touch; }
.vlt-drawer__foot { padding:12px 18px; border-top:1px solid #eef2f7; display:flex; gap:10px; flex-wrap:wrap; }
.vlt-drawer__foot .admin-btn { flex:1 1 auto; justify-content:center; min-width:120px; }
@keyframes vlt-sheet-up { from{ transform:translateY(100%); } }
@keyframes vlt-sheet-right { from{ transform:translateX(100%); } }
@media (min-width:720px) {
  .vlt-drawer-backdrop { align-items:stretch; justify-content:flex-end; }
  .vlt-drawer { width:min(460px,92vw); max-height:none; height:100%; border-radius:0; animation-name:vlt-sheet-right;
    box-shadow:-12px 0 40px -12px rgba(15,23,42,.35); }
  .vlt-drawer__grip { display:none; }
  .vlt-drawer__foot .admin-btn { flex:0 0 auto; min-width:0; }
}

/* Form do drawer (campos rotulados, grid responsivo) */
.vlt-form-grid { display:grid; grid-template-columns:1fr; gap:0 14px; }
@media (min-width:520px) { .vlt-form-grid { grid-template-columns:1fr 1fr; } }
.vlt-form-fld { margin-bottom:12px; }
.vlt-form-fld > label { display:block; font-size:12px; color:#64748b; margin-bottom:4px; font-weight:600; }
.vlt-form-fld .admin-input, .vlt-form-fld select { width:100%; }
.vlt-form-checks { display:flex; gap:18px; flex-wrap:wrap; margin:2px 0 12px; }
.vlt-form-checks label { font-size:13px; display:flex; align-items:center; gap:7px; color:#334155; }

/* ── Viewer real (preview de documento) ───────────────────────────────────── */
.vlt-viewer { position:relative; padding:0; overflow:hidden; }
.vlt-viewer__frame { width:100%; height:min(70vh,560px); border:0; display:block; background:#f8fafc; }
.vlt-viewer__img { width:100%; max-height:min(70vh,560px); object-fit:contain; display:block; background:#0f172a; }
.vlt-viewer__text { margin:0; width:100%; max-height:min(70vh,560px); overflow:auto; padding:14px 16px; font:12.5px/1.55 ui-monospace,monospace;
  color:#334155; background:#fbfdff; white-space:pre-wrap; word-break:break-word; }
.vlt-viewer__ph { min-height:240px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  color:#94a3b8; font-size:13px; text-align:center; padding:20px; }
.vlt-viewer__toolbar { display:flex; align-items:center; gap:8px; padding:9px 12px; border-bottom:1px solid #eef2f7; background:#fff; position:relative; z-index:4; }
.vlt-viewer__name { font-size:12.5px; color:#475569; font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Marca d'água — tile diagonal por cima do conteúdo sensível (não intercepta cliques). */
.vlt-viewer__wm { position:absolute; inset:0; pointer-events:none; z-index:3; background-repeat:repeat; }
/* Redação visual sobre imagem (tarjas) + modo desenho. */
.vlt-viewer__imgwrap { position:relative; display:block; }
.vlt-viewer__imgwrap .vlt-viewer__img { width:100%; height:auto; max-height:none; display:block; }
.vlt-viewer__redlayer { position:absolute; inset:0; pointer-events:none; z-index:2; }
.vlt-redbox { position:absolute; background:#111827; outline:1px solid #000; }
.vlt-redbox--draft { background:rgba(17,24,39,.45); }
.vlt-redbox__x { position:absolute; top:-9px; right:-9px; width:18px; height:18px; border-radius:50%; background:#dc2626;
  color:#fff; border:0; cursor:pointer; font-size:12px; line-height:1; pointer-events:auto; }
.vlt-viewer__redtoggle.is-on { background:#1a365d; color:#fff; border-color:#1a365d; }

/* ── Designer VISUAL (canvas de grafo de fluxo) — nós arrastáveis + setas SVG. Lista = fallback mobile. ── */
.vlt-canvas { position:relative; overflow:auto; -webkit-overflow-scrolling:touch; background:#fbfdff;
  background-image:radial-gradient(#e2e8f0 1px, transparent 1px); background-size:18px 18px;
  border:1px solid #e8edf3; border-radius:12px; height:46vh; min-height:300px; touch-action:none; }
.vlt-canvas__inner { position:relative; }
.vlt-edges { position:absolute; inset:0; pointer-events:none; overflow:visible; }
.vlt-node { position:absolute; width:150px; box-sizing:border-box; background:#fff; border:1.5px solid #cbd5e1;
  border-radius:11px; padding:9px 11px; box-shadow:0 2px 8px -3px rgba(15,23,42,.18); cursor:grab; user-select:none; }
.vlt-node.is-sel { border-color:#1a365d; box-shadow:0 0 0 3px #1a365d22; }
.vlt-node.is-drag { cursor:grabbing; z-index:6; }
.vlt-node__t { font-size:13px; font-weight:650; color:#1e293b; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vlt-node__ty { font-size:10px; color:#94a3b8; text-transform:uppercase; letter-spacing:.03em; margin-top:1px; }
.vlt-node--start { border-left:4px solid #16a34a; }
.vlt-node--approval { border-left:4px solid #d97706; }
.vlt-node--end { border-left:4px solid #64748b; }
.vlt-node__conn { position:absolute; right:-10px; top:50%; transform:translateY(-50%); width:20px; height:20px;
  border-radius:50%; background:#1a365d; color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:13px; line-height:1; cursor:crosshair; border:2px solid #fff; }
.vlt-canvas.is-connecting { cursor:crosshair; }
.vlt-canvas.is-connecting .vlt-node { cursor:crosshair; }
.vlt-designer-bar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:10px; }
.vlt-seledit { border:1px solid #e8edf3; border-radius:12px; padding:12px 14px; margin-top:12px; background:#fff; }

/* ── Compartilhamento por link (lista no drawer) ──────────────────────────── */
.vlt-share { display:flex; gap:8px; align-items:flex-start; padding:10px 0; border-bottom:1px solid #f1f5f9; }
.vlt-share:last-child { border-bottom:0; }
.vlt-share__url { font-size:12px; font-family:ui-monospace,monospace; }
.vlt-share__meta { font-size:11px; color:#94a3b8; margin-top:3px; }

/* ── Banner de Política + read-receipt (ciência) — mobile-first (empilha; alinha em linha no desktop) ── */
.vlt-policy { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:11px 14px; border-radius:12px;
  margin-bottom:14px; border:1px solid #e8edf3; background:#fbfdff; }
.vlt-policy__ic { font-size:18px; flex:0 0 auto; }
.vlt-policy__tx { font-size:13px; font-weight:600; color:#1e293b; }
.vlt-policy__sub { font-size:12px; color:#64748b; flex-basis:100%; }
.vlt-policy--pending { background:#fffbeb; border-color:#fde68a; }
.vlt-policy--done { background:#ecfdf5; border-color:#a7f3d0; }
.vlt-policy--neutral { background:#f8fafc; border-color:#e8edf3; }
.vlt-policy .admin-btn { flex:0 0 auto; }

/* ── Lista: ações em lote + arrastar-soltar + ordenação (paridade DMS comercial) ─────────────── */
.vlt-bulkbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:9px 12px; margin-bottom:10px;
  border-radius:10px; background:#eff6ff; border:1px solid #bfdbfe; }
.vlt-bulkbar__n { font-size:13px; font-weight:600; color:#1e40af; }
.vlt-bulkbar .admin-btn { padding:4px 12px; }
.vlt-th-sort:hover { color:#1a365d; }
.vlt-droptarget { position:relative; }
.vlt-droptarget.is-dragover { outline:2px dashed #1a365d; outline-offset:-6px; background:#f8fbff; }
.vlt-dropmsg { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; background:rgba(248,251,255,.72); color:#1a365d; font-size:15px; font-weight:600; border-radius:8px; z-index:5;
  pointer-events:none; outline:2px dashed #1a365d; outline-offset:-8px; }
/* SÓ aparece durante o arraste — sem esta regra, o display:flex acima venceria o atributo [hidden]
   do navegador e o aviso cobriria a lista permanentemente (impedindo de ver os arquivos). */
.vlt-dropmsg[hidden] { display:none; }
.vlt-rowsel { width:16px; height:16px; cursor:pointer; }
/* Visão em GRADE (cartões) */
.vlt-docgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; margin-top:4px; }
.vlt-doccard { position:relative; border:1px solid #e8edf3; border-radius:12px; padding:14px 14px 12px; background:#fff; cursor:pointer;
  box-shadow:0 1px 2px rgba(15,23,42,.04); transition:box-shadow .12s, border-color .12s; outline:none; }
.vlt-doccard:hover { border-color:#1a365d55; box-shadow:0 4px 14px -6px rgba(15,23,42,.18); }
.vlt-doccard:focus-visible { border-color:#1a365d; box-shadow:0 0 0 3px #1a365d22; }
.vlt-doccard.is-sel { border-color:#1a365d; background:#eff6ff; }
.vlt-doccard__sel { position:absolute; top:10px; right:10px; }
.vlt-doccard__ic { width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:#eef2f7; color:#1a365d; margin-bottom:8px; }
.vlt-doccard__t { font-size:13.5px; font-weight:650; color:#1e293b; line-height:1.3; max-height:2.6em; overflow:hidden; }
.vlt-doccard__meta { font-size:11.5px; color:#94a3b8; margin-top:3px; }
.vlt-doccard__badges { display:flex; gap:5px; flex-wrap:wrap; margin:8px 0 6px; }
.vlt-doccard__foot { font-size:11px; color:#64748b; border-top:1px solid #f1f5f9; padding-top:7px; }
/* Menu de contexto (botão direito) */
.vlt-ctxmenu { position:fixed; z-index:9500; background:#fff; border:1px solid #e2e8f0; border-radius:10px; min-width:160px;
  box-shadow:0 12px 32px -8px rgba(15,23,42,.35); padding:5px; }
.vlt-ctxmenu button { display:block; width:100%; text-align:left; border:0; background:transparent; padding:8px 11px; border-radius:7px;
  font-size:13px; color:#1e293b; cursor:pointer; }
.vlt-ctxmenu button:hover { background:#f1f5f9; }
/* Viewer: permite zoom (overflow rolável quando o conteúdo cresce) */
.vlt-viewer { overflow:auto; }
.vlt-viewer__img { transition:transform .12s ease; }

/* ── KPIs de Analíticos (Camada 6) — grid responsivo (mobile-first: 2 col → 5 col) ──────────── */
.vlt-kpis { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:14px; }
@media (min-width:560px) { .vlt-kpis { grid-template-columns:repeat(5,1fr); } }
.vlt-kpi { background:#fbfdff; border:1px solid #e8edf3; border-radius:11px; padding:11px 12px; text-align:center; }
.vlt-kpi__v { font-size:18px; font-weight:700; color:#0f172a; line-height:1.1; }
.vlt-kpi__l { font-size:10.5px; color:#94a3b8; text-transform:uppercase; letter-spacing:.03em; margin-top:3px; }

/* ── Gerenciador de Tags (taxonomia governada · cor por depto) ────────────── */
.vlt-vocab { border:1px solid #e8edf3; border-radius:12px; margin-bottom:10px; overflow:hidden; background:#fff; }
.vlt-vocab__head { display:flex; align-items:center; gap:10px; padding:12px 14px; cursor:pointer; }
.vlt-vocab__head:hover { background:#f8fafc; }
.vlt-vocab__name { font-weight:650; color:#1e293b; font-size:14px; }
.vlt-vocab__count { font-size:11.5px; color:#94a3b8; }
.vlt-vocab__sys { font-size:10px; }
.vlt-vocab__chev { margin-left:auto; color:#94a3b8; transition:transform .15s; }
.vlt-vocab.is-open .vlt-vocab__chev { transform:rotate(90deg); }
.vlt-vocab__body { border-top:1px solid #eef2f7; padding:12px 14px; }
.vlt-term { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #f1f5f9; }
.vlt-term:last-child { border-bottom:0; }
.vlt-term__swatch { width:18px; height:18px; border-radius:6px; flex:0 0 auto; border:1px solid rgba(15,23,42,.15); cursor:pointer; }
.vlt-term__label { font-size:13.5px; color:#1e293b; font-weight:500; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vlt-term__code { font:11px ui-monospace,monospace; color:#94a3b8; }
.vlt-term--deprecated .vlt-term__label { text-decoration:line-through; color:#94a3b8; }
.vlt-term__actions { margin-left:auto; display:flex; gap:4px; flex:0 0 auto; }
.vlt-term-add { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; align-items:center; }
.vlt-swatches { display:flex; gap:6px; flex-wrap:wrap; }
.vlt-swatch-pick { width:26px; height:26px; border-radius:7px; cursor:pointer; border:2px solid transparent; }
.vlt-swatch-pick.is-on { border-color:#0f172a; box-shadow:0 0 0 2px #fff inset; }

/* Refinos de interação (toque-amigável + foco visível) */
.vlt-result:focus-visible, .team-table tr[data-doc]:focus-visible { outline:2px solid #1a365d66; outline-offset:2px; }
.vlt-seg { transition:background .12s, color .12s; }
.vlt-facet { transition:background .12s, border-color .12s; }
.vlt-facet:hover { background:#e2e8f0; }

/* ── Tira de LENTES do Acervo (Documentos | Contratos | Dossiês | Busca) ───── */
.vlt-lens { display:flex; gap:4px; overflow-x:auto; padding:2px 0 10px; margin-bottom:2px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.vlt-lens::-webkit-scrollbar { display:none; }
.vlt-lens__tab { flex:0 0 auto; padding:7px 14px; border:1px solid #e2e8f0; background:#fff; border-radius:999px; cursor:pointer;
  font-size:13.5px; color:#475569; font-weight:500; white-space:nowrap; transition:background .12s, color .12s, border-color .12s; }
.vlt-lens__tab:hover { background:#f1f5f9; }
.vlt-lens__tab.is-active { background:#1a365d; color:#fff; border-color:#1a365d; }

/* ── Ficha: menus de ação agrupados (Fluxo/Editar/Governança/IA) + sub-seções das abas compostas ─ */
.vlt-actgrp { position:relative; display:inline-flex; }
.vlt-actgrp__trigger { white-space:nowrap; }
.vlt-actgrp__panel { position:absolute; top:calc(100% + 4px); left:0; z-index:30; background:#fff; border:1px solid #e2e8f0;
  border-radius:10px; box-shadow:0 12px 30px -10px rgba(15,23,42,.28); padding:6px; min-width:210px; display:flex; flex-direction:column; gap:4px; }
.vlt-actgrp__panel[hidden] { display:none; }
.vlt-actgrp__panel .admin-btn { width:100%; justify-content:flex-start; flex:0 0 auto; min-width:0; }
.vlt-subsec--gap { margin-top:18px; padding-top:16px; border-top:1px dashed #e5e9f0; }
@media (max-width:560px) {
  .vlt-actgrp { display:flex; }
  .vlt-actgrp__panel { left:0; right:0; min-width:0; }
}

/* ── Refino do detalhe em telas maiores ───────────────────────────────────── */
@media (min-width: 720px) {
  .vlt-objhead { padding:20px 22px; }
  .vlt-objhead__icon { width:46px; height:46px; }
  .vlt-objhead__title { font-size:21px; }
  .vlt-objhead__actions .admin-btn { flex:0 0 auto; min-width:0; }
}

/* ── Fase A · Smart folders (visões salvas) + trilho de facetas ─────────────────────────── */
.vlt-views { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 10px 14px 0; }
.vlt-view-chip { display: inline-flex; align-items: center; gap: 6px; background: #f1f5f9; border: 1px solid #e2e8f0;
  border-radius: 999px; padding: 4px 12px; font-size: 12.5px; font-weight: 600; color: #334155; cursor: pointer; user-select: none; }
.vlt-view-chip:hover { background: #e8eef6; }
.vlt-view-chip.is-active { background: var(--product-accent, #1a365d); border-color: var(--product-accent, #1a365d); color: #fff; }
.vlt-view-del { border: 0; background: none; color: inherit; opacity: .55; cursor: pointer; font-size: 13px; padding: 0 2px; }
.vlt-view-del:hover { opacity: 1; }
.vlt-facets { display: flex; flex-direction: column; gap: 4px; padding: 6px 14px 0; }
.vlt-facet-group { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.vlt-facet-label { font-size: 11.5px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .3px; min-width: 88px; }
.vlt-facet-chip { border: 1px solid #e2e8f0; background: #fff; border-radius: 8px; padding: 2px 9px; font-size: 12px;
  color: #334155; cursor: pointer; }
.vlt-facet-chip b { color: #64748b; font-weight: 700; margin-left: 2px; }
.vlt-facet-chip:hover { border-color: #94a3b8; }
.vlt-facet-chip.is-active { background: var(--product-accent, #1a365d); border-color: var(--product-accent, #1a365d); color: #fff; }
.vlt-facet-chip.is-active b { color: #e2e8f0; }
