/* Horizon: gedeelde design-tokens (site + app). Bron look & feel: lumeo.nl
   Wit, Inter, slate-tekst, indigo-accent, lime-pijltjes, zachte ronde kaarten. */
@import url('https://fonts.bunny.net/css?family=inter:400,500,600,700&display=swap');

:root{
  --font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* neutralen (slate) */
  --slate-50:#f8fafc; --slate-100:#f1f5f9; --slate-200:#e2e8f0; --slate-300:#cbd5e1;
  --slate-400:#94a3b8; --slate-500:#64748b; --slate-600:#475569; --slate-700:#334155;
  --slate-800:#1e293b; --slate-900:#0f172a; --slate-950:#020617;

  /* accenten */
  --indigo-50:#eef2ff; --indigo-100:#e0e7ff; --indigo-400:#818cf8; --indigo-500:#6366f1; --indigo-600:#4f46e5;
  --lime-400:#a3e635; --lime-500:#84cc16; --lime-600:#65a30d;
  --emerald-50:#ecfdf5; --emerald-500:#10b981; --emerald-600:#059669;
  --amber-400:#fbbf24; --amber-500:#f59e0b;
  --rose-400:#fb7185; --rose-500:#f43f5e; --red-500:#ef4444;
  --sky-300:#7dd3fc; --sky-400:#38bdf8; --sky-500:#0ea5e9; --sky-700:#0369a1;
  --fuchsia-300:#f0abfc; --fuchsia-400:#e879f9; --fuchsia-500:#d946ef; --fuchsia-600:#c026d3; --fuchsia-700:#a21caf;
  --violet-300:#c4b5fd; --violet-500:#8b5cf6;

  /* semantiek */
  --bg:#ffffff; --bg-soft:var(--slate-50); --bg-muted:var(--slate-100);
  --fg:var(--slate-900); --fg-2:var(--slate-700); --fg-3:var(--slate-600); --fg-4:var(--slate-500);
  --line:var(--slate-200); --line-soft:var(--slate-100);
  --accent:var(--indigo-500); --accent-soft:var(--indigo-50);
  --ok:var(--lime-500); --warn:var(--amber-500); --bad:var(--rose-500);

  /* grafiekreeksen (zoals horizon: inkomen = fuchsia/paars, pensioen = sky/cyaan, vermogen = lime, uitgaven = slate) */
  --chart-income-1:var(--fuchsia-400); --chart-income-2:var(--fuchsia-500); --chart-income-3:var(--fuchsia-600);
  --chart-pension-1:var(--sky-300); --chart-pension-2:var(--sky-400); --chart-pension-3:var(--sky-700);
  --chart-wealth:var(--lime-400); --chart-wealth-2:var(--lime-600);
  --chart-expense:var(--slate-300); --chart-shortfall:var(--rose-400); --chart-line:var(--slate-900);

  /* vorm */
  --r-lg:12px; --r-xl:16px; --r-2xl:20px; --r-3xl:24px; --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --shadow-md:0 4px 16px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.05);
  --shadow-lg:0 20px 50px rgba(15,23,42,.10), 0 2px 6px rgba(15,23,42,.05);
  --ease:cubic-bezier(.2,.8,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font-sans);color:var(--fg);background:var(--bg);line-height:1.55;
  -webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","tnum"}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--fg)}
p{margin:0}

/* knoppen (pill, zoals horizon) */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;border-radius:var(--r-pill);
  font-weight:500;font-size:.9rem;border:1px solid transparent;cursor:pointer;transition:all .18s var(--ease);white-space:nowrap}
.btn svg{width:1.05em;height:1.05em}
.btn-dark{background:var(--slate-900);color:#fff}
.btn-dark:hover{background:var(--slate-800);transform:translateY(-1px)}
.btn-light{background:#fff;color:var(--fg);border-color:var(--line);box-shadow:var(--shadow-sm)}
.btn-light:hover{background:var(--slate-50);border-color:var(--slate-300)}
.btn-ghost{background:transparent;color:var(--fg-2)}
.btn-ghost:hover{background:var(--slate-100);color:var(--fg)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--indigo-600)}
.btn-sm{padding:.4rem .8rem;font-size:.8rem}
.btn-lg{padding:.8rem 1.4rem;font-size:1rem}

/* tekst-accenten */
.accent{color:var(--accent)}
.muted{color:var(--fg-4)}
.eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.02em;color:var(--accent)}
.tnum{font-variant-numeric:tabular-nums}

/* kaart */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-2xl);box-shadow:var(--shadow-sm)}
.card-soft{background:var(--slate-50);border:1px solid var(--line-soft);border-radius:var(--r-2xl)}

/* badge / chip */
.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:var(--r-pill);
  font-size:.75rem;font-weight:500;border:1px solid var(--line);background:#fff;color:var(--fg-2)}
.chip-accent{background:var(--accent-soft);border-color:var(--indigo-100);color:var(--indigo-600)}
.chip-ok{background:#f7fee7;border-color:#d9f99d;color:#4d7c0f}
.chip-warn{background:#fffbeb;border-color:#fde68a;color:#b45309}
.chip-bad{background:#fff1f2;border-color:#fecdd3;color:#be123c}

/* lime-pijl opsomming (horizon-kenmerk) */
.checks{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.checks li{display:flex;gap:.6rem;align-items:flex-start;color:var(--fg-2)}
.checks li::before{content:"";flex:none;width:1.1rem;height:1.1rem;margin-top:.2rem;border-radius:50%;background:var(--lime-500);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='12' fill='black'/><path d='M8 12h7m-3-3l3 3-3 3' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='12' fill='black'/><path d='M8 12h7m-3-3l3 3-3 3' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat}

/* formulieren */
.input,.select,.textarea{width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;outline:none;transition:border .15s}
.input:focus,.select:focus,.textarea:focus{border-color:var(--indigo-400);box-shadow:0 0 0 3px var(--indigo-100)}
.label{display:block;font-size:.8rem;font-weight:500;color:var(--fg-3);margin-bottom:.3rem}

/* hulpjes */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
