/* FreeFish design tokens. Every colour, size, radius and shadow in the app comes from here.
   Light theme by default; dark theme follows the device setting. */
:root{
 color-scheme:light;
 /* Brand */
 --c-primary:#12352a;          /* pine: primary buttons, active nav */
 --c-primary-hover:#1d4d3c;
 --c-primary-pressed:#0b2820;
 --c-on-primary:#ffffff;
 --c-brand:#153d30;           /* deep green panels (Today forecast, welcome); white text in both themes */
 --c-on-brand:#f4f7f1;--c-on-brand-2:rgba(244,247,241,.8);--c-brand-raised:rgba(255,255,255,.08);
 --c-link:#256b50;             /* links, quiet actions (AA on paper and white) */
 --c-accent:#cde59a;           /* lime: selected chips, highlights */
 --c-accent-soft:#eef5dc;
 --c-on-accent:#12352a;
 --c-water:#2d82c4;            /* map, depth and info accents */
 --c-water-soft:#e3f1fa;
 /* Neutrals */
 --c-bg:#f7f6f1;               /* paper */
 --c-surface:#ffffff;
 --c-surface-2:#f0f2eb;        /* mist: secondary panels, inputs, quiet buttons */
 --c-surface-3:#eaede3;
 --c-line:#dfe4d8;
 --c-line-strong:#c5cebd;
 --c-text:#17251f;
 --c-text-2:#46564e;           /* secondary text, 7:1 on paper */
 --c-text-3:#55635b;           /* captions, 5.5:1 on paper, 4.9:1 on mist */
 --c-overlay:rgba(12,24,19,.55);
 /* Status */
 --c-success:#2f7a4b;--c-success-soft:#e5f2e9;
 --c-warning:#9a5b00;--c-warning-soft:#fdf1dc;
 --c-danger:#b3261e;--c-danger-soft:#fce8e6;
 /* Focus */
 --c-focus:#2d82c4;
 /* Type */
 --font-display:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
 --font-body:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
 --fs-1:.75rem;   /* 12 captions, labels */
 --fs-2:.875rem;  /* 14 secondary */
 --fs-3:1rem;     /* 16 body */
 --fs-4:1.125rem; /* 18 lead */
 --fs-5:1.25rem;  /* 20 h4 */
 --fs-6:1.5625rem;/* 25 h3 */
 --fs-7:1.9375rem;/* 31 h2 */
 --fs-8:2.4375rem;/* 39 h1 */
 --fs-9:3.0625rem;/* 49 display */
 --lh-tight:1.15;--lh-snug:1.3;--lh-body:1.55;
 --tracking-tight:-.02em;--tracking-eyebrow:.08em;
 /* Spacing (4px base) */
 --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;
 --content-max:1200px;--reading-max:720px;--gutter:clamp(16px,4vw,40px);
 /* Shape */
 --r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px;
 --shadow-sm:0 1px 2px rgba(18,53,42,.06),0 1px 1px rgba(18,53,42,.04);
 --shadow-md:0 6px 20px rgba(18,53,42,.10),0 2px 6px rgba(18,53,42,.06);
 --shadow-lg:0 18px 48px rgba(12,24,19,.18);
 /* Motion */
 --ease:cubic-bezier(.2,.7,.2,1);--dur-fast:120ms;--dur:200ms;--dur-slow:320ms;
 --tap:44px;
}
@media (prefers-color-scheme:dark){:root{
 color-scheme:dark;
 --c-primary:#2e7558;--c-primary-hover:#388566;--c-primary-pressed:#256148;--c-on-primary:#ffffff;--c-brand:#173a2d;
 --c-link:#9fd3b0;--c-accent:#3b5a2a;--c-accent-soft:#1f3326;--c-on-accent:#e8f3d2;
 --c-water:#6db6ea;--c-water-soft:#15303f;
 --c-bg:#0e1814;--c-surface:#15221c;--c-surface-2:#1b2b24;--c-surface-3:#23362d;
 --c-line:#2a3d35;--c-line-strong:#3b5248;
 --c-text:#e8efea;--c-text-2:#b8c7bf;--c-text-3:#93a69c;--c-overlay:rgba(0,0,0,.6);
 --c-success:#7fc79a;--c-success-soft:#173325;--c-warning:#f0b764;--c-warning-soft:#3a2a12;--c-danger:#f2958d;--c-danger-soft:#3d1a17;
 --c-focus:#6db6ea;
 --shadow-sm:0 1px 2px rgba(0,0,0,.35);--shadow-md:0 6px 20px rgba(0,0,0,.4);--shadow-lg:0 18px 48px rgba(0,0,0,.55);
}}
@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur:0ms;--dur-slow:0ms}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
