/* AUTO-GENERATED by build-tokens.js from tokens.json — do not hand-edit. */

:root {
  /* light is the CSS default root (admin + marketing sites are light-first) */
  --an-bg-page: #F5F6FC;
  --an-bg-canvas: #F5F6FC;
  --an-bg-card: #FFFFFF;
  --an-bg-raised: #FFFFFF;
  --an-bg-sunken: #EDEFF7;
  --an-bg-overlay: rgba(20,22,55,0.45);
  --an-text-primary: #141637;
  --an-text-secondary: #565C7E;
  --an-text-muted: #9AA0BC;
  --an-text-inverse: #FFFFFF;
  --an-text-on-action: #FFFFFF;
  --an-text-disabled: #9AA0BC;
  --an-text-emphasis: #B07A0E;
  --an-text-emphasis-gradient: linear-gradient(100deg, #3F63E8 0%, #7C4DE0 52%, #B07A0E 112%);
  --an-border-subtle: #E6E8F2;
  --an-border-default: #E6E8F2;
  --an-border-strong: #D4D8EA;
  --an-border-focus: #3F63E8;
  --an-action-default: #3F63E8;
  --an-action-hover: #345BD6;
  --an-action-pressed: #2C48B8;
  --an-action-disabled-fg: #9AA0BC;
  --an-action-subtle-bg: rgba(74,107,255,0.1);
  --an-brand-default: #B07A0E;
  --an-brand-subtle-bg: rgba(245,194,75,0.14);
  --an-depth-default: #7C4DE0;
  --an-depth-subtle-bg: rgba(139,92,246,0.1);
  --an-success-fg: #17A66A;
  --an-success-subtle-bg: rgba(23,166,106,0.12);
  --an-warning-fg: #B07A0E;
  --an-warning-subtle-bg: rgba(245,194,75,0.18);
  --an-danger-fg: #B4232E;
  --an-danger-subtle-bg-soft: #FEF3F3;
  --an-danger-border-soft: #FBD9D9;
  --an-danger-subtle-bg-strong: #FEF3F3;
  --an-danger-border-strong: #FBD9D9;
  --an-info-fg: #3F63E8;
  --an-info-subtle-bg: rgba(74,107,255,0.1);
  --an-focus-ring: #3F63E8;
  --an-divider: #E6E8F2;
  --an-scrim: rgba(20,22,55,0.45);

  /* core scales — theme-independent (spacing, radius, type, borders) */
  --an-fontFamily-display: -apple-system, 'SF Pro Display', 'SF Pro Text', system-ui, 'Segoe UI', Roboto, sans-serif;
  --an-fontFamily-mono: ui-monospace, Menlo, monospace;
  --an-spacing-0: 0px;
  --an-spacing-1: 4px;
  --an-spacing-2: 8px;
  --an-spacing-3: 10px;
  --an-spacing-4: 12px;
  --an-spacing-5: 14px;
  --an-spacing-6: 16px;
  --an-spacing-7: 18px;
  --an-spacing-8: 20px;
  --an-spacing-9: 24px;
  --an-spacing-10: 28px;
  --an-radius-sm: 8px;
  --an-radius-md: 12px;
  --an-radius-lg: 14px;
  --an-radius-xl: 16px;
  --an-radius-2xl: 20px;
  --an-radius-pill: 999px;
  --an-radius-phoneBezel: 44px;
  --an-radius-phoneScreen: 34px;
  --an-borderWidth-hairline: 1px;
  --an-borderWidth-default: 1.5px;
  --an-borderWidth-thick: 3px;
  --an-fontSize-display: 47px;
  --an-fontSize-h1: 27px;
  --an-fontSize-h2: 23px;
  --an-fontSize-h3: 20.5px;
  --an-fontSize-bodyLg: 16px;
  --an-fontSize-body: 14.5px;
  --an-fontSize-bodySm: 14px;
  --an-fontSize-caption: 12.5px;
  --an-fontSize-metric: 41px;
  --an-fontSize-label: 12px;
  --an-fontSize-micro: 10px;
  --an-fontWeight-light: 300;
  --an-fontWeight-regular: 400;
  --an-fontWeight-medium: 500;
  --an-fontWeight-semibold: 600;
  --an-fontWeight-bold: 700;
  --an-fontWeight-heavy: 800;
  --an-letterSpacing-tight: -0.025em;
  --an-letterSpacing-normal: 0em;
  --an-letterSpacing-wide: 0.06em;
  --an-letterSpacing-wordmark: 0.04em;
  --an-letterSpacing-eyebrow: 0.14em;

  /* motion — durations and web easings */
  --an-motion-duration-instant: 100ms;
  --an-motion-duration-fast: 160ms;
  --an-motion-duration-base: 240ms;
  --an-motion-duration-slow: 360ms;
  --an-motion-duration-celebrate: 700ms;
  --an-motion-easing-standard-web: cubic-bezier(0.4,0,0.2,1);
  --an-motion-easing-decel-web: cubic-bezier(0,0,0.2,1);
  --an-motion-easing-pop-web: cubic-bezier(0.2,0.7,0.3,1);

  /* breakpoints — reference values; @media cannot read var(), so media queries
     must repeat these literals. Kept here so the numbers have one home. */
  --an-breakpoint-sm: 640px;
  --an-breakpoint-md: 820px;
  --an-breakpoint-lg: 960px;
  --an-breakpoint-xl: 1180px;

  /* component tokens — structure and theme-invariant colour */
  --an-sectionBlock-usage: at most one bold block per scrolling document — it reads as the hero/anchor section; more than one and the rhythm collapses into 'everything is loud';
  --an-sectionBlock-bold-bg: linear-gradient(100deg, #4A6BFF 0%, #8158F2 52%, #F5C24B 112%);
  --an-sectionBlock-bold-fg: #0A0C22;
  --an-sectionBlock-bold-fg-emphasis: #FFFFFF;
  --an-sectionBlock-bold-rule: #0A0C22;
  --an-sectionBlock-bold-fg-soft: rgba(255,255,255,0.75);
  --an-sectionBlock-bold-sub-fg: rgba(10,12,34,0.6);
  --an-sectionBlock-bold-numeratorChip-tag-bg: rgba(255,255,255,0.14);
  --an-sectionBlock-bold-divider: rgba(10,12,34,.12);
  --an-sectionBlock-bold-icon-bg: rgba(10,12,34,.85);
  --an-sectionBlock-bold-icon-fg: #F5C24B;
  --an-sectionBlock-bold-numeratorChip-bg: #0A0C22;
  --an-sectionBlock-bold-numeratorChip-fg: #F5C24B;
  --an-button-primary-radius: 15px;
  --an-button-primary-paddingY: 14px;
  --an-button-primary-paddingX: 18px;
  --an-button-primary-bg-default: linear-gradient(100deg, #3F63E8 0%, #7C4DE0 100%);
  --an-button-primary-bg-pressed: linear-gradient(100deg, #2C48B8 0%, #6B46D6 100%);
  --an-button-primary-fg-default: #FFFFFF;
  --an-button-ghost-radius: 12px;
  --an-button-adminPrimary-bg-default: linear-gradient(100deg, #4A6BFF 0%, #8158F2 52%, #F5C24B 112%);
  --an-button-adminPrimary-bg-secondary: #FFFFFF;
  --an-button-adminPrimary-border-secondary: #D4D8EA;
  --an-button-adminPrimary-radius: 10px;
  --an-checkbox-size: 22px;
  --an-checkbox-on-fg: #FFFFFF;
  --an-input-radius: 12px;
  --an-input-inlineUnderline: 1px dashed #D9DEF0;
  --an-bottomNav-activeIndicator-height: 2.5px;
  --an-bottomNav-activeIndicator-width: 16px;
  --an-statusPill-radius: 20px;
  --an-statusPill-paddingY: 4px;
  --an-statusPill-paddingX: 10px;
  --an-card-radius: 16px;
  --an-card-padding: 16px;
  --an-sectionNumeratorChip-bg: linear-gradient(100deg, #F5C24B 0%, #E0A62F 100%);
  --an-sectionNumeratorChip-fg: #0A0C22;
  --an-sectionNumeratorChip-radius: 6px;
  --an-sectionNumeratorChip-fontWeight: 800;
  --an-sectionRuleBar-bg: linear-gradient(100deg, #4A6BFF 0%, #8158F2 52%, #F5C24B 112%);
  --an-sectionRuleBar-height: 3px;
  --an-sectionRuleBar-width: 40px;
  --an-sectionRuleBar-radius: 2px;
  --an-weeklyGridCell-radius: 7px;
  --an-weeklyGridCell-minHeight: 78px;
  --an-weeklyGridCell-chip-fontSize: 7.5px;
  --an-weeklyGridCell-chip-radius: 3px;
  --an-verifiedBadge-check-stroke: #FFFFFF;
  --an-verifiedBadge-size: 12px;
  --an-progressRing-startAngleCss: 210deg;
  --an-progressRing-startAngleSvg: 120deg;
  --an-progressRing-direction: clockwise;
  --an-progressRing-sweepAt100: 360deg;
  --an-progressRing-diameter: 132px;
  --an-progressRing-ringThickness: 15px;
  --an-progressRing-endpoint: none — rounded disc edge only;
  --an-scoreDial-width: 200px;
  --an-scoreDial-stroke: 12px;
  --an-scoreDial-value-fontSize: 41px;
  --an-scoreDial-fg: #FFFFFF;
  --an-scoreDial-sub-fg: rgba(255,255,255,0.75);
  --an-scoreDial-track: rgba(255,255,255,0.28);
  --an-recoveryMeter-width: 96px;
  --an-recoveryMeter-bar-height: 8px;
  --an-recoveryMeter-bar-radius: 4px;
  --an-recoveryMeter-bar-gradientBg: linear-gradient(100deg, #4A6BFF 0%, #8158F2 52%, #F5C24B 112%);
  --an-recoveryMeter-bar-backgroundSize: 96px 100%;
  --an-recoveryMeter-bar-backgroundRepeat: no-repeat;
  --an-recoveryMeter-value-fontSize: 41px;
  --an-recoveryMeter-value-fontWeight: 700;
  --an-recoveryMeter-value-letterSpacing: -0.02em;
  --an-recoveryMeter-label-fontSize: 12px;
  --an-recoveryMeter-delta-fontSize: 11px;
  --an-recoveryMeter-delta-fontWeight: 600;
  --an-recoveryMeter-empty-valueGlyph: –;
  --an-recoveryMeter-rn-recipe: CSS pins the gradient to a fixed background-size (96px) under a growing foreground; RN has no background-size, so invert the layering instead. Build TWO views: (1) an outer clipping View sized to the CURRENT fill — width = 96 * percent/100, height = bar-height, borderRadius = bar-radius, overflow:'hidden', position:'relative'; (2) inside it, an expo-linear-gradient View that is NOT sized to the fill — it is always rendered at the FULL track width (96) and height 100%, absolutely positioned at left:0/top:0, using gradient.signature.rn's colors/locations/start/end unchanged. Because the inner gradient never resizes and the outer view only ever reveals a left-aligned slice of it, whatever portion is visible always matches the correct point along the fixed 0-100 ramp — the same effect as CSS's fixed background-size, achieved by fixing the LAYER instead of the PAINT. Same family of trick as progressRing.segmentsForRN: express a CSS-only primitive as two ordinary views instead of inventing a new one.;
  --an-toggle-width: 38px;
  --an-toggle-height: 22px;
  --an-toggle-thumbSize: 18px;
  --an-toggle-thumb: #FFFFFF;
  --an-toggle-track-on: linear-gradient(100deg,#4A6BFF,#8158F2);
  --an-assist-trigger-radius: 10px;
  --an-assist-trigger-paddingY: 7px;
  --an-assist-trigger-paddingX: 13px;
  --an-assist-trigger-fontSize: 12.5px;
  --an-assist-trigger-fontWeight: 600;
  --an-assist-trigger-gap: 6px;
  --an-assist-glyph-size: 14px;
  --an-assist-draft-radius: 14px;
  --an-assist-draft-padding: 14px;
  --an-assist-draft-border-style: 1.5px dashed;
  --an-assist-tag-radius: 6px;
  --an-assist-tag-paddingY: 3px;
  --an-assist-tag-paddingX: 8px;
  --an-assist-tag-fontSize: 10.5px;
  --an-assist-tag-fontWeight: 700;
  --an-assist-tag-letterSpacing: 0.04em;
  --an-assist-actions-gap: 10px;
  --an-assist-action-primary-radius: 10px;
  --an-assist-action-fontSize: 12.5px;
  --an-assist-provenance-fontSize: 11px;
  --an-assist-provenance-glyphOpacity: 0.55;

  /* component tokens — themed colour (light) */
  --an-button-primary-bg-disabled: #EDEFF7;
  --an-button-primary-fg-disabled: #9AA0BC;
  --an-button-ghost-bg-default: #FFFFFF;
  --an-button-ghost-border-default: #D4D8EA;
  --an-button-ghost-fg-default: #141637;
  --an-checkbox-on-bg: #3F63E8;
  --an-checkbox-off-border: #9AA0BC;
  --an-checkbox-off-fg: #9AA0BC;
  --an-input-bg-default: #F5F6FC;
  --an-input-border-default: #E6E8F2;
  --an-input-placeholder-fg: #9AA0BC;
  --an-bottomNav-fg-default: #9AA0BC;
  --an-bottomNav-fg-active: #B07A0E;
  --an-bottomNav-activeIndicator-color: #B07A0E;
  --an-exerciseRow-title-fg: #141637;
  --an-exerciseRow-sub-fg: #9AA0BC;
  --an-exerciseRow-chevron-fg: #565C7E;
  --an-exerciseRow-divider: #E6E8F2;
  --an-statusPill-bg: #EDEFF7;
  --an-statusPill-fg: #565C7E;
  --an-statusPill-link-fg: #3F63E8;
  --an-card-bg: #FFFFFF;
  --an-card-border: #E6E8F2;
  --an-verifiedBadge-fill: #3F63E8;
  --an-progressRing-trackColor: #E9ECF7;
  --an-progressRing-coreColor: #FFFFFF;
  --an-weeklyGridCell-bg: #EDEFF7;
  --an-recoveryMeter-track-bg: #EDEFF7;
  --an-recoveryMeter-label-fg: #565C7E;
  --an-recoveryMeter-value-fg: #141637;
  --an-recoveryMeter-delta-positive-fg: #17A66A;
  --an-recoveryMeter-delta-negative-fg: #B4232E;
  --an-recoveryMeter-empty-fg: #9AA0BC;
  --an-toggle-track-off: #D9DEF0;
  --an-calloutDanger-soft-bg: #FEF3F3;
  --an-calloutDanger-soft-border: #FBD9D9;
  --an-calloutDanger-strong-bg: #FEF3F3;
  --an-calloutDanger-strong-border: #FBD9D9;
  --an-restOverlay-scrim: rgba(245,246,252,0.96);
  --an-weeklyGridChip-str-fg: #3F63E8;
  --an-weeklyGridChip-str-bg: rgba(63,99,232,0.12);
  --an-weeklyGridChip-daily-fg: #B07A0E;
  --an-weeklyGridChip-daily-bg: rgba(176,122,14,0.14);
  --an-weeklyGridChip-walk-fg: #17A66A;
  --an-weeklyGridChip-walk-bg: rgba(23,166,106,0.14);
  --an-weeklyGridChip-clinic-fg: #7C4DE0;
  --an-weeklyGridChip-clinic-bg: rgba(124,77,224,0.14);
  --an-weeklyGridChip-rest-fg: #9AA0BC;
  --an-weeklyGridChip-rest-bg: rgba(20,22,55,0.06);
  --an-assist-trigger-bg: #FFFFFF;
  --an-assist-trigger-border: #D4D8EA;
  --an-assist-trigger-fg: #565C7E;
  --an-assist-trigger-icon-fg: #3F63E8;
  --an-assist-working-fg: #9AA0BC;
  --an-assist-draft-bg: rgba(245,194,75,0.07);
  --an-assist-draft-border: rgba(224,166,47,0.4);
  --an-assist-tag-bg: rgba(245,194,75,0.16);
  --an-assist-tag-fg: #B07A0E;
  --an-assist-action-primary-bg: linear-gradient(100deg, #4A6BFF 0%, #8158F2 52%, #F5C24B 112%);
  --an-assist-action-ghost-fg: #565C7E;
  --an-assist-action-dismiss-fg: #9AA0BC;
  --an-assist-provenance-fg: #9AA0BC;

  /* gradients — identical in both themes */
  --an-gradient-signature-css: linear-gradient(100deg, #4A6BFF 0%, #8158F2 52%, #F5C24B 112%);
  --an-gradient-emphasisTextDark-css: linear-gradient(100deg, #8DA6FF 0%, #C6AEFF 52%, #F7D488 112%);
  --an-gradient-signatureCool-css: linear-gradient(100deg, #3F63E8 0%, #7C4DE0 100%);
  --an-gradient-emphasisTextLight-css: linear-gradient(100deg, #3F63E8 0%, #7C4DE0 100%);
  --an-gradient-signatureCoolPressed-css: linear-gradient(100deg, #2C48B8 0%, #6B46D6 100%);
  --an-gradient-signatureGold-css: linear-gradient(100deg, #F5C24B 0%, #E0A62F 100%);
}

[data-theme="dark"] {
  --an-bg-page: #0C0E28;
  --an-bg-canvas: #05060f;
  --an-bg-card: rgba(255,255,255,0.035);
  --an-bg-raised: rgba(255,255,255,0.05);
  --an-bg-sunken: rgba(255,255,255,0.02);
  --an-bg-overlay: rgba(4,5,15,0.82);
  --an-text-primary: #F4F5FC;
  --an-text-secondary: #A6ADCC;
  --an-text-muted: #6C7396;
  --an-text-inverse: #0A0C22;
  --an-text-on-action: #FFFFFF;
  --an-text-disabled: #6C7396;
  --an-text-emphasis: #F5C24B;
  --an-text-emphasis-gradient: linear-gradient(100deg, #8DA6FF 0%, #C6AEFF 52%, #F7D488 112%);
  --an-border-subtle: rgba(255,255,255,0.06);
  --an-border-default: rgba(255,255,255,0.08);
  --an-border-strong: rgba(255,255,255,0.18);
  --an-border-focus: #4A7CFF;
  --an-action-default: #4A7CFF;
  --an-action-hover: #6690FF;
  --an-action-pressed: #3A5ECC;
  --an-action-disabled-fg: #6C7396;
  --an-action-subtle-bg: rgba(74,107,255,0.12);
  --an-brand-default: #F5C24B;
  --an-brand-subtle-bg: rgba(245,194,75,0.06);
  --an-depth-default: #8B5CF6;
  --an-depth-subtle-bg: rgba(139,92,246,0.1);
  --an-success-fg: #3DD68C;
  --an-success-subtle-bg: rgba(61,214,140,0.14);
  --an-warning-fg: #F5C24B;
  --an-warning-subtle-bg: rgba(245,194,75,0.1);
  --an-danger-fg: #E45454;
  --an-danger-subtle-bg-soft: rgba(228,84,84,0.06);
  --an-danger-border-soft: rgba(228,84,84,0.2);
  --an-danger-subtle-bg-strong: rgba(228,84,84,0.08);
  --an-danger-border-strong: rgba(228,84,84,0.35);
  --an-info-fg: #7C95FF;
  --an-info-subtle-bg: rgba(124,149,255,0.18);
  --an-focus-ring: #4A7CFF;
  --an-divider: rgba(255,255,255,0.06);
  --an-scrim: rgba(4,5,15,0.82);

  /* component tokens — themed colour (dark) */
  --an-button-primary-bg-disabled: rgba(255,255,255,0.06);
  --an-button-primary-fg-disabled: #6C7396;
  --an-button-ghost-bg-default: rgba(255,255,255,0.03);
  --an-button-ghost-border-default: rgba(255,255,255,0.18);
  --an-button-ghost-fg-default: #F4F5FC;
  --an-checkbox-on-bg: #4A7CFF;
  --an-checkbox-off-border: #6C7396;
  --an-checkbox-off-fg: #6C7396;
  --an-input-bg-default: rgba(255,255,255,0.035);
  --an-input-border-default: rgba(255,255,255,0.08);
  --an-input-placeholder-fg: #6C7396;
  --an-bottomNav-fg-default: #6C7396;
  --an-bottomNav-fg-active: #F5C24B;
  --an-bottomNav-activeIndicator-color: #F5C24B;
  --an-exerciseRow-title-fg: #F4F5FC;
  --an-exerciseRow-sub-fg: #6C7396;
  --an-exerciseRow-chevron-fg: #6C7396;
  --an-exerciseRow-divider: rgba(255,255,255,0.08);
  --an-statusPill-bg: rgba(255,255,255,0.05);
  --an-statusPill-fg: #A6ADCC;
  --an-statusPill-link-fg: #7C95FF;
  --an-card-bg: rgba(255,255,255,0.035);
  --an-card-border: rgba(255,255,255,0.08);
  --an-verifiedBadge-fill: #4A7CFF;
  --an-progressRing-trackColor: rgba(255,255,255,0.07);
  --an-progressRing-coreColor: #0C0E26;
  --an-weeklyGridCell-bg: rgba(255,255,255,0.045);
  --an-recoveryMeter-track-bg: rgba(255,255,255,0.07);
  --an-recoveryMeter-label-fg: #A6ADCC;
  --an-recoveryMeter-value-fg: #F4F5FC;
  --an-recoveryMeter-delta-positive-fg: #3DD68C;
  --an-recoveryMeter-delta-negative-fg: #E45454;
  --an-recoveryMeter-empty-fg: #6C7396;
  --an-toggle-track-off: rgba(255,255,255,0.08);
  --an-calloutDanger-soft-bg: rgba(228,84,84,0.06);
  --an-calloutDanger-soft-border: rgba(228,84,84,0.2);
  --an-calloutDanger-strong-bg: rgba(228,84,84,0.08);
  --an-calloutDanger-strong-border: rgba(228,84,84,0.35);
  --an-restOverlay-scrim: rgba(4,5,15,0.92);
  --an-weeklyGridChip-str-fg: #7C95FF;
  --an-weeklyGridChip-str-bg: rgba(124,149,255,0.18);
  --an-weeklyGridChip-daily-fg: #F5C24B;
  --an-weeklyGridChip-daily-bg: rgba(245,194,75,0.18);
  --an-weeklyGridChip-walk-fg: #3DD68C;
  --an-weeklyGridChip-walk-bg: rgba(61,214,140,0.18);
  --an-weeklyGridChip-clinic-fg: #C4A0FF;
  --an-weeklyGridChip-clinic-bg: rgba(196,160,255,0.2);
  --an-weeklyGridChip-rest-fg: #6C7396;
  --an-weeklyGridChip-rest-bg: rgba(255,255,255,0.06);
  --an-assist-trigger-bg: rgba(255,255,255,0.03);
  --an-assist-trigger-border: rgba(255,255,255,0.18);
  --an-assist-trigger-fg: #A6ADCC;
  --an-assist-trigger-icon-fg: #4A7CFF;
  --an-assist-working-fg: #6C7396;
  --an-assist-draft-bg: rgba(245,194,75,0.06);
  --an-assist-draft-border: rgba(245,194,75,0.4);
  --an-assist-tag-bg: rgba(245,194,75,0.18);
  --an-assist-tag-fg: #F5C24B;
  --an-assist-action-primary-bg: linear-gradient(100deg, #4A6BFF 0%, #8158F2 52%, #F5C24B 112%);
  --an-assist-action-ghost-fg: #A6ADCC;
  --an-assist-action-dismiss-fg: #6C7396;
  --an-assist-provenance-fg: #6C7396;
}

/* journal warm-light reading skin (web only; see tokens.json → journal) */
.j-page {
  --j-bg: #FAF6EF;
  --j-ink: #211A12;
  --j-ink-soft: #4B4235;
  --j-ink-mute: #8A7E6A;
  --j-line: rgba(33,26,18,0.12);
  --j-surface: #FFFDF8;
  --j-gold: #B07A0E;
}
