﻿/* ══════════════════════════════════════════════════════════════
   AR - Audit v2 - Andrade Ribeiro Auditoria
   Paleta: Ink #111827 · Ouro #d6a84f · Petróleo #0f766e
   ══════════════════════════════════════════════════════════════ */

:root {
  --grafite:      #111827;
  --grafite2:     #1f2937;
  --grafite3:     #334155;
  --amarelo:      #d6a84f;
  --amarelo2:     #b8872f;
  --amarelo-soft: rgba(214,168,79,.13);
  --verde:        #0f766e;
  --branco:       #f8fafc;
  --bg:           #f5f7fa;
  --bg2:          #e9eef5;
  --card:         #ffffff;
  --border:       #d7dee8;
  --text:         #111827;
  --text2:        #475569;
  --text3:        #64748b;
  --muted:        #64748b;
  --gold:         #d6a84f;
  --success:      #0f766e;
  --success-bg:   #ecfdf5;
  --warning:      #b8872f;
  --warning-bg:   #fffbeb;
  --danger:       #be123c;
  --danger-bg:    #fef2f2;
  --info:         #2563eb;
  --info-bg:      #eff6ff;
  --purple:       #7c3aed;
  --sidebar-w:    272px;
  --radius:       12px;
  --radius-sm:    7px;
  --radius-lg:    16px;
  --shadow:       0 1px 3px rgba(15,23,42,.06), 0 10px 28px rgba(15,23,42,.07);
  --shadow-lg:    0 16px 48px rgba(15,23,42,.16);
  --shadow-card:  0 2px 10px rgba(15,23,42,.06);
  --transition:   0.16s ease;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

/* ── Utilities ────────────────────────────────────────────────── */
.hidden { display: none !important; }
.flex { display: flex; }
.flex-col { flex-direction: column; }
.gap-2 { gap: 8px; } .gap-3 { gap: 12px; } .gap-4 { gap: 16px; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.flex-1 { flex: 1; }
.w-full { width: 100%; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.font-bold { font-weight: 700; } .font-semibold { font-weight: 600; }
.text-sm { font-size: 12px; } .text-lg { font-size: 16px; }
.text-xl { font-size: 20px; } .text-2xl { font-size: 24px; }
.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}
.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}
.p-4{padding:16px}.p-6{padding:24px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

/* ── Login ─────────────────────────────────────────────────────── */
.login-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(135deg, rgba(17,24,39,.96), rgba(31,41,55,.94)),
    linear-gradient(90deg, rgba(214,168,79,.14), rgba(15,118,110,.10));
  position: relative;
  overflow: hidden;
}
.login-screen::before {
  display: none;
}
.login-screen::after {
  display: none;
}
.login-card {
  background: var(--card);
  border-radius: 14px;
  padding: 52px 44px;
  width: 440px;
  box-shadow: 0 32px 80px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.12);
  position: relative; z-index: 1;
}
.login-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-bottom: 38px;
}
.login-logo img {
  height: 120px;
  width: auto;
  max-width: 320px;
  object-fit: contain;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.12));
}
.login-brand { text-align: center; }
.brand-name {
  display: block;
  font-size: 28px;
  font-weight: 800;
  color: var(--grafite);
  letter-spacing: -0.8px;
}
.brand-name span { color: var(--amarelo2); }
.brand-sub {
  display: block;
  font-size: 12px;
  color: var(--text3);
  font-weight: 500;
  margin-top: 3px;
  letter-spacing: 0.2px;
}
.login-divider {
  text-align: center;
  font-size: 11px;
  color: var(--text3);
  margin: 6px 0 18px;
  letter-spacing: 0.3px;
}
.login-form { display: flex; flex-direction: column; gap: 16px; }
.login-error {
  background: var(--danger-bg);
  border: 1px solid #fecaca;
  color: var(--danger);
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  font-size: 13px;
}
.btn-full { width: 100%; margin-top: 6px; }
.login-footer {
  text-align: center;
  font-size: 11px;
  color: var(--text3);
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  line-height: 1.6;
}
.input-icon { position: relative; }
.input-icon input { padding-right: 40px; }
.eye-btn {
  position: absolute; right: 10px; top: 50%;
  transform: translateY(-50%);
  background: none; border: none; cursor: pointer;
  font-size: 16px; color: var(--text3); padding: 4px;
}

/* ── App Layout ──────────────────────────────────────────────── */
.app { display: flex; min-height: 100vh; }

/* ── Sidebar ─────────────────────────────────────────────────── */
/* Sidebar clara: preserva o logo e melhora leitura */
:root {
  --sb-bg:      #eef3e8;
  --sb-border:  #d8e1d1;
  --sb-ink:     #263126;
  --sb-muted:   #6f7b6b;
  --sb-active:  #ffffff;
  --sb-gold:    #b8872f;
}
.sidebar {
  width: var(--sidebar-w);
  height: 100vh;
  overflow: hidden;
  background: var(--sb-bg);
  display: flex;
  flex-direction: column;
  position: fixed;
  left: 0; top: 0;
  z-index: 100;
  border-right: 1px solid var(--sb-border);
  box-shadow: 3px 0 20px rgba(15,23,42,.08);
}
.sidebar-logo {
  padding: 20px 16px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--sb-bg);
  border-bottom: 1px solid var(--sb-border);
}
.sidebar-logo img {
  width: 174px;
  height: auto;
  max-height: 100px;
  object-fit: contain;
  display: block;
}
.sidebar-logo-text { display: none; }
.sidebar-nav {
  flex: 1;
  padding: 12px 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--sb-border) transparent;
}
.nav-section {
  padding: 4px 0;
  border-bottom: 1px solid var(--sb-border);
}
.nav-section:last-child { border-bottom: none; }
.nav-label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  color: var(--sb-muted);
  padding: 10px 18px 4px;
  text-transform: uppercase;
}
.nav-sub-label {
  display: block;
  margin: 12px 18px 5px;
  padding-top: 8px;
  border-top: 1px solid rgba(65, 84, 62, .14);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .8px;
  color: #6f7f67;
  text-transform: uppercase;
}
.current-project-name {
  font-size: 11px;
  color: var(--sb-muted);
  padding: 2px 18px 8px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  color: var(--sb-ink);
  cursor: pointer;
  transition: var(--transition);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  border-radius: 6px;
  margin: 1px 8px;
  border-left: 3px solid transparent;
  user-select: none;
}
.nav-item:hover {
  background: rgba(255,255,255,.74);
  color: var(--grafite);
}
.nav-item.active {
  background: var(--sb-active);
  color: var(--grafite);
  font-weight: 600;
  border-left-color: var(--sb-gold);
  box-shadow: 0 1px 5px rgba(15,23,42,.06);
}
.nav-item svg {
  width: 17px; height: 17px;
  fill: currentColor;
  flex-shrink: 0;
  opacity: .85;
}
.nav-item.active svg, .nav-item:hover svg { opacity: 1; }
.nav-badge {
  margin-left: auto;
  background: var(--danger);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  min-width: 18px;
  text-align: center;
}
.sidebar-user {
  padding: 12px 14px;
  border-top: 1px solid var(--sb-border);
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,.48);
}
.user-avatar {
  width: 34px; height: 34px;
  background: var(--grafite);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 14px;
  color: var(--sb-gold);
  flex-shrink: 0;
}
.user-info { flex: 1; min-width: 0; }
.user-info span:first-child {
  display: block; font-size: 12px; font-weight: 600; color: var(--sb-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.user-info .role-badge {
  font-size: 10px; color: var(--sb-muted);
  font-weight: 500;
}
.logout-btn {
  background: none; border: none; cursor: pointer;
  color: var(--sb-muted); font-size: 18px; padding: 4px;
  transition: var(--transition); border-radius: 4px;
}
.logout-btn:hover { color: var(--danger); background: rgba(162,59,59,.1); }

/* ── Main ────────────────────────────────────────────────────── */
.main {
  flex: 1;
  margin-left: var(--sidebar-w);
  min-height: 100vh;
  overflow-x: hidden;
}

/* ── Page ────────────────────────────────────────────────────── */
.page { padding: 28px 32px; max-width: 1400px; }
.page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
}
.page-header h1 {
  font-size: 25px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: 0;
  line-height: 1.25;
}
.page-subtitle {
  font-size: 13px;
  color: var(--text3);
  margin-top: 4px;
  font-weight: 400;
}
.page-actions { display: flex; gap: 10px; flex-shrink: 0; align-items: flex-start; }

/* ── Dashboard Header ─────────────────────────────────────────── */
.dash-header {
  background: linear-gradient(135deg, var(--grafite) 0%, var(--grafite2) 60%, #252930 100%);
  border-radius: var(--radius-lg);
  padding: 28px 32px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.dash-header::before {
  content: '';
  position: absolute;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(245,203,92,.12) 0%, transparent 70%);
  right: -60px; top: -80px; border-radius: 50%;
  pointer-events: none;
}
.dash-header-left h2 {
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.4px;
}
.dash-header-left p {
  font-size: 13px;
  color: rgba(255,255,255,.5);
  margin-top: 4px;
}
.dash-header-right {
  background: var(--amarelo-soft);
  border: 1px solid rgba(245,203,92,.25);
  border-radius: var(--radius);
  padding: 10px 18px;
  text-align: right;
}
.dash-header-right .date-label {
  font-size: 11px;
  color: rgba(255,255,255,.4);
  font-weight: 500;
}
.dash-header-right .date-value {
  font-size: 13px;
  color: var(--amarelo);
  font-weight: 700;
  margin-top: 2px;
}

/* ── Dashboard old-class compat ───────────────────────────────── */
.dashboard-header {
  background: #e8eddf;
  border: 1px solid #d9e2dc;
  border-radius: var(--radius-lg);
  padding: 22px 28px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 20px;
  box-shadow: 0 2px 12px rgba(36,36,35,.08);
}
.dashboard-logo img {
  height: 72px;
  width: auto;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.12));
}
.dashboard-welcome h2 {
  font-size: 20px;
  font-weight: 800;
  color: #242423;
  letter-spacing: -0.4px;
}
.dashboard-welcome p {
  font-size: 12.5px;
  color: #6f746d;
  margin-top: 3px;
}
.dashboard-date {
  margin-left: auto;
  font-size: 12px;
  color: #333533;
  background: rgba(245,203,92,.25);
  border: 1px solid rgba(245,203,92,.5);
  border-radius: var(--radius);
  padding: 8px 14px;
  white-space: nowrap;
  color: var(--amarelo);
  font-weight: 600;
}

/* ── Cards ────────────────────────────────────────────────────── */
.card {
  background: var(--card);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  border: 1px solid var(--border);
}
.card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
}
.card-header h3 {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0;
}
.card-body { padding: 20px; }

/* ── Grids utilitários ───────────────────────────────────────── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}

/* ── Acesso em telas menores ─────────────────────────────────── */
.mobile-menu-toggle { display:none; }
@media (max-width: 900px) {
  :root { --sidebar-w: 248px; }
  .sidebar { transform: translateX(-105%); transition: transform .22s ease; box-shadow: var(--shadow-lg); z-index: 1200; }
  body.mobile-menu-open .sidebar { transform: translateX(0); }
  body.mobile-menu-open::after { content:''; position:fixed; inset:0; background:rgba(15,23,42,.42); z-index:1100; }
  .main { margin-left:0; padding-top:52px; }
  .mobile-menu-toggle { display:flex; position:fixed; top:10px; left:12px; z-index:1300; align-items:center; gap:7px; border:1px solid var(--border); border-radius:10px; background:var(--card); color:var(--grafite); box-shadow:var(--shadow-card); padding:8px 12px; font-weight:700; cursor:pointer; }
  .mobile-menu-toggle span { font-size:12px; }
  .page { padding:20px 18px 32px; max-width:none; }
  .page-header { margin-bottom:20px; flex-wrap:wrap; }
  .page-actions { width:100%; flex-wrap:wrap; }
  .page-actions > * { flex:1 1 auto; }
  .dashboard-header, .dash-header { padding:20px; margin-bottom:20px; }
  .dashboard-date { margin-left:0; }
  .table-wrap, .data-table-wrap, .card-table { overflow-x:auto; max-width:100%; }
}
@media (max-width: 560px) {
  body { font-size:13px; }
  .page { padding:16px 12px 28px; }
  .page-header h1 { font-size:21px; }
  .dashboard-header, .dash-header { display:block; padding:18px 16px; border-radius:12px; }
  .dashboard-logo img { height:56px; margin-bottom:10px; }
  .dashboard-date, .dash-header-right { display:inline-block; margin-top:14px; text-align:left; }
  .card-header { padding:13px 14px; flex-wrap:wrap; }
  .card-body { padding:14px; }
  .btn, button { min-height:38px; }
  .form-grid { gap:10px; }
  .modal-box { width:calc(100vw - 24px); max-height:90vh; overflow-y:auto; }
  .toast { left:12px; right:12px; bottom:16px; width:auto; }
}

/* Hierarquia e leitura dos blocos de acompanhamento */
.card, .stat-card, .panel { transition: box-shadow .18s ease, transform .18s ease; }
.card:hover, .stat-card:hover, .panel:hover { box-shadow:var(--shadow); }
.dashboard-focus-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:16px; margin-bottom:16px; }
.section-kicker { color:var(--text3); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.attention-list { padding:6px 12px 12px; }
.attention-item { display:flex; align-items:center; gap:12px; width:100%; padding:13px 8px; border:0; border-bottom:1px solid var(--border); background:transparent; text-align:left; color:var(--text); cursor:pointer; }
.attention-item:last-child { border-bottom:0; }
.attention-item:hover { background:#f8fafc; border-radius:8px; }
.attention-item strong, .attention-item small { display:block; }
.attention-item strong { font-size:13px; }
.attention-item small { color:var(--text3); font-size:11px; margin-top:2px; }
.attention-icon { width:30px; height:30px; border-radius:9px; display:grid; place-items:center; font-weight:800; flex:0 0 auto; }
.attention-blue { color:#2563eb; background:#eff6ff; }.attention-red { color:#be123c; background:#fef2f2; }.attention-gold { color:#9a6b12; background:#fffbeb; }
.attention-arrow { margin-left:auto; color:var(--text3); font-size:22px; }
.nav-item-connect { position:relative; }
.nav-new-badge { margin-left:auto; font-size:9px; padding:2px 5px; border-radius:5px; background:var(--amarelo-soft); color:var(--amarelo2); font-weight:800; }
.connect-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px 32px; margin-bottom:16px; border-radius:16px; color:#fff; background:linear-gradient(125deg,#123d4a,#0f766e 62%,#197d74); box-shadow:var(--shadow-lg); overflow:hidden; }
.connect-eyebrow { font-size:10px; letter-spacing:.12em; font-weight:800; color:#f5cb5c; }.connect-hero h2 { max-width:650px; margin-top:7px; font-size:24px; line-height:1.25; }.connect-hero p { max-width:680px; margin-top:8px; color:rgba(255,255,255,.72); font-size:13px; }.connect-hero-mark { font-size:86px; line-height:1; color:rgba(255,255,255,.18); transform:rotate(-18deg); }
.connect-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:16px; }.connect-stat { display:flex; gap:12px; align-items:center; padding:17px 18px; background:var(--card); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-card); }.connect-stat strong,.connect-stat small { display:block; }.connect-stat strong { font-size:22px; line-height:1.1; }.connect-stat small { color:var(--text3); font-size:11px; margin-top:3px; }.connect-stat-icon { display:grid; place-items:center; width:35px; height:35px; border-radius:10px; font-weight:800; font-size:18px; }.connect-stat-icon.pending {background:#fff7ed;color:#c2410c}.connect-stat-icon.received {background:#eff6ff;color:#2563eb}.connect-stat-icon.review {background:#f5f3ff;color:#7c3aed}.connect-stat-icon.done {background:#ecfdf5;color:#0f766e}.empty-connect { padding:34px 24px; text-align:center; color:var(--text3); }.empty-connect-icon { width:42px;height:42px;margin:0 auto 10px;display:grid;place-items:center;border-radius:14px;background:#ecfdf5;color:var(--verde);font-size:22px; }.empty-connect strong { display:block;color:var(--text); }.empty-connect p { max-width:330px;margin:5px auto 15px;font-size:12px; }.connect-steps { padding:8px 20px 18px; }.connect-steps>div { display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border); }.connect-steps>div:last-child{border-bottom:0}.connect-steps b { display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--grafite);color:#fff;font-size:12px; }.connect-steps strong,.connect-steps small{display:block}.connect-steps small{font-size:11px;color:var(--text3);margin-top:2px}
@media (max-width: 900px) { .dashboard-focus-grid { grid-template-columns:1fr; } }
@media (max-width: 680px) { .connect-stats { grid-template-columns:repeat(2,1fr); }.connect-hero { padding:22px 20px; }.connect-hero h2 {font-size:20px}.connect-hero-mark{display:none} }

/* ── Menu lateral organizado ─────────────────────────────────── */
.sidebar-logo { min-height:132px; padding:16px 16px 14px; justify-content:center; }
.sidebar-logo img { width:184px; max-height:104px; }
.sidebar-nav { padding:10px 0 14px; }
.nav-section { padding:5px 0 9px; }
.nav-section + .nav-section { padding-top:8px; }
.nav-label { padding:10px 18px 7px; font-size:10px; }
.nav-item { min-height:39px; padding:9px 14px; gap:11px; margin:2px 8px; }
.nav-item-connect { background:rgba(255,255,255,.22); }
.project-nav { background:rgba(255,255,255,.16); }
.project-nav .nav-label { color:#64745f; }
.current-project-name { padding:1px 18px 10px; }
.sidebar-backup { padding:8px 16px 6px; background:var(--sb-bg); }
.sidebar-backup button { color:var(--sb-muted); border-color:var(--sb-border); background:rgba(255,255,255,.28); }
.sidebar-backup button:hover { background:#fff; color:var(--sb-ink); }
.sidebar-user { min-height:62px; padding:11px 14px; }
.sidebar-nav::-webkit-scrollbar { width:6px; }
.sidebar-nav::-webkit-scrollbar-thumb { background:#cbd6c4; border-radius:8px; }
.connect-request-list { padding:6px 18px 14px; }
.connect-request-row { display:flex; align-items:center; gap:12px; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--border); }
.connect-request-row:last-child { border-bottom:0; }
.connect-request-row strong,.connect-request-row small { display:block; }.connect-request-row strong { font-size:13px; }.connect-request-row small { color:var(--text3); font-size:11px; margin-top:3px; }
.request-status-select { min-width:150px; font-size:11px; padding:7px 8px; }
.progress, .progress-bar, .completion-bar { border-radius:999px; overflow:hidden; }
.status-badge, .risk-badge, .badge { white-space:nowrap; }
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
}
.form-grid .full { grid-column: 1 / -1; }
.muted { color: var(--muted); }
.small { font-size: 12px; line-height: 1.45; }
@media (max-width: 980px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .stats-grid,
  .form-grid { grid-template-columns: 1fr; }
}

/* ── Qualidade / SQM ─────────────────────────────────────────── */
.quality-note {
  margin: 0 20px 14px;
  padding: 10px 12px;
  background: #f8fafc;
  border: 1px solid var(--border);
  border-left: 3px solid var(--verde);
  border-radius: 8px;
  color: var(--text2);
  font-size: 12.5px;
  line-height: 1.45;
}
.quality-note-line {
  margin-top: 6px;
  padding: 6px 8px;
  border-radius: 6px;
  background: #fffbeb;
  color: #6b4e00;
  font-size: 12px;
  line-height: 1.4;
}

.import-review-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  padding: 12px;
}
.import-review-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.import-review-head strong {
  color: var(--text);
  font-size: 13.5px;
}
.import-review-head span {
  color: var(--text3);
  font-size: 12px;
}
.import-alert {
  margin-top: 10px;
  border: 1px solid #fecaca;
  background: #fff7f7;
  color: #991b1b;
  border-radius: 8px;
  padding: 9px 11px;
  font-size: 12.5px;
  line-height: 1.45;
}
.import-ok {
  margin-top: 10px;
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  color: #166534;
  border-radius: 8px;
  padding: 9px 11px;
  font-size: 12.5px;
  line-height: 1.45;
}

/* ── Stat Cards ───────────────────────────────────────────────── */
.stat-card {
  background: var(--card);
  border-radius: var(--radius);
  padding: 20px 22px;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: var(--transition);
  position: relative;
  overflow: hidden;
}
.stat-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--border);
  border-radius: var(--radius) var(--radius) 0 0;
}
.stat-card.yellow::after { background: var(--amarelo); }
.stat-card.green::after  { background: var(--success); }
.stat-card.blue::after   { background: var(--info); }
.stat-card.red::after    { background: var(--danger); }
.stat-card.purple::after { background: var(--purple); }
.stat-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.stat-icon { font-size: 26px; line-height: 1; }
.stat-icon-box {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--grafite2);
  color: var(--amarelo);
  font-weight: 800;
  font-size: 15px;
  line-height: 1;
}
.stat-card.blue .stat-icon-box { background: var(--info-bg); color: var(--info); }
.stat-card.green .stat-icon-box { background: var(--success-bg); color: var(--success); }
.stat-card.yellow .stat-icon-box { background: var(--warning-bg); color: var(--warning); }
.stat-card.red .stat-icon-box { background: var(--danger-bg); color: var(--danger); }
.stat-card.purple .stat-icon-box { background: #f5f3ff; color: var(--purple); }
.stat-icon-box svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}
.stat-number,
.stat-value {
  font-size: 32px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -1px;
  line-height: 1;
}
.stat-label {
  font-size: 12px;
  color: var(--text3);
  font-weight: 500;
}
.stat-sub,
.stat-hint {
  font-size: 11px;
  color: var(--text3);
}

.phase-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.phase-card {
  width: 100%;
  border: 1px solid var(--border);
  background: var(--bg);
  border-radius: 8px;
  padding: 12px;
  display: grid;
  grid-template-columns: 30px 1fr auto;
  gap: 10px;
  align-items: center;
  text-align: left;
  cursor: pointer;
  transition: var(--transition);
}
.phase-card:hover {
  border-color: var(--amarelo2);
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.phase-number {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--grafite);
  color: var(--amarelo);
  font-weight: 800;
  font-size: 13px;
}
.phase-title {
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
}
.phase-detail {
  color: var(--text3);
  font-size: 11.5px;
  margin-top: 2px;
}
.phase-pct {
  color: var(--text2);
  font-size: 13px;
  font-weight: 800;
}
@media (max-width: 1100px) {
  .phase-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .phase-grid { grid-template-columns: 1fr; }
}

/* ── Progress ─────────────────────────────────────────────────── */
.progress-bar {
  height: 6px;
  background: var(--bg2);
  border-radius: 3px;
  overflow: hidden;
  margin-top: 4px;
}
.progress-fill {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--amarelo2), var(--amarelo));
  transition: width .4s ease;
}
.progress-fill.green { background: linear-gradient(90deg, #16a34a, #22c55e); }

/* ── Buttons ──────────────────────────────────────────────────── */
.btn-primary {
  background: var(--grafite);
  color: #fff;
  border: none;
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: 13.5px;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
  box-shadow: 0 8px 18px rgba(17,24,39,.16);
}
.btn-primary:hover {
  background: #0f172a;
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(17,24,39,.20);
}
.btn-secondary {
  background: var(--card);
  color: var(--text);
  border: 1.5px solid var(--border);
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 13.5px;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.btn-secondary:hover { border-color: var(--amarelo2); color: var(--grafite); background: #fffaf0; }
.btn-warning {
  background: var(--amarelo);
  color: var(--grafite);
  border: 1.5px solid var(--amarelo2);
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: 13.5px;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
  text-align: center;
  box-shadow: 0 8px 18px rgba(245,203,92,.18);
}
.btn-warning:hover { background: var(--amarelo2); transform: translateY(-1px); }
.btn-ghost {
  background: var(--card);
  color: var(--text);
  border: 1.5px solid var(--border);
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  font-weight: 600;
  font-size: 13.5px;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
  text-align: center;
}
.btn-ghost:hover { border-color: var(--azul); background: var(--cinza); color: var(--grafite); }
.btn-danger {
  background: var(--card);
  color: var(--danger);
  border: 1.5px solid #fecaca;
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  font-weight: 600; font-size: 13.5px; cursor: pointer;
  transition: var(--transition); white-space: nowrap;
}
.btn-danger:hover { background: var(--danger-bg); border-color: var(--danger); }
.btn-sm { padding: 5px 12px; font-size: 12px; border-radius: 5px; }

/* ── Forms ────────────────────────────────────────────────────── */
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text2);
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  height: 44px;
  padding: 0 14px 0 16px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-family: inherit;
  font-size: 14px;
  color: var(--text);
  background: var(--card);
  transition: var(--transition);
  outline: none;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
.form-group select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
  cursor: pointer;
}
.form-group input[type="date"] { cursor: pointer; }
.form-group textarea {
  height: auto;
  min-height: 72px;
  padding: 12px 14px 12px 16px;
  resize: vertical;
  line-height: 1.6;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--verde);
  box-shadow: 0 0 0 3px rgba(15,118,110,.13);
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }

/* ── Toolbar ──────────────────────────────────────────────────── */
.toolbar {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.search-box {
  position: relative;
  flex: 1;
  min-width: 200px;
}
.search-box input {
  padding-left: 34px;
  width: 100%;
  height: 36px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  background: var(--card);
  outline: none;
  transition: var(--transition);
}
.search-box input:focus { border-color: var(--amarelo2); }
.search-box::before {
  content: '🔍';
  position: absolute;
  left: 10px; top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  pointer-events: none;
}
.filter-select {
  height: 36px;
  padding: 0 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  background: var(--card);
  cursor: pointer;
  outline: none;
}

/* ── Tables ───────────────────────────────────────────────────── */
.table-wrap {
  border-radius: var(--radius);
  overflow: auto;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--border);
  background: var(--card);
}
table { width: 100%; border-collapse: collapse; }
.table-wrap > table {
  min-width: 760px;
}
thead th {
  background: var(--bg);
  padding: 11px 14px;
  text-align: left;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--text3);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border);
}
tbody td {
  padding: 12px 14px;
  font-size: 13.5px;
  color: var(--text);
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
tbody tr:last-child td { border-bottom: none; }
tbody tr:hover { background: var(--bg); }
/* CNPJ / codes - never break */
td code, th code {
  white-space: nowrap;
  display: inline-block;
}
td.col-cnpj, th.col-cnpj { min-width: 148px; white-space: nowrap; }
.table-actions {
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  flex-wrap: wrap;
  align-items: center;
}

td.table-actions {
  display: table-cell;
  text-align: right;
  white-space: normal;
}

td.table-actions > button,
td.table-actions > a {
  margin: 2px;
}

.table-actions .btn-sm {
  min-height: 30px;
}

.users-table {
  min-width: 760px;
  table-layout: fixed;
}

.users-table th:nth-child(1),
.users-table td:nth-child(1) { width: 170px; }
.users-table th:nth-child(2),
.users-table td:nth-child(2) { width: 118px; }
.users-table th:nth-child(3),
.users-table td:nth-child(3),
.users-table th:nth-child(4),
.users-table td:nth-child(4) { width: 92px; }
.users-table th:nth-child(5),
.users-table td:nth-child(5) { width: 72px; }
.users-table th:nth-child(6),
.users-table td:nth-child(6) { width: 128px; }
.users-table th:nth-child(7),
.users-table td:nth-child(7) { width: 160px; }

.users-table td {
  overflow-wrap: anywhere;
}

.users-table .user-name-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.users-table .user-name-cell strong {
  line-height: 1.25;
}

.users-table-actions {
  justify-content: flex-start;
}

.users-table-actions .btn-sm {
  flex: 0 0 auto;
  padding-left: 8px;
  padding-right: 8px;
}

.users-table-actions {
  gap: 4px;
}

.users-table-actions .btn-sm {
  min-height: 28px;
  padding: 6px 8px;
}

.trial-balance-wrap {
  max-height: 70vh;
  overflow: auto;
}
.trial-balance-table {
  min-width: 1120px;
}
.area-balance-table { min-width: 1080px; }
.area-balance-table .area-balance-group td {
  background: #f8fafc;
  border-top: 2px solid var(--border);
  font-weight: 800;
}
.area-balance-table .area-balance-detail td:nth-child(3) {
  padding-left: 22px;
}
.area-balance-sub {
  color: var(--text3);
  font-size: 11px;
  font-weight: 600;
  margin-top: 2px;
}
.trial-balance-table td code,
.area-balance-table td code {
  white-space: nowrap;
}
.trial-balance-table th:nth-child(1),
.trial-balance-table td:nth-child(1) {
  min-width: 92px;
}
.trial-balance-table th:nth-child(2),
.trial-balance-table td:nth-child(2) {
  min-width: 132px;
}
.area-balance-table th:nth-child(3),
.area-balance-table td:nth-child(3),
.trial-balance-table th:nth-child(3),
.trial-balance-table td:nth-child(3) {
  min-width: 260px;
}
.trial-balance-table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
}
.trial-balance-table th:nth-child(1),
.trial-balance-table td:nth-child(1) {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 92px;
  background: var(--card);
}
.trial-balance-table th:nth-child(2),
.trial-balance-table td:nth-child(2) {
  position: sticky;
  left: 92px;
  z-index: 2;
  min-width: 140px;
  background: var(--card);
  box-shadow: 1px 0 0 var(--border);
}
.trial-balance-table thead th:nth-child(1),
.trial-balance-table thead th:nth-child(2) {
  z-index: 4;
  background: var(--bg);
}
.trial-balance-table tbody tr:hover td {
  background: var(--bg);
}
.tb-check-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.tb-check-grid > div {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
}
.tb-check-grid span {
  display: block;
  font-size: 11px;
  color: var(--text2);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .2px;
}
.tb-check-grid strong {
  display: block;
  margin-top: 3px;
  font-size: 16px;
  color: var(--text);
}
.tb-check-equation {
  margin-top: 12px;
  padding: 10px 12px;
  background: var(--success-bg);
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  color: #166534;
  font-size: 13px;
  font-weight: 600;
}
@media (max-width: 1000px) {
  .tb-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .tb-check-grid { grid-template-columns: 1fr; }
}

/* ── Badges ───────────────────────────────────────────────────── */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
}
.badge-pendente    { background: #f3f4f6; color: #6b7280; }
.badge-em_andamento{ background: var(--info-bg); color: var(--info); }
.badge-concluido   { background: var(--success-bg); color: var(--success); }
.badge-revisado    { background: #fffbeb; color: var(--warning); }
.badge-planejamento{ background: #f3f4f6; color: #6b7280; }
.badge-execucao    { background: var(--info-bg); color: var(--info); }
.badge-conclusao   { background: var(--success-bg); color: var(--success); }
.badge-revisao     { background: #fffbeb; color: var(--warning); }
.badge-emissao     { background: #f5f3ff; color: var(--purple); }
.badge-arquivado   { background: #eef2ff; color: #3730a3; }
.badge-ativo       { background: var(--success-bg); color: var(--success); }
.badge-inativo     { background: #f3f4f6; color: var(--text3); }
.badge-bancaria    { background: var(--info-bg); color: var(--info); }
.badge-cliente     { background: var(--success-bg); color: var(--success); }
.badge-fornecedor  { background: #fdf4ff; color: var(--purple); }
.badge-advogado    { background: #fffbeb; color: var(--warning); }
.badge-outro       { background: #f3f4f6; color: #6b7280; }
.badge-enviada     { background: var(--info-bg); color: var(--info); }
.badge-recebida    { background: var(--success-bg); color: var(--success); }
.badge-sem_resposta{ background: var(--danger-bg); color: var(--danger); }
.badge-rascunho    { background: #f3f4f6; color: var(--text3); }
.badge-em_estudo   { background: var(--info-bg); color: var(--info); }
.badge-negociacao  { background: var(--warning-bg); color: var(--warning); }
.badge-aceita      { background: var(--success-bg); color: var(--success); }
.badge-recusada    { background: var(--danger-bg); color: var(--danger); }
.badge-cancelada   { background: #f3f4f6; color: var(--text3); }
.badge-socio       { background: #fffbeb; color: var(--warning); }
.badge-gerente     { background: var(--info-bg); color: var(--info); }
.badge-senior      { background: #f3f4f6; color: var(--text2); }
.badge-auxiliar    { background: #f3f4f6; color: var(--text3); }
.badge-baixo       { background: var(--success-bg); color: var(--success); }
.badge-medio       { background: var(--warning-bg); color: var(--warning); }
.badge-alto        { background: var(--danger-bg); color: var(--danger); }
.badge-aberto      { background: var(--danger-bg); color: var(--danger); }
.badge-em_tratamento { background: var(--warning-bg); color: var(--warning); }
.badge-resolvido   { background: var(--success-bg); color: var(--success); }
.badge-cancelado   { background: #f3f4f6; color: var(--text3); }

.paper-comments-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.paper-comment-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  padding: 12px 14px;
}
.paper-comment-card.overdue {
  border-color: #fecaca;
  background: #fff7f7;
}
.paper-comment-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.paper-comment-account {
  margin-left: 6px;
  font-size: 11.5px;
  color: var(--text3);
}
.paper-comment-text {
  color: var(--text);
  font-size: 13px;
  line-height: 1.55;
  white-space: pre-wrap;
}
.paper-comment-response {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  background: var(--bg);
  color: var(--text2);
  font-size: 12.5px;
  line-height: 1.45;
  white-space: pre-wrap;
}
.paper-comment-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
  color: var(--text3);
  font-size: 11.5px;
}
@media (max-width: 760px) {
  .paper-comment-head {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* ── Risk indicators ──────────────────────────────────────────── */
.risk-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.risk-dot.baixo { background: var(--success); }
.risk-dot.medio { background: var(--warning); }
.risk-dot.alto  { background: var(--danger); }

/* ── Modal ────────────────────────────────────────────────────── */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  backdrop-filter: blur(3px);
}
.modal-box {
  background: var(--card);
  border-radius: var(--radius-lg);
  width: 100%;
  max-width: 680px;
  max-height: 92vh;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,.35);
  animation: modalIn .18s ease;
  display: flex;
  flex-direction: column;
}
.modal-box.wide { max-width: 880px; }
.modal-box.modal-lg { max-width: 760px; }
@keyframes modalIn {
  from { opacity: 0; transform: scale(.96) translateY(8px); }
  to   { opacity: 1; transform: none; }
}
.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid var(--border);
  flex: 0 0 auto;
  min-height: 66px;
  background: var(--card);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.modal-header h3 { font-size: 15px; font-weight: 700; }
.modal-close {
  background: var(--bg); border: none; cursor: pointer;
  width: 30px; height: 30px; border-radius: 50%;
  font-size: 14px; color: var(--text3);
  transition: var(--transition); display: flex; align-items: center; justify-content: center;
}
.modal-close:hover { background: var(--border); color: var(--text); }
.modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 30px 28px 24px;
}
.modal-footer {
  display: flex; gap: 10px; justify-content: flex-end;
  padding: 16px 22px;
  border-top: 1px solid var(--border);
}

/* ── Toast ────────────────────────────────────────────────────── */
.toast {
  position: fixed;
  bottom: 24px; right: 24px;
  background: var(--grafite2);
  color: #fff;
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  z-index: 999;
  box-shadow: var(--shadow-lg);
  max-width: 360px;
  animation: slideUp .2s ease;
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}
.toast.success { background: #15803d; }
.toast.error   { background: #b91c1c; }
.toast.warning { background: var(--warning); color: var(--grafite); }

/* ── Paper / Area Cards ──────────────────────────────────────── */
.area-groups {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.area-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.area-group-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 2px 0;
  border-bottom: 1px solid var(--border);
}
.area-group-head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--text);
}
.area-group-head p {
  margin: 3px 0 8px;
  font-size: 12px;
  color: var(--text2);
}
.area-card {
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: var(--transition);
}
.area-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-1px); }
.area-header,
.area-card-header {
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}
.area-code,
.area-code-badge {
  background: var(--grafite);
  color: var(--amarelo);
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 5px;
}
.area-name { font-weight: 700; color: var(--text); }
.area-body,
.area-papers { padding: 10px 14px 14px; display: flex; flex-direction: column; gap: 6px; }
.paper-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  cursor: pointer;
  transition: var(--transition);
  background: var(--bg);
}
.paper-item:hover { background: var(--card); border-color: var(--amarelo2); box-shadow: var(--shadow-card); }
.paper-ref {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  min-width: 60px;
}
.paper-title { flex: 1; font-size: 13px; font-weight: 500; color: var(--text); }
.paper-pane { animation: fadeIn .15s ease; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ── Progress helpers ─────────────────────────────────────────── */
.progress-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: var(--text2);
  margin-bottom: 4px;
}
.progress-wrap {
  background: var(--bg2);
  border-radius: 3px;
  overflow: hidden;
  height: 6px;
}
.progress-wrap .progress-bar {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--amarelo2), var(--amarelo));
  transition: width .4s ease;
}
.progress-wrap .progress-bar.green { background: linear-gradient(90deg, #16a34a, #22c55e); }

/* ── Tab Nav ──────────────────────────────────────────────────── */
.tab-bar,
.tab-nav {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid var(--border);
  overflow-x: auto;
  padding-bottom: 0;
}
.tab-btn {
  padding: 10px 16px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text3);
  cursor: pointer;
  white-space: nowrap;
  transition: var(--transition);
}
.tab-btn:hover { color: var(--text2); }
.tab-btn.active {
  color: var(--amarelo2);
  border-bottom-color: var(--amarelo2);
  font-weight: 700;
}

/* ── Signatures ──────────────────────────────────────────────── */
.sig-box {
  background: var(--bg);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 20px;
  flex: 1;
}
.sig-label { font-size: 11px; font-weight: 700; color: var(--text3); text-transform: uppercase; letter-spacing: 0.5px; }
.sig-name { font-size: 15px; font-weight: 700; color: var(--text); margin-top: 6px; }
.sig-date { font-size: 12px; color: var(--text3); margin-top: 4px; }

/* ── File Upload ─────────────────────────────────────────────── */
.drop-zone {
  border: 2px dashed var(--border);
  border-radius: var(--radius);
  padding: 32px;
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
  background: var(--bg);
  margin-bottom: 16px;
}
.drop-zone:hover, .drop-zone.dragover {
  border-color: var(--amarelo2);
  background: rgba(245,203,92,.06);
}
.drop-icon { font-size: 36px; margin-bottom: 10px; }
.drop-text { font-size: 14px; font-weight: 600; color: var(--text2); }
.drop-sub { font-size: 12px; color: var(--text3); margin-top: 4px; }
.import-status {
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  border-radius: 8px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.import-status.done {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.import-status.error {
  border-color: #fecaca;
  background: #fef2f2;
}
.import-status-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--text);
  font-size: 13px;
}
.import-status-head span {
  font-weight: 800;
  color: #1d4ed8;
}
.import-status.done .import-status-head span { color: #15803d; }
.import-status.error .import-status-head span { color: #b91c1c; }
.import-progress-track {
  width: 100%;
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #dbeafe;
}
.import-status.done .import-progress-track { background: #dcfce7; }
.import-status.error .import-progress-track { background: #fee2e2; }
.import-progress-bar {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #2563eb, #60a5fa);
  transition: width .28s ease;
}
.import-status.done .import-progress-bar { background: linear-gradient(90deg, #16a34a, #4ade80); }
.import-status.error .import-progress-bar { background: linear-gradient(90deg, #dc2626, #f87171); }
.import-status-detail {
  font-size: 12px;
  color: var(--text2);
}
.file-list { display: flex; flex-direction: column; gap: 8px; }
.file-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.file-icon {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 10px;
  background: #eef2f7;
  color: #334155;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  border: 1px solid #d8e0ea;
  box-shadow: inset 0 -10px 0 rgba(255,255,255,.22);
}
.file-icon-pdf { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }
.file-icon-doc { background: #dbeafe; color: #1d4ed8; border-color: #bfdbfe; }
.file-icon-xls { background: #dcfce7; color: #15803d; border-color: #bbf7d0; }
.file-icon-ppt { background: #ffedd5; color: #c2410c; border-color: #fed7aa; }
.file-icon-img { background: #f3e8ff; color: #7e22ce; border-color: #e9d5ff; }
.file-icon-zip { background: #fef3c7; color: #a16207; border-color: #fde68a; }
.file-icon-msg { background: #ccfbf1; color: #0f766e; border-color: #99f6e4; }
.file-icon-file { background: #e2e8f0; color: #475569; border-color: #cbd5e1; }
.file-info { flex: 1; min-width: 0; }
.file-name { font-size: 13px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-size { font-size: 11px; color: var(--text3); margin-top: 2px; }

/* ── Materiality Grid ────────────────────────────────────────── */
.mat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 14px;
}
.mat-cell {
  background: var(--bg);
  border-radius: var(--radius);
  padding: 18px 20px;
  border: 1px solid var(--border);
  text-align: center;
}
.mat-cell.highlight { background: var(--grafite); border-color: var(--grafite); }
.mat-cell .mat-label { font-size: 11px; font-weight: 600; color: var(--text3); text-transform: uppercase; letter-spacing: 0.5px; }
.mat-cell.highlight .mat-label { color: rgba(255,255,255,.5); }
.mat-cell .mat-value { font-size: 22px; font-weight: 800; color: var(--text); margin-top: 6px; letter-spacing: -0.5px; }
.mat-cell.highlight .mat-value { color: var(--amarelo); }
.mat-cell .mat-pct { font-size: 12px; color: var(--text3); margin-top: 2px; }
.mat-cell.highlight .mat-pct { color: rgba(255,255,255,.4); }

/* ── Confirmations ───────────────────────────────────────────── */
.conf-status-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.conf-status-dot.pendente  { background: var(--text3); }
.conf-status-dot.enviada   { background: var(--info); box-shadow: 0 0 0 3px var(--info-bg); }
.conf-status-dot.recebida  { background: var(--success); box-shadow: 0 0 0 3px var(--success-bg); }
.conf-status-dot.sem_resposta { background: var(--danger); }

/* ── Empty State ─────────────────────────────────────────────── */
.empty-state {
  text-align: center;
  padding: 60px 32px;
  color: var(--text3);
}
.empty-icon { font-size: 52px; margin-bottom: 16px; opacity: .6; }
.empty-state h3 { font-size: 18px; font-weight: 700; color: var(--text2); margin-bottom: 8px; }
.empty-state p { font-size: 13px; }

/* ── Questionnaire ───────────────────────────────────────────── */
.quest-section {
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-card);
  margin-bottom: 16px;
  overflow: hidden;
}
.quest-section-header {
  padding: 14px 18px;
  background: var(--grafite);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.quest-section-title {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
}
.quest-section-area {
  font-size: 11px;
  color: var(--amarelo);
  background: var(--amarelo-soft);
  padding: 3px 10px;
  border-radius: 20px;
  font-weight: 600;
}
.quest-item {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.quest-item:last-child { border-bottom: none; }
.quest-num {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  min-width: 28px;
  padding-top: 2px;
}
.quest-content { flex: 1; }
.quest-question {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 8px;
  line-height: 1.5;
}
.quest-hint {
  font-size: 11.5px;
  color: var(--text3);
  margin-bottom: 10px;
  line-height: 1.5;
}
.quest-answers {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.quest-answer-btn {
  padding: 6px 16px;
  border-radius: 20px;
  border: 1.5px solid var(--border);
  background: var(--bg);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  color: var(--text2);
}
.quest-answer-btn:hover { border-color: var(--text3); }
.quest-answer-btn.selected-sim   { background: var(--success-bg); border-color: var(--success); color: var(--success); }
.quest-answer-btn.selected-nao   { background: var(--danger-bg); border-color: var(--danger); color: var(--danger); }
.quest-answer-btn.selected-na    { background: var(--bg2); border-color: var(--text3); color: var(--text3); }
.quest-notes-input {
  margin-top: 8px;
  width: 100%;
  padding: 6px 10px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 12.5px;
  font-family: inherit;
  resize: none;
  background: var(--bg);
  outline: none;
  transition: var(--transition);
}
.quest-notes-input:focus { border-color: var(--amarelo2); background: var(--card); }

/* Risk summary cards */
.risk-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 4px;
}
.risk-summary-item {
  background: var(--bg);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  border: 1.5px solid var(--border);
  display: flex;
  align-items: center;
  gap: 10px;
}
.risk-summary-item.baixo { border-color: #bbf7d0; background: var(--success-bg); }
.risk-summary-item.medio { border-color: #fde68a; background: var(--warning-bg); }
.risk-summary-item.alto  { border-color: #fecaca; background: var(--danger-bg); }
.risk-area-code {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  min-width: 42px;
}
.risk-area-name { font-size: 12px; font-weight: 600; color: var(--text); flex: 1; }
.risk-pct { font-size: 14px; font-weight: 800; }
.risk-pct.baixo { color: var(--success); }
.risk-pct.medio { color: var(--warning); }
.risk-pct.alto  { color: var(--danger); }

/* ── Normative ───────────────────────────────────────────────── */
.norm-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  transition: var(--transition);
  cursor: pointer;
}
.norm-card:hover { border-color: var(--amarelo2); box-shadow: var(--shadow-card); }
.norm-code {
  font-family: 'Courier New', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--amarelo2);
  margin-bottom: 5px;
}
.norm-title { font-size: 13px; color: var(--text); font-weight: 500; line-height: 1.4; }
.norm-ifrs { font-size: 11px; color: var(--text3); margin-top: 6px; }
.norm-area-tag {
  display: inline-block;
  background: var(--bg2);
  color: var(--text3);
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  margin-top: 6px;
}

/* Print ─────────────────────────────────────────────────────── */
@media print {
  .sidebar, .page-actions, .tab-nav, .btn-primary, .btn-secondary, .btn-danger { display: none !important; }
  .main { margin-left: 0; }
  .paper-pane { display: block !important; }
  .card { box-shadow: none; border: 1px solid #ddd; }
}

/* ── Paper card (used in loadAreaPapers) ──────────────────────── */
.paper-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  cursor: pointer;
  transition: var(--transition);
  background: var(--bg);
}
.paper-card:hover { background: var(--card); border-color: var(--amarelo2); box-shadow: var(--shadow-card); }
.paper-card.paper-review-flag {
  border-left: 3px solid #f5cb5c;
  background: rgba(245,203,92,.05);
}
.paper-list { display: flex; flex-direction: column; gap: 6px; }
.paper-info { flex: 1; min-width: 0; }
.paper-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 3px; }
.paper-actions { display: flex; gap: 6px; flex-shrink: 0; }

/* ══════════════════════════════════════════════════════════════════
   KAM 4 PILLARS - Dashboard
   ══════════════════════════════════════════════════════════════════ */
.kam-pillars { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media(max-width:900px){ .kam-pillars { grid-template-columns:repeat(2,1fr); } }
.kam-pillar { border-radius:12px; padding:18px 16px; display:flex; flex-direction:column; gap:8px; border:1.5px solid; transition:transform .2s; }
.kam-pillar:hover { transform:translateY(-2px); }
.kam-pillar.is-clickable { cursor:pointer; }
.kam-pillar.is-clickable:focus { outline:2px solid var(--azul); outline-offset:3px; }
.kam-num { font-size:1.6rem; font-weight:900; }
.kam-pillar-title { font-weight:700; font-size:1rem; }
.kam-pillar-body { font-size:.8rem; opacity:.8; flex:1; }
.pillar-1 { background:rgba(34,197,94,.08); border-color:rgba(34,197,94,.3); }
.pillar-1 .kam-num { color:#22c55e; }
.pillar-2 { background:rgba(59,130,246,.08); border-color:rgba(59,130,246,.3); }
.pillar-2 .kam-num { color:#3b82f6; }
.pillar-3 { background:rgba(245,203,92,.12); border-color:rgba(245,203,92,.4); }
.pillar-3 .kam-num { color:#f5cb5c; }
.pillar-4 { background:rgba(168,85,247,.08); border-color:rgba(168,85,247,.3); }
.pillar-4 .kam-num { color:#a855f7; }

/* ══════════════════════════════════════════════════════════════════
   REPORT PAGE
   ══════════════════════════════════════════════════════════════════ */
.report-print { max-width: 800px; margin: 0 auto; }
@media print {
  .sidebar, .page-header button, .tab-nav { display:none !important; }
  .page { padding:0; }
}

/* ══════════════════════════════════════════════════════════════════
   MANAGEMENT LETTER
   ══════════════════════════════════════════════════════════════════ */
#ml-table td { vertical-align:top; max-width:180px; font-size:.82rem; }

/* ══════════════════════════════════════════════════════════════════
   SAMPLE / PRIOR YEAR
   ══════════════════════════════════════════════════════════════════ */
.stat-card[style*="--stat-color"] .stat-icon { color: var(--stat-color, var(--amarelo2)); }

/* ══════════════════════════════════════════════════════════════════
   PAS TAB
   ══════════════════════════════════════════════════════════════════ */
#pas-content .form-group label { font-size:.82rem; font-weight:600; }
#pas-result-display { font-size:.85rem; }

/* ══════════════════════════════════════════════════════════════════
   SIDEBAR BACKUP BUTTON
   ══════════════════════════════════════════════════════════════════ */
.sidebar-backup { padding:8px 16px 0; }
.sidebar-backup button { padding:5px 10px; border:1px solid var(--border); border-radius:6px; background:transparent; color:var(--muted); cursor:pointer; width:100%; text-align:left; }
.sidebar-backup button:hover { background:var(--grafite2); color:var(--text); }

/* Grid-3 helper */
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:800px){ .grid-3 { grid-template-columns:1fr; } }

/* ══ PLANNING SECTION - legibilidade ══════════════════════════ */
/* §I §II etc dentro de card ficam ilegíveis em amarelo sobre branco */
.card-header h3 span[style*="color:var(--amarelo)"],
.card-header h3 .sec-mark {
  color: #b8860b !important; /* dark gold - legível em fundo branco */
}
/* Labels e texto do planejamento */
.form-group label {
  color: var(--text2);
  font-size: 13px;
  font-weight: 600;
}
/* Textareas do planejamento com altura adequada */
#pl-objective, #pl-scope, #pl-approach,
#pl-entity, #pl-industry, #pl-risks,
#pl-matrix, #pl-fraud, #pl-going,
#pl-related, #pl-subs, #pl-gov,
#pl-team, #pl-indep {
  height: auto;
  min-height: 100px;
}
/* Seções de planejamento - separação visual */
.plan-section { scroll-margin-top: 80px; margin-bottom: 24px; }
/* Botões de navegação do planejamento */
.plan-nav-btn {
  padding: 6px 14px;
  border: 1.5px solid var(--border);
  border-radius: 20px;
  background: var(--grafite2);
  color: var(--branco);
  cursor: pointer;
  font-size: 12px;
  transition: var(--transition);
}
.plan-nav-btn:hover { background: var(--amarelo); color: var(--grafite); }
/* Títulos de seção dentro do card - usar cor mais escura */
.card h4 { color: #8a6d00; font-size: .9rem; margin-bottom: 8px; }
/* Legibilidade geral de texto em cards */
.card p, .card span, .card div { color: inherit; }
.card-body { color: var(--text); }
/* Risk level guide e outros helpers */
.risk-guide { background: var(--bg); border-radius: 8px; padding: 10px 14px; font-size: .8rem; color: var(--text2); }

.acceptance-intro {
  font-size: .9rem;
  color: var(--text2);
  line-height: 1.6;
}
.acceptance-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ra-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ra-formula {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  color: var(--text2);
}
.ra-formula strong {
  color: var(--grafite);
  font-size: 1rem;
}
.ra-summary {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
  font-size: .86rem;
  color: var(--text2);
}

/* ══════════════════════════════════════════════════════════════════
   RAZÃO CONTÁBIL - Ledger Module
   ══════════════════════════════════════════════════════════════════ */
.ledger-pane { }
.ledger-pane.hidden { display:none; }
.ledger-pane table td code { font-size:.78rem; background:var(--bg); padding:1px 4px; border-radius:3px; }
.batch-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.4;
}
.batch-pill-ok { background: #dcfce7; color: #166534; }
.batch-pill-latest { background: #dbeafe; color: #1d4ed8; }
.batch-pill-warn,
.batch-pill-dup { background: #fef3c7; color: #92400e; }
.ledger-batch-duplicate td { background: #fffbeb; }
/* Suspicious row highlight */
#suspicious-table tr[data-weekend="1"],
#suspicious-table tr[data-holiday="1"] { background:rgba(239,68,68,.04); }
#suspicious-table tr[data-keyword="1"] { background:rgba(245,158,11,.04); }
.tb-map-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(220px, 1fr) minmax(220px, .9fr) auto;
  gap: 12px;
  align-items: center;
}
.tb-map-count {
  color: var(--text3);
  font-size: 12px;
  white-space: nowrap;
}
.tb-area-select {
  width: 170px;
  min-height: 30px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: #fff;
  color: var(--text);
  font-size: 12px;
  padding: 4px 8px;
}
.tb-area-select:focus {
  outline: 2px solid rgba(15,118,110,.18);
  border-color: var(--verde);
}
@media (max-width: 1000px) {
  .tb-map-toolbar { grid-template-columns: 1fr; }
  .tb-area-select { width: 100%; }
}
/* Drop zone for CSV */
.drop-zone {
  border: 2px dashed var(--border);
  border-radius: 12px;
  padding: 40px 20px;
  text-align: center;
  cursor: pointer;
  transition: var(--transition);
  background: var(--bg);
}
.drop-zone:hover { border-color: var(--amarelo2); background: var(--amarelo-soft); }
.drop-zone .drop-icon { font-size: 2.5rem; margin-bottom: 8px; }

/* ══════════════════════════════════════════════════
   RoSM MATRIX
   ══════════════════════════════════════════════════ */
.rosm-container { max-width: 1100px; margin: 0 auto; }

.rosm-matrix-wrap { overflow-x: auto; }
.rosm-matrix-table {
  width: 100%; border-collapse: collapse;
  margin-bottom: 1rem; min-width: 480px;
}
.rosm-matrix-table th, .rosm-matrix-table td {
  border: 2px solid #fff; padding: .5rem;
}
.rosm-corner { background: #1e2022; color: #F5CB5C; font-size:.85rem; padding:.6rem; }
.rosm-col-label { background: #2c3e50; color:#fff; text-align:center; font-size:.8rem; padding:.6rem; }
.rosm-row-label { background: #2c3e50; color:#fff; font-weight:600; padding:.6rem .8rem; font-size:.85rem; white-space:nowrap; }
.rosm-cell { text-align:center; vertical-align:middle; padding:.6rem .4rem; cursor:default; }
.rosm-cell-letter { font-size:1.5rem; font-weight:700; color:#fff; line-height:1; }
.rosm-cell-label { font-size:.7rem; color:rgba(255,255,255,.85); margin-top:.15rem; }
.rosm-dots { margin-top:.4rem; display:flex; flex-wrap:wrap; gap:3px; justify-content:center; }
.rosm-area-dot {
  background:rgba(255,255,255,.25); color:#fff;
  border:1px solid rgba(255,255,255,.5); border-radius:3px;
  font-size:.65rem; padding:1px 4px; cursor:default;
}

.rosm-legend {
  display: flex; flex-wrap: wrap; gap: .6rem 1.5rem;
  margin-top: .75rem; font-size: .83rem; color: #444;
}
.rosm-dot {
  display: inline-block; width: 12px; height: 12px;
  border-radius: 50%; margin-right: .3rem; vertical-align: middle;
}

.rosm-summary {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 1rem; margin-bottom: 1rem;
}
.rosm-badge {
  background: #fff; border-radius: 8px; padding: 1rem 1.2rem;
  display: flex; flex-direction: column; align-items:flex-start;
}
.rosm-badge-num { font-size: 2.2rem; font-weight: 700; line-height: 1; }
.rosm-badge-lbl { font-size: .82rem; color: #666; margin-top: .2rem; }

.rosm-area-card {
  border: 1px solid #e0e3e8; border-radius: 8px;
  margin-bottom: .75rem; overflow: hidden;
}
.rosm-area-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: .7rem 1rem; background: #f8f9fa; flex-wrap: wrap; gap: .5rem;
}
.rosm-area-code {
  font-weight: 700; font-size: .95rem; color: #1e2022;
  margin-right: .4rem;
}
.rosm-area-name { color: #444; font-size: .9rem; }
.rosm-pill-group { display: flex; gap: .4rem; flex-wrap: wrap; }
.rosm-pill {
  border-radius: 20px; font-size: .75rem; padding: .25rem .65rem;
  font-weight: 500; white-space: nowrap;
}
.rosm-area-body {
  display: grid; grid-template-columns: 1fr 1.8fr;
  gap: 1rem; padding: .8rem 1rem;
}
.rosm-area-left { display: flex; flex-direction: column; gap: .3rem; }
.rosm-area-right { }

.rosm-ctrl-bar-wrap { display:flex; flex-direction:column; gap:.25rem; }
.rosm-ctrl-bar {
  height: 6px; background: #e0e3e8; border-radius: 3px; overflow: hidden;
}
.rosm-q-badge {
  display: inline-block; border-radius: 4px; color: #fff;
  font-size: .72rem; padding: .2rem .5rem; margin-right: .2rem;
}
.rosm-rc-detail { font-size: .8rem; color: #555; margin-top: .3rem; }

.rosm-rec-box {
  border: 1.5px solid; border-radius: 6px; padding: .75rem;
  background: #fafafa; height: 100%; box-sizing: border-box;
}
.rosm-rec-title { font-weight: 600; font-size: .85rem; margin-bottom: .4rem; }
.rosm-rec-text { font-size: .82rem; color: #444; line-height: 1.5; }
.rosm-sample-badge {
  display: inline-block; border-radius: 12px; color: #fff;
  font-size: .78rem; font-weight: 600; padding: .2rem .6rem;
  margin-left: .3rem;
}
.rosm-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}
.rosm-filter-bar .search-box { min-width: 240px; }
.rosm-filter-count {
  margin-left: auto;
  color: var(--text3);
  font-size: 12px;
  font-weight: 700;
}
.rosm-table-wrap {
  overflow: auto;
  max-height: 560px;
}
.rosm-table { min-width: 980px; }
.rosm-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}
.rosm-table td { vertical-align: top; }
.rosm-table-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  color: #fff;
  font-size: 11.5px;
  font-weight: 800;
  padding: 4px 9px;
  white-space: nowrap;
}
.progress-mini {
  height: 5px;
  width: 72px;
  margin-top: 5px;
  border-radius: 999px;
  background: #e5e7eb;
  overflow: hidden;
}
.progress-mini span {
  display: block;
  height: 100%;
  background: var(--info);
  border-radius: inherit;
}

.risk-heatmap {
  display: grid;
  grid-template-columns: 72px repeat(3, minmax(80px, 1fr));
  gap: 6px;
  align-items: stretch;
}
.risk-heatmap-label {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text2);
  font-size: 12px;
  font-weight: 700;
}
.risk-heatmap-cell {
  min-height: 58px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #111827;
  border: 1px solid rgba(15, 23, 42, .08);
}
.risk-heatmap-cell strong { font-size: 22px; }

.documentation-tree {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.doc-phase {
  border-left: 4px solid var(--amarelo2);
  padding-left: 12px;
}
.doc-phase-title {
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
  margin: 0 0 8px;
  text-transform: uppercase;
}

@media (max-width: 700px) {
  .rosm-area-body { grid-template-columns: 1fr; }
  .rosm-summary { grid-template-columns: 1fr; }
  .risk-heatmap { grid-template-columns: 58px repeat(3, minmax(56px, 1fr)); }
}

/* Readability overrides for dark inline panels and planning chips */
[style*="background:var(--grafite2)"],
[style*="background: var(--grafite2)"],
[style*="background:var(--grafite3)"],
[style*="background: var(--grafite3)"] {
  color: #f8fafc !important;
}
[style*="background:var(--grafite2)"] *,
[style*="background: var(--grafite2)"] *,
[style*="background:var(--grafite3)"] *,
[style*="background: var(--grafite3)"] * {
  color: inherit !important;
}
button[style*="background:var(--grafite3)"],
button[style*="background: var(--grafite3)"] {
  color: #f8fafc !important;
  border-color: #5a6069 !important;
}
button[style*="background:var(--grafite3)"]:hover,
button[style*="background: var(--grafite3)"]:hover {
  background: var(--grafite2) !important;
}
.kpi-label {
  font-size: 12px;
  color: var(--text2);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .3px;
}
.kpi-value {
  font-size: 16px;
  font-weight: 800;
  color: var(--text);
}

/* Financial statements preview */
.financial-doc {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.financial-doc.print-only {
  display: none;
}
.df-summary-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.df-kpi {
  min-height: 106px;
  padding: 16px;
  border: 1px solid var(--border);
  border-top: 3px solid var(--grafite);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-card);
}
.df-kpi span,
.df-kpi small {
  display: block;
  color: var(--text2);
  font-size: 12px;
}
.df-kpi strong {
  display: block;
  margin: 8px 0 4px;
  color: var(--text);
  font-size: 22px;
  line-height: 1.15;
}
.df-kpi.asset { border-top-color: #2563eb; }
.df-kpi.liability { border-top-color: #0f766e; }
.df-kpi.income { border-top-color: #16a34a; }
.df-kpi.loss,
.df-kpi.warn { border-top-color: #dc2626; }
.df-kpi.ok { border-top-color: #16a34a; }
.df-kpi.adjustment { border-top-color: var(--gold); }
.df-info-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.df-info-strip > div {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.df-info-strip strong,
.df-info-strip span {
  display: block;
}
.df-info-strip strong {
  color: var(--text);
  font-size: 12px;
  margin-bottom: 4px;
}
.df-info-strip span {
  color: var(--text2);
  font-size: 12px;
  line-height: 1.45;
}
.df-workspace {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.df-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px;
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
}
.df-tabs button {
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: #fff;
  color: var(--text2);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.df-tabs button.active {
  border-color: var(--grafite);
  background: var(--grafite);
  color: #fff;
}
#financial-panel {
  padding: 14px;
}
.df-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.df-panel-grid .df-wide {
  grid-column: 1 / -1;
}
.df-check-list {
  display: grid;
  gap: 8px;
}
.df-check {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.df-check strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 24px;
  border-radius: 6px;
  background: var(--grafite);
  color: #fff;
  font-size: 11px;
}
.df-check.ok strong {
  background: var(--success);
}
.df-check.warn strong {
  background: var(--danger);
}
.df-check span {
  color: var(--text2);
  font-size: 13px;
  font-weight: 700;
}
.df-alert-list {
  margin: 0;
  padding-left: 18px;
  color: var(--text2);
  font-size: 13px;
  line-height: 1.6;
}
.df-working-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.df-working-table-wrap {
  min-width: 0;
  overflow-x: auto;
}
.df-working-table-wrap h4 {
  margin: 0 0 8px;
  color: var(--text);
  font-size: 14px;
}
.df-working-section {
  margin-top: 10px;
  padding: 7px 9px;
  border-radius: 6px;
  background: var(--grafite);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}
.df-working-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.df-working-table th {
  padding: 8px 7px;
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-size: 10px;
  text-align: right;
  text-transform: uppercase;
}
.df-working-table th:first-child,
.df-working-table td:first-child {
  text-align: left;
}
.df-working-table td {
  padding: 8px 7px;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  text-align: right;
  white-space: nowrap;
}
.df-working-table td:first-child {
  min-width: 210px;
  white-space: normal;
}
.df-working-table.compact {
  margin-bottom: 6px;
}
.df-working-table.compact th,
.df-working-table.compact td {
  font-size: 11px;
  padding: 6px;
}
.df-working-table tr.total td {
  background: #f8fafc;
  font-weight: 800;
}
.df-working-table tr.grand td {
  background: #111827;
  color: #fff;
  font-weight: 800;
}
.df-panel-note {
  margin: 12px 0 0;
  padding: 10px;
  border-left: 3px solid var(--gold);
  border-radius: 6px;
  background: var(--warning-bg);
  color: var(--text2);
  font-size: 12px;
  line-height: 1.5;
}
.df-review-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.df-review-box {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.df-review-box strong,
.df-review-box span {
  display: block;
}
.df-review-box strong {
  color: var(--text);
  font-size: 13px;
  margin-bottom: 6px;
}
.df-review-box span {
  color: var(--text2);
  font-size: 12px;
  line-height: 1.45;
}
.financial-notes-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.financial-note-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: flex-start;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.financial-note-item.inactive {
  opacity: .62;
}
.financial-note-item strong {
  display: block;
  color: var(--text);
  font-size: 13px;
  margin-bottom: 5px;
}
.financial-note-item p {
  margin: 0;
  color: var(--text2);
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
}
.financial-note-badges,
.df-note-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0;
}
.df-note-summary {
  margin: 0 0 12px;
}
.df-note-summary span,
.fn-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  color: var(--text2);
  font-size: 11px;
  font-weight: 800;
}
.fn-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.fn-checklist strong {
  grid-column: 1 / -1;
  color: var(--text);
  font-size: 12px;
}
.fn-checklist label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text2);
  font-size: 12px;
  font-weight: 700;
}
.fn-checklist input {
  width: 18px;
  height: 18px;
  accent-color: var(--gold);
}
.financial-note-item small {
  display: block;
  margin-top: 6px;
  color: var(--text3);
  font-size: 11px;
}
.financial-note-toggle,
#modal-body .form-group:has(#fn-active),
.modal-body .form-group:has(#fn-active) {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
  cursor: pointer;
}
.financial-note-toggle input,
#modal-body #fn-active,
.modal-body #fn-active {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px;
  padding: 0 !important;
  accent-color: var(--gold);
  cursor: pointer;
}
.financial-note-toggle span,
#modal-body .form-group:has(#fn-active) label,
.modal-body .form-group:has(#fn-active) label {
  margin: 0;
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
}
.df-adjustment-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}
.df-adjustment-summary span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 5px 9px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg2);
  color: var(--text2);
  font-size: 12px;
}
.df-adjustment-summary .ok {
  border-color: #bbf7d0;
  background: var(--success-bg);
  color: var(--success);
}
.df-adjustment-summary .warn {
  border-color: #fde68a;
  background: var(--warning-bg);
  color: var(--warning);
}
.account-link,
.account-free {
  display: inline-flex;
  max-width: 260px;
  padding: 4px 7px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
}
.account-link {
  border: 1px solid #bbf7d0;
  background: var(--success-bg);
  color: #166534;
}
.account-free {
  border: 1px solid #fde68a;
  background: var(--warning-bg);
  color: #92400e;
}
.hint-box {
  padding: 9px 10px;
  border: 1px solid #fde68a;
  border-radius: 8px;
  background: var(--warning-bg);
  color: var(--text2);
  font-size: 12px;
  line-height: 1.45;
}

/* Work control */
.task-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
}
.work-task {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.work-task-main {
  flex: 1 1 auto;
  min-width: 0;
}
.work-task-main small {
  display: block;
  margin-top: 3px;
  color: var(--text3);
  font-size: 11px;
}
.work-task-actions {
  display: flex;
  gap: 6px;
  flex: 0 0 auto;
}
.work-budget-box {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.work-budget-box > div {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.work-budget-box span {
  display: block;
  color: var(--text3);
  font-size: 11px;
  margin-bottom: 5px;
}
.work-budget-box strong {
  color: var(--text);
}

/* Audit tick marks */
.tick-palette {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.tick-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
}
.tick-button:hover {
  border-color: var(--amarelo);
  box-shadow: var(--shadow-sm);
}
.tick-button strong,
.tick-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 28px;
  padding: 0 7px;
  border-radius: 6px;
  background: var(--grafite);
  color: var(--amarelo);
  font-family: "Courier New", monospace;
  font-weight: 800;
}
.tick-button span {
  font-size: 12px;
  font-weight: 700;
}
.tick-applied-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tick-applied {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.tick-applied small {
  display: block;
  margin-top: 2px;
  color: var(--text3);
  font-size: 11px;
}
.tick-config-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.tick-config-list span {
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg2);
  font-size: 12px;
}
.proposal-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
}
.proposal-checklist label,
.proposal-check-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  min-height: 44px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #fff;
  color: var(--text2);
  font-size: 12px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  user-select: none;
}
.proposal-checklist label:hover,
.proposal-check-item:hover {
  border-color: var(--gold);
  background: #fffdf5;
}
.proposal-checklist input {
  flex: 0 0 18px;
  width: 18px !important;
  min-width: 18px;
  height: 18px !important;
  min-height: 18px;
  margin: 1px 0 0 !important;
  padding: 0 !important;
  accent-color: var(--gold);
  cursor: pointer;
}
.proposal-checklist span {
  line-height: 1.25;
}
.questionnaire-list {
  display: grid;
  gap: 10px;
  padding: 14px;
}
.questionnaire-item {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  padding: 12px;
  display: grid;
  gap: 10px;
}
.questionnaire-question {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 8px;
  align-items: start;
}
.segmented-control {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.segmented-control label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  background: var(--bg2);
}
.segmented-control label.active {
  border-color: var(--teal);
  background: #ecfdf5;
  color: #065f46;
}
.segmented-control input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--teal);
}
.sticky-actions {
  position: sticky;
  bottom: 0;
  background: rgba(248,250,252,.94);
  border-top: 1px solid var(--border);
  padding: 12px 0;
}
.df-empty-statement {
  margin-top: 18mm;
  max-width: 128mm;
  border-top: 1px solid #111827;
  padding-top: 8mm;
  color: #1f2937;
  font-size: 9px;
  line-height: 1.5;
}
.df-empty-statement strong {
  display: block;
  margin-bottom: 3mm;
  color: #0f172a;
  font-size: 10px;
}
.df-empty-statement p {
  margin: 0;
}
@media (max-width: 900px) {
  .work-task {
    align-items: flex-start;
    flex-direction: column;
  }
  .work-budget-box {
    grid-template-columns: 1fr;
  }
  .proposal-checklist {
    grid-template-columns: 1fr;
  }
}
.df-page {
  background: #fff;
  color: var(--grafite);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 24px 28px;
  box-shadow: var(--shadow-card);
}
.df-short {
  max-width: 850px;
}
.df-title h2 {
  font-size: 18px;
  line-height: 1.15;
  margin: 0 0 4px;
  font-weight: 800;
  text-transform: uppercase;
}
.df-title h3 {
  font-size: 12px;
  line-height: 1.2;
  margin: 0 0 4px;
  font-weight: 800;
  text-transform: uppercase;
}
.df-title p {
  font-size: 11px;
  margin: 0 0 10px;
  color: var(--text3);
}
.df-two-col {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 28px;
}
.df-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.df-table th {
  color: var(--grafite);
  background: transparent;
  border-bottom: 1px solid var(--grafite);
  padding: 3px 2px;
  font-size: 10px;
  text-align: left;
}
.df-table td {
  color: var(--grafite);
  border-bottom: none;
  padding: 1.8px 2px;
  font-size: 11px;
  vertical-align: top;
}
.df-table .df-note {
  text-align: center;
  width: 42px;
}
.df-table .df-num {
  text-align: right;
  width: 82px;
  white-space: nowrap;
}
.df-section td {
  font-weight: 800;
  text-transform: uppercase;
  padding-top: 7px;
}
.df-total td,
.df-grand td,
.df-bold td {
  font-weight: 800;
}
.df-total .df-num {
  border-top: 1px solid var(--grafite);
}
.df-grand .df-num {
  border-top: 2px solid var(--grafite);
  border-bottom: 1px solid var(--grafite);
}
.df-foot {
  color: var(--grafite);
  font-size: 10px;
  font-weight: 700;
  margin-top: 10px;
}

.df-note-block h4 {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: var(--text);
  font-size: 12px;
  margin: 0 0 6px;
  text-transform: uppercase;
}

.df-note-block h4 span {
  flex: 0 0 24px;
}
@media (max-width: 1100px) {
  .df-two-col { grid-template-columns: 1fr; }
  .df-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .df-info-strip,
  .df-working-columns,
  .df-review-grid,
  .df-panel-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .df-summary-grid { grid-template-columns: 1fr; }
  .df-tabs button { flex: 1 1 auto; }
}

/* Compact modal forms */
.modal-box {
  max-width: 640px;
}
.modal-box.modal-lg {
  max-width: 680px;
}
.modal-header {
  min-height: 52px;
  padding: 12px 16px;
}
.modal-header h3 {
  font-size: 13px;
}
.modal-close {
  width: 24px;
  height: 24px;
  font-size: 12px;
}
#modal-body,
.modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 14px 12px;
}
#modal-body > div,
.modal-body > div {
  gap: 10px !important;
}
#modal-body .form-row,
.modal-body .form-row {
  gap: 12px;
}
#modal-body .form-row-3,
.modal-body .form-row-3 {
  gap: 12px;
}
#modal-body .form-group,
.modal-body .form-group {
  gap: 4px;
}
#modal-body .form-group label,
.modal-body .form-group label {
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.35px;
}
#modal-body .form-group input,
#modal-body .form-group select,
#modal-body .form-group textarea,
.modal-body .form-group input,
.modal-body .form-group select,
.modal-body .form-group textarea {
  height: 34px;
  padding: 0 10px 0 12px;
  font-size: 12px;
}
#modal-body .form-group select,
.modal-body .form-group select {
  background-position: right 11px center;
  padding-right: 30px;
}
#modal-body .form-group textarea,
.modal-body .form-group textarea {
  min-height: 54px;
  padding: 9px 10px 9px 12px;
  line-height: 1.4;
}
#modal-body .form-actions,
.modal-body .form-actions {
  margin-top: 2px;
  gap: 8px;
}
#modal-body .btn-primary,
#modal-body .btn-secondary,
#modal-body .btn-danger,
.modal-body .btn-primary,
.modal-body .btn-secondary,
.modal-body .btn-danger {
  padding: 7px 12px;
  font-size: 11px;
}

.permission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.permission-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  padding: 12px;
}
.permission-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.permission-head strong {
  font-size: 13px;
  color: var(--text);
}
.permission-head span {
  font-size: 10px;
  font-weight: 700;
  color: var(--amarelo2);
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 999px;
  padding: 3px 8px;
  white-space: nowrap;
}
.permission-card ul {
  margin: 0;
  padding-left: 16px;
  color: var(--text2);
  font-size: 12px;
  line-height: 1.55;
}
.permission-note {
  margin-top: 12px;
  border-left: 3px solid var(--amarelo);
  background: #fffbeb;
  color: #6b4e00;
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.45;
}

.audit-methodology-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow-card);
  margin-bottom: 16px;
  overflow: hidden;
}

.audit-methodology-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
}

.audit-methodology-head strong {
  font-size: 14px;
  color: var(--text);
}

.audit-methodology-head span {
  font-size: 11px;
  color: var(--text3);
  font-weight: 700;
}

.audit-methodology-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 10px;
  padding: 14px 16px;
}

.audit-methodology-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 11px;
  background: #fff;
}

.audit-methodology-item strong {
  font-size: 12px;
  color: var(--text);
}

.audit-methodology-item p {
  margin: 3px 0 0;
  font-size: 11px;
  line-height: 1.45;
  color: var(--text2);
}

.procedure-method-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  border-radius: 7px;
  padding: 3px 7px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
  border: 1px solid transparent;
  vertical-align: middle;
}

.procedure-method-badge strong {
  font-size: 10px;
  letter-spacing: .3px;
}

.procedure-method-badge span {
  font-size: 11px;
  font-weight: 700;
}

.procedure-method-risk .procedure-method-badge,
.procedure-method-badge.procedure-method-risk {
  background: #eef2ff;
  color: #3730a3;
  border-color: #c7d2fe;
}

.procedure-method-control .procedure-method-badge,
.procedure-method-badge.procedure-method-control {
  background: #ecfdf5;
  color: #047857;
  border-color: #a7f3d0;
}

.procedure-method-detail .procedure-method-badge,
.procedure-method-badge.procedure-method-detail {
  background: #fff7ed;
  color: #c2410c;
  border-color: #fed7aa;
}

.procedure-method-analytical .procedure-method-badge,
.procedure-method-badge.procedure-method-analytical {
  background: #eff6ff;
  color: #1d4ed8;
  border-color: #bfdbfe;
}

.procedure-method-other .procedure-method-badge,
.procedure-method-badge.procedure-method-other {
  background: #f8fafc;
  color: #475569;
  border-color: #cbd5e1;
}

.procedure-method-panel {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #f8fafc;
  padding: 12px 14px;
  color: var(--text2);
  font-size: 12.5px;
}

@media (max-width: 1100px) {
  .audit-methodology-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
}

@media (max-width: 640px) {
  .audit-methodology-grid { grid-template-columns: 1fr; }
  .audit-methodology-head { align-items: flex-start; flex-direction: column; }
}

.import-mapper {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.import-map-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px 12px;
}

.import-map-grid label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
  color: var(--text2);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
}

.import-map-grid select {
  min-height: 34px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  padding: 6px 8px;
  color: var(--text);
  font-size: 13px;
  text-transform: none;
  font-weight: 500;
}

.compact-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.compact-table th,
.compact-table td {
  border-bottom: 1px solid var(--border);
  padding: 6px 8px;
  text-align: left;
  white-space: nowrap;
}

.compact-table th {
  background: var(--bg-soft);
  color: var(--text2);
  font-size: 11px;
  text-transform: uppercase;
}

.import-preview-scroll {
  max-height: 260px;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.import-scroll-hint {
  position: sticky;
  left: 0;
  top: 0;
  z-index: 3;
  background: #fffbeb;
  border-bottom: 1px solid #fde68a;
  color: #6b4e00;
  font-size: 12px;
  font-weight: 700;
  padding: 7px 10px;
}

.import-preview-table {
  min-width: max-content;
}

.import-preview-table th,
.import-preview-table td {
  min-width: 135px;
  max-width: 360px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.import-preview-table .import-col-history {
  min-width: 360px;
  max-width: 420px;
}

.import-preview-table .import-col-desc {
  min-width: 170px;
  max-width: 240px;
}

.import-preview-table .import-col-code {
  min-width: 110px;
  max-width: 150px;
}

.import-preview-table .import-col-date {
  min-width: 120px;
  max-width: 150px;
}

.import-preview-table .import-col-money {
  min-width: 110px;
  max-width: 130px;
  text-align: right;
}

.import-preview-table th:first-child,
.import-preview-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 44px;
  max-width: 44px;
  text-align: center;
  background: #fff;
}

.import-preview-table th:first-child {
  z-index: 4;
  background: var(--bg-soft);
}

.import-layout-picker {
  min-height: 0;
}

.import-layout-empty {
  color: var(--text3);
  font-size: 12px;
  border: 1px dashed var(--border);
  border-radius: 6px;
  padding: 8px 10px;
  background: #fff;
}

.import-layout-saved {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 10px;
  background: #fff;
}

.import-layout-saved strong {
  font-size: 12px;
  color: var(--text2);
  text-transform: uppercase;
}

.import-layout-saved div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.accounting-flow-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow-sm);
  margin: 0 0 16px;
  overflow: hidden;
}

.accounting-flow-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}

.accounting-flow-head strong {
  display: block;
  color: var(--text);
}

.accounting-flow-head span {
  display: block;
  color: var(--text3);
  font-size: 12px;
  margin-top: 2px;
}

.accounting-flow-ready {
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 10px;
  white-space: nowrap;
}

.accounting-flow-ready.ok {
  background: #dcfce7;
  color: #15803d;
}

.accounting-flow-ready.warn {
  background: #fff7ed;
  color: #b45309;
}

.accounting-flow-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 14px 16px;
}

.accounting-flow-step {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 64px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #f8fafc;
  color: var(--text);
  text-align: left;
  padding: 10px;
  cursor: pointer;
}

.accounting-flow-step:hover {
  border-color: var(--primary);
  box-shadow: var(--shadow-sm);
}

.accounting-flow-step.active {
  border-color: var(--primary);
  background: #eef6ff;
}

.accounting-flow-step.ok .flow-num {
  background: #0f766e;
}

.accounting-flow-step.pending .flow-num {
  background: #111827;
}

.accounting-flow-step strong,
.accounting-flow-step small {
  display: block;
}

.accounting-flow-step small {
  color: var(--text3);
  font-size: 12px;
  margin-top: 2px;
}

.flow-num {
  align-items: center;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 28px;
  font-weight: 800;
  height: 28px;
  justify-content: center;
  width: 28px;
}

.accounting-flow-warnings,
.accounting-flow-ok {
  border-top: 1px solid var(--border);
  font-size: 12px;
  padding: 10px 16px;
}

.accounting-flow-warnings {
  background: #fffbeb;
  color: #92400e;
}

.accounting-flow-warnings div + div {
  margin-top: 4px;
}

.accounting-flow-ok {
  background: #ecfdf5;
  color: #047857;
}

@media (max-width: 900px) {
  .accounting-flow-grid {
    grid-template-columns: 1fr;
  }

  .accounting-flow-head {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Caderno de Controle Interno */
.ml-summary-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 16px;
}

.ml-summary-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow-sm);
  min-height: 96px;
  padding: 16px;
}

.ml-summary-card.danger { border-top: 3px solid #dc2626; }
.ml-summary-card.warning { border-top: 3px solid #c58a21; }
.ml-summary-card.success { border-top: 3px solid #059669; }

.ml-summary-value {
  color: var(--text);
  font-size: 30px;
  font-weight: 800;
  line-height: 1;
}

.ml-summary-label {
  color: var(--text3);
  font-size: 12px;
  margin-top: 8px;
}

.ml-filter-row {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(260px, 1.6fr) repeat(3, minmax(150px, .8fr));
}

.ml-area-stack {
  display: grid;
  gap: 14px;
}

.ml-area-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}

.ml-area-header {
  align-items: center;
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  padding: 12px 16px;
}

.ml-area-header h3 {
  font-size: 15px;
  margin: 0;
}

.ml-item-list {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.ml-item {
  border: 1px solid var(--border);
  border-left: 4px solid #94a3b8;
  border-radius: 8px;
  padding: 12px;
}

.ml-item.critico { border-left-color: #7f1d1d; }
.ml-item.alto { border-left-color: #dc2626; }
.ml-item.medio { border-left-color: #c58a21; }
.ml-item.baixo { border-left-color: #059669; }

.ml-item-top {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.ml-item-title {
  color: var(--text);
  font-weight: 800;
  line-height: 1.3;
}

.ml-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.ml-pill {
  background: #eef2f7;
  border-radius: 999px;
  color: var(--text2);
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  padding: 6px 9px;
}

.ml-detail-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 12px;
}

.ml-detail {
  background: #f8fafc;
  border: 1px solid #e5eaf1;
  border-radius: 8px;
  color: var(--text2);
  font-size: 12px;
  line-height: 1.5;
  padding: 10px;
}

.ml-detail strong {
  color: var(--text);
  display: block;
  font-size: 11px;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.ml-footer {
  align-items: center;
  border-top: 1px solid #e5eaf1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: space-between;
  margin-top: 12px;
  padding-top: 10px;
}

.mini-progress {
  background: #e8edf3;
  border-radius: 999px;
  height: 6px;
  min-width: 90px;
  overflow: hidden;
}

.mini-progress span {
  background: #c58a21;
  display: block;
  height: 100%;
}

@media (max-width: 980px) {
  .ml-summary-grid,
  .ml-filter-row,
  .ml-detail-grid {
    grid-template-columns: 1fr;
  }
}
.report-format-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px;background:#f1f5f9;border:1px solid var(--border);border-radius:6px;position:sticky;top:0;z-index:2}.report-format-toolbar button,.report-format-toolbar select{height:30px;padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:#fff;color:#172033;cursor:pointer}.report-rich-editor{min-height:80px;white-space:pre-wrap;overflow:auto}.report-rich-editor:focus{outline:2px solid #0f766e}

/* Materialidade - aviso de balancete novo e histórico */
.mat-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;border-radius:10px;padding:12px 16px;margin-bottom:14px;font-size:13px;line-height:1.5}
.mat-banner.warn{background:#fff7ed;border:1px solid #fdba74;color:#7c2d12}
.mat-banner.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#14532d}
.mat-history{background:var(--surface, #fff);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13px}
.mat-history summary{cursor:pointer;font-weight:600}
.mat-history table{margin-top:10px}
.signoff-box{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:12.5px;color:var(--text2);margin-top:10px}
.signoff-box .warn{color:#b45309;font-weight:600}
.quality-response{font-size:12px;color:var(--text2);margin-top:4px;line-height:1.45}
.quality-response b{color:var(--text1, #111827)}

/* Rodada 9 - acabamento visual */
.grid-2 > *, .grid-3 > *, .grid-4 > *, .form-row > * { min-width: 0; }
.card .card-body { overflow-x: auto; }
.card > table, .card .card-body > table { min-width: 100%; }
.stat-icon-box { font-weight: 800; letter-spacing: .02em; }
.page-header h1 { letter-spacing: -.01em; }
.page-actions { flex-wrap: wrap; justify-content: flex-end; }
.data-table td.num, .data-table th.num, td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sidebar-backup { position: relative; z-index: 1; }
.phase-card .phase-detail + .phase-detail { line-height: 1.35; }
@media print { .sidebar, .topbar, .page-actions { display: none !important; } }
.norm-chip{display:inline-block;background:#f2f4f7;color:#344054;border:1px solid #e4e7ec;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500}
.rf-box{border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin:0 0 14px;background:#fff;font-size:13px}
.rf-box.rf-none{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#f9fafb}
.rf-box.rf-ok{border-left:4px solid #12b76a}.rf-box.rf-warn{border-left:4px solid #f79009;background:#fffcf5}.rf-box.rf-alert{border-left:4px solid #d92d20;background:#fffbfa}
.rf-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.rf-title{font-weight:700}.rf-sub{color:var(--text3);font-size:12px;margin-top:2px}
.rf-figs{display:flex;gap:18px}.rf-figs span{display:block;font-size:11px;color:var(--text3)}.rf-figs strong{font-variant-numeric:tabular-nums}
.rf-msg{margin-top:8px}.rf-actions{display:flex;gap:8px;margin-top:6px}.rf-hist{margin-top:8px;font-size:12px}.rf-hist ul{margin:6px 0 0 18px}

/* ══ Dashboard 2 (painel inicial) ══════════════════════════════════════════ */
.d2 { max-width: 1480px; }
.d2-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(280px, 1fr) minmax(0, 1.6fr); gap: 28px; align-items: center;
  padding: 26px 30px; margin-bottom: 22px; border-radius: 18px; color: #f8fafc;
  background: radial-gradient(120% 140% at 0% 0%, #2b3445 0%, #161c27 55%, #111827 100%); box-shadow: 0 18px 40px rgba(15,23,42,.18); }
.d2-hero::after { content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px; border-radius: 50%;
  background: radial-gradient(circle, rgba(214,168,79,.28), rgba(214,168,79,0) 70%); pointer-events: none; }
.d2-hero-main { display: flex; align-items: center; gap: 18px; min-width: 0; }
.d2-hero-logo { width: 68px; height: 68px; object-fit: contain; background: #fff; border-radius: 16px; padding: 6px; flex: 0 0 auto; }
.d2-date { display: inline-block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #d6a84f; font-weight: 700; }
.d2-hero h1 { margin: 4px 0 4px; font-size: 26px; line-height: 1.15; font-weight: 800; color: #fff; letter-spacing: -.01em; }
.d2-hero p { margin: 0; font-size: 12.5px; color: #cbd5e1; }
.d2-kpis { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.d2-kpi { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.10); border-radius: 14px; padding: 14px 16px; min-width: 0; }
.d2-kpi span { display: block; font-size: 11px; color: #cbd5e1; font-weight: 600; }
.d2-kpi strong { display: block; font-size: 28px; line-height: 1.1; margin: 6px 0 2px; color: #fff; font-variant-numeric: tabular-nums; }
.d2-kpi small { font-size: 11px; color: #94a3b8; }
.d2-kpi.warn { background: rgba(214,168,79,.16); border-color: rgba(214,168,79,.45); }
.d2-kpi.warn strong { color: #f3d08f; }
.d2-kpi-bar { display: block; height: 4px; border-radius: 4px; background: rgba(255,255,255,.12); margin-top: 8px; overflow: hidden; }
.d2-kpi-bar b { display: block; height: 100%; background: #d6a84f; border-radius: 4px; }

.d2-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 22px; align-items: start; }
.d2-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 2px 12px; }
.d2-section-head h2 { margin: 0; font-size: 16px; font-weight: 800; color: var(--text); }
.d2-section-head > div { display: flex; gap: 6px; }
.d2-muted { color: var(--text3); font-size: 12px; }

.d2-projects { display: grid; gap: 16px; }
.d2-proj { background: var(--card); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-card); overflow: hidden; transition: box-shadow .18s ease, transform .18s ease; }
.d2-proj:hover { box-shadow: var(--shadow); transform: translateY(-1px); }
.d2-proj-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; padding: 18px 20px 10px; flex-wrap: wrap; }
.d2-proj-id { display: flex; gap: 12px; align-items: center; min-width: 0; }
.d2-avatar { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; font-size: 14px;
  color: #7a5414; background: linear-gradient(135deg, #fbefd6, #f3d9a4); flex: 0 0 auto; }
.d2-proj-id h3 { margin: 0; font-size: 15.5px; font-weight: 800; color: var(--text); }
.d2-proj-id small { color: var(--text3); font-size: 11.5px; }
.d2-proj-tags { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.d2-chip { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: var(--bg2); color: var(--text2); white-space: nowrap; }
.d2-chip.green { background: #ecfdf5; color: #0f766e; } .d2-chip.gold { background: #fffbeb; color: #92650f; } .d2-chip.red { background: #fef2f2; color: #be123c; }

.d2-proj-body { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 22px; align-items: center; padding: 6px 20px 16px; }
.d2-progress { display: flex; align-items: center; gap: 14px; }
.d2-ring-wrap { position: relative; width: 64px; height: 64px; flex: 0 0 auto; }
.d2-ring { width: 64px; height: 64px; transform: rotate(-90deg); }
.d2-ring-bg { fill: none; stroke: var(--bg2); stroke-width: 7; }
.d2-ring-fg { fill: none; stroke: var(--amarelo); stroke-width: 7; stroke-linecap: round; transition: stroke-dashoffset .6s ease; }
.d2-ring-txt { position: absolute; inset: 0; display: grid; place-items: center; font-weight: 800; font-size: 14px; color: var(--text); }
.d2-progress-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.d2-progress-txt strong { font-size: 13px; color: var(--text); }
.d2-progress-txt span { font-size: 11.5px; color: var(--text3); }
.d2-flag { color: #92650f !important; font-weight: 700; } .d2-ok { color: #0f766e !important; font-weight: 700; }

.d2-phases { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.d2-phase { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.d2-phase-bar { height: 8px; border-radius: 6px; background: var(--bg2); position: relative; overflow: hidden; }
.d2-phase.done .d2-phase-bar { background: var(--success); }
.d2-phase.partial .d2-phase-bar::after { content: ""; position: absolute; inset: 0 50% 0 0; background: var(--amarelo); }
.d2-phase-lbl { font-size: 10.5px; font-weight: 700; color: var(--text3); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.d2-phase.done .d2-phase-lbl { color: var(--success); }

.d2-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--border); background: #fafbfc; }
.d2-facts > div { padding: 12px 20px; border-right: 1px solid var(--border); min-width: 0; }
.d2-facts > div:last-child { border-right: 0; }
.d2-facts dt { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--text3); font-weight: 700; }
.d2-facts dd { margin: 4px 0 2px; font-size: 13.5px; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.d2-facts small { font-size: 11px; color: var(--text3); }
.d2-warn { color: #be123c; font-weight: 800; margin-left: 4px; }
.d2-proj-foot { display: flex; gap: 8px; flex-wrap: wrap; padding: 12px 20px; border-top: 1px solid var(--border); }

.d2-method { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.d2-step { text-align: left; background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 14px; cursor: pointer; display: flex; flex-direction: column; gap: 4px; transition: border-color .15s, box-shadow .15s; }
.d2-step:hover { border-color: var(--amarelo); box-shadow: var(--shadow-card); }
.d2-step span { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; font-weight: 800; font-size: 12px; background: var(--amarelo-soft); color: #92650f; margin-bottom: 4px; }
.d2-step strong { font-size: 13px; color: var(--text); } .d2-step small { font-size: 11.5px; color: var(--text3); line-height: 1.35; }

.d2-col-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 16px; }
.d2-panel { background: var(--card); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-card); overflow: hidden; }
.d2-panel-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px 10px; }
.d2-panel-head h3 { margin: 0; font-size: 14px; font-weight: 800; }
.d2-count { min-width: 24px; height: 22px; padding: 0 7px; border-radius: 999px; background: var(--amarelo-soft); color: #92650f; font-size: 12px; font-weight: 800; display: grid; place-items: center; }
.d2-alerts { padding: 0 8px 8px; }
.d2-alert { display: flex; align-items: center; gap: 11px; width: 100%; padding: 10px 8px; border: 0; background: transparent; border-radius: 10px; text-align: left; cursor: pointer; color: var(--text); }
.d2-alert:hover { background: var(--bg); }
.d2-alert-ic { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-weight: 800; font-size: 13px; flex: 0 0 auto; }
.d2-alert-ic.gold { background: #fffbeb; color: #92650f; } .d2-alert-ic.red { background: #fef2f2; color: #be123c; } .d2-alert-ic.blue { background: #eff6ff; color: #2563eb; }
.d2-alert-txt { min-width: 0; display: flex; flex-direction: column; }
.d2-alert-txt strong { font-size: 12.5px; } .d2-alert-txt small { font-size: 11px; color: var(--text3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.d2-arrow { margin-left: auto; color: var(--text3); font-size: 20px; }
.d2-feed { list-style: none; margin: 0; padding: 0 16px 10px; }
.d2-feed li { display: flex; gap: 10px; padding: 9px 0; border-top: 1px solid var(--border); }
.d2-feed li:first-child { border-top: 0; }
.d2-feed-ic { width: 26px; height: 26px; border-radius: 8px; background: var(--bg2); color: var(--text2); display: grid; place-items: center; font-size: 12px; flex: 0 0 auto; }
.d2-feed p { margin: 0; font-size: 12px; color: var(--text); line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.d2-feed small { font-size: 11px; color: var(--text3); }
.d2-empty { padding: 14px 16px; color: var(--text3); font-size: 12px; }
.d2-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 16px 16px; }
.d2-shortcuts button { border: 1px solid var(--border); background: var(--bg); border-radius: 10px; padding: 9px 10px; font-size: 12px; font-weight: 700; color: var(--text2); cursor: pointer; text-align: left; }
.d2-shortcuts button:hover { border-color: var(--amarelo); color: var(--text); background: #fff; }

@media (max-width: 1280px) {
  .d2-hero { grid-template-columns: 1fr; }
  .d2-grid { grid-template-columns: 1fr; }
  .d2-col-side { position: static; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
}
@media (max-width: 860px) {
  .d2-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .d2-proj-body { grid-template-columns: 1fr; }
  .d2-facts { grid-template-columns: 1fr; } .d2-facts > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .d2-method { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .d2-phases { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 10px; }
}

/* ══ Razão: lançamentos suspeitos e revisão mensal ══ */
.rs-loading { padding: 40px; text-align: center; color: var(--text3); }
.rs, .mr { display: flex; flex-direction: column; gap: 16px; margin-top: 14px; }
.rs-intro { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.rs-intro h3 { margin: 0 0 4px; font-size: 16px; }
.rs-intro p { margin: 0; color: var(--text2); font-size: 12.5px; max-width: 900px; line-height: 1.5; }
.rs-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.rs-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.rs-kpi { background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 12px 14px; cursor: pointer; }
.rs-kpi span { display: block; font-size: 11px; color: var(--text3); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.rs-kpi strong { display: block; font-size: 24px; margin-top: 4px; font-variant-numeric: tabular-nums; }
.rs-kpi .rs-kpi-txt { font-size: 14px; margin-top: 8px; }
.rs-kpi small { color: var(--text3); font-size: 11px; }
.rs-kpi.hi { border-color: #fecdca; background: #fffbfa; } .rs-kpi.hi strong { color: #b42318; }
.rs-kpi.mid { border-color: #fedf89; background: #fffcf5; } .rs-kpi.mid strong { color: #93370d; }
.rs-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.rs-side { display: flex; flex-direction: column; gap: 16px; }
.rs-card { margin: 0; }
.rs-rules { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; padding: 0 14px 14px; }
.rs-rule { display: grid; grid-template-columns: 38px 1fr auto; grid-template-rows: auto auto; gap: 2px 8px; text-align: left; border: 1px solid var(--border);
  background: var(--card); border-radius: 10px; padding: 8px 10px; cursor: pointer; color: var(--text); }
.rs-rule b { grid-row: span 2; align-self: center; font-size: 11px; background: var(--bg2); border-radius: 6px; text-align: center; padding: 4px 0; }
.rs-rule span { font-size: 12px; font-weight: 600; } .rs-rule em { font-style: normal; font-weight: 800; font-size: 13px; }
.rs-rule small { grid-column: 2 / span 2; font-size: 10.5px; color: var(--text3); }
.rs-rule:hover, .rs-rule.on { border-color: var(--amarelo); box-shadow: 0 0 0 2px var(--amarelo-soft); }
.rs-rule.zero { opacity: .55; }
.rs-svg { width: 100%; height: auto; display: block; }
.rs-gl { stroke: #eaecf0; stroke-width: 1; } .rs-gl.zero { stroke: #98a2b3; }
.rs-ax { font-size: 10px; fill: #667085; font-family: inherit; }
.rs-bar { fill: #c9993f; } .rs-bar-ex { fill: #b42318; }
.rs-exp-line { fill: none; stroke: #1d2939; stroke-width: 2; } .rs-exp-dot { fill: #1d2939; stroke: #fff; stroke-width: 2; }
.rs-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; color: var(--text2); margin-top: 6px; }
.rs-legend i { display: inline-block; width: 12px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.rs-key-bar { background: #c9993f; } .rs-key-ex { background: #b42318; } .rs-key-line { background: #1d2939; height: 2px !important; vertical-align: 3px !important; }
.rs-note { font-size: 11px; color: var(--text3); margin: 8px 0 0; }
.rs-topacc { display: flex; flex-direction: column; padding: 0 10px 10px; }
.rs-topacc button { display: flex; justify-content: space-between; gap: 10px; border: 0; background: transparent; padding: 7px 6px; border-radius: 8px; text-align: left; cursor: pointer; font-size: 12px; color: var(--text); }
.rs-topacc button:hover { background: var(--bg); } .rs-topacc span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .rs-topacc em { font-style: normal; color: var(--text3); white-space: nowrap; }
.rs-months { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 8px; }
.rs-month { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; text-align: center; }
.rs-month span { display: block; font-size: 11px; color: var(--text3); font-weight: 700; } .rs-month strong { font-size: 18px; } .rs-month small { display: block; font-size: 10.5px; color: #b42318; font-weight: 700; }
.rs-filters { display: grid; grid-template-columns: 2fr 1fr 1.6fr 1fr 1fr 1fr; gap: 8px; align-items: center; }
.rs-count { grid-column: 1 / -1; font-size: 12px; color: var(--text3); }
.rs-table-wrap { max-height: 620px; overflow: auto; }
.rs-table { width: 100%; font-size: 12px; border-collapse: collapse; }
.rs-table th { position: sticky; top: 0; background: #f8fafc; z-index: 1; text-align: left; padding: 8px; font-size: 11px; }
.rs-table td { padding: 7px 8px; border-top: 1px solid var(--border); vertical-align: top; }
.rs-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rs-acc small, .rs-hist small { display: block; color: var(--text3); font-size: 10.5px; }
.rs-hist { max-width: 420px; }
.rs-score { display: inline-grid; place-items: center; min-width: 26px; height: 22px; border-radius: 7px; font-weight: 800; font-size: 11.5px; background: var(--bg2); }
.rs-score.alto { background: #fee4e2; color: #b42318; } .rs-score.medio { background: #fef0c7; color: #93370d; }
.rs-chip { display: inline-block; font-size: 10px; font-weight: 800; padding: 2px 6px; border-radius: 6px; background: var(--bg2); color: var(--text2); margin: 0 3px 3px 0; }
.rs-empty { text-align: center; color: var(--text3); padding: 24px !important; }
.mr-table { width: 100%; font-size: 12px; border-collapse: collapse; }
.mr-table th { background: #f8fafc; padding: 8px; font-size: 11px; text-align: left; position: sticky; top: 0; }
.mr-table td { padding: 6px 8px; border-top: 1px solid var(--border); white-space: nowrap; }
.mr-table td:first-child { white-space: normal; min-width: 220px; }
.mr-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.mr-table td small { display: block; font-size: 10px; font-weight: 800; }
.mr-table td small.up { color: #0f766e; } .mr-table td small.down { color: #b42318; }
.mr-table .neg { color: #b42318; }
.mr-hl { background: #fffbeb; }
.mr-sum td:first-child { font-weight: 700; } .mr-total td { font-weight: 800; background: #fbf3e2; border-top: 2px solid #1d2939; }
.mr-group td { background: #f2f4f7; font-weight: 700; font-size: 11px; }
.mr .mr-group, .mr .mr-detail { display: none; } .mr.show-detail .mr-group, .mr.show-detail .mr-detail { display: table-row; }
.mr-bar-rec { fill: #c9993f; } .mr-bar-cd { fill: #475467; } .mr-line-res { fill: none; stroke: #0f766e; stroke-width: 2; }
.mr-dot-res { fill: #0f766e; stroke: #fff; stroke-width: 2; } .mr-dot-res.neg { fill: #b42318; }
.mr-key-rec { background: #c9993f; } .mr-key-cd { background: #475467; } .mr-key-res { background: #0f766e; height: 2px !important; vertical-align: 3px !important; }
.mr-comments h3 { margin: 6px 0 2px; font-size: 15px; }
.mr-comment { background: var(--card); border: 1px solid var(--border); border-left: 4px solid #d0d5dd; border-radius: 12px; padding: 12px 16px; margin-top: 10px; }
.mr-comment.has-alert { border-left-color: var(--amarelo); }
.mr-comment header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.mr-comment p { margin: 0; font-size: 12.5px; line-height: 1.55; color: var(--text); }
.mr-comment ul { margin: 8px 0 0; padding-left: 18px; font-size: 12px; color: #93370d; }
.mr-alert-count { font-size: 11px; font-weight: 800; color: #93370d; background: #fef0c7; padding: 2px 8px; border-radius: 999px; }
@media (max-width: 1100px) { .rs-grid { grid-template-columns: 1fr; } .rs-kpis { grid-template-columns: repeat(2, 1fr); } .rs-filters { grid-template-columns: 1fr 1fr; } }
.mr-svg { max-height: 300px; } .rs-svg text { font-size: 10px; }
.rs-dup .card-header { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.rs-dup-ok { font-size: 12px; font-weight: 700; color: #0f766e; }
.rs-dup-filter { display: flex; gap: 6px; flex-wrap: wrap; }
.rs-chip-btn { border: 1px solid var(--border); background: var(--card); border-radius: 999px; padding: 4px 10px; font-size: 11.5px; cursor: pointer; color: var(--text2); }
.rs-chip-btn b { color: var(--text); margin-left: 3px; } .rs-chip-btn.on { border-color: var(--amarelo); background: var(--amarelo-soft); }
.rs-dup-list { max-height: 420px; overflow: auto; padding: 0 14px 14px; display: flex; flex-direction: column; gap: 6px; }
.rs-dup-g { border: 1px solid var(--border); border-radius: 10px; background: var(--card); }
.rs-dup-g summary { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 2px 10px; align-items: center; padding: 8px 12px; cursor: pointer; list-style: none; }
.rs-dup-g summary::-webkit-details-marker { display: none; }
.rs-dup-g summary strong { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-dup-g summary em { font-style: normal; font-weight: 800; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.rs-dup-g summary small { grid-column: 2 / span 2; font-size: 11px; color: var(--text3); }
.rs-dup-kind { grid-row: span 2; font-size: 10.5px; font-weight: 800; padding: 3px 8px; border-radius: 6px; text-align: center; }
.rs-dup-kind.doc { background: #fee4e2; color: #b42318; } .rs-dup-kind.fornecedor { background: #fef0c7; color: #93370d; } .rs-dup-kind.banco { background: #eff6ff; color: #1d4ed8; }
.rs-dup-hint { margin: 0 12px 6px; font-size: 11.5px; color: #93370d; }
.rs-dup-g table { width: calc(100% - 24px); margin: 0 12px 10px; font-size: 11.5px; border-collapse: collapse; }
.rs-dup-g td { padding: 5px 6px; border-top: 1px solid var(--border); } .rs-dup-g td.num { text-align: right; white-space: nowrap; }
.ic-alerts { background: #fffbeb; border: 1px solid #fedf89; border-radius: 12px; padding: 12px 16px; font-size: 12.5px; color: #93370d; display: flex; flex-direction: column; gap: 6px; }
.ic-ok { background: #ecfdf5; border: 1px solid #a6f4c5; border-radius: 12px; padding: 12px 16px; font-size: 12.5px; color: #05603a; font-weight: 600; }
.ic-diff td { font-weight: 700; background: #f8fafc; } .ic-bad { color: #b42318; background: #fef3f2 !important; }
.ic-tag { font-size: 10.5px; font-weight: 800; padding: 2px 8px; border-radius: 999px; margin-left: 8px; }
.ic-tag.ok { background: #dcfae6; color: #067647; } .ic-tag.bad { background: #fee4e2; color: #b42318; }
.ic-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; } .ic-two .mr-table td { white-space: normal; } .ic-two .mr-table td:first-child { min-width: 0; }
@media (max-width: 1100px) { .ic-two { grid-template-columns: 1fr; } }
.fd-row { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.fd-btn { white-space: nowrap; font-size: 11px !important; padding: 3px 8px !important; }
.pt-aging { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.pt-aging div { background: var(--bg); border-radius: 10px; padding: 8px 10px; position: relative; overflow: hidden; }
.pt-aging span { display: block; font-size: 10.5px; color: var(--text3); font-weight: 700; }
.pt-aging strong { display: block; font-size: 12.5px; margin-top: 2px; font-variant-numeric: tabular-nums; }
.pt-aging i { position: absolute; left: 0; bottom: 0; height: 3px; background: #c9993f; } .pt-aging i.old { background: #b42318; }
.ic-two .mr-table td:nth-child(3) { max-width: 320px; }
.ic-two .mr-table td.num { white-space: nowrap; }
.fa-table td, .fa-table th { padding: 6px 6px !important; font-size: 11.5px; }

/* Logo do cliente */
.d2-avatar.has-logo { background: #fff; border: 1px solid var(--border, #e3e6ec); padding: 5px 8px; overflow: hidden; width: auto; min-width: 46px; max-width: 124px; height: 46px; }
.d2-avatar.has-logo img { max-width: 108px; max-height: 34px; width: auto; height: auto; object-fit: contain; display: block; }
.client-name-cell { display: flex; align-items: center; gap: 10px; }
.client-logo-sm { width: 64px; height: 30px; flex: 0 0 auto; border-radius: 8px; background: #fff; border: 1px solid var(--border, #e3e6ec); display: grid; place-items: center; padding: 3px; overflow: hidden; }
.client-logo-sm img { max-width: 100%; max-height: 100%; object-fit: contain; }
.client-logo-row { display: flex; gap: 16px; align-items: flex-start; }
.client-logo-preview { width: 120px; height: 84px; flex: 0 0 auto; border: 1px dashed var(--border, #cfd5df); border-radius: 12px; background: #fff; display: grid; place-items: center; padding: 8px; overflow: hidden; color: #8a93a3; font-size: 12px; }
.client-logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
.client-logo-actions { flex: 1; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.client-logo-line { display: flex; gap: 8px; align-items: center; }
.client-logo-line input[type="text"], .client-logo-line select, .client-logo-line input[type="file"] { flex: 1; min-width: 0; }
.df-client-logo { max-height: 62px; max-width: 220px; object-fit: contain; display: block; }

.df-table.df-multi th, .df-table.df-multi td { text-align: right; width: auto; }
.df-table.df-multi th:first-child, .df-table.df-multi td:first-child { text-align: left; width: 38%; }
.df-panel-warn { border-left: 3px solid #d97706; background: #fffbeb; padding: 8px 10px; }
.df-working-table-wrap .df-working-section { color: #fff !important; }
.df-cover-logo { max-height: 96px; max-width: 320px; margin-bottom: 28px; }

/* Pontos de revisão */
.rp-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; }
.rp-kpi { background: #fff; border: 1px solid var(--border, #e3e6ec); border-top: 3px solid #cbd5e1; border-radius: 12px; padding: 12px 14px; }
.rp-kpi strong { display: block; font-size: 24px; line-height: 1.1; color: var(--text, #111827); }
.rp-kpi span { font-size: 12px; color: var(--text3, #6b7280); }
.rp-kpi.rp-open { border-top-color: #dc2626; } .rp-kpi.rp-answered { border-top-color: #d97706; } .rp-kpi.rp-closed { border-top-color: #15803d; }
.rp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.rp-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--text3, #6b7280); padding: 8px 10px; border-bottom: 1px solid var(--border, #e3e6ec); background: #f8fafc; }
.rp-table td { padding: 10px; border-bottom: 1px solid var(--border, #eef1f5); vertical-align: top; }
.rp-table .rp-num { text-align: right; white-space: nowrap; }
.rp-table .rp-text { max-width: 340px; white-space: pre-wrap; }
.rp-table small { color: var(--text3, #6b7280); }
.rp-table tr.rp-late td:first-child { box-shadow: inset 3px 0 0 #dc2626; }
.rp-late-txt { color: #b42318 !important; font-weight: 700; }
.rp-muted { color: #9aa3b2; }
.rp-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; background: #f3f4f6; color: #4b5563; white-space: nowrap; }
.rp-badge.rp-open { background: #fef2f2; color: #b42318; } .rp-badge.rp-answered { background: #fffbeb; color: #b45309; }
.rp-badge.rp-closed { background: #ecfdf3; color: #15803d; } .rp-badge.rp-cancel { background: #f3f4f6; color: #6b7280; }
.rp-badge.rp-o-atendido { background: #ecfdf3; color: #15803d; } .rp-badge.rp-o-parcial { background: #fffbeb; color: #b45309; } .rp-badge.rp-o-nao_atendido { background: #fef2f2; color: #b42318; }
.rp-carried { margin-bottom: 16px; }
.rp-templates { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.rp-detail { display: flex; flex-direction: column; gap: 14px; }
.rp-detail-head { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 13px; color: var(--text2, #374151); }
.rp-block { border: 1px solid var(--border, #e3e6ec); border-radius: 12px; padding: 12px 14px; background: #fff; }
.rp-block h4 { margin: 0 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .03em; color: var(--text, #111827); }
.rp-block h4 small { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--text3, #6b7280); margin-left: 6px; }
.rp-pre { white-space: pre-wrap; margin: 0 0 8px; font-size: 13.5px; line-height: 1.5; }
.rp-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.rp-timeline { list-style: none; margin: 0 0 10px; padding: 0 0 0 14px; border-left: 2px solid var(--border, #e3e6ec); }
.rp-timeline li { margin: 0 0 8px; font-size: 13px; } .rp-timeline .rp-pre { margin: 2px 0 0; color: var(--text2, #374151); font-size: 13px; }
.rp-comment { display: flex; gap: 8px; } .rp-comment input { flex: 1; }
@media (max-width: 900px) { .rp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Análises complementares (corte, passivos não registrados, revisão analítica, terceiro setor, continuidade) */
.badge.x-ok { background: var(--success-bg); color: var(--success); }
.badge.x-warn { background: #fffbeb; color: #93370d; }
.badge.x-bad { background: #fef3f2; color: #b42318; }
.x-note { background: var(--info-bg); color: var(--info); border-radius: 10px; padding: 10px 14px; font-size: 12.5px; }
.mr-table tr.mr-sec td { background: #f2f4f7; text-transform: uppercase; font-size: 11px; letter-spacing: .05em; color: var(--text2); }
.flux-tab.active { background: #1d2939; color: #fff; }
.rs details.card > summary { list-style: none; } .rs details.card > summary::before { content: "▸ "; } .rs details.card[open] > summary::before { content: "▾ "; }
