/* Temas públicos white-label. A landing e o tema são configurações independentes. */
html[data-public-theme] {
  --background-primary: var(--bg);
  --background-secondary: var(--surface-soft);
  --background-elevated: var(--surface);
  --background-strong: var(--surface-strong);
  --text-primary: var(--text);
  --text-secondary: var(--muted);
  --text-muted: var(--muted-2);
  --border-default: var(--line);
  --border-strong: var(--line-strong);
  --accent-primary: var(--brand);
  --accent-hover: var(--brand-dark);
  --accent-soft: var(--brand-soft);
  --focus-ring: color-mix(in srgb, var(--accent-primary) 48%, transparent);
  --status-success: var(--success);
  --status-warning: var(--warning);
  --status-error: var(--danger);
  --status-info: var(--info);
  --public-logo-text: var(--text-primary);
  --public-copy: var(--text-secondary);
  --public-card: var(--background-elevated);
  --public-input: var(--background-elevated);
  --public-header: color-mix(in srgb, var(--background-elevated) 92%, transparent);
  --public-footer: var(--background-elevated);
  --public-overlay: color-mix(in srgb, var(--background-elevated) 97%, transparent);
}

html[data-public-theme="theme1"] {
  color-scheme: light;
  --bg: #f4f8fa;
  --surface: #ffffff;
  --surface-soft: #edf4f6;
  --surface-strong: #dfe9ed;
  --text: #102632;
  --muted: #4f6572;
  --muted-2: #61737d;
  --line: #cfdae0;
  --line-strong: #acbec8;
  --brand: #0b6b61;
  --brand-dark: #07524b;
  --brand-soft: #dff5f0;
  --accent: #b7651d;
  --accent-soft: #fff0df;
  --danger: #b42318;
  --danger-soft: #ffebe9;
  --warning: #8a4b00;
  --warning-soft: #fff0d5;
  --success: #087454;
  --success-soft: #e0f6ed;
  --info: #185fa7;
  --info-soft: #e8f2ff;
  --shadow-sm: 0 2px 14px rgba(16, 38, 50, .06);
  --shadow-md: 0 24px 58px rgba(16, 38, 50, .13);
}

html[data-public-theme="theme2"] {
  color-scheme: dark;
  --bg: #07111f;
  --surface: #101c2f;
  --surface-soft: #16253b;
  --surface-strong: #20324d;
  --text: #f7f9fc;
  --muted: #c1cddd;
  --muted-2: #93a4ba;
  --line: #30445f;
  --line-strong: #4b6380;
  --brand: #5eead4;
  --brand-dark: #86f1df;
  --brand-soft: #123c3b;
  --accent: #ffd27a;
  --accent-soft: #3c3018;
  --danger: #ff918b;
  --danger-soft: #452029;
  --warning: #ffd27a;
  --warning-soft: #423318;
  --success: #72e8b8;
  --success-soft: #153c32;
  --info: #91beff;
  --info-soft: #193353;
  --shadow-sm: 0 8px 24px rgba(0, 0, 0, .22);
  --shadow-md: 0 28px 70px rgba(0, 0, 0, .40);
  --public-header: rgba(7, 17, 31, .94);
  --public-footer: #050c17;
  --public-overlay: rgba(16, 28, 47, .98);
}

html[data-public-theme="theme3"] {
  color-scheme: light;
  --bg: #f8f5ff;
  --surface: #ffffff;
  --surface-soft: #f1ebff;
  --surface-strong: #e6dcfb;
  --text: #241433;
  --muted: #60536e;
  --muted-2: #766980;
  --line: #d9cdef;
  --line-strong: #baa7dd;
  --brand: #6536c7;
  --brand-dark: #492091;
  --brand-soft: #eadfff;
  --accent: #c65b2a;
  --accent-soft: #ffeadf;
  --danger: #a92732;
  --danger-soft: #ffeaed;
  --warning: #875100;
  --warning-soft: #fff0d2;
  --success: #18745b;
  --success-soft: #e3f6ee;
  --info: #4c52b8;
  --info-soft: #eaeaff;
  --shadow-sm: 0 5px 18px rgba(72, 36, 129, .08);
  --shadow-md: 0 26px 64px rgba(72, 36, 129, .17);
  --radius: 1.25rem;
  --radius-lg: 1.7rem;
}

html[data-public-theme] body {
  background: var(--background-primary);
  color: var(--text-primary);
}
html[data-public-theme="theme2"] body {
  background:
    radial-gradient(circle at 12% 0%, rgba(94, 234, 212, .10), transparent 30rem),
    radial-gradient(circle at 88% 18%, rgba(117, 128, 255, .10), transparent 32rem),
    var(--background-primary);
}
html[data-public-theme="theme3"] body {
  background:
    radial-gradient(circle at 8% 7%, rgba(101, 54, 199, .08), transparent 26rem),
    radial-gradient(circle at 92% 18%, rgba(198, 91, 42, .10), transparent 26rem),
    var(--background-primary);
}

html[data-public-theme] .logo { min-width: 0; color: var(--public-logo-text); }
html[data-public-theme] .logo-text,
html[data-public-theme] .white-label-brand-name {
  display: inline-block;
  min-width: 0;
  max-width: min(28vw, 330px);
  overflow: hidden;
  color: var(--public-logo-text);
  font-size: clamp(.88rem, .35vw + .82rem, 1.05rem);
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: -.025em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html[data-public-theme] .white-label-logo { flex: 0 0 auto; display: block; max-width: 4.1rem; max-height: 3.05rem; width: auto; height: auto; object-fit: contain; }
html[data-public-theme] .footer-company .white-label-brand-name { max-width: min(48vw, 390px); }
html[data-public-theme] .footer-company .white-label-logo { max-width: 4.7rem; max-height: 3.6rem; }
html[data-public-theme] .auth-brand .white-label-brand-name { color: #fff; }

html[data-public-theme] .site-header,
html[data-public-theme] .register-header {
  background: var(--public-header);
  border-color: var(--border-default);
}
html[data-public-theme] .site-nav a { color: var(--text-secondary); }
html[data-public-theme] .site-nav a:hover,
html[data-public-theme] .site-nav a:focus-visible { color: var(--accent-primary); }
html[data-public-theme] .site-nav.mobile-open { background: var(--public-overlay); border-color: var(--border-default); }

html[data-public-theme] .lead,
html[data-public-theme] .muted,
html[data-public-theme] .feature-card p,
html[data-public-theme] .faq-answer,
html[data-public-theme] .feature-list,
html[data-public-theme] .footer-company-copy,
html[data-public-theme] .footer-links,
html[data-public-theme] .footer-bottom,
html[data-public-theme] .footer-business-data,
html[data-public-theme] .form-hint,
html[data-public-theme] .checkbox,
html[data-public-theme] .preview-subtitle,
html[data-public-theme] .preview-row-meta { color: var(--text-secondary); }

html[data-public-theme] .card,
html[data-public-theme] .auth-card,
html[data-public-theme] .faq-item,
html[data-public-theme] .search-panel,
html[data-public-theme] .result-panel,
html[data-public-theme] .modal,
html[data-public-theme] .register-section,
html[data-public-theme] .agreement-box,
html[data-public-theme] .coverage-card,
html[data-public-theme] .dropdown-menu,
html[data-public-theme] .data-table-wrap {
  background: var(--background-elevated);
  color: var(--text-primary);
  border-color: var(--border-default);
}
html[data-public-theme] .surface-soft,
html[data-public-theme] .result-item,
html[data-public-theme] .preview-content,
html[data-public-theme] .preview-body,
html[data-public-theme] .company-detail { background: var(--background-secondary); border-color: var(--border-default); }

html[data-public-theme] .input,
html[data-public-theme] .select,
html[data-public-theme] .textarea {
  background: var(--public-input);
  color: var(--text-primary);
  border-color: var(--border-strong);
}
html[data-public-theme] .input::placeholder,
html[data-public-theme] .textarea::placeholder { color: var(--text-muted); opacity: 1; }
html[data-public-theme] .input:hover,
html[data-public-theme] .select:hover,
html[data-public-theme] .textarea:hover { border-color: color-mix(in srgb, var(--accent-primary) 52%, var(--border-strong)); }
html[data-public-theme] .input:focus,
html[data-public-theme] .select:focus,
html[data-public-theme] .textarea:focus { border-color: var(--accent-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-primary) 17%, transparent); }
html[data-public-theme] .form-label,
html[data-public-theme] .label,
html[data-public-theme] .faq-question,
html[data-public-theme] .preview-row-title { color: var(--text-primary); }
html[data-public-theme] input:-webkit-autofill { -webkit-text-fill-color: var(--text-primary); -webkit-box-shadow: 0 0 0 1000px var(--public-input) inset; caret-color: var(--text-primary); }

html[data-public-theme] .btn-primary { background: var(--accent-primary); color: #fff; box-shadow: 0 10px 24px color-mix(in srgb, var(--accent-primary) 22%, transparent); }
html[data-public-theme] .btn-primary:hover { background: var(--accent-hover); }
html[data-public-theme="theme2"] .btn-primary { color: #041814; }
html[data-public-theme] .btn-secondary,
html[data-public-theme] .icon-button,
html[data-public-theme] .menu-button { background: var(--background-elevated); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .btn-secondary:hover,
html[data-public-theme] .icon-button:hover,
html[data-public-theme] .menu-button:hover { background: var(--background-secondary); border-color: var(--border-strong); }
html[data-public-theme] .btn-soft { background: var(--brand-soft); color: var(--accent-hover); }
html[data-public-theme] .btn:disabled,
html[data-public-theme] input:disabled,
html[data-public-theme] select:disabled,
html[data-public-theme] textarea:disabled { opacity: .58; cursor: not-allowed; }

html[data-public-theme] .badge-success { background: var(--success-soft); color: var(--status-success); }
html[data-public-theme] .badge-warning { background: var(--warning-soft); color: var(--status-warning); }
html[data-public-theme] .badge-danger { background: var(--danger-soft); color: var(--status-error); }
html[data-public-theme] .badge-info { background: var(--info-soft); color: var(--status-info); }
html[data-public-theme] .badge-neutral,
html[data-public-theme] .pill { background: var(--background-strong); color: var(--text-secondary); }
html[data-public-theme] .alert { border-color: var(--border-default); }
html[data-public-theme] .alert-info { background: var(--info-soft); color: var(--status-info); }
html[data-public-theme] .alert-warning { background: var(--warning-soft); color: var(--status-warning); }
html[data-public-theme] .alert-danger { background: var(--danger-soft); color: var(--status-error); }
html[data-public-theme] .alert-success { background: var(--success-soft); color: var(--status-success); }

html[data-public-theme] .data-table th { color: var(--text-secondary); background: var(--background-secondary); border-color: var(--border-default); }
html[data-public-theme] .data-table td { color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .data-table tbody tr:hover { background: color-mix(in srgb, var(--accent-primary) 7%, var(--background-elevated)); }
html[data-public-theme] .pagination button,
html[data-public-theme] .tab-button { background: var(--background-elevated); color: var(--text-secondary); border-color: var(--border-default); }
html[data-public-theme] .pagination button.active,
html[data-public-theme] .tab-button.active { background: var(--brand-soft); color: var(--accent-hover); border-color: var(--accent-primary); }
html[data-public-theme] .tooltip,
html[data-public-theme] [role="tooltip"] { background: var(--text-primary); color: var(--background-elevated); }

html[data-public-theme] .billing-toggle { background: var(--background-secondary); border-color: var(--border-default); }
html[data-public-theme] .billing-toggle button { color: var(--text-secondary); }
html[data-public-theme] .billing-toggle button.active { background: var(--background-elevated); color: var(--text-primary); box-shadow: var(--shadow-sm); }
html[data-public-theme] .price-card.popular { border-color: var(--accent-primary); }
html[data-public-theme] .popular-label { background: var(--accent-primary); color: #fff; }
html[data-public-theme="theme2"] .popular-label { color: #041814; }

html[data-public-theme] .site-footer { background: var(--public-footer); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .site-footer a:hover { color: var(--accent-primary); }
html[data-public-theme] .footer-highlight { background: var(--brand-soft); color: var(--accent-hover); border-left-color: var(--accent-primary); }
html[data-public-theme="theme2"] .site-footer .logo-text,
html[data-public-theme="theme2"] .site-footer .white-label-brand-name,
html[data-public-theme="theme2"] .site-footer .title-sm,
html[data-public-theme="theme2"] .site-footer .footer-company-title { color: #f7f9fc; }
html[data-public-theme="theme2"] .site-footer .footer-company-copy,
html[data-public-theme="theme2"] .site-footer .footer-links,
html[data-public-theme="theme2"] .site-footer .footer-bottom,
html[data-public-theme="theme2"] .site-footer .footer-business-data { color: #bbc9da; }
html[data-public-theme="theme2"] .site-footer .footer-business-data a { color: #86f1df; }
html[data-public-theme="theme3"] .site-footer { background: #29194a; color: #fbf9ff; border-color: #493071; }
html[data-public-theme="theme3"] .site-footer .logo-text,
html[data-public-theme="theme3"] .site-footer .white-label-brand-name,
html[data-public-theme="theme3"] .site-footer .title-sm,
html[data-public-theme="theme3"] .site-footer .footer-company-title { color: #fbf9ff; }
html[data-public-theme="theme3"] .site-footer .footer-company-copy,
html[data-public-theme="theme3"] .site-footer .footer-links,
html[data-public-theme="theme3"] .site-footer .footer-bottom,
html[data-public-theme="theme3"] .site-footer .footer-business-data { color: #d8ccea; }

html[data-public-theme] .cookie-consent { background: var(--public-overlay); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .cookie-consent-copy strong { color: var(--text-primary); }
html[data-public-theme] .simple-auth-main,
html[data-public-theme] .register-page,
html[data-public-theme] .auth-main,
html[data-public-theme] .auth-page { background: var(--background-primary); }
html[data-public-theme="theme2"] .auth-brand { background: linear-gradient(145deg, #07111f, #173450); }
html[data-public-theme="theme3"] .auth-brand { background: linear-gradient(145deg, #4c238d, #7441c1); }
html[data-public-theme] .legal-page { background: var(--background-primary); }
html[data-public-theme] .legal-hero { background: var(--background-secondary); border-color: var(--border-default); }
html[data-public-theme] .legal-content { background: var(--background-elevated); border: 1px solid var(--border-default); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: clamp(1.3rem, 4vw, 3rem); margin-block: 2rem; }
html[data-public-theme] .legal-content p,
html[data-public-theme] .legal-content li { color: var(--text-secondary); }
html[data-public-theme] .legal-content h2,
html[data-public-theme] .legal-content h3 { color: var(--text-primary); }

html[data-public-theme] :focus-visible { outline-color: color-mix(in srgb, var(--accent-primary) 55%, transparent); }
html[data-public-theme] ::selection { background: color-mix(in srgb, var(--accent-primary) 24%, transparent); }

@media (max-width: 900px) {
  html[data-public-theme] .logo-text,
  html[data-public-theme] .white-label-brand-name { max-width: 44vw; }
}
@media (max-width: 620px) {
  html[data-public-theme] .logo { gap: .5rem; }
  html[data-public-theme] .logo-text,
  html[data-public-theme] .white-label-brand-name { max-width: 46vw; font-size: .88rem; }
  html[data-public-theme] .white-label-logo { max-width: 2.8rem; max-height: 2.55rem; }
  html[data-public-theme] .legal-content { margin-block: 1rem; padding: 1.1rem; border-radius: 1.2rem; }
}
@media (prefers-contrast: more) {
  html[data-public-theme] .btn,
  html[data-public-theme] .card,
  html[data-public-theme] .input,
  html[data-public-theme] .select,
  html[data-public-theme] .textarea { border-width: 2px; }
}

/* Aplicação autenticada e administração: os mesmos tokens evitam contraste quebrado. */
html[data-public-theme] .app-shell,
html[data-public-theme] .app-main,
html[data-public-theme] .app-content { background: var(--background-primary); color: var(--text-primary); }
html[data-public-theme] .app-sidebar { background: var(--background-elevated); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .app-topbar { background: var(--public-header); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .sidebar-label,
html[data-public-theme] .topbar-title span,
html[data-public-theme] .page-head p,
html[data-public-theme] .kpi-top,
html[data-public-theme] .kpi-note,
html[data-public-theme] .action-item span,
html[data-public-theme] .user-mini span,
html[data-public-theme] .empty-state p { color: var(--text-secondary); }
html[data-public-theme] .nav-link { color: var(--text-secondary); }
html[data-public-theme] .nav-link:hover { background: var(--background-secondary); color: var(--text-primary); }
html[data-public-theme] .nav-link.active { background: var(--brand-soft); color: var(--accent-hover); }
html[data-public-theme] .nav-icon { background: var(--background-strong); color: var(--text-secondary); }
html[data-public-theme] .nav-link.active .nav-icon { background: var(--background-elevated); color: var(--accent-primary); }
html[data-public-theme] .user-mini,
html[data-public-theme] .tabs,
html[data-public-theme] .setting-list,
html[data-public-theme] .address-card,
html[data-public-theme] .coverage-card { background: var(--background-elevated); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .avatar,
html[data-public-theme] .kpi-icon,
html[data-public-theme] .empty-icon { background: var(--brand-soft); color: var(--accent-hover); }
html[data-public-theme] .privacy-mini,
html[data-public-theme] .kpi-card-button[aria-expanded="true"] { background: var(--brand-soft); color: var(--accent-hover); }
html[data-public-theme] .tab { color: var(--text-secondary); }
html[data-public-theme] .tab.active { background: var(--background-elevated); color: var(--text-primary); }
html[data-public-theme] .data-table tbody tr:hover { background: color-mix(in srgb, var(--accent-primary) 7%, var(--background-elevated)); }
html[data-public-theme] .fiscal-banner { background: var(--success-soft); border-color: color-mix(in srgb, var(--status-success) 32%, var(--border-default)); color: var(--text-primary); }
html[data-public-theme] .fiscal-banner.disconnected { background: var(--background-elevated); border-color: var(--border-default); }
html[data-public-theme] .score-ring { background: conic-gradient(var(--accent-primary) calc(var(--score) * 1%), var(--background-strong) 0); }
html[data-public-theme] .score-ring::after { background: var(--background-elevated); }
html[data-public-theme] .code-box { background: color-mix(in srgb, var(--text-primary) 94%, #000); color: var(--background-elevated); border: 1px solid var(--border-strong); }
html[data-public-theme] .modal-backdrop { background: color-mix(in srgb, #000 62%, transparent); }
html[data-public-theme] .modal-head,
html[data-public-theme] .modal-foot { border-color: var(--border-default); }
html[data-public-theme] .toast { background: var(--text-primary); color: var(--background-elevated); }
html[data-public-theme] .toast.success { background: var(--status-success); color: var(--background-elevated); }
html[data-public-theme="theme2"] .toast.success { color: #041814; }
html[data-public-theme] .skeleton { background: linear-gradient(90deg, var(--background-secondary) 25%, var(--background-elevated) 37%, var(--background-secondary) 63%); background-size: 400% 100%; }
html[data-public-theme] .company-theme-option,
html[data-public-theme] .company-landing-option,
html[data-public-theme] .cnpj-stock-card,
html[data-public-theme] .admin-plan-price { background: var(--background-secondary); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .company-theme-option:has(input:checked),
html[data-public-theme] .company-landing-option:has(input:checked),
html[data-public-theme] .cnpj-stock-card.is-selected,
html[data-public-theme] .cnpj-stock-card[aria-checked="true"] { background: var(--brand-soft); border-color: var(--accent-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-primary) 16%, transparent); }
html[data-public-theme] .landing-option-copy small,
html[data-public-theme] .landing-option-copy em,
html[data-public-theme] .landing-option-state,
html[data-public-theme] .company-theme-option small,
html[data-public-theme] .cnpj-stock-card > span,
html[data-public-theme] .cnpj-stock-card > small { color: var(--text-secondary); }
html[data-public-theme] .landing-option-state { background: var(--background-strong); }
html[data-public-theme] .white-label-asset-preview { background: var(--background-secondary); color: var(--text-secondary); border-color: var(--border-default); }
html[data-public-theme] .btn-neutral { background: var(--background-strong); color: var(--text-primary); border-color: var(--border-default); }
html[data-public-theme] .btn-neutral:hover { background: var(--background-secondary); border-color: var(--border-strong); }
html[data-public-theme] .connection-card { background: linear-gradient(135deg, var(--accent-hover), var(--accent-primary)); color: #fff; }
html[data-public-theme] .connection-card p { color: rgba(255,255,255,.82); }
html[data-public-theme="theme2"] .connection-card { background: linear-gradient(135deg, #123c3b, #185a57); color: #f7f9fc; }
html[data-public-theme="theme2"] .connection-card p { color: #d3e4e2; }
html[data-public-theme] .app-booting::after { background: color-mix(in srgb, var(--background-primary) 90%, transparent); color: var(--text-primary); }
html[data-public-theme] .input[readonly] { background: var(--background-secondary); color: var(--text-secondary); }
html[data-public-theme] .field-error { color: var(--status-error); }
html[data-public-theme] .password-toggle { color: var(--text-secondary); }
html[data-public-theme] .password-toggle:hover { background: var(--brand-soft); color: var(--accent-hover); }

@media (max-width: 900px) {
  html[data-public-theme] .app-sidebar { box-shadow: var(--shadow-md); }
  html[data-public-theme] .sidebar-overlay { background: color-mix(in srgb, #000 58%, transparent); }
}

.footer-social-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.65rem}
.footer-social-links a{display:inline-flex;align-items:center;min-height:40px;padding:.45rem .7rem;border:1px solid var(--border-default);border-radius:999px;background:var(--background-elevated);color:var(--text-primary);font-weight:700;text-decoration:none}
.footer-social-links a:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-soft)}
.footer-social-links a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
