/* ── Reset & Base ────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 14px; -webkit-font-smoothing: antialiased; }

body {
  font-family: var(--font);
  font-size: var(--fs-body);
  color: var(--text);
  background: var(--bg);
  line-height: 1.5;
  min-width: 1024px;
}

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

button { font-family: inherit; cursor: pointer; border: none; background: none; }

input, select, textarea {
  font-family: inherit;
  font-size: var(--fs-body);
  color: var(--text);
}

ul, ol { list-style: none; }

h1 { font-size: var(--fs-h1); font-weight: 700; line-height: 1.2; }
h2 { font-size: var(--fs-h2); font-weight: 600; line-height: 1.3; }
h3 { font-size: var(--fs-h3); font-weight: 600; line-height: 1.3; }
h4 { font-size: var(--fs-subhead); font-weight: 600; }
h5 { font-size: var(--fs-body); font-weight: 600; }

p { line-height: 1.6; }

/* Utility helpers */
.text-secondary  { color: var(--text-secondary); }
.text-muted      { color: var(--text-muted); }
.text-sm         { font-size: var(--fs-body-sm); }
.text-caption    { font-size: var(--fs-caption); }
.text-right      { text-align: right; }
.text-center     { text-align: center; }
.font-medium     { font-weight: 500; }
.font-semibold   { font-weight: 600; }
.font-bold       { font-weight: 700; }

.truncate        { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sr-only         { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

/* Divider */
hr {
  border: none;
  border-top: 1px solid var(--border);
  margin: var(--sp-4) 0;
}

/* Scrollbar – subtle */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
