/* * Base: reset + the design tokens every theme can override. * A theme (themes//theme.css) only redefines these custom properties. */ :root { color-scheme: light; --bg: #f3f4f6; --surface: #ffffff; --surface-2: #eceef2; --text: #1d2330; --text-muted: #5b6475; --border: #d5d9e0; --accent: #2563eb; --accent-contrast: #ffffff; --danger: #c0392b; --good: #1a7f4b; /* gains */ --bad: #c0392b; /* losses */ --radius: 10px; --font: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; --gap: 0.75rem; --icon-size: 3rem; --placeholder: #9aa0a6; /* the grey square used until real images exist */ } *, *::before, *::after { box-sizing: border-box; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; min-height: 100vh; background: var(--bg); color: var(--text); font: 1rem/1.45 var(--font); padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); } h1, h2, h3, p, dl, dd, ul, fieldset { margin: 0; padding: 0; } ul { list-style: none; } button, input, select, textarea { font: inherit; color: inherit; } [hidden] { display: none !important; } .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } :focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }