/* Foundation: reusable type, spacing, geometry and motion scales. */
:root {
  --font-ui: 'Poppins', 'Segoe UI', sans-serif;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --text-xs: .625rem;
  --text-sm: .75rem;
  --text-md: .875rem;
  --text-base: 1rem;
  --text-brand: 1.125rem;
  --text-title: 1.75rem;
  --leading-body: 1.7;
  --leading-heading: 1.25;
  --tracking-tight: -.035em;
  --tracking-caption: .18em;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.875rem;
  --space-8: 2.25rem;
  --space-9: 3rem;
  --space-10: 3.5rem;
  --border-width: 1px;
  --focus-width: 3px;
  --radius-xs: .25rem;
  --radius-sm: .5rem;
  --radius-input: .5625rem;
  --radius-button: .625rem;
  --radius-tabs: .75rem;
  --radius-card: 1.25rem;
  --radius-pill: 99rem;
  --auth-card-width: 25rem;
  --auth-card-padding: 1.5rem 1.875rem;
  --auth-page-padding: 1.875rem 2.25rem 1.5rem;
  --auth-main-padding: 3.25rem 0;
  --control-height: 3rem;
  --control-padding: .875rem;
  --touch-target: 2.75rem;
  --logo-size: 2.75rem;
  --logo-art-size: 2.375rem;
  --button-arrow-size: 1.875rem;
  --caret-height: 1rem;
  --caret-width: 1.5px;
  --wave-width: 150%;
  --wave-height: 110%;
  --wave-bottom: -60%;
  --wave-secondary-bottom: -45%;
  --glass-blur: 1.75rem;
  --motion-fast: 180ms;
  --motion-exit: 180ms;
  --motion-switch: 480ms;
  --motion-caret: 1800ms;
  --motion-logo: 7s;
  --motion-wave: 14s;
  --motion-wave-secondary: 19s;
  --motion-easing: cubic-bezier(.22,.8,.25,1);
  --motion-enter-offset: .625rem;
  --motion-exit-offset: -.3125rem;
}

/* Semantic palette: new themes override these roles, not component selectors. */
:root, [data-theme='midnight-glass'] {
  color-scheme: dark;
  --color-page: #0c1429;
  --color-page-mid: #162c4f;
  --color-page-end: #203e68;
  --color-text: #f0f5ff;
  --color-muted: #becde1;
  --color-label: #e1eafa;
  --color-link: #a9dce9;
  --color-focus: #a2d8ea;
  --color-focus-soft: #74b8d226;
  --color-card-top: #1f344ad9;
  --color-card-bottom: #101c30ed;
  --color-border: #a8cce149;
  --color-highlight: #ffffff26;
  --color-input: #07142780;
  --color-input-border: #8daec560;
  --color-placeholder: #a4b7d0;
  --color-tabs: #07152b66;
  --color-tab-active: #ffffff17;
  --color-button-start: #274c72;
  --color-button-end: #2a7184;
  --color-button-text: #edfaff;
  --color-button-border: #9dd8ed90;
  --color-button-highlight: #cceeff29;
  --color-button-hover: #c7f4ff;
  --color-button-sweep: #c5f4ff1c;
  --color-arrow: #d2f1ff13;
  --color-arrow-hover: #d2f1ff25;
  --color-arrow-border: #bcecff20;
  --color-error: #ffb7b2;
  --color-status: #c6d7ee;
  --color-wave-border: #8ed9ea55;
  --color-wave-start: #4183aa55;
  --color-wave-end: #1b3a6e20;
  --color-wave-secondary: #4d75b044;
  --color-backdrop: #020816aa;
  --shadow-card: inset 0 1px var(--color-highlight), 0 25px 75px #02081655;
  --shadow-button: inset 0 1px var(--color-button-highlight), 0 5px 18px #0412253d;
  --shadow-button-hover: inset 0 1px #cceeff40, 0 5px 22px #4aa6c02b;
  --color-logo-start: #b0e8f8;
  --color-logo-mid: #6f9be1;
  --color-logo-end: #b5a7eb;
  --color-logo-shine: #e6f9ff;
  --color-logo-screen-start: #214b68;
  --color-logo-screen-end: #12273e;
  --color-logo-toolbar: #69a1bb66;
  --color-logo-lines: #a4d5e8;
  --color-logo-lines-secondary: #81b4d099;
  --color-logo-stand: #7eadd7;
  --color-camera-start: #b5b1f3;
  --color-camera-mid: #76b9dc;
  --color-camera-end: #96e0e6;
  --color-camera-top: #9cbfee;
  --color-lens-border: #cfedf8;
  --color-lens: #1c3e59;
  --color-lens-inner: #4a7998;
  --color-flash: #e0faff;
  --color-photo-border: #cbeefb;
  --color-photo-start: #477d9e;
  --color-photo-end: #213e66;
  --color-photo-detail: #81bbce;
  --color-photo-detail-secondary: #6292be;
  --color-saved: #9ddfd7;
  --color-check: #194955;
  --shadow-logo: 0 .025em .08em #020a1c55;
  --shadow-camera: 0 .025em .07em #091b3b80;
}
