/* ════════════════════════════════════════════════════════════════
 * VM Advogados — estilos globais
 *
 * Extraído de public/index.html (Sprint 3 / sessão 3B).
 * Bloco único concatenando os 3 <style> originais do HTML:
 *   - Sistema visual (variáveis, layout, componentes)
 *   - Animações da tela de login
 *   - Opções de tipo de honorário
 *
 * Inline `style="..."` em elementos individuais foram mantidos.
 * ════════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  /* ── Brand ── */
  --navy:       #1B3A6B;
  --navy-dark:  #132d54;
  --navy-mid:   #24508F;
  --navy-light: #EEF2F9;
  --gold:       #C9A84C;
  --gold-bg:    #FBF6E9;
  --gold-bd:    #E5CC84;

  /* ── Primary (accent moderno — Sub-sessão 1A) ── */
  --primary:       #2c5cff;
  --primary-dark:  #1e47cc;
  --primary-soft:  #e7eeff;
  --primary-bd:    #b9caff;

  /* ── Surfaces ── */
  --bg:       #F5F7FA;
  --surface:  #FFFFFF;
  --surface2: #F5F7FA;
  --surface3: #EBEEf4;

  /* ── Borders ── */
  --border:  #E4E8F0;
  --border2: #D0D7E6;

  /* ── Text ── */
  --text:  #0D1B35;
  --text2: #4B5875;
  --text3: #9BA5BC;

  /* ── Semantic ── */
  --green:      #1A6B3C; --green-bg: #E8F5EE; --green-bd: #86C8A4;
  --red:        #B22222; --red-bg:   #FCEAEA; --red-bd:   #E8A0A0;
  --blue:       #2c5cff; --blue-bg:  #e7eeff; --blue-bd:  #b9caff;
  --amber:      #8B6000; --amber-bg: #FBF6E9; --amber-bd: #E5CC84;
  --purple:     #5347A8; --purple-bg:#EEEDF8; --purple-bd:#ADA8E6;

  /* ── Typography Scale (Balanced) ── */
  --font-sans:  'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-serif: 'Fraunces', 'Georgia', serif;
  --font-mono:  'JetBrains Mono', 'Fira Code', monospace;

  /* Size scale — 16px base, minor third ratio (~1.2) */
  --text-2xs: 10px;   /* labels, badges super small */
  --text-xs:  11px;   /* meta, timestamps, helper */
  --text-sm:  12px;   /* secondary labels, captions */
  --text-base:13px;   /* body, table cells */
  --text-md:  14px;   /* default body text */
  --text-lg:  16px;   /* lead text, card intros */
  --text-xl:  18px;   /* section headings */
  --text-2xl: 22px;   /* page titles */
  --text-3xl: 28px;   /* hero/dashboard numbers */

  /* Weight scale */
  --fw-light:   300;
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semibold:600;
  --fw-bold:    700;
  --fw-extrabold:800;

  /* Line heights */
  --lh-tight:  1.2;
  --lh-snug:   1.35;
  --lh-normal: 1.5;
  --lh-relaxed:1.65;

  /* Letter spacing */
  --ls-tight:  -0.03em;
  --ls-normal:  0;
  --ls-wide:    0.04em;
  --ls-wider:   0.08em;
  --ls-widest:  0.12em;
  --r-xs: 4px; --r-sm: 8px; --r-md: 12px; --r-lg: 16px; --r-xl: 20px;

  /* ── Shadow ── */
  --shadow-sm: 0 1px 3px rgba(13,27,53,.07), 0 1px 2px rgba(13,27,53,.04);
  --shadow-md: 0 4px 12px rgba(13,27,53,.10), 0 1px 4px rgba(13,27,53,.06);
  --shadow-lg: 0 12px 40px rgba(13,27,53,.14), 0 3px 10px rgba(13,27,53,.07);

  /* legacy compat */
  --radius: var(--r-md); --radius-sm: var(--r-sm);
}

body { font-family:var(--font-sans); background:var(--bg); color:var(--text); font-size:var(--text-md); line-height:var(--lh-normal); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; font-feature-settings:'cv02','cv03','cv04','cv11'; }

/* ── Typography utilities ── */
.t-2xs  { font-size:var(--text-2xs); }
.t-xs   { font-size:var(--text-xs);  }
.t-sm   { font-size:var(--text-sm);  }
.t-base { font-size:var(--text-base);}
.t-md   { font-size:var(--text-md);  }
.t-lg   { font-size:var(--text-lg);  }
.t-xl   { font-size:var(--text-xl);  }
.t-2xl  { font-size:var(--text-2xl); }
.t-3xl  { font-size:var(--text-3xl); }

/* Page titles (Sub-sessão 1B — Fraunces serifa) */
.page-title { font-family:var(--font-serif); font-size:22px; font-weight:600; color:var(--text); letter-spacing:-0.02em; line-height:1.25; margin:0; }
.page-subtitle { font-size:var(--text-sm); color:var(--text3); font-weight:var(--fw-medium); margin-top:4px; }

/* Section headings */
.section-title { font-size:var(--text-base); font-weight:var(--fw-semibold); color:var(--text); letter-spacing:-0.01em; }
.section-label { font-size:var(--text-2xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--ls-widest); color:var(--text3); }

/* Body text */
.body-text  { font-size:var(--text-md);   line-height:var(--lh-relaxed); color:var(--text); }
.body-sm    { font-size:var(--text-base);  line-height:var(--lh-normal);  color:var(--text2); }
.body-xs    { font-size:var(--text-sm);    line-height:var(--lh-normal);  color:var(--text3); }

/* Numeric / data */
.num-hero   { font-size:var(--text-3xl); font-weight:var(--fw-extrabold); letter-spacing:var(--ls-tight); line-height:1; font-variant-numeric:tabular-nums; }
.num-large  { font-size:var(--text-2xl); font-weight:var(--fw-bold);      letter-spacing:var(--ls-tight); font-variant-numeric:tabular-nums; }
.num-medium { font-size:var(--text-xl);  font-weight:var(--fw-bold);      letter-spacing:var(--ls-tight); font-variant-numeric:tabular-nums; }
.num-small  { font-size:var(--text-md);  font-weight:var(--fw-semibold);  font-variant-numeric:tabular-nums; }
.num-mono   { font-family:var(--font-mono); font-size:var(--text-base); font-weight:var(--fw-medium); letter-spacing:0.01em; }

/* Labels & UI text */
.label-upper { font-size:var(--text-2xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--ls-widest); color:var(--text3); }
.label-field { font-size:var(--text-xs); font-weight:var(--fw-semibold); color:var(--text2); text-transform:uppercase; letter-spacing:0.01em; margin-bottom:5px; display:block; }
.label-meta  { font-size:var(--text-xs);  font-weight:var(--fw-medium);   color:var(--text3); }

/* Table typography */
.tbl-header { font-size:var(--text-2xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:var(--ls-widest); color:var(--text3); }
.tbl-cell   { font-size:var(--text-base); color:var(--text); }
.tbl-cell-sm{ font-size:var(--text-sm);  color:var(--text2); }

/* ── LAYOUT ── */
html, body { margin:0; padding:0; height:100%; }
.app { display:flex; flex-direction:row; min-height:100vh; max-width:100%; margin:0; padding:0; }
.sidebar { width:220px; min-width:220px; background:linear-gradient(180deg,#0f1f3d 0%,#0a1830 100%); display:flex; flex-direction:column; min-height:100vh; position:fixed; left:0; top:0; bottom:0; z-index:100; overflow-y:auto; box-shadow:1px 0 0 rgba(255,255,255,0.04); }
.main-content { flex:1; margin-left:220px; padding:28px 32px 56px; min-width:0; }

/* ── SIDEBAR (Sub-sessão 2A) ── */
.sidebar-logo { padding:22px 20px 18px; border-bottom:1px solid rgba(255,255,255,0.07); display:flex; align-items:center; gap:10px; }
.sidebar-section { padding:18px 12px 6px; font-size:var(--text-2xs); font-weight:var(--fw-bold); letter-spacing:var(--ls-widest); text-transform:uppercase; color:rgba(255,255,255,0.38); margin:4px 0 0; }
.sidebar-item { display:flex; align-items:center; gap:11px; padding:9px 12px; margin:2px 10px; border-radius:10px; cursor:pointer; color:rgba(255,255,255,0.6); font-size:var(--text-sm); font-weight:var(--fw-medium); transition:background .18s, color .18s, transform .18s; position:relative; border:none; background:none; font-family:var(--font-sans); width:calc(100% - 20px); text-align:left; letter-spacing:0.01em; }
.sidebar-item:hover { background:rgba(255,255,255,0.06); color:#fff; }
.sidebar-item:active { transform:scale(0.985); }
.sidebar-item.active { background:rgba(44,92,255,0.18); color:#fff; font-weight:var(--fw-semibold); box-shadow:inset 0 0 0 1px rgba(44,92,255,0.35), 0 4px 12px rgba(44,92,255,0.12); }
.sidebar-item.active::before { content:''; position:absolute; left:-10px; top:7px; bottom:7px; width:3px; border-radius:0 3px 3px 0; background:var(--primary); box-shadow:0 0 12px rgba(44,92,255,0.6); }
.sidebar-item .nav-badge { margin-left:auto; background:var(--red); color:#fff; font-size:var(--text-2xs); font-weight:700; border-radius:20px; padding:2px 8px; min-width:20px; text-align:center; line-height:1.45; box-shadow:0 2px 6px rgba(178,34,34,0.35); }
.sidebar-item .nav-badge.amber { background:var(--amber); box-shadow:0 2px 6px rgba(139,96,0,0.35); }
.sidebar-footer { margin-top:auto; padding:14px 16px; border-top:1px solid rgba(255,255,255,0.07); display:flex; align-items:center; gap:10px; }
.sidebar-search { width:100%; padding:8px 10px 8px 30px; border:1px solid rgba(255,255,255,0.1); border-radius:10px; font-size:var(--text-sm); background:rgba(255,255,255,0.06); color:#fff; outline:none; font-family:var(--font-sans); box-sizing:border-box; transition:background .18s, border-color .18s, box-shadow .18s; }
.sidebar-search::placeholder { color:rgba(255,255,255,0.4); }
.sidebar-search:hover { background:rgba(255,255,255,0.09); border-color:rgba(255,255,255,0.18); }
.sidebar-search:focus { background:rgba(255,255,255,0.12); border-color:rgba(44,92,255,0.5); box-shadow:0 0 0 3px rgba(44,92,255,0.15); }
nav button { display:none; }
nav { display:flex; gap:2px; margin-left:12px; }
nav button { display:none; }

/* ── METRICS (Sub-sessão 2B) ── */
.metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin-bottom:24px; }
.metric { background:var(--surface); border-radius:14px; padding:20px 22px; border:1.5px solid var(--border); box-shadow:0 1px 3px rgba(13,27,53,.04); transition:box-shadow .22s, transform .22s, border-color .22s; cursor:default; position:relative; overflow:hidden; }
.metric::before { content:''; position:absolute; left:0; right:0; top:0; height:3px; background:var(--primary); opacity:0; transition:opacity .22s; }
.metric:has(.metric-value.green)::before { background:var(--green); }
.metric:has(.metric-value.red)::before   { background:var(--red); }
.metric:has(.metric-value.amber)::before { background:var(--amber); }
.metric:has(.metric-value.blue)::before  { background:var(--primary); }
.metric:hover { transform:translateY(-3px); box-shadow:0 10px 24px rgba(13,27,53,.08); border-color:var(--border2); }
.metric:hover::before { opacity:1; }
.metric-label { font-size:11px; font-weight:var(--fw-semibold); color:var(--text3); margin-bottom:10px; text-transform:uppercase; letter-spacing:.08em; }
.metric-value { font-size:24px; font-weight:var(--fw-bold); letter-spacing:-0.025em; line-height:1.1; font-variant-numeric:tabular-nums; color:var(--text); }
.metric-value.green { color:var(--green); }
.metric-value.red   { color:var(--red); }
.metric-value.blue  { color:var(--primary); }
.metric-value.amber { color:var(--amber); }

/* ── SECTION ── */
.section { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:22px; margin-bottom:20px; box-shadow:var(--shadow-sm); transition:box-shadow .2s, transform .2s; }
.section-header { display:flex; align-items:center; gap:16px; margin-bottom:16px; }
.section-title { font-size:var(--text-base); font-weight:var(--fw-semibold); color:var(--text); letter-spacing:-0.01em; }

/* ── BUTTONS ── */
/* ── BOTÕES — Design System Unificado (Material moderno · Sub-sessão 1A) ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:8px 16px; height:38px;
  border-radius:10px; border:1.5px solid var(--border);
  font-size:13px; font-weight:var(--fw-semibold); font-family:var(--font-sans);
  letter-spacing:0.01em; white-space:nowrap; cursor:pointer;
  background:var(--surface); color:var(--text);
  transition:background .18s, border-color .18s, box-shadow .18s, transform .18s, color .18s;
  box-sizing:border-box;
}
.btn:hover { background:var(--primary-soft); border-color:var(--primary); color:var(--primary); }
.btn:active { transform:scale(0.98); }
.btn:focus-visible { outline:none; border-color:var(--primary); box-shadow:0 0 0 4px rgba(44,92,255,.12); }

/* Variantes */
.btn-primary { background:var(--primary); color:#fff; border-color:var(--primary); box-shadow:0 6px 14px rgba(44,92,255,.28); }
.btn-primary:hover { background:var(--primary-dark); border-color:var(--primary-dark); box-shadow:0 10px 22px rgba(44,92,255,.36); transform:translateY(-1px); color:#fff; }
.btn-primary:active { transform:scale(0.98); box-shadow:0 2px 6px rgba(44,92,255,.25); }

.btn-danger { background:var(--red-bg); color:var(--red); border-color:var(--red-bg); }
.btn-danger:hover { background:var(--red); color:#fff; border-color:var(--red); box-shadow:0 6px 14px rgba(178,34,34,.28); transform:translateY(-1px); }
.btn-danger:active { transform:scale(0.98); box-shadow:none; }

.btn-ghost { background:transparent; border-color:transparent; color:var(--text2); }
.btn-ghost:hover { background:var(--primary-soft); border-color:transparent; color:var(--primary); }

/* Tamanhos */
.btn-sm { height:32px; padding:5px 12px; font-size:12px; border-radius:8px; }
.btn-lg { height:44px; padding:10px 22px; font-size:14px; border-radius:12px; }

/* Modal buttons — unificados com o sistema .btn (Material moderno · Sub-sessão 1A) */
.mc-btn-group { display:flex; gap:8px; }
.mc-btn { font-family:var(--font-sans); font-size:13px; font-weight:var(--fw-semibold); letter-spacing:0.01em; border-radius:10px; padding:8px 18px; height:38px; cursor:pointer; transition:all .18s; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; background:var(--surface); color:var(--text); border:1.5px solid var(--border); }
.mc-btn:hover { background:var(--primary-soft); border-color:var(--primary); color:var(--primary); }
.mc-btn-cancel { background:var(--surface); color:var(--text); border:1.5px solid var(--border); }
.mc-btn-cancel:hover { background:var(--primary-soft); border-color:var(--primary); color:var(--primary); }
.mc-btn-save { background:var(--primary); color:#fff; border:1.5px solid var(--primary); box-shadow:0 6px 14px rgba(44,92,255,.28); }
.mc-btn-save:hover { background:var(--primary-dark); border-color:var(--primary-dark); box-shadow:0 10px 22px rgba(44,92,255,.36); transform:translateY(-1px); }
.mc-btn-save:active { transform:scale(0.98); box-shadow:0 2px 6px rgba(44,92,255,.25); }
.mc-btn-danger { background:var(--red-bg); color:var(--red); border:1.5px solid var(--red-bg); font-family:var(--font-sans); font-size:13px; font-weight:var(--fw-semibold); letter-spacing:0.01em; border-radius:10px; padding:8px 14px; height:38px; cursor:pointer; transition:all .18s; display:inline-flex; align-items:center; justify-content:center; }
.mc-btn-danger:hover { background:var(--red); color:#fff; border-color:var(--red); box-shadow:0 6px 14px rgba(178,34,34,.28); transform:translateY(-1px); }
.mc-btn-danger:active { transform:scale(0.98); box-shadow:none; }

/* ── TABLE (Sub-sessão 2C) ── */
table { width:100%; border-collapse:collapse; font-size:var(--text-base); }
th { text-align:left; font-size:11px; font-weight:var(--fw-semibold); text-transform:uppercase; letter-spacing:.06em; color:var(--text3); padding:14px 16px 10px; border-bottom:1.5px solid var(--border); background:var(--surface); }
td { padding:14px 16px; border-bottom:1px solid var(--border); vertical-align:middle; color:var(--text); font-size:var(--text-base); line-height:var(--lh-snug); transition:background .18s; }
tr:last-child td { border-bottom:none; }
tbody tr:nth-child(even) td { background:rgba(244,247,250,.55); }
tr:hover td { background:var(--primary-soft) !important; }
.section:hover { box-shadow:var(--shadow-md); }
tfoot td { background:var(--surface2); font-weight:var(--fw-semibold); color:var(--text2); }
.row-actions { opacity:0; transition:opacity .15s; }
tr:hover .row-actions { opacity:1; }

/* ── BADGES (Sub-sessão 1B) ── */
.badge { display:inline-flex; align-items:center; gap:5px; padding:4px 11px; border-radius:24px; font-size:var(--text-xs); font-weight:var(--fw-bold); letter-spacing:0.02em; line-height:1.4; min-height:22px; }
.badge::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; flex-shrink:0; }
.badge-green { background:var(--green-bg); color:var(--green); }
.badge-red   { background:var(--red-bg);   color:var(--red); }
.badge-amber { background:var(--amber-bg); color:var(--amber); }
.badge-blue  { background:var(--primary-soft); color:var(--primary); }

/* ── MODALS (legacy) (Sub-sessão 2D) ── */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(13,27,53,.50); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); z-index:100; align-items:center; justify-content:center; padding:16px; }
.modal-overlay.open { display:flex; }
.modal { background:var(--surface); border-radius:16px; padding:0; width:100%; max-width:560px; border:1px solid var(--border); box-shadow:0 24px 60px rgba(13,27,53,.20), 0 6px 16px rgba(13,27,53,.08); overflow:hidden; animation:mcSlide .32s cubic-bezier(.16,1,.3,1); }
.modal-title { font-family:var(--font-serif); font-size:20px; font-weight:600; margin-bottom:20px; color:var(--text); letter-spacing:-0.015em; }
.form-group { margin-bottom:14px; }
.form-group label { display:block; font-size:var(--text-xs); font-weight:var(--fw-semibold); color:var(--text2); margin-bottom:5px; text-transform:uppercase; letter-spacing:var(--ls-wider); }
.form-group input, .form-group select, .form-group textarea { width:100%; padding:10px 12px; border:1.5px solid var(--border); border-radius:10px; font-size:var(--text-base); background:var(--surface); color:var(--text); outline:none; font-family:var(--font-sans); transition:border-color .18s,box-shadow .18s,background .18s; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--primary); box-shadow:0 0 0 4px rgba(44,92,255,.12); background:#fff; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }

/* ── MOBILE RESPONSIVO ── */
.mob-toggle { display:none; position:fixed; top:12px; left:12px; z-index:200; background:#0f1f3d; border:none; border-radius:8px; padding:8px 10px; cursor:pointer; color:#fff; }
.sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:99; }
@media (max-width: 768px) {
  .mob-toggle { display:flex; align-items:center; justify-content:center; }
  .sidebar { transform:translateX(-100%); transition:transform .25s ease; z-index:150; }
  .sidebar.open { transform:translateX(0); }
  .sidebar-overlay.open { display:block; }
  .main-content { margin-left:0; padding:52px 14px 48px; }
  .metrics { grid-template-columns:1fr 1fr !important; gap:10px; }
  #painelMetrics { grid-template-columns:1fr 1fr !important; }
  table { font-size:var(--text-sm); }
  th, td { padding:8px 8px; }
  .section { padding:14px; }
  .form-row { grid-template-columns:1fr !important; }
  .mc-row { flex-direction:column; }
  /* Tabelas com scroll horizontal */
  .table-wrap, [style*="overflow:hidden"] { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table { min-width:600px; }
  /* Modais full-width no mobile */
  .mc-modal, .modal { max-width:100% !important; margin:8px; border-radius:12px; max-height:90vh; }
  .mc-overlay, .modal-overlay { padding:8px; align-items:flex-end; }
  .mc-body { max-height:60vh !important; }
  .mc-body [style*="grid-template-columns: 1fr 1fr"], .mc-body [style*="grid-template-columns:1fr 1fr"] { grid-template-columns:1fr !important; }
  /* Page titles menores */
  .page-title { font-size:var(--text-xl) !important; }
  .page-subtitle { font-size:var(--text-sm) !important; }
  /* Botões touch-friendly */
  .btn, .mc-btn, .filter-btn, button { min-height:36px; }
  .sidebar-item { min-height:40px; padding:10px 12px; }
  /* Charts menores */
  .chart-wrap { height:200px !important; }
  /* Stats grid do usuarios */
  #usuariosStats { grid-template-columns:1fr 1fr 1fr !important; gap:8px !important; }
  #usuariosStats > div { padding:10px 12px !important; }
  #usuariosStats [style*="font-size:24px"] { font-size:20px !important; }
  /* Notif panel full width */
  #notifPanel { right:8px !important; left:8px !important; width:auto !important; }
  /* Export modal adjustments */
  .d-cat-chip { padding:6px 10px; font-size:var(--text-sm); }
  /* Flexbox header wrapping */
  [style*="justify-content:space-between"] { gap:10px; }
  /* Login card mobile */
  #loginCard { margin:8px; }
}
@media (max-width: 480px) {
  .metrics { grid-template-columns:1fr !important; }
  #painelMetrics { grid-template-columns:1fr !important; }
  #painelMetrics > div { flex-direction:row; align-items:center; }
  #usuariosStats { grid-template-columns:1fr !important; }
  /* Stack action buttons */
  .mc-footer { flex-direction:column; gap:8px; }
  .mc-footer .mc-btn-group { width:100%; }
  .mc-footer .mc-btn { flex:1; }
  /* Larger touch targets */
  .sidebar-item { font-size:var(--text-md); }
}
.empty { text-align:center; padding:52px 20px; color:var(--text3); font-size:var(--text-base); display:flex; flex-direction:column; align-items:center; gap:10px; }
.empty-icon { width:48px; height:48px; background:var(--surface2); border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:2px; }
.chart-wrap { position:relative; height:260px; }
.filters { display:flex; gap:6px; flex-wrap:wrap; }
.filter-btn { padding:6px 14px; border-radius:20px; border:1.5px solid var(--border); background:var(--surface); font-size:var(--text-sm); font-weight:600; cursor:pointer; color:var(--text2); transition:all .18s; font-family:inherit; }
.filter-btn.active { background:var(--primary); color:#fff; border-color:var(--primary); box-shadow:0 6px 14px rgba(44,92,255,.28); }
.filter-btn:hover:not(.active) { background:var(--primary-soft); color:var(--primary); border-color:var(--primary); }
.tabs-page { display:none; opacity:0; }
.tabs-page.active { display:block; animation:pageFade .22s ease forwards; }
@keyframes pageFade { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
.legend { display:flex; gap:16px; font-size:var(--text-sm); color:var(--text2); flex-wrap:wrap; }
.legend span { display:flex; align-items:center; gap:5px; }
.legend i { width:10px; height:10px; border-radius:2px; display:inline-block; }
.tipo-tag { display:inline-block; font-size:var(--text-xs); padding:1px 7px; border-radius:4px; font-weight:700; }
.tipo-receita { background:var(--green-bg); color:var(--green); }
.tipo-despesa { background:var(--red-bg); color:var(--red); }
.saldo-bar { display:flex; gap:2px; height:6px; border-radius:3px; overflow:hidden; margin-top:6px; }
.saldo-bar-fill { height:100%; border-radius:3px; }

/* ── MC MODALS (novo design unificado · Sub-sessão 2D) ── */
.mc-overlay { display:none; position:fixed; inset:0; background:rgba(13,27,53,.50); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); z-index:100; align-items:center; justify-content:center; padding:16px; }
.mc-overlay.open { display:flex; }
.mc-modal { background:var(--surface); border-radius:16px; box-shadow:0 24px 60px rgba(13,27,53,.20), 0 6px 16px rgba(13,27,53,.08); width:100%; max-width:480px; overflow:hidden; animation:mcSlide .32s cubic-bezier(.16,1,.3,1); border:1px solid var(--border); max-height:96vh; display:flex; flex-direction:column; position:relative; }
@keyframes mcSlide { from{opacity:0;transform:translateY(18px) scale(.98)} to{opacity:1;transform:none} }
.mc-header { padding:22px 28px 18px; border-bottom:1px solid var(--border); display:flex; align-items:flex-start; gap:14px; }
.mc-icon { width:42px; height:42px; background:var(--primary-soft); border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 4px 12px rgba(44,92,255,.15); }
.mc-icon svg { color:var(--primary); }
.mc-title { font-family:var(--font-serif); font-size:19px; font-weight:600; color:var(--text); letter-spacing:-0.015em; line-height:1.25; }
.mc-subtitle { font-size:var(--text-xs); color:var(--text3); margin-top:3px; font-weight:var(--fw-medium); }
.mc-close { position:absolute; right:14px; top:14px; width:32px; height:32px; background:none; border:none; font-size:22px; color:var(--text3); cursor:pointer; padding:0; border-radius:8px; transition:all .18s; line-height:1; display:inline-flex; align-items:center; justify-content:center; }
.mc-close:hover { background:var(--surface2); color:var(--text); }
.mc-body { padding:20px 28px 16px; display:flex; flex-direction:column; gap:12px; overflow-y:auto; flex:1; }
.mc-field { display:flex; flex-direction:column; gap:5px; }
.mc-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.mc-label { font-size:var(--text-xs); font-weight:var(--fw-semibold); color:var(--text2); text-transform:uppercase; letter-spacing:0.01em; display:block; margin-bottom:5px; }
.mc-req { width:5px; height:5px; background:var(--red); border-radius:50%; display:inline-block; flex-shrink:0; }
.mc-input { font-family:var(--font-sans); font-size:var(--text-base); color:var(--text); background:var(--surface); border:1.5px solid var(--border); border-radius:10px; padding:10px 12px; outline:none; width:100%; -webkit-appearance:none; transition:border-color .18s,box-shadow .18s,background .18s; line-height:1.4; }
.mc-input::placeholder { color:var(--text3); font-weight:var(--fw-regular); }
.mc-input:focus { border-color:var(--primary); box-shadow:0 0 0 4px rgba(44,92,255,.12); background:#fff; }
.mc-prefix-wrap { position:relative; display:flex; align-items:center; }
.mc-prefix { position:absolute; left:12px; font-family:var(--font-sans); font-size:var(--text-md); font-weight:var(--fw-regular); color:var(--text3); pointer-events:none; z-index:1; line-height:1; top:50%; transform:translateY(-50%); }
.mc-prefix-wrap .mc-input { padding-left:36px; font-family:var(--font-sans); font-size:var(--text-md); font-weight:var(--fw-regular); }
.mc-select-wrap { position:relative; }
.mc-select-wrap .mc-input { padding-right:32px; cursor:pointer; }
.mc-arrow { position:absolute; right:10px; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--text3); }
.mc-chips { display:flex; gap:6px; flex-wrap:wrap; margin-top:2px; }
.mc-chip { font-family:var(--font-sans); font-size:var(--text-xs); font-weight:600; color:var(--text2); background:var(--surface2); border:1.5px solid var(--border); border-radius:20px; padding:5px 12px; cursor:pointer; transition:all .18s; }
.mc-chip:hover { background:var(--primary-soft); color:var(--primary); border-color:var(--primary); }
.mc-parc-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }
.mc-parc-btn { font-family:var(--font-sans); font-size:var(--text-sm); font-weight:600; color:var(--text2); background:var(--surface2); border:1.5px solid var(--border); border-radius:10px; padding:8px 4px; cursor:pointer; text-align:center; transition:all .18s; }
.mc-parc-btn:hover { background:var(--primary-soft); color:var(--primary); border-color:var(--primary); }
.mc-parc-btn.active { background:var(--primary); color:#fff; border-color:var(--primary); box-shadow:0 4px 12px rgba(44,92,255,.28); }
.mc-divider { height:1px; background:var(--border); }
.mc-footer { padding:16px 28px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:linear-gradient(180deg,var(--surface2),#f1f4f9); border-top:1px solid var(--border); }
.mc-note { font-size:var(--text-xs); color:var(--text3); display:flex; align-items:center; gap:5px; font-weight:var(--fw-medium); }

.mc-entrada-box { background:var(--blue-bg); border:1px solid var(--blue-bd); border-radius:var(--r-md); padding:14px; display:flex; flex-direction:column; gap:12px; }
.mc-toggle-row { display:flex; align-items:center; justify-content:space-between; }
.mc-switch { position:relative; display:inline-block; width:42px; height:23px; cursor:pointer; flex-shrink:0; }
.mc-switch input { opacity:0; width:0; height:0; position:absolute; }
.mc-track { position:absolute; inset:0; border-radius:12px; background:var(--border2); transition:background .2s; }
.mc-thumb { position:absolute; top:2.5px; left:2.5px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s; box-shadow:0 1px 4px rgba(0,0,0,.20); }
.mc-status-btn { font-family:var(--font-sans); font-size:13px; font-weight:var(--fw-semibold); border:1.5px solid var(--border); border-radius:10px; padding:0 16px; height:38px; cursor:pointer; background:var(--surface); color:var(--text); transition:all .18s; display:inline-flex; align-items:center; letter-spacing:0.01em; box-sizing:border-box; }
.mc-status-btn:hover:not(.active) { border-color:var(--primary); color:var(--primary); background:var(--primary-soft); }
.mc-status-btn.active { border-color:var(--primary); background:var(--primary); color:#fff; box-shadow:0 6px 14px rgba(44,92,255,.28); }
.mc-status-btn.active span { background:#fff !important; }
@keyframes mcShake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-4px)} 40%,80%{transform:translateX(4px)} }
.mc-shake { animation:mcShake .35s ease; border-color:var(--red) !important; background:#FFF0F0 !important; }
.d-cat-chip { font-family:var(--font-sans); font-size:var(--text-sm); font-weight:600; color:var(--text2); background:var(--surface2); border:1.5px solid var(--border); border-radius:20px; padding:6px 14px; cursor:pointer; transition:all .18s; }
.d-cat-chip:hover { background:var(--primary-soft); color:var(--primary); border-color:var(--primary); }
.d-cat-chip.active { background:var(--primary); color:#fff; border-color:var(--primary); box-shadow:0 4px 12px rgba(44,92,255,.28); }
.mc-collapse { overflow:hidden; max-height:0; transition:max-height .38s cubic-bezier(.4,0,.2,1),opacity .3s ease; opacity:0; }
.mc-collapse.open { max-height:2000px; opacity:1; }
.mc-collapse-btn { display:flex; align-items:center; justify-content:center; gap:6px; background:none; border:none; cursor:pointer; font-family:'Inter',sans-serif; font-size:var(--text-sm); font-weight:600; color:var(--text3); padding:4px 0; width:100%; transition:color .15s; }
.mc-collapse-btn:hover { color:var(--primary); }
.mc-collapse-btn svg { transition:transform .3s ease; flex-shrink:0; }
.mc-collapse-btn.open svg { transform:rotate(180deg); }
.dash-period-btn { font-family:var(--font-sans); font-size:var(--text-sm); font-weight:500; border:none; background:none; padding:6px 12px; border-radius:8px; cursor:pointer; color:var(--text2); transition:all .18s; }
.dash-period-btn:hover:not(.active) { color:var(--primary); }
.dash-period-btn.active { background:#fff; color:var(--primary); font-weight:700; box-shadow:0 2px 8px rgba(44,92,255,.14); }

/* Toast container (Sub-sessão 3E) */
#toastContainer { position:fixed; bottom:24px; right:24px; z-index:9999; display:flex; flex-direction:column; gap:10px; pointer-events:none; }
.toast { background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px 16px; box-shadow:0 16px 40px rgba(15,31,61,0.16), 0 4px 12px rgba(15,31,61,0.06); display:flex; align-items:flex-start; gap:12px; max-width:340px; pointer-events:all; animation:toastIn .38s cubic-bezier(.16,1,.3,1); }
.toast.out { animation:toastOut .3s ease forwards; }
@keyframes toastIn { from{opacity:0;transform:translateY(16px) scale(.97)} to{opacity:1;transform:none} }
@keyframes toastOut { to{opacity:0;transform:translateY(8px) scale(.97)} }
.toast-icon { width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.toast-body { flex:1; min-width:0; }
.toast-title { font-size:var(--text-base); font-weight:700; color:var(--text); margin-bottom:2px; letter-spacing:-0.01em; }
.toast-msg { font-size:var(--text-sm); color:var(--text2); line-height:1.45; }
.toast-close { background:none; border:none; cursor:pointer; color:var(--text3); font-size:18px; padding:0; line-height:1; flex-shrink:0; margin-top:-2px; transition:color .15s; }
.toast-close:hover { color:var(--text); }
.toast-undo { background:var(--primary-soft); border:1.5px solid var(--primary-bd); border-radius:8px; padding:4px 12px; font-size:var(--text-xs); font-weight:700; color:var(--primary); cursor:pointer; font-family:var(--font-sans); transition:all .18s; flex-shrink:0; }
.toast-undo:hover { background:var(--primary); color:#fff; border-color:var(--primary); }

/* Number counter animation */
@keyframes countUp { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
.num-animate { animation:countUp .4s cubic-bezier(.16,1,.3,1); }

/* Button loading state */
.btn-loading { opacity:0.7; pointer-events:none; }
.btn-loading::after { content:''; display:inline-block; width:10px; height:10px; border:2px solid currentColor; border-top-color:transparent; border-radius:50%; animation:btnSpin .6s linear infinite; margin-left:6px; vertical-align:middle; }
@keyframes btnSpin { to{transform:rotate(360deg)} }
@keyframes ping { 75%,100% { transform:scale(2.2); opacity:0; } }

/* ── LOGIN ── */
@keyframes loginSpin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes loginShake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-8px)} 40%,80%{transform:translateX(8px)} }
@keyframes cardEntrada { from{opacity:0;transform:translateY(24px) scale(.98)} to{opacity:1;transform:none} }
@keyframes loginLeftFade { from{opacity:0} to{opacity:1} }
#btnLogin:disabled { opacity:0.65; cursor:not-allowed; transform:none !important; }

/* ════════════════════════════════════════════════════════════════
   LOGIN v4 — Luxury institucional jurídico (Sessão 4 · redesign 2)
   Estética: bancos private, wealth management, escritórios premium.
   Tipografia: Playfair Display (títulos) + Inter (corpo).
   ════════════════════════════════════════════════════════════════ */
:root {
  --login-navy:       #071739;
  --login-navy-light: #0B2B68;
  --login-gold:       #C9A86A;
  --login-gold-soft:  rgba(201,168,106,.12);
  --login-text:       #1B2340;
  --login-muted:      #8A92A6;
  --login-border:     #E7EAF1;
}
.login-v2 { display:flex; min-height:100vh; background:#fbfaf7; font-family:var(--font-sans); }

/* ════════ LADO ESQUERDO: cinemático com arquitetura visível ════════ */
.login-left {
  flex:1; position:relative; overflow:hidden;
  min-width:0; display:flex; flex-direction:column;
  color:#fff;
}
.login-left-photo {
  position:absolute; inset:0;
  background:url('/img/login-bg.png') left center / cover no-repeat;
  filter:saturate(1.05) brightness(1.05);
  z-index:0;
}
.login-left-overlay {
  position:absolute; inset:0; z-index:1;
  background:transparent;
}
.login-left-content {
  position:relative; z-index:3;
  flex:1; display:flex; flex-direction:column; justify-content:space-between;
  padding:64px 72px;
  animation:loginLeftFade .8s ease-out both;
}
.login-left-stack { display:flex; flex-direction:column; gap:56px; }

/* Brand: logo completa (imagem unica com monograma + nome + ADVOGADOS) */
.login-brand { text-align:center; }
.login-brand-mark {
  height:140px; width:auto; max-width:100%;
  margin:0 auto; display:block;
  filter:drop-shadow(0 6px 22px rgba(201,168,106,0.20));
}
.login-brand-line {
  width:80px; height:1.5px; background:var(--login-gold);
  margin:22px auto 0; opacity:.85;
}

/* Headline serifada grande com palavra dourada em destaque */
.login-copy { max-width:750px; padding-left:190px; }
.login-copy h1 {
  font-family:'Playfair Display', serif;
  font-size:42px; font-weight:500;
  line-height:1.15; letter-spacing:-0.01em;
  color:#fff; margin-bottom:24px;
}
.login-copy h1 em {
  font-style:italic; font-weight:500;
  color:var(--login-gold);
}
.login-copy::before { display:none; }
.login-copy-divider {
  width:80px; height:1.5px; background:var(--login-gold);
  margin:0 0 22px; opacity:.85;
}
.login-copy p {
  font-family:var(--font-sans); font-size:14.5px; font-weight:400;
  line-height:1.7; color:rgba(255,255,255,0.70);
  max-width:270px; letter-spacing:.002em;
}

/* Selos institucionais — ícone dentro de círculo dourado, tudo centralizado */
.login-seals {
  display:flex; gap:24px;
  padding-top:8px; padding-left:230px; justify-content:flex-start;
}
.login-seal {
  display:flex; flex-direction:column; align-items:center; gap:14px;
  flex:1; max-width:130px; text-align:center;
}
.login-seal-icon {
  width:48px; height:48px;
  border:1px solid rgba(201,168,106,0.55);
  border-radius:50%;
  background:rgba(201,168,106,0.04);
  display:flex; align-items:center; justify-content:center;
  color:var(--login-gold);
  flex-shrink:0;
}
.login-seal span {
  font-family:var(--font-sans); font-size:12.5px; font-weight:400;
  color:rgba(255,255,255,0.72); line-height:1.4; letter-spacing:.012em;
}

/* Footer institucional discreto — com separador horizontal acima */
.login-foot-left {
  position:relative;
  padding-top:24px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-sans); font-size:11px; font-weight:400;
  color:rgba(255,255,255,0.40); letter-spacing:.04em;
}
.login-foot-left::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.10) 20%, rgba(255,255,255,0.10) 80%, transparent);
}
.login-foot-left .login-foot-line { display:none; }

/* ════════ LADO DIREITO: imagem de mármore real + glassmorphism ════════ */
.login-right {
  flex:1; position:relative; min-width:0;
  display:flex; align-items:center; justify-content:center;
  padding:56px 60px;
  background:url('/img/marble-bg.png') center center / cover no-repeat;
}
/* Camada sutil para suavizar contrastes do mármore e dar profundidade */
.login-right::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%, transparent 0%, rgba(255,253,247,0.18) 100%);
}

/* CARD: glassmorphism premium flutuante */
.login-card {
  position:relative; z-index:1;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px) saturate(1.05);
  -webkit-backdrop-filter:blur(18px) saturate(1.05);
  border:1px solid rgba(255,255,255,0.65);
  border-radius:28px;
  width:100%; max-width:580px;
  padding:56px 64px 36px;
  box-shadow:
    0 20px 60px rgba(15,23,42,.08),
    0 8px 24px rgba(15,23,42,.04),
    inset 0 1px 0 rgba(255,255,255,0.9);
  animation:cardEntrada .6s cubic-bezier(.16,1,.3,1);
}

/* Linha dourada decorativa no topo do card */
.login-card-line-top {
  width:80px; height:2px; background:var(--login-gold);
  margin:0 auto 26px;
  opacity:1;
}

/* Título serifado + subtítulo */
.login-card-title {
  font-family:'Playfair Display', serif;
  font-size:38px; font-weight:800;
  color:var(--login-text); letter-spacing:-0.025em;
  text-align:center; line-height:1.1; margin-bottom:8px;
}
.login-card-sub {
  font-family:var(--font-sans); font-size:13.5px; font-weight:400;
  color:var(--login-muted); text-align:center; margin-bottom:14px;
  letter-spacing:.002em;
}
.login-card-mid-line {
  width:80px; height:2px; background:var(--login-gold);
  margin:0 auto 32px; opacity:1;
}

/* Alerts */
.login-alert {
  display:none; align-items:center; gap:10px;
  padding:12px 14px; border-radius:12px; margin-bottom:16px;
  font-family:var(--font-sans); font-size:13px; font-weight:500;
  letter-spacing:.002em;
}
.login-alert svg { flex-shrink:0; }
.login-alert-erro { background:#fef2f2; color:#dc2626; border:1px solid #fecaca; }
.login-alert-bloq { background:#fffbeb; color:#b45309; border:1px solid #fde68a; }

/* Bloco MFA */
.login-mfa-block { display:none; }
.login-mfa-title { font-family:var(--font-sans); font-size:14px; color:var(--login-text); font-weight:600; margin-bottom:6px; letter-spacing:-0.005em; }
.login-mfa-desc { font-family:var(--font-sans); font-size:13px; color:var(--login-muted); margin-bottom:18px; line-height:1.55; }
.login-mfa-input {
  width:100%; height:58px; padding:0 16px; border:1px solid var(--login-border); border-radius:14px;
  font-family:var(--font-mono); font-size:24px; letter-spacing:10px; text-align:center;
  color:var(--login-text); background:#fff; outline:none;
  transition:border-color .22s, box-shadow .22s;
  margin-bottom:12px; box-sizing:border-box;
  font-variant-numeric:tabular-nums;
}
.login-mfa-input:hover { border-color:var(--login-gold); }
.login-mfa-input:focus { border-color:var(--login-gold); box-shadow:0 0 0 4px var(--login-gold-soft); }
.login-btn-back {
  width:100%; padding:12px; background:none; color:var(--login-muted);
  border:none; font-family:var(--font-sans); font-size:13px; font-weight:500;
  cursor:pointer; margin-top:10px; transition:color .15s;
}
.login-btn-back:hover { color:var(--login-text); }

/* Campos premium altura 58px */
.login-field { margin-bottom:18px; }
.login-label {
  display:block; font-family:var(--font-sans);
  font-size:11.5px; font-weight:600; color:var(--login-text);
  text-transform:uppercase; letter-spacing:.08em; margin-bottom:9px;
}
.login-input-wrap { position:relative; }
.login-input-icon {
  position:absolute; left:18px; top:50%; transform:translateY(-50%);
  color:var(--login-muted); pointer-events:none; transition:color .22s;
  opacity:.7;
}
.login-input {
  width:100%; height:58px; padding:0 18px 0 46px;
  border:1px solid var(--login-border); border-radius:14px;
  font-family:var(--font-sans); font-size:14.5px; color:var(--login-text);
  background:#fff; outline:none;
  transition:border-color .22s, box-shadow .22s, background .22s;
  box-sizing:border-box; letter-spacing:.002em;
}
.login-input::placeholder { color:var(--login-muted); opacity:.85; }
.login-input:hover { border-color:var(--login-gold); }
.login-input:focus { border-color:var(--login-gold); box-shadow:0 0 0 4px var(--login-gold-soft); }
.login-input-wrap:focus-within .login-input-icon { color:var(--login-gold); opacity:1; }
.login-input-pass { padding-right:50px; }
.login-input-toggle {
  position:absolute; right:16px; top:50%; transform:translateY(-50%);
  background:none; border:none; cursor:pointer; padding:6px;
  color:var(--login-muted); display:flex; align-items:center;
  transition:color .18s; border-radius:6px;
  opacity:.7;
}
.login-input-toggle:hover { color:var(--login-gold); opacity:1; }

/* Barra de força senha */
.login-forca-wrap { margin-top:10px; }
.login-forca-bars { display:flex; gap:4px; margin-bottom:4px; }
.login-forca-bars > div { flex:1; height:3px; border-radius:2px; background:var(--login-border); transition:background .25s; }
.login-forca-label { font-family:var(--font-sans); font-size:10.5px; color:var(--login-muted); }

/* Linha "lembrar de mim" + "esqueci senha" */
.login-row {
  display:flex; align-items:center; justify-content:space-between;
  margin:8px 0 26px; gap:12px;
}
.login-checkbox {
  display:inline-flex; align-items:center; gap:9px;
  cursor:pointer; font-family:var(--font-sans);
  font-size:13px; color:var(--login-text); font-weight:500;
  user-select:none;
}
.login-checkbox input { position:absolute; opacity:0; width:0; height:0; }
.login-checkbox-box {
  width:16px; height:16px; border:1.5px solid var(--login-border);
  border-radius:5px; background:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  transition:all .2s; position:relative;
}
.login-checkbox input:checked + .login-checkbox-box {
  background:var(--login-navy); border-color:var(--login-navy);
}
.login-checkbox input:checked + .login-checkbox-box::after {
  content:''; width:4px; height:8px; border:solid #fff;
  border-width:0 2px 2px 0; transform:rotate(45deg) translate(-1px,-1px);
}
.login-checkbox:hover .login-checkbox-box { border-color:var(--login-gold); }
.login-link {
  background:none; border:none; padding:0; cursor:pointer;
  font-family:var(--font-sans); font-size:13px; font-weight:500;
  color:var(--login-gold); transition:color .15s;
  letter-spacing:.002em;
}
.login-link:hover { color:#a68638; }

/* Botão Entrar — gradiente navy premium */
.login-btn-primary {
  width:100%; height:58px; padding:0 16px;
  background:linear-gradient(90deg, var(--login-navy), var(--login-navy-light));
  color:#fff;
  border:none; border-radius:14px;
  font-family:var(--font-sans); font-size:14px; font-weight:600;
  cursor:pointer; letter-spacing:.04em;
  display:flex; align-items:center; justify-content:center; gap:9px;
  box-shadow:
    0 6px 20px rgba(7,23,57,0.22),
    inset 0 1px 0 rgba(255,255,255,0.12);
  transition:box-shadow .25s, transform .18s, filter .22s;
  box-sizing:border-box;
  position:relative; overflow:hidden;
}
.login-btn-primary::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, transparent, rgba(201,168,106,0.12), transparent);
  transform:translateX(-100%); transition:transform .6s ease;
}
.login-btn-primary:hover { transform:translateY(-1px); box-shadow:0 10px 28px rgba(7,23,57,0.32), inset 0 1px 0 rgba(255,255,255,0.14); filter:brightness(1.05); }
.login-btn-primary:hover::before { transform:translateX(100%); }
.login-btn-primary:active { transform:translateY(0); }
.login-btn-primary:disabled { opacity:0.55; cursor:not-allowed; transform:none !important; }

/* Divisor "ou" */
.login-divider-or {
  display:flex; align-items:center; gap:14px;
  margin:24px 0 18px;
  font-family:var(--font-sans); font-size:11.5px; color:var(--login-muted); font-weight:500;
  letter-spacing:.04em; text-transform:lowercase;
}
.login-divider-or::before, .login-divider-or::after {
  content:''; flex:1; height:1px;
  background:linear-gradient(90deg, transparent, var(--login-border) 30%, var(--login-border) 70%, transparent);
}

/* Botão Google */
.login-btn-google {
  width:100%; height:54px; padding:0 14px;
  background:#fff; color:var(--login-text);
  border:1px solid var(--login-border); border-radius:14px;
  font-family:var(--font-sans); font-size:13.5px; font-weight:500;
  cursor:pointer; letter-spacing:.002em;
  display:flex; align-items:center; justify-content:center; gap:10px;
  transition:background .18s, border-color .18s, box-shadow .18s;
  box-sizing:border-box;
}
.login-btn-google:hover { background:#fafaf7; border-color:var(--login-gold); box-shadow:0 4px 12px rgba(7,23,57,0.06); }
.login-btn-google svg { flex-shrink:0; }

/* Spinner */
.login-spinner { animation:loginSpin .7s linear infinite; }

/* Footer do card */
.login-card-footer {
  font-family:var(--font-sans); font-size:11px; color:var(--login-muted);
  text-align:center; margin-top:26px; font-weight:400;
  letter-spacing:.02em;
}

/* Responsivo */
@media (max-width: 1024px) {
  .login-left-content { padding:48px 52px; }
  .login-copy h1 { font-size:34px; }
  .login-right { padding:48px 40px; }
  .login-card { padding:44px 48px 28px; max-width:520px; }
  .login-card-title { font-size:28px; }
}
@media (max-width: 900px) {
  .login-v2 { flex-direction:column; }
  .login-left { min-height:280px; flex:none; }
  .login-left-content { padding:36px 28px; }
  .login-left-stack { gap:28px; }
  .login-brand-mark { height:100px; margin-bottom:0; }
  .login-copy h1 { font-size:26px; }
  .login-copy p { display:none; }
  .login-seals { display:none; }
  .login-foot-left { display:none; }
  .login-right { padding:32px 20px; }
  .login-card { padding:36px 28px 24px; max-width:none; border-radius:24px; }
  .login-card-title { font-size:26px; }
  .login-right::after { display:none; }
}
@media (max-width: 480px) {
  .login-card { padding:30px 22px 22px; border-radius:20px; }
  .login-card-title { font-size:22px; }
  .login-input, .login-mfa-input, .login-btn-primary { height:52px; }
}

/* ── HONORÁRIOS — opções de tipo ── */
.hon-tipo-opt {
  display:flex; align-items:center; gap:6px;
  padding:9px 12px; border:1.5px solid var(--border); border-radius:10px;
  cursor:pointer; font-size:var(--text-sm); font-weight:500; color:var(--text2);
  background:var(--surface2); transition:all .18s;
}
.hon-tipo-opt:hover { border-color:var(--primary); color:var(--primary); }
.hon-tipo-opt input { margin:0; }
.hon-tipo-opt input:checked + span { color:var(--primary); font-weight:700; }
.hon-tipo-opt:has(input:checked) { border-color:var(--primary); background:var(--primary-soft); }
