/* ════════════════════════════════════════════════
   SIGINT — Design System CSS
   Paleta exclusiva, sem frameworks externos
   ════════════════════════════════════════════════ */

/* ── Variables ───────────────────────────────── */
:root {
  --color-bg-deep:     #1c0b2b;
  --color-bg-surface:  #301c41;
  --color-bg-elevated: #413b6b;
  --color-primary:     #5c65c0;
  --color-accent:      #6f95ff;

  --font-xs:  12px;
  --font-sm:  14px;
  --font-md:  16px;
  --font-lg:  20px;
  --font-xl:  24px;
  --font-2xl: 28px;
  --font-3xl: 36px;

  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-xl: 12px;

  --shadow-card: 0 4px 24px rgba(0,0,0,0.35);
  --shadow-sm:   0 2px 8px rgba(0,0,0,0.25);

  --sidebar-width: 260px;
  --topbar-height: 60px;
  --transition: 0.2s ease;
}

/* ── Reset & Base ─────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

button { font-family: inherit; font-size: inherit; background: none; border: none; cursor: pointer; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: var(--font-sm);
  background-color: var(--color-bg-deep);
  color: #e8e8f0;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--color-accent); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; display: block; }

code {
  font-family: 'IBM Plex Mono', monospace;
  background: rgba(111,149,255,0.12);
  color: var(--color-accent);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  font-size: var(--font-xs);
}

/* ── Scrollbar ───────────────────────────────── */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--color-bg-deep); }
::-webkit-scrollbar-thumb { background: var(--color-primary); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--color-accent); }

/* ══════════════════════════════════════════════
   LAYOUT
   ══════════════════════════════════════════════ */
.layout {
  display: flex;
  min-height: 100vh;
}

.main-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow-x: hidden;
  flex: 1;
  margin-left: var(--sidebar-width);
}

/* ── SIDEBAR ──────────────────────────────────── */
.sidebar {
  background: var(--color-bg-deep);
  border-right: 1px solid var(--color-bg-elevated);
  width: var(--sidebar-width);
  position: fixed;
  top: 0; left: 0; bottom: 0;
  overflow-y: auto;
  z-index: 100;
  transition: transform var(--transition);
  display: flex;
  flex-direction: column;
}

.sidebar-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 20px 16px;
  border-bottom: 1px solid var(--color-bg-elevated);
  flex-shrink: 0;
}

.sidebar-logo {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: var(--radius-md);
}

.sidebar-title {
  font-size: var(--font-lg);
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.05em;
}

.sidebar-nav {
  padding: 12px 12px;
  flex: 1;
}

.nav-section {
  margin-bottom: 20px;
}

.nav-section-title {
  display: block;
  font-size: var(--font-xs);
  font-weight: 700;
  color: #6b6b90;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0 8px 6px;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  color: #b0b4d8;
  font-size: var(--font-sm);
  font-weight: 500;
  transition: background var(--transition), color var(--transition);
  text-decoration: none;
  margin-bottom: 2px;
}

.nav-item:hover {
  background: var(--color-bg-surface);
  color: #e8e8f0;
  text-decoration: none;
}

.nav-item.active {
  background: var(--color-primary);
  color: #fff;
}

.nav-icon {
  width: 18px;
  height: 18px;
  fill: currentColor;
  flex-shrink: 0;
}

/* ── TOPBAR ───────────────────────────────────── */
.topbar {
  background: var(--color-bg-surface);
  height: var(--topbar-height);
  border-bottom: 1px solid var(--color-bg-elevated);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 90;
  flex-shrink: 0;
}

.topbar-left { display: flex; align-items: center; gap: 16px; }
.topbar-right { display: flex; align-items: center; gap: 12px; }

.topbar-user {
  font-size: var(--font-sm);
  color: #b0b4d8;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── BREADCRUMB ───────────────────────────────── */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--font-xs);
  color: #7878a0;
}

.breadcrumb a { color: #8888b8; }
.breadcrumb a:hover { color: var(--color-accent); }
.breadcrumb-sep { color: #413b6b; }
.breadcrumb-home { color: #8888b8; }

/* ── HAMBURGER ────────────────────────────────── */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
}

.hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #b0b4d8;
  border-radius: 2px;
  transition: transform var(--transition), opacity var(--transition);
}

/* ── CONTENT ──────────────────────────────────── */
.content {
  flex: 1;
  padding: 28px 32px;
  max-width: 1400px;
  width: 100%;
}

/* ══════════════════════════════════════════════
   TYPOGRAPHY
   ══════════════════════════════════════════════ */
.page-title {
  font-size: var(--font-2xl);
  font-weight: 700;
  color: #f0f0fc;
  line-height: 1.2;
}

.page-subtitle {
  font-size: var(--font-sm);
  color: #7878a0;
  margin-top: 4px;
}

.page-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
  gap: 16px;
}

.header-badges {
  display: flex;
  gap: 8px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.text-muted { color: #7878a0; font-size: var(--font-sm); }

.pre-wrap { white-space: pre-wrap; }

/* ══════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: var(--radius-md);
  font-size: var(--font-sm);
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: background var(--transition), color var(--transition), box-shadow var(--transition);
  text-decoration: none;
  white-space: nowrap;
}

.btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(111,149,255,0.35);
}

.btn-primary {
  background: var(--color-primary);
  color: #fff;
}
.btn-primary:hover { background: var(--color-accent); color: #fff; text-decoration: none; }

.btn-secondary {
  background: transparent;
  border: 1.5px solid var(--color-primary);
  color: var(--color-accent);
}
.btn-secondary:hover { background: var(--color-bg-surface); text-decoration: none; }

.btn-danger {
  background: #7b2d2d;
  color: #ffb0b0;
}
.btn-danger:hover { background: #a03535; text-decoration: none; }

.btn-sm { padding: 6px 12px; font-size: var(--font-xs); }
.btn-full { width: 100%; justify-content: center; }

.btn-group { display: flex; gap: 8px; flex-wrap: wrap; }

/* ══════════════════════════════════════════════
   CARDS
   ══════════════════════════════════════════════ */
.card {
  background: var(--color-bg-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 24px;
  border: 1px solid var(--color-bg-elevated);
  margin-bottom: 24px;
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.card-title {
  font-size: var(--font-md);
  font-weight: 600;
  color: #e8e8f0;
}

.card-section-title {
  font-size: var(--font-md);
  font-weight: 600;
  color: #c8d0f0;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-bg-elevated);
}

/* Collapsible card */
.collapsible { padding: 0; }
.collapsible .card-header-summary {
  list-style: none;
  padding: 20px 24px;
  cursor: pointer;
  user-select: none;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.collapsible .card-header-summary:hover { background: rgba(255,255,255,0.03); }
.collapsible[open] .detail-grid { padding: 0 24px 24px; }
.collapsible .card-section-title { margin-bottom: 0; border-bottom: none; }

/* ══════════════════════════════════════════════
   FORMS
   ══════════════════════════════════════════════ */
.form-card { max-width: 960px; }

.form-help-panel {
  max-width: 960px;
  margin-bottom: 16px;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(111,149,255,0.14), rgba(255,255,255,0.025));
  border: 1px solid rgba(111,149,255,0.28);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.form-help-panel summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  cursor: pointer;
}

.form-help-panel summary::-webkit-details-marker {
  display: none;
}

.form-help-panel strong {
  display: block;
  color: #f5f7ff;
  font-size: var(--font-sm);
  font-weight: 700;
}

.form-help-panel em {
  display: block;
  color: #aeb5db;
  font-size: var(--font-xs);
  font-style: normal;
  margin-top: 2px;
}

.form-help-summary-action {
  flex: 0 0 auto;
  border: 1.5px solid var(--color-primary);
  color: var(--color-accent);
  border-radius: var(--radius-md);
  font-size: var(--font-sm);
  font-weight: 700;
  line-height: 1;
  padding: 9px 14px;
}

.form-help-panel[open] .form-help-summary-action {
  background: rgba(111,149,255,0.18);
  color: #fff;
}

.form-help-inline-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(111,149,255,0.2);
}

.form-help-inline-item {
  padding: 12px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(111,149,255,0.16);
  border-radius: var(--radius-md);
}

.form-help-inline-item h4 {
  margin-bottom: 4px;
  color: #fff;
  font-size: var(--font-sm);
  font-weight: 700;
}

.form-help-inline-item p {
  color: #c5cbe4;
  font-size: var(--font-sm);
  line-height: 1.6;
}

.form-section {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--color-bg-elevated);
}
.form-section:last-of-type { border-bottom: none; }

.form-section-title {
  font-size: var(--font-md);
  font-weight: 600;
  color: var(--color-accent);
  margin-bottom: 20px;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group-full { grid-column: 1 / -1; }

.form-label {
  font-size: 13px;
  font-weight: 500;
  color: #a0a8c8;
}

.form-label-with-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

/* All inputs/selects/textareas */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
input[type="number"],
input[type="tel"],
select,
textarea {
  background: var(--color-bg-deep);
  border: 1.5px solid var(--color-bg-elevated);
  color: #e8e8f0;
  border-radius: var(--radius-md);
  padding: 10px 14px;
  font-size: var(--font-sm);
  font-family: inherit;
  width: 100%;
  transition: border-color var(--transition), box-shadow var(--transition);
  outline: none;
}

input:focus, select:focus, textarea:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(111,149,255,0.15);
}

.field-help-button,
.date-today-button {
  border: 1px solid rgba(111,149,255,0.4);
  color: #dfe6ff;
  background: rgba(111,149,255,0.11);
  border-radius: var(--radius-sm);
  font-size: var(--font-xs);
  font-weight: 700;
  line-height: 1;
  padding: 7px 9px;
  transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.field-help-button:hover,
.date-today-button:hover {
  background: rgba(111,149,255,0.22);
  border-color: var(--color-accent);
  color: #fff;
}

.date-input-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px;
}

.date-input-row input[type="date"] {
  min-width: 0;
}

input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--color-primary);
  cursor: pointer;
}

.checkbox-select {
  max-height: 220px;
  overflow-y: auto;
  padding: 10px;
  background: var(--color-bg-deep);
  border: 1.5px solid var(--color-bg-elevated);
  border-radius: var(--radius-md);
}

.checkbox-select > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 8px;
  min-width: 0;
}

.checkbox-select label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-height: 38px;
  padding: 8px 10px;
  color: #e8e8f0;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
}

.checkbox-select label:hover {
  border-color: rgba(111,149,255,0.35);
  background: rgba(111,149,255,0.08);
}

.checkbox-select input[type="checkbox"] {
  flex: 0 0 auto;
  margin-top: 1px;
}

.form-empty-note {
  padding: 12px 14px;
  color: #a0a8c8;
  background: var(--color-bg-deep);
  border: 1.5px dashed var(--color-bg-elevated);
  border-radius: var(--radius-md);
}

.form-empty-note a {
  color: var(--color-accent);
  font-weight: 600;
}

textarea { resize: vertical; min-height: 90px; }

select option { background: var(--color-bg-surface); }

input[type="file"] {
  color: #a0a8c8;
  cursor: pointer;
}

.form-error {
  font-size: var(--font-xs);
  color: #ff8080;
  margin-top: 2px;
}

.form-actions {
  display: flex;
  gap: 12px;
  padding-top: 24px;
  border-top: 1px solid var(--color-bg-elevated);
  margin-top: 8px;
}

/* ══════════════════════════════════════════════
   TABLES
   ══════════════════════════════════════════════ */
.table-wrapper { overflow-x: auto; }

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-sm);
}

.table th {
  background: var(--color-bg-elevated);
  color: #c8d0f0;
  font-weight: 600;
  font-size: var(--font-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 12px 16px;
  text-align: left;
  border: 1px solid rgba(255,255,255,0.06);
}

.table td {
  padding: 12px 16px;
  border: 1px solid rgba(255,255,255,0.04);
  color: #d0d4f0;
}

.table tbody tr:nth-child(odd) { background: var(--color-bg-deep); }
.table tbody tr:nth-child(even) { background: #25163a; }
.table tbody tr:hover { background: var(--color-bg-surface); }

.table-empty {
  text-align: center;
  color: #6b6b90;
  padding: 40px !important;
  font-size: var(--font-sm);
}

.table-toolbar {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.search-input { max-width: 380px; }

.col-actions { width: 120px; text-align: center; }

/* Action buttons in table */
.action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--radius-md);
  background: transparent;
  border: 1px solid var(--color-bg-elevated);
  color: #9090c0;
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
  text-decoration: none;
}

.action-btn svg { width: 14px; height: 14px; fill: currentColor; }

.action-btn:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
  text-decoration: none;
}

.action-btn-danger:hover {
  background: #7b2d2d;
  border-color: #7b2d2d;
  color: #ffb0b0;
}

/* ══════════════════════════════════════════════
   BADGES / TAGS
   ══════════════════════════════════════════════ */
.badge {
  display: inline-block;
  border-radius: 20px;
  padding: 3px 10px;
  font-size: var(--font-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Status badges */
.badge-ativo, .badge-aprovada, .badge-aprovado, .badge-atendido, .badge-concluida {
  background: #1d4a2d;
  color: #6ee89a;
}
.badge-inativo, .badge-cancelada, .badge-arquivado, .badge-negado {
  background: var(--color-bg-elevated);
  color: #9090c0;
}
.badge-rascunho, .badge-pendente, .badge-planejamento {
  background: #3a3a1a;
  color: #e0d060;
}
.badge-em_andamento, .badge-em_analise, .badge-em_revisao, .badge-executando {
  background: #1a2e4a;
  color: #6aafff;
}
.badge-neutralizado {
  background: #3a1a1a;
  color: #ff9090;
}

/* Classificação badges */
.badge-ostensivo { background: #1d4a2d; color: #6ee89a; }
.badge-reservado { background: #1a2e4a; color: #6aafff; }
.badge-confidencial { background: #7b2d2d; color: #ffb0b0; }
.badge-secreto { background: #7b4d00; color: #ffca80; }
.badge-ultrassecreto { background: #4a0000; color: #ff8080; }

/* Primary badge */
.badge-primary { background: rgba(92,101,192,0.3); color: var(--color-accent); }

/* Periculosidade */
.badge-perigo-baixo { background: #1d4a2d; color: #6ee89a; }
.badge-perigo-medio { background: #3a3a1a; color: #e0d060; }
.badge-perigo-alto { background: #4a2800; color: #ffca80; }
.badge-perigo-critico { background: #4a0000; color: #ff8080; }

/* ══════════════════════════════════════════════
   PAGINATION
   ══════════════════════════════════════════════ */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px 0 0;
}

.page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  background: var(--color-bg-elevated);
  color: #c8d0f0;
  border-radius: var(--radius-sm);
  font-size: var(--font-sm);
  font-weight: 500;
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
}
.page-btn:hover { background: var(--color-primary); color: #fff; text-decoration: none; }
.page-info { font-size: var(--font-sm); color: #7878a0; }

/* ══════════════════════════════════════════════
   DASHBOARD
   ══════════════════════════════════════════════ */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 28px;
}

.stat-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--shadow-card);
}

.stat-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.stat-icon svg { width: 24px; height: 24px; fill: currentColor; }

.stat-icon-red   { background: rgba(160,53,53,0.25); color: #ff9090; }
.stat-icon-blue  { background: rgba(92,101,192,0.25); color: var(--color-accent); }
.stat-icon-yellow{ background: rgba(160,130,0,0.25); color: #ffd060; }
.stat-icon-green { background: rgba(45,106,63,0.25); color: #60e890; }

.stat-number {
  display: block;
  font-size: var(--font-2xl);
  font-weight: 700;
  color: #f0f0fc;
  line-height: 1;
}
.stat-label {
  display: block;
  font-size: var(--font-xs);
  color: #7878a0;
  margin-top: 4px;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

/* ══════════════════════════════════════════════
   DOUTRINA
   ══════════════════════════════════════════════ */
.doctrine-shell {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 1fr;
  gap: 24px;
  align-items: start;
}

.doctrine-rail {
  position: sticky;
  top: calc(var(--topbar-height) + 24px);
  padding: 22px;
  background: linear-gradient(160deg, rgba(111,149,255,0.16), rgba(255,255,255,0.03));
  border: 1px solid rgba(111,149,255,0.25);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.doctrine-rail-kicker,
.doctrine-tag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 10px;
  padding: 4px 8px;
  color: #dfe6ff;
  background: rgba(111,149,255,0.14);
  border: 1px solid rgba(111,149,255,0.35);
  border-radius: var(--radius-sm);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.doctrine-rail h2 {
  color: #fff;
  font-size: var(--font-lg);
  line-height: 1.25;
  margin-bottom: 10px;
}

.doctrine-rail p {
  color: #c0c6df;
  font-size: var(--font-sm);
  line-height: 1.7;
}

.doctrine-list {
  display: grid;
  gap: 20px;
}

.doctrine-card {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.9fr);
  gap: 22px;
  padding: 22px;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.doctrine-card:not(:has(.doctrine-model)) {
  grid-template-columns: 1fr;
}

.doctrine-content h2 {
  color: #fff;
  font-size: var(--font-xl);
  line-height: 1.25;
  margin-bottom: 10px;
}

.doctrine-summary {
  color: #b9c5f7;
  font-size: var(--font-md);
  line-height: 1.65;
  margin-bottom: 14px;
}

.doctrine-text {
  color: #d8dbea;
  font-size: var(--font-sm);
  line-height: 1.75;
}

.doctrine-text p + p {
  margin-top: 12px;
}

.doctrine-model {
  min-width: 0;
}

.doctrine-model-frame {
  overflow: hidden;
  background: #f7f7fb;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  box-shadow: 0 14px 40px rgba(0,0,0,0.35);
}

.doctrine-model-frame img {
  width: 100%;
  max-height: 680px;
  object-fit: contain;
}

/* ══════════════════════════════════════════════
   ANÁLISE DE VÍNCULOS
   ══════════════════════════════════════════════ */
.link-analysis-shell {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 18px;
  min-height: calc(100vh - 150px);
}

.link-analysis-panel,
.link-analysis-board {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.link-analysis-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 18px;
}

.link-analysis-panel-head h2 {
  color: #fff;
  font-size: var(--font-lg);
  margin-bottom: 4px;
}

.link-analysis-panel-head p,
.link-analysis-toolbar span {
  color: #aeb5db;
  font-size: var(--font-xs);
}

.link-analysis-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.link-analysis-legend,
.link-analysis-projects,
.link-analysis-toolbox {
  display: grid;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--color-bg-elevated);
}

.link-analysis-legend h3,
.link-analysis-projects h3,
.link-analysis-toolbox h3 {
  color: #fff;
  font-size: var(--font-sm);
}

.link-analysis-legend div,
.link-analysis-projects a {
  color: #c7cce5;
  font-size: var(--font-xs);
}

.link-analysis-node-list {
  display: grid;
  gap: 6px;
  max-height: 210px;
  overflow-y: auto;
}

.link-node-list-item {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 8px 10px;
  color: #e8e8f0;
  text-align: left;
  background: var(--color-bg-deep);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-md);
}

.link-node-list-item:hover {
  border-color: rgba(111,149,255,0.5);
  background: rgba(111,149,255,0.1);
}

.link-node-list-item strong {
  font-size: var(--font-sm);
  line-height: 1.25;
}

.link-node-list-item span {
  color: #aeb5db;
  font-size: var(--font-xs);
}

.link-analysis-icon-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}

.link-analysis-icon-grid button {
  min-height: 36px;
  color: #fff;
  background: var(--color-bg-deep);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-md);
  font-size: var(--font-md);
  font-weight: 800;
}

.link-analysis-icon-grid button:hover {
  border-color: rgba(111,149,255,0.5);
  background: rgba(111,149,255,0.1);
}

.link-manual-state {
  display: grid;
  gap: 4px;
  color: #aeb5db;
  font-size: var(--font-xs);
}

.link-manual-state strong {
  color: #fff;
}

.legend-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 7px;
  border-radius: 50%;
}

.legend-low { background: #6f95ff; }
.legend-high { background: #e4c05a; }
.legend-critical { background: #e35c6a; }

.link-analysis-board {
  overflow: hidden;
  min-width: 0;
}

.link-analysis-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--color-bg-elevated);
}

.link-analysis-toolbar strong {
  display: block;
  color: #fff;
  font-size: var(--font-sm);
}

.link-analysis-toolbar-actions {
  display: flex;
  gap: 8px;
}

.link-analysis-canvas-wrap {
  min-height: 680px;
  background:
    linear-gradient(rgba(111,149,255,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(111,149,255,0.08) 1px, transparent 1px),
    #1c0b2b;
  background-size: 36px 36px;
}

.link-analysis-canvas {
  width: 100%;
  height: 680px;
  display: block;
  touch-action: none;
}

.link-edge {
  stroke: #8791b8;
  stroke-opacity: 0.72;
}

.link-edge-label {
  fill: #d7dcf3;
  font-size: 12px;
  font-weight: 700;
  text-anchor: middle;
  paint-order: stroke;
  stroke: #1c0b2b;
  stroke-width: 5px;
  stroke-linejoin: round;
}

.link-node {
  cursor: grab;
}

.link-node:active {
  cursor: grabbing;
}

.link-node circle {
  stroke: rgba(255,255,255,0.75);
  stroke-width: 2;
}

.link-node.selected circle,
.link-node.selected rect {
  stroke: #fff;
  stroke-width: 4;
}

.link-node.manual-source circle,
.link-node.manual-source rect {
  stroke: #4ade80;
  stroke-width: 4;
}

.link-node.manual-target circle,
.link-node.manual-target rect {
  stroke: #60a5fa;
  stroke-width: 4;
}

.link-node-initial {
  fill: #fff;
  font-size: 28px;
  font-weight: 800;
  text-anchor: middle;
  pointer-events: none;
}

.link-node-label {
  fill: #fff;
  font-size: 13px;
  font-weight: 800;
  text-anchor: middle;
  paint-order: stroke;
  stroke: #1c0b2b;
  stroke-width: 5px;
  stroke-linejoin: round;
  pointer-events: none;
}

.link-edge-manual {
  stroke-dasharray: 8 5;
}

.link-text-node-label {
  fill: #161b2d;
  font-size: 13px;
  font-weight: 800;
  text-anchor: middle;
  dominant-baseline: middle;
  pointer-events: none;
}

.link-icon-node-label {
  fill: #fff;
  font-size: 22px;
  font-weight: 900;
  text-anchor: middle;
  pointer-events: none;
}

/* ══════════════════════════════════════════════
   DETAIL VIEW
   ══════════════════════════════════════════════ */
.detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.detail-field { display: flex; flex-direction: column; gap: 4px; }
.detail-field-full { grid-column: 1 / -1; }

.detail-label {
  font-size: var(--font-xs);
  font-weight: 600;
  color: #7878a0;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.detail-value {
  font-size: var(--font-sm);
  color: #d0d4f0;
  line-height: 1.5;
}

/* ══════════════════════════════════════════════
   TOAST NOTIFICATIONS
   ══════════════════════════════════════════════ */
#toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

.toast {
  min-width: 280px;
  max-width: 400px;
  padding: 14px 18px;
  border-radius: var(--radius-lg);
  font-size: var(--font-sm);
  font-weight: 500;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
  pointer-events: all;
  display: flex;
  align-items: center;
  gap: 10px;
  animation: toastIn 0.3s ease;
  border-left: 4px solid transparent;
}

.toast-success { background: #1d4a2d; color: #6ee89a; border-color: #2d8a4e; }
.toast-error   { background: #4a1010; color: #ff9090; border-color: #a03535; }
.toast-warning { background: #3a2800; color: #ffd060; border-color: #8a6000; }
.toast-info    { background: #12213a; color: #6aafff; border-color: #2a5a9a; }

@keyframes toastIn {
  from { opacity: 0; transform: translateX(60px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes toastOut {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(60px); }
}

/* ══════════════════════════════════════════════
   MODAL
   ══════════════════════════════════════════════ */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.2s ease;
}

.modal-container {
  background: var(--color-bg-surface);
  border-radius: var(--radius-xl);
  max-width: 480px;
  width: 90%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
  border: 1px solid var(--color-bg-elevated);
  animation: slideUp 0.25s ease;
}

.modal-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-bg-elevated);
}
.modal-header h3 { font-size: var(--font-md); font-weight: 600; color: #f0f0fc; }

.modal-body { padding: 20px 24px; color: #b0b4d8; font-size: var(--font-sm); }
.modal-footer { padding: 16px 24px; display: flex; gap: 10px; justify-content: flex-end; border-top: 1px solid var(--color-bg-elevated); }

.field-help-backdrop {
  background:
    radial-gradient(circle at 50% 20%, rgba(111,149,255,0.18), transparent 34%),
    rgba(0,0,0,0.68);
}

.field-help-modal {
  max-width: 620px;
  overflow: hidden;
  border-color: rgba(111,149,255,0.35);
  box-shadow: 0 24px 80px rgba(0,0,0,0.65), 0 0 0 1px rgba(255,255,255,0.04) inset;
}

.field-help-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px 18px;
  border-bottom: 1px solid rgba(111,149,255,0.22);
  background: linear-gradient(135deg, rgba(111,149,255,0.16), rgba(255,255,255,0.02));
}

.field-help-kicker {
  display: block;
  margin-bottom: 4px;
  color: #aebfff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.field-help-header h3 {
  color: #fff;
  font-size: var(--font-lg);
  font-weight: 700;
  line-height: 1.25;
}

.field-help-close {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  color: #dfe6ff;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 50%;
  font-size: 24px;
  line-height: 30px;
}

.field-help-close:hover {
  color: #fff;
  background: rgba(111,149,255,0.2);
  border-color: rgba(111,149,255,0.45);
}

.field-help-body {
  padding: 24px;
  color: #d5d8ec;
  font-size: var(--font-md);
  line-height: 1.75;
  white-space: pre-wrap;
}

.field-help-list {
  display: grid;
  gap: 14px;
  max-height: 58vh;
  overflow-y: auto;
  padding-right: 4px;
  white-space: normal;
}

.field-help-list-item {
  padding: 14px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(111,149,255,0.18);
  border-radius: var(--radius-md);
}

.field-help-list-item h4 {
  margin-bottom: 6px;
  color: #fff;
  font-size: var(--font-sm);
  font-weight: 700;
}

.field-help-list-item p {
  color: #c9cee7;
  font-size: var(--font-sm);
  line-height: 1.65;
}

@keyframes fadeIn  { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* ══════════════════════════════════════════════
   FILE PREVIEW
   ══════════════════════════════════════════════ */
.file-preview {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.file-preview img {
  max-height: 120px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-bg-elevated);
}

.file-preview-item {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--color-bg-deep);
  padding: 8px 12px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-bg-elevated);
  font-size: var(--font-xs);
  color: #a0a8c8;
}

/* ══════════════════════════════════════════════
   ANEXOS
   ══════════════════════════════════════════════ */
.anexos-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.anexo-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  background: var(--color-bg-deep);
  padding: 16px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-bg-elevated);
  min-width: 140px;
  max-width: 180px;
}

.anexo-thumb { max-height: 100px; border-radius: var(--radius-sm); }
.anexo-icon { font-size: 40px; }
.anexo-nome { font-size: var(--font-xs); color: #a0a8c8; text-align: center; word-break: break-all; }

/* ══════════════════════════════════════════════
   ALERT (inline)
   ══════════════════════════════════════════════ */
.alert {
  padding: 14px 18px;
  border-radius: var(--radius-md);
  font-size: var(--font-sm);
  margin-bottom: 20px;
}
.alert-error { background: #4a1010; color: #ff9090; border: 1px solid #7b2d2d; }
.alert-success { background: #1d4a2d; color: #6ee89a; border: 1px solid #2d8a4e; }

/* ══════════════════════════════════════════════
   LOGIN PAGE
   ══════════════════════════════════════════════ */
.login-page {
  background: var(--color-bg-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}

.login-wrapper {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.login-card {
  background: var(--color-bg-surface);
  border-radius: var(--radius-xl);
  padding: 40px;
  max-width: 400px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
  border: 1px solid var(--color-bg-elevated);
}

.login-logo-wrap { display: flex; justify-content: center; margin-bottom: 20px; }

.login-logo {
  max-width: 120px;
  max-height: 80px;
  object-fit: contain;
}

.login-title {
  text-align: center;
  font-size: var(--font-2xl);
  font-weight: 700;
  color: #f0f0fc;
  letter-spacing: 0.1em;
}

.login-subtitle {
  text-align: center;
  font-size: var(--font-xs);
  color: #7878a0;
  margin: 6px 0 28px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.login-form { display: flex; flex-direction: column; gap: 16px; margin-bottom: 20px; }

.login-footer {
  text-align: center;
  font-size: var(--font-xs);
  color: #413b6b;
  margin-top: 24px;
}

/* ══════════════════════════════════════════════
   DOC NUMERO
   ══════════════════════════════════════════════ */
.doc-numero {
  font-size: var(--font-sm);
  color: #7878a0;
  margin-top: 6px;
}

/* ══════════════════════════════════════════════
   RELATORIO TEXTO
   ══════════════════════════════════════════════ */
.relatorio-texto {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-size: var(--font-sm);
  line-height: 1.8;
  color: #c8d0f0;
}

/* ══════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .doctrine-shell { grid-template-columns: 1fr; }
  .doctrine-rail { position: static; }
  .doctrine-card { grid-template-columns: 1fr; }
  .link-analysis-shell { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .layout { flex-direction: column; }

  .main-wrapper { margin-left: 0; }

  .sidebar {
    transform: translateX(-100%);
  }

  .sidebar.open {
    transform: translateX(0);
  }

  .hamburger { display: flex; }

  .content { padding: 20px 16px; }

  .page-header { flex-direction: column; align-items: flex-start; }

  .form-help-panel summary { flex-direction: column; align-items: stretch; }
  .form-help-summary-action { text-align: center; }

  .stats-grid { grid-template-columns: 1fr 1fr; }

  .form-grid { grid-template-columns: 1fr; }
  .form-group-full { grid-column: auto; }

  .detail-grid { grid-template-columns: 1fr; }
  .detail-field-full { grid-column: auto; }

  .topbar { padding: 0 16px; }

  .link-analysis-actions { grid-template-columns: 1fr; }
  .link-analysis-toolbar { align-items: stretch; flex-direction: column; }
  .link-analysis-toolbar-actions { flex-wrap: wrap; }

  .table-toolbar { flex-direction: column; }
  .search-input { max-width: 100%; }
}

@media (max-width: 480px) {
  .stats-grid { grid-template-columns: 1fr; }
}


/* ── Anexos multi-upload ────────────────────────────────────── */
.anexo-upload-row {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
  padding: .75rem 1rem;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: .75rem;
}

.anexo-upload-fields {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.anexos-existentes {
  margin-bottom: 1rem;
}

.anexo-existente-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .5rem .75rem;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: .5rem;
  flex-wrap: wrap;
}

/* ══════════════════════════════════════════════
   DOUTRINA — Layout premium v2
   ══════════════════════════════════════════════ */

/* ── Hero banner ──────────────────────────────── */
.dout-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  margin-bottom: 32px;
  padding: 40px 44px;
  background: linear-gradient(135deg,
    #0d0822 0%,
    #1a1040 40%,
    #251660 70%,
    #1a0d35 100%);
  border: 1px solid rgba(111,149,255,.2);
  box-shadow: 0 8px 48px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
}

.dout-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 90% at 85% 50%, rgba(111,149,255,.12) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 10% 80%, rgba(92,101,192,.1) 0%, transparent 60%);
  pointer-events: none;
}

.dout-hero::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 320px; height: 100%;
  background: url("data:image/svg+xml,%3Csvg width='320' height='200' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='.04' fill='%23fff'%3E%3Ccircle cx='160' cy='100' r='90' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Ccircle cx='160' cy='100' r='65' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Ccircle cx='160' cy='100' r='40' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cline x1='0' y1='100' x2='320' y2='100' stroke='%23fff' stroke-width='.5'/%3E%3Cline x1='160' y1='0' x2='160' y2='200' stroke='%23fff' stroke-width='.5'/%3E%3C/g%3E%3C/svg%3E") no-repeat center right;
  opacity: .6;
  pointer-events: none;
}

.dout-hero-inner { position: relative; z-index: 1; }

.dout-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px;
  background: rgba(111,149,255,.15);
  border: 1px solid rgba(111,149,255,.4);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #a8c4ff;
  margin-bottom: 16px;
}

.dout-hero-badge svg { fill: #6f95ff; width: 12px; height: 12px; }

.dout-hero-title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
  line-height: 1.15;
  margin-bottom: 10px;
}

.dout-hero-sub {
  font-size: var(--font-sm);
  color: rgba(200,210,240,.65);
  line-height: 1.6;
  max-width: 580px;
}

.dout-hero-meta {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.dout-hero-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dout-hero-stat-val {
  font-size: 1.5rem;
  font-weight: 800;
  color: #6f95ff;
  line-height: 1;
}

.dout-hero-stat-label {
  font-size: 11px;
  color: rgba(200,210,240,.5);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.dout-hero-sep {
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,.1);
}

/* Operacoes hero variant */
.dout-hero--operacoes {
  background: linear-gradient(135deg,
    #120c08 0%,
    #1e1208 40%,
    #2e1c0a 70%,
    #180e06 100%);
  border-color: rgba(255,180,50,.2);
}

.dout-hero--operacoes::before {
  background:
    radial-gradient(ellipse 70% 90% at 85% 50%, rgba(255,180,50,.12) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 10% 80%, rgba(220,140,30,.08) 0%, transparent 60%);
}

.dout-hero--operacoes .dout-hero-badge {
  background: rgba(255,180,50,.12);
  border-color: rgba(255,180,50,.35);
  color: #ffd090;
}

.dout-hero--operacoes .dout-hero-badge svg { fill: #ffb432; }
.dout-hero--operacoes .dout-hero-stat-val { color: #ffb432; }

/* ── Shell / layout ───────────────────────────── */
.doc-shell {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
  align-items: start;
}

/* ── Rail / sidebar ───────────────────────────── */
.doc-rail {
  position: sticky;
  top: calc(var(--topbar-height) + 20px);
  display: flex;
  flex-direction: column;
  gap: 0;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid rgba(111,149,255,.15);
  box-shadow: 0 8px 32px rgba(0,0,0,.4);
}

.doc-rail-top {
  background: linear-gradient(160deg, #1e1540 0%, #17102e 100%);
  padding: 24px 20px 20px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.doc-rail-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(111,149,255,.18);
  border: 1px solid rgba(111,149,255,.38);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #a8c4ff;
  margin-bottom: 14px;
}

.doc-rail-badge svg { fill: #6f95ff; width: 12px; height: 12px; flex-shrink: 0; }

.doc-rail-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
  margin-bottom: 8px;
}

.doc-rail-desc {
  font-size: 12px;
  color: rgba(180,190,230,.6);
  line-height: 1.65;
}

.doc-rail-nav {
  background: linear-gradient(180deg, #141028 0%, #0f0b20 100%);
  padding: 16px 12px;
}

.doc-rail-nav-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #4a4a70;
  padding: 0 8px;
  margin-bottom: 8px;
}

.doc-rail-nav-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 9px 10px;
  border-radius: var(--radius-md);
  margin-bottom: 2px;
  font-size: 13px;
  color: #8890b8;
  text-decoration: none;
  transition: background .15s, color .15s, border-left-color .15s;
  border-left: 2px solid transparent;
}

.doc-rail-nav-link:hover {
  background: rgba(111,149,255,.1);
  color: #d4dcf8;
  border-left-color: #6f95ff;
}

.doc-rail-nav-cat {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #5060a0;
}

/* ── Lista de cards ───────────────────────────── */
.doc-list { display: flex; flex-direction: column; gap: 20px; }

/* ── Card base ────────────────────────────────── */
.doc-card {
  position: relative;
  background: linear-gradient(160deg, #1e1840 0%, #18132e 100%);
  border: 1px solid rgba(111,149,255,.12);
  border-radius: var(--radius-xl);
  padding: 32px;
  box-shadow: 0 4px 24px rgba(0,0,0,.4);
  transition: border-color .2s, box-shadow .2s, transform .2s;
  scroll-margin-top: calc(var(--topbar-height) + 16px);
  overflow: hidden;
}

.doc-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(111,149,255,.35), transparent);
}

.doc-card:hover {
  border-color: rgba(111,149,255,.28);
  box-shadow: 0 12px 48px rgba(0,0,0,.5), 0 0 0 1px rgba(111,149,255,.12);
  transform: translateY(-1px);
}

.doc-card--has-model {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) 260px;
  gap: 32px;
  align-items: start;
}

/* ── Conteúdo textual ─────────────────────────── */
.doc-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 11px;
  background: rgba(111,149,255,.12);
  border: 1px solid rgba(111,149,255,.28);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #8aabff;
  margin-bottom: 14px;
}

.doc-card-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #eef0ff;
  line-height: 1.25;
  margin-bottom: 10px;
  letter-spacing: -.01em;
}

.doc-card-summary {
  font-size: var(--font-sm);
  color: #8090c0;
  line-height: 1.7;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  font-style: italic;
}

.doc-card-text {
  font-size: 13px;
  color: #b8c4e0;
  line-height: 1.85;
}

.doc-card-text p { margin-bottom: 12px; }
.doc-card-text p:last-child { margin-bottom: 0; }

/* ── Coluna do modelo ─────────────────────────── */
.doc-card-model {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: rgba(0,0,0,.25);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(255,255,255,.05);
}

.doc-model-label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #6f95ff;
}

.doc-model-label svg { fill: #6f95ff; flex-shrink: 0; }

.doc-model-frame {
  position: relative;
  overflow: hidden;
  background: #f8f8f6;
  border-radius: 5px;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04),
    0 8px 40px rgba(0,0,0,.6),
    0 2px 8px rgba(0,0,0,.5),
    4px 4px 0 rgba(0,0,0,.3);
  transition: transform .22s ease, box-shadow .22s ease;
  cursor: zoom-in;
}

.doc-model-frame:hover {
  transform: translateY(-4px) scale(1.015);
  box-shadow:
    0 0 0 1px rgba(111,149,255,.15),
    0 20px 60px rgba(0,0,0,.7),
    0 4px 16px rgba(0,0,0,.5),
    6px 6px 0 rgba(0,0,0,.35);
}

.doc-model-frame img {
  width: 100%;
  display: block;
  object-fit: contain;
}

.doc-model-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(92,101,192,.7) 0%, rgba(50,30,100,.8) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  opacity: 0;
  transition: opacity .2s ease;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.doc-model-overlay svg { fill: #fff; }
.doc-model-frame:hover .doc-model-overlay { opacity: 1; }

/* ── Empty state ──────────────────────────────── */
.doc-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 80px 20px;
  color: #5060a0;
  text-align: center;
  background: linear-gradient(160deg, #1a1438 0%, #120e26 100%);
  border: 1px dashed rgba(111,149,255,.12);
  border-radius: var(--radius-xl);
}

/* ── Lightbox ─────────────────────────────────── */
.doc-lightbox {
  position: fixed;
  inset: 0;
  z-index: 8000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.doc-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8,4,18,.92);
  backdrop-filter: blur(8px);
}

.doc-lightbox-frame {
  position: relative;
  z-index: 1;
  max-width: 900px;
  width: 100%;
  max-height: 90vh;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(111,149,255,.25),
    0 48px 120px rgba(0,0,0,.9);
  display: flex;
  flex-direction: column;
  animation: lb-in .18s ease;
}

@keyframes lb-in {
  from { opacity: 0; transform: scale(.96); }
  to   { opacity: 1; transform: scale(1); }
}

#doc-lightbox-img {
  width: 100%;
  max-height: 85vh;
  object-fit: contain;
  display: block;
}

.doc-lightbox-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s, transform .15s;
  border: 1px solid rgba(255,255,255,.15);
}

.doc-lightbox-close:hover { background: rgba(0,0,0,.85); transform: scale(1.1); }

/* ── Variante Operações ───────────────────────── */
.doc-shell--operacoes .doc-rail { border-color: rgba(255,180,50,.15); }
.doc-shell--operacoes .doc-rail-top { background: linear-gradient(160deg, #201408 0%, #180e06 100%); }
.doc-shell--operacoes .doc-rail-nav { background: linear-gradient(180deg, #120c04 0%, #0e0902 100%); }
.doc-shell--operacoes .doc-rail-badge { background: rgba(255,180,50,.15); border-color: rgba(255,180,50,.38); color: #ffd090; }
.doc-shell--operacoes .doc-rail-badge svg { fill: #ffb432; }
.doc-shell--operacoes .doc-rail-nav-link:hover { background: rgba(255,180,50,.08); color: #ffd490; border-left-color: #ffb432; }
.doc-shell--operacoes .doc-rail-nav-cat { color: #7a5010; }
.doc-shell--operacoes .doc-chip { background: rgba(255,180,50,.1); border-color: rgba(255,180,50,.28); color: #ffc860; }
.doc-shell--operacoes .doc-model-label { color: #ffb432; }
.doc-shell--operacoes .doc-model-label svg { fill: #ffb432; }
.doc-shell--operacoes .doc-card { background: linear-gradient(160deg, #201408 0%, #160e06 100%); border-color: rgba(255,180,50,.1); }
.doc-shell--operacoes .doc-card::before { background: linear-gradient(90deg, transparent, rgba(255,180,50,.25), transparent); }
.doc-shell--operacoes .doc-card:hover { border-color: rgba(255,180,50,.25); box-shadow: 0 12px 48px rgba(0,0,0,.5), 0 0 0 1px rgba(255,180,50,.1); }
.doc-shell--operacoes .doc-card-model { background: rgba(0,0,0,.3); border-color: rgba(255,180,50,.06); }

/* ── Responsive ───────────────────────────────── */
@media (max-width: 1100px) {
  .doc-shell { grid-template-columns: 240px 1fr; }
  .doc-card--has-model { grid-template-columns: 1fr 220px; }
}

@media (max-width: 860px) {
  .dout-hero { padding: 28px 24px; }
  .doc-shell { grid-template-columns: 1fr; }
  .doc-rail { position: static; }
  .doc-card--has-model { grid-template-columns: 1fr; }
  .doc-card-model { max-width: 340px; }
}

/* ══════════════════════════════════════════════
   AÇÃO DE BUSCA — Wizard de seleção
   ══════════════════════════════════════════════ */

.ab-step {
  background: linear-gradient(160deg, #1e1840 0%, #18132e 100%);
  border: 1px solid rgba(111,149,255,.12);
  border-radius: var(--radius-xl);
  padding: 28px 32px;
  margin-bottom: 20px;
  box-shadow: 0 4px 24px rgba(0,0,0,.35);
}

.ab-step-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 24px;
}

.ab-step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(111,149,255,.2);
  border: 1px solid rgba(111,149,255,.4);
  color: #6f95ff;
  font-size: 14px;
  font-weight: 800;
  flex-shrink: 0;
}

.ab-step-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #eef0ff;
  margin-bottom: 3px;
}

.ab-step-sub {
  font-size: 13px;
  color: #6878a8;
}

/* Grid de cards de ação */
.ab-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
}

.ab-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 18px 10px 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
  position: relative;
  user-select: none;
  text-align: center;
}

.ab-card:hover {
  background: rgba(111,149,255,.1);
  border-color: rgba(111,149,255,.3);
  transform: translateY(-2px);
}

.ab-card--selected {
  background: rgba(111,149,255,.15);
  border-color: #6f95ff;
  box-shadow: 0 0 0 1px rgba(111,149,255,.3), 0 4px 20px rgba(111,149,255,.15);
}

.ab-card--entrevista .ab-card-badge {
  display: inline-block;
}

.ab-card-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ab-card-icon svg {
  width: 32px;
  height: 32px;
  fill: #8890c0;
  transition: fill .15s;
}

.ab-card--selected .ab-card-icon svg { fill: #6f95ff; }
.ab-card:hover .ab-card-icon svg      { fill: #a0b4ff; }

.ab-card-label {
  font-size: 11.5px;
  font-weight: 600;
  color: #8890b8;
  line-height: 1.3;
  transition: color .15s;
}

.ab-card--selected .ab-card-label { color: #c8d8ff; }
.ab-card:hover .ab-card-label      { color: #d0d8f8; }

.ab-card-badge {
  display: none;
  position: absolute;
  top: -6px;
  right: -6px;
  background: linear-gradient(135deg, #5c65c0, #3a4aaa);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .05em;
  padding: 2px 6px;
  border-radius: 10px;
  white-space: nowrap;
}

/* ── Módulo Entrevista ─────────────────────────── */
.ab-entrevista-module {
  background: linear-gradient(160deg, #1a1030 0%, #140c24 100%);
  border: 1px solid rgba(111,149,255,.18);
  border-radius: var(--radius-xl);
  padding: 28px 32px;
  margin-bottom: 20px;
  box-shadow: 0 4px 24px rgba(0,0,0,.4);
}

.ab-mode-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.ab-mode-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px 24px;
  background: rgba(255,255,255,.03);
  border: 2px solid rgba(255,255,255,.08);
  border-radius: var(--radius-xl);
  cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
  user-select: none;
}

.ab-mode-card:hover {
  background: rgba(111,149,255,.08);
  border-color: rgba(111,149,255,.25);
  transform: translateY(-2px);
}

.ab-mode-card--selected {
  background: rgba(111,149,255,.12);
  border-color: #6f95ff;
  box-shadow: 0 0 0 1px rgba(111,149,255,.2), 0 8px 32px rgba(111,149,255,.12);
}

.ab-mode-card--video { border-color: rgba(92,101,192,.3); }

.ab-mode-icon {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(111,149,255,.1);
  border-radius: 14px;
  border: 1px solid rgba(111,149,255,.2);
}

.ab-mode-icon svg { fill: #6f95ff; }
.ab-mode-card--selected .ab-mode-icon { background: rgba(111,149,255,.2); }

.ab-mode-title {
  font-size: 1rem;
  font-weight: 700;
  color: #eef0ff;
  line-height: 1.25;
}

.ab-mode-desc {
  font-size: 13px;
  color: #8090b8;
  line-height: 1.65;
}

.ab-mode-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.ab-mode-tags li {
  padding: 3px 9px;
  background: rgba(111,149,255,.1);
  border: 1px solid rgba(111,149,255,.2);
  border-radius: 20px;
  font-size: 11px;
  color: #7a90c8;
  font-weight: 600;
}

/* ══════════════════════════════════════════════
   ANÁLISE DE VÍDEO — Templates
   ══════════════════════════════════════════════ */

/* Hero do formulário de análise */
.va-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  margin-bottom: 28px;
  padding: 36px 40px;
  background: linear-gradient(135deg, #0a0618 0%, #14103a 50%, #0e0a20 100%);
  border: 1px solid rgba(111,149,255,.18);
  box-shadow: 0 8px 40px rgba(0,0,0,.5);
}

.va-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 100% at 90% 50%, rgba(111,149,255,.1) 0%, transparent 70%);
  pointer-events: none;
}

.va-hero-inner { position: relative; z-index: 1; }

.va-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(111,149,255,.15);
  border: 1px solid rgba(111,149,255,.35);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #a0beff;
  margin-bottom: 14px;
}

.va-hero-badge svg { fill: #6f95ff; width: 12px; height: 12px; }

.va-hero-title {
  font-size: 1.6rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.01em;
  margin-bottom: 8px;
}

.va-hero-sub {
  font-size: 13px;
  color: rgba(180,190,230,.55);
  max-width: 520px;
  line-height: 1.6;
}

/* Busca vinculada info */
.va-busca-link {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  padding: 12px 16px;
  background: rgba(111,149,255,.1);
  border: 1px solid rgba(111,149,255,.2);
  border-radius: var(--radius-md);
  font-size: 13px;
  color: #9ab0e8;
}

.va-busca-link svg { fill: #6f95ff; flex-shrink: 0; }

/* Status badges */
.va-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.va-status--pending    { background: rgba(180,160,60,.15);  color: #d4b840; border: 1px solid rgba(180,160,60,.3); }
.va-status--processing { background: rgba(92,101,192,.2);   color: #8090e0; border: 1px solid rgba(92,101,192,.4); }
.va-status--completed  { background: rgba(60,180,100,.15);  color: #60c878; border: 1px solid rgba(60,180,100,.3); }
.va-status--failed     { background: rgba(220,60,60,.15);   color: #e06060; border: 1px solid rgba(220,60,60,.3); }

/* Timeline de eventos */
.va-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}

.va-timeline::before {
  content: '';
  position: absolute;
  left: 68px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(111,149,255,.2) 10%, rgba(111,149,255,.2) 90%, transparent);
}

.va-event {
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 0 20px;
  padding: 14px 0;
  position: relative;
}

.va-event-time {
  text-align: right;
  padding-right: 20px;
  font-size: 12px;
  font-weight: 700;
  color: #5060a0;
  padding-top: 3px;
  font-variant-numeric: tabular-nums;
}

.va-event-dot {
  position: absolute;
  left: 61px;
  top: 18px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #1e1840;
  border: 2px solid rgba(111,149,255,.35);
  z-index: 1;
}

.va-event-body {
  background: linear-gradient(160deg, #1e1840 0%, #18132e 100%);
  border: 1px solid rgba(111,149,255,.1);
  border-radius: var(--radius-lg);
  padding: 14px 18px;
  transition: border-color .15s;
}

.va-event-body:hover { border-color: rgba(111,149,255,.25); }

.va-event-top {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.va-event-emotion {
  font-size: 13px;
  font-weight: 700;
  color: #d0d8ff;
}

.va-event-peace {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .07em;
  color: #5060a0;
  text-transform: uppercase;
  padding: 2px 8px;
  background: rgba(255,255,255,.04);
  border-radius: 10px;
}

.va-event-cues {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.va-event-cue {
  font-size: 12px;
  color: #7080a8;
  line-height: 1.5;
}

.va-event-cue::before { content: '— '; color: #3a4060; }

/* Snapshot */
.va-snapshot {
  width: 80px;
  height: 56px;
  object-fit: cover;
  border-radius: 4px;
  border: 1px solid rgba(255,255,255,.08);
  margin-left: auto;
  cursor: zoom-in;
  transition: transform .15s;
}

.va-snapshot:hover { transform: scale(1.05); }

/* Resumo / stats */
.va-stats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}

.va-stat {
  background: linear-gradient(160deg, #1e1840 0%, #18132e 100%);
  border: 1px solid rgba(111,149,255,.1);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
}

.va-stat-val {
  font-size: 1.4rem;
  font-weight: 800;
  color: #6f95ff;
  line-height: 1;
  margin-bottom: 4px;
}

.va-stat-label {
  font-size: 11px;
  color: #5060a0;
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Emotion bar */
.va-emo-bar {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 20px;
}

.va-emo-row { display: flex; align-items: center; gap: 10px; }

.va-emo-label {
  width: 160px;
  font-size: 12px;
  color: #8090b8;
  flex-shrink: 0;
}

.va-emo-track {
  flex: 1;
  height: 6px;
  background: rgba(255,255,255,.06);
  border-radius: 3px;
  overflow: hidden;
}

.va-emo-fill {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, #5c65c0, #6f95ff);
  transition: width .4s ease;
}

.va-emo-count {
  font-size: 12px;
  color: #5060a0;
  width: 28px;
  text-align: right;
}

/* Notas metodológicas */
.va-notes {
  background: rgba(0,0,0,.2);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius-lg);
  padding: 18px 20px;
  font-size: 13px;
  color: #8090b8;
  line-height: 1.75;
}

/* Lista de análises */
.va-list-card {
  background: linear-gradient(160deg, #1e1840 0%, #18132e 100%);
  border: 1px solid rgba(111,149,255,.1);
  border-radius: var(--radius-xl);
  padding: 20px 24px;
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
  transition: border-color .15s, transform .15s;
  text-decoration: none;
  color: inherit;
}

.va-list-card:hover {
  border-color: rgba(111,149,255,.25);
  transform: translateX(2px);
  text-decoration: none;
}

.va-list-row {
  position: relative;
  margin-bottom: 12px;
}

.va-list-row .va-list-card {
  margin-bottom: 0;
}

.va-list-row--deletable .va-list-card {
  padding-right: 52px;
}

.va-list-del-form {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

.va-list-del {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid transparent;
  color: rgba(160,80,80,.45);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .18s, background .18s, border-color .18s, color .18s, box-shadow .18s;
}

.va-list-row:hover .va-list-del {
  opacity: 1;
}

.va-list-del:hover {
  background: rgba(200,40,40,.18);
  border-color: rgba(220,60,60,.35);
  color: #e06060;
  box-shadow: 0 0 14px rgba(200,40,40,.28), inset 0 0 6px rgba(200,40,40,.12);
}

.va-list-del svg { fill: currentColor; width: 15px; height: 15px; }

.va-list-icon {
  width: 44px;
  height: 44px;
  background: rgba(111,149,255,.12);
  border: 1px solid rgba(111,149,255,.2);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.va-list-icon svg { fill: #6f95ff; width: 22px; height: 22px; }
.va-list-icon img { width: 44px; height: 44px; object-fit: cover; display: block; }

.va-list-info { flex: 1; min-width: 0; }

.va-list-title {
  font-size: 14px;
  font-weight: 700;
  color: #d8e0ff;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.va-list-meta {
  font-size: 12px;
  color: #5060a0;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

@media (max-width: 700px) {
  .ab-grid { grid-template-columns: repeat(3, 1fr); }
  .ab-mode-grid { grid-template-columns: 1fr; }
  .va-timeline::before { left: 52px; }
  .va-event { grid-template-columns: 52px 1fr; }
  .va-event-dot { left: 45px; }
  .va-stats { grid-template-columns: repeat(2, 1fr); }
}

/* ══════════════════════════════════════════════
   ANÁLISE DE VÍDEO — Detail v2 + Method selector
   ══════════════════════════════════════════════ */

/* Method pill na página de detalhe */
.va-method-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: rgba(111,149,255,.12);
  border: 1px solid rgba(111,149,255,.28);
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  color: #7a9aff;
}

/* Grid de método no formulário */
.va-method-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 10px;
  margin-bottom: 8px;
}

.va-method-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 14px 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: background .14s, border-color .14s;
  user-select: none;
}

.va-method-card:hover {
  background: rgba(111,149,255,.08);
  border-color: rgba(111,149,255,.25);
}

.va-method-card--selected {
  background: rgba(111,149,255,.13);
  border-color: #6f95ff;
  box-shadow: 0 0 0 1px rgba(111,149,255,.25);
}

.va-method-abbr {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  color: #6f95ff;
  text-transform: uppercase;
}

.va-method-card--selected .va-method-abbr { color: #90b0ff; }

.va-method-name {
  font-size: 12px;
  color: #7080a8;
  line-height: 1.35;
}

.va-method-card--selected .va-method-name { color: #c0d0f0; }

.va-method-desc {
  font-size: 12px;
  color: #6070a0;
  line-height: 1.6;
  min-height: 18px;
  padding: 4px 2px 0;
}

/* Layout da página de detalhe */
.va-detail-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 20px;
  align-items: start;
}

.va-side-col {
  position: sticky;
  top: calc(var(--topbar-height) + 16px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.va-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.va-section-title {
  font-size: 14px;
  font-weight: 700;
  color: #c0c8f0;
}

.va-section-count {
  font-size: 12px;
  color: #4a5080;
}

/* Painel lateral */
.va-panel {
  background: linear-gradient(160deg, #1e1840 0%, #18132e 100%);
  border: 1px solid rgba(111,149,255,.1);
  border-radius: var(--radius-xl);
  padding: 18px 18px 16px;
}

.va-panel--warn {
  border-color: rgba(255,180,50,.12);
  background: linear-gradient(160deg, #201408 0%, #160e06 100%);
}

.va-panel-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #5060a0;
  margin-bottom: 12px;
}

.va-panel--warn .va-panel-title { color: #705030; }

.va-panel-text {
  font-size: 12px;
  color: #6878a8;
  line-height: 1.7;
}

.va-panel--warn .va-panel-text { color: #806040; }

/* Timeline v2 */
.va-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}

.va-timeline::before {
  content: '';
  position: absolute;
  left: 56px;
  top: 0; bottom: 0;
  width: 1px;
  background: linear-gradient(180deg,
    transparent,
    rgba(111,149,255,.18) 8%,
    rgba(111,149,255,.18) 92%,
    transparent);
}

.va-event {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 18px;
  padding: 10px 0;
  position: relative;
}

.va-event-time {
  text-align: right;
  padding-right: 18px;
  padding-top: 16px;
  font-size: 11px;
  font-weight: 700;
  color: #404870;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.va-event-dot {
  position: absolute;
  left: 49px;
  top: 18px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #1a1430;
  border: 2px solid rgba(111,149,255,.3);
  z-index: 1;
  transition: border-color .15s;
}

.va-event-dot--alert { border-color: rgba(220,60,60,.6); background: rgba(220,60,60,.1); }
.va-event-dot--warn  { border-color: rgba(220,160,40,.6); background: rgba(220,160,40,.1); }
.va-event-dot--ok    { border-color: rgba(60,180,100,.5); background: rgba(60,180,100,.08); }

/* Card do evento */
.va-event-card {
  background: linear-gradient(160deg, #1c1638 0%, #160f28 100%);
  border: 1px solid rgba(111,149,255,.09);
  border-radius: var(--radius-lg);
  padding: 14px 16px 12px;
  transition: border-color .15s;
}

.va-event-card:hover { border-color: rgba(111,149,255,.22); }

/* Header do evento: thumbnail + meta */
.va-event-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
}

/* Miniatura do frame */
.va-event-thumb-wrap {
  position: relative;
  flex-shrink: 0;
  width: 112px;
  border-radius: 5px;
  overflow: hidden;
  cursor: zoom-in;
  box-shadow: 0 4px 16px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.06);
  transition: transform .18s, box-shadow .18s;
}

.va-event-thumb-wrap:hover {
  transform: scale(1.04);
  box-shadow: 0 8px 24px rgba(0,0,0,.65), 0 0 0 1px rgba(111,149,255,.25);
}

.va-event-thumb {
  width: 112px;
  display: block;
  object-fit: cover;
}

.va-event-thumb-overlay {
  position: absolute;
  inset: 0;
  background: rgba(92,101,192,.55);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .18s;
}

.va-event-thumb-overlay svg { fill: #fff; }
.va-event-thumb-wrap:hover .va-event-thumb-overlay { opacity: 1; }

/* Placeholder quando não há snapshot */
.va-event-thumb-placeholder {
  flex-shrink: 0;
  width: 112px;
  height: 70px;
  background: rgba(255,255,255,.03);
  border: 1px dashed rgba(255,255,255,.08);
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.va-event-thumb-placeholder svg { fill: #303058; }

/* Meta: emoção + etapa + confiança */
.va-event-meta {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding-top: 2px;
}

.va-event-emotion {
  font-size: 13px;
  font-weight: 700;
  color: #d0daff;
  line-height: 1.2;
}

.va-event-stage {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .07em;
  color: #5060a0;
  text-transform: uppercase;
  background: rgba(255,255,255,.04);
  border-radius: 8px;
  padding: 3px 8px;
  display: inline-block;
  width: fit-content;
}

.va-event-conf {
  font-size: 11px;
  color: #404868;
}

/* Sinais observáveis */
.va-event-cues {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.va-event-cues li {
  font-size: 12px;
  color: #6070a0;
  line-height: 1.5;
  padding-left: 12px;
  position: relative;
}

.va-event-cues li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: #303058;
}

/* FACS colapsável */
.va-event-facs {
  margin-top: 8px;
}

.va-event-facs summary {
  font-size: 11px;
  color: #404868;
  cursor: pointer;
  user-select: none;
  letter-spacing: .04em;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 4px;
}

.va-event-facs summary::before { content: '▸'; font-size: 9px; }
.va-event-facs[open] summary::before { content: '▾'; }

.va-event-facs ul {
  list-style: none;
  padding: 8px 0 0 10px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.va-event-facs li {
  font-size: 11px;
  color: #404868;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .va-detail-grid { grid-template-columns: 1fr; }
  .va-side-col { position: static; }
  .va-method-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Processing panel ──────────────────────────────── */
.va-processing-panel {
  display: flex;
  align-items: center;
  gap: 24px;
  background: linear-gradient(135deg, rgba(30,20,60,.8) 0%, rgba(20,14,48,.9) 100%);
  border: 1px solid rgba(104,120,168,.3);
  border-radius: 14px;
  padding: 28px 32px;
  margin-bottom: 28px;
  box-shadow: 0 8px 32px rgba(0,0,0,.4);
}

.va-processing-spinner {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
}

.va-spinner-svg {
  width: 52px;
  height: 52px;
  animation: va-spin 1.2s linear infinite;
}

.va-spinner-svg circle {
  stroke: url(#va-grad);
  stroke: #6878c8;
  stroke-linecap: round;
  stroke-dasharray: 90 30;
  animation: va-dash 1.5s ease-in-out infinite;
}

@keyframes va-spin {
  to { transform: rotate(360deg); }
}

@keyframes va-dash {
  0%   { stroke-dasharray: 10 110; stroke-dashoffset: 0; }
  50%  { stroke-dasharray: 90 30; stroke-dashoffset: -30; }
  100% { stroke-dasharray: 10 110; stroke-dashoffset: -120; }
}

.va-processing-info {
  flex: 1;
}

.va-processing-title {
  font-size: 16px;
  font-weight: 600;
  color: #c0ccf0;
  margin: 0 0 6px;
}

.va-processing-sub {
  font-size: 13px;
  color: #5060a0;
  margin: 0 0 14px;
}

.va-processing-steps {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.va-proc-step {
  font-size: 11px;
  letter-spacing: .06em;
  color: #404868;
  padding: 3px 10px;
  border-radius: 20px;
  border: 1px solid rgba(104,120,168,.2);
  background: rgba(255,255,255,.03);
  transition: all .3s;
}

.va-proc-step--done {
  color: #7090c8;
  border-color: rgba(104,120,168,.5);
  background: rgba(104,120,168,.12);
}

.va-proc-step--active {
  color: #a8c0ff;
  border-color: rgba(168,192,255,.5);
  background: rgba(100,120,220,.18);
  box-shadow: 0 0 8px rgba(100,120,220,.2);
  animation: va-pulse 2s ease-in-out infinite;
}

@keyframes va-pulse {
  0%, 100% { box-shadow: 0 0 8px rgba(100,120,220,.2); }
  50%       { box-shadow: 0 0 16px rgba(100,120,220,.45); }
}

.va-proc-arrow {
  font-size: 12px;
  color: #303058;
}

@media (max-width: 600px) {
  .va-processing-panel { flex-direction: column; align-items: flex-start; }
}

/* ── Premium List Pattern (pl-*) ──────────────────── */
.pl-toolbar {
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.pl-search {
  flex: 1;
  min-width: 200px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(111,149,255,.12);
  border-radius: 10px;
  color: #c0ccf0;
  padding: 9px 14px 9px 38px;
  font-size: 13px;
  outline: none;
  transition: border-color .15s, background .15s;
}

.pl-search:focus {
  border-color: rgba(111,149,255,.32);
  background: rgba(255,255,255,.06);
}

.pl-search::placeholder { color: #404868; }

.pl-search-wrap {
  position: relative;
  flex: 1;
  min-width: 200px;
}

.pl-search-wrap svg {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  fill: #404868;
  width: 16px;
  height: 16px;
  pointer-events: none;
}

.pl-filter {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(111,149,255,.12);
  border-radius: 10px;
  color: #8898cc;
  padding: 9px 12px;
  font-size: 13px;
  outline: none;
  cursor: pointer;
  min-width: 160px;
  transition: border-color .15s;
}

.pl-filter:focus { border-color: rgba(111,149,255,.32); }

.pl-list-actions {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 5px;
  z-index: 2;
}

.pl-list-btn {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .18s, background .18s, border-color .18s, color .18s, box-shadow .18s;
  color: #404868;
  text-decoration: none;
  flex-shrink: 0;
}

.va-list-row:hover .pl-list-btn { opacity: 1; }

.pl-list-btn svg { fill: currentColor; width: 14px; height: 14px; }

.pl-list-btn--edit:hover {
  background: rgba(100,140,255,.15);
  border-color: rgba(100,140,255,.3);
  color: #88aaff;
  box-shadow: 0 0 10px rgba(100,140,255,.2);
}

.pl-list-btn--print:hover {
  background: rgba(60,190,140,.14);
  border-color: rgba(60,190,140,.3);
  color: #50d0a0;
  box-shadow: 0 0 10px rgba(60,190,140,.18);
}

.pl-list-btn--del:hover {
  background: rgba(200,40,40,.18);
  border-color: rgba(220,60,60,.35);
  color: #e06060;
  box-shadow: 0 0 14px rgba(200,40,40,.28);
}

/* padding variants for action groups */
.va-list-row--a2 .va-list-card { padding-right: 84px; }
.va-list-row--a3 .va-list-card { padding-right: 118px; }

.pl-badge-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-end;
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════
   DETAIL PREMIUM (dp-*)
   Padrão de detalhe premium — hero + grid lateral
   ═══════════════════════════════════════════════ */

/* ── Hero ───────────────────────────────────── */
.dp-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  margin-bottom: 28px;
  padding: 36px 44px 32px;
  background: linear-gradient(135deg, #0d0822 0%, #1a1040 40%, #251660 70%, #1a0d35 100%);
  border: 1px solid rgba(111,149,255,.2);
  box-shadow: 0 8px 48px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
}

.dp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 90% at 85% 50%, rgba(111,149,255,.11) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 10% 80%, rgba(92,101,192,.09) 0%, transparent 60%);
  pointer-events: none;
}

.dp-hero-inner { position: relative; z-index: 1; }

.dp-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 12px;
  background: rgba(111,149,255,.14);
  border: 1px solid rgba(111,149,255,.38);
  border-radius: 20px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #a8c4ff;
  margin-bottom: 14px;
}

.dp-hero-eyebrow svg { fill: #6f95ff; width: 12px; height: 12px; }

.dp-hero-title {
  font-size: clamp(1.3rem, 3vw, 1.75rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
  line-height: 1.2;
  margin-bottom: 10px;
}

.dp-hero-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 0;
}

.dp-hero-stats {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.08);
  flex-wrap: wrap;
}

.dp-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.dp-stat-val {
  font-size: 1rem;
  font-weight: 700;
  color: #a0b8ff;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 180px;
}

.dp-stat-label {
  font-size: 10px;
  color: rgba(200,210,240,.45);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.dp-stat-sep {
  width: 1px;
  height: 32px;
  background: rgba(255,255,255,.1);
  flex-shrink: 0;
}

/* Operações variant (amber) */
.dp-hero--operacoes {
  background: linear-gradient(135deg, #120c08 0%, #1e1208 40%, #2e1c0a 70%, #180e06 100%);
  border-color: rgba(255,180,50,.2);
}
.dp-hero--operacoes::before {
  background:
    radial-gradient(ellipse 70% 90% at 85% 50%, rgba(255,180,50,.1) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 10% 80%, rgba(220,140,30,.07) 0%, transparent 60%);
}
.dp-hero--operacoes .dp-hero-eyebrow {
  background: rgba(255,180,50,.12);
  border-color: rgba(255,180,50,.35);
  color: #ffd090;
}
.dp-hero--operacoes .dp-hero-eyebrow svg { fill: #ffb432; }
.dp-hero--operacoes .dp-stat-val { color: #ffc060; }

/* Documentos variant (teal) */
.dp-hero--documentos {
  background: linear-gradient(135deg, #06100e 0%, #0c1e1c 40%, #122820 70%, #081410 100%);
  border-color: rgba(50,200,160,.2);
}
.dp-hero--documentos::before {
  background:
    radial-gradient(ellipse 70% 90% at 85% 50%, rgba(50,200,160,.1) 0%, transparent 70%),
    radial-gradient(ellipse 40% 60% at 10% 80%, rgba(30,160,130,.08) 0%, transparent 60%);
}
.dp-hero--documentos .dp-hero-eyebrow {
  background: rgba(50,200,160,.12);
  border-color: rgba(50,200,160,.35);
  color: #80e8c8;
}
.dp-hero--documentos .dp-hero-eyebrow svg { fill: #32c8a0; }
.dp-hero--documentos .dp-stat-val { color: #60d8b0; }

/* ── Shell layout ───────────────────────────── */
.dp-shell {
  display: grid;
  grid-template-columns: 268px 1fr;
  gap: 22px;
  align-items: start;
}

/* ── Sidebar ────────────────────────────────── */
.dp-side {
  position: sticky;
  top: calc(var(--topbar-height, 56px) + 16px);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dp-side-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dp-side-actions .btn { width: 100%; justify-content: center; }

/* ── Panel (card usado em sidebar e main) ───── */
.dp-panel {
  background: linear-gradient(160deg, rgba(26,20,52,.9) 0%, rgba(16,12,32,.95) 100%);
  border: 1px solid rgba(111,149,255,.12);
  border-radius: var(--radius-xl);
  padding: 20px;
  box-shadow: 0 4px 20px rgba(0,0,0,.3);
}

.dp-panel--operacoes {
  border-color: rgba(255,180,50,.12);
}

.dp-panel--documentos {
  border-color: rgba(50,200,160,.12);
}

.dp-panel-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #5060a0;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

/* ── Field grid ─────────────────────────────── */
.dp-fields {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px 20px;
}

.dp-field {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.dp-field--full { grid-column: 1 / -1; }

.dp-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #404868;
}

.dp-value {
  font-size: 13px;
  color: #b0c0e8;
  line-height: 1.55;
  word-break: break-word;
}

.dp-value--mono {
  font-family: var(--font-mono);
  font-size: 12px;
  color: #8090c0;
}

.dp-value a {
  color: #6f95ff;
  text-decoration: none;
}
.dp-value a:hover { text-decoration: underline; }

/* Sidebar field (single-col, more compact) */
.dp-side-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dp-side-field {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* ── Main column ────────────────────────────── */
.dp-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

/* ── Section in main (panel with header bar) ── */
.dp-section {
  background: linear-gradient(160deg, rgba(26,20,52,.9) 0%, rgba(16,12,32,.95) 100%);
  border: 1px solid rgba(111,149,255,.12);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.3);
}

.dp-section--operacoes { border-color: rgba(255,180,50,.12); }
.dp-section--documentos { border-color: rgba(50,200,160,.12); }

.dp-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.02);
}

.dp-section-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #5060a0;
}

.dp-section-body { padding: 20px; }

/* ── Photo block ────────────────────────────── */
.dp-photo {
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 12px;
  border: 1px solid rgba(111,149,255,.15);
  background: rgba(0,0,0,.2);
  aspect-ratio: 3/4;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dp-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dp-photo-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #303058;
  width: 100%;
  height: 100%;
  min-height: 120px;
}

.dp-photo-empty svg { fill: currentColor; width: 32px; height: 32px; }
.dp-photo-empty span { font-size: 11px; }

/* ── Inline table inside dp-section ─────────── */
.dp-table { width: 100%; border-collapse: collapse; }
.dp-table th {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #404868;
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  text-align: left;
}
.dp-table td {
  font-size: 13px;
  color: #8090c0;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  vertical-align: top;
}
.dp-table tr:last-child td { border-bottom: none; }
.dp-table-empty {
  text-align: center;
  color: #404868 !important;
  padding: 24px !important;
  font-style: italic;
}

/* ── Text body (relatórios, missões) ─────────── */
.dp-text-body {
  font-size: 14px;
  color: #8898cc;
  line-height: 1.75;
  white-space: pre-wrap;
}

/* ── Responsive ─────────────────────────────── */
@media (max-width: 900px) {
  .dp-shell { grid-template-columns: 1fr; }
  .dp-side { position: static; }
  .dp-fields { grid-template-columns: 1fr; }
  .dp-field--full { grid-column: 1; }
}

/* ══════════════════════════════════════════════
   PREMIUM FORM  (pf-*)
   ══════════════════════════════════════════════ */

/* Header banner */
.pf-header {
  background: linear-gradient(135deg, #0d0822 0%, #251660 100%);
  border: 1px solid rgba(111,149,255,0.18);
  border-radius: var(--radius-lg);
  padding: 28px 32px 24px;
  margin-bottom: 24px;
  box-shadow: 0 4px 32px rgba(10,8,30,0.5);
}
.pf-header--operacoes {
  background: linear-gradient(135deg, #120c08 0%, #2e1c0a 100%);
  border-color: rgba(255,180,80,0.18);
}
.pf-header--documentos {
  background: linear-gradient(135deg, #06100e 0%, #122820 100%);
  border-color: rgba(80,220,180,0.18);
}
.pf-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(160,180,230,0.65);
  margin-bottom: 10px;
}
.pf-eyebrow svg { width:15px;height:15px;fill:currentColor;opacity:.75; flex-shrink:0; }
.pf-header--operacoes .pf-eyebrow { color: rgba(230,180,100,0.65); }
.pf-header--documentos .pf-eyebrow { color: rgba(100,220,180,0.65); }
.pf-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
  line-height: 1.25;
}
.pf-doc-num {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: .75rem;
  color: rgba(180,200,255,0.55);
  background: rgba(111,149,255,0.1);
  border: 1px solid rgba(111,149,255,0.18);
  padding: 2px 10px;
  border-radius: 4px;
}
.pf-header--documentos .pf-doc-num {
  color: rgba(100,220,180,0.55);
  background: rgba(80,200,160,0.08);
  border-color: rgba(80,200,160,0.18);
}

/* Shell layout */
.pf-shell {
  display: grid;
  grid-template-columns: 232px 1fr;
  gap: 20px;
  align-items: start;
}
.pf-side {
  position: sticky;
  top: 80px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pf-side-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  background: var(--color-bg-card);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
}
.pf-side-actions .btn { justify-content: center; text-align: center; }
.pf-side-meta {
  background: var(--color-bg-card);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.pf-meta-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #5868a0;
  padding: 11px 14px 9px;
  border-bottom: 1px solid var(--color-bg-elevated);
}
.pf-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  font-size: 12px;
}
.pf-meta-row:last-child { border-bottom: none; }
.pf-meta-row .pf-ml { color: #5868a0; white-space: nowrap; }
.pf-meta-row .pf-mv { color: #c5cbe4; font-weight: 500; text-align: right; }

/* Main area */
.pf-main { min-width: 0; display: flex; flex-direction: column; gap: 16px; }

/* Sections */
.pf-section {
  background: var(--color-bg-card);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.pf-section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: rgba(255,255,255,0.022);
  border-bottom: 1px solid var(--color-bg-elevated);
}
.pf-section-header svg { width:17px;height:17px;fill:var(--color-accent);opacity:.8;flex-shrink:0; }
.pf-section-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #a0aacc;
}
/* operacoes accent */
.pf-section--operacoes .pf-section-header { background: rgba(255,150,50,0.04); }
.pf-section--operacoes .pf-section-header svg { fill: #e8a04a; }
.pf-section--operacoes .pf-section-title { color: #d0b080; }
/* documentos accent */
.pf-section--documentos .pf-section-header { background: rgba(50,200,160,0.04); }
.pf-section--documentos .pf-section-header svg { fill: #50c8a0; }
.pf-section--documentos .pf-section-title { color: #90d8c0; }

.pf-section-body { padding: 20px; }

/* Grid & fields */
.pf-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.pf-field { display: flex; flex-direction: column; gap: 5px; }
.pf-field--full { grid-column: 1/-1; }
.pf-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #6878a8;
}
.pf-error { font-size: 12px; color: #ff8080; margin-top: 2px; }

/* Error banner */
.pf-errors {
  padding: 14px 18px;
  background: rgba(200,50,50,0.1);
  border: 1px solid rgba(200,50,50,0.22);
  border-radius: var(--radius-md);
  color: #ff9090;
  font-size: 13px;
}
.pf-errors p { margin: 0; }
.pf-errors p + p { margin-top: 3px; }

/* Anexos within pf-section */
.pf-anexos-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.pf-anexo-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius-md);
  font-size: 13px;
  color: #c5cbe4;
}
.pf-anexo-row label {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  color: #ff8080;
  font-size: 12px;
  white-space: nowrap;
}

/* Checkbox select inside pf */
.pf-section .checkbox-select { padding: 4px 0; }

/* Responsive */
@media (max-width: 860px) {
  .pf-shell { grid-template-columns: 1fr; }
  .pf-side { position: static; }
  .pf-grid { grid-template-columns: 1fr; }
  .pf-field--full { grid-column: 1; }
}

/* ══════════════════════════════════════════════
   LOUSA DE VÍNCULOS  (la-*)
   ══════════════════════════════════════════════ */

/* Command bar */
.la-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  margin-bottom: 16px;
  background: linear-gradient(135deg, #0d0822 0%, #1a1240 100%);
  border: 1px solid rgba(111,149,255,0.18);
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 20px rgba(10,8,30,0.5);
}
.la-header-left { flex: 1; min-width: 0; }
.la-header-center { flex: 0 0 auto; }
.la-header-right { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

.la-kicker {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(160,180,230,0.55);
  margin-bottom: 3px;
}
.la-kicker svg { width:13px;height:13px;fill:currentColor;opacity:.7; }
.la-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.la-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(111,149,255,0.1);
  border: 1px solid rgba(111,149,255,0.2);
  border-radius: 99px;
  font-size: 11px;
  color: rgba(180,200,255,0.7);
  white-space: nowrap;
}
.la-status-pill::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #6f95ff;
  flex-shrink: 0;
}

/* Header buttons */
.la-hbtn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 12px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.05);
  color: #b0bce0;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}
.la-hbtn svg { width:14px;height:14px;fill:currentColor;flex-shrink:0; }
.la-hbtn:hover {
  background: rgba(111,149,255,0.15);
  border-color: rgba(111,149,255,0.35);
  color: #fff;
}
.la-hbtn--ghost {
  border-style: dashed;
  border-color: rgba(111,149,255,0.2);
  background: transparent;
}
.la-hbtn--primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  font-weight: 600;
}
.la-hbtn--primary:hover {
  background: #5580ff;
  border-color: #5580ff;
}

/* Shell */
.la-shell {
  display: grid;
  grid-template-columns: 268px minmax(0,1fr);
  gap: 14px;
  align-items: start;
}

/* Sidebar panel */
.la-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--color-bg-surface);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  max-height: calc(100vh - 200px);
  overflow-y: auto;
  overflow-x: hidden;
  position: sticky;
  top: 72px;
}
.la-panel::-webkit-scrollbar { width: 4px; }
.la-panel::-webkit-scrollbar-thumb { background: rgba(111,149,255,0.25); border-radius: 2px; }

/* Project meta */
.la-panel-meta {
  padding: 14px 14px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-bottom: 1px solid var(--color-bg-elevated);
  padding-bottom: 14px;
}

.la-field { display: flex; flex-direction: column; gap: 4px; }
.la-field-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #5868a0;
}
.la-input {
  width: 100%;
  padding: 7px 10px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius-md);
  color: #e8e8f0;
  font-size: 12px;
  font-family: inherit;
  resize: vertical;
  box-sizing: border-box;
  transition: border-color .15s, box-shadow .15s;
}
.la-input:focus {
  outline: none;
  border-color: rgba(111,149,255,0.5);
  box-shadow: 0 0 0 3px rgba(111,149,255,0.1);
}

/* Collapsible sections */
.la-section { border-bottom: 1px solid var(--color-bg-elevated); }
.la-section:last-child { border-bottom: none; flex: 1; }

.la-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #a0aacc;
  list-style: none;
  user-select: none;
  transition: background .12s, color .12s;
}
.la-section-head::-webkit-details-marker { display: none; }
.la-section-head:hover { background: rgba(255,255,255,0.03); color: #c8d0f0; }
.la-section-head svg:first-child { width:14px;height:14px;fill:currentColor;flex-shrink:0; }

.la-section-count {
  margin-left: auto;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  background: rgba(111,149,255,0.15);
  border: 1px solid rgba(111,149,255,0.25);
  border-radius: 9px;
  font-size: 10px;
  color: #a0b8ff;
  text-align: center;
  line-height: 18px;
}
.la-chevron { width:16px!important;height:16px!important;fill:currentColor!important;opacity:.5;margin-left:auto;transition:transform .2s;flex-shrink:0; }
.la-section[open] .la-chevron { transform: rotate(180deg); }
.la-section[open] > .la-section-head { color: #c8d0f0; }

.la-section-body {
  padding: 10px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.la-section-sub {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #4a5888;
  margin: 2px 0;
}

/* Search */
.la-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.la-search-wrap svg {
  position: absolute;
  left: 8px;
  width: 13px;
  height: 13px;
  fill: #5868a0;
  pointer-events: none;
}
.la-search {
  width: 100%;
  padding: 7px 10px 7px 28px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: var(--radius-md);
  color: #e8e8f0;
  font-size: 12px;
  box-sizing: border-box;
}
.la-search:focus { outline: none; border-color: rgba(111,149,255,0.4); }

/* Node list */
.la-node-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 220px;
  overflow-y: auto;
  margin-top: 4px;
}
.la-node-list::-webkit-scrollbar { width: 3px; }
.la-node-list::-webkit-scrollbar-thumb { background: rgba(111,149,255,0.2); border-radius: 2px; }

/* Tool buttons */
.la-tool-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 8px 12px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.04);
  color: #b0bce0;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.la-tool-btn svg { width:14px;height:14px;fill:currentColor;flex-shrink:0; }
.la-tool-btn:hover { background: rgba(111,149,255,0.1); border-color: rgba(111,149,255,0.3); color: #fff; }
.la-tool-btn--primary { background: rgba(111,149,255,0.15); border-color: rgba(111,149,255,0.3); color: #a0c0ff; }
.la-tool-btn--primary:hover { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.la-tool-btn--danger { border-color: rgba(200,80,80,0.2); color: #c08080; }
.la-tool-btn--danger:hover { background: rgba(180,50,50,0.2); border-color: rgba(200,80,80,0.4); color: #ffaaaa; }

/* Icon grid */
.la-icon-grid {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 5px;
}
.la-icon-btn {
  height: 36px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: var(--radius-md);
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  transition: background .12s, border-color .12s, transform .1s;
}
.la-icon-btn:hover { background: rgba(111,149,255,0.15); border-color: rgba(111,149,255,0.3); transform: scale(1.1); }

/* Connect state */
.la-connect-state {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius-md);
}
.la-connect-node { flex: 1; min-width: 0; }
.la-connect-role { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: #4a5888; margin-bottom: 2px; }
.la-connect-val { display: block; font-size: 12px; color: #e8e8f0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.la-connect-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }

/* Legend */
.la-legend { display: flex; flex-direction: column; gap: 6px; }
.la-legend-item { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #b0bce0; }
.la-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.la-dot--low { background: #6f95ff; }
.la-dot--high { background: #e4c05a; }
.la-dot--critical { background: #e35c6a; }
.la-dot--text { background: #5a5a8a; border: 1px solid rgba(255,255,255,0.15); }

/* Projects list */
.la-project-list { display: flex; flex-direction: column; gap: 3px; }
.la-project-link {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  color: #8898cc;
  font-size: 12px;
  text-decoration: none;
  transition: background .12s, color .12s, border-color .12s;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.la-project-link svg { width:12px;height:12px;fill:currentColor;flex-shrink:0; }
.la-project-link:hover { background: rgba(111,149,255,0.08); color: #c0cce8; border-color: rgba(111,149,255,0.15); }
.la-project-link--active { background: rgba(111,149,255,0.12); color: #a0c0ff; border-color: rgba(111,149,255,0.25); }

/* Board */
.la-board {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.la-board-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--color-bg-elevated);
  background: rgba(255,255,255,0.018);
}
.la-board-info { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.la-board-info strong { font-size: 12px; color: #e8e8f0; font-weight: 600; }
.la-board-sep { color: #3a4060; font-size: 12px; }
.la-board-hint { font-size: 11px; color: #4a5888; }

.la-canvas-wrap {
  background:
    linear-gradient(rgba(111,149,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(111,149,255,0.06) 1px, transparent 1px),
    #100828;
  background-size: 32px 32px;
  overflow: hidden;
}
.la-canvas {
  width: 100%;
  height: 680px;
  display: block;
  touch-action: none;
}

/* Responsive */
@media (max-width: 960px) {
  .la-shell { grid-template-columns: 1fr; }
  .la-panel { position: static; max-height: 400px; }
  .la-header { flex-wrap: wrap; }
  .la-header-right { flex-wrap: wrap; }
}

/* Node list items gerados por JS (la-node-list) */
.la-node-list .link-node-list-item {
  display: flex;
  flex-direction: column;
  gap: 1px;
  width: 100%;
  padding: 8px 10px;
  text-align: left;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background .12s, border-color .12s;
}
.la-node-list .link-node-list-item:hover {
  background: rgba(111,149,255,0.1);
  border-color: rgba(111,149,255,0.3);
}
.la-node-list .link-node-list-item strong {
  font-size: 12px;
  font-weight: 600;
  color: #e8e8f0;
  line-height: 1.25;
}
.la-node-list .link-node-list-item span {
  font-size: 11px;
  color: #6878a8;
}

/* ══════════════════════════════════════════════
   PROJETO LIST  (pl-*)
   ══════════════════════════════════════════════ */
.pl-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.pl-count {
  font-size: 12px;
  font-weight: 600;
  color: #5868a0;
  letter-spacing: .04em;
}
.pl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.pl-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: border-color .15s, box-shadow .15s, transform .12s;
}
.pl-card:hover {
  border-color: rgba(111,149,255,0.3);
  box-shadow: 0 6px 24px rgba(10,8,30,0.45);
  transform: translateY(-1px);
}
.pl-card-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.pl-card-icon {
  width: 38px;
  height: 38px;
  background: rgba(111,149,255,0.1);
  border: 1px solid rgba(111,149,255,0.2);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pl-card-icon svg { width: 17px; height: 17px; fill: #6f95ff; }
.pl-card-title {
  font-size: 14px;
  font-weight: 700;
  color: #e8e8f0;
  margin: 0;
  line-height: 1.35;
  word-break: break-word;
}
.pl-card-stats {
  display: flex;
  gap: 0;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.05);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.pl-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 10px 8px;
}
.pl-stat + .pl-stat {
  border-left: 1px solid rgba(255,255,255,0.05);
}
.pl-stat-value {
  font-size: 22px;
  font-weight: 800;
  color: #6f95ff;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.pl-stat-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #4a5888;
}
.pl-card-desc {
  font-size: 12px;
  color: #6878a8;
  margin: 0;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pl-card-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: #3a4878;
  margin-top: auto;
}
.pl-card-meta svg { width: 12px; height: 12px; fill: currentColor; flex-shrink: 0; }
.pl-card-actions {
  display: flex;
  gap: 6px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.05);
}
.pl-card-actions .btn { flex-shrink: 0; }
.pl-card-actions .btn:first-child { flex: 1; text-align: center; justify-content: center; }
.pl-empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 64px 32px;
  background: var(--color-bg-surface);
  border: 1px dashed rgba(111,149,255,0.18);
  border-radius: var(--radius-lg);
  gap: 8px;
}
.pl-empty svg { width: 48px; height: 48px; fill: rgba(111,149,255,0.18); }
.pl-empty-title { font-size: 15px; font-weight: 600; color: #6878a8; margin: 4px 0 0; }
.pl-empty-sub { font-size: 13px; color: #3a4060; }

/* ══════════════════════════════════════════════
   API TOKEN PAGE  (tk-*)
   ══════════════════════════════════════════════ */

/* New token reveal banner */
.tk-reveal {
  margin-bottom: 24px;
  background: linear-gradient(135deg, #0d1f0f 0%, #0a1a1c 100%);
  border: 1px solid rgba(80,200,120,0.3);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.tk-reveal-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: rgba(80,200,120,0.08);
  border-bottom: 1px solid rgba(80,200,120,0.15);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #60d080;
}
.tk-reveal-head svg { width: 14px; height: 14px; fill: currentColor; }
.tk-reveal-body {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
}
.tk-token-code {
  flex: 1;
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 13px;
  color: #a0f0b0;
  word-break: break-all;
  background: rgba(80,200,120,0.06);
  padding: 8px 12px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(80,200,120,0.15);
}
.tk-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  background: rgba(80,200,120,0.15);
  border: 1px solid rgba(80,200,120,0.3);
  border-radius: var(--radius-md);
  color: #60d080;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background .12s;
}
.tk-copy-btn:hover { background: rgba(80,200,120,0.25); }
.tk-copy-btn svg { width: 14px; height: 14px; fill: currentColor; }
.tk-reveal-hint {
  padding: 0 18px 12px;
  font-size: 11px;
  color: rgba(80,200,120,0.5);
  margin: 0;
}

/* Token table */
.tk-preview {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 12px;
  color: #7888b8;
  background: rgba(255,255,255,0.04);
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid rgba(255,255,255,0.07);
  letter-spacing: .04em;
}
.tk-row--inactive td { opacity: .45; }
.tk-actions { white-space: nowrap; }
.tk-actions form { display: inline; }

/* Sidebar section helper */
.pf-side-section { margin-bottom: 4px; }
.pf-side-section-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #5868a0;
  margin-bottom: 8px;
}

/* Docs */
.tk-doc { display: flex; flex-direction: column; gap: 4px; }
.tk-doc-p { font-size: 12px; color: #8898cc; margin: 0; }
.tk-doc-code {
  display: block;
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 11px;
  color: #a0b8ff;
  background: rgba(111,149,255,0.07);
  border: 1px solid rgba(111,149,255,0.15);
  border-radius: var(--radius-md);
  padding: 6px 10px;
  word-break: break-all;
}

/* Endpoint reference */
.tk-ref-grid { display: flex; flex-direction: column; gap: 10px; }
.tk-ref-item {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.05);
  border-radius: var(--radius-md);
  flex-wrap: wrap;
}
.tk-method {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  flex-shrink: 0;
}
.tk-method--post { background: rgba(111,149,255,0.15); color: #8fb0ff; border: 1px solid rgba(111,149,255,0.25); }
.tk-method--get  { background: rgba(80,200,120,0.12);  color: #70d090; border: 1px solid rgba(80,200,120,0.22); }
.tk-ref-url {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 12px;
  color: #c0ccf0;
  flex-shrink: 0;
}
.tk-ref-desc { font-size: 12px; color: #6878a8; }

/* Code block (curl example) */
.tk-code-block {
  background: rgba(10,8,30,0.6);
  border: 1px solid rgba(111,149,255,0.12);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 12px;
  color: #a0b8d8;
  line-height: 1.7;
  overflow-x: auto;
  white-space: pre;
  margin: 0;
}

/* Small fields table */
/* ══════════════════════════════════════════════
   SYNC CARDS  (sy-*)
   ══════════════════════════════════════════════ */
.sy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}
.sy-card {
  background: var(--color-bg-surface);
  border: 1px solid var(--color-bg-elevated);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  transition: border-color .15s, box-shadow .15s;
}
.sy-card:hover { border-color: rgba(111,149,255,0.25); box-shadow: 0 4px 20px rgba(10,8,30,0.35); }
.sy-card--off { opacity: .6; }

.sy-card-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 18px 18px 14px;
}
.sy-card-icon {
  width: 36px; height: 36px;
  background: rgba(111,149,255,0.1);
  border: 1px solid rgba(111,149,255,0.2);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sy-card-icon svg { width: 16px; height: 16px; fill: #6f95ff; }
.sy-card-meta { flex: 1; min-width: 0; }
.sy-card-title { font-size: 14px; font-weight: 700; color: #e8e8f0; margin: 0 0 3px; }
.sy-card-url { font-size: 11px; color: #4a5888; font-family: 'IBM Plex Mono', monospace; word-break: break-all; }

.sy-last-run {
  margin: 0 14px 0;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255,255,255,0.05);
  background: rgba(255,255,255,0.025);
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.sy-last-run--sucesso { border-color: rgba(80,200,120,0.18); background: rgba(80,200,120,0.05); }
.sy-last-run--parcial { border-color: rgba(228,192,90,0.18); background: rgba(228,192,90,0.04); }
.sy-last-run--erro    { border-color: rgba(227,92,106,0.18); background: rgba(227,92,106,0.04); }

.sy-last-run-status {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #8898cc;
}
.sy-last-run--sucesso .sy-last-run-status { color: #60c080; }
.sy-last-run--parcial .sy-last-run-status { color: #c8a840; }
.sy-last-run--erro    .sy-last-run-status { color: #d06070; }
.sy-last-run-status svg { width: 13px; height: 13px; fill: currentColor; }

.sy-last-run-stats {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #8898cc;
  flex-wrap: wrap;
}
.sy-sep { color: #3a4060; }
.sy-stat--criado strong   { color: #60c080; }
.sy-stat--atualizado strong { color: #6f95ff; }
.sy-stat--erro strong     { color: #d06070; }
.sy-last-run-date { font-size: 10px; color: #3a4878; }

.sy-never-run {
  margin: 0 14px;
  padding: 10px 12px;
  font-size: 12px;
  color: #3a4878;
  background: rgba(255,255,255,0.018);
  border: 1px dashed rgba(255,255,255,0.06);
  border-radius: var(--radius-md);
  text-align: center;
}

.sy-history {
  display: flex;
  gap: 4px;
  padding: 8px 18px 0;
  align-items: center;
}
.sy-history-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  cursor: default;
}
.sy-history-dot--sucesso { background: #60c080; }
.sy-history-dot--parcial { background: #c8a840; }
.sy-history-dot--erro    { background: #d06070; }

.sy-card-actions {
  display: flex;
  gap: 6px;
  padding: 14px 14px 14px;
  margin-top: auto;
  border-top: 1px solid rgba(255,255,255,0.05);
}
.sy-card-actions form { display: contents; }

/* pf-hint helper */
.pf-hint { font-size: 11px; color: #4a5888; margin-top: 3px; }

.tk-fields-table td code {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 11px;
  color: #a0b8ff;
  background: rgba(111,149,255,0.08);
  padding: 1px 5px;
  border-radius: 3px;
}

/* ══════════════════════════════════════════════════════════════
   CENTRAL DE INTELIGÊNCIA — fi-* (fusão inteligência)
══════════════════════════════════════════════════════════════ */

/* Stats row */
.fi-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
@media (max-width: 900px) { .fi-stats-row { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px)  { .fi-stats-row { grid-template-columns: 1fr; } }

.fi-stat-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  position: relative;
  transition: border-color var(--transition);
}
.fi-stat-card:hover { border-color: rgba(111,149,255,0.4); }
.fi-stat-card--alert { border-color: rgba(227,92,106,0.25); }
.fi-stat-card--alert:hover { border-color: rgba(227,92,106,0.5); }

.fi-stat-icon {
  width: 40px; height: 40px;
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.fi-stat-icon svg { width: 20px; height: 20px; fill: currentColor; }
.fi-stat-icon--dossie  { background: rgba(111,149,255,0.12); color: #6f95ff; }
.fi-stat-icon--dado    { background: rgba(80,200,120,0.12);  color: #50c878; }
.fi-stat-icon--alerta  { background: rgba(227,92,106,0.12);  color: #e35c6a; }
.fi-stat-icon--alvo    { background: rgba(228,192,90,0.12);  color: #c8a840; }

.fi-stat-body { flex: 1; min-width: 0; }
.fi-stat-num   { font-size: 28px; font-weight: 700; line-height: 1; color: var(--text-primary); }
.fi-stat-label { font-size: 11px; color: var(--text-muted); margin-top: 3px; }

.fi-stat-link {
  position: absolute; bottom: 10px; right: 14px;
  font-size: 10px; color: var(--color-accent); opacity: .7;
  text-decoration: none;
  transition: opacity var(--transition);
}
.fi-stat-link:hover { opacity: 1; }

/* Charts */
.fi-charts-row {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 16px;
  margin-bottom: 24px;
}
@media (max-width: 820px) { .fi-charts-row { grid-template-columns: 1fr; } }

.fi-chart-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
}
.fi-chart-card--wide { }
.fi-chart-card--full { }
.fi-chart-title {
  font-size: 12px; font-weight: 600; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em;
  margin-bottom: 14px;
}

/* Recent row */
.fi-recent-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 24px;
}
@media (max-width: 760px) { .fi-recent-row { grid-template-columns: 1fr; } }

.fi-recent-col { }
.fi-section-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px;
}
.fi-section-title { font-size: 13px; font-weight: 600; color: var(--text-secondary); }

/* Item rows (dados avulsos) */
.fi-item-row {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 6px;
  text-decoration: none;
  background: var(--bg-card);
  transition: border-color var(--transition), background var(--transition);
}
.fi-item-row:hover { border-color: rgba(111,149,255,0.4); background: rgba(111,149,255,0.04); }
.fi-item-row--alerta { border-left: 3px solid rgba(227,92,106,0.5); }

.fi-item-body { flex: 1; min-width: 0; }
.fi-item-title { font-size: 13px; font-weight: 500; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fi-item-meta  { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.fi-item-conf  { font-size: 11px; font-weight: 700; color: var(--text-muted); background: rgba(255,255,255,0.05); padding: 2px 6px; border-radius: 10px; flex-shrink: 0; }

/* Dossiê rows (recent) */
.fi-dossie-row {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 6px;
  text-decoration: none;
  background: var(--bg-card);
  transition: border-color var(--transition);
}
.fi-dossie-row:hover { border-color: rgba(111,149,255,0.4); }
.fi-dossie-icon { color: #6f95ff; flex-shrink: 0; margin-top: 2px; }
.fi-dossie-icon svg { width: 16px; height: 16px; fill: currentColor; }
.fi-dossie-body { flex: 1; min-width: 0; }
.fi-dossie-title { font-size: 13px; font-weight: 500; color: var(--text-primary); }
.fi-dossie-meta  { display: flex; gap: 8px; align-items: center; margin-top: 4px; font-size: 11px; color: var(--text-muted); }

.fi-view-all { font-size: 11px; color: var(--color-accent); text-decoration: none; display: block; margin-top: 8px; opacity: .8; }
.fi-view-all:hover { opacity: 1; }
.fi-empty { font-size: 12px; color: var(--text-muted); padding: 16px 0; }

/* Badges fi-badge */
.fi-badge {
  display: inline-block; padding: 2px 8px;
  border-radius: 10px; font-size: 11px; font-weight: 600;
  white-space: nowrap;
}
.fi-badge--evento      { background: rgba(111,149,255,0.15); color: #6f95ff;  border: 1px solid rgba(111,149,255,0.3); }
.fi-badge--informacao  { background: rgba(80,200,120,0.12);  color: #50c878;  border: 1px solid rgba(80,200,120,0.3); }
.fi-badge--observacao  { background: rgba(228,192,90,0.12);  color: #c8a840;  border: 1px solid rgba(228,192,90,0.3); }
.fi-badge--alerta      { background: rgba(227,92,106,0.12);  color: #e35c6a;  border: 1px solid rgba(227,92,106,0.3); }
.fi-badge--inteligencia{ background: rgba(160,120,220,0.12); color: #b07adc;  border: 1px solid rgba(160,120,220,0.3); }

/* List icon colors */
.fi-list-icon {
  width: 44px; height: 44px; border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.fi-list-icon svg { width: 20px; height: 20px; fill: currentColor; }
.fi-list-icon--evento      { background: rgba(111,149,255,0.12); color: #6f95ff; }
.fi-list-icon--informacao  { background: rgba(80,200,120,0.12);  color: #50c878; }
.fi-list-icon--observacao  { background: rgba(228,192,90,0.12);  color: #c8a840; }
.fi-list-icon--alerta      { background: rgba(227,92,106,0.12);  color: #e35c6a; }
.fi-list-icon--inteligencia{ background: rgba(160,120,220,0.12); color: #b07adc; }

/* Dossiê card grid */
.fi-dossie-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.fi-dossie-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  display: flex; flex-direction: column; gap: 10px;
  transition: border-color var(--transition);
}
.fi-dossie-card:hover { border-color: rgba(111,149,255,0.4); }
.fi-dossie-card-head { display: flex; gap: 12px; align-items: flex-start; }
.fi-dossie-card-icon { color: #6f95ff; flex-shrink: 0; margin-top: 2px; }
.fi-dossie-card-icon svg { width: 20px; height: 20px; fill: currentColor; }
.fi-dossie-card-title { font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 4px; }
.fi-dossie-card-period { font-size: 11px; color: var(--color-accent); }
.fi-dossie-card-excerpt { font-size: 12px; color: var(--text-muted); line-height: 1.5; }
.fi-dossie-card-stats { font-size: 11px; color: var(--text-muted); display: flex; gap: 6px; align-items: center; }
.fi-sep { opacity: .4; }
.fi-dossie-card-actions { display: flex; gap: 8px; margin-top: 4px; }

.fi-empty-full {
  grid-column: 1/-1;
  display: flex; flex-direction: column; align-items: center;
  padding: 48px 0; color: var(--text-muted); gap: 8px;
}
.fi-empty-full svg { fill: var(--text-muted); opacity: .3; }

/* Detail page */
.fi-content-text { font-size: 14px; color: var(--text-secondary); line-height: 1.7; }

/* Dossiê detail — conclusion summary */
.ds-conclusion-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(111,149,255,0.26);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(111,149,255,0.16), rgba(80,200,120,0.06)),
    var(--bg-card);
  padding: 18px 20px;
  box-shadow: 0 18px 44px rgba(0,0,0,0.22);
}
.ds-conclusion-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, #6f95ff, #50c878, #e4c05a);
}
.ds-conclusion-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}
.ds-conclusion-kicker {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #8faaff;
  margin-bottom: 3px;
}
.ds-conclusion-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--text-primary);
}
.ds-conclusion-mode {
  flex-shrink: 0;
  border: 1px solid rgba(111,149,255,0.26);
  background: rgba(111,149,255,0.1);
  color: #b9c8ff;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.ds-conclusion-mode--formal {
  border-color: rgba(80,200,120,0.34);
  background: rgba(80,200,120,0.12);
  color: #9ee8b3;
}
.ds-conclusion-chips {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}
.ds-conclusion-chip {
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius-sm);
  background: rgba(0,0,0,0.16);
  padding: 9px 10px;
}
.ds-conclusion-chip span {
  display: block;
  font-size: 10px;
  color: var(--text-muted);
  margin-bottom: 2px;
}
.ds-conclusion-chip strong {
  display: block;
  font-size: 18px;
  line-height: 1;
  color: var(--text-primary);
}
.ds-conclusion-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ds-conclusion-list li {
  position: relative;
  padding-left: 18px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-secondary);
}
.ds-conclusion-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .65em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #50c878;
  box-shadow: 0 0 10px rgba(80,200,120,0.45);
}
.ds-conclusion-sources {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: 14px;
  padding-top: 12px;
}
.ds-conclusion-source-label {
  font-size: 10px;
  font-weight: 800;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-right: 2px;
}
.ds-conclusion-source {
  font-size: 10px;
  color: #cbd6ff;
  border: 1px solid rgba(111,149,255,0.18);
  background: rgba(111,149,255,0.08);
  border-radius: 999px;
  padding: 3px 7px;
}
.ds-conclusion-source strong { color: #fff; }
@media (max-width: 720px) {
  .ds-conclusion-head { flex-direction: column; }
  .ds-conclusion-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 460px) {
  .ds-conclusion-card { padding: 16px; }
  .ds-conclusion-chips { grid-template-columns: 1fr; }
}

/* Auditoria */
.aud-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 16px;
  margin-bottom: 16px;
}
.aud-action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  font-size: 13px;
  color: var(--text-secondary);
}
.aud-action-row:last-child { border-bottom: 0; }
.aud-action-row strong { color: var(--text-primary); }
.aud-actions { display: flex; gap: 8px; margin-top: 14px; }
.aud-media-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.aud-media-summary div {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.025);
  border-radius: var(--radius-sm);
  padding: 10px;
}
.aud-media-summary span {
  display: block;
  font-size: 10px;
  color: var(--text-muted);
  margin-bottom: 3px;
}
.aud-media-summary strong { color: var(--text-primary); font-size: 14px; }
.aud-log-table {
  display: grid;
  gap: 6px;
}
.aud-log-row {
  display: grid;
  grid-template-columns: 116px 90px minmax(0, 1fr) 140px;
  gap: 10px;
  align-items: center;
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.02);
  border-radius: var(--radius-sm);
  padding: 9px 10px;
  font-size: 12px;
}
.aud-log-time,
.aud-log-user {
  color: var(--text-muted);
  white-space: nowrap;
}
.aud-log-main {
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.aud-log-main strong { color: var(--text-primary); margin-right: 6px; }
.aud-log-main small { color: var(--text-muted); margin-left: 8px; }
.aud-log-action {
  justify-self: start;
  border: 1px solid rgba(111,149,255,0.22);
  background: rgba(111,149,255,0.1);
  color: #b9c8ff;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}
.aud-log-action--criacao { border-color: rgba(80,200,120,0.32); background: rgba(80,200,120,0.12); color: #9ee8b3; }
.aud-log-action--alteracao { border-color: rgba(228,192,90,0.32); background: rgba(228,192,90,0.12); color: #f0d676; }
.aud-log-action--exclusao { border-color: rgba(227,92,106,0.32); background: rgba(227,92,106,0.12); color: #ff9aa4; }
.aud-log-action--midia { border-color: rgba(160,120,220,0.32); background: rgba(160,120,220,0.12); color: #d0b2ff; }
.aud-media-table {
  display: grid;
  gap: 6px;
}
.aud-media-head,
.aud-media-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 100px 90px 94px;
  gap: 12px;
  align-items: center;
}
.aud-media-head {
  color: var(--text-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 0 10px 4px;
}
.aud-media-row {
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.02);
  border-radius: var(--radius-sm);
  padding: 10px;
  font-size: 12px;
}
.aud-media-name {
  min-width: 0;
}
.aud-media-name strong,
.aud-media-name small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.aud-media-name strong { color: var(--text-primary); }
.aud-media-name small { color: var(--text-muted); margin-top: 2px; }
.aud-media-status {
  justify-self: start;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 10px;
  font-weight: 700;
}
.aud-media-status--ok {
  background: rgba(80,200,120,0.12);
  color: #9ee8b3;
  border: 1px solid rgba(80,200,120,0.28);
}
.aud-media-status--orphan {
  background: rgba(227,92,106,0.12);
  color: #ff9aa4;
  border: 1px solid rgba(227,92,106,0.28);
}
.aud-delete-form { margin: 0; }
@media (max-width: 920px) {
  .aud-grid { grid-template-columns: 1fr; }
  .aud-log-row { grid-template-columns: 1fr; align-items: start; }
  .aud-media-head { display: none; }
  .aud-media-row { grid-template-columns: 1fr; }
  .aud-media-summary { grid-template-columns: 1fr; }
}

/* Gestão de acessos */
.page-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.access-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  margin-bottom: 10px;
}
.access-row--invite {
  grid-template-columns: minmax(0, 1fr) auto auto;
}
.access-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.access-main strong {
  color: var(--text-primary);
  font-size: 14px;
}
.access-main span {
  color: var(--text-muted);
  font-size: 12px;
}
.access-link-input {
  width: 100%;
  margin-top: 8px;
  border: 1px solid rgba(111,149,255,0.24);
  background: rgba(111,149,255,0.08);
  color: var(--text-primary);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  font-size: 12px;
}
.access-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.access-pill {
  border: 1px solid rgba(111,149,255,0.22);
  background: rgba(111,149,255,0.1);
  color: #b9c8ff;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}
.access-pill--ok {
  border-color: rgba(80,200,120,0.32);
  background: rgba(80,200,120,0.12);
  color: #9ee8b3;
}
.access-pill--danger {
  border-color: rgba(227,92,106,0.32);
  background: rgba(227,92,106,0.12);
  color: #ff9aa4;
}
.access-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.access-check-grid label {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.025);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  color: var(--text-secondary);
  font-size: 13px;
}
@media (max-width: 820px) {
  .access-row { grid-template-columns: 1fr; align-items: start; }
  .access-meta { justify-content: flex-start; }
  .access-check-grid { grid-template-columns: 1fr; }
}
.module-access-table {
  display: grid;
  gap: 6px;
  margin-bottom: 16px;
}
.module-access-group-title {
  margin: 14px 0 8px;
  color: var(--text-primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.module-access-head,
.module-access-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) repeat(6, 74px);
  gap: 8px;
  align-items: center;
}
.module-access-head {
  color: var(--text-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 0 10px 4px;
}
.module-access-row {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.025);
  border-radius: var(--radius-sm);
  padding: 10px;
}
.module-access-row strong {
  color: var(--text-primary);
  font-size: 12px;
}
.module-access-row label {
  display: flex;
  justify-content: center;
}
.access-advanced {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.02);
  padding: 12px;
}
.access-advanced summary {
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 700;
}
.access-advanced .pf-section {
  margin-top: 12px;
}
.twofa-setup-box {
  border: 1px solid rgba(111,149,255,0.22);
  background: rgba(111,149,255,0.08);
  border-radius: var(--radius-sm);
  padding: 12px;
  color: var(--text-secondary);
}
.twofa-setup-box strong {
  display: block;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.twofa-setup-box p {
  margin: 8px 0 6px;
  font-size: 12px;
}
.twofa-setup-box input,
.twofa-choice-list input,
.login-card #id_codigo {
  width: 100%;
  border: 1px solid rgba(111,149,255,0.24);
  background: rgba(255,255,255,0.04);
  color: var(--text-primary);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
}
.twofa-choice-list ul {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
}
.twofa-choice-list li {
  margin-bottom: 8px;
  color: var(--text-secondary);
}
.invite-wrapper {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 18px;
  position: relative;
  z-index: 1;
}
.invite-card {
  width: min(860px, 100%);
  background: rgba(12,18,32,0.92);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius);
  padding: 30px;
  box-shadow: 0 24px 70px rgba(0,0,0,0.45);
}
.invite-form {
  margin-top: 22px;
}
.invite-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.invite-card input,
.invite-card select,
.invite-card textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,0.04);
  color: var(--text-primary);
  padding: 10px 12px;
  font-size: 13px;
}
.invite-card .errorlist {
  color: #ff9aa4;
  font-size: 11px;
  margin-top: 4px;
  list-style: none;
  padding: 0;
}
@media (max-width: 720px) {
  .invite-grid { grid-template-columns: 1fr; }
  .invite-card { padding: 22px; }
}
@media (max-width: 980px) {
  .module-access-head { display: none; }
  .module-access-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .module-access-row strong {
    grid-column: 1 / -1;
  }
  .module-access-row label::before {
    content: attr(title);
  }
}

.fi-ref-row {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 6px;
  text-decoration: none;
  color: var(--text-primary);
  font-size: 13px;
  background: rgba(255,255,255,0.02);
  transition: border-color var(--transition);
}
.fi-ref-row:hover { border-color: rgba(111,149,255,0.4); color: #6f95ff; }
.fi-ref-tag {
  font-size: 10px; font-weight: 700; letter-spacing: .05em;
  background: rgba(111,149,255,0.15); color: #6f95ff;
  padding: 2px 6px; border-radius: 4px; flex-shrink: 0;
}

/* Inline timeline (dossiê detail) */
.fi-inline-timeline { padding: 4px 0; }
.fi-tl-row {
  display: grid;
  grid-template-columns: 90px 20px 1fr;
  gap: 0 8px;
  align-items: start;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.fi-tl-row:last-child { border-bottom: none; }
.fi-tl-date { font-size: 11px; color: var(--text-muted); padding-top: 3px; }
.fi-tl-dot {
  width: 8px; height: 8px;
  background: #6f95ff; border-radius: 50%;
  margin-top: 5px; justify-self: center;
  box-shadow: 0 0 6px rgba(111,149,255,0.5);
}
.fi-tl-content { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.fi-tl-tag {
  font-size: 10px; font-weight: 700;
  background: rgba(111,149,255,0.12); color: #6f95ff;
  padding: 1px 5px; border-radius: 3px; flex-shrink: 0;
}
.fi-tl-text { font-size: 12px; color: var(--text-secondary); }
.fi-tl-num  { font-size: 10px; color: var(--text-muted); font-family: var(--font-mono); }

/* vis.js Timeline container */
.fi-tl-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px;
}
.fi-tl-legend { display: flex; gap: 12px; }
.fi-tl-leg {
  font-size: 11px; display: flex; align-items: center; gap: 5px;
}
.fi-tl-leg::before {
  content: ''; display: inline-block;
  width: 10px; height: 10px; border-radius: 2px;
}
.fi-tl-leg--avulsos::before { background: rgba(111,149,255,0.6); }
.fi-tl-leg--doc::before     { background: rgba(80,200,120,0.6); }
.fi-tl-actions { display: flex; gap: 8px; }

.fi-timeline-container {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-card);
}

/* Override vis.js to match dark theme */
.vis-timeline { background: var(--bg-card) !important; border: none !important; color: var(--text-primary) !important; }
.vis-time-axis .vis-text { color: var(--text-muted) !important; font-family: var(--font-sans) !important; font-size: 11px !important; }
.vis-time-axis .vis-grid.vis-minor { border-color: rgba(255,255,255,0.05) !important; }
.vis-time-axis .vis-grid.vis-major { border-color: rgba(255,255,255,0.08) !important; }
.vis-item { border-radius: 4px !important; font-size: 11px !important; border-width: 1px !important; }
.vis-item.tl-item--avulso, .vis-item.tl-item--evento,
.vis-item.tl-item--informacao, .vis-item.tl-item--observacao,
.vis-item.tl-item--alerta, .vis-item.tl-item--inteligencia {
  background: rgba(111,149,255,0.15) !important;
  border-color: rgba(111,149,255,0.4) !important;
  color: #dfe6ff !important;
}
.vis-item.tl-item--doc {
  background: rgba(80,200,120,0.12) !important;
  border-color: rgba(80,200,120,0.35) !important;
  color: #a0ddb0 !important;
}
.vis-item.vis-selected { box-shadow: 0 0 0 2px #6f95ff !important; }
.vis-label { color: var(--text-muted) !important; font-size: 11px !important; font-family: var(--font-sans) !important; }
.vis-panel.vis-left { background: var(--bg-sidebar) !important; border-color: var(--border) !important; }
.vis-current-time { background: rgba(227,92,106,0.6) !important; }

/* Timeline detail popup */
.fi-tl-detail {
  margin-top: 12px;
  background: var(--bg-card);
  border: 1px solid rgba(111,149,255,0.3);
  border-radius: var(--radius);
  padding: 16px 18px;
  font-size: 13px; color: var(--text-secondary);
  position: relative;
}
.fi-tl-detail-close {
  position: absolute; top: 10px; right: 12px;
  background: none; border: none; color: var(--text-muted);
  font-size: 14px; cursor: pointer; padding: 2px 6px;
}
.fi-tl-detail-close:hover { color: var(--text-primary); }

/* ── Dossiê detail — avatar strip ───────────────────────────── */
.ds-subjects-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 18px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.ds-subjects-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-muted);
  flex-shrink: 0;
}
.ds-subjects-count {
  font-size: 11px;
  color: var(--text-muted);
  margin-left: auto;
  flex-shrink: 0;
}
.ds-avatar-strip {
  display: flex;
  flex-wrap: wrap;
  gap: -8px;
}
.ds-avatar {
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2px solid var(--bg-card);
  overflow: visible;
  flex-shrink: 0;
  margin-right: -10px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform .15s, z-index 0s;
  cursor: default;
}
a.ds-avatar { cursor: pointer; }
.ds-avatar:hover { transform: translateY(-4px) scale(1.08); z-index: 10; }
.ds-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
.ds-avatar-initials {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  background: var(--ds-init-bg, #6f95ff);
}
.ds-avatar--alvo    .ds-avatar-initials { background: rgba(227,92,106,0.7); }
.ds-avatar--agente  .ds-avatar-initials { background: rgba(111,149,255,0.7); }
.ds-avatar--informante .ds-avatar-initials { background: rgba(228,192,90,0.7); }
.ds-avatar--infiltrado .ds-avatar-initials { background: rgba(80,200,120,0.7); }

.ds-avatar-tipo {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  font-size: 8px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  border: 1.5px solid var(--bg-card);
  line-height: 1;
}
.ds-tipo--alvo       { background: #e35c6a; }
.ds-tipo--agente     { background: #6f95ff; }
.ds-tipo--informante { background: #c8a840; }
.ds-tipo--infiltrado { background: #50c878; }

.ds-tipo-pill {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 1px 5px;
  border-radius: 3px;
  white-space: nowrap;
}
.ds-tipo-pill--alvo       { background: rgba(227,92,106,0.15);  color: #e35c6a; }
.ds-tipo-pill--agente     { background: rgba(111,149,255,0.15); color: #6f95ff; }
.ds-tipo-pill--informante { background: rgba(228,192,90,0.12);  color: #c8a840; }
.ds-tipo-pill--infiltrado { background: rgba(80,200,120,0.12);  color: #50c878; }

/* ── Dossiê detail — graph card grid ────────────────────────── */
.ds-graph-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}
.ds-graph-card {
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color .15s;
}
.ds-graph-card:hover { border-color: rgba(111,149,255,0.35); }
.ds-graph-card-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.ds-graph-card-icon {
  width: 32px; height: 32px;
  background: rgba(111,149,255,0.1);
  border: 1px solid rgba(111,149,255,0.2);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ds-graph-card-icon svg { width: 15px; height: 15px; fill: #6f95ff; }
.ds-graph-card-title { font-size: 13px; font-weight: 600; color: var(--text-primary); }
.ds-graph-card-stats { font-size: 11px; color: var(--text-muted); margin-top: 2px; display: flex; gap: 6px; }
.ds-graph-canvas {
  width: 100%;
  height: 160px;
  border-radius: var(--radius-sm);
  display: block;
  border: 1px solid rgba(111,149,255,0.1);
}
.ds-graph-card-link {
  font-size: 11px;
  color: var(--color-accent);
  text-decoration: none;
  opacity: .8;
  transition: opacity .15s;
}
.ds-graph-card-link:hover { opacity: 1; }

/* ── Dossiê card classification accents ─────────────────────── */
.pl-card--dossie-ostensivo    { border-left: 3px solid #6ee89a; }
.pl-card--dossie-reservado    { border-left: 3px solid #6aafff; }
.pl-card--dossie-confidencial { border-left: 3px solid #ffb0b0; }
.pl-card--dossie-secreto      { border-left: 3px solid #ffca80; }
.pl-card--dossie-ultrassecreto{ border-left: 3px solid #ff8080; }
