/* Eco design system — tokens v1. Light default; dark via prefers-color-scheme or [data-theme="dark"]; force light with [data-theme="light"]. */
:root{
  color-scheme:light;
  /* palette — light */
  --eco-bg:#f6f3ec;          /* sand */
  --eco-surface:#fffdf8;
  --eco-surface-2:#ede7da;   /* clay-tinted panel */
  --eco-text:#1f2a22;
  --eco-text-muted:#4b5a4f;
  --eco-border:#d9d1c1;      /* decorative dividers */
  --eco-border-strong:#7d7466; /* form/UI boundaries (>=3:1) */
  --eco-primary:#2f6b3f;     /* forest */
  --eco-primary-hover:#24552f;
  --eco-on-primary:#ffffff;
  --eco-primary-soft:#dcebd9;
  --eco-on-primary-soft:#1e4a29;
  --eco-accent:#9a4a26;      /* clay/terracotta */
  --eco-on-accent:#ffffff;
  --eco-accent-soft:#f3dfd2;
  --eco-success:#2f6b3f; --eco-success-soft:#dcebd9; --eco-on-success-soft:#1e4a29;
  --eco-warning:#7a5200; --eco-warning-soft:#f7e7c4; --eco-on-warning-soft:#5c3d00;
  --eco-danger:#b3261e;  --eco-danger-soft:#f8dcd8;  --eco-on-danger-soft:#7f1a14;
  --eco-info:#1f5f8b;    --eco-info-soft:#d8e8f3;    --eco-on-info-soft:#163f5c;
  --eco-focus:#1f5f8b;
  --eco-overlay:rgba(31,42,34,.45);
  /* type — system stack only */
  --eco-font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --eco-font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --eco-fs-sm:.875rem;   /* 14px — floor */
  --eco-fs-base:1rem;    /* 16px body */
  --eco-fs-md:1.125rem;  /* 18 */
  --eco-fs-lg:1.375rem;  /* 22 */
  --eco-fs-xl:1.75rem;   /* 28 */
  --eco-fs-2xl:clamp(2rem,1.5rem + 2vw,2.75rem);
  --eco-lh:1.55; --eco-lh-tight:1.2;
  --eco-fw-regular:400; --eco-fw-medium:500; --eco-fw-bold:650;
  /* spacing (4px base) */
  --eco-sp-1:.25rem; --eco-sp-2:.5rem; --eco-sp-3:.75rem; --eco-sp-4:1rem;
  --eco-sp-5:1.5rem; --eco-sp-6:2rem; --eco-sp-7:3rem; --eco-sp-8:4rem;
  /* radius */
  --eco-r-sm:6px; --eco-r-md:10px; --eco-r-lg:16px; --eco-r-pill:999px;
  /* elevation */
  --eco-shadow-1:0 1px 2px rgba(40,35,25,.08),0 1px 3px rgba(40,35,25,.06);
  --eco-shadow-2:0 4px 12px rgba(40,35,25,.10),0 2px 4px rgba(40,35,25,.06);
  --eco-shadow-3:0 12px 32px rgba(40,35,25,.16),0 4px 8px rgba(40,35,25,.08);
  /* motion */
  --eco-dur-fast:120ms; --eco-dur:200ms; --eco-dur-slow:320ms;
  --eco-ease:cubic-bezier(.2,.7,.2,1);
  /* sizing */
  --eco-tap:44px; --eco-maxw:1200px; --eco-header-h:64px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --eco-bg:#121a15; --eco-surface:#1a241d; --eco-surface-2:#243128;
    --eco-text:#e8efe6; --eco-text-muted:#b3c1b6;
    --eco-border:#33433a; --eco-border-strong:#7d9184;
    --eco-primary:#86c995; --eco-primary-hover:#a3d9ae; --eco-on-primary:#0f1c13;
    --eco-primary-soft:#24402c; --eco-on-primary-soft:#c6e8cc;
    --eco-accent:#e3a681; --eco-on-accent:#2a140a; --eco-accent-soft:#4a2e1f;
    --eco-success:#86c995; --eco-success-soft:#24402c; --eco-on-success-soft:#c6e8cc;
    --eco-warning:#f0c46a; --eco-warning-soft:#463818; --eco-on-warning-soft:#f7dfa8;
    --eco-danger:#ff9a8f;  --eco-danger-soft:#4d221e;  --eco-on-danger-soft:#ffd0ca;
    --eco-info:#8ec5ee;    --eco-info-soft:#1d3a50;    --eco-on-info-soft:#cfe6f7;
    --eco-focus:#8ec5ee; --eco-overlay:rgba(0,0,0,.6);
    --eco-shadow-1:0 1px 2px rgba(0,0,0,.4);
    --eco-shadow-2:0 4px 12px rgba(0,0,0,.45);
    --eco-shadow-3:0 12px 32px rgba(0,0,0,.55);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --eco-bg:#121a15; --eco-surface:#1a241d; --eco-surface-2:#243128;
  --eco-text:#e8efe6; --eco-text-muted:#b3c1b6;
  --eco-border:#33433a; --eco-border-strong:#7d9184;
  --eco-primary:#86c995; --eco-primary-hover:#a3d9ae; --eco-on-primary:#0f1c13;
  --eco-primary-soft:#24402c; --eco-on-primary-soft:#c6e8cc;
  --eco-accent:#e3a681; --eco-on-accent:#2a140a; --eco-accent-soft:#4a2e1f;
  --eco-success:#86c995; --eco-success-soft:#24402c; --eco-on-success-soft:#c6e8cc;
  --eco-warning:#f0c46a; --eco-warning-soft:#463818; --eco-on-warning-soft:#f7dfa8;
  --eco-danger:#ff9a8f;  --eco-danger-soft:#4d221e;  --eco-on-danger-soft:#ffd0ca;
  --eco-info:#8ec5ee;    --eco-info-soft:#1d3a50;    --eco-on-info-soft:#cfe6f7;
  --eco-focus:#8ec5ee; --eco-overlay:rgba(0,0,0,.6);
  --eco-shadow-1:0 1px 2px rgba(0,0,0,.4);
  --eco-shadow-2:0 4px 12px rgba(0,0,0,.45);
  --eco-shadow-3:0 12px 32px rgba(0,0,0,.55);
}
@media (prefers-reduced-motion:reduce){
  :root{--eco-dur-fast:0ms;--eco-dur:0ms;--eco-dur-slow:0ms}
}
