:root {
    --forest-950: #17211e;
    --forest-900: #1d2925;
    --forest-800: #263630;
    --green-700: #245f53;
    --green-600: #2f7d6d;
    --green-100: #deeee8;
    --terra-600: #c65f48;
    --terra-500: #d96b4f;
    --terra-100: #f7e3dc;
    --cream-100: #f3efe7;
    --cream-50: #faf7f0;
    --paper: #fffdf9;
    --ink-900: #21302a;
    --ink-700: #47574f;
    --ink-500: #6f7d76;
    --ink-400: #87948d;
    --line: #ddd7cb;
    --line-soft: #e9e3d9;
    --amber-600: #9a6b1f;
    --amber-100: #f7ecd5;
    --red-700: #963f38;
    --red-100: #f6dfdc;
    --white: #fff;
    --header-height: 68px;
    --sidebar-width: 260px;
    --radius-xl: 22px 22px 8px 22px;
    --radius-lg: 18px 18px 7px 18px;
    --radius-md: 13px;
    --shadow-float: 0 18px 44px rgba(23, 33, 30, .18);
    --font-ui: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-display: Georgia, "Times New Roman", serif;
    --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink-900);
    background-color: var(--cream-100);
    background-image: linear-gradient(90deg, rgba(47, 125, 109, .035) 1px, transparent 1px), linear-gradient(rgba(47, 125, 109, .035) 1px, transparent 1px);
    background-size: 48px 48px;
    font-family: var(--font-ui);
    font-size: 14px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
svg { display: block; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
img { max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid rgba(217, 107, 79, .42); outline-offset: 3px; }
::selection { color: var(--forest-950); background: #efc5b8; }
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
