@font-face { font-family: Inter; src: url('/static/vendor/fonts/inter/inter-latin-300-normal.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: Inter; src: url('/static/vendor/fonts/inter/inter-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: Inter; src: url('/static/vendor/fonts/inter/inter-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: Inter; src: url('/static/vendor/fonts/inter/inter-latin-800-normal.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; }

/* The dark palette is also the fallback when JavaScript or storage is unavailable. */
/* "Negro pastel": soft graphite layers, bone text and muted pastel accents
   (sand, sage, grey lavender, dusty blue). Corners are softened on purpose. */
:root, :root[data-theme="dark"] {
  color-scheme: dark;
  --radius: 12px; --radius-sm: 8px;
  --bg: #1c1c20; --card-bg: #24242a; --surface-alt: #2d2d34; --input-bg: #202025;
  --text: #ece8e1; --text-muted: #aba7a0; --border: #36363e; --border-strong: #4c4c56;
  --accent: #e6c9a2; --accent-text: #26221d; --focus: #e6c9a2; --nav-active: #e6c9a2;
  --header-bg: #18181c; --header-text: #ece8e1; --header-muted: #aba7a0; --header-border: #33333a; --header-hover: #2a2a31;
  --button-bg: #e6c9a2; --button-text: #26221d; --button-hover: #efd7b8;
  --positive: #a9c8b2; --negative: #cfcbc4; --warning: #e6c9a2; --error: #f0a8a8;
  --alert-bg: #3a2a2d; --warning-bg: #352f27; --success-bg: #26322b;
  --chart-1: #e6c9a2; --chart-2: #a9c8b2; --chart-3: #b7b3d6; --chart-4: #9fbad0;
  --chart-5: #d9b3b0; --chart-6: #8d8a95; --chart-7: #c9c2a6; --chart-8: #7f9a8c; --chart-9: #dcd7cf;
  --chart-text: #b9b5ae; --chart-title: #ece8e1; --chart-grid: #34343c;
  --tooltip-bg: #2d2d34; --tooltip-text: #ece8e1; --tooltip-border: #4c4c56;
  --overlay: rgba(14, 14, 17, .62);
}
:root[data-theme="light"] {
  color-scheme: light;
  --radius: 12px; --radius-sm: 8px;
  --bg: #f1f1ee; --card-bg: #ffffff; --surface-alt: #f0efeb; --input-bg: #ffffff;
  --text: #26262b; --text-muted: #67666b; --border: #e1e0db; --border-strong: #c3c2bd;
  --accent: #2d2d33; --accent-text: #f6f4f0; --focus: #8a6d47; --nav-active: #e6c9a2;
  --header-bg: #2a2a30; --header-text: #f1eee8; --header-muted: #bdb9b2; --header-border: #3d3d45; --header-hover: #36363d;
  --button-bg: #2d2d33; --button-text: #f6f4f0; --button-hover: #45454d;
  --positive: #3f6e50; --negative: #55545a; --warning: #7a5a2e; --error: #a33a3f;
  --alert-bg: #fbeeee; --warning-bg: #f7f0e5; --success-bg: #ebf3ed;
  --chart-1: #a8804c; --chart-2: #6f9a80; --chart-3: #8784b8; --chart-4: #6f90ad;
  --chart-5: #b88884; --chart-6: #6b6a72; --chart-7: #8f845a; --chart-8: #557567; --chart-9: #8a857d;
  --chart-text: #67666b; --chart-title: #26262b; --chart-grid: #e7e6e1;
  --tooltip-bg: #2a2a30; --tooltip-text: #f1eee8; --tooltip-border: #45454d;
  --overlay: rgba(30, 30, 34, .45);
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; font-family: Inter, Arial, sans-serif; background: var(--bg); color: var(--text); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { opacity: .55; cursor: not-allowed; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
::placeholder { color: var(--text-muted); opacity: 1; }
html { scrollbar-color: var(--border-strong) var(--bg); }
[hidden] { display: none !important; }
