/* Camada visual premium compartilhada — preserva a estrutura e os fluxos existentes. */
:root {
  --premium-navy: #0b1020;
  --premium-navy-2: #111a34;
  --premium-violet: #6d5dfc;
  --premium-blue: #4f7cff;
  --premium-cyan: #26b5db;
  --premium-ink: #111827;
  --premium-muted: #697386;
  --premium-line: #e5e9f0;
  --premium-bg: #f5f7fb;
  --premium-surface: #ffffff;
  --premium-shadow: 0 16px 45px rgba(15, 23, 42, .07);
  --premium-shadow-hover: 0 22px 56px rgba(15, 23, 42, .12);
  --premium-radius: 18px;
}

/* Painel administrativo */
.app-shell { grid-template-columns: 268px minmax(0, 1fr); background: var(--premium-bg); }
.app-shell .sidebar {
  width: auto;
  padding: 28px 18px 22px;
  background:
    radial-gradient(circle at 20% 4%, rgba(109,93,252,.32), transparent 25%),
    linear-gradient(180deg, #0b1020 0%, #111a34 100%);
  border-right: 1px solid rgba(255,255,255,.06);
}
.app-shell .brand { padding: 0 8px; font-size: 1rem; }
.app-shell .brand-mark {
  width: 42px; height: 42px; border-radius: 13px; color: #fff;
  background: linear-gradient(135deg, var(--premium-violet), var(--premium-blue));
  box-shadow: 0 12px 28px rgba(79,124,255,.27), inset 0 1px rgba(255,255,255,.25);
}
.app-shell .brand small { color: #8f9ab4; font-size: .62rem; letter-spacing: .12em; }
.app-shell .sidebar nav { gap: 6px; margin-top: 42px; }
.app-shell .nav-item {
  min-height: 46px; padding: 0 13px; border: 1px solid transparent; border-radius: 13px;
  color: #a9b3c9; font-size: .82rem; font-weight: 640; transition: .2s ease;
}
.app-shell .nav-item > span:first-child {
  width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px;
  color: #96a7c7; background: rgba(255,255,255,.055); font-size: .86rem;
}
.app-shell .nav-item:hover { color: #fff; background: rgba(255,255,255,.055); transform: translateX(2px); }
.app-shell .nav-item.active {
  color: #fff; border-color: rgba(145,135,255,.24);
  background: linear-gradient(110deg, rgba(109,93,252,.3), rgba(79,124,255,.13));
  box-shadow: inset 3px 0 #8d82ff;
}
.app-shell .nav-item.active > span:first-child { color: #fff; background: rgba(139,126,255,.36); }
.app-shell .nav-badge { min-width: 23px; padding: 3px 7px; color: #dcd8ff; background: rgba(109,93,252,.24); text-align: center; }
.app-shell .safety-box {
  margin-top: auto; padding: 15px; border-color: rgba(132,146,179,.2); border-radius: 15px;
  color: #8f9ab4; background: rgba(255,255,255,.035);
}
.app-shell .safety-box strong { color: #e8ebf3; }
.app-shell .sidebar-footer {
  display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 13px 10px 0;
  border-top: 1px solid rgba(255,255,255,.08);
}
.app-shell .admin-avatar { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; color: #fff; background: linear-gradient(135deg,#293656,#202a43); font-size: .7rem; font-weight: 850; }
.app-shell .admin-identity { min-width: 0; flex: 1; }
.app-shell .admin-identity strong, .app-shell .admin-identity small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.app-shell .admin-identity strong { color: #e8ebf3; font-size: .7rem; }
.app-shell .admin-identity small { margin-top: 2px; color: #78869f; font-size: .58rem; }
.app-shell .logout-icon { width: 32px; height: 32px; border: 0; border-radius: 9px; color: #8f9ab4; background: transparent; cursor: pointer; }
.app-shell .logout-icon:hover { color: #fff; background: rgba(255,255,255,.08); }

.app-shell .main { padding: 0 36px 64px; background: var(--premium-bg); }
.app-shell .topbar {
  position: sticky; top: 0; z-index: 15; min-height: 92px; margin: 0 -36px 30px; padding: 20px 36px;
  background: rgba(245,247,251,.87); border-bottom: 1px solid rgba(224,228,236,.8); backdrop-filter: blur(18px);
}
.app-shell .topbar h1 { color: var(--premium-ink); font-size: 1.85rem; font-weight: 790; }
.app-shell .eyebrow { color: #7869f2; font-size: .62rem; letter-spacing: .15em; }
.app-shell .live-pill { padding: 8px 12px; border-color: #cfe9dd; color: #18855a; background: #edf9f3; font-weight: 700; }
.app-shell .primary, .app-shell .secondary, .app-shell .back-link {
  min-height: 42px; padding: 0 16px; border-radius: 12px; transition: transform .18s, box-shadow .18s, border-color .18s;
}
.app-shell .primary { background: linear-gradient(120deg, var(--premium-violet), var(--premium-blue)); box-shadow: 0 10px 22px rgba(93,92,240,.2); }
.app-shell .primary:hover { background: linear-gradient(120deg, #6252f0, #436ff0); transform: translateY(-1px); box-shadow: 0 14px 28px rgba(93,92,240,.27); }
.app-shell .secondary { border-color: #dce1e9; color: #38445a; background: rgba(255,255,255,.9); }
.app-shell .secondary:hover { border-color: #aeb7c6; transform: translateY(-1px); }
.app-shell button:focus-visible, .app-shell input:focus-visible, .app-shell textarea:focus-visible, .app-shell select:focus-visible { outline: 3px solid rgba(109,93,252,.18); outline-offset: 2px; }
.app-shell .metrics { gap: 16px; margin-bottom: 16px; }
.app-shell .metric {
  position: relative; min-height: 132px; padding: 23px 24px; overflow: hidden;
  border-color: var(--premium-line); border-radius: var(--premium-radius); background: #fff; box-shadow: var(--premium-shadow);
}
.app-shell .metric::after { content: ""; position: absolute; right: -26px; bottom: -42px; width: 110px; height: 110px; border-radius: 50%; background: rgba(109,93,252,.055); }
.app-shell .metric:nth-child(2)::after { background: rgba(38,181,219,.07); }
.app-shell .metric:nth-child(3)::after { background: rgba(241,172,68,.08); }
.app-shell .metric p { color: #687386; font-size: .74rem; }
.app-shell .metric strong { color: var(--premium-ink); font-size: 2.35rem; margin: 13px 0 3px; }
.app-shell .metric small { color: #8b94a4; font-size: .66rem; }
.app-shell .panel, .app-shell .panel-flat {
  border-color: var(--premium-line); border-radius: var(--premium-radius); background: #fff; box-shadow: var(--premium-shadow);
}
.app-shell .panel { padding: 24px; }
.app-shell .panel:hover { border-color: #dce1ea; }
.app-shell .panel h2, .app-shell .client-hero h2, .app-shell .dialog-heading h2 { color: var(--premium-ink); font-size: 1.25rem; }
.app-shell .panel-heading p:not(.eyebrow) { color: var(--premium-muted); line-height: 1.55; }
.app-shell .client-table-wrap { border: 1px solid #edf0f4; border-radius: 14px; }
.app-shell .client-table th { padding: 12px 14px; border-color: #e9edf2; color: #7c8799; background: #f8f9fc; }
.app-shell .client-table td { padding: 15px 14px; border-color: #edf0f4; }
.app-shell .client-table tbody tr { transition: background .15s; }
.app-shell .client-table tbody tr:hover { background: #fafbfe; }
.app-shell .client-name { color: var(--premium-ink); }
.app-shell .open-client { color: var(--premium-violet); }
.app-shell .tag { padding: 5px 9px; }
.app-shell .two-columns { gap: 16px; margin-top: 16px; }
.app-shell .activity-row, .app-shell .health-row, .app-shell .proposal-row { padding: 14px 2px; border-color: #eef1f5; }
.app-shell .search { min-height: 44px; border-color: #dce1e9; border-radius: 12px; background: #fafbfc; }
.app-shell .client-grid { gap: 16px; }
.app-shell .client-card { padding: 21px; border-color: var(--premium-line); border-radius: 17px; box-shadow: 0 8px 28px rgba(15,23,42,.04); transition: .2s ease; }
.app-shell .client-card:hover { border-color: #bbb3ff; transform: translateY(-3px); box-shadow: var(--premium-shadow-hover); }
.app-shell .client-card h3 { color: var(--premium-ink); font-size: 1.02rem; }
.app-shell .client-hero { padding: 24px 26px; border: 1px solid var(--premium-line); border-radius: var(--premium-radius); background: linear-gradient(120deg,#fff,#f7f6ff); box-shadow: var(--premium-shadow); }
.app-shell .stepper { border-color: var(--premium-line); border-radius: 16px; box-shadow: 0 8px 28px rgba(15,23,42,.04); }
.app-shell .stepper li { padding: 16px 13px; border-color: #edf0f4; background: #fff; }
.app-shell .stepper li.active { background: #f6f4ff; }
.app-shell .stepper li.active::before { background: linear-gradient(135deg,var(--premium-violet),var(--premium-blue)); }
.app-shell .tabs { gap: 10px; border-color: #e9edf2; }
.app-shell .tabs button { padding: 13px 14px; }
.app-shell .tabs button.active { color: var(--premium-violet); border-color: var(--premium-violet); }
.app-shell input, .app-shell textarea, .app-shell select { border-color: #dce1e9; border-radius: 11px; background: #fbfcfe; }
.app-shell input:focus, .app-shell textarea:focus, .app-shell select:focus { border-color: var(--premium-violet); box-shadow: 0 0 0 4px rgba(109,93,252,.09); background: #fff; }
.app-shell dialog { border: 0; border-radius: 22px; box-shadow: 0 32px 90px rgba(11,16,32,.28); }
.app-shell dialog::backdrop { background: rgba(8,13,28,.68); backdrop-filter: blur(5px); }
.app-shell .toast { right: 28px; bottom: 28px; border-radius: 13px; background: #10182d; box-shadow: 0 18px 50px rgba(11,16,32,.24); }
.app-shell .assistant-grid { gap: 1px; overflow: hidden; border: 1px solid var(--premium-line); border-radius: var(--premium-radius); background: var(--premium-line); box-shadow: var(--premium-shadow); }
.app-shell .assistant-grid .panel-flat { border: 0; border-radius: 0; box-shadow: none; }
.app-shell .chat-messages { background: linear-gradient(180deg,#fbfbfe,#f7f8fc); }
.app-shell .message-copy, .app-shell .action-card, .app-shell .analysis-report { border-radius: 13px; }
.app-shell .chat-message.user .message-copy { background: #f0eeff; border-color: #ded9ff; }
.app-shell .message-avatar { border-radius: 10px; background: #1a2440; }
.app-shell .chat-message.assistant .message-avatar { background: linear-gradient(135deg,var(--premium-violet),var(--premium-blue)); }
.app-shell .service-catalog { gap: 16px; }
.app-shell .service-card { border-color: var(--premium-line); border-radius: 18px; box-shadow: var(--premium-shadow); transition: .2s ease; }
.app-shell .service-card:hover { transform: translateY(-3px); box-shadow: var(--premium-shadow-hover); }
.app-shell .service-price { color: var(--premium-violet); }
.app-shell .performance-workspace { background: #fff; }
.app-shell .performance-commandbar, .app-shell .kpi-band { border-color: #e9edf2; }
.app-shell .kpi { background: #fff; }
.app-shell .kpi.featured { box-shadow: inset 4px 0 var(--premium-violet); background: #faf9ff; }
.app-shell .analysis-rail { background: #f7f8fc; }
.app-shell .analysis-rail > section { border-color: var(--premium-line); border-radius: 14px; background: #fff; }

/* Portal do cliente */
.portal-shell { grid-template-columns: 236px minmax(0, 1fr); background: var(--premium-bg); }
.portal-shell .portal-nav { padding: 29px 15px 22px; background: radial-gradient(circle at 22% 5%,rgba(109,93,252,.32),transparent 22%),linear-gradient(180deg,#0a1021,#111b36); }
.portal-shell .portal-brand { padding: 0 12px; font-size: 1.45rem; }
.portal-shell .portal-brand span, .portal-shell .mobile-brand span { color: #9186ff; }
.portal-shell .portal-nav nav { gap: 7px; }
.portal-shell .portal-nav nav a { min-height: 48px; border-radius: 13px; color: #aeb8cd; transition: .2s; }
.portal-shell .portal-nav nav a:hover { color: #fff; background: rgba(255,255,255,.06); transform: translateX(2px); }
.portal-shell .portal-nav nav a.active { color: #fff; background: linear-gradient(110deg,rgba(109,93,252,.38),rgba(79,124,255,.16)); box-shadow: inset 3px 0 #8e83ff; }
.portal-shell .portal-topbar { height: 80px; padding: 0 30px; border-color: rgba(225,229,237,.85); background: rgba(255,255,255,.9); backdrop-filter: blur(16px); }
.portal-shell .portal-workspace { min-height: calc(100vh - 80px); background: var(--premium-bg); }
.portal-shell .analytics-column { padding: 30px; border-color: var(--premium-line); }
.portal-shell .page-command h1 { color: var(--premium-ink); font-size: 2rem; }
.portal-shell .time-filters { padding: 4px; gap: 3px; border: 1px solid var(--premium-line); border-radius: 13px; background: #fff; }
.portal-shell .time-filters button { height: 38px; border: 0; border-radius: 9px; }
.portal-shell .time-filters button:hover, .portal-shell .time-filters button.active { background: linear-gradient(120deg,var(--premium-violet),var(--premium-blue)); }
.portal-shell .kpi-strip { gap: 10px; overflow: visible; border: 0; background: transparent; }
.portal-shell .kpi-item { min-height: 108px; padding: 18px 15px; border: 1px solid var(--premium-line); border-radius: 15px; background: #fff; box-shadow: 0 8px 26px rgba(15,23,42,.045); }
.portal-shell .kpi-item strong { color: var(--premium-ink); font-size: 1.38rem; }
.portal-shell .data-surface { border-color: var(--premium-line); border-radius: 18px; box-shadow: var(--premium-shadow); }
.portal-shell .surface-title { padding: 20px 21px 12px; }
.portal-shell .chart-area { padding: 7px 21px 21px; }
.portal-shell .request-rail { top: 80px; height: calc(100vh - 80px); margin: 18px 18px 18px 0; padding: 22px; border: 1px solid var(--premium-line); border-radius: 18px; background: #fff; box-shadow: var(--premium-shadow); }
.portal-shell #request-form textarea, .portal-shell #request-form select { border-radius: 11px; background: #fbfcfe; }
.portal-shell .submit-request { height: 46px; border-radius: 11px; background: linear-gradient(120deg,var(--premium-violet),var(--premium-blue)); box-shadow: 0 10px 22px rgba(93,92,240,.18); }
.portal-shell .logout-button { padding: 8px 11px; border-radius: 9px; }
.portal-shell .logout-button:hover { color: #39445a; background: #f0f2f6; }
.portal-shell .portal-toast { border-radius: 13px; background: #10182d; }

/* Página pública e documentos legais */
.public-header { position: sticky; top: 0; z-index: 30; height: 82px; border-color: rgba(226,230,238,.82); background: rgba(255,255,255,.88); backdrop-filter: blur(18px); }
.public-header .brand-mark, footer .brand-mark { border-radius: 11px; background: linear-gradient(135deg,var(--premium-violet),var(--premium-blue)); box-shadow: 0 8px 20px rgba(93,92,240,.2); }
.public-header .nav-cta { border-radius: 12px; background: linear-gradient(120deg,var(--premium-violet),var(--premium-blue)); box-shadow: 0 9px 20px rgba(93,92,240,.19); }
.public-header .nav-cta:hover { background: linear-gradient(120deg,#6252ef,#456ff0); }
.hero { position: relative; max-width: 1600px; margin-inline: auto; padding-top: 78px; padding-bottom: 76px; background: radial-gradient(circle at 14% 10%,rgba(109,93,252,.1),transparent 29%),radial-gradient(circle at 78% 78%,rgba(38,181,219,.09),transparent 25%),linear-gradient(180deg,#fbfbff,#fff); }
.hero h1 { color: var(--premium-ink); }
.hero-copy > p { color: #56627a; }
.primary-link, .submit-audit, .plan-button { border-radius: 12px; background: linear-gradient(120deg,var(--premium-violet),var(--premium-blue)); box-shadow: 0 12px 26px rgba(93,92,240,.22); }
.primary-link:hover, .submit-audit:hover, .plan-button:hover { background: linear-gradient(120deg,#6252ef,#456ff0); transform: translateY(-1px); }
.analyzer { padding: 32px; border-color: rgba(220,225,235,.92); border-radius: 22px; box-shadow: 0 28px 70px rgba(15,23,42,.11); }
.input-shell { height: 50px; border-color: #dbe0e9; border-radius: 12px; background: #fbfcfe; }
.input-shell:focus-within { border-color: var(--premium-violet); box-shadow: 0 0 0 4px rgba(109,93,252,.09); background: #fff; }
.result-section { border-color: var(--premium-line); border-radius: 24px; box-shadow: var(--premium-shadow); }
.score-number { color: var(--premium-violet); }
.report-summary { border-color: var(--premium-violet); border-radius: 0 16px 16px 0; background: #f5f3ff; }
.report-columns > section, .finding-card { border-color: var(--premium-line); border-radius: 16px; background: #fff; box-shadow: 0 8px 26px rgba(15,23,42,.04); }
.pricing-grid { gap: 20px; }
.plan { padding: 30px 26px; border-color: var(--premium-line); border-radius: 20px; box-shadow: var(--premium-shadow); transition: .2s ease; }
.plan:hover { transform: translateY(-4px); box-shadow: var(--premium-shadow-hover); }
.plan.featured { border-top-color: var(--premium-violet); background: linear-gradient(180deg,#fbfaff,#fff); }
.service-icon { border-color: var(--premium-violet); color: var(--premium-violet); border-radius: 12px; }
.custom-plan { border-color: var(--premium-violet); border-radius: 0 16px 16px 0; background: #f6f4ff; }
.legal-main section { border-color: var(--premium-line); }
.legal-kicker { color: var(--premium-violet); }
.legal-updated { border-color: var(--premium-violet); border-radius: 0 14px 14px 0; background: #f5f3ff; }
body > footer { color: #aeb7ca; border: 0; background: #0c1327; }
body > footer .public-brand { color: #fff; }
body > footer a { color: #a99fff; }

@media (max-width: 1180px) {
  .portal-shell .kpi-strip { grid-template-columns: repeat(6, 138px); overflow: auto; }
}
@media (max-width: 900px) {
  .portal-shell .portal-topbar { background: linear-gradient(120deg,#0b1020,#111a34); }
  .portal-shell .analytics-column { padding: 26px 15px; }
  .portal-shell .request-rail { top: auto; height: min(82vh,720px); margin: 0; border-radius: 24px 24px 0 0; }
  .portal-shell .kpi-strip { gap: 10px; margin-left: 0; margin-right: 0; padding: 1px; border: 0; }
  .portal-shell .kpi-item { min-height: 108px; }
}
@media (max-width: 820px) {
  .app-shell { display: block; }
  .app-shell .sidebar { left: -286px; width: 268px; box-shadow: 18px 0 50px rgba(11,16,32,.25); }
  .app-shell .main { padding: 0 18px 48px; }
  .app-shell .topbar { margin: 0 -18px 24px; padding: 17px 18px; min-height: 80px; }
  .app-shell .topbar h1 { font-size: 1.5rem; }
  .app-shell .metrics, .app-shell .two-columns { grid-template-columns: 1fr; }
  .app-shell .metric { min-height: 116px; }
  .app-shell .client-hero { align-items: flex-start; }
}
@media (max-width: 620px) {
  .public-header { height: 70px; }
  .hero { padding-top: 42px; padding-bottom: 46px; }
  .hero h1 { font-size: 2.55rem; }
  .analyzer { border-radius: 18px; }
  .result-section { border-radius: 0; }
  .plan { border-radius: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
