/* GERADO por brand/generate.py a partir de brand/tokens.json (v1.0.0, fonte 5d37bc447227). NÃO edite à mão: mude o JSON e rode `python3 brand/generate.py`. */
/* Modos: o padrão (:root) é CLARO (site). O escuro vale quando o sistema pede (prefers-color-scheme) ou com
 * <html data-theme="dark">. <html data-theme="light"> força o claro. App e painel, que nascem escuros, usam
 * <html data-theme-default="dark">: escuro até a pessoa escolher data-theme="light". [data-theme] também vale em
 * uma seção (ex.: <section data-theme="dark"> no meio de uma página clara). */
:root {
  --casulo-font-serif: "Fraunces", "New York", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --casulo-font-sans: "Nunito", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --casulo-font-serif-variation: "SOFT" 100;
  --casulo-type-display: 600 2.5rem/2.875rem var(--casulo-font-serif);
  --casulo-type-display-size: 2.5rem;
  --casulo-type-display-line: 2.875rem;
  --casulo-type-display-weight: 600;
  --casulo-type-display-tracking: -0.01em;
  --casulo-type-title1: 600 1.75rem/2.125rem var(--casulo-font-serif);
  --casulo-type-title1-size: 1.75rem;
  --casulo-type-title1-line: 2.125rem;
  --casulo-type-title1-weight: 600;
  --casulo-type-title1-tracking: -0.005em;
  --casulo-type-title2: 600 1.375rem/1.75rem var(--casulo-font-serif);
  --casulo-type-title2-size: 1.375rem;
  --casulo-type-title2-line: 1.75rem;
  --casulo-type-title2-weight: 600;
  --casulo-type-title2-tracking: 0em;
  --casulo-type-title3: 700 1.0625rem/1.5rem var(--casulo-font-sans);
  --casulo-type-title3-size: 1.0625rem;
  --casulo-type-title3-line: 1.5rem;
  --casulo-type-title3-weight: 700;
  --casulo-type-title3-tracking: 0em;
  --casulo-type-body: 400 1.0625rem/1.625rem var(--casulo-font-sans);
  --casulo-type-body-size: 1.0625rem;
  --casulo-type-body-line: 1.625rem;
  --casulo-type-body-weight: 400;
  --casulo-type-body-tracking: 0em;
  --casulo-type-body-small: 400 0.9375rem/1.375rem var(--casulo-font-sans);
  --casulo-type-body-small-size: 0.9375rem;
  --casulo-type-body-small-line: 1.375rem;
  --casulo-type-body-small-weight: 400;
  --casulo-type-body-small-tracking: 0em;
  --casulo-type-caption: 600 0.8125rem/1.125rem var(--casulo-font-sans);
  --casulo-type-caption-size: 0.8125rem;
  --casulo-type-caption-line: 1.125rem;
  --casulo-type-caption-weight: 600;
  --casulo-type-caption-tracking: 0em;
  --casulo-type-overline: 700 0.75rem/1rem var(--casulo-font-sans);
  --casulo-type-overline-size: 0.75rem;
  --casulo-type-overline-line: 1rem;
  --casulo-type-overline-weight: 700;
  --casulo-type-overline-tracking: 0.06em;
  --casulo-type-label: 700 1.0625rem/1.375rem var(--casulo-font-sans);
  --casulo-type-label-size: 1.0625rem;
  --casulo-type-label-line: 1.375rem;
  --casulo-type-label-weight: 700;
  --casulo-type-label-tracking: 0em;
  --casulo-type-number-large: 700 2rem/2.375rem var(--casulo-font-sans);
  --casulo-type-number-large-size: 2rem;
  --casulo-type-number-large-line: 2.375rem;
  --casulo-type-number-large-weight: 700;
  --casulo-type-number-large-tracking: 0em;
  --casulo-type-number-large-features: "tnum" 1, "lnum" 1;
  --casulo-type-timer-small: 700 3rem/3.25rem var(--casulo-font-sans);
  --casulo-type-timer-small-size: 3rem;
  --casulo-type-timer-small-line: 3.25rem;
  --casulo-type-timer-small-weight: 700;
  --casulo-type-timer-small-tracking: 0em;
  --casulo-type-timer-small-features: "tnum" 1, "lnum" 1;
  --casulo-type-timer: 700 4.5rem/4.75rem var(--casulo-font-sans);
  --casulo-type-timer-size: 4.5rem;
  --casulo-type-timer-line: 4.75rem;
  --casulo-type-timer-weight: 700;
  --casulo-type-timer-tracking: 0em;
  --casulo-type-timer-features: "tnum" 1, "lnum" 1;
  --casulo-space-xxs: 4px;
  --casulo-space-xs: 8px;
  --casulo-space-sm: 12px;
  --casulo-space-md: 16px;
  --casulo-space-lg: 24px;
  --casulo-space-xl: 32px;
  --casulo-space-xxl: 48px;
  --casulo-space-xxxl: 64px;
  --casulo-layout-gutter: 16px;
  --casulo-layout-gutter-wide: 24px;
  --casulo-layout-max-content: 1120px;
  --casulo-layout-max-reading: 640px;
  --casulo-radius-xs: 8px;
  --casulo-radius-sm: 14px;
  --casulo-radius-md: 20px;
  --casulo-radius-lg: 28px;
  --casulo-radius-xl: 36px;
  --casulo-radius-pill: 999px;
  --casulo-size-target-min: 44px;
  --casulo-size-target-android: 48px;
  --casulo-size-target-primary: 56px;
  --casulo-size-target-hero: 120px;
  --casulo-size-icon-sm: 20px;
  --casulo-size-icon-md: 24px;
  --casulo-size-focus-ring: 3px;
  --casulo-size-border: 1px;
  --casulo-motion-press: 150ms;
  --casulo-motion-fade: 240ms;
  --casulo-motion-base: 420ms;
  --casulo-motion-slow: 700ms;
  --casulo-motion-breathe: 6000ms;
  --casulo-motion-breathe-scale: 1.04;
  --casulo-motion-ease: cubic-bezier(0.33, 0, 0.2, 1);
  --casulo-bg: #f6f1e8;
  --casulo-surface: #fffbf4;
  --casulo-surface-raised: #efe6d8;
  --casulo-line: #ddd2c0;
  --casulo-line-strong: #7f7666;
  --casulo-text: #23302a;
  --casulo-text-secondary: #55604f;
  --casulo-accent: #d9a24a;
  --casulo-accent-end: #c98532;
  --casulo-on-accent: #231a0c;
  --casulo-accent-text: #80530c;
  --casulo-accent-soft: #f6e6c6;
  --casulo-sage: #3f5a4a;
  --casulo-on-sage: #ffffff;
  --casulo-sage-soft: #dde6dc;
  --casulo-sage-deep: #2f4238;
  --casulo-on-sage-deep: #f4ede0;
  --casulo-ok: #2f6b45;
  --casulo-on-ok: #ffffff;
  --casulo-ok-soft: #dcebdd;
  --casulo-attention: #7f5a00;
  --casulo-on-attention: #ffffff;
  --casulo-attention-soft: #f5e7be;
  --casulo-critical: #b3392a;
  --casulo-on-critical: #ffffff;
  --casulo-critical-soft: #f8ddd7;
  --casulo-intensity-low: #2f6b45;
  --casulo-intensity-medium: #7f5a00;
  --casulo-intensity-high: #b3392a;
  --casulo-phase-waiting: #675f52;
  --casulo-phase-labor: #80530c;
  --casulo-phase-rule: #b3392a;
  --casulo-phase-no-signal: #7f5a00;
  --casulo-phase-born: #3f5a4a;
  --casulo-focus: #80530c;
  --casulo-shadow-sm: 0 1px 3px rgb(60 46 20 / 0.1);
  --casulo-shadow-md: 0 6px 20px rgb(60 46 20 / 0.12);
  --casulo-shadow-lg: 0 14px 40px rgb(60 46 20 / 0.16);
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --casulo-bg: #15120f;
    --casulo-surface: #1e1a15;
    --casulo-surface-raised: #2a251e;
    --casulo-line: #3a342b;
    --casulo-line-strong: #857a69;
    --casulo-text: #f4ede0;
    --casulo-text-secondary: #bdb2a1;
    --casulo-accent: #e6b062;
    --casulo-accent-end: #d9944e;
    --casulo-on-accent: #231a0c;
    --casulo-accent-text: #e6b062;
    --casulo-accent-soft: #35290f;
    --casulo-sage: #9cbfa9;
    --casulo-on-sage: #12201a;
    --casulo-sage-soft: #24332b;
    --casulo-sage-deep: #2f4238;
    --casulo-on-sage-deep: #f4ede0;
    --casulo-ok: #94c3a1;
    --casulo-on-ok: #0f2016;
    --casulo-ok-soft: #1f2e24;
    --casulo-attention: #ebc470;
    --casulo-on-attention: #2a1d00;
    --casulo-attention-soft: #33290f;
    --casulo-critical: #f08a78;
    --casulo-on-critical: #25100b;
    --casulo-critical-soft: #3a1c16;
    --casulo-intensity-low: #94c3a1;
    --casulo-intensity-medium: #ebc470;
    --casulo-intensity-high: #f08a78;
    --casulo-phase-waiting: #b5ac9b;
    --casulo-phase-labor: #e6b062;
    --casulo-phase-rule: #f08a78;
    --casulo-phase-no-signal: #ebc470;
    --casulo-phase-born: #9cbfa9;
    --casulo-focus: #e6b062;
    --casulo-shadow-sm: 0 1px 3px rgb(0 0 0 / 0.35);
    --casulo-shadow-md: 0 6px 20px rgb(0 0 0 / 0.4);
    --casulo-shadow-lg: 0 14px 40px rgb(0 0 0 / 0.5);
    color-scheme: dark;
  }
}

:root[data-theme-default="dark"]:not([data-theme="light"]),
[data-theme="dark"] {
  --casulo-bg: #15120f;
  --casulo-surface: #1e1a15;
  --casulo-surface-raised: #2a251e;
  --casulo-line: #3a342b;
  --casulo-line-strong: #857a69;
  --casulo-text: #f4ede0;
  --casulo-text-secondary: #bdb2a1;
  --casulo-accent: #e6b062;
  --casulo-accent-end: #d9944e;
  --casulo-on-accent: #231a0c;
  --casulo-accent-text: #e6b062;
  --casulo-accent-soft: #35290f;
  --casulo-sage: #9cbfa9;
  --casulo-on-sage: #12201a;
  --casulo-sage-soft: #24332b;
  --casulo-sage-deep: #2f4238;
  --casulo-on-sage-deep: #f4ede0;
  --casulo-ok: #94c3a1;
  --casulo-on-ok: #0f2016;
  --casulo-ok-soft: #1f2e24;
  --casulo-attention: #ebc470;
  --casulo-on-attention: #2a1d00;
  --casulo-attention-soft: #33290f;
  --casulo-critical: #f08a78;
  --casulo-on-critical: #25100b;
  --casulo-critical-soft: #3a1c16;
  --casulo-intensity-low: #94c3a1;
  --casulo-intensity-medium: #ebc470;
  --casulo-intensity-high: #f08a78;
  --casulo-phase-waiting: #b5ac9b;
  --casulo-phase-labor: #e6b062;
  --casulo-phase-rule: #f08a78;
  --casulo-phase-no-signal: #ebc470;
  --casulo-phase-born: #9cbfa9;
  --casulo-focus: #e6b062;
  --casulo-shadow-sm: 0 1px 3px rgb(0 0 0 / 0.35);
  --casulo-shadow-md: 0 6px 20px rgb(0 0 0 / 0.4);
  --casulo-shadow-lg: 0 14px 40px rgb(0 0 0 / 0.5);
  color-scheme: dark;
}

[data-theme="light"] {
  --casulo-bg: #f6f1e8;
  --casulo-surface: #fffbf4;
  --casulo-surface-raised: #efe6d8;
  --casulo-line: #ddd2c0;
  --casulo-line-strong: #7f7666;
  --casulo-text: #23302a;
  --casulo-text-secondary: #55604f;
  --casulo-accent: #d9a24a;
  --casulo-accent-end: #c98532;
  --casulo-on-accent: #231a0c;
  --casulo-accent-text: #80530c;
  --casulo-accent-soft: #f6e6c6;
  --casulo-sage: #3f5a4a;
  --casulo-on-sage: #ffffff;
  --casulo-sage-soft: #dde6dc;
  --casulo-sage-deep: #2f4238;
  --casulo-on-sage-deep: #f4ede0;
  --casulo-ok: #2f6b45;
  --casulo-on-ok: #ffffff;
  --casulo-ok-soft: #dcebdd;
  --casulo-attention: #7f5a00;
  --casulo-on-attention: #ffffff;
  --casulo-attention-soft: #f5e7be;
  --casulo-critical: #b3392a;
  --casulo-on-critical: #ffffff;
  --casulo-critical-soft: #f8ddd7;
  --casulo-intensity-low: #2f6b45;
  --casulo-intensity-medium: #7f5a00;
  --casulo-intensity-high: #b3392a;
  --casulo-phase-waiting: #675f52;
  --casulo-phase-labor: #80530c;
  --casulo-phase-rule: #b3392a;
  --casulo-phase-no-signal: #7f5a00;
  --casulo-phase-born: #3f5a4a;
  --casulo-focus: #80530c;
  --casulo-shadow-sm: 0 1px 3px rgb(60 46 20 / 0.1);
  --casulo-shadow-md: 0 6px 20px rgb(60 46 20 / 0.12);
  --casulo-shadow-lg: 0 14px 40px rgb(60 46 20 / 0.16);
  color-scheme: light;
}

/* Reduzir movimento: sem respiração, sem escala, sem deslize; fade curto. Nada pisca. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --casulo-motion-base: 240ms;
    --casulo-motion-slow: 240ms;
    --casulo-motion-breathe-scale: 1;
  }
}
