/* base.css -- resets, scrollbar, typography, body */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; }

/* ── Scrollbar ──────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-surface); }
::-webkit-scrollbar-thumb { background: var(--bg-elevated); border-radius: 5px; border: 2px solid var(--bg-surface); }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.15); }
* { scrollbar-color: var(--bg-elevated) var(--bg-surface); scrollbar-width: thin; }
#main { scrollbar-gutter: stable; }

/* ── Global no-select: chrome off, data on ── */
body { -webkit-user-select: none; user-select: none; }
.stat-value, td, .ql-editor, .ql-editor *, input, textarea, select, [contenteditable="true"], .tag-pill { -webkit-user-select: text; user-select: text; }

/* ── Text selection ──────────────────────────────────────────────── */
::selection { background: rgba(74, 222, 128, 0.25); color: inherit; }
body.light ::selection { background: rgba(21, 128, 61, 0.25); color: inherit; }

/* ── Global input consistency ────────────────────────────────────── */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; appearance: none; margin: 0; }
input[type="number"] { -moz-appearance: textfield; }
select { cursor: pointer; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: none; }

/* Visually hidden but available to assistive tech (WCAG sr-only pattern). */
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
