:root {
  color-scheme: light dark;
  --bg: #f5f7fb;
  --surface: #ffffff;
  --surface-alt: #edf2f8;
  --text: #182437;
  --muted: #5e6b7e;
  --border: #d8e0eb;
  --primary: #165dcb;
  --primary-dark: #0d449b;
  --danger: #a33a3a;
  --success: #256a4a;
  --shadow: 0 16px 48px rgba(18, 40, 73, .12);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#111827; --surface:#172235; --surface-alt:#223047; --text:#edf3fc; --muted:#acb9ca; --border:#35455d; --primary:#76a9ff; --primary-dark:#b8d1ff; --danger:#ff9c9c; --success:#83d6aa; --shadow:0 16px 48px rgba(0,0,0,.3); }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); line-height: 1.55; }
a { color: var(--primary); }
button, input, textarea { font: inherit; }
button, .button { min-height: 44px; }
.skip-link { position:absolute; left:-999px; top:8px; background:var(--surface); padding:8px 12px; z-index:3; }
.skip-link:focus { left:8px; }
.auth-shell { min-height:100vh; display:grid; place-items:center; padding:24px; }
.auth-card { width:min(100%, 480px); background:var(--surface); border:1px solid var(--border); border-radius:18px; box-shadow:var(--shadow); padding:40px; }
.eyebrow { margin:0 0 8px; font-size:.75rem; letter-spacing:.13em; font-weight:700; color:var(--muted); }
h1,h2,p { margin-top:0; }
h1 { line-height:1.18; letter-spacing:-.02em; }
.muted, .legal { color:var(--muted); }
.legal { font-size:.82rem; margin-top:28px; }
.alert { border-left:4px solid var(--danger); background:color-mix(in srgb, var(--danger) 10%, transparent); padding:10px 12px; }
.stack { display:grid; gap:12px; }
.auth-card .stack + .muted, .auth-card .stack + .stack { margin-top:16px; }
label { font-weight:600; }
input, textarea { width:100%; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); padding:11px 12px; }
textarea { resize:vertical; min-height:88px; }
.button { border:1px solid transparent; border-radius:10px; padding:9px 16px; cursor:pointer; text-decoration:none; display:inline-flex; justify-content:center; align-items:center; gap:6px; }
.button:focus-visible, a:focus-visible, .link-button:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid color-mix(in srgb, var(--primary) 55%, transparent); outline-offset:2px; }
.primary { color:#fff; background:var(--primary); }
.primary:hover { background:var(--primary-dark); }
.secondary { color:var(--text); background:var(--surface); border-color:var(--border); }
.full { width:100%; }
.link-button { background:none; border:0; color:var(--primary); cursor:pointer; padding:8px; }
.app-shell { min-height:100vh; }
.topbar { min-height:64px; display:flex; align-items:center; gap:18px; padding:10px 24px; border-bottom:1px solid var(--border); background:var(--surface); }
.brand { color:var(--text); font-size:1.3rem; font-weight:800; text-decoration:none; }
.org-label { color:var(--muted); font-size:.9rem; }
.sync-state { margin-left:auto; color:var(--success); font-size:.9rem; }
.workspace { display:grid; grid-template-columns:280px minmax(0, 840px); gap:28px; max-width:1220px; margin:0 auto; padding:28px 24px 64px; }
.conversation-rail { border-right:1px solid var(--border); padding-right:20px; }
.conversation-rail h2 { font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin:28px 0 8px; }
.conversation-link { display:block; color:var(--text); text-decoration:none; border-radius:8px; padding:10px; margin:3px 0; }
.conversation-link:hover, .conversation-link.selected { background:var(--surface-alt); }
.conversation-link small { display:block; color:var(--muted); font-size:.75rem; }
.conversation-main { min-width:0; }
.conversation-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; border-bottom:1px solid var(--border); padding-bottom:20px; }
.conversation-heading h1 { margin-bottom:0; }
.heading-actions { display:flex; gap:8px; }
.transcript { display:grid; gap:18px; padding:28px 0; }
.message { padding:18px 20px; border:1px solid var(--border); border-radius:14px; background:var(--surface); }
.message.user { background:var(--surface-alt); }
.message-label { color:var(--muted); font-size:.8rem; font-weight:700; margin-bottom:8px; }
.message p:last-child { margin-bottom:0; }
.answer-content > :first-child { margin-top:0; }
.answer-content > :last-child { margin-bottom:0; }
.answer-content table { width:100%; border-collapse:collapse; display:block; overflow:auto; }
.answer-content th, .answer-content td { border-bottom:1px solid var(--border); padding:7px; text-align:left; }
.sources { margin-top:18px; border-top:1px solid var(--border); padding-top:12px; color:var(--muted); }
.sources summary { cursor:pointer; color:var(--primary); font-weight:600; }
.composer { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:16px; position:sticky; bottom:16px; box-shadow:var(--shadow); }
.composer-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:10px; }
.composer-row .muted { font-size:.82rem; }
.status-row { display:flex; align-items:center; gap:12px; }
.status { min-height:1.5em; color:var(--muted); margin:0; flex:1; }
.feedback { margin-top:14px; display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:.85rem; }
.chip { min-height:32px; border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:999px; padding:4px 12px; cursor:pointer; font-size:.85rem; }
.chip:hover { background:var(--surface-alt); }
.chip[aria-pressed="true"] { border-color:var(--primary); color:var(--primary); }
.empty-state { max-width:680px; margin:15vh auto; padding:24px; text-align:center; }
.empty-state h1 { font-size:clamp(2rem, 5vw, 3.5rem); }
.empty-state .button { margin-top:12px; }
@media (max-width: 780px) {
  .topbar { padding:10px 16px; }
  .org-label { display:none; }
  .workspace { display:block; padding:20px 16px 48px; }
  .conversation-rail { border-right:0; padding:0 0 20px; }
  .conversation-rail nav { display:flex; gap:6px; overflow:auto; }
  .conversation-link { min-width:180px; }
  .conversation-heading { align-items:stretch; flex-direction:column; }
  .heading-actions .button { width:100%; }
  .composer { position:static; }
}
