/**
 * Fiscal Shell — deltas sobre app-shell.css
 * Importar APÓS design-tokens.css + app-shell.css + workspace-dark.css
 *
 * Escopo mínimo: apenas o que é específico do produto Fiscal.
 * Não duplicar variáveis — herdar de design-tokens.css.
 */

/* Section headers (estilo consistente com workspace) */
.fiscal-section-header {
  margin-bottom: 16px;
}

.fiscal-section-title {
  font-family: var(--font-heading-lp, 'Outfit', sans-serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--color-txt, #F1F5F9);
  margin: 0 0 4px;
  letter-spacing: -0.01em;
}

.fiscal-section-sub {
  font-size: 13px;
  color: var(--ws-text-secondary, rgba(240,242,245,0.6));
  margin: 0;
}

/* Badge "Fiscal" no logotipo da sidebar */
.fiscal-product-badge {
  display: inline-block;
  font-family: var(--font-body, 'Space Grotesk', sans-serif);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 2px 5px;
  border-radius: 3px;
  background: var(--color-amber, #E8A847);
  color: #0A0E1A;
  margin-left: 5px;
  vertical-align: middle;
  line-height: 1.4;
  position: relative;
  top: -1px;
}

/* Quando sidebar está recolhida, ocultar o badge junto com o texto */
.sidebar-collapsed .fiscal-product-badge {
  display: none;
}

/* KPI help tooltip (mesmo padrão do dashboard.html) */
.kpi-card { position: relative; }
.kpi-card:hover { box-shadow: var(--glow-amber-sm); transition: var(--transition-fast); }
.kpi-help {
  position: absolute;
  top: 10px; right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px; height: 14px;
  border-radius: 50%;
  border: 1px solid rgba(148,163,184,0.25);
  font-size: 9px;
  font-weight: 600;
  cursor: help;
  color: var(--color-txt-secondary, #94A3B8);
  transition: border-color .15s, color .15s;
  user-select: none;
  z-index: 1;
}
.kpi-help:hover { border-color: var(--color-txt, #F1F5F9); color: var(--color-txt, #F1F5F9); }
.kpi-help::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 6px);
  right: 0;
  background: var(--gold, #C49A3C);
  color: #0A0E1A;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
  padding: 7px 11px;
  border-radius: 6px;
  width: max-content;
  max-width: 220px;
  white-space: normal;
  text-align: left;
  z-index: 999;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}
.kpi-help:hover::after { opacity: 1; }

/* KPI card dark-mode overrides (equivalente ao inline do dashboard.html) */
html.provision-app--dark .kpi-card {
  background: rgba(255,255,255,0.07);
  border-color: rgba(148,163,184,0.2);
}
html.provision-app--dark .kpi-label { color: #94a3b8; }
html.provision-app--dark .kpi-value { color: #f8fafc; }

/* KPI grid fiscal — layout 3+2 quando há 5 cards */
.fiscal-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 28px;
}

@media (max-width: 1100px) {
  .fiscal-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .fiscal-kpi-grid {
    grid-template-columns: 1fr;
  }
}

/* Card de parâmetro fiscal (tabela de referência em destaque) */
.fiscal-param-card {
  background: var(--ws-bg-content-a, rgba(255,255,255,0.05));
  border: 1px solid var(--ws-border, rgba(255,255,255,0.08));
  border-radius: 10px;
  padding: 20px 24px;
}

.fiscal-param-card h3 {
  font-family: var(--font-heading-lp, 'Outfit', sans-serif);
  font-size: 16px;
  font-weight: 400;
  color: var(--color-txt, #F1F5F9);
  margin: 0 0 16px;
}

.fiscal-param-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--ws-border, rgba(255,255,255,0.06));
  font-size: 13px;
}

.fiscal-param-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.fiscal-param-label {
  color: var(--ws-text-secondary, rgba(240,242,245,0.6));
}

.fiscal-param-value {
  font-weight: 600;
  color: var(--color-txt, #F1F5F9);
}

.fiscal-param-value.highlight {
  color: var(--color-amber, #E8A847);
}

/* Alerta reforma tributária */
.fiscal-alert-reforma {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(232, 168, 71, 0.08);
  border: 1px solid rgba(232, 168, 71, 0.25);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 24px;
}

.fiscal-alert-reforma-icon {
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
}

.fiscal-alert-reforma-text {
  font-size: 13px;
  color: var(--ws-text-secondary, rgba(240,242,245,0.7));
  line-height: 1.55;
}

.fiscal-alert-reforma-text strong {
  color: var(--gold, #C49A3C);
  font-weight: 600;
}

/* Grid de ações rápidas */
.fiscal-acoes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}

.fiscal-acao-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--ws-bg-content-a, rgba(255,255,255,0.05));
  border: 1px solid var(--ws-border, rgba(255,255,255,0.08));
  border-radius: 8px;
  text-decoration: none;
  color: var(--color-txt, #F1F5F9);
  font-size: 13px;
  font-weight: 500;
  transition: background 0.15s, border-color 0.15s;
  cursor: pointer;
}

.fiscal-acao-card:hover {
  background: rgba(255,255,255,0.09);
  border-color: rgba(201, 168, 76, 0.35);
  color: var(--color-txt, #F1F5F9);
  text-decoration: none;
}

.fiscal-acao-icon {
  width: 32px;
  height: 32px;
  border-radius: 7px;
  background: rgba(201, 168, 76, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 16px;
}

/* Badge de plano no header topbar */
.fiscal-plan-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 10px;
  background: var(--gold, #C49A3C);
  color: #0A0E1A;
  margin-left: 6px;
}

/* Tabela de clientes */
.fiscal-table-wrap {
  overflow-x: auto;
  border-radius: 10px;
  border: 1px solid var(--ws-border, rgba(255,255,255,0.08));
}

.fiscal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.fiscal-table thead th {
  background: var(--ws-bg-content-b, rgba(255,255,255,0.03));
  color: var(--ws-text-secondary, rgba(240,242,245,0.55));
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 10px 16px;
  text-align: left;
  border-bottom: 1px solid var(--ws-border, rgba(255,255,255,0.08));
  white-space: nowrap;
}

.fiscal-table tbody td {
  padding: 13px 16px;
  border-bottom: 1px solid var(--ws-border, rgba(255,255,255,0.06));
  color: var(--color-txt, #F1F5F9);
  vertical-align: middle;
}

.fiscal-table tbody tr:last-child td {
  border-bottom: none;
}

.fiscal-table tbody tr:hover td {
  background: rgba(255,255,255,0.03);
}

/* Chip de regime tributário */
.regime-chip {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
}

.regime-chip.pf              { background: rgba(100,180,255,0.12); color: #6AB4FF; }
.regime-chip.holding_patrimonial { background: rgba(201,168,76,0.12); color: var(--gold,#C49A3C); }
.regime-chip.holding_real    { background: rgba(120,220,160,0.12); color: #78DCA0; }
.regime-chip.holding_familiar { background: rgba(200,120,220,0.12); color: #C878DC; }
.regime-chip.outro           { background: rgba(255,255,255,0.07); color: rgba(240,242,245,0.55); }

/* Modal overlay */
.fiscal-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
}

.fiscal-modal-overlay.open {
  opacity: 1;
  pointer-events: all;
}

.fiscal-modal {
  background: var(--ws-bg-content-a, #1A1F2E);
  border: 1px solid var(--ws-border, rgba(255,255,255,0.1));
  border-radius: 14px;
  padding: 28px 32px;
  width: 100%;
  max-width: 540px;
  max-height: 90vh;
  overflow-y: auto;
}

.fiscal-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}

.fiscal-modal-title {
  font-family: var(--font-brand, 'DM Serif Display', serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--color-txt, #F1F5F9);
  margin: 0;
}

.fiscal-modal-close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  color: var(--ws-text-secondary, rgba(240,242,245,0.5));
  font-size: 20px;
  line-height: 1;
  transition: color 0.15s;
}

.fiscal-modal-close:hover {
  color: var(--color-txt, #F1F5F9);
}

/* Form fields dentro do modal */
.fiscal-field {
  margin-bottom: 16px;
}

.fiscal-field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ws-text-secondary, rgba(240,242,245,0.6));
  margin-bottom: 6px;
}

.fiscal-field input,
.fiscal-field select {
  width: 100%;
  background: var(--ws-bg-body, #111520);
  border: 1px solid var(--ws-border, rgba(255,255,255,0.1));
  border-radius: 7px;
  padding: 10px 13px;
  font-size: 14px;
  color: var(--color-txt, #F1F5F9);
  outline: none;
  transition: border-color 0.15s;
  box-sizing: border-box;
}

.fiscal-field input:focus,
.fiscal-field select:focus {
  border-color: var(--gold, #C49A3C);
}

.fiscal-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.fiscal-form-hint {
  font-size: 11px;
  color: var(--ws-text-secondary, rgba(240,242,245,0.45));
  margin-top: 4px;
}

/* Botão primário fiscal */
.fiscal-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--gold, #C49A3C);
  color: #0A0E1A;
  font-weight: 700;
  font-size: 14px;
  padding: 10px 22px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.15s;
}

.fiscal-btn-primary:hover { opacity: 0.88; }
.fiscal-btn-primary:disabled { opacity: 0.4; cursor: not-allowed; }

/* Botão secundário */
.fiscal-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(255,255,255,0.06);
  color: var(--color-txt, #F1F5F9);
  font-weight: 600;
  font-size: 14px;
  padding: 10px 22px;
  border-radius: 8px;
  border: 1px solid var(--ws-border, rgba(255,255,255,0.1));
  cursor: pointer;
  transition: background 0.15s;
}

.fiscal-btn-secondary:hover { background: rgba(255,255,255,0.10); }

/* Spinner de loading */
.fiscal-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(0,0,0,0.2);
  border-top-color: #0A0E1A;
  border-radius: 50%;
  animation: fiscal-spin 0.7s linear infinite;
  display: inline-block;
}

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

/* Empty state */
.fiscal-empty {
  text-align: center;
  padding: 60px 24px;
  color: var(--ws-text-secondary, rgba(240,242,245,0.5));
}

.fiscal-empty-icon {
  font-size: 36px;
  margin-bottom: 12px;
}

.fiscal-empty p {
  font-size: 14px;
  margin: 0 0 20px;
}

/* Toast notification */
.fiscal-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: var(--ws-bg-content-a, #1A1F2E);
  border: 1px solid var(--ws-border, rgba(255,255,255,0.12));
  border-radius: 8px;
  padding: 12px 18px;
  font-size: 13px;
  color: var(--color-txt, #F1F5F9);
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  transform: translateY(80px);
  opacity: 0;
  transition: transform 0.25s, opacity 0.25s;
}

.fiscal-toast.show {
  transform: translateY(0);
  opacity: 1;
}

.fiscal-toast.success { border-left: 3px solid #78DCA0; }
.fiscal-toast.error   { border-left: 3px solid #FF6B6B; }

/* ════════════════════════════════════════════════════════
   Fase 1 — Visual upgrade: gerador-aligned dark premium
   Escopo: html.provision-app--dark apenas.
   Não toca em HTML nem em outros arquivos CSS.
   ════════════════════════════════════════════════════════ */

/* ── KPI cards — amber accent + indigo hairline ──────── */
html.provision-app--dark .kpi-card {
  background: var(--color-surface);
  border-color: rgba(99,102,241,0.12);
  box-shadow: 0 2px 16px rgba(0,0,0,0.32);
}
html.provision-app--dark .kpi-card::before {
  background: linear-gradient(
    135deg,
    rgba(232,168,71,0.05) 0%,
    rgba(99,102,241,0.04) 75%,
    transparent 100%
  );
}
html.provision-app--dark .kpi-card:hover {
  border-color: rgba(232,168,71,0.30);
  box-shadow:
    0 0 0 1px rgba(232,168,71,0.10),
    0 6px 28px rgba(0,0,0,0.38);
  transform: translateY(-1px);
}
html.provision-app--dark .kpi-label {
  font-family: var(--font-mono-lp);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-txt-muted);
}
html.provision-app--dark .kpi-value {
  font-family: var(--font-heading-lp);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-amber);
}
html.provision-app--dark .kpi-icon {
  border-radius: 8px;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ── Section headers — Outfit + indigo underline ─────── */
html.provision-app--dark .fiscal-section-header {
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(99,102,241,0.10);
  margin-bottom: 20px;
}
html.provision-app--dark .fiscal-section-title {
  font-family: var(--font-heading-lp);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--color-txt);
}
html.provision-app--dark .fiscal-section-sub {
  font-size: 12.5px;
  color: var(--color-txt-muted);
}

/* ── Param cards — elevate ───────────────────────────── */
html.provision-app--dark .fiscal-param-card {
  background: var(--color-surface);
  border-color: rgba(99,102,241,0.10);
  box-shadow: 0 2px 12px rgba(0,0,0,0.28);
}
html.provision-app--dark .fiscal-param-card h3 {
  font-family: var(--font-heading-lp);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--color-txt);
}
html.provision-app--dark .fiscal-param-row {
  border-bottom-color: rgba(148,163,184,0.07);
}
html.provision-app--dark .fiscal-param-label {
  font-size: 12.5px;
  color: var(--color-txt-muted);
}
html.provision-app--dark .fiscal-param-value {
  color: var(--color-txt-secondary);
  font-size: 12.5px;
}
html.provision-app--dark .fiscal-param-value.highlight {
  color: var(--color-amber);
  font-weight: 700;
}

/* ── Alert reforma — borda amber mais marcada ────────── */
html.provision-app--dark .fiscal-alert-reforma {
  background: rgba(232,168,71,0.06);
  border-color: rgba(232,168,71,0.22);
  box-shadow: inset 4px 0 0 rgba(232,168,71,0.45);
  border-left-width: 0;
  padding-left: 20px;
}
html.provision-app--dark .fiscal-alert-reforma-text {
  font-size: 12.5px;
  color: var(--color-txt-secondary);
}
html.provision-app--dark .fiscal-alert-reforma-text strong {
  color: var(--color-amber-light);
}

/* ── KPI help tooltip — amber ────────────────────────── */
html.provision-app--dark .kpi-help::after {
  background: var(--color-surface-raised);
  color: var(--color-txt);
  border: 1px solid rgba(232,168,71,0.25);
}

/* ════════════════════════════════════════════════════════
   Fase 2 — Tabelas: cabeçalho premium + row hover
   ════════════════════════════════════════════════════════ */

html.provision-app--dark .fiscal-table-wrap {
  border-color: rgba(99,102,241,0.10);
  border-radius: 12px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.30);
  background: var(--color-surface);
}

html.provision-app--dark .fiscal-table thead th {
  background: rgba(99,102,241,0.06);
  color: var(--color-txt-muted);
  font-family: var(--font-mono-lp);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(99,102,241,0.12);
}

html.provision-app--dark .fiscal-table tbody td {
  color: var(--color-txt-secondary);
  border-bottom-color: rgba(148,163,184,0.06);
  padding: 12px 16px;
  font-size: 13px;
}

html.provision-app--dark .fiscal-table tbody tr:hover td {
  background: rgba(232,168,71,0.04);
  color: var(--color-txt);
}

html.provision-app--dark .fiscal-table tbody tr:last-child td {
  border-bottom: none;
}

/* ── Ação cards — border-left amber + indigo hover ─── */
html.provision-app--dark .fiscal-acao-card {
  background: rgba(17,24,39,0.6);
  border-color: rgba(148,163,184,0.10);
  font-size: 12.5px;
  transition:
    background var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}
html.provision-app--dark .fiscal-acao-card:hover {
  background: rgba(232,168,71,0.06);
  border-color: rgba(232,168,71,0.28);
  box-shadow: inset 3px 0 0 rgba(232,168,71,0.45);
  color: var(--color-txt);
}
html.provision-app--dark .fiscal-acao-icon {
  background: rgba(232,168,71,0.08);
  border: 1px solid rgba(232,168,71,0.14);
  width: 30px;
  height: 30px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sidebar-item-icon svg.sidebar-sofia-ic { width: 19px; height: auto; }
