:root {
  --kb-bg: #f6f5f2;
  --kb-surface: #ffffff;
  --kb-surface-soft: #efeee9;
  --kb-surface-raised: rgba(255,255,255,.78);
  --kb-text: #202124;
  --kb-muted: #6f7378;
  --kb-faint: #989b9f;
  --kb-line: #deddd7;
  --kb-line-strong: #c9c7bf;
  --kb-accent: #5652c7;
  --kb-accent-dark: #433fa8;
  --kb-accent-soft: #efefff;
  --kb-green: #178a61;
  --kb-red: #c44949;
  --kb-amber: #a76d1a;
  --kb-shadow: 0 18px 54px rgba(28, 31, 35, .08);
  --kb-shadow-sm: 0 8px 26px rgba(28, 31, 35, .06);
  --kb-radius: 18px;
  --kb-radius-sm: 12px;
  --kb-shell: 1320px;
  --kb-font: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --kb-display: "Manrope", var(--kb-font);
  --kb-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Design tokens canônicos. Estes aliases também sustentam módulos legados
     (BookWave/Reader) sem permitir que var() indefinida invalide declarações. */
  --font-sans: var(--kb-font);
  --font-display: var(--kb-display);
  --font-mono: var(--kb-mono);

  --text-2: color-mix(in srgb, var(--kb-text) 80%, var(--kb-muted));
  --text-3: var(--kb-muted);
  --text-4: var(--kb-faint);
  --surface-3: color-mix(in srgb, var(--kb-surface-soft) 76%, var(--kb-line));
  --bg-alt: var(--kb-surface-soft);
  --line-soft: color-mix(in srgb, var(--kb-line) 68%, transparent);
  --line-strong: var(--kb-line-strong);

  --accent-hover: var(--kb-accent-dark);
  --accent-soft: var(--kb-accent-soft);
  --accent-line: color-mix(in srgb, var(--kb-accent) 32%, var(--kb-line));
  --brand-500: var(--kb-accent);
  --a-300: color-mix(in srgb, var(--kb-accent) 44%, white);
  --amber-500: var(--kb-amber);
  --amber-600: color-mix(in srgb, var(--kb-amber) 82%, black);

  --sp-1: .25rem;
  --sp-2: .5rem;
  --sp-3: .75rem;
  --sp-4: 1rem;
  --sp-5: 1.25rem;
  --sp-6: 1.5rem;
  --sp-8: 2rem;
  --sp-10: 2.5rem;
  --sp-12: 3rem;
  --sp-16: 4rem;
  --sp-20: 5rem;

  --fs-2xs: .6875rem;
  --fs-xs: .75rem;
  --fs-sm: .875rem;
  --fs-md: 1rem;
  --fs-lg: 1.125rem;
  --fs-xl: 1.375rem;
  --fs-2xl: 1.75rem;

  --r-xs: 6px;
  --r-sm: 9px;
  --r-md: 13px;
  --r-lg: 18px;
  --r-full: 999px;

  --tracking-tight: -.025em;
  --tracking-wide: .08em;
  --tk-tight: -.025em;
  --tk-wide: .08em;
  --tk-caps: .11em;
  --tk-display: -.045em;

  --dur-1: 140ms;
  --dur-2: 220ms;
  --dur-3: 360ms;
  --ease: cubic-bezier(.2,.75,.25,1);
  --el-1: 0 2px 8px rgba(24, 26, 31, .06);
  --el-2: 0 8px 24px rgba(24, 26, 31, .08);
  --el-3: 0 18px 48px rgba(24, 26, 31, .10);
  --el-4: 0 28px 72px rgba(24, 26, 31, .14);
  --shadow-2: var(--el-2);
  --ring: 0 0 0 3px color-mix(in srgb, var(--kb-accent) 14%, transparent);

  --grad-brand: linear-gradient(135deg, var(--kb-accent), var(--kb-accent-dark));
  --grad-surface: linear-gradient(145deg, var(--kb-surface), var(--kb-surface-soft));
  --grad-warm: linear-gradient(135deg, #a76d1a, #c18a55);

  --reader-font: var(--font-display);
  --reader-size: 18px;
  --reader-leading: 1.72;
  --reader-measure: 72ch;
  --read-pct: 0%;
  --paper-brightness: 1;
  --z-toolbar: 80;

  /* compatibilidade com o CSS legado */
  --bg: var(--kb-bg); --surface: var(--kb-surface); --surface-2: var(--kb-surface-soft);
  --text: var(--kb-text); --text-muted: var(--kb-muted); --line: var(--kb-line);
  --accent: var(--kb-accent); --mac-text: var(--kb-text); --mac-text-muted: var(--kb-muted);
  --mac-surface: var(--kb-surface); --mac-hover: var(--kb-surface-soft); --mac-border: var(--kb-line);
  --neuron-blue: var(--kb-accent); --danger-500: var(--kb-red); --ok-500: var(--kb-green);
}

[data-theme="dark"] {
  --kb-bg: #171819;
  --kb-surface: #202224;
  --kb-surface-soft: #292b2e;
  --kb-surface-raised: rgba(32,34,36,.82);
  --kb-text: #f1f1ef;
  --kb-muted: #a5a8ad;
  --kb-faint: #777b80;
  --kb-line: #34373b;
  --kb-line-strong: #474a4f;
  --kb-accent: #9b98ff;
  --kb-accent-dark: #b0adff;
  --kb-accent-soft: rgba(108,103,230,.17);
  --kb-green: #63c59f;
  --kb-red: #ef8585;
  --kb-amber: #e0b162;
  --kb-shadow: 0 18px 54px rgba(0,0,0,.28);
  --kb-shadow-sm: 0 8px 26px rgba(0,0,0,.20);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 12% -10%, rgba(86,82,199,.08), transparent 28rem),
    var(--kb-bg);
  color: var(--kb-text);
  font-family: var(--kb-font);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
::selection { background: color-mix(in srgb, var(--kb-accent) 23%, transparent); }

.app-shell { width: min(var(--kb-shell), calc(100% - 40px)); margin-inline: auto; }
.app-header { position: sticky; top: 0; z-index: 1050; padding-top: 12px; }
.navbar-minimal {
  width: min(var(--kb-shell), calc(100% - 28px)); margin-inline: auto; min-height: 64px;
  border: 1px solid color-mix(in srgb, var(--kb-line) 78%, transparent);
  border-radius: 18px; background: color-mix(in srgb, var(--kb-surface-raised) 92%, transparent);
  backdrop-filter: blur(22px) saturate(135%); -webkit-backdrop-filter: blur(22px) saturate(135%);
  box-shadow: 0 6px 28px rgba(20,22,25,.05); padding: 8px 4px;
}
.kb-brand { display:flex; align-items:center; gap:9px; font: 800 .98rem/1 var(--kb-display); letter-spacing:-.03em; color:var(--kb-text)!important; }
.kb-brand small { font: 700 .62rem/1 var(--kb-font); letter-spacing:.04em; padding:4px 6px; border-radius:6px; color:var(--kb-accent); background:var(--kb-accent-soft); }
.kb-brand-mark { width:34px; height:34px; border:1px solid var(--kb-line); background:var(--kb-surface); border-radius:10px; display:grid; place-items:center; box-shadow:inset 0 1px 0 rgba(255,255,255,.65); }
.kb-nav { gap: 2px; }
.kb-nav .nav-link, .kb-admin { display:flex; align-items:center; gap:7px; padding:9px 11px!important; border-radius:10px; color:var(--kb-muted)!important; font-size:.84rem; font-weight:650; transition:.15s ease; }
.kb-nav .nav-link:hover, .kb-admin:hover { background:var(--kb-surface-soft); color:var(--kb-text)!important; }
.kb-actions { gap:6px; }
.nav-icon { width:38px; height:38px; display:grid; place-items:center; border:0; border-radius:10px; background:transparent; color:var(--kb-muted); }
.nav-icon:hover { background:var(--kb-surface-soft); color:var(--kb-text); }
.kb-login, .kb-logout { border-radius:10px; font-size:.82rem; font-weight:700; padding:8px 13px; }
.kb-login { background:var(--kb-text); color:var(--kb-bg); }
.kb-logout { border:1px solid var(--kb-line); color:var(--kb-muted); }
.kb-dropdown { min-width:230px; margin-top:10px!important; border:1px solid var(--kb-line); border-radius:14px; background:var(--kb-surface); box-shadow:var(--kb-shadow); padding:8px; }
.kb-dropdown .dropdown-header { color:var(--kb-faint); font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.kb-dropdown .dropdown-item { display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:9px; color:var(--kb-text); font-size:.83rem; }
.kb-dropdown .dropdown-item:hover { background:var(--kb-surface-soft); }
.kb-dropdown .dropdown-divider { border-color:var(--kb-line); }

.app-main { padding-top: clamp(46px, 6vw, 84px); padding-bottom: 80px; min-height: calc(100vh - 156px); }
.app-footer { border-top:1px solid var(--kb-line); padding:26px 0 34px; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; color:var(--kb-muted); font-size:.78rem; }
.footer-inner>div:first-child { display:flex; gap:10px; align-items:baseline; }
.footer-inner strong { color:var(--kb-text); font-family:var(--kb-display); }
.footer-links { display:flex; gap:18px; }
.footer-links a { color:var(--kb-muted); text-decoration:none; }
.footer-links a:hover { color:var(--kb-text); }

.eyebrow { display:inline-flex; align-items:center; gap:8px; color:var(--kb-muted); font-size:.69rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.status-dot { width:7px; height:7px; border-radius:50%; background:var(--kb-green); box-shadow:0 0 0 5px color-mix(in srgb, var(--kb-green) 12%, transparent); }
.text-link { display:inline-flex; align-items:center; gap:6px; color:var(--kb-accent); text-decoration:none; font-size:.82rem; font-weight:700; }
.text-link:hover { color:var(--kb-accent-dark); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:22px; }
.section-heading h2 { margin:6px 0 0; font:800 clamp(1.35rem,2.4vw,1.75rem)/1.15 var(--kb-display); letter-spacing:-.035em; }
.section-heading.compact { margin-bottom:16px; }
.section-heading.compact h2 { font-size:1.22rem; }

.kb-hero { max-width:1060px; margin:0 auto; padding-top: clamp(18px,4vw,48px); }
.kb-hero-copy { max-width:790px; }
.kb-hero h1 { margin:16px 0 18px; font:800 clamp(2.45rem,6vw,5.3rem)/.98 var(--kb-display); letter-spacing:-.065em; }
.kb-hero h1 span { color:var(--kb-accent); }
.kb-hero-copy>p { max-width:720px; margin:0; color:var(--kb-muted); font-size:clamp(1rem,1.6vw,1.12rem); line-height:1.75; }
.kb-search-panel { margin-top:40px; padding:10px; background:var(--kb-surface); border:1px solid var(--kb-line); border-radius:22px; box-shadow:var(--kb-shadow-sm); }
.kb-search-form { display:flex; align-items:center; gap:12px; min-height:68px; padding:0 8px 0 14px; }
.kb-search-form>i { color:var(--kb-faint); font-size:1.15rem; }
.kb-search-form input { flex:1; min-width:0; border:0!important; box-shadow:none!important; outline:0; background:transparent!important; color:var(--kb-text)!important; font-size:1rem; padding:12px 0; }
.kb-search-form input::placeholder { color:var(--kb-faint); }
.kb-query-wrap { flex:1; min-width:0; display:flex; align-items:center; gap:9px; }
.kb-query-wrap>input { flex:1; min-width:0; }
.kb-scope-chip { max-width:280px; flex:0 1 auto; display:flex; align-items:center; gap:7px; padding:7px 7px 7px 10px; border:1px solid color-mix(in srgb,var(--kb-accent) 24%,var(--kb-line)); border-radius:11px; background:var(--kb-accent-soft); color:var(--kb-accent-dark); font-size:.72rem; font-weight:750; }
.kb-scope-chip[hidden] { display:none!important; }
.kb-scope-chip>span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.kb-scope-chip>button { width:23px; height:23px; flex:0 0 23px; display:grid; place-items:center; padding:0; border:0; border-radius:7px; background:transparent; color:inherit; }
.kb-scope-chip>button:hover { background:color-mix(in srgb,var(--kb-accent) 12%,transparent); }
.kb-command-palette { position:relative; z-index:30; margin:4px 2px 8px; overflow:hidden; border:1px solid var(--kb-line); border-radius:16px; background:var(--kb-surface); box-shadow:var(--kb-shadow); }
.kb-command-palette[hidden] { display:none!important; }
.kb-command-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px 10px; border-bottom:1px solid var(--kb-line); }
.kb-command-head>div { min-width:0; }
.kb-command-head strong,.kb-command-head span { display:block; }
.kb-command-head strong { font:800 .83rem/1.2 var(--kb-display); }
.kb-command-head span { margin-top:3px; color:var(--kb-muted); font-size:.68rem; }
.kb-command-head kbd { border:1px solid var(--kb-line); border-bottom-color:var(--kb-line-strong); border-radius:6px; padding:3px 6px; background:var(--kb-surface-soft); color:var(--kb-muted); font:700 .62rem/1 var(--kb-sans); }
.kb-command-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; }
.kb-command-actions[hidden],.kb-source-picker[hidden] { display:none!important; }
.kb-command-actions>button,.kb-source-option { width:100%; min-width:0; display:flex; align-items:center; gap:11px; border:1px solid transparent; border-radius:12px; padding:11px 12px; background:transparent; color:var(--kb-text); text-align:left; }
.kb-command-actions>button:hover,.kb-source-option:hover { border-color:var(--kb-line); background:var(--kb-surface-soft); }
.kb-command-actions>button>i:first-child,.kb-source-option>i { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:10px; background:var(--kb-accent-soft); color:var(--kb-accent); }
.kb-command-actions>button>span,.kb-source-option>span { flex:1; min-width:0; }
.kb-command-actions strong,.kb-command-actions small,.kb-source-option strong,.kb-source-option small { display:block; }
.kb-command-actions strong,.kb-source-option strong { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:.76rem; }
.kb-command-actions small,.kb-source-option small { margin-top:2px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:var(--kb-muted); font-size:.65rem; font-weight:550; }
.kb-command-actions>button>i:last-child { color:var(--kb-faint); font-size:.65rem; }
.kb-source-picker { padding:10px; }
.kb-source-search { display:flex; align-items:center; gap:8px; margin-bottom:7px; padding:0 10px; border:1px solid var(--kb-line); border-radius:10px; background:var(--kb-surface-soft); }
.kb-source-search>i { color:var(--kb-faint); }
.kb-source-search input { width:100%; min-width:0; padding:9px 0; border:0; outline:0; background:transparent; color:var(--kb-text); font-size:.75rem; }
.kb-source-results { max-height:330px; overflow:auto; display:grid; gap:2px; }
.kb-source-option em { flex:0 0 auto; color:var(--kb-faint); font-style:normal; font-size:.62rem; }
.kb-source-empty { display:flex; align-items:center; justify-content:center; gap:8px; min-height:76px; color:var(--kb-muted); font-size:.72rem; }
.kb-source-empty.is-error { color:var(--kb-red); }
.kb-command-back { display:inline-flex; align-items:center; gap:6px; margin-top:8px; padding:7px 9px; border:0; border-radius:8px; background:transparent; color:var(--kb-muted); font-size:.68rem; font-weight:700; }
.kb-command-back:hover { background:var(--kb-surface-soft); color:var(--kb-text); }
.kb-command-foot { padding:9px 14px 11px; border-top:1px solid var(--kb-line); color:var(--kb-muted); font-size:.64rem; }
.kb-command-foot code { padding:2px 5px; border-radius:5px; background:var(--kb-surface-soft); color:var(--kb-text); font-size:.62rem; }
.kb-search-form > button[type="submit"] { flex:0 0 auto; display:flex; align-items:center; gap:8px; min-height:46px; border:0; border-radius:13px; padding:0 17px; background:var(--kb-text); color:var(--kb-bg); font-size:.84rem; font-weight:750; transition:.16s; }
.kb-search-form > button[type="submit"]:hover { transform:translateY(-1px); opacity:.92; }
.kb-search-form > button[type="submit"]:disabled { opacity:.6; transform:none; }
.search-hints { display:flex; flex-wrap:wrap; gap:8px; padding:7px 10px 3px 44px; border-top:1px solid var(--kb-line); }
.search-hints span { display:inline-flex; align-items:center; gap:6px; color:var(--kb-muted); font-size:.68rem; font-weight:650; }
.search-hints i { color:var(--kb-accent); }
.kb-stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:16px; }
.kb-stats-grid article { border:1px solid var(--kb-line); border-radius:15px; padding:17px 18px; background:color-mix(in srgb,var(--kb-surface) 72%, transparent); }
.kb-stats-grid small, .kb-stats-grid span { display:block; color:var(--kb-muted); font-size:.68rem; }
.kb-stats-grid strong { display:block; margin:3px 0 1px; font:800 1.35rem/1.15 var(--kb-display); letter-spacing:-.03em; }

.kb-library-preview { margin-top:90px; }
.category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.category-card { display:flex; gap:16px; padding:20px; border:1px solid var(--kb-line); background:var(--kb-surface); border-radius:var(--kb-radius); transition:.18s ease; }
.category-card:hover { border-color:var(--kb-line-strong); transform:translateY(-2px); box-shadow:var(--kb-shadow-sm); }
.category-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:12px; background:var(--kb-accent-soft); color:var(--kb-accent); }
.category-main { flex:1; min-width:0; }
.category-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.category-title h3 { margin:0; font:800 .98rem/1.25 var(--kb-display); letter-spacing:-.02em; }
.category-title>span { min-width:26px; height:24px; display:grid; place-items:center; border:1px solid var(--kb-line); border-radius:8px; color:var(--kb-muted); font-size:.68rem; font-weight:800; }
.category-items { display:grid; gap:2px; }
.category-items a { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 8px; margin-inline:-8px; border-radius:8px; color:var(--kb-muted); text-decoration:none; font-size:.76rem; }
.category-items a span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.category-items a:hover { background:var(--kb-surface-soft); color:var(--kb-text); }
.category-items i { font-size:.7rem; }

.process-wrap { min-height:62vh; display:grid; place-items:center; }
.process-card { width:min(720px,100%); border:1px solid var(--kb-line); background:var(--kb-surface); border-radius:24px; box-shadow:var(--kb-shadow); padding:clamp(28px,5vw,52px); text-align:center; }
.process-symbol { position:relative; width:72px; height:72px; display:grid; place-items:center; margin:0 auto 24px; border-radius:22px; background:var(--kb-accent-soft); color:var(--kb-accent); font-size:1.45rem; }
.process-symbol span { position:absolute; inset:-7px; border:1px solid color-mix(in srgb,var(--kb-accent) 28%, transparent); border-radius:28px; animation:kbPulse 1.8s ease-in-out infinite; }
@keyframes kbPulse { 50% { transform:scale(1.06); opacity:.35; } }
.process-card h1 { max-width:620px; margin:13px auto 10px; font:800 clamp(1.45rem,3vw,2.25rem)/1.18 var(--kb-display); letter-spacing:-.04em; }
.process-message { color:var(--kb-muted); margin:0 0 24px; }
.progress-track { width:100%; height:8px; overflow:hidden; border-radius:99px; background:var(--kb-surface-soft); }
.progress-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--kb-accent),color-mix(in srgb,var(--kb-accent) 65%,#fff)); transition:width .35s ease; }
.process-meta { display:flex; justify-content:space-between; gap:20px; margin-top:10px; color:var(--kb-faint); font-size:.7rem; text-align:left; }
.process-meta span:first-child { color:var(--kb-text); font-weight:800; }
.process-error { margin-top:18px; padding:12px 14px; border-radius:10px; background:color-mix(in srgb,var(--kb-red) 10%,transparent); color:var(--kb-red); font-size:.78rem; text-align:left; }
.process-back { margin-top:28px; }

.result-page { width:min(980px,100%); margin:0 auto; }
.result-header { padding-bottom:28px; border-bottom:1px solid var(--kb-line); }
.result-back { display:inline-flex; align-items:center; gap:6px; margin-bottom:26px; color:var(--kb-muted); text-decoration:none; font-size:.75rem; font-weight:700; }
.result-header h1 { max-width:820px; margin:11px 0 14px; font:800 clamp(2rem,4.5vw,3.9rem)/1.03 var(--kb-display); letter-spacing:-.055em; }
.result-kpis { display:flex; gap:8px; flex-wrap:wrap; }
.result-kpis span { padding:6px 9px; border:1px solid var(--kb-line); border-radius:8px; color:var(--kb-muted); font-size:.69rem; }
.result-kpis strong { color:var(--kb-text); }
.answer-card { margin-top:24px; padding:clamp(22px,4vw,34px); border:1px solid color-mix(in srgb,var(--kb-accent) 30%,var(--kb-line)); border-radius:22px; background:linear-gradient(145deg,color-mix(in srgb,var(--kb-accent-soft) 55%,var(--kb-surface)),var(--kb-surface) 44%); box-shadow:var(--kb-shadow-sm); }
.answer-label { display:flex; align-items:center; gap:11px; margin-bottom:22px; }
.answer-orb { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; background:var(--kb-accent); color:white; }
.answer-label strong, .answer-label small { display:block; }
.answer-label strong { font-size:.82rem; }
.answer-label small { color:var(--kb-muted); font-size:.66rem; margin-top:2px; }
.answer-body { font-size:.96rem; line-height:1.78; }
.answer-body h1,.answer-body h2,.answer-body h3 { font-family:var(--kb-display); letter-spacing:-.03em; margin-top:1.5em; }
.answer-body code { font-family:var(--kb-mono); font-size:.86em; padding:2px 5px; border-radius:5px; background:var(--kb-surface-soft); }
.answer-body pre { padding:16px; border:1px solid var(--kb-line); border-radius:12px; background:#161719; color:#f2f2f2; overflow:auto; }
.answer-body p:last-child { margin-bottom:0; }
.answer-foot { margin-top:22px; padding-top:14px; border-top:1px solid var(--kb-line); color:var(--kb-muted); font-size:.69rem; }
.answer-foot i { color:var(--kb-green); margin-right:5px; }
.evidence-strip,.source-results { margin-top:44px; }
.evidence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.evidence-card { min-width:0; border:1px solid var(--kb-line); border-radius:15px; background:var(--kb-surface); padding:16px; }
.evidence-top { display:flex; justify-content:space-between; gap:10px; margin-bottom:9px; }
.evidence-top span { color:var(--kb-accent); font:.78rem/1 var(--kb-mono); font-weight:700; }
.evidence-top small { color:var(--kb-muted); font-size:.65rem; }
.evidence-card h3 { margin:0 0 8px; font:800 .88rem/1.35 var(--kb-display); }
.evidence-card p { margin:0; color:var(--kb-muted); font-size:.73rem; line-height:1.58; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.evidence-card>div:last-child { display:flex; gap:7px; margin-top:12px; }
.evidence-card>div:last-child span { padding:4px 6px; background:var(--kb-surface-soft); border-radius:6px; color:var(--kb-muted); font-size:.61rem; }
.source-list { display:grid; gap:10px; }
.source-row { display:flex; gap:16px; padding:20px; border:1px solid var(--kb-line); border-radius:17px; background:var(--kb-surface); }
.source-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:12px; background:var(--kb-surface-soft); color:var(--kb-muted); }
.source-content { flex:1; min-width:0; }
.source-title-line { display:flex; align-items:start; justify-content:space-between; gap:18px; }
.source-title-line span { color:var(--kb-faint); font-size:.63rem; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.source-title-line h3 { margin:3px 0 0; font:800 1rem/1.35 var(--kb-display); }
.source-title-line h3 a { text-decoration:none; }
.source-title-line h3 a:hover { color:var(--kb-accent); }
.source-title-line>strong { color:var(--kb-accent); font:.76rem/1 var(--kb-mono); }
.source-snippets { display:grid; gap:7px; margin:12px 0; }
.source-snippets p { margin:0; padding:10px 11px; border-left:2px solid var(--kb-line-strong); background:var(--kb-surface-soft); border-radius:0 8px 8px 0; color:var(--kb-muted); font-size:.7rem; line-height:1.5; }
.source-snippets small { display:block; margin-bottom:3px; color:var(--kb-faint); font-size:.58rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.empty-state { padding:52px 24px; border:1px dashed var(--kb-line-strong); border-radius:18px; text-align:center; color:var(--kb-muted); }
.empty-state i { font-size:1.5rem; color:var(--kb-faint); }
.empty-state h3 { margin:10px 0 4px; color:var(--kb-text); font:800 1rem var(--kb-display); }
.empty-state p { margin:0; font-size:.78rem; }

/* Bootstrap e telas legadas: mesma linguagem visual */
.card { border:1px solid var(--kb-line)!important; border-radius:16px!important; background:var(--kb-surface)!important; color:var(--kb-text)!important; box-shadow:none!important; overflow:hidden; }
.card-header { border-bottom:1px solid var(--kb-line)!important; background:var(--kb-surface-soft)!important; color:var(--kb-text)!important; }
.form-control,.form-select { border:1px solid var(--kb-line)!important; background:var(--kb-surface)!important; color:var(--kb-text)!important; border-radius:10px!important; min-height:42px; box-shadow:none!important; }
.form-control:focus,.form-select:focus { border-color:var(--kb-accent)!important; box-shadow:0 0 0 3px color-mix(in srgb,var(--kb-accent) 13%,transparent)!important; }
.btn { border-radius:10px; font-weight:700; }
.btn-primary { background:var(--kb-accent)!important; border-color:var(--kb-accent)!important; }
.btn-outline-primary { color:var(--kb-accent)!important; border-color:color-mix(in srgb,var(--kb-accent) 55%,var(--kb-line))!important; }
.table { --bs-table-bg:transparent; --bs-table-color:var(--kb-text); --bs-table-border-color:var(--kb-line); }
.text-muted { color:var(--kb-muted)!important; }
.bg-light { background:var(--kb-surface-soft)!important; }
.alert { border-radius:12px; border:1px solid var(--kb-line); }
code { font-family:var(--kb-mono); }

@media (max-width: 991.98px) {
  .navbar-minimal { border-radius:16px; }
  .navbar-collapse { padding:12px 4px 4px; }
  .kb-nav { margin:0!important; }
  .kb-actions { align-items:stretch!important; margin-top:8px; }
  .nav-icon { width:100%; justify-content:flex-start; padding-left:12px; }
  .category-grid,.evidence-grid { grid-template-columns:1fr; }
}
@media (max-width: 720px) {
  .app-shell { width:min(100% - 24px,var(--kb-shell)); }
  .app-header { padding-top:8px; }
  .navbar-minimal { width:calc(100% - 16px); }
  .app-main { padding-top:42px; }
  .kb-hero h1 { font-size:clamp(2.25rem,12vw,3.6rem); }
  .kb-search-form { flex-wrap:wrap; padding:10px; gap:8px; }
  .kb-search-form>i { margin-left:5px; }
  .kb-search-form input { min-width:calc(100% - 42px); }
  .kb-search-form > button[type="submit"] { width:100%; justify-content:center; }
  .kb-query-wrap { width:calc(100% - 34px); flex-wrap:wrap; }
  .kb-scope-chip { max-width:100%; }
  .kb-command-actions { grid-template-columns:1fr; }
  .search-hints { padding:9px 10px 3px; }
  .kb-stats-grid { grid-template-columns:1fr; }
  .kb-library-preview { margin-top:62px; }
  .source-row { padding:16px; gap:12px; }
  .source-icon { display:none; }
  .process-meta,.footer-inner { flex-direction:column; align-items:flex-start; }
  .footer-inner>div:first-child { flex-direction:column; gap:3px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
}

.settings-page { width:min(1080px,100%); margin:0 auto; }
.settings-head { max-width:720px; margin-bottom:34px; }
.settings-head h1 { margin:10px 0 8px; font:800 clamp(2rem,4vw,3.2rem)/1.05 var(--kb-display); letter-spacing:-.05em; }
.settings-head p,.settings-lead { color:var(--kb-muted); line-height:1.65; }
.settings-grid { display:grid; grid-template-columns:180px minmax(0,1fr); gap:30px; }
.settings-nav { position:sticky; top:100px; align-self:start; display:grid; gap:4px; }
.settings-nav a { display:flex; align-items:center; gap:8px; padding:9px 10px; border-radius:9px; color:var(--kb-muted); text-decoration:none; font-size:.77rem; font-weight:700; }
.settings-nav a:hover { background:var(--kb-surface-soft); color:var(--kb-text); }
.settings-content { display:grid; gap:18px; }
.settings-section { scroll-margin-top:100px; border:1px solid var(--kb-line); border-radius:19px; background:var(--kb-surface); padding:clamp(20px,4vw,30px); }
.settings-title { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.settings-title h2 { margin:5px 0 0; font:800 1.28rem var(--kb-display); letter-spacing:-.03em; }
.settings-lead { margin:12px 0 22px; font-size:.82rem; }
.status-pill { border:0; border-radius:99px; padding:7px 11px; display:flex; align-items:center; gap:7px; font-size:.69rem; font-weight:800; }
.status-pill span { width:7px; height:7px; border-radius:50%; }
.status-pill.on { color:var(--kb-green); background:color-mix(in srgb,var(--kb-green) 11%,transparent); }
.status-pill.on span { background:var(--kb-green); }
.status-pill.off { color:var(--kb-muted); background:var(--kb-surface-soft); }
.status-pill.off span { background:var(--kb-faint); }
.health-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.health-grid article { display:flex; gap:12px; padding:14px; border:1px solid var(--kb-line); border-radius:13px; background:var(--kb-bg); }
.health-icon { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:9px; }
.health-icon.ok { color:var(--kb-green); background:color-mix(in srgb,var(--kb-green) 10%,transparent); }.health-icon.bad { color:var(--kb-red); background:color-mix(in srgb,var(--kb-red) 10%,transparent); }.health-icon.warn { color:var(--kb-amber); background:color-mix(in srgb,var(--kb-amber) 12%,transparent); }
.health-grid small,.health-grid strong,.health-grid p { display:block; }.health-grid small { color:var(--kb-faint); font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }.health-grid strong { margin:2px 0; font-size:.78rem; }.health-grid p { margin:0; color:var(--kb-muted); font-size:.64rem; overflow-wrap:anywhere; }
.provider-form { margin-top:22px; }.provider-form>label { margin-bottom:8px; color:var(--kb-muted); font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }.provider-options { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }.provider-option { display:flex; align-items:center; gap:11px; text-align:left; padding:13px; border:1px solid var(--kb-line); border-radius:12px; background:var(--kb-surface); color:var(--kb-text); }.provider-option.active { border-color:color-mix(in srgb,var(--kb-accent) 60%,var(--kb-line)); background:var(--kb-accent-soft); }.provider-option i { color:var(--kb-accent); }.provider-option strong,.provider-option small { display:block; }.provider-option strong { font-size:.76rem; }.provider-option small { color:var(--kb-muted); font-size:.62rem; margin-top:2px; }
.index-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:16px; }.index-stats div { padding:13px; border:1px solid var(--kb-line); border-radius:11px; background:var(--kb-bg); }.index-stats small,.index-stats strong { display:block; }.index-stats small { color:var(--kb-muted); font-size:.62rem; }.index-stats strong { margin-top:3px; font:800 1.2rem var(--kb-display); }
.settings-action,.danger-zone { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 0; border-top:1px solid var(--kb-line); }.settings-action strong,.danger-zone strong { font-size:.8rem; }.settings-action p,.danger-zone p { margin:3px 0 0; color:var(--kb-muted); font-size:.7rem; }.config-note { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }.config-note code { padding:6px 8px; border-radius:7px; background:var(--kb-surface-soft); color:var(--kb-muted); font-size:.64rem; }.restore-form { display:flex; gap:8px; align-items:center; max-width:420px; }.restore-form .form-control { min-height:38px; font-size:.72rem; }.danger-zone { margin-top:10px; padding:15px; border:1px solid color-mix(in srgb,var(--kb-red) 24%,var(--kb-line)); border-radius:12px; background:color-mix(in srgb,var(--kb-red) 5%,transparent); }
@media (max-width:800px){.settings-grid{grid-template-columns:1fr}.settings-nav{position:static;display:flex;overflow:auto}.health-grid,.provider-options{grid-template-columns:1fr}.settings-action,.danger-zone,.restore-form{align-items:stretch;flex-direction:column}.index-stats{grid-template-columns:repeat(3,1fr)}}

/* Product landing */
.product-hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);gap:clamp(36px,7vw,90px);align-items:center;padding:clamp(72px,10vw,128px) 0 96px;min-height:720px}
.product-hero-copy h1{max-width:820px;margin:18px 0 24px;font-family:var(--font-display);font-size:clamp(3rem,6vw,5.8rem);line-height:.96;letter-spacing:-.065em;font-weight:750;color:var(--text)}
.product-hero-copy>p{max-width:720px;font-size:clamp(1rem,1.6vw,1.22rem);line-height:1.75;color:var(--text-2)}
.product-cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.product-primary,.product-secondary{min-height:48px;border-radius:12px;padding:0 18px;display:inline-flex;align-items:center;gap:9px;font-weight:650}.product-primary{background:var(--text);color:var(--bg);border:1px solid var(--text)}.product-primary:hover{background:var(--accent);border-color:var(--accent);color:white;transform:translateY(-1px)}.product-secondary{background:var(--surface);border:1px solid var(--line);color:var(--text)}.product-secondary:hover{background:var(--surface-2);color:var(--text);border-color:var(--line-strong)}
.product-proof{display:flex;flex-wrap:wrap;gap:18px;margin-top:28px;color:var(--text-3);font-size:.82rem}.product-proof span{display:inline-flex;align-items:center;gap:7px}.product-proof i{color:var(--accent)}
.product-demo-card{position:relative;border:1px solid var(--line);border-radius:26px;background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 35px 100px rgba(20,23,31,.12);padding:18px;overflow:hidden}.product-demo-card:before{content:"";position:absolute;inset:-40% 15% auto -10%;height:240px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 16%,transparent),transparent 65%);pointer-events:none}.demo-window-bar{position:relative;display:flex;align-items:center;gap:6px;padding:3px 4px 17px;border-bottom:1px solid var(--line-soft)}.demo-window-bar>span{width:8px;height:8px;border-radius:50%;background:var(--surface-3)}.demo-window-bar small{margin-left:auto;color:var(--text-4);font-size:.72rem;font-weight:650}.demo-query{position:relative;display:flex;align-items:center;gap:10px;margin:18px 0;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);font-size:.9rem}.demo-query i{color:var(--accent)}.demo-answer{position:relative;display:grid;grid-template-columns:34px 1fr;gap:12px;padding:18px 5px}.demo-ai{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.demo-answer strong{font-size:.85rem}.demo-answer p{margin:7px 0 0;color:var(--text-2);font-size:.86rem;line-height:1.65}.demo-answer b{color:var(--accent);font-weight:700}.demo-sources{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line-soft);padding-top:15px}.demo-sources span{border:1px solid var(--line-soft);border-radius:999px;background:var(--surface-2);padding:6px 9px;color:var(--text-3);font-size:.7rem;font-weight:600}
.product-section{padding:96px 0}.product-heading{align-items:end}.product-heading>p{max-width:520px;margin:0;color:var(--text-2);line-height:1.7}.product-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px}.product-feature-grid article{position:relative;min-height:310px;padding:28px 24px;border:1px solid var(--line-soft);border-radius:20px;background:var(--surface);transition:transform var(--dur-2),border-color var(--dur-2),box-shadow var(--dur-2)}.product-feature-grid article:hover{transform:translateY(-3px);border-color:var(--line);box-shadow:var(--shadow-2)}.product-feature-grid article>i{display:grid;place-items:center;width:42px;height:42px;margin:50px 0 22px;border-radius:12px;background:var(--surface-2);color:var(--accent);font-size:1.15rem}.feature-number{position:absolute;top:22px;right:22px;font-family:var(--font-mono);font-size:.68rem;color:var(--text-4)}.product-feature-grid h3{font-size:1.05rem;margin:0 0 10px}.product-feature-grid p{margin:0;color:var(--text-3);font-size:.86rem;line-height:1.7}
.architecture-panel{display:grid;grid-template-columns:.8fr 1.2fr;gap:54px;align-items:center;margin:46px 0 80px;padding:56px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,var(--surface),var(--surface-2))}.architecture-copy h2{max-width:600px;margin:12px 0 18px;font-family:var(--font-display);font-size:clamp(2rem,4vw,3.6rem);letter-spacing:-.045em;line-height:1.03}.architecture-copy p{color:var(--text-2);line-height:1.72}.architecture-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:8px}.architecture-flow>div{min-height:128px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:14px;border:1px solid var(--line-soft);border-radius:16px;background:var(--surface)}.architecture-flow>div i{font-size:1.25rem;color:var(--accent);margin-bottom:9px}.architecture-flow strong{font-size:.82rem}.architecture-flow small{margin-top:4px;color:var(--text-4);font-size:.68rem}.architecture-flow>span{color:var(--text-4)}
.product-value{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px;align-items:start}.product-value h2{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,4rem);line-height:1;letter-spacing:-.05em;margin:12px 0}.value-list{border-top:1px solid var(--line)}.value-list article{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.value-list strong{font-size:.88rem}.value-list p{margin:0;color:var(--text-3);font-size:.88rem;line-height:1.65}
.product-final-cta{text-align:center;margin:70px 0 110px;padding:clamp(46px,7vw,80px);border-radius:30px;background:var(--text);color:var(--bg)}.product-final-cta .eyebrow{color:color-mix(in srgb,var(--bg) 55%,transparent)}.product-final-cta h2{max-width:940px;margin:16px auto;font-family:var(--font-display);font-size:clamp(2.2rem,4.5vw,4.4rem);line-height:1;letter-spacing:-.05em}.product-final-cta>p{max-width:680px;margin:0 auto;color:color-mix(in srgb,var(--bg) 68%,transparent);line-height:1.7}.product-final-cta .product-primary{background:var(--bg);color:var(--text);border-color:var(--bg)}.product-final-cta .product-primary:hover{background:white;color:#111}.product-final-cta .product-secondary{background:transparent;color:var(--bg);border-color:color-mix(in srgb,var(--bg) 28%,transparent)}.product-final-cta .product-secondary:hover{background:color-mix(in srgb,var(--bg) 9%,transparent);color:var(--bg)}
@media(max-width:1050px){.product-hero{grid-template-columns:1fr;min-height:0}.product-demo-card{max-width:760px}.product-feature-grid{grid-template-columns:repeat(2,1fr)}.architecture-panel{grid-template-columns:1fr;padding:36px}.product-value{grid-template-columns:1fr;gap:30px}}
@media(max-width:720px){.product-hero{padding:58px 0 70px}.product-hero-copy h1{font-size:clamp(2.7rem,15vw,4.5rem)}.product-feature-grid{grid-template-columns:1fr}.architecture-panel{margin-left:-4px;margin-right:-4px;padding:26px 18px}.architecture-flow{grid-template-columns:1fr;gap:7px}.architecture-flow>span{transform:rotate(90deg)}.architecture-flow>div{min-height:92px}.value-list article{grid-template-columns:1fr;gap:6px}.product-final-cta{padding:44px 20px}.product-cta-row .btn{width:100%;justify-content:center}}

/* --------------------------------------------------------------------------
   Robustez de layout — conteúdo real pode ter títulos/categorias muito longos.
   Nenhum card pode ampliar a coluna do grid ou invadir o card vizinho.
   -------------------------------------------------------------------------- */
.category-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.category-card {
  min-width: 0;
  overflow: hidden;
  align-items: flex-start;
  padding: 22px;
}
.category-main,
.category-title,
.category-title h3,
.category-items,
.category-items a,
.category-items a span {
  min-width: 0;
}
.category-title { align-items: flex-start; }
.category-title h3 {
  flex: 1 1 auto;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}
.category-title > span { flex: 0 0 auto; }
.category-items a {
  width: 100%;
  overflow: hidden;
}
.category-items a span {
  display: block;
  flex: 1 1 auto;
  max-width: 100%;
}
.category-items a i { flex: 0 0 auto; }

@media (max-width: 991.98px) {
  .category-grid { grid-template-columns: 1fr; }
}

/* V2.4 — indicação de escopo na pesquisa */
.process-scope,.result-scope{display:inline-flex;align-items:center;gap:8px;max-width:100%;margin:0 auto 16px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--kb-accent) 20%,var(--kb-line));border-radius:10px;background:var(--kb-accent-soft);color:var(--kb-muted);font-size:.7rem}
.process-scope strong,.result-scope strong{color:var(--kb-text)}
.result-scope{margin:10px 0 0}
