/* ChatVory.ai - base: tokens, reset, typography */
:root {
  --font-system: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --font-sans: "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif;
  --font-serif: Georgia, "Times New Roman", "Noto Serif", serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --font-ui: var(--font-system);

  --fs: 1;                       /* user text-scale multiplier (settings) */
  --fs-base: calc(16px * var(--fs));
  --fs-msg: calc(1rem * var(--msg-scale, 1));
  --lh: 1.6;                     /* message line height (settings) */

  --sidebar-w: 17.5rem;
  --topbar-h: 3.25rem;
  --radius: 0.75rem;
  --radius-sm: 0.5rem;
  --space: 1rem;                 /* density scales this */
  --shadow: 0 6px 24px rgba(20, 16, 8, 0.12);
  --ease: 160ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--fs-base); -webkit-text-size-adjust: 100%; }
body {
  margin: 0; min-height: 100vh; min-height: 100dvh;
  font-family: var(--font-ui); font-size: 1rem; line-height: 1.5;
  background: var(--bg); color: var(--ink);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
img, svg { max-width: 100%; }
a { color: var(--accent); text-underline-offset: 0.15em; }
h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 .5em; }
p { margin: 0 0 .75em; }
code, pre, kbd { font-family: var(--font-mono); }
[hidden] { display: none !important; }

/* Per-language system font stacks (no downloads) */
:lang(ur) { font-family: "Noto Nastaliq Urdu", "Jameel Noori Nastaleeq", "Noto Naskh Arabic", "Segoe UI", Tahoma, var(--font-system); line-height: 1.9; }
:lang(ar), :lang(fa), :lang(ps), :lang(sd), :lang(ks), :lang(prs), :lang(ckb), :lang(bal), :lang(skr) { font-family: "Noto Naskh Arabic", "Segoe UI", Tahoma, "Geeza Pro", var(--font-system); }
:lang(he), :lang(yi) { font-family: "Noto Sans Hebrew", "Arial Hebrew", "Segoe UI", var(--font-system); }
:lang(hi), :lang(mr), :lang(ne), :lang(sa) { font-family: "Noto Sans Devanagari", "Nirmala UI", "Kohinoor Devanagari", var(--font-system); }
:lang(bn), :lang(as) { font-family: "Noto Sans Bengali", "Nirmala UI", "Bangla Sangam MN", var(--font-system); }
:lang(pa) { font-family: "Noto Sans Gurmukhi", "Nirmala UI", "Gurmukhi Sangam MN", var(--font-system); }
:lang(gu) { font-family: "Noto Sans Gujarati", "Nirmala UI", "Gujarati Sangam MN", var(--font-system); }
:lang(ta) { font-family: "Noto Sans Tamil", "Nirmala UI", "Tamil Sangam MN", var(--font-system); }
:lang(te) { font-family: "Noto Sans Telugu", "Nirmala UI", "Telugu Sangam MN", var(--font-system); }
:lang(kn) { font-family: "Noto Sans Kannada", "Nirmala UI", "Kannada Sangam MN", var(--font-system); }
:lang(ml) { font-family: "Noto Sans Malayalam", "Nirmala UI", "Malayalam Sangam MN", var(--font-system); }
:lang(or) { font-family: "Noto Sans Oriya", "Nirmala UI", var(--font-system); }
:lang(si) { font-family: "Noto Sans Sinhala", "Nirmala UI", var(--font-system); }
:lang(th) { font-family: "Noto Sans Thai", "Leelawadee UI", "Thonburi", var(--font-system); }
:lang(km) { font-family: "Noto Sans Khmer", "Leelawadee UI", var(--font-system); }
:lang(lo) { font-family: "Noto Sans Lao", "Leelawadee UI", var(--font-system); }
:lang(my) { font-family: "Noto Sans Myanmar", "Myanmar Text", var(--font-system); }
:lang(am) { font-family: "Noto Sans Ethiopic", "Nyala", var(--font-system); }
:lang(ka) { font-family: "Noto Sans Georgian", var(--font-system); }
:lang(hy) { font-family: "Noto Sans Armenian", var(--font-system); }
:lang(zh-Hans) { font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", var(--font-system); }
:lang(zh-Hant), :lang(yue) { font-family: "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", var(--font-system); }
:lang(ja) { font-family: "Hiragino Sans", "Yu Gothic", "Noto Sans CJK JP", var(--font-system); }
:lang(ko) { font-family: "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans CJK KR", var(--font-system); }
code, pre, kbd, samp { font-family: var(--font-mono) !important; line-height: 1.5; }

/* Density */
html[data-density="compact"] { --space: .7rem; }
html[data-density="spacious"] { --space: 1.3rem; }

/* Settings-driven font family */
html[data-font="sans"] { --font-ui: var(--font-sans); }
html[data-font="serif"] { --font-ui: var(--font-serif); }
html[data-font="mono"] { --font-ui: var(--font-mono); }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; inset-inline-start: .5rem; top: -4rem; z-index: 1000; background: var(--accent); color: var(--accent-ink); padding: .5rem .9rem; border-radius: var(--radius-sm); }
.skip-link:focus { top: .5rem; }
