/* Yipyy Design System — generated from tokens.json */
:root, [data-theme="light"] {
  --yipyy-sky: #4da2e2;
  --yipyy-navy: #0a4268;
  --yipyy-orange: #ec9650;
  --blue-50: #f1f6fe;
  --blue-100: #e8f0fd;
  --blue-200: #bfd3f6;
  --blue-500: #1d6ae5;
  --blue-600: #1550b8;
  --blue-700: #1a4fb5;
  --paper-0: #ffffff;
  --paper-50: #fbfaf7;
  --paper-100: #f6f5f1;
  --paper-150: #f4f3ef;
  --paper-200: #f1efea;
  --line-100: #eceae4;
  --line-200: #e3e1db;
  --line-300: #d9d6cf;
  --line-400: #c9c6bf;
  --ink-900: #1b2333;
  --ink-950: #0f172a;
  --ink-navy: #13294b;
  --ink-700: #4b5563;
  --ink-500: #6b7280;
  --ink-400: #8c8a83;
  --ink-300: #a3a7ae;
  --green-500: #1f7a45;
  --green-600: #15803d;
  --green-700: #116a32;
  --green-bg: #e7f5ec;
  --green-bg-2: #eefaf2;
  --green-bd: #bfe6cd;
  --green-live: #22a06b;
  --amber-500: #9a5b00;
  --amber-700: #7a4a00;
  --amber-bg: #fdf5e6;
  --amber-bg-2: #fffbef;
  --amber-bd: #f3ddb2;
  --amber-badge: #d97706;
  --red-500: #b4321f;
  --red-600: #c53030;
  --red-700: #a62626;
  --red-bg: #fdece8;
  --red-bg-2: #fef2f2;
  --red-bd: #fecaca;
  --red-dot: #e5484d;
  --violet-500: #5530ad;
  --violet-bg: #eeeafb;
  --indigo-500: #4b3bc4;
  --indigo-600: #3f31a8;
  --indigo-bg: #eeebfb;
  --teal-500: #0f5b58;
  --teal-bg: #dff3f2;
  --pink-500: #c2255c;
  --pink-bg: #fce8ef;
  --orange-500: #d9480f;
  --svc-daycare: #1d6ae5;
  --svc-daycare-bg: #e8f0fd;
  --svc-boarding: #5530ad;
  --svc-boarding-bg: #eeeafb;
  --svc-grooming: #c2255c;
  --svc-grooming-bg: #fce8ef;
  --svc-training: #0f5b58;
  --svc-training-bg: #dff3f2;
  --svc-evaluation: #1f7a45;
  --svc-evaluation-bg: #e7f5ec;
  --slate-50: #f8fafc;
  --slate-100: #f1f5f9;
  --slate-150: #edf0f4;
  --slate-200: #e2e8f0;
  --slate-300: #cbd5e1;
  --slate-400: #94a3b8;
  --slate-500: #64748b;
  --slate-600: #475569;
  --slate-700: #334155;
  --navy-deep: #0b2545;
  --blue-ops: #1a6fe8;
  --blue-ops-hover: #1559bf;
  --blue-ops-soft: #eaf2fe;
  --blue-ops-ink: #1f4e8c;
  --chart-current: #1d6ae5;
  --chart-compare: #94a3b8;
  --chart-compare-soft: #cbd5e1;
  --chart-forecast: #0f9a82;
  --chart-forecast-ink: #0a6e5d;
  --chart-forecast-bg: rgba(15,154,130,.07);
  --chart-forecast-tag: #e2f5f0;
  --chart-pos: #22a06b;
  --chart-neg: #e5484d;
  --chart-grid: var(--line-100);
  --chart-axis: var(--line-200);
  --chart-tip: var(--ink-900);
  --cal-boarding: #7c3aed;
  --cal-boarding-bg: #f1eafe;
  --cal-boarding-ink: #6d28d9;
  --cal-daycare: #1d6ae5;
  --cal-daycare-bg: #e7effd;
  --cal-daycare-ink: #1d4fb0;
  --cal-grooming: #0f9a82;
  --cal-grooming-bg: #e2f5f0;
  --cal-grooming-ink: #0a6e5d;
  --cal-training: #e07a1f;
  --cal-training-bg: #fdf0e3;
  --cal-training-ink: #a2520a;
  --cal-pool: #0891b2;
  --cal-pool-bg: #dff3f8;
  --cal-pool-ink: #06627a;
  --cal-care: #c2417e;
  --cal-care-bg: #fbe8f1;
  --cal-care-ink: #91275b;
  --cal-event: #b7860b;
  --cal-event-bg: #fbf2d9;
  --cal-event-ink: #7e5c05;
  --cal-canvas: #f3f2ee;
  --care-meal: #a34a12;
  --care-meal-bg: #fff1e6;
  --care-med: #4332b8;
  --care-med-bg: #f1effe;
  --care-potty: #1f4e8c;
  --care-potty-bg: #eaf2fe;
  --care-activity: #1e7a45;
  --care-activity-bg: #e7f5ec;
  --care-groom: #c2255c;
  --care-groom-bg: #fce8ef;
  --surface-page: var(--paper-100);
  --surface-chrome: var(--paper-50);
  --surface-card: var(--paper-0);
  --surface-sunken: var(--paper-50);
  --surface-segment: var(--line-100);
  --surface-hover: var(--paper-200);
  --border-card: var(--line-100);
  --border-control: var(--line-200);
  --border-hover: var(--line-300);
  --divider: var(--paper-200);
  --text-strong: var(--ink-900);
  --text-body: var(--ink-700);
  --text-muted: var(--ink-500);
  --text-faint: var(--ink-400);
  --text-on-color: #ffffff;
  --text-link: var(--blue-500);
  --text-link-hover: var(--blue-600);
  --action-primary: var(--blue-500);
  --action-primary-hover: var(--blue-600);
  --action-create: var(--indigo-500);
  --action-create-hover: var(--indigo-600);
  --action-positive: var(--green-600);
  --action-positive-hover: var(--green-700);
  --action-danger: var(--red-600);
  --action-danger-hover: var(--red-700);
  --scrim: rgba(15,23,42,.45);
  --scrim-strong: rgba(15,23,42,.7);
  --brand-primary: #1d6ae5;
  --brand-primary-hover: #1550b8;
  --brand-on-primary: #ffffff;
  --brand-primary-soft: #e8f0fd;
  --brand-ink: #0a4268;
  --brand-mark-bg: #0a4268;
  --brand-mark-fg: #4da2e2;
  --brand-accent: #ec9650;
  --brand-active-ink: #1550b8;
  --badge-gold-light: #fff1bf;
  --badge-gold-mid: #c98a12;
  --badge-gold-dark: #9a6408;
  --badge-gold-face-light: #ffd45c;
  --badge-gold-accent: #d9930f;
  --badge-gold-pill: #9a6408;
  --badge-silver-light: #ffffff;
  --badge-silver-mid: #9aa4b2;
  --badge-silver-dark: #6b7585;
  --badge-silver-face-light: #e9eef3;
  --badge-silver-accent: #9da8b6;
  --badge-silver-pill: #5b6475;
  --badge-bronze-light: #fadbc0;
  --badge-bronze-mid: #a35a2a;
  --badge-bronze-dark: #7a3f18;
  --badge-bronze-face-light: #eda46a;
  --badge-bronze-accent: #a85a28;
  --badge-bronze-pill: #7a3f18;
  --badge-sky-light: #e3f1fd;
  --badge-sky-mid: #2f7fc4;
  --badge-sky-dark: #1550b8;
  --badge-sky-face-light: #7cc0f2;
  --badge-sky-accent: #1d6ae5;
  --badge-sky-pill: #1550b8;
  --badge-violet-light: #eee6ff;
  --badge-violet-mid: #6c47c9;
  --badge-violet-dark: #45248f;
  --badge-violet-face-light: #a88bf0;
  --badge-violet-accent: #5530ad;
  --badge-violet-pill: #45248f;
  --badge-teal-light: #d9f6f2;
  --badge-teal-mid: #14807a;
  --badge-teal-dark: #0f5b58;
  --badge-teal-face-light: #5fd0c2;
  --badge-teal-accent: #0f7a72;
  --badge-teal-pill: #0f5b58;
  --badge-pink-light: #ffe1ec;
  --badge-pink-mid: #d23c72;
  --badge-pink-dark: #9e1b4a;
  --badge-pink-face-light: #f68ab1;
  --badge-pink-accent: #c2255c;
  --badge-pink-pill: #9e1b4a;
  --badge-green-light: #ddf5e5;
  --badge-green-mid: #2a9257;
  --badge-green-dark: #1f6b3f;
  --badge-green-face-light: #6ed39a;
  --badge-green-accent: #1f7a45;
  --badge-green-pill: #16603a;
  --badge-midnight-light: #c9d6ea;
  --badge-midnight-mid: #2e4b7a;
  --badge-midnight-dark: #0b2545;
  --badge-midnight-face-light: #40639a;
  --badge-midnight-accent: #0b2545;
  --badge-midnight-pill: #0b2545;
  --shadow-card-soft: 0 1px 3px rgba(15,23,42,.04);
  --shadow-segment: 0 1px 3px rgba(15,23,42,.12);
  --shadow-hover: 0 6px 18px rgba(0,0,0,.05);
  --shadow-stat-active: 0 8px 20px rgba(15,23,42,.08);
  --shadow-popover: 0 22px 56px rgba(15,23,42,.16);
  --shadow-modal: 0 30px 80px rgba(15,23,42,.3);
  --shadow-toast: 0 12px 30px rgba(15,23,42,.3);
  --shadow-cta-blue: 0 8px 20px rgba(29,106,229,.28);
  --shadow-cta-indigo: 0 6px 16px rgba(75,59,196,.28);
  --shadow-cta-green: 0 6px 14px rgba(21,128,61,.25);
  --shadow-cta-red: 0 6px 14px rgba(197,48,48,.25);
  --brand-primary-shadow: 0 8px 20px rgba(29,106,229,.28);
}
:root {
  --space-1: 4px;
  --space-2: 6px;
  --space-3: 8px;
  --space-4: 10px;
  --space-5: 12px;
  --space-6: 14px;
  --space-7: 16px;
  --space-8: 18px;
  --space-9: 20px;
  --space-10: 22px;
  --space-11: 24px;
  --space-12: 30px;
  --space-13: 32px;
  --radius-code: 6px;
  --radius-sm: 9px;
  --radius-icon: 10px;
  --radius-md: 12px;
  --radius-tile: 14px;
  --radius-lg: 18px;
  --radius-card: 20px;
  --radius-card-lg: 22px;
  --radius-section: 24px;
  --radius-modal: 26px;
  --radius-modal-lg: 28px;
  --radius-pill: 999px;
  --fs-display: 36px;
  --fs-h1: 34px;
  --fs-h2: 24px;
  --fs-h3: 18px;
  --fs-h4: 16px;
  --fs-stat: 30px;
  --fs-stat-sm: 28px;
  --fs-body-lg: 15px;
  --fs-body: 14px;
  --fs-body-sm: 13.5px;
  --fs-meta: 13px;
  --fs-caption: 12.5px;
  --fs-label: 11.5px;
  --fs-code: 10.5px;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;
  --lh-tight: 1.2;
  --lh-body: 1.45;
  --lh-relaxed: 1.5;
  --tracking-tight: -.025em;
  --tracking-title: -.02em;
  --tracking-eyebrow: .08em;
  --tracking-eyebrow-sm: .06em;
  --h-control-sm: 32px;
  --h-control: 38px;
  --h-control-md: 40px;
  --h-control-lg: 42px;
  --h-control-xl: 46px;
  --h-topbar: 68px;
  --h-topbar-portal: 72px;
  --w-sidebar: 270px;
  --w-rail: 64px;
  --w-rail-lg: 68px;
  --w-wizard-rail: 296px;
  --font-sans: 'Plus Jakarta Sans',system-ui,sans-serif;
  --font-hand: 'Caveat',cursive;
  --font-mono: 'JetBrains Mono',ui-monospace,monospace;
  --font-alt: 'Instrument Sans',system-ui,sans-serif;
  --font-icon: 'Material Symbols Outlined';
}
.type-display { font-family: var(--font-sans); font-size: 36px; font-weight: 800; letter-spacing: -.025em; }
.type-h1 { font-family: var(--font-sans); font-size: 34px; font-weight: 800; letter-spacing: -.02em; }
.type-h2 { font-family: var(--font-sans); font-size: 24px; font-weight: 800; letter-spacing: -.01em; }
.type-h3 { font-family: var(--font-sans); font-size: 18px; font-weight: 800; }
.type-body-lg { font-family: var(--font-sans); font-size: 15px; font-weight: 400; }
.type-body { font-family: var(--font-sans); font-size: 14px; font-weight: 400; }
.type-body-strong { font-family: var(--font-sans); font-size: 14px; font-weight: 700; }
.type-meta { font-family: var(--font-sans); font-size: 13px; font-weight: 400; }
.type-caption { font-family: var(--font-sans); font-size: 12.5px; font-weight: 400; }
.type-eyebrow { font-family: var(--font-sans); font-size: 11.5px; font-weight: 800; letter-spacing: .08em; }
.type-eyebrow-sm { font-family: var(--font-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .06em; }
.type-stat { font-family: var(--font-sans); font-size: 30px; line-height: 1; font-weight: 800; }
.type-stat-sm { font-family: var(--font-sans); font-size: 28px; font-weight: 800; }
.type-mono { font-family: var(--font-mono); font-size: 14px; font-weight: 400; }
.type-mono-sm { font-family: var(--font-mono); font-size: 12px; font-weight: 400; }
.type-hand { font-family: var(--font-hand); font-size: 34px; font-weight: 600; }
@font-face { font-family: "Plus Jakarta Sans"; src: url("fonts/PlusJakartaSans-latin-ext.woff2") format("woff2"); font-weight: 400 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Plus Jakarta Sans"; src: url("fonts/PlusJakartaSans-latin.woff2") format("woff2"); font-weight: 400 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Caveat"; src: url("fonts/Caveat-latin-ext.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Caveat"; src: url("fonts/Caveat-latin.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("fonts/InstrumentSans-latin-ext.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("fonts/InstrumentSans-latin.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("fonts/JetBrainsMono-latin.woff2") format("woff2"); font-weight: 400 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Material Symbols Outlined"; src: url("fonts/MaterialSymbolsOutlined.woff2") format("woff2"); font-weight: 100 700; font-style: normal; font-display: swap; }
