/* FoxUI 0.99.3 — landing-fx uçun yiğilgan: 43 komponent (accordion, assistant, avatar, badge, board, button, calendar, card, chart, check, chip, command, compare, context, copy, countdown, daystrip, effects, flow, input, kbd, legend, listbox, marquee, mask, menu, message, motion, nav, orb, print, prio, progress, segment, select, skeleton, slider, stat, status, table, timeslots, toolcall, yozuv), faqat işlatilgan tokenlar. Qölda tahrirlamang — npx foxui build qayta yiğadi. */
/* FoxUI tokenlari — avtomatik yaratilgan (scripts/build.mjs). Qölda tahrirlamang. */
@layer fx.reset, fx.tokens, fx.base, fx.components, fx.utilities;

@property --fx-knob-pill { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --fx-knob-density { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fx-knob-depth { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fx-knob-motion { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fx-knob-blur { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fx-knob-outline { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fx-knob-field-fill { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --fx-knob-motion-press { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fx-knob-motion-lift { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --fx-knob-motion-stagger { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --fx-knob-motion-loop { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fx-knob-page-tint { syntax: "<number>"; inherits: true; initial-value: 0; }

@layer fx.tokens {
:root {
  --fx-color-gray-25: #FCFCFD;
  --fx-color-gray-50: #F9FAFB;
  --fx-color-gray-100: #F2F4F7;
  --fx-color-gray-200: #E4E7EC;
  --fx-color-gray-300: #D0D5DD;
  --fx-color-gray-400: #98A2B3;
  --fx-color-gray-500: #667085;
  --fx-color-gray-600: #475467;
  --fx-color-gray-700: #344054;
  --fx-color-gray-800: #1D2939;
  --fx-color-gray-900: #101828;
  --fx-color-gray-950: #0C111D;
  --fx-color-neutral-25: var(--fx-color-gray-25);
  --fx-color-neutral-50: var(--fx-color-gray-50);
  --fx-color-neutral-100: var(--fx-color-gray-100);
  --fx-color-neutral-200: var(--fx-color-gray-200);
  --fx-color-neutral-300: var(--fx-color-gray-300);
  --fx-color-neutral-400: var(--fx-color-gray-400);
  --fx-color-neutral-500: var(--fx-color-gray-500);
  --fx-color-neutral-600: var(--fx-color-gray-600);
  --fx-color-neutral-700: var(--fx-color-gray-700);
  --fx-color-neutral-800: var(--fx-color-gray-800);
  --fx-color-neutral-900: var(--fx-color-gray-900);
  --fx-color-neutral-950: var(--fx-color-gray-950);
  --fx-color-pastel-yellow: #F5D77E;
  --fx-color-pastel-pink: #F3BBD4;
  --fx-color-pastel-blue: #AECBF2;
  --fx-color-pastel-coral: #F4A688;
  --fx-color-pastel-green: #BEDDB2;
  --fx-color-pastel-purple: #CFC0F3;
  --fx-color-red-50: #FEF3F2;
  --fx-color-red-300: #FDA29B;
  --fx-color-red-600: #D92D20;
  --fx-color-red-700: #B42318;
  --fx-color-red-900: #7A271A;
  --fx-color-green-50: #ECFDF3;
  --fx-color-green-300: #75E0A7;
  --fx-color-green-700: #067647;
  --fx-color-amber-50: #FFFAEB;
  --fx-color-amber-300: #FEC84B;
  --fx-color-amber-600: #DC6803;
  --fx-color-amber-700: #B54708;
  --fx-color-white: #FFFFFF;
  --fx-color-black: #000000;
  --fx-color-brand-50: var(--fx-color-neutral-50);
  --fx-color-brand-200: var(--fx-color-neutral-200);
  --fx-color-brand-300: var(--fx-color-neutral-300);
  --fx-color-brand-400: var(--fx-color-neutral-400);
  --fx-color-brand-500: var(--fx-color-neutral-500);
  --fx-color-brand-600: var(--fx-color-neutral-600);
  --fx-color-brand-700: var(--fx-color-neutral-700);
  --fx-color-brand-800: var(--fx-color-neutral-800);
  --fx-color-blue-50: #EFF8FF;
  --fx-color-blue-300: #84CAFF;
  --fx-color-blue-700: #175CD3;
  --fx-color-priority-1: #D1453B;
  --fx-color-priority-2: #EB8909;
  --fx-color-priority-3: #246FE0;
  --fx-color-priority-1-dark: #FF7066;
  --fx-color-priority-2-dark: #FF9A14;
  --fx-color-priority-3-dark: #5297FF;
  --fx-space-1: 4px;
  --fx-space-2: 8px;
  --fx-space-3: 12px;
  --fx-space-4: 16px;
  --fx-space-5: 20px;
  --fx-space-6: 24px;
  --fx-space-8: 32px;
  --fx-space-10: 40px;
  --fx-space-12: 48px;
  --fx-font-family-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-family-display: var(--fx-font-family-sans);
  --fx-font-family-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
  --fx-font-family-numeric: var(--fx-font-family-display);
  --fx-font-size-xs: 12px;
  --fx-font-size-sm: 14px;
  --fx-font-size-md: 16px;
  --fx-font-size-lg: 18px;
  --fx-font-size-xl: 20px;
  --fx-font-size-display-sm: 30px;
  --fx-font-size-display-md: 36px;
  --fx-font-size-2xl: 24px;
  --fx-font-size-display-lg: 48px;
  --fx-font-weight-regular: 400;
  --fx-font-weight-medium: 500;
  --fx-font-weight-semibold: 600;
  --fx-font-weight-bold: 700;
  --fx-font-adjust-sans: ex-height 0.52;
  --fx-font-adjust-display: var(--fx-font-adjust-sans);
  --fx-font-adjust-mono: ex-height 0.52;
  --fx-font-adjust-numeric: var(--fx-font-adjust-display);
  --fx-duration-fast: 120ms;
  --fx-duration-base: 200ms;
  --fx-duration-slow: 360ms;
  --fx-duration-pulse: 1600ms;
  --fx-duration-spin: 800ms;
  --fx-duration-instant: 60ms;
  --fx-duration-slower: 500ms;
  --fx-duration-stagger: 30ms;
  --fx-duration-shimmer: 1400ms;
  --fx-duration-indeterminate: 1600ms;
  --fx-duration-delay-skeleton: 300ms;
  --fx-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --fx-ease-emphasized: cubic-bezier(0.2, 0.7, 0.2, 1);
  --fx-ease-exit: cubic-bezier(0.4, 0, 1, 1);
  --fx-ease-enter: cubic-bezier(0, 0, 0.2, 1);
  --fx-ease-sheet: cubic-bezier(0.32, 0.72, 0, 1);
  --fx-ease-spring: linear(0, 0.044, 0.149, 0.283, 0.424, 0.558, 0.677, 0.776, 0.856, 0.917, 0.961, 0.992, 1.011, 1.022, 1.027, 1.028, 1.027, 1.023, 1.019, 1.015, 1.012, 1.008, 1.006, 1.004, 1);
  --fx-ease-bounce: linear(0, 0.064, 0.22, 0.42, 0.626, 0.812, 0.961, 1.067, 1.132, 1.16, 1.16, 1.141, 1.111, 1.077, 1.045, 1.017, 0.997, 0.983, 0.975, 0.973, 0.975, 0.979, 0.985, 0.99, 0.995, 0.999, 1.002, 1.004, 1.004, 1.004, 1.004, 1.003, 1);
  --fx-line-height-tight: 1.1;
  --fx-z-raised: 1;
  --fx-z-sticky: 100;
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-error: var(--fx-color-red-600);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-brand: var(--fx-color-neutral-900);
  --fx-text-on-error: var(--fx-color-white);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-brand-solid: var(--fx-color-neutral-900);
  --fx-bg-brand-solid-hover: var(--fx-color-neutral-700);
  --fx-bg-brand-solid-active: var(--fx-color-neutral-600);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle: var(--fx-color-neutral-100);
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-error-solid: var(--fx-color-red-600);
  --fx-bg-error-solid-hover: var(--fx-color-red-700);
  --fx-bg-error-solid-active: color-mix(in oklab, var(--fx-color-red-700) 70%, var(--fx-color-red-900));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-scrollbar-track: transparent;
  --fx-fg-success: var(--fx-color-green-700);
  --fx-fg-warning: var(--fx-color-amber-700);
  --fx-fg-error: var(--fx-color-red-700);
  --fx-fg-info: var(--fx-color-blue-700);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-border-color-focus: var(--fx-color-neutral-900);
  --fx-border-color-error: var(--fx-color-red-600);
  --fx-border-width-default: 1px;
  --fx-border-width-focus: 2px;
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-knob-pill: 0;
  --fx-knob-density: 1;
  --fx-knob-depth: 1;
  --fx-knob-motion: 1;
  --fx-knob-blur: 1;
  --fx-knob-outline: 1;
  --fx-knob-field-fill: 0;
  --fx-knob-motion-press: 1;
  --fx-knob-motion-lift: 0;
  --fx-knob-motion-stagger: 0;
  --fx-knob-motion-loop: 1;
  --fx-knob-page-tint: 0;
  --fx-radius-control: 8px;
  --fx-radius-nav: 6px;
  --fx-radius-field-multiline: 8px;
  --fx-radius-surface: 12px;
  --fx-radius-overlay: 16px;
  --fx-radius-badge: 6px;
  --fx-radius-tag: var(--fx-radius-badge);
  --fx-radius-circle: 9999px;
  --fx-radius-checkbox-ratio: 0.25;
  --fx-radius-avatar-ratio: 0.28;
  --fx-radius-pill: 999px;
  --fx-size-control-sm: 36px;
  --fx-size-control-md: 44px;
  --fx-size-control-lg: 52px;
  --fx-size-checkbox: 20px;
  --fx-size-switch-track: 40px;
  --fx-size-min-target: 24px;
  --fx-size-touch-target: 44px;
  --fx-size-avatar-sm: 22px;
  --fx-size-avatar-md: 36px;
  --fx-size-avatar-lg: 56px;
  --fx-size-status-dot: 10px;
  --fx-size-status-dot-sm: 8px;
  --fx-size-icon-sm: 16px;
  --fx-size-icon-md: 20px;
  --fx-size-icon-lg: 24px;
  --fx-size-topbar: 60px;
  --fx-nav-width: 256px;
  --fx-nav-width-collapsed: 60px;
  --fx-nav-item-height: 40px;
  --fx-nav-subitem-height: 34px;
  --fx-dialog-width: 480px;
  --fx-popover-width: 320px;
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-brand: var(--fx-color-neutral-500);
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-risk: var(--fx-bg-error-solid);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-motion-shift-sm: var(--fx-space-1);
  --fx-motion-shift-md: var(--fx-space-2);
  --fx-motion-shift-lg: var(--fx-space-6);
  --fx-motion-scale-enter: 0.96;
  --fx-motion-scale-press: 0.97;
  --fx-motion-lift: -2px;
  --fx-priority-1: var(--fx-color-priority-1);
  --fx-priority-2: var(--fx-color-priority-2);
  --fx-priority-3: var(--fx-color-priority-3);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-scheme="light"] {
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-error: var(--fx-color-red-600);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-brand: var(--fx-color-neutral-900);
  --fx-text-on-error: var(--fx-color-white);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-brand-solid: var(--fx-color-neutral-900);
  --fx-bg-brand-solid-hover: var(--fx-color-neutral-700);
  --fx-bg-brand-solid-active: var(--fx-color-neutral-600);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle: var(--fx-color-neutral-100);
  --fx-bg-error-solid: var(--fx-color-red-600);
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-fg-success: var(--fx-color-green-700);
  --fx-fg-warning: var(--fx-color-amber-700);
  --fx-fg-error: var(--fx-color-red-700);
  --fx-fg-info: var(--fx-color-blue-700);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-border-color-focus: var(--fx-color-neutral-900);
  --fx-border-color-error: var(--fx-color-red-600);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-brand: var(--fx-color-neutral-500);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-priority-1: var(--fx-color-priority-1);
  --fx-priority-2: var(--fx-color-priority-2);
  --fx-priority-3: var(--fx-color-priority-3);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-risk: var(--fx-bg-error-solid);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-fx-scheme="light"]) {
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-brand: var(--fx-color-neutral-900);
    --fx-text-error: var(--fx-color-red-300);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-text-brand: var(--fx-color-neutral-50);
    --fx-text-on-error: var(--fx-color-white);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-brand-solid: var(--fx-color-neutral-50);
    --fx-bg-brand-solid-hover: var(--fx-color-neutral-200);
    --fx-bg-brand-solid-active: var(--fx-color-neutral-300);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-bg-error-solid: var(--fx-color-red-600);
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-fg-success: var(--fx-color-green-300);
    --fx-fg-warning: var(--fx-color-amber-300);
    --fx-fg-error: var(--fx-color-red-300);
    --fx-fg-info: var(--fx-color-blue-300);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-border-color-focus: var(--fx-color-neutral-50);
    --fx-border-color-error: var(--fx-color-red-300);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-brand: var(--fx-color-neutral-400);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-priority-1: var(--fx-color-priority-1-dark);
    --fx-priority-2: var(--fx-color-priority-2-dark);
    --fx-priority-3: var(--fx-color-priority-3-dark);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-risk: var(--fx-bg-error-solid);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-scheme="dark"] {
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-brand: var(--fx-color-neutral-900);
  --fx-text-error: var(--fx-color-red-300);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-text-brand: var(--fx-color-neutral-50);
  --fx-text-on-error: var(--fx-color-white);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-brand-solid: var(--fx-color-neutral-50);
  --fx-bg-brand-solid-hover: var(--fx-color-neutral-200);
  --fx-bg-brand-solid-active: var(--fx-color-neutral-300);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-bg-error-solid: var(--fx-color-red-600);
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-fg-success: var(--fx-color-green-300);
  --fx-fg-warning: var(--fx-color-amber-300);
  --fx-fg-error: var(--fx-color-red-300);
  --fx-fg-info: var(--fx-color-blue-300);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-border-color-focus: var(--fx-color-neutral-50);
  --fx-border-color-error: var(--fx-color-red-300);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-brand: var(--fx-color-neutral-400);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-priority-1: var(--fx-color-priority-1-dark);
  --fx-priority-2: var(--fx-color-priority-2-dark);
  --fx-priority-3: var(--fx-color-priority-3-dark);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-risk: var(--fx-bg-error-solid);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="graphite"] {
  --fx-color-neutral-25: var(--fx-color-gray-25);
  --fx-color-neutral-50: var(--fx-color-gray-50);
  --fx-color-neutral-100: var(--fx-color-gray-100);
  --fx-color-neutral-200: var(--fx-color-gray-200);
  --fx-color-neutral-300: var(--fx-color-gray-300);
  --fx-color-neutral-400: var(--fx-color-gray-400);
  --fx-color-neutral-500: var(--fx-color-gray-500);
  --fx-color-neutral-600: var(--fx-color-gray-600);
  --fx-color-neutral-700: var(--fx-color-gray-700);
  --fx-color-neutral-800: var(--fx-color-gray-800);
  --fx-color-neutral-900: var(--fx-color-gray-900);
  --fx-color-neutral-950: var(--fx-color-gray-950);
  --fx-color-brand-50: var(--fx-color-neutral-50);
  --fx-color-brand-200: var(--fx-color-neutral-200);
  --fx-color-brand-300: var(--fx-color-neutral-300);
  --fx-color-brand-400: var(--fx-color-neutral-400);
  --fx-color-brand-500: var(--fx-color-neutral-500);
  --fx-color-brand-600: var(--fx-color-neutral-600);
  --fx-color-brand-700: var(--fx-color-neutral-700);
  --fx-color-brand-800: var(--fx-color-neutral-800);
  --fx-color-pastel-yellow: #F5D77E;
  --fx-color-pastel-pink: #F3BBD4;
  --fx-color-pastel-blue: #AECBF2;
  --fx-color-pastel-coral: #F4A688;
  --fx-color-pastel-green: #BEDDB2;
  --fx-color-pastel-purple: #CFC0F3;
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-brand: var(--fx-color-neutral-900);
  --fx-bg-brand-solid: var(--fx-color-neutral-900);
  --fx-bg-brand-solid-hover: var(--fx-color-neutral-700);
  --fx-bg-brand-solid-active: var(--fx-color-neutral-600);
  --fx-bg-brand-subtle: var(--fx-color-neutral-100);
  --fx-border-color-focus: var(--fx-color-neutral-900);
  --fx-viz-brand: var(--fx-color-neutral-500);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-error: var(--fx-color-red-600);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="graphite"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-900);
    --fx-text-brand: var(--fx-color-neutral-50);
    --fx-bg-brand-solid: var(--fx-color-neutral-50);
    --fx-bg-brand-solid-hover: var(--fx-color-neutral-200);
    --fx-bg-brand-solid-active: var(--fx-color-neutral-300);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-neutral-50);
    --fx-viz-brand: var(--fx-color-neutral-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-error: var(--fx-color-red-300);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="graphite"][data-fx-scheme="dark"], [data-fx-theme="graphite"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="graphite"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-900);
  --fx-text-brand: var(--fx-color-neutral-50);
  --fx-bg-brand-solid: var(--fx-color-neutral-50);
  --fx-bg-brand-solid-hover: var(--fx-color-neutral-200);
  --fx-bg-brand-solid-active: var(--fx-color-neutral-300);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-neutral-50);
  --fx-viz-brand: var(--fx-color-neutral-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-error: var(--fx-color-red-300);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="amber"], [data-fx-theme="amber"][data-fx-scheme="light"], [data-fx-theme="amber"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #FDFBF8;
  --fx-color-neutral-50: #F9F6F3;
  --fx-color-neutral-100: #F2F0ED;
  --fx-color-neutral-200: #E7E4E1;
  --fx-color-neutral-300: #D9D3CD;
  --fx-color-neutral-400: #A8A29C;
  --fx-color-neutral-500: #706B65;
  --fx-color-neutral-600: #58534D;
  --fx-color-neutral-700: #45403B;
  --fx-color-neutral-800: #2B2722;
  --fx-color-neutral-900: #1D1914;
  --fx-color-neutral-950: #15110C;
  --fx-color-brand-50: #FFF3E6;
  --fx-color-brand-200: #F8CD9D;
  --fx-color-brand-300: #E8B273;
  --fx-color-brand-400: #D6933C;
  --fx-color-brand-500: #F59E0B;
  --fx-color-brand-600: #A06604;
  --fx-color-brand-700: #865400;
  --fx-color-brand-800: #6C4301;
  --fx-color-pastel-yellow: #FED2A0;
  --fx-color-pastel-pink: #FFBBD1;
  --fx-color-pastel-blue: #B3D4FE;
  --fx-color-pastel-coral: #FFC0A9;
  --fx-color-pastel-green: #BBDEA4;
  --fx-color-pastel-purple: #D9C6FF;
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-700);
  --fx-bg-brand-solid: var(--fx-color-brand-500);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-400);
  --fx-bg-brand-solid-active: var(--fx-color-brand-300);
  --fx-bg-brand-subtle: var(--fx-color-brand-50);
  --fx-border-color-focus: var(--fx-color-brand-600);
  --fx-viz-brand: var(--fx-color-brand-700);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="amber"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-950);
    --fx-text-brand: var(--fx-color-brand-300);
    --fx-bg-brand-solid: var(--fx-color-brand-400);
    --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
    --fx-bg-brand-solid-active: var(--fx-color-brand-200);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-brand-400);
    --fx-viz-brand: var(--fx-color-brand-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="amber"][data-fx-scheme="dark"], [data-fx-theme="amber"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="amber"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-300);
  --fx-bg-brand-solid: var(--fx-color-brand-400);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
  --fx-bg-brand-solid-active: var(--fx-color-brand-200);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-brand-400);
  --fx-viz-brand: var(--fx-color-brand-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="amethyst"], [data-fx-theme="amethyst"][data-fx-scheme="light"], [data-fx-theme="amethyst"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #FBFAFE;
  --fx-color-neutral-50: #F7F6FA;
  --fx-color-neutral-100: #F0EFF3;
  --fx-color-neutral-200: #E4E4E8;
  --fx-color-neutral-300: #D4D3DB;
  --fx-color-neutral-400: #A3A2A9;
  --fx-color-neutral-500: #6C6B72;
  --fx-color-neutral-600: #54535A;
  --fx-color-neutral-700: #414047;
  --fx-color-neutral-800: #28272D;
  --fx-color-neutral-900: #19191E;
  --fx-color-neutral-950: #121116;
  --fx-color-brand-50: #F5F3FF;
  --fx-color-brand-200: #D7CEFE;
  --fx-color-brand-300: #C0B0FF;
  --fx-color-brand-400: #A88DFE;
  --fx-color-brand-500: #9466FF;
  --fx-color-brand-600: #7C3AED;
  --fx-color-brand-700: #693DC2;
  --fx-color-brand-800: #54329B;
  --fx-color-pastel-yellow: #F5D983;
  --fx-color-pastel-pink: #FABBDE;
  --fx-color-pastel-blue: #B6D3FF;
  --fx-color-pastel-coral: #FEC0AD;
  --fx-color-pastel-green: #B4DFAA;
  --fx-color-pastel-purple: #D2C8FF;
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-brand: var(--fx-color-brand-700);
  --fx-bg-brand-solid: var(--fx-color-brand-600);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-700);
  --fx-bg-brand-solid-active: var(--fx-color-brand-800);
  --fx-bg-brand-subtle: var(--fx-color-brand-50);
  --fx-border-color-focus: var(--fx-color-brand-600);
  --fx-viz-brand: var(--fx-color-brand-700);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="amethyst"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-950);
    --fx-text-brand: var(--fx-color-brand-300);
    --fx-bg-brand-solid: var(--fx-color-brand-400);
    --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
    --fx-bg-brand-solid-active: var(--fx-color-brand-200);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-brand-400);
    --fx-viz-brand: var(--fx-color-brand-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="amethyst"][data-fx-scheme="dark"], [data-fx-theme="amethyst"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="amethyst"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-300);
  --fx-bg-brand-solid: var(--fx-color-brand-400);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
  --fx-bg-brand-solid-active: var(--fx-color-brand-200);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-brand-400);
  --fx-viz-brand: var(--fx-color-brand-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="emerald"], [data-fx-theme="emerald"][data-fx-scheme="light"], [data-fx-theme="emerald"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #F8FCFA;
  --fx-color-neutral-50: #F4F8F6;
  --fx-color-neutral-100: #EDF1EF;
  --fx-color-neutral-200: #E2E6E3;
  --fx-color-neutral-300: #CED7D2;
  --fx-color-neutral-400: #9DA5A1;
  --fx-color-neutral-500: #666E6A;
  --fx-color-neutral-600: #4F5652;
  --fx-color-neutral-700: #3C433F;
  --fx-color-neutral-800: #232926;
  --fx-color-neutral-900: #151B18;
  --fx-color-neutral-950: #0D1310;
  --fx-color-brand-50: #DFFEEE;
  --fx-color-brand-200: #B2E3CB;
  --fx-color-brand-300: #8ECEAF;
  --fx-color-brand-400: #63B791;
  --fx-color-brand-500: #32A176;
  --fx-color-brand-600: #059669;
  --fx-color-brand-700: #107250;
  --fx-color-brand-800: #105B40;
  --fx-color-pastel-yellow: #EDDC85;
  --fx-color-pastel-pink: #FDBBD9;
  --fx-color-pastel-blue: #B3D4FE;
  --fx-color-pastel-coral: #FEC0AD;
  --fx-color-pastel-green: #9DE3C1;
  --fx-color-pastel-purple: #D9C6FF;
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-700);
  --fx-bg-brand-solid: var(--fx-color-brand-600);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-500);
  --fx-bg-brand-solid-active: var(--fx-color-brand-400);
  --fx-bg-brand-subtle: var(--fx-color-brand-50);
  --fx-border-color-focus: var(--fx-color-brand-600);
  --fx-viz-brand: var(--fx-color-brand-700);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="emerald"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-950);
    --fx-text-brand: var(--fx-color-brand-300);
    --fx-bg-brand-solid: var(--fx-color-brand-400);
    --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
    --fx-bg-brand-solid-active: var(--fx-color-brand-200);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-brand-400);
    --fx-viz-brand: var(--fx-color-brand-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="emerald"][data-fx-scheme="dark"], [data-fx-theme="emerald"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="emerald"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-300);
  --fx-bg-brand-solid: var(--fx-color-brand-400);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
  --fx-bg-brand-solid-active: var(--fx-color-brand-200);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-brand-400);
  --fx-viz-brand: var(--fx-color-brand-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="hilos"], [data-fx-theme="hilos"][data-fx-scheme="light"], [data-fx-theme="hilos"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #FAF8F4;
  --fx-color-neutral-50: #F4F1EC;
  --fx-color-neutral-100: #EFEAE3;
  --fx-color-neutral-200: #E9E4DC;
  --fx-color-neutral-300: #D9D4CC;
  --fx-color-neutral-400: #A6A099;
  --fx-color-neutral-500: #706B64;
  --fx-color-neutral-600: #57524C;
  --fx-color-neutral-700: #433F39;
  --fx-color-neutral-800: #2B2721;
  --fx-color-neutral-900: #1F1C18;
  --fx-color-neutral-950: #15130F;
  --fx-color-brand-50: var(--fx-color-neutral-50);
  --fx-color-brand-200: var(--fx-color-neutral-200);
  --fx-color-brand-300: var(--fx-color-neutral-300);
  --fx-color-brand-400: var(--fx-color-neutral-400);
  --fx-color-brand-500: var(--fx-color-neutral-500);
  --fx-color-brand-600: var(--fx-color-neutral-600);
  --fx-color-brand-700: var(--fx-color-neutral-700);
  --fx-color-brand-800: var(--fx-color-neutral-800);
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-brand: var(--fx-color-neutral-900);
  --fx-bg-brand-solid: var(--fx-color-neutral-900);
  --fx-bg-brand-solid-hover: var(--fx-color-neutral-700);
  --fx-bg-brand-solid-active: var(--fx-color-neutral-600);
  --fx-bg-brand-subtle: var(--fx-color-neutral-100);
  --fx-border-color-focus: var(--fx-color-neutral-900);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-brand: var(--fx-color-neutral-500);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="hilos"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-900);
    --fx-text-brand: var(--fx-color-neutral-50);
    --fx-bg-brand-solid: var(--fx-color-neutral-50);
    --fx-bg-brand-solid-hover: var(--fx-color-neutral-200);
    --fx-bg-brand-solid-active: var(--fx-color-neutral-300);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-neutral-50);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-brand: var(--fx-color-neutral-400);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="hilos"][data-fx-scheme="dark"], [data-fx-theme="hilos"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="hilos"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-900);
  --fx-text-brand: var(--fx-color-neutral-50);
  --fx-bg-brand-solid: var(--fx-color-neutral-50);
  --fx-bg-brand-solid-hover: var(--fx-color-neutral-200);
  --fx-bg-brand-solid-active: var(--fx-color-neutral-300);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-neutral-50);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-brand: var(--fx-color-neutral-400);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="ocean"], [data-fx-theme="ocean"][data-fx-scheme="light"], [data-fx-theme="ocean"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #F9FBFF;
  --fx-color-neutral-50: #F5F7FA;
  --fx-color-neutral-100: #EEF0F4;
  --fx-color-neutral-200: #E3E5E8;
  --fx-color-neutral-300: #D0D4DC;
  --fx-color-neutral-400: #9FA3AA;
  --fx-color-neutral-500: #686C72;
  --fx-color-neutral-600: #51545A;
  --fx-color-neutral-700: #3E4147;
  --fx-color-neutral-800: #25282D;
  --fx-color-neutral-900: #171A1F;
  --fx-color-neutral-950: #0F1217;
  --fx-color-brand-50: #F0F5FF;
  --fx-color-brand-200: #C1D7FF;
  --fx-color-brand-300: #9CBEFE;
  --fx-color-brand-400: #71A1FE;
  --fx-color-brand-500: #4783FF;
  --fx-color-brand-600: #2563EB;
  --fx-color-brand-700: #2858BF;
  --fx-color-brand-800: #204799;
  --fx-color-pastel-yellow: #F5D983;
  --fx-color-pastel-pink: #F8BBE1;
  --fx-color-pastel-blue: #BAD2FE;
  --fx-color-pastel-coral: #FEC0AD;
  --fx-color-pastel-green: #B4DFAA;
  --fx-color-pastel-purple: #D5C7FE;
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-brand: var(--fx-color-brand-700);
  --fx-bg-brand-solid: var(--fx-color-brand-600);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-700);
  --fx-bg-brand-solid-active: var(--fx-color-brand-800);
  --fx-bg-brand-subtle: var(--fx-color-brand-50);
  --fx-border-color-focus: var(--fx-color-brand-600);
  --fx-viz-brand: var(--fx-color-brand-700);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="ocean"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-950);
    --fx-text-brand: var(--fx-color-brand-300);
    --fx-bg-brand-solid: var(--fx-color-brand-400);
    --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
    --fx-bg-brand-solid-active: var(--fx-color-brand-200);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-brand-400);
    --fx-viz-brand: var(--fx-color-brand-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="ocean"][data-fx-scheme="dark"], [data-fx-theme="ocean"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="ocean"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-300);
  --fx-bg-brand-solid: var(--fx-color-brand-400);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
  --fx-bg-brand-solid-active: var(--fx-color-brand-200);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-brand-400);
  --fx-viz-brand: var(--fx-color-brand-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="pdp"], [data-fx-theme="pdp"][data-fx-scheme="light"], [data-fx-theme="pdp"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #FBFBFB;
  --fx-color-neutral-50: #F7F7F7;
  --fx-color-neutral-100: #F0F0F0;
  --fx-color-neutral-200: #E1E1E1;
  --fx-color-neutral-300: #C7C7C7;
  --fx-color-neutral-400: #9E9E9E;
  --fx-color-neutral-500: #767676;
  --fx-color-neutral-600: #5B5B5B;
  --fx-color-neutral-700: #424242;
  --fx-color-neutral-800: #2E2E2E;
  --fx-color-neutral-900: #222222;
  --fx-color-neutral-950: #141414;
  --fx-color-brand-50: #E7FFE4;
  --fx-color-brand-200: #7EFA77;
  --fx-color-brand-300: #63E95D;
  --fx-color-brand-400: #40D63C;
  --fx-color-brand-500: #00B533;
  --fx-color-brand-600: #02A307;
  --fx-color-brand-700: #028405;
  --fx-color-brand-800: #026503;
  --fx-text-primary: #141414;
  --fx-text-secondary: var(--fx-color-neutral-700);
  --fx-text-tertiary: var(--fx-color-neutral-600);
  --fx-text-on-brand: #FFFFFF;
  --fx-text-brand: #00A603;
  --fx-text-error: #CC3339;
  --fx-bg-page: #F5F5F5;
  --fx-bg-surface: #FFFFFF;
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-brand-solid: #00B533;
  --fx-bg-brand-solid-hover: #02A307;
  --fx-bg-brand-solid-active: #049100;
  --fx-bg-brand-subtle: #E9FED8;
  --fx-border-color-focus: #00A603;
  --fx-viz-brand: #00B533;
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="pdp"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-200);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-on-brand: #141414;
    --fx-text-brand: #BDFF00;
    --fx-text-error: #FE726E;
    --fx-bg-page: #141414;
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-brand-solid: #BDFF00;
    --fx-bg-brand-solid-hover: #CFFF80;
    --fx-bg-brand-solid-active: #E1FEBB;
    --fx-bg-brand-subtle: color-mix(in oklab, #BDFF00 12%, var(--fx-bg-surface));
    --fx-border-color-focus: #BDFF00;
    --fx-viz-brand: #BDFF00;
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="pdp"][data-fx-scheme="dark"], [data-fx-theme="pdp"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="pdp"]:not([data-fx-scheme="light"]) {
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-200);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-on-brand: #141414;
  --fx-text-brand: #BDFF00;
  --fx-text-error: #FE726E;
  --fx-bg-page: #141414;
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-brand-solid: #BDFF00;
  --fx-bg-brand-solid-hover: #CFFF80;
  --fx-bg-brand-solid-active: #E1FEBB;
  --fx-bg-brand-subtle: color-mix(in oklab, #BDFF00 12%, var(--fx-bg-surface));
  --fx-border-color-focus: #BDFF00;
  --fx-viz-brand: #BDFF00;
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="rose"], [data-fx-theme="rose"][data-fx-scheme="light"], [data-fx-theme="rose"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #FEFAFA;
  --fx-color-neutral-50: #FAF5F5;
  --fx-color-neutral-100: #F3EFEF;
  --fx-color-neutral-200: #E8E3E3;
  --fx-color-neutral-300: #DBD1D1;
  --fx-color-neutral-400: #AAA0A0;
  --fx-color-neutral-500: #726969;
  --fx-color-neutral-600: #5A5252;
  --fx-color-neutral-700: #473F3F;
  --fx-color-neutral-800: #2D2626;
  --fx-color-neutral-900: #1E1718;
  --fx-color-neutral-950: #161010;
  --fx-color-brand-50: #FEF2F2;
  --fx-color-brand-200: #FFC5C6;
  --fx-color-brand-300: #FE9FA3;
  --fx-color-brand-400: #FC6E7A;
  --fx-color-brand-500: #ED415A;
  --fx-color-brand-600: #E11D48;
  --fx-color-brand-700: #AE1F39;
  --fx-color-brand-800: #8B1B2E;
  --fx-color-pastel-yellow: #FDD583;
  --fx-color-pastel-pink: #FEBAD6;
  --fx-color-pastel-blue: #B3D4FE;
  --fx-color-pastel-coral: #FFBEBF;
  --fx-color-pastel-green: #B4DFAA;
  --fx-color-pastel-purple: #E0C3FD;
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-brand: var(--fx-color-brand-700);
  --fx-bg-brand-solid: var(--fx-color-brand-600);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-700);
  --fx-bg-brand-solid-active: var(--fx-color-brand-800);
  --fx-bg-brand-subtle: var(--fx-color-brand-50);
  --fx-border-color-focus: var(--fx-color-brand-600);
  --fx-viz-brand: var(--fx-color-brand-700);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="rose"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-950);
    --fx-text-brand: var(--fx-color-brand-300);
    --fx-bg-brand-solid: var(--fx-color-brand-400);
    --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
    --fx-bg-brand-solid-active: var(--fx-color-brand-200);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-brand-400);
    --fx-viz-brand: var(--fx-color-brand-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="rose"][data-fx-scheme="dark"], [data-fx-theme="rose"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="rose"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-300);
  --fx-bg-brand-solid: var(--fx-color-brand-400);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
  --fx-bg-brand-solid-active: var(--fx-color-brand-200);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-brand-400);
  --fx-viz-brand: var(--fx-color-brand-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="siyoh"], [data-fx-theme="siyoh"][data-fx-scheme="light"], [data-fx-theme="siyoh"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #FCFBFA;
  --fx-color-neutral-50: #F9F8F7;
  --fx-color-neutral-100: #F0EFED;
  --fx-color-neutral-200: #E6E5E3;
  --fx-color-neutral-300: #D4D3CF;
  --fx-color-neutral-400: #ADA9A3;
  --fx-color-neutral-500: #6F6C67;
  --fx-color-neutral-600: #5F5E59;
  --fx-color-neutral-700: #4A4945;
  --fx-color-neutral-800: #383836;
  --fx-color-neutral-900: #202020;
  --fx-color-neutral-950: #191919;
  --fx-color-brand-50: #F5F0FE;
  --fx-color-brand-200: #D5CFFE;
  --fx-color-brand-300: #C4ADFA;
  --fx-color-brand-400: #AC8CF8;
  --fx-color-brand-500: #8A5CF5;
  --fx-color-brand-600: #7C49F4;
  --fx-color-brand-700: #6E36F3;
  --fx-color-brand-800: #50359A;
  --fx-color-pastel-yellow: #F5D983;
  --fx-color-pastel-pink: #FABBDF;
  --fx-color-pastel-blue: #B6D3FF;
  --fx-color-pastel-coral: #FEC0AD;
  --fx-color-pastel-green: #B4DFAA;
  --fx-color-pastel-purple: #D0C9FE;
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-brand: var(--fx-color-brand-600);
  --fx-bg-brand-solid: var(--fx-color-brand-600);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-700);
  --fx-bg-brand-solid-active: var(--fx-color-brand-800);
  --fx-bg-brand-subtle: var(--fx-color-brand-50);
  --fx-border-color-focus: var(--fx-color-brand-500);
  --fx-viz-brand: var(--fx-color-brand-500);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="siyoh"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-white);
    --fx-text-brand: var(--fx-color-brand-400);
    --fx-bg-brand-solid: var(--fx-color-brand-600);
    --fx-bg-brand-solid-hover: var(--fx-color-brand-700);
    --fx-bg-brand-solid-active: var(--fx-color-brand-800);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 30%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-brand-500);
    --fx-viz-brand: var(--fx-color-brand-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="siyoh"][data-fx-scheme="dark"], [data-fx-theme="siyoh"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="siyoh"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-white);
  --fx-text-brand: var(--fx-color-brand-400);
  --fx-bg-brand-solid: var(--fx-color-brand-600);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-700);
  --fx-bg-brand-solid-active: var(--fx-color-brand-800);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 30%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-brand-500);
  --fx-viz-brand: var(--fx-color-brand-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-theme="sunset"], [data-fx-theme="sunset"][data-fx-scheme="light"], [data-fx-theme="sunset"] [data-fx-scheme="light"]:not([data-fx-theme]) {
  --fx-color-neutral-25: #FEFAF8;
  --fx-color-neutral-50: #FAF6F4;
  --fx-color-neutral-100: #F3EFED;
  --fx-color-neutral-200: #E8E3E2;
  --fx-color-neutral-300: #DBD2CF;
  --fx-color-neutral-400: #A9A19E;
  --fx-color-neutral-500: #726A67;
  --fx-color-neutral-600: #5A524F;
  --fx-color-neutral-700: #463F3D;
  --fx-color-neutral-800: #2D2624;
  --fx-color-neutral-900: #1E1816;
  --fx-color-neutral-950: #16100E;
  --fx-color-brand-50: #FEF2EE;
  --fx-color-brand-200: #FEC8B3;
  --fx-color-brand-300: #FFA381;
  --fx-color-brand-400: #F07F53;
  --fx-color-brand-500: #EA580C;
  --fx-color-brand-600: #C34601;
  --fx-color-brand-700: #A23901;
  --fx-color-brand-800: #832D01;
  --fx-color-pastel-yellow: #FAD683;
  --fx-color-pastel-pink: #FFBAD4;
  --fx-color-pastel-blue: #B3D4FE;
  --fx-color-pastel-coral: #FFC0A9;
  --fx-color-pastel-green: #B4DFAA;
  --fx-color-pastel-purple: #D9C6FF;
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-700);
  --fx-bg-brand-solid: var(--fx-color-brand-500);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-400);
  --fx-bg-brand-solid-active: var(--fx-color-brand-300);
  --fx-bg-brand-subtle: var(--fx-color-brand-50);
  --fx-border-color-focus: var(--fx-color-brand-500);
  --fx-viz-brand: var(--fx-color-brand-700);
  --fx-text-primary: var(--fx-color-neutral-900);
  --fx-text-secondary: var(--fx-color-neutral-600);
  --fx-text-tertiary: var(--fx-color-neutral-500);
  --fx-text-disabled: var(--fx-color-neutral-400);
  --fx-text-on-category: var(--fx-color-neutral-900);
  --fx-text-on-static-light: var(--fx-color-neutral-900);
  --fx-bg-page: color-mix(in oklab, var(--fx-color-neutral-100) calc(var(--fx-knob-page-tint) * 100%), var(--fx-color-neutral-25));
  --fx-bg-surface: var(--fx-color-white);
  --fx-bg-subtle: var(--fx-color-neutral-50);
  --fx-bg-muted: var(--fx-color-neutral-100);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: var(--fx-color-red-50);
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: var(--fx-color-green-50);
  --fx-bg-warning-subtle: var(--fx-color-amber-50);
  --fx-bg-overlay: var(--fx-color-neutral-950);
  --fx-bg-category-yellow: var(--fx-color-pastel-yellow);
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 20%, var(--fx-bg-page));
  --fx-bg-category-pink: var(--fx-color-pastel-pink);
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 20%, var(--fx-bg-page));
  --fx-bg-category-blue: var(--fx-color-pastel-blue);
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 20%, var(--fx-bg-page));
  --fx-bg-category-coral: var(--fx-color-pastel-coral);
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 20%, var(--fx-bg-page));
  --fx-bg-category-green: var(--fx-color-pastel-green);
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 20%, var(--fx-bg-page));
  --fx-bg-category-purple: var(--fx-color-pastel-purple);
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 20%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: var(--fx-color-blue-50);
  --fx-bg-static-light: var(--fx-color-neutral-25);
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-200);
  --fx-border-color-strong: var(--fx-color-neutral-300);
  --fx-shadow-color: var(--fx-color-neutral-900);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-300);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
@media (prefers-color-scheme: dark) {
  [data-fx-theme="sunset"]:not([data-fx-scheme="light"], [data-fx-scheme="light"] *) {
    --fx-text-on-brand: var(--fx-color-neutral-950);
    --fx-text-brand: var(--fx-color-brand-300);
    --fx-bg-brand-solid: var(--fx-color-brand-400);
    --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
    --fx-bg-brand-solid-active: var(--fx-color-brand-200);
    --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
    --fx-border-color-focus: var(--fx-color-brand-400);
    --fx-viz-brand: var(--fx-color-brand-400);
    --fx-text-primary: var(--fx-color-neutral-50);
    --fx-text-secondary: var(--fx-color-neutral-300);
    --fx-text-tertiary: var(--fx-color-neutral-400);
    --fx-text-disabled: var(--fx-color-neutral-600);
    --fx-text-on-category: var(--fx-color-neutral-50);
    --fx-bg-page: var(--fx-color-neutral-950);
    --fx-bg-surface: var(--fx-color-neutral-900);
    --fx-bg-subtle: var(--fx-color-neutral-900);
    --fx-bg-muted: var(--fx-color-neutral-800);
    --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
    --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
    --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
    --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
    --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
    --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
    --fx-bg-overlay: var(--fx-color-black);
    --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
    --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
    --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
    --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
    --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
    --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
    --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
    --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
    --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
    --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
    --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
    --fx-selection-text: var(--fx-text-primary);
    --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
    --fx-border-color-default: var(--fx-color-neutral-800);
    --fx-border-color-strong: var(--fx-color-neutral-700);
    --fx-shadow-color: var(--fx-color-black);
    --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
    --fx-viz-accent: var(--fx-color-pastel-yellow);
    --fx-viz-context: var(--fx-color-neutral-600);
    --fx-viz-grid: var(--fx-border-color-default);
    --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
    --fx-priority-4: var(--fx-border-color-strong);
  }
}
[data-fx-theme="sunset"][data-fx-scheme="dark"], [data-fx-theme="sunset"] [data-fx-scheme="dark"]:not([data-fx-theme]), [data-fx-scheme="dark"] [data-fx-theme="sunset"]:not([data-fx-scheme="light"]) {
  --fx-text-on-brand: var(--fx-color-neutral-950);
  --fx-text-brand: var(--fx-color-brand-300);
  --fx-bg-brand-solid: var(--fx-color-brand-400);
  --fx-bg-brand-solid-hover: var(--fx-color-brand-300);
  --fx-bg-brand-solid-active: var(--fx-color-brand-200);
  --fx-bg-brand-subtle: color-mix(in oklab, var(--fx-bg-brand-solid) 20%, var(--fx-bg-surface));
  --fx-border-color-focus: var(--fx-color-brand-400);
  --fx-viz-brand: var(--fx-color-brand-400);
  --fx-text-primary: var(--fx-color-neutral-50);
  --fx-text-secondary: var(--fx-color-neutral-300);
  --fx-text-tertiary: var(--fx-color-neutral-400);
  --fx-text-disabled: var(--fx-color-neutral-600);
  --fx-text-on-category: var(--fx-color-neutral-50);
  --fx-bg-page: var(--fx-color-neutral-950);
  --fx-bg-surface: var(--fx-color-neutral-900);
  --fx-bg-subtle: var(--fx-color-neutral-900);
  --fx-bg-muted: var(--fx-color-neutral-800);
  --fx-bg-muted-hover: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 5%);
  --fx-bg-pressed: color-mix(in oklab, var(--fx-bg-muted), var(--fx-text-primary) 10%);
  --fx-bg-error-subtle: color-mix(in oklab, var(--fx-color-red-300) 16%, var(--fx-bg-surface));
  --fx-bg-error-subtle-active: color-mix(in oklab, var(--fx-bg-error-subtle) 80%, var(--fx-fg-error));
  --fx-bg-success-subtle: color-mix(in oklab, var(--fx-color-green-300) 16%, var(--fx-bg-surface));
  --fx-bg-warning-subtle: color-mix(in oklab, var(--fx-color-amber-300) 16%, var(--fx-bg-surface));
  --fx-bg-overlay: var(--fx-color-black);
  --fx-bg-category-yellow: color-mix(in oklab, var(--fx-color-pastel-yellow) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-yellow-subtle: color-mix(in oklab, var(--fx-color-pastel-yellow) 10%, var(--fx-bg-page));
  --fx-bg-category-pink: color-mix(in oklab, var(--fx-color-pastel-pink) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-pink-subtle: color-mix(in oklab, var(--fx-color-pastel-pink) 10%, var(--fx-bg-page));
  --fx-bg-category-blue: color-mix(in oklab, var(--fx-color-pastel-blue) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-blue-subtle: color-mix(in oklab, var(--fx-color-pastel-blue) 10%, var(--fx-bg-page));
  --fx-bg-category-coral: color-mix(in oklab, var(--fx-color-pastel-coral) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-coral-subtle: color-mix(in oklab, var(--fx-color-pastel-coral) 10%, var(--fx-bg-page));
  --fx-bg-category-green: color-mix(in oklab, var(--fx-color-pastel-green) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-green-subtle: color-mix(in oklab, var(--fx-color-pastel-green) 10%, var(--fx-bg-page));
  --fx-bg-category-purple: color-mix(in oklab, var(--fx-color-pastel-purple) 45%, var(--fx-color-neutral-950));
  --fx-bg-category-purple-subtle: color-mix(in oklab, var(--fx-color-pastel-purple) 10%, var(--fx-bg-page));
  --fx-bg-brand-subtle-hover: color-mix(in oklab, var(--fx-bg-brand-subtle) 85%, var(--fx-text-brand));
  --fx-bg-brand-subtle-active: color-mix(in oklab, var(--fx-bg-brand-subtle) 72%, var(--fx-text-brand));
  --fx-bg-info-subtle: color-mix(in oklab, var(--fx-color-blue-300) 16%, var(--fx-bg-surface));
  --fx-selection-bg: color-mix(in oklab, var(--fx-bg-brand-solid) 24%, var(--fx-bg-surface));
  --fx-selection-text: var(--fx-text-primary);
  --fx-scrollbar-thumb: color-mix(in oklab, var(--fx-text-primary) 28%, transparent);
  --fx-border-color-default: var(--fx-color-neutral-800);
  --fx-border-color-strong: var(--fx-color-neutral-700);
  --fx-shadow-color: var(--fx-color-black);
  --fx-viz-ink: color-mix(in oklab, var(--fx-text-primary) 80%, var(--fx-bg-surface));
  --fx-viz-accent: var(--fx-color-pastel-yellow);
  --fx-viz-context: var(--fx-color-neutral-600);
  --fx-viz-grid: var(--fx-border-color-default);
  --fx-viz-track: color-mix(in oklab, var(--fx-text-primary) 10%, transparent);
  --fx-priority-4: var(--fx-border-color-strong);
}
[data-fx-body="system"] {
  --fx-font-family-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-adjust-sans: ex-height 0.52;
}
[data-fx-body="google-sans"] {
  --fx-font-family-sans: "Google Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-adjust-sans: ex-height 0.520;
}
[data-fx-body="inter"] {
  --fx-font-family-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-adjust-sans: ex-height 0.520;
}
[data-fx-body="jakarta"] {
  --fx-font-family-sans: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-adjust-sans: ex-height 0.520;
}
[data-fx-body="onest"] {
  --fx-font-family-sans: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-adjust-sans: ex-height 0.514;
}
[data-fx-body="public"] {
  --fx-font-family-sans: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-adjust-sans: ex-height 0.512;
}
[data-fx-body="source"] {
  --fx-font-family-sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-adjust-sans: ex-height 0.520;
}
[data-fx-font="system"] {
  --fx-font-family-display: var(--fx-font-family-sans);
  --fx-font-family-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
  --fx-font-family-numeric: var(--fx-font-family-display);
  --fx-font-adjust-display: var(--fx-font-adjust-sans);
  --fx-font-adjust-mono: ex-height 0.52;
  --fx-font-adjust-numeric: var(--fx-font-adjust-display);
}
[data-fx-font="condensed"] {
  --fx-font-family-display: "Oswald", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-family-mono: "IBM Plex Mono", ui-monospace, monospace;
  --fx-font-family-numeric: var(--fx-font-family-display);
  --fx-font-adjust-display: ex-height 0.520;
  --fx-font-adjust-mono: ex-height 0.520;
  --fx-font-adjust-numeric: var(--fx-font-adjust-display);
}
[data-fx-font="editorial"] {
  --fx-font-family-display: "Lora", Georgia, "Times New Roman", serif;
  --fx-font-family-mono: "IBM Plex Mono", ui-monospace, monospace;
  --fx-font-family-numeric: var(--fx-font-family-mono);
  --fx-font-adjust-display: ex-height 0.506;
  --fx-font-adjust-mono: ex-height 0.520;
  --fx-font-adjust-numeric: var(--fx-font-adjust-mono);
}
[data-fx-font="friendly"] {
  --fx-font-family-display: "Quicksand", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-family-mono: "IBM Plex Mono", ui-monospace, monospace;
  --fx-font-family-numeric: var(--fx-font-family-display);
  --fx-font-adjust-display: ex-height 0.520;
  --fx-font-adjust-mono: ex-height 0.520;
  --fx-font-adjust-numeric: var(--fx-font-adjust-display);
}
[data-fx-font="grotesk"] {
  --fx-font-family-display: "Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-family-mono: "IBM Plex Mono", ui-monospace, monospace;
  --fx-font-family-numeric: var(--fx-font-family-display);
  --fx-font-adjust-display: ex-height 0.471;
  --fx-font-adjust-mono: ex-height 0.520;
  --fx-font-adjust-numeric: var(--fx-font-adjust-display);
}
[data-fx-font="onest"] {
  --fx-font-family-display: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-family-numeric: var(--fx-font-family-display);
  --fx-font-adjust-display: ex-height 0.514;
  --fx-font-adjust-numeric: var(--fx-font-adjust-display);
}
[data-fx-font="wide"] {
  --fx-font-family-display: "Unbounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fx-font-family-mono: "IBM Plex Mono", ui-monospace, monospace;
  --fx-font-family-numeric: var(--fx-font-family-display);
  --fx-font-adjust-display: ex-height 0.448;
  --fx-font-adjust-mono: ex-height 0.520;
  --fx-font-adjust-numeric: var(--fx-font-adjust-display);
}
[data-fx-personality="hard"] {
  --fx-knob-pill: 0;
  --fx-knob-depth: 1.2;
  --fx-knob-blur: 0.5;
  --fx-knob-motion: 0.85;
  --fx-knob-outline: 1;
  --fx-knob-field-fill: 0;
  --fx-radius-control: 4px;
  --fx-radius-nav: 4px;
  --fx-radius-field-multiline: 4px;
  --fx-radius-surface: 4px;
  --fx-radius-overlay: 8px;
  --fx-radius-badge: 4px;
  --fx-radius-checkbox-ratio: 0.15;
}
[data-fx-personality="medium"] {
  --fx-knob-pill: 0;
  --fx-knob-depth: 1;
  --fx-knob-blur: 1;
  --fx-knob-motion: 1;
  --fx-knob-outline: 1;
  --fx-knob-field-fill: 0;
  --fx-radius-control: 8px;
  --fx-radius-nav: 6px;
  --fx-radius-field-multiline: 8px;
  --fx-radius-surface: 12px;
  --fx-radius-overlay: 16px;
  --fx-radius-badge: 6px;
  --fx-radius-checkbox-ratio: 0.25;
  --fx-radius-tag: var(--fx-radius-badge);
}
[data-fx-personality="soft"] {
  --fx-knob-pill: 0;
  --fx-knob-depth: 0.9;
  --fx-knob-blur: 2;
  --fx-knob-motion: 1.15;
  --fx-knob-outline: 0;
  --fx-knob-field-fill: 1;
  --fx-radius-control: 12px;
  --fx-radius-nav: 8px;
  --fx-radius-field-multiline: 12px;
  --fx-radius-surface: 14px;
  --fx-radius-overlay: 14px;
  --fx-radius-badge: 8px;
  --fx-radius-tag: 999px;
  --fx-radius-checkbox-ratio: 0.34;
}
[data-fx-personality="round"] {
  --fx-knob-pill: 1;
  --fx-knob-depth: 0.9;
  --fx-knob-blur: 2;
  --fx-knob-motion: 1.15;
  --fx-knob-outline: 0;
  --fx-knob-field-fill: 1;
  --fx-radius-control: 12px;
  --fx-radius-nav: 8px;
  --fx-radius-field-multiline: 16px;
  --fx-radius-surface: 14px;
  --fx-radius-overlay: 14px;
  --fx-radius-badge: 8px;
  --fx-radius-tag: 999px;
  --fx-radius-checkbox-ratio: 0.34;
}
[data-fx-edge="line"], [data-fx-edge="line"] [data-fx-personality] {
  --fx-knob-outline: 1;
  --fx-knob-depth: 0;
  --fx-knob-field-fill: 0;
}
[data-fx-edge="shadow"], [data-fx-edge="shadow"] [data-fx-personality] {
  --fx-knob-outline: 0;
  --fx-knob-depth: 1;
  --fx-knob-field-fill: 1;
}
[data-fx-edge="hybrid"], [data-fx-edge="hybrid"] [data-fx-personality] {
  --fx-knob-outline: 0;
  --fx-knob-depth: 0;
  --fx-knob-field-fill: 1;
  --fx-knob-page-tint: 0.65;
}
[data-fx-density="compact"] {
  --fx-knob-density: 0.82;
}
[data-fx-density="default"] {
  --fx-knob-density: 1;
}
[data-fx-density="comfortable"] {
  --fx-knob-density: 1.18;
}
[data-fx-motion="none"], [data-fx-motion="none"] [data-fx-personality] {
  --fx-knob-motion: 0;
  --fx-knob-motion-press: 0;
  --fx-knob-motion-loop: 0;
  --fx-motion-shift-sm: 0px;
  --fx-motion-shift-md: 0px;
  --fx-motion-shift-lg: 0px;
  --fx-motion-scale-enter: 1;
  --fx-motion-scale-press: 1;
}
[data-fx-motion="calm"] {
  --fx-knob-motion-press: 0;
  --fx-ease-spring: cubic-bezier(0.2, 0, 0, 1);
}
[data-fx-motion="expressive"] {
  --fx-knob-motion-lift: 1;
  --fx-knob-motion-stagger: 1;
}
:root, [data-fx-scheme], [data-fx-theme], [data-fx-body], [data-fx-font], [data-fx-personality], [data-fx-edge], [data-fx-density], [data-fx-motion] {
  --fx-control-h-sm: max(var(--fx-size-min-target), calc(var(--fx-size-control-sm) * var(--fx-knob-density)));
  --fx-control-h-md: max(var(--fx-size-min-target), calc(var(--fx-size-control-md) * var(--fx-knob-density)));
  --fx-control-h-lg: max(var(--fx-size-min-target), calc(var(--fx-size-control-lg) * var(--fx-knob-density)));
  --fx-shadow-sm: 0 1px calc(2px * var(--fx-knob-blur)) 0 color-mix(in oklab, var(--fx-shadow-color) calc(var(--fx-knob-depth) * 10%), transparent);
  --fx-shadow-md: 0 4px calc(8px * var(--fx-knob-blur)) -2px color-mix(in oklab, var(--fx-shadow-color) calc(var(--fx-knob-depth) * 10%), transparent), 0 2px calc(4px * var(--fx-knob-blur)) -2px color-mix(in oklab, var(--fx-shadow-color) calc(var(--fx-knob-depth) * 6%), transparent);
  --fx-shadow-lg: 0 12px calc(16px * var(--fx-knob-blur)) -4px color-mix(in oklab, var(--fx-shadow-color) calc(var(--fx-knob-depth) * 8%), transparent), 0 4px calc(6px * var(--fx-knob-blur)) -2px color-mix(in oklab, var(--fx-shadow-color) calc(var(--fx-knob-depth) * 3%), transparent), 0 24px calc(48px * var(--fx-knob-blur)) -12px color-mix(in oklab, var(--fx-shadow-color) calc(var(--fx-knob-depth) * 12%), transparent);
  --fx-border-color-surface: color-mix(in oklab, var(--fx-border-color-default) calc(var(--fx-knob-outline) * 100%), transparent);
  --fx-bg-field: color-mix(in oklab, var(--fx-bg-muted) calc(var(--fx-knob-field-fill) * 100%), var(--fx-bg-surface));
  --fx-border-color-field: color-mix(in oklab, var(--fx-border-color-default) calc((1 - var(--fx-knob-field-fill)) * 100%), transparent);
  --fx-motion-fast: calc(var(--fx-duration-fast) * var(--fx-knob-motion));
  --fx-motion-base: calc(var(--fx-duration-base) * var(--fx-knob-motion));
  --fx-motion-slow: calc(var(--fx-duration-slow) * var(--fx-knob-motion));
  --fx-motion-instant: calc(var(--fx-duration-instant) * var(--fx-knob-motion));
  --fx-motion-slower: calc(var(--fx-duration-slower) * var(--fx-knob-motion));
  --fx-motion-exit-fast: calc(var(--fx-duration-fast) * var(--fx-knob-motion) * 0.7);
  --fx-motion-press: calc(1 - (1 - var(--fx-motion-scale-press)) * var(--fx-knob-motion-press));
}
@media (pointer: coarse) {
  :root, [data-fx-scheme], [data-fx-theme], [data-fx-body], [data-fx-font], [data-fx-personality], [data-fx-edge], [data-fx-density], [data-fx-motion] {
    --fx-control-h-sm: max(var(--fx-size-touch-target), calc(var(--fx-size-control-sm) * var(--fx-knob-density)));
    --fx-control-h-md: max(var(--fx-size-touch-target), calc(var(--fx-size-control-md) * var(--fx-knob-density)));
  }
}
}

@layer fx.reset, fx.tokens, fx.base, fx.components, fx.utilities;
/* Asos: sahifa foni, matn, harakatni kamaytirish. Komponent emas — fx.base qatlami. */
@layer fx.base {
  :root {
    color-scheme: light;
    font-family: var(--fx-font-family-sans);
    font-size-adjust: var(--fx-font-adjust-sans); /* shrift almashganda oʻlcham saqlanadi (scripts/fonts.mjs) */
    color: var(--fx-text-primary);
    background: var(--fx-bg-page);
  }
  [data-fx-scheme="dark"] { color-scheme: dark; }
  @media (prefers-color-scheme: dark) {
    :root:not([data-fx-scheme="light"]) { color-scheme: dark; }
  }
  [data-fx-scheme] { color: var(--fx-text-primary); background: var(--fx-bg-page); }
  /* hidden doim yashiradi: komponentning oʻz display qiymati (flex, grid, inline-flex) uni bosib ketmasin.
     !important pastki qatlamda — har qanday komponent display'idan ustun (RedFox admin topdi, 17.10) */
  [hidden]:not([hidden="until-found"]) { display: none !important; }
  /* Matn belgilash va skroll rangi mavzudan (5-toʻlqin 4.22) */
  ::selection { background: var(--fx-selection-bg); color: var(--fx-selection-text); }
  :root { scrollbar-color: var(--fx-scrollbar-thumb) var(--fx-scrollbar-track); }
  /* Ochiladigan boʻlim (details/summary): brauzerning ▶ uchburchagi hech qayerda yoʻq (Ustoz 20.10 — global vos kechilgan; WDS «Roʻyxat strelkasi»).
     Ota chevron (accordion bilan bir xil: yopiqda −90°, ochiqda 0°) — faqat soʻralganda: details[data-fx-chevron] va .fx-prose ichidagi yalangʻoch
     summary. 25.10 gacha klassi yoʻq har summary'ga tushardi — bola saytlarning oʻz FAQ'i (grid + «+») buzildi (NomLab, Nozim); komponent
     summary'lari oʻz belgisini chizadi. */
  summary { list-style: none; }
  summary::-webkit-details-marker { display: none; }
  :where(details[data-fx-chevron] > summary:not([class]), .fx-prose details > summary:not([class]))::before { content: ""; display: inline-block; inline-size: 1em; block-size: 1em; margin-inline-end: var(--fx-space-2); vertical-align: -0.125em; background: currentColor; opacity: 0.55; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; rotate: -90deg; transition: rotate var(--fx-motion-fast) var(--fx-ease-standard); }
  :where(details[data-fx-chevron][open] > summary:not([class]), .fx-prose details[open] > summary:not([class]))::before { rotate: 0deg; }
  :where(details[data-fx-chevron] > summary:not([class]), .fx-prose details > summary:not([class])) { cursor: pointer; }
  /* Yonga suriladigan qator chetlari (21.10, Fox OS/RedFox: «surish mumkinligi sezilmaydi»): skroll holatiga bogʻlangan maska —
     boshida faqat oʻng chet soʻnadi, oxirida faqat chap; surilmasa — hech narsa. Qoʻllamaydigan brauzerda — maskasiz. tabs, segment, table-scroll ishlatadi */
  @property --_edge-s { syntax: '<length>'; inherits: false; initial-value: 0px; }
  @property --_edge-e { syntax: '<length>'; inherits: false; initial-value: 0px; }
  @keyframes fx-edge-x { 0% { --_edge-s: 0px; --_edge-e: var(--fx-space-8); } 8%, 92% { --_edge-s: var(--fx-space-8); --_edge-e: var(--fx-space-8); } 100% { --_edge-s: var(--fx-space-8); --_edge-e: 0px; } }
  /* Umumiy harakatlar — bir nechta komponent ishlatadi (avatar holati, tugma yuklanishi, spinner) */
  @keyframes fx-pulse { 50% { opacity: 0.35; } }
  @keyframes fx-spin { to { rotate: 1turn; } }
  @keyframes fx-fade-in { from { opacity: 0; } }
  /* WDS Harakat: prefers-reduced-motion doim hurmat qilinadi */
  @media (prefers-reduced-motion: reduce) {
    /* harakat yoʻq, ma'no bor: siljish 0, shkala 1, cheksiz animatsiya toʻxtaydi; rang va holat qoladi (WDS «Harakat») */
    :root, [data-fx-personality], [data-fx-motion] {
      --fx-knob-motion: 0; --fx-knob-motion-press: 0; --fx-knob-motion-lift: 0; --fx-knob-motion-stagger: 0; --fx-knob-motion-loop: 0;
      --fx-motion-shift-sm: 0px; --fx-motion-shift-md: 0px; --fx-motion-shift-lg: 0px; --fx-motion-scale-enter: 1;
    }
  }
}
/* Yordamchilar: ekranda koʻrinmaydi, ekran oʻquvchi oʻqiydi; «Asosiy qismga oʻtish» havolasi fokusda chiqadi */
@layer fx.utilities {
  /* inset 0 — boshlangʻich nuqta konteyner burchagida: aylanuvchi oʻram (overflow: auto) ichida boʻlsa ham sahifani yonga kengaytirmaydi
     (Fox OS 21.10: CRM matritsasida 390 px sahifa 1086 px boʻlardi) */
  .fx-sr-only:not(:focus-within, :focus) { position: absolute; inset-block-start: 0; inset-inline-start: 0; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .fx-skip-link:not(:focus) { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .fx-skip-link:focus { position: fixed; inset-block-start: var(--fx-space-2); inset-inline-start: var(--fx-space-2); z-index: 10; padding: var(--fx-space-2) var(--fx-space-4); border-radius: var(--fx-radius-control); background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); }
}

/* Harakat yordamchilari (fx.utilities): AI matn yaltirashi, qadamli kirish (expressive), yorqin chegara */
@layer fx.utilities {
  /* «Oʻylayapti…» — matn ustidan yorugʻlik oʻtadi */
  .fx-shimmer-text { background: linear-gradient(90deg, var(--fx-text-tertiary) 35%, var(--fx-text-primary) 50%, var(--fx-text-tertiary) 65%) 0 0 / 300% 100% text; color: transparent; animation: fx-shimmer-text var(--fx-duration-shimmer) linear infinite; }
  @keyframes fx-shimmer-text { from { background-position: 100% 0; } to { background-position: 0 0; } }
  @media (prefers-reduced-motion: reduce) { .fx-shimmer-text { animation: none; color: var(--fx-text-tertiary); background: none; } }
  /* Roʻyxat elementlari ketma-ket kiradi — faqat expressive (knob), 8 tagacha */
  [data-fx-stagger] > * { animation: fx-stagger-in calc(var(--fx-motion-base) * var(--fx-knob-motion-stagger)) var(--fx-ease-enter) both; }
  [data-fx-stagger] > :nth-child(2) { animation-delay: calc(var(--fx-duration-stagger) * 1 * var(--fx-knob-motion-stagger)); }
  [data-fx-stagger] > :nth-child(3) { animation-delay: calc(var(--fx-duration-stagger) * 2 * var(--fx-knob-motion-stagger)); }
  [data-fx-stagger] > :nth-child(4) { animation-delay: calc(var(--fx-duration-stagger) * 3 * var(--fx-knob-motion-stagger)); }
  [data-fx-stagger] > :nth-child(5) { animation-delay: calc(var(--fx-duration-stagger) * 4 * var(--fx-knob-motion-stagger)); }
  [data-fx-stagger] > :nth-child(6) { animation-delay: calc(var(--fx-duration-stagger) * 5 * var(--fx-knob-motion-stagger)); }
  [data-fx-stagger] > :nth-child(7) { animation-delay: calc(var(--fx-duration-stagger) * 6 * var(--fx-knob-motion-stagger)); }
  [data-fx-stagger] > :nth-child(n + 8) { animation-delay: calc(var(--fx-duration-stagger) * 7 * var(--fx-knob-motion-stagger)); }
  @keyframes fx-stagger-in { from { opacity: 0; translate: 0 var(--fx-motion-shift-md); } }
  /* Yorqin chegara (landing kartasi, AI javobi): aylanuvchi gradient — faqat expressive'da aylanadi */
  @property --fx-glow-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
  .fx-glow { border: var(--fx-border-width-default) solid transparent; background: linear-gradient(var(--fx-bg-surface), var(--fx-bg-surface)) padding-box, conic-gradient(from var(--fx-glow-angle), var(--fx-viz-brand), var(--fx-viz-accent), var(--fx-color-pastel-pink), var(--fx-viz-brand)) border-box; }
  [data-fx-motion="expressive"] .fx-glow { animation: fx-glow-spin calc(var(--fx-duration-shimmer) * 3) linear infinite; }
  @keyframes fx-glow-spin { to { --fx-glow-angle: 360deg; } }
  @media (prefers-reduced-motion: reduce) { .fx-glow { animation: none; } }
  /* Harakat oʻchirilgan (data-fx-motion="none"): cheksiz animatsiyalar toʻxtaydi */
  [data-fx-motion="none"] :is(*, *::before, *::after) { animation-iteration-count: 1 !important; }
  /* Gibrid chegara (data-fx-edge="hybrid", Ustoz 19.10): sahifadagi yuza foni bilan ajraladi — chiziqsiz; yuza ICHIDAGI bir xil fonli blok
     (karta ichidagi karta, jadval, roʻyxat, maydon guruhi) — chiziq bilan. Yuza ichida chiziq tokeni qaytadan koʻrinadigan qilinadi. */
  [data-fx-edge="hybrid"] :is(.fx-card, .fx-chartcard, .fx-plan, .fx-stat, .fx-dialog, .fx-sheet, .fx-popover, .fx-menu, .fx-hovercard, .fx-command, .fx-drawer, .fx-accordion, .fx-datagrid, .fx-kanban__col, .fx-shell__side, .fx-settings) * { --fx-border-color-surface: var(--fx-border-color-default); --fx-knob-outline: 1; }
}

@layer fx.components {
  /* Akkordeon: native <details> (name — bittasi ochiq), strelka — chevron, yopiqda −90°, ochiqda 0°.
     Ochilish balandlik animatsiyasi ::details-content + interpolate-size qoʻllaydigan brauzerda. */
  .fx-accordion { display: grid; border-block: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-accordion__item + .fx-accordion__item { border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-accordion__summary { display: flex; align-items: center; gap: var(--fx-space-3); min-block-size: var(--fx-control-h-md); padding-block: var(--fx-space-3); cursor: pointer; list-style: none; font-weight: var(--fx-font-weight-medium); color: var(--fx-text-primary); }
  .fx-accordion__summary::-webkit-details-marker { display: none; }
  .fx-accordion__summary::after { content: ""; flex: none; margin-inline-start: auto; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: currentColor; opacity: 0.55; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; rotate: -90deg; transition: rotate var(--fx-motion-fast) var(--fx-ease-standard), opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-accordion__summary:hover::after { opacity: 0.9; }
  .fx-accordion__item[open] > .fx-accordion__summary::after { rotate: 0deg; }
  .fx-accordion__summary:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); border-radius: var(--fx-radius-badge); }
  .fx-accordion__body { padding-block-end: var(--fx-space-4); color: var(--fx-text-secondary); font-size: var(--fx-font-size-sm); line-height: 1.6; }
  @supports (interpolate-size: allow-keywords) {
    .fx-accordion { interpolate-size: allow-keywords; }
    .fx-accordion__item::details-content { block-size: 0; overflow: clip; transition: block-size var(--fx-motion-base) var(--fx-ease-standard), content-visibility var(--fx-motion-base) allow-discrete; }
    .fx-accordion__item[open]::details-content { block-size: auto; }
  }
  /* ---- Kengaytma (2.143, 2.153, 2.154): sarlavha slotlari, chevron chapda, bordered/separated/flush, ichma-ich, print ---- */
  .fx-accordion__icon { flex: none; inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); color: var(--fx-text-tertiary); }
  .fx-accordion__meta { margin-inline-start: auto; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-regular); }
  .fx-accordion__summary:has(> .fx-accordion__meta)::after { margin-inline-start: var(--fx-space-2); }
  .fx-accordion[data-chevron="start"] .fx-accordion__summary::after { order: -1; margin-inline-start: 0; }
  .fx-accordion[data-chevron="start"] .fx-accordion__meta { margin-inline-start: auto; }
  .fx-accordion[data-chevron="start"] .fx-accordion__body { padding-inline-start: calc(var(--fx-size-icon-sm) + var(--fx-space-3)); }
  .fx-accordion[data-variant="flush"] { border-block: 0; }
  .fx-accordion[data-variant="flush"] .fx-accordion__item + .fx-accordion__item { border-block-start: 0; }
  .fx-accordion[data-variant="bordered"] { border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-surface); overflow: clip; }
  .fx-accordion[data-variant="separated"] { gap: var(--fx-space-2); border-block: 0; }
  .fx-accordion[data-variant="separated"] > .fx-accordion__item { border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-surface); overflow: clip; }
  .fx-accordion:is([data-variant="bordered"], [data-variant="separated"]) :is(.fx-accordion__summary, .fx-accordion__body) { padding-inline: var(--fx-space-4); }
  .fx-accordion[data-focus="inset"] .fx-accordion__summary:focus-visible { outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-accordion__body > .fx-accordion { margin-block-start: var(--fx-space-2); border-block-end: 0; padding-inline-start: var(--fx-space-4); }
  /* Bosma: hammasi ochiq chiqadi */
  @media print { .fx-accordion__item::details-content { block-size: auto; content-visibility: visible; } .fx-accordion__summary::after { display: none; } }
  @media (forced-colors: active) { .fx-accordion__summary::after { background: ButtonText; opacity: 1; } }
}

@layer fx.components {
  /* AI yordamchi widget'i («Guli saytda»): oʻng pastda dumaloq tugma (personaj sloti) → suhbat oynasi. Har sayt — sozlama (nom, rang,
     endpoint, til). Holatlar: idle · open · sending · error · handoff (menejerga — Telegram/telefon). Telefonda (< 640 px) — toʻliq ekran.
     Personaj: tinch holatda yengil «nafas», sahifada bir marta qoʻl silkitadi (data-mascot="wave"); harakat kamaytirilsa — yoʻq. */
  .fx-assistant { --_c: var(--fx-bg-brand-solid); --_edge: var(--fx-space-5); /* pufak yoyi chegaralangan: «Aylana» uslubida ham pufak shakli buzilmaydi */ --_r: min(var(--fx-radius-overlay), var(--fx-space-5)); --_rt: min(var(--fx-radius-badge), var(--fx-space-1)); position: fixed; inset: auto max(var(--_edge), env(safe-area-inset-right, 0px)) max(var(--_edge), env(safe-area-inset-bottom, 0px)) auto; z-index: 50; display: grid; justify-items: end; gap: var(--fx-space-3); font-size: var(--fx-font-size-sm); color: var(--fx-text-primary); }
  /* och doira (data-color="light") — qora konturli personaj ikkala rejimda ham aniq koʻrinsin */
  .fx-assistant[data-color="light"] { --_c: var(--fx-bg-static-light); }
  .fx-assistant[data-color="light"] :is(.fx-assistant__launcher, .fx-assistant__avatar) { color: var(--fx-text-on-static-light); }
  /* panel ranglari saytning oʻz tokenidan: --assistant-surface / --assistant-text yoki saytdagi --surface (--bg) / --text; boʻlmasa — FoxUI.
     Shunda qorongʻi saytda panel sayt fonida turadi (NomLab: iliq qora), FoxUI'ning koʻkimtir qorasi emas */
  .fx-assistant {
    --_surface: var(--assistant-surface, var(--surface, var(--bg, var(--fx-bg-surface))));
    --_fg: var(--assistant-text, var(--text, var(--fx-text-primary)));
    --_muted: color-mix(in oklab, var(--_fg) 7%, var(--_surface));
    --_line: color-mix(in oklab, var(--_fg) 12%, var(--_surface));
    --_dim: color-mix(in oklab, var(--_fg) 58%, var(--_surface));
  }
  .fx-assistant > .fx-assistant__mascot { display: none; } /* manba — JS nusxa oladi */
  .fx-assistant__launcher {
    position: relative; display: grid; place-items: center; inline-size: calc(var(--fx-space-12) + var(--fx-space-2)); block-size: calc(var(--fx-space-12) + var(--fx-space-2)); padding: 0; border: 0; border-radius: var(--fx-radius-circle);
    background: var(--_c); color: var(--_ink, var(--fx-text-on-category)); box-shadow: var(--fx-shadow-lg); cursor: pointer;
    transition: scale var(--fx-motion-instant) var(--fx-ease-standard), translate var(--fx-motion-base) var(--fx-ease-spring);
  }
  .fx-assistant__launcher:hover { translate: 0 calc(var(--fx-space-1) * -0.5); }
  .fx-assistant__launcher:active { scale: var(--fx-motion-press); }
  .fx-assistant__launcher:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-assistant__launcher > .fx-assistant__face { position: absolute; inset: var(--fx-space-1); inline-size: calc(100% - var(--fx-space-1) * 2); block-size: calc(100% - var(--fx-space-1) * 2); border-radius: var(--fx-radius-circle); object-fit: cover; }
  .fx-assistant__launcher > .fx-assistant__face:not(img, svg, canvas) { display: grid; place-items: center; font-size: var(--fx-font-size-lg); font-weight: var(--fx-font-weight-semibold); }
  .fx-assistant__icon { display: none; }
  .fx-assistant__launcher[aria-expanded="true"] > .fx-assistant__face { opacity: 0; }
  .fx-assistant__launcher[aria-expanded="true"] .fx-assistant__icon { display: grid; }
  .fx-assistant__icon > svg { inline-size: var(--fx-size-icon-lg); block-size: var(--fx-size-icon-lg); }
  .fx-assistant__glyph > svg { inline-size: var(--fx-size-icon-lg); block-size: var(--fx-size-icon-lg); }
  .fx-assistant__badge { position: absolute; inset-block-start: 0; inset-inline-end: 0; min-inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); border-radius: var(--fx-radius-circle); background: var(--fx-bg-error-solid); color: var(--fx-text-on-error); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-semibold); line-height: var(--fx-size-icon-md); outline: var(--fx-border-width-focus) solid var(--fx-bg-page); }
  /* personaj harakati: tinch «nafas» (loop knob), bir martalik qoʻl silkitish; tab yashirinsa — pauza */
  .fx-assistant[data-mascot="idle"] .fx-assistant__launcher > .fx-assistant__face:not(svg, .fx-orb) { animation: fx-assistant-breath calc(var(--fx-duration-pulse) * 2.5) var(--fx-ease-standard) infinite; }
  .fx-assistant[data-mascot="wave"] .fx-assistant__launcher > .fx-assistant__face:not(svg, .fx-orb) { transform-origin: 70% 90%; animation: fx-assistant-wave calc(var(--fx-motion-slow) * 4) var(--fx-ease-standard) 1; }
  .fx-assistant[data-paused] .fx-assistant__launcher > .fx-assistant__face { animation-play-state: paused; }
  /* ichki SVG animatsiyalari ham: tab yashirin yoki oyna ochiq (tugmadagi personaj koʻrinmaydi) — pauza, CPU tejaladi */
  .fx-assistant[data-paused] .fx-assistant__launcher > .fx-assistant__face :is(*, *::before, *::after), .fx-assistant__launcher[aria-expanded="true"] > .fx-assistant__face :is(*, *::before, *::after) { animation-play-state: paused !important; }
  .fx-assistant[data-paused] .fx-assistant__avatar :is(*, *::before, *::after) { animation-play-state: paused !important; }
  .fx-assistant[data-mascot="thinking"] .fx-assistant__launcher > .fx-assistant__face:not(svg, .fx-orb) { animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-assistant[data-mascot="talking"] .fx-assistant__launcher > .fx-assistant__face:not(svg, .fx-orb) { animation: fx-assistant-breath var(--fx-motion-slow) var(--fx-ease-spring) 2; }
  /* jonli personaj (inline SVG) oʻzi harakatlanadi — tashqi tebranish ikkilanmasin; holatni .salom/.oylayapti/.gapiryapti/.uzatyapti sinflari beradi */
  .fx-assistant:is([data-mascot="idle"], [data-mascot="wave"], [data-mascot="thinking"], [data-mascot="talking"], [data-mascot="handoff"]) .fx-assistant__launcher > svg.fx-assistant__face { animation: none; }
  /* abstrakt shar (data-face="orb") — tugmani toʻliq egallaydi, rangi saytning brend rangi; harakatni sharning oʻzi beradi */
  .fx-assistant .fx-orb { --_o: var(--_c); }
  .fx-assistant__launcher > .fx-orb.fx-assistant__face { inset: 0; inline-size: 100%; block-size: 100%; }
  .fx-assistant__avatar > .fx-orb { inline-size: 100%; }
  @keyframes fx-assistant-breath { 50% { scale: 1.04; } }
  @keyframes fx-assistant-wave { 15%, 45% { rotate: -12deg; } 30%, 60% { rotate: 10deg; } 75% { rotate: 0deg; } }
  @media (prefers-reduced-motion: reduce) { .fx-assistant__launcher > .fx-assistant__face { animation: none !important; } }
  /* salom pufakchasi */
  /* salom pufakchasi: panel bilan bir oila — yumshoq soya, chiziq, matn toza */
  .fx-assistant__greet { color: var(--_fg); display: flex; align-items: center; gap: var(--fx-space-2); max-inline-size: calc(var(--fx-space-12) * 6); padding: var(--fx-space-3) var(--fx-space-2) var(--fx-space-3) var(--fx-space-4); border: var(--fx-border-width-default) solid var(--_line); border-radius: var(--_r); border-end-end-radius: var(--_rt); background: var(--_surface); box-shadow: var(--fx-shadow-lg); line-height: 1.45; cursor: pointer; animation: fx-stagger-in var(--fx-motion-base) var(--fx-ease-enter); }
  .fx-assistant__x { display: grid; place-items: center; flex: none; inline-size: var(--fx-space-8); block-size: var(--fx-space-8); padding: 0; border: 0; border-radius: var(--fx-radius-circle); background: none; color: var(--_dim); cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-assistant__x[hidden], .fx-assistant__reset[hidden] { display: none; }
  .fx-assistant__x:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-assistant__x:hover { background: var(--_muted); color: var(--_fg); }
  .fx-assistant__x > svg { inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); }
  /* telefonda: salom pufakchasi 2 qatordan oshmaydi; panel ochiq boʻlsa (har qanday holatda — xato, menejer ham) shar tugmasi yashiriladi, «Yuborish»ni yopmaydi */
  @media (max-width: 599.98px) {
    .fx-assistant__greet { max-inline-size: min(calc(100vw - var(--_edge) * 3 - var(--fx-control-h-lg)), calc(var(--fx-space-12) * 5)); padding-block: var(--fx-space-2); font-size: var(--fx-font-size-sm); }
    .fx-assistant__greet > span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
    .fx-assistant:has(> .fx-assistant__panel:not([hidden])) .fx-assistant__launcher { display: none; }
  }
}

/* ---- widget:panel — mustaqil widget'da panel uslubi birinchi ochilganda yuklanadi (Mister Fox 19.10: tezlik); FoxUI'da bitta faylda ---- */
@layer fx.components {
  /* Panel (Ustoz 19.10 redizayni: «super-aql va komil kompaniya bilan gaplashish hissi»). Tamoyillar — Claude, Gemini, Copilot, Notion AI:
     1) yozish maydoni va yuborish — BITTA karta (tugma maydon ichida, alohida tushib turmaydi);
     2) javob — pufak emas, toza oʻqiladigan matn; savol — oʻngda yumshoq kulrang pufak; brend rangi faqat yuborish tugmasida;
     3) savol namunalari — hammasi bir xil qator (bitta roʻyxat), keyingi takliflar — bir xil chiplar; 4) kutish — «Oʻylayapman» ustida yorugʻlik. */
  .fx-assistant__panel {
    --_pr: min(var(--fx-radius-overlay), calc(var(--fx-space-5) + var(--fx-space-1)));
    --_ir: min(var(--fx-radius-surface), var(--fx-space-4));
    --_ctl: max(var(--fx-radius-control), calc(var(--fx-knob-pill) * 50%));
    color: var(--_fg); display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto auto;
    inline-size: min(calc(100vw - var(--_edge) * 2), calc(var(--fx-space-12) * 8.5)); block-size: min(calc(100dvh - var(--fx-space-12) * 3), calc(var(--fx-space-12) * 13));
    border: var(--fx-border-width-default) solid var(--_line); border-radius: var(--_pr); background: var(--_surface);
    box-shadow: var(--fx-shadow-lg);
    overflow: hidden; transform-origin: bottom right; animation: fx-assistant-in var(--fx-motion-slow) var(--fx-ease-enter);
  }
  @keyframes fx-assistant-in { from { opacity: 0; scale: 0.96; translate: 0 var(--fx-space-3); } }
  .fx-assistant__panel:focus:not(:focus-visible) { outline: none; }
  /* sarlavha: tinch, chiziqsiz — nom va kimligi, oʻngda «yangi suhbat» va yopish */
  .fx-assistant__head { display: flex; align-items: center; gap: var(--fx-space-3); padding: var(--fx-space-4) var(--fx-space-3) var(--fx-space-2) var(--fx-space-4); }
  .fx-assistant__avatar { display: grid; place-items: center; flex: none; inline-size: var(--fx-space-8); block-size: var(--fx-space-8); border-radius: var(--fx-radius-circle); background: var(--_c); color: var(--_ink, var(--fx-text-on-category)); overflow: hidden; font-weight: var(--fx-font-weight-semibold); }
  .fx-assistant__avatar > :is(img, svg, canvas) { inline-size: 100%; block-size: 100%; object-fit: cover; }
  .fx-assistant__who { display: grid; flex: 1; min-inline-size: 0; line-height: 1.25; }
  .fx-assistant__who b { font-size: var(--fx-font-size-md); font-weight: var(--fx-font-weight-semibold); letter-spacing: -0.01em; }
  .fx-assistant__who small { overflow: hidden; color: var(--_dim); font-size: var(--fx-font-size-xs); text-overflow: ellipsis; white-space: nowrap; }
  .fx-assistant[data-state="error"] .fx-assistant__who small { color: var(--fx-fg-error); }
  .fx-assistant[data-state="handoff"] .fx-assistant__who small { color: color-mix(in oklab, var(--fx-fg-warning) 75%, var(--_fg)); }
  .fx-assistant[data-state="sending"] .fx-assistant__chips { opacity: 0.5; pointer-events: none; }
  /* suhbat oqimi */
  .fx-assistant__log { display: flex; flex-direction: column; gap: var(--fx-space-3); padding: var(--fx-space-3) var(--fx-space-5) var(--fx-space-4); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--_line) transparent; }
  .fx-assistant__msg { max-inline-size: 100%; line-height: 1.6; overflow-wrap: anywhere; animation: fx-assistant-rise var(--fx-motion-base) var(--fx-ease-enter); }
  @keyframes fx-assistant-rise { from { opacity: 0; translate: 0 var(--fx-space-2); } }
  .fx-assistant__msg[data-who="user"] { align-self: end; max-inline-size: 82%; margin-block-start: var(--fx-space-2); padding: var(--fx-space-2) var(--fx-space-4); border-radius: calc(var(--_ir) + var(--fx-space-1)); background: var(--_muted); white-space: pre-wrap; }
  .fx-assistant__msg[data-who="bot"] { align-self: stretch; font-size: var(--fx-font-size-md); }
  .fx-assistant__msg[data-who="bot"] > :is(p, ul) { margin: 0; }
  .fx-assistant__msg[data-who="bot"] > :is(p, ul) + :is(p, ul) { margin-block-start: var(--fx-space-3); }
  .fx-assistant__msg[data-who="bot"] ul { display: grid; gap: var(--fx-space-1); padding-inline-start: var(--fx-space-5); }
  .fx-assistant__msg[data-who="bot"] li::marker { color: var(--_dim); }
  .fx-assistant__msg[data-who="bot"] strong { font-weight: var(--fx-font-weight-semibold); }
  .fx-assistant__msg a { color: var(--_c); text-decoration: underline; text-decoration-color: color-mix(in oklab, var(--_c) 40%, transparent); text-underline-offset: 0.2em; }
  /* javob ostida: nusxa — sezilar-sezilmas, ustiga kelganda aniq */
  .fx-assistant__acts { display: flex; gap: var(--fx-space-1); margin-block-start: calc(var(--fx-space-2) * -1); }
  .fx-assistant__act { display: grid; place-items: center; inline-size: var(--fx-space-8); block-size: var(--fx-space-8); margin-inline-start: calc(var(--fx-space-2) * -1); padding: 0; border: 0; border-radius: var(--_ctl); background: none; color: var(--_dim); cursor: pointer; opacity: 0.7; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard), background-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-assistant__act:hover, .fx-assistant__act:focus-visible { opacity: 1; background: var(--_muted); color: var(--_fg); }
  .fx-assistant__act > svg { inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); }
  /* tanishuv: shar, salom sarlavhasi, kichik matn, savol namunalari — bitta roʻyxat (bir xil qatorlar) */
  .fx-assistant__intro { display: grid; justify-items: start; gap: var(--fx-space-2); margin-block: auto 0; padding-block: var(--fx-space-4) var(--fx-space-1); animation: fx-assistant-rise var(--fx-motion-slow) var(--fx-ease-enter); }
  .fx-assistant__hero { display: grid; place-items: center; inline-size: calc(var(--fx-space-12) * 1.15); block-size: calc(var(--fx-space-12) * 1.15); margin-block-end: var(--fx-space-2); border-radius: var(--fx-radius-circle); background: var(--_c); color: var(--_ink, var(--fx-text-on-category)); overflow: hidden; font-size: var(--fx-font-size-xl); font-weight: var(--fx-font-weight-semibold); }
  .fx-assistant__hero > :is(img, svg, canvas, .fx-orb) { inline-size: 100%; block-size: 100%; object-fit: cover; }
  .fx-assistant__intro h2 { margin: 0; font-family: var(--fx-font-family-display, inherit); font-size-adjust: var(--fx-font-adjust-display, none); font-size: var(--fx-font-size-2xl); font-weight: var(--fx-font-weight-semibold); line-height: 1.2; letter-spacing: -0.02em; text-wrap: balance; }
  .fx-assistant__intro > p { margin: 0; max-inline-size: 36ch; color: var(--_dim); font-size: var(--fx-font-size-md); line-height: 1.5; text-wrap: pretty; }
  .fx-assistant__starters { display: grid; justify-self: stretch; margin-block-start: var(--fx-space-4); border: var(--fx-border-width-default) solid var(--_line); border-radius: var(--_ir); overflow: hidden; }
  .fx-assistant__starter { display: flex; align-items: center; justify-content: space-between; gap: var(--fx-space-3); min-block-size: var(--fx-control-h-md); padding: var(--fx-space-2) var(--fx-space-4); border: 0; background: none; color: inherit; font: inherit; font-size: var(--fx-font-size-sm); text-align: start; cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-assistant__starter + .fx-assistant__starter { border-block-start: var(--fx-border-width-default) solid var(--_line); }
  .fx-assistant__starter > svg { flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); color: var(--_dim); transition: translate var(--fx-motion-fast) var(--fx-ease-standard), color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-assistant__starter:hover { background: var(--_muted); }
  .fx-assistant__starter:hover > svg { translate: var(--fx-space-1) 0; color: var(--_fg); }
  .fx-assistant__starter:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  /* kutish: «Oʻylayapman» ustidan yorugʻlik yuguradi */
  .fx-assistant__thinking { align-self: start; color: var(--_dim); font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-medium); }
  .fx-assistant__thinking > span { background: linear-gradient(90deg, var(--_dim) 0 35%, var(--_fg) 50%, var(--_dim) 65% 100%) 0 0 / 300% 100%; background-clip: text; color: transparent; animation: fx-assistant-shimmer calc(var(--fx-duration-pulse) * 1.2) linear infinite; }
  .fx-assistant__thinking > span::after { content: "…"; }
  @keyframes fx-assistant-shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }
  /* uzun javob: ~9 qator, pastki qismi soʻnadi; «Davomi» ochadi */
  .fx-assistant__msg[data-long]:not([data-open]) { max-block-size: calc(1.6em * 9); overflow: hidden; mask-image: linear-gradient(var(--fx-color-black) 55%, transparent); }
  .fx-assistant__more, .fx-assistant__link { align-self: start; margin-block-start: calc(var(--fx-space-2) * -1); padding: 0; border: 0; background: none; color: var(--_c); font: inherit; font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-medium); cursor: pointer; }
  .fx-assistant__more:hover, .fx-assistant__link:hover { text-decoration: underline; text-underline-offset: 0.2em; }
  :is(.fx-assistant__more, .fx-assistant__link):focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-space-1); border-radius: var(--fx-radius-badge); }
  /* menejer va xato — bir xil karta; tugmalar karta ichida bir qatorda */
  .fx-assistant__handoff, .fx-assistant__error { display: grid; gap: var(--fx-space-3); padding: var(--fx-space-4); border: var(--fx-border-width-default) solid var(--_line); border-radius: var(--_ir); background: color-mix(in oklab, var(--_muted) 50%, var(--_surface)); animation: fx-assistant-rise var(--fx-motion-base) var(--fx-ease-enter); }
  .fx-assistant__handoff > p { margin: 0; line-height: 1.5; }
  .fx-assistant__handoff { grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(var(--fx-space-12) * 3)), 1fr)); }
  .fx-assistant__handoff > p { grid-column: 1 / -1; }
  /* kontakt formasi (FoxOS 21.10): Guli pufagi ostida — ism, +998 telefon, «Yuborish»; yuborilgach «✓ Yuborildi» */
  .fx-assistant__contact { display: grid; gap: var(--fx-space-3); padding: var(--fx-space-4); border: var(--fx-border-width-default) solid var(--_line); border-radius: var(--_ir); background: var(--_surface); animation: fx-assistant-rise var(--fx-motion-base) var(--fx-ease-enter); }
  .fx-assistant__cf { display: grid; gap: var(--fx-space-1); font-size: var(--fx-font-size-xs); color: var(--_dim); }
  /* yoy — balandlikdan (kenglikdan emas: 50 % kenglik ellips beradi — qovun) */
  .fx-assistant__cf input, .fx-assistant__tel { box-sizing: border-box; inline-size: 100%; min-block-size: var(--fx-control-h-md); border: var(--fx-border-width-default) solid var(--_line); border-radius: calc(var(--fx-knob-pill) * var(--fx-control-h-md) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control)); background: var(--_muted); color: var(--_fg); font: inherit; font-size: var(--fx-font-size-md); }
  .fx-assistant__cf > input { padding: 0 var(--fx-space-3); }
  .fx-assistant__tel { display: flex; align-items: center; gap: var(--fx-space-2); padding-inline-start: var(--fx-space-3); }
  .fx-assistant__tel > b { color: var(--_dim); font-weight: var(--fx-font-weight-medium); }
  .fx-assistant__tel > input { flex: 1; min-inline-size: 0; min-block-size: 0; padding: 0 var(--fx-space-3) 0 0; border: 0; background: none; font-variant-numeric: tabular-nums; }
  .fx-assistant__cf input:focus, .fx-assistant__tel:focus-within { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-default) * -1); }
  .fx-assistant__tel > input:focus { outline: none; }
  .fx-assistant__cerr { margin: 0; color: var(--fx-text-error); font-size: var(--fx-font-size-xs); }
  /* tugma — vidjetning oʻz rangida (yuborish tugmasi bilan bir xil), sahifa brendidan emas */
  .fx-assistant__csend { inline-size: 100%; min-block-size: var(--fx-control-h-md); border: 0; border-radius: calc(var(--fx-knob-pill) * var(--fx-control-h-md) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control)); background: var(--_c); color: var(--_ink, var(--fx-text-on-brand)); font-weight: var(--fx-font-weight-semibold); cursor: pointer; }
  .fx-assistant__csend:disabled { background: var(--_muted); color: var(--_dim); cursor: default; }
  .fx-assistant__csend:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  .fx-assistant__csent { display: flex; align-items: center; gap: var(--fx-space-2); margin: 0; color: var(--fx-fg-success); font-weight: var(--fx-font-weight-semibold); }
  .fx-assistant__csent > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-assistant__error { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--fx-space-1) var(--fx-space-3); color: var(--_fg); }
  .fx-assistant__error > span::before { content: ""; display: inline-block; inline-size: var(--fx-size-status-dot-sm); block-size: var(--fx-size-status-dot-sm); margin-inline-end: var(--fx-space-2); border-radius: var(--fx-radius-circle); background: var(--fx-fg-error); vertical-align: 0.1em; }
  .fx-assistant__error .fx-assistant__link { margin: 0; }
  .fx-assistant__panel .fx-btn { --_h: var(--fx-control-h-sm); justify-content: center; border-radius: var(--_ctl); }
  .fx-assistant__panel .fx-btn:not([data-variant="primary"]) { border-color: var(--_line); background: var(--_surface); color: var(--_fg); }
  .fx-assistant__panel .fx-btn[data-variant="primary"] { border-color: transparent; background: var(--_c); color: var(--_ink, var(--fx-text-on-brand)); }
  /* keyingi takliflar — bir xil chiplar, bir qatorda (sigʻmasa yon tomonga suriladi, chetida soʻnadi) */
  .fx-assistant__chips { display: flex; gap: var(--fx-space-2); padding: 0 var(--fx-space-4); overflow-x: auto; scrollbar-width: none; mask-image: linear-gradient(90deg, var(--fx-color-black) calc(100% - var(--fx-space-6)), transparent); }
  .fx-assistant__chips::-webkit-scrollbar { display: none; }
  .fx-assistant__chips:not(:empty) { padding-block-end: var(--fx-space-2); }
  .fx-assistant__chip { flex: none; block-size: var(--fx-control-h-sm); padding: 0 var(--fx-space-3); border: var(--fx-border-width-default) solid var(--_line); border-radius: var(--_ctl); background: var(--_surface); color: var(--_fg); font: inherit; font-size: var(--fx-font-size-sm); white-space: nowrap; cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-assistant__chip:hover { border-color: color-mix(in oklab, var(--_fg) 24%, var(--_surface)); background: var(--_muted); }
  .fx-assistant__chip:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  /* yozish: maydon va yuborish — bitta karta; fokusda karta chegarasi yorishadi; yuborish — maydon ichida, oʻng pastda */
  .fx-assistant__form { margin: 0; padding: var(--fx-space-1) var(--fx-space-3) var(--fx-space-2); }
  .fx-assistant__box { display: flex; align-items: end; gap: var(--fx-space-2); padding: var(--fx-space-2) var(--fx-space-2) var(--fx-space-2) var(--fx-space-4); border: var(--fx-border-width-default) solid var(--_line); border-radius: calc(var(--_ir) + var(--fx-space-1)); background: var(--_surface); box-shadow: var(--fx-shadow-sm); transition: border-color var(--fx-motion-fast) var(--fx-ease-standard), box-shadow var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-assistant__box:focus-within { border-color: color-mix(in oklab, var(--_fg) 30%, var(--_surface)); box-shadow: var(--fx-shadow-md); }
  .fx-assistant__box textarea { flex: 1; min-inline-size: 0; min-block-size: calc(var(--fx-control-h-sm)); max-block-size: calc(var(--fx-control-h-md) * 3); margin: 0; padding: var(--fx-space-2) 0; box-sizing: border-box; border: 0; background: none; color: inherit; font: inherit; font-size: var(--fx-font-size-md); line-height: 1.4; resize: none; outline: none; }
  /* mezbon saytning umumiy input:focus uslubi (qatlamsiz) karta ichida ikkinchi ramka chizmasin (Fox NB, 19.10) — fokusni karta koʻrsatadi */
  .fx-assistant__box textarea:is(:focus, :focus-visible, :hover) { border: 0 !important; outline: none !important; box-shadow: none !important; background: none !important; }
  .fx-assistant__box textarea::placeholder { color: var(--_dim); }
  .fx-assistant__send { display: grid; place-items: center; flex: none; inline-size: var(--fx-control-h-sm); block-size: var(--fx-control-h-sm); padding: 0; border: 0; border-radius: var(--_ctl); background: var(--_c); color: var(--_ink, var(--fx-text-on-brand)); cursor: pointer; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard), background-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-assistant__send:not(:disabled):active { scale: var(--fx-motion-press); }
  .fx-assistant__send:disabled { background: var(--_muted); color: var(--_dim); cursor: default; }
  .fx-assistant__send:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  .fx-assistant__send > svg { inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); }
  .fx-assistant__note { margin: 0; padding: 0 var(--fx-space-4) var(--fx-space-3); color: var(--_dim); font-size: calc(var(--fx-font-size-xs) * 0.92); text-align: center; }
  @media (prefers-reduced-motion: reduce) { .fx-assistant__panel, .fx-assistant__msg, .fx-assistant__intro, .fx-assistant__thinking > span { animation: none; } }
  /* telefonda (Ustoz 19.10: «juda koʻp matn bilan ekranni egallab turgandi»): pastdan chiqadigan varaq — sahifa tepada koʻrinib turadi;
     yozishda (klaviatura) baland boʻladi; matn bir pogʻona kichik */
  @media (max-width: 599.98px) {
    .fx-assistant__panel { position: fixed; inset: auto 0 0 0; inline-size: auto; block-size: 78dvh; border: 0; border-radius: var(--_pr) var(--_pr) 0 0; padding-block-end: env(safe-area-inset-bottom, 0px); transition: block-size var(--fx-motion-base) var(--fx-ease-standard); animation-name: fx-assistant-sheet; }
    @keyframes fx-assistant-sheet { from { translate: 0 100%; } }
    .fx-assistant__panel:has(textarea:focus) { block-size: 92dvh; }
    .fx-assistant__head { position: relative; padding-block-start: var(--fx-space-5); }
    .fx-assistant__head::before { content: ""; position: absolute; inset-block-start: var(--fx-space-2); inset-inline-start: 50%; translate: -50% 0; inline-size: var(--fx-space-8); block-size: var(--fx-space-1); border-radius: var(--fx-radius-pill); background: color-mix(in oklab, var(--_fg) 22%, var(--_surface)); }
    .fx-assistant__log { padding-inline: var(--fx-space-4); }
    .fx-assistant__msg[data-who="bot"], .fx-assistant__intro > p { font-size: var(--fx-font-size-sm); }
    .fx-assistant__intro h2 { font-size: var(--fx-font-size-xl); }
    .fx-assistant__act { opacity: 1; }
  }
}

@layer fx.components {
  /* Kvadrat avatar + holat nuqtasi (FoxOS (avval Fox Workspace) hilos namunasidan, Ustoz tasdigʻi 16.10; WDS «Komponentlar» 08.10 doira qoidasi bekor). */
  .fx-avatar {
    --_s: var(--fx-size-avatar-md);
    --fx-avatar-ring: var(--fx-bg-surface); /* holat nuqtasi halqasi — avatar turgan yuza rangi (hook) */
    position: relative;
    flex: none;
    display: inline-grid;
    place-items: center;
    inline-size: var(--_s);
    block-size: var(--_s);
    border-radius: calc(var(--_s) * var(--fx-radius-avatar-ratio));
    background: var(--fx-bg-category-blue);
    color: var(--fx-text-on-category);
    font-size: var(--fx-font-size-xs);
    font-weight: var(--fx-font-weight-semibold);
    line-height: 1;
    user-select: none;
  }
  .fx-avatar[data-size="sm"] { --_s: var(--fx-size-avatar-sm); font-size: calc(var(--fx-font-size-xs) * 0.75); }
  .fx-avatar[data-size="lg"] { --_s: var(--fx-size-avatar-lg); font-size: var(--fx-font-size-lg); }
  /* Kapsula ichidagi avatar — doira (Ustoz 20.10, combobox): tugma, chip, roʻyxat bandi, nav bandi pill boʻlsa (Aylana), ichidagi avatar shu shaklga
     hamohang — toʻliq doira; boshqa uslublarda kvadrat avatar qoladi (16.10 qarori). knob-pill: 0 — kvadrat yoy, 1 — doira */
  :is(.fx-chip, .fx-option, .fx-btn, .fx-nav__item, .fx-combobox) .fx-avatar { border-radius: calc(var(--_s) * max(var(--fx-radius-avatar-ratio), var(--fx-knob-pill) * 0.5)); }
  .fx-avatar > img { inline-size: 100%; block-size: 100%; object-fit: cover; border-radius: inherit; }
  .fx-avatar[data-color="yellow"] { background: var(--fx-bg-category-yellow); }
  .fx-avatar[data-color="pink"] { background: var(--fx-bg-category-pink); }
  .fx-avatar[data-color="blue"] { background: var(--fx-bg-category-blue); }
  .fx-avatar[data-color="coral"] { background: var(--fx-bg-category-coral); }
  .fx-avatar[data-color="green"] { background: var(--fx-bg-category-green); }
  .fx-avatar[data-color="purple"] { background: var(--fx-bg-category-purple); }
  /* Holat: active — puls, waiting — sariq, stopped — qizil, idle — xira */
  .fx-avatar[data-status]::after {
    content: "";
    position: absolute;
    inset-inline-end: calc(var(--fx-border-width-focus) * -1);
    inset-block-end: calc(var(--fx-border-width-focus) * -1);
    inline-size: var(--fx-size-status-dot);
    block-size: var(--fx-size-status-dot);
    box-sizing: border-box;
    border-radius: var(--fx-radius-circle);
    border: var(--fx-border-width-focus) solid var(--fx-avatar-ring);
    background: var(--fx-border-color-strong);
  }
  .fx-avatar[data-size="sm"][data-status]::after { inline-size: var(--fx-size-status-dot-sm); block-size: var(--fx-size-status-dot-sm); }
  .fx-avatar[data-status="active"]::after { background: var(--fx-fg-success); animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-avatar[data-status="waiting"]::after { background: var(--fx-fg-warning); }
  .fx-avatar[data-status="stopped"]::after { background: var(--fx-fg-error); }
  @media (prefers-reduced-motion: reduce) { .fx-avatar[data-status]::after { animation: none; } }
  /* Guruh: bir-birining ustiga, kesim — avatar turgan yuza rangida; oxirida «+N» */
  .fx-avatar-group { display: inline-flex; align-items: center; }
  .fx-avatar-group > .fx-avatar { outline: var(--fx-border-width-focus) solid var(--fx-avatar-ring); }
  .fx-avatar-group > .fx-avatar + .fx-avatar { margin-inline-start: calc(var(--fx-space-2) * -1); }
  .fx-avatar[data-more] { background: var(--fx-bg-muted); color: var(--fx-text-secondary); }
  /* ---- Kengaytma (2.45–2.53): xs/xl/2xl, guruh yoyilishi/toʻr/chegara, tugma-“+N”, surat zanjiri, belgi, tahrirlash ---- */
  .fx-avatar[data-size="xs"] { --_s: var(--fx-size-icon-sm); font-size: calc(var(--fx-font-size-xs) * 0.5); }
  .fx-avatar[data-size="xs"][data-status]::after { inline-size: calc(var(--fx-size-status-dot-sm) * 0.6); block-size: calc(var(--fx-size-status-dot-sm) * 0.6); border-width: calc(var(--fx-border-width-focus) / 2); }
  .fx-avatar[data-size="xl"] { --_s: calc(var(--fx-size-avatar-lg) * 1.5); font-size: var(--fx-font-size-xl); }
  .fx-avatar[data-size="2xl"] { --_s: calc(var(--fx-size-avatar-lg) * 2); font-size: var(--fx-font-size-display-sm); }
  :is(.fx-avatar[data-size="xl"], .fx-avatar[data-size="2xl"])[data-status]::after { inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); }
  /* Guruh: transition + hover'da yoyilish (data-spread), toʻr (data-layout="grid"), eng koʻp koʻrinadigan soni (data-max) */
  .fx-avatar-group > .fx-avatar + .fx-avatar { transition: margin var(--fx-motion-base) var(--fx-ease-standard); }
  .fx-avatar-group[data-spread]:is(:hover, :focus-within) > .fx-avatar + .fx-avatar { margin-inline-start: var(--fx-space-1); }
  .fx-avatar-group[data-layout="grid"] { flex-wrap: wrap; gap: var(--fx-space-2); }
  .fx-avatar-group[data-layout="grid"] > .fx-avatar + .fx-avatar { margin-inline-start: 0; }
  .fx-avatar-group[data-layout="grid"] > .fx-avatar { outline: 0; }
  .fx-avatar-group[data-max="3"] > .fx-avatar:nth-child(n + 4):not([data-more]),
  .fx-avatar-group[data-max="4"] > .fx-avatar:nth-child(n + 5):not([data-more]),
  .fx-avatar-group[data-max="5"] > .fx-avatar:nth-child(n + 6):not([data-more]),
  .fx-avatar-group[data-max="6"] > .fx-avatar:nth-child(n + 7):not([data-more]) { display: none; }
  /* “+N” bosiladigan boʻlsa (popover ochadi): haqiqiy <button> */
  button.fx-avatar[data-more] { padding: 0; border: 0; font-family: inherit; cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  button.fx-avatar[data-more]:hover { background: var(--fx-bg-subtle); color: var(--fx-text-primary); }
  button.fx-avatar[data-more]:active { scale: var(--fx-motion-press); }
  button.fx-avatar[data-more]:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  /* Surat zanjiri: img → initsial → ikon. Initsial/ikon (.fx-avatar__fallback) suratning orqasida; surat yuklanmasa (alt="") faqat u koʻrinadi */
  .fx-avatar:has(> .fx-avatar__fallback) > :is(img, .fx-avatar__fallback) { grid-area: 1 / 1; }
  .fx-avatar__fallback { display: grid; place-items: center; inline-size: 100%; block-size: 100%; }
  .fx-avatar__fallback > svg { inline-size: 55%; block-size: 55%; }
  /* Shaxs belgisi (Ustoz 24.10, Olim — rasmi yoʻq odam): Magnific «Person» ikoni, betaraf — jinssiz, davrsiz, yuzsiz; yelka pastda.
     <span class="fx-avatar__fallback" data-person>${ic('person')}</span>. Belgi bitta; tarixiy shaxs — faqat ton (data-tone="muted") */
  .fx-avatar__fallback[data-person] { place-items: end center; overflow: hidden; border-radius: inherit; color: var(--fx-color-neutral-900); }
  .fx-avatar__fallback[data-person] > svg { inline-size: 82%; block-size: 82%; margin-block-end: -2%; }
  /* Tarixiy / vafot etgan shaxs: ton bilan — betaraf kulrang fon va nozik halqa (rang yolgʻiz belgi emas: ekran oʻquvchiga aria-label aytadi) */
  .fx-avatar[data-tone="muted"] { background: var(--fx-bg-muted); outline: var(--fx-border-width-default) solid var(--fx-border-color-strong); outline-offset: calc(var(--fx-border-width-default) * -1); }
  .fx-avatar[data-tone="muted"] > .fx-avatar__fallback[data-person] { color: var(--fx-text-secondary); }
  /* Avatar ustidagi belgi (tasdiqlangan ✓, tashkilot logotipi): yuqori-oʻng burchak */
  .fx-avatar__badge { position: absolute; inset-block-start: calc(var(--fx-border-width-focus) * -1); inset-inline-end: calc(var(--fx-border-width-focus) * -1); display: grid; place-items: center; box-sizing: border-box; inline-size: max(var(--fx-size-status-dot), 38%); block-size: max(var(--fx-size-status-dot), 38%); border: var(--fx-border-width-focus) solid var(--fx-avatar-ring); border-radius: var(--fx-radius-circle); background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); overflow: hidden; }
  .fx-avatar__badge > :is(svg, img) { inline-size: 70%; block-size: 70%; object-fit: cover; }
  /* Tahrirlanadigan: ustiga borganda “Rasmni oʻzgartirish” qoplamasi (tugma yoki label ichida) */
  .fx-avatar[data-editable] { cursor: pointer; overflow: hidden; }
  .fx-avatar__edit { position: absolute; inset: 0; display: grid; place-items: center; border-radius: inherit; background: color-mix(in oklab, var(--fx-text-primary) 55%, transparent); color: var(--fx-bg-surface); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-semibold); opacity: 0; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-avatar__edit > svg { inline-size: 40%; block-size: 40%; }
  .fx-avatar[data-editable]:is(:hover, :focus-visible, :focus-within) > .fx-avatar__edit { opacity: 1; }
  .fx-avatar[data-editable]:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  @media (hover: none) { .fx-avatar[data-editable] > .fx-avatar__edit { opacity: 1; background: color-mix(in oklab, var(--fx-text-primary) 35%, transparent); } }
  /* Windows High Contrast (2.152) */
  @media (forced-colors: active) {
    .fx-avatar { border: var(--fx-border-width-default) solid ButtonText; forced-color-adjust: none; background: Canvas; color: CanvasText; }
    .fx-avatar[data-status]::after { background: Highlight; border-color: Canvas; }
    .fx-avatar__badge { background: Highlight; color: HighlightText; }
  }
}

@layer fx.components {
  .fx-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--fx-space-1);
    padding: var(--fx-space-1) var(--fx-space-2);
    border-radius: var(--fx-radius-tag);
    font-size: var(--fx-font-size-xs);
    font-weight: var(--fx-font-weight-medium);
    line-height: 1;
    background: var(--fx-bg-muted);
    color: var(--fx-text-secondary);
    transition: border-radius var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-badge[data-tone="success"] { background: var(--fx-bg-success-subtle); color: var(--fx-fg-success); }
  .fx-badge[data-tone="warning"] { background: var(--fx-bg-warning-subtle); color: var(--fx-fg-warning); }
  .fx-badge[data-tone="error"] { background: var(--fx-bg-error-subtle); color: var(--fx-fg-error); }
  .fx-badge[data-tone="info"] { background: var(--fx-bg-info-subtle); color: var(--fx-fg-info); }
  .fx-badge[data-tone="brand"] { background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); }
  /* Kategoriya rangi (teg: agentlik, boʻlim) — ma'no emas, ajratish uchun; matn doim asosiy rangda (kontrast qoʻriqchisi: text.primary / bg.category.*-subtle) */
  .fx-badge[data-color="yellow"] { background: var(--fx-bg-category-yellow-subtle); color: var(--fx-text-primary); }
  .fx-badge[data-color="pink"] { background: var(--fx-bg-category-pink-subtle); color: var(--fx-text-primary); }
  .fx-badge[data-color="blue"] { background: var(--fx-bg-category-blue-subtle); color: var(--fx-text-primary); }
  .fx-badge[data-color="coral"] { background: var(--fx-bg-category-coral-subtle); color: var(--fx-text-primary); }
  .fx-badge[data-color="green"] { background: var(--fx-bg-category-green-subtle); color: var(--fx-text-primary); }
  .fx-badge[data-color="purple"] { background: var(--fx-bg-category-purple-subtle); color: var(--fx-text-primary); }
  /* Nuqtali belgi: ohang rangidagi nuqta + soʻz */
  .fx-badge[data-marker="dot"]::before { content: ""; flex: none; inline-size: calc(var(--fx-size-status-dot) * 0.6); block-size: calc(var(--fx-size-status-dot) * 0.6); border-radius: var(--fx-radius-circle); background: currentColor; }
  /* Son: tab, filtr yonida — tabular raqam, markazda */
  .fx-badge[data-type="count"] { justify-content: center; min-inline-size: var(--fx-size-icon-md); font-variant-numeric: tabular-nums; }
  /* Oʻlcham va ikon */
  /* Sanoq belgisi (data-count): bir xonali — toʻliq doira, uzunrogʻi — kapsula; ezilgan doira yoʻq (Ustoz 20.10, SHAPE-01) */
  .fx-badge[data-count] { box-sizing: border-box; justify-content: center; min-inline-size: calc(1lh + var(--fx-space-1) * 2); padding-inline: calc(var(--fx-space-1) / 2); font-variant-numeric: tabular-nums; }
  .fx-badge[data-size="sm"] { padding: calc(var(--fx-space-1) / 2) var(--fx-space-1); }
  .fx-badge[data-size="lg"] { padding: var(--fx-space-1) var(--fx-space-3); font-size: var(--fx-font-size-sm); }
  .fx-badge > svg { flex: none; inline-size: 1.2em; block-size: 1.2em; }
  /* Toʻla tusli (solid): tekis yuza, matn — sahifa foni rangida */
  .fx-badge[data-style="solid"] { background: var(--fx-text-primary); color: var(--fx-bg-surface); }
  .fx-badge[data-style="solid"][data-tone="brand"] { background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); }
  .fx-badge[data-style="solid"][data-tone="info"] { background: var(--fx-fg-info); color: var(--fx-bg-surface); }
  .fx-badge[data-style="solid"][data-tone="success"] { background: var(--fx-fg-success); color: var(--fx-bg-surface); }
  .fx-badge[data-style="solid"][data-tone="warning"] { background: var(--fx-fg-warning); color: var(--fx-bg-surface); }
  .fx-badge[data-style="solid"][data-tone="error"] { background: var(--fx-bg-error-solid); color: var(--fx-text-on-error); }
  /* Chiziqli (outline): foni yoʻq, chegara matn rangida; oʻlcham chegara hisobiga saqlanadi */
  .fx-badge[data-style="outline"] { background: transparent; border: var(--fx-border-width-default) solid color-mix(in oklab, currentColor 45%, transparent); padding: calc(var(--fx-space-1) - var(--fx-border-width-default)) calc(var(--fx-space-2) - var(--fx-border-width-default)); }
  .fx-badge[data-style="outline"][data-size="sm"] { padding: calc(var(--fx-space-1) / 2 - var(--fx-border-width-default)) calc(var(--fx-space-1) - var(--fx-border-width-default)); }
  .fx-badge[data-style="outline"][data-size="lg"] { padding: calc(var(--fx-space-1) - var(--fx-border-width-default)) calc(var(--fx-space-3) - var(--fx-border-width-default)); }
}

@layer fx.components {
  /* Doska (kanban; PDP .eco-board): holat ustunlari — sarlavha (holat, nom, son, WIP chegarasi), kartalar. Karta sudraladi
     (sichqoncha va klaviatura: Space — koʻtarish, ← → ↑ ↓ — surish, Space — qoʻyish, Esc — bekor). Yigʻilgan ustun — tor vertikal.
     Xulq — foxui.js (data-fx-board): WIP oshsa — ogohlantirish, «fx-board-move» hodisasi. */
  .fx-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(calc(var(--fx-space-12) * 5.5), 1fr); gap: var(--fx-space-4); overflow-x: auto; padding-block-end: var(--fx-space-2); align-items: start; }
  /* ustun — joylashuv asosi: ichidagi fx-sr-only (absolute) doskadan chiqib sahifani kengaytirmasin (Fox OS, 19.10) */
  .fx-board__col { position: relative; display: grid; gap: var(--fx-space-2); align-content: start; min-inline-size: 0; padding: var(--fx-space-2); border-radius: var(--fx-radius-surface); background: var(--fx-bg-subtle); transition: background-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-board__col[data-drop] { background: var(--fx-bg-brand-subtle); outline: var(--fx-border-width-default) dashed var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-default) * -1); }
  .fx-board__head { display: flex; align-items: center; gap: var(--fx-space-2); min-block-size: var(--fx-control-h-sm); padding-inline: var(--fx-space-2); font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-semibold); }
  .fx-board__count { color: var(--fx-text-tertiary); font-weight: var(--fx-font-weight-regular); font-variant-numeric: tabular-nums; }
  .fx-board__col[data-wip] .fx-board__count { cursor: help; } /* WIP: izoh title'da — «bir vaqtda N tadan koʻp boʻlmasin» */
  .fx-board__col[data-over] .fx-board__count { padding: 0 var(--fx-space-1); border-radius: var(--fx-radius-badge); background: var(--fx-bg-warning-subtle); color: var(--fx-fg-warning); font-weight: var(--fx-font-weight-semibold); }
  .fx-board__head > :last-child:not(:first-child):is(button, a) { margin-inline-start: auto; }
  .fx-board__list { display: grid; gap: var(--fx-space-2); min-block-size: var(--fx-space-12); margin: 0; padding: 0; list-style: none; }
  .fx-board__card {
    display: grid; gap: var(--fx-space-2); padding: var(--fx-space-3); border: var(--fx-border-width-default) solid var(--fx-border-color-surface); border-radius: var(--fx-radius-control);
    background: var(--fx-bg-surface); box-shadow: var(--fx-shadow-sm); color: var(--fx-text-primary); font-size: var(--fx-font-size-sm); cursor: grab;
    transition: box-shadow var(--fx-motion-fast) var(--fx-ease-standard), rotate var(--fx-motion-fast) var(--fx-ease-standard), opacity var(--fx-motion-fast) var(--fx-ease-standard);
  }
  .fx-board__card:hover { box-shadow: var(--fx-shadow-md); }
  /* butun karta bosiladi (Ustoz 21.10: «Notion'dagidek — kartaga bossa ochilsin»): sarlavhadagi asosiy havola/tugma (yoki [data-card-link])
     kartani qoplaydi; kartadagi boshqa tugma va havolalar uning ustida qoladi. Bosish va surishni brauzer ajratadi (HTML drag & drop) */
  .fx-board__card { position: relative; cursor: pointer; }
  .fx-board__card :is(.fx-board__title :is(a, button), [data-card-link])::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
  .fx-board__card :is(a, button, input, select, textarea, label, summary, [tabindex]):not(.fx-board__title *, [data-card-link]) { position: relative; z-index: 1; }
  .fx-board__card:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  .fx-board__card[data-lifted] { cursor: grabbing; box-shadow: var(--fx-shadow-lg); rotate: calc(1deg * var(--fx-knob-motion-press)); }
  .fx-board__card[data-ghost] { opacity: 0.4; }
  .fx-board__top { display: flex; align-items: center; gap: var(--fx-space-2); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-board__top > :first-child { font-family: var(--fx-font-family-mono); font-size-adjust: var(--fx-font-adjust-mono); }
  .fx-board__top > :last-child { margin-inline-start: auto; }
  .fx-board__title { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 0; font-weight: var(--fx-font-weight-medium); line-height: 1.35; }
  .fx-board__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fx-space-2); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-board__foot > .fx-avatar:last-child { margin-inline-start: auto; }
  .fx-board__add { justify-content: flex-start; color: var(--fx-text-tertiary); }
  /* yigʻilgan ustun: tor vertikal rels, nom aylantirilgan */
  .fx-board__col[data-collapsed] { inline-size: var(--fx-control-h-lg); grid-template-rows: auto; }
  .fx-board__col[data-collapsed] .fx-board__head { flex-direction: column; writing-mode: vertical-rl; min-block-size: calc(var(--fx-space-12) * 3); padding-block: var(--fx-space-2); }
  .fx-board__col[data-collapsed] .fx-board__list, .fx-board__col[data-collapsed] .fx-board__add { display: none; }
  .fx-board:has(.fx-board__col[data-collapsed]) { grid-auto-columns: auto; grid-template-columns: none; }
  .fx-board:has(.fx-board__col[data-collapsed]) > .fx-board__col:not([data-collapsed]) { inline-size: calc(var(--fx-space-12) * 5.5); }
}

@layer fx.components {
  .fx-btn {
    /* bir xil oʻlcham (Ustoz 19.10: «tugmalar markazda emas»): <button>’da brauzerning 1 px ichki chekinishi va border-box, <a>’da content-box edi —
       balandlik 44 va 46, matn 1 px siljigan. Endi har qanday teg bilan bir xil quti: chegara ichida, tik chekinishsiz */
    box-sizing: border-box;
    padding-block: 0;
    --_h: var(--fx-control-h-md);
    --_fg: var(--fx-text-primary);
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fx-space-2);
    block-size: var(--_h);
    padding-inline: var(--fx-space-4);
    /* chegara oʻqiga boʻysunadi (Ustoz 19.10: «chiziqsiz tanlasam ham tugma chiziqligicha qolyapti»): chiziq knob.outline bilan, fon maydon kabi knob.field-fill bilan —
       chiziqli: chiziq; chiziqsiz: chiziqsiz, toʻldirilgan; gibrid: sahifada chiziqsiz, yuza ichida chiziq */
    border: var(--fx-border-width-default) solid color-mix(in oklab, var(--fx-border-color-strong) calc(var(--fx-knob-outline) * 100%), transparent);
    /* FX-SHAPE-02: pill = balandlik / 2, komponent ichida hisoblanadi */
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control));
    font: inherit;
    font-size: var(--fx-font-size-sm);
    font-weight: var(--fx-font-weight-medium);
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    background: color-mix(in oklab, var(--fx-bg-muted) calc(var(--fx-knob-field-fill) * 100%), var(--fx-bg-surface));
    color: var(--_fg);
    transition: background-color var(--fx-motion-fast) var(--fx-ease-standard),
      border-radius var(--fx-motion-base) var(--fx-ease-standard),
      block-size var(--fx-motion-base) var(--fx-ease-standard),
      scale var(--fx-motion-instant) var(--fx-ease-standard);
  }
  .fx-btn:hover { background: color-mix(in oklab, var(--fx-bg-muted-hover) calc((0.5 + var(--fx-knob-field-fill) * 0.5) * 100%), var(--fx-bg-surface)); }
  .fx-btn:active:not(:disabled, [aria-disabled="true"], [aria-busy="true"]) { scale: var(--fx-motion-press); }
  /* Holat qadami (Ustoz 24.10): hover — rang şkalasida +1, bosilganda — +2, doim yozuv rangidan uzoqlaşadi (kontrast faqat oşadi).
     Qiymatlar tokenda (--fx-bg-*-hover / -active), har mavzu öz şkalasidan beradi; kontrast qöriqçisi uçala holatni tekşiradi */
  .fx-btn:active:not(:disabled, [aria-disabled="true"], [aria-busy="true"]) { background: var(--fx-bg-pressed); }
  .fx-btn[data-variant="primary"]:active:not(:disabled, [aria-disabled="true"], [aria-busy="true"]) { background: var(--fx-bg-brand-solid-active); }
  .fx-btn[data-variant="danger"]:active:not(:disabled, [aria-disabled="true"], [aria-busy="true"]) { background: var(--fx-bg-error-solid-active); }
  .fx-btn[data-variant="tonal"]:active:not(:disabled, [aria-disabled="true"], [aria-busy="true"]) { background: var(--fx-bg-brand-subtle-active); }
  .fx-btn[data-variant="outline"]:active:not(:disabled, [aria-disabled="true"], [aria-busy="true"]) { background: var(--fx-bg-brand-subtle-hover); }
  .fx-btn:is([data-variant="danger-ghost"], [data-variant="danger-outline"]):active:not(:disabled, [aria-disabled="true"], [aria-busy="true"]) { background: var(--fx-bg-error-subtle-active); }
  .fx-btn[data-variant="link"]:active { background: transparent; }
  .fx-btn:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-btn > svg { flex: none; inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-btn[data-variant="primary"] { --_fg: var(--fx-text-on-brand); background: var(--fx-bg-brand-solid); border-color: transparent; }
  .fx-btn[data-variant="primary"]:hover { background: var(--fx-bg-brand-solid-hover); }
  .fx-btn[data-variant="ghost"] { background: transparent; border-color: transparent; }
  .fx-btn[data-variant="ghost"]:hover { background: var(--fx-bg-muted); }
  .fx-btn[data-variant="ghost"]:active { background: var(--fx-bg-pressed); }
  .fx-btn[data-variant="danger"] { --_fg: var(--fx-text-on-error); background: var(--fx-bg-error-solid); border-color: transparent; }
  .fx-btn[data-variant="danger"]:hover { background: var(--fx-bg-error-solid-hover); }
  /* Havola koʻrinishidagi tugma: amal, lekin matn kabi (masalan, «Barchasini koʻrish») */
  .fx-btn[data-variant="link"] { --_h: auto; --_fg: var(--fx-text-brand); padding: 0; border-color: transparent; background: transparent; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: var(--fx-space-1); }
  .fx-btn[data-variant="link"]:hover { background: transparent; text-decoration-color: currentColor; }
  .fx-btn[data-size="sm"] { --_h: var(--fx-control-h-sm); padding-inline: var(--fx-space-3); }
  .fx-btn[data-size="lg"] { --_h: var(--fx-control-h-lg); padding-inline: var(--fx-space-5); font-size: var(--fx-font-size-md); }
  /* Faqat ikonka: kvadrat (Aylana uslubida — doira); nomi aria-label'da */
  /* Faqat ikonka koʻrinadigan har qanday tugma — kvadrat/doira, hech qachon oval («qovun») emas (Ustoz 19.10):
     data-shape="icon" yoki tor ekranda yozuvi yashirinadigan tugma (data-label="collapse"). WDS «Shakl va oraliq» 2026-10-19 */
  .fx-btn[data-shape="icon"] { inline-size: var(--_h); padding-inline: 0; flex: none; }
  /* Ikon doiraga mutanosib (Ustoz 20.10: «ikon doiraga nisbatan kichik»): faqat ikonli tugmada ikon — tugma balandligining ~55 %i
     (36 → 20, 44 → 24, 52 → 28 px); qoʻriqchi — scripts/test-ota.mjs ICON-01 (≥ 50 %). WDS «Ikonka» 2026-10-20 */
  .fx-btn[data-shape="icon"] > svg { inline-size: calc(var(--_h) * 0.55); block-size: calc(var(--_h) * 0.55); inline-size: round(calc(var(--_h) * 0.55), 1px); block-size: round(calc(var(--_h) * 0.55), 1px); }
  @media (max-width: 839.98px) {
    .fx-btn[data-label="collapse"] > svg { inline-size: calc(var(--_h) * 0.55); block-size: calc(var(--_h) * 0.55); inline-size: round(calc(var(--_h) * 0.55), 1px); block-size: round(calc(var(--_h) * 0.55), 1px); }
    .fx-btn[data-label="collapse"] { inline-size: var(--_h); padding-inline: 0; flex: none; gap: 0; }
    .fx-btn[data-label="collapse"] > :not(svg) { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  }
  .fx-btn[data-width="full"] { inline-size: 100%; }
  /* Telefonda forma tugmasi — maydonlar bilan bir xil enda (Ustoz 20.10): formaning yolgʻiz yuborish tugmasi < 640 px da 100 %.
     Bir qatordagi bir nechta tugma, ikonli tugma va data-width bilan berilgani tegilmaydi. */
  @media (max-width: 599.98px) {
    form > .fx-btn:is([type="submit"], :not([type])):not([data-shape="icon"], [data-width], .fx-search__go), /* qidiruv ichidagi tugma — yoyilmaydi (Fox MB 21.10) */
    form > div > .fx-btn:only-child:is([type="submit"], :not([type])):not([data-shape="icon"], [data-width]) { inline-size: 100%; }
  }
  /* Bosilgan holat (yoqish tugmasi): aria-pressed */
  .fx-btn[aria-pressed="true"] { background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); border-color: transparent; }
  .fx-btn:disabled, .fx-btn[aria-disabled="true"] { --_fg: var(--fx-text-disabled); cursor: not-allowed; background: var(--fx-bg-muted); border-color: transparent; }
  /* Yuklanmoqda: matn joyida qoladi (tugma eni sakramaydi), ustida aylana; reduced-motion'da faqat pulsatsiya */
  .fx-btn[aria-busy="true"] { color: transparent; cursor: progress; }
  .fx-btn[aria-busy="true"]::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    inline-size: var(--fx-size-icon-sm);
    block-size: var(--fx-size-icon-sm);
    border: var(--fx-border-width-focus) solid var(--_fg);
    border-inline-end-color: transparent;
    border-radius: var(--fx-radius-circle);
    animation: fx-spin var(--fx-duration-spin) linear infinite;
  }
  @media (prefers-reduced-motion: reduce) {
    .fx-btn[aria-busy="true"]::after { animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
    .fx-btn:active { scale: none; }
  }
  /* expressive: oxirgi ikonka (strelka) hover'da biroz oldinga turtiladi */
  .fx-btn > svg:last-child:not(:first-child) { transition: translate var(--fx-motion-fast) var(--fx-ease-spring); }
  .fx-btn:hover > svg:last-child:not(:first-child) { translate: calc(var(--fx-space-1) / 2 * var(--fx-knob-motion-lift)) 0; }

  /* --- Kengaytma (2.1–2.14) --- */
  /* xs / xl o‘lchamlar: jadval ichi va hero */
  .fx-btn[data-size="xs"] { --_h: var(--fx-size-min-target); padding-inline: var(--fx-space-2); font-size: var(--fx-font-size-xs); gap: var(--fx-space-1); }
  .fx-btn[data-size="xl"] { --_h: calc(var(--fx-control-h-lg) * 1.2); padding-inline: var(--fx-space-6); font-size: var(--fx-font-size-lg); }
  /* Tonal: brend rangining och foni (primary'dan yengil) */
  .fx-btn[data-variant="tonal"] { --_fg: var(--fx-text-brand); background: var(--fx-bg-brand-subtle); border-color: transparent; }
  .fx-btn[data-variant="tonal"]:hover { background: var(--fx-bg-brand-subtle-hover); }
  /* Outline: brend chegarali, foni yo‘q */
  .fx-btn[data-variant="outline"] { --_fg: var(--fx-text-brand); background: transparent; border-color: currentColor; }
  .fx-btn[data-variant="outline"]:hover { background: var(--fx-bg-brand-subtle); }
  /* Danger-ghost / danger-outline: jadvaldagi «O‘chirish» — xavfli, lekin baqiroq emas */
  .fx-btn[data-variant="danger-ghost"] { --_fg: var(--fx-fg-error); background: transparent; border-color: transparent; }
  .fx-btn[data-variant="danger-ghost"]:hover { background: var(--fx-bg-error-subtle); }
  .fx-btn[data-variant="danger-outline"] { --_fg: var(--fx-fg-error); background: transparent; border-color: currentColor; }
  .fx-btn[data-variant="danger-outline"]:hover { background: var(--fx-bg-error-subtle); }
  .fx-btn:is([data-variant="tonal"], [data-variant="outline"], [data-variant="danger-ghost"], [data-variant="danger-outline"]):is(:disabled, [aria-disabled="true"]) { --_fg: var(--fx-text-disabled); background: var(--fx-bg-muted); border-color: transparent; }
  /* Menyu tugmasi: ▾ chevron, menyu ochiq bo‘lsa 180° buriladi */
  .fx-btn__chev { flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); transition: rotate var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-btn:hover > svg.fx-btn__chev:last-child:not(:first-child) { translate: none; }
  .fx-btn[aria-expanded="true"] .fx-btn__chev { rotate: 180deg; }
  /* Tugma ichidagi kbd / son: o‘ng chetda */
  .fx-btn > :is(.fx-kbd, .fx-badge) { margin-inline-end: calc(var(--fx-space-1) * -1); }
  .fx-btn > .fx-kbd { background: transparent; color: inherit; opacity: 0.8; }
  /* Ikon almashinuvi: aria-pressed=true bo‘lsa .fx-btn__on ko‘rinadi, .fx-btn__off yashiriladi */
  .fx-btn__on { display: none; }
  .fx-btn[aria-pressed="true"] > .fx-btn__on { display: inline-block; }
  .fx-btn[aria-pressed="true"] > .fx-btn__off { display: none; }
  /* Yuklanish, matn saqlanadi: spinner matn yonida (data-loading="text") */
  .fx-btn[aria-busy="true"][data-loading="text"] { color: var(--_fg); }
  .fx-btn[aria-busy="true"][data-loading="text"]::after { position: static; margin: 0; flex: none; order: -1; }
  /* Havola-tugma: o‘chirilgan bo‘lsa bosilmaydi */
  a.fx-btn[aria-disabled="true"] { pointer-events: none; }
  /* Fokus: ichki halqa (qirqiladigan konteyner, guruh ichida) */
  .fx-btn[data-focus="inset"]:focus-visible { outline-offset: calc(var(--fx-border-width-focus) * -1); }
  /* Kichik tugmada bosish maydoni kengayadi (WCAG 2.5.8): ko‘rinish o‘zgarmaydi */
  .fx-btn:is([data-size="xs"], [data-size="sm"], [data-shape="icon"])::before { content: ""; position: absolute; inset: calc(var(--fx-space-1) * -1); }

  /* Tugmalar guruhi (yopishgan): ichki burchaklar 0, chegaralar birlashadi. data-orientation="vertical", data-fill */
  .fx-btn-group { display: inline-flex; isolation: isolate; }
  .fx-btn-group > .fx-btn { border-radius: 0; }
  .fx-btn-group > .fx-btn:first-child { border-start-start-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control)); border-end-start-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control)); }
  .fx-btn-group > .fx-btn:last-child { border-start-end-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control)); border-end-end-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control)); }
  .fx-btn-group > .fx-btn + .fx-btn { margin-inline-start: calc(var(--fx-border-width-default) * -1); }
  .fx-btn-group > .fx-btn:is(:hover, :focus-visible, [aria-pressed="true"]) { z-index: 1; }
  /* Split: asosiy amal + ▾; bir xil to‘la rangli qismlar orasida ingichka ajratgich */
  .fx-btn-group > .fx-btn:is([data-variant="primary"], [data-variant="danger"]) + .fx-btn:is([data-variant="primary"], [data-variant="danger"]) { border-inline-start: var(--fx-border-width-default) solid color-mix(in oklab, var(--_fg) 35%, transparent); }
  .fx-btn-group > .fx-btn[data-shape="icon"] { inline-size: auto; padding-inline: var(--fx-space-2); }
  .fx-btn-group[data-orientation="vertical"] { flex-direction: column; }
  .fx-btn-group[data-orientation="vertical"] > .fx-btn:is(:first-child, :last-child) { border-radius: 0; }
  .fx-btn-group[data-orientation="vertical"] > .fx-btn:first-child { border-start-start-radius: var(--fx-radius-control); border-start-end-radius: var(--fx-radius-control); }
  .fx-btn-group[data-orientation="vertical"] > .fx-btn:last-child { border-end-start-radius: var(--fx-radius-control); border-end-end-radius: var(--fx-radius-control); }
  .fx-btn-group[data-orientation="vertical"] > .fx-btn + .fx-btn { margin-inline-start: 0; margin-block-start: calc(var(--fx-border-width-default) * -1); }
  .fx-btn-group[data-fill] { display: flex; }
  .fx-btn-group[data-fill] > .fx-btn { flex: 1; }

  /* Holatli tugma (4-toʻlqin 4.36): yuklanish (aria-busy) → data-state="success" ✓ yoki "error" ✕ → oʻzi asl koʻrinishga qaytadi
     (~1,6 s, --fx-duration-pulse — harakat emas, kutish vaqti). Belgi shakl bilan (✓/✕), rang qoʻshimcha; data-state-label — belgi yonidagi
     soʻz («Saqlandi»). Holatni ekran oʻquvchiga alohida aria-live bilan ayting; keyingi bosishdan oldin data-state'ni olib tashlang. */
  .fx-btn:is([data-state="success"], [data-state="error"]):not([aria-busy="true"]) { --_sbg: var(--fx-bg-success-subtle); --_sfg: var(--fx-fg-success); animation: fx-btn-state var(--fx-duration-pulse) linear both; }
  .fx-btn[data-state="error"]:not([aria-busy="true"]) { --_sbg: var(--fx-bg-error-subtle); --_sfg: var(--fx-fg-error); animation: fx-btn-state var(--fx-duration-pulse) linear both, fx-btn-shake var(--fx-motion-slow) var(--fx-ease-standard); }
  .fx-btn:is([data-state="success"], [data-state="error"]):not([aria-busy="true"])::after {
    content: "✓";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--fx-space-1);
    color: var(--_sfg);
    font-weight: var(--fx-font-weight-semibold);
    pointer-events: none;
    animation: fx-btn-state-mark var(--fx-duration-pulse) var(--fx-ease-standard) both;
  }
  .fx-btn[data-state="error"]:not([aria-busy="true"])::after { content: "✕"; }
  .fx-btn[data-state="success"][data-state-label]:not([aria-busy="true"])::after { content: "✓ " attr(data-state-label); }
  .fx-btn[data-state="error"][data-state-label]:not([aria-busy="true"])::after { content: "✕ " attr(data-state-label); }
  @keyframes fx-btn-state { 0%, 85% { color: transparent; background-color: var(--_sbg); border-color: transparent; } }
  @keyframes fx-btn-state-mark { 0% { opacity: 0; scale: calc(1 - (1 - var(--fx-motion-scale-enter)) * 6); } 12%, 85% { opacity: 1; scale: 1; } 100% { opacity: 0; } }
  @keyframes fx-btn-shake { 25% { translate: calc(var(--fx-motion-shift-sm) * -1) 0; } 50% { translate: var(--fx-motion-shift-sm) 0; } 75% { translate: calc(var(--fx-motion-shift-sm) * -0.5) 0; } }
}

@layer fx.components {
  /* Kalendar (#2): oy toʻri, kun tanlash yoki oraliq, oy/yil koʻrinishi. Hafta Dushanbadan. Xulq (foxui.js → calendar) hamma narsani chizadi;
     holatlar faqat rangda emas: tanlangan — toʻldirilgan, bugun — halqa, oʻchirilgan — chizilgan, oraliq — tasma. */
  .fx-calendar {
    --_cell: var(--fx-control-h-md);
    --_r: calc(var(--fx-knob-pill) * var(--_cell) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control));
    display: inline-grid;
    inline-size: max-content;
    justify-self: start;
    gap: var(--fx-space-2);
    color: var(--fx-text-primary);
    font-size: var(--fx-font-size-sm);
  }
  .fx-calendar[data-size="sm"] { --_cell: var(--fx-control-h-sm); font-size: var(--fx-font-size-xs); }
  .fx-calendar__head { display: flex; align-items: center; justify-content: space-between; gap: var(--fx-space-2); }
  .fx-calendar__title { flex: 1; min-block-size: var(--fx-control-h-sm); padding-inline: var(--fx-space-3); border: 0; border-radius: var(--_r); background: transparent; color: inherit; font: inherit; font-weight: var(--fx-font-weight-semibold); cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-calendar__title:hover:not(:disabled) { background: var(--fx-bg-muted); }
  .fx-calendar__title:disabled { cursor: default; }
  .fx-calendar__nav { flex: none; display: grid; place-items: center; inline-size: var(--fx-control-h-sm); block-size: var(--fx-control-h-sm); padding: 0; border: 0; border-radius: var(--_r); background: transparent; color: var(--fx-text-secondary); cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-calendar__nav:hover { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-calendar__nav > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-calendar__nav:active, .fx-calendar__title:active:not(:disabled) { scale: var(--fx-motion-press); }
  .fx-calendar :is(.fx-calendar__nav, .fx-calendar__title, .fx-calendar__day):focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-calendar__months { display: flex; gap: var(--fx-space-6); }
  .fx-calendar__grid { border-collapse: separate; border-spacing: 0; table-layout: fixed; }
  .fx-calendar__dow { block-size: var(--fx-control-h-sm); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); color: var(--fx-text-tertiary); text-align: center; }
  .fx-calendar__cell { inline-size: var(--_cell); block-size: var(--_cell); padding: 0; text-align: center; }
  .fx-calendar__day { box-sizing: border-box; display: grid; place-items: center; inline-size: min(100%, var(--_cell)); block-size: auto; aspect-ratio: 1; margin-inline: auto; /* tor ekranda ham kvadrat — doira ezilmaydi (SHAPE-01) */ padding: 0; border: 0; border-radius: var(--_r); background: transparent; color: var(--fx-text-primary); font: inherit; font-variant-numeric: tabular-nums; cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard), border-radius var(--fx-motion-base) var(--fx-ease-standard); }
  .fx-calendar__grid[data-kind] .fx-calendar__cell { inline-size: calc(var(--_cell) * 7 / 3); block-size: var(--_cell); }
  .fx-calendar__grid[data-kind] .fx-calendar__day { inline-size: 100%; block-size: 100%; aspect-ratio: auto; }
  .fx-calendar__day:hover:not([data-selected]):not([aria-disabled="true"]) { background: var(--fx-bg-muted); }
  .fx-calendar__day:active:not([data-selected]):not([aria-disabled="true"]) { background: var(--fx-bg-pressed); }
  .fx-calendar__day:active:not([aria-disabled="true"]) { scale: var(--fx-motion-press); }
  .fx-calendar__day[data-outside] { color: var(--fx-text-tertiary); }
  /* Bugun — halqa (toʻldirilmagan, tanlangandan farqli) */
  .fx-calendar__day[data-today] { outline: var(--fx-border-width-focus) solid var(--fx-border-color-strong); outline-offset: calc(var(--fx-border-width-focus) * -1); font-weight: var(--fx-font-weight-semibold); }
  /* Tanlangan — toʻldirilgan */
  .fx-calendar__day[data-selected] { background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); font-weight: var(--fx-font-weight-semibold); outline: 0; }
  /* Oʻchirilgan: chizilgan raqam, bosilmaydi (fokus oladi — aria-disabled) */
  .fx-calendar__day[aria-disabled="true"] { color: var(--fx-text-disabled); text-decoration: line-through; cursor: not-allowed; }
  /* Oraliq: tasma hujayra orqasida; boshi va oxiri — tanlangan tugma + yarim tasma */
  .fx-calendar__cell[data-in-range] { background: var(--fx-bg-brand-subtle); }
  .fx-calendar__cell[data-in-range] .fx-calendar__day { border-radius: 0; }
  .fx-calendar__cell[data-band="start"] { background: linear-gradient(to right, transparent 50%, var(--fx-bg-brand-subtle) 50%); }
  .fx-calendar__cell[data-band="end"] { background: linear-gradient(to left, transparent 50%, var(--fx-bg-brand-subtle) 50%); }
  .fx-calendar__cell[data-preview][data-range-end]:not([data-band]) { background: linear-gradient(to left, transparent 50%, var(--fx-bg-brand-subtle) 50%); }
  .fx-calendar__cell[data-preview][data-range-end] .fx-calendar__day:not([data-selected]) { outline: var(--fx-border-width-default) solid var(--fx-bg-brand-solid); outline-offset: calc(var(--fx-border-width-default) * -1); }
  .fx-calendar__cell[data-range-start]:has(~ [data-in-range], ~ [data-range-end]) .fx-calendar__day { border-start-end-radius: 0; border-end-end-radius: 0; }
  .fx-calendar__foot { display: flex; justify-content: space-between; gap: var(--fx-space-2); padding-block-start: var(--fx-space-2); border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); }

  /* ---- Bir nechta sana (4.99): har kun alohida belgilanadi/olinadi; tanlanganlar orasida kichik tirqish — bir-biriga qoʻshilib
     oraliqqa oʻxshab qolmasin. Pastda «N kun tanlandi» (soʻz bilan). ---- */
  .fx-calendar[data-mode="multiple"] .fx-calendar__cell { padding: calc(var(--fx-space-1) / 2); }
  .fx-calendar[data-mode="multiple"] .fx-calendar__foot { align-items: center; }
  .fx-calendar__count { margin-inline-end: auto; color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; }
  /* ---- Hafta raqamlari (4.98): chapda ISO hafta (th scope=row) — xira, kichik, ajratuvchi chiziq bilan; bosilmaydi ---- */
  .fx-calendar__wk { inline-size: calc(var(--_cell) * 0.75); padding: 0; border-inline-end: var(--fx-border-width-default) solid var(--fx-border-color-default); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-regular); font-variant-numeric: tabular-nums; text-align: center; }
  .fx-calendar__grid .fx-calendar__wk + .fx-calendar__cell, .fx-calendar__grid .fx-calendar__wk + .fx-calendar__dow { padding-inline-start: var(--fx-space-1); }
  /* ---- Yil va oʻn yillik (4.100): data-mode="year" — yil toʻri asosiy koʻrinish; oʻn yilliklar katagi kengroq («1990–1999») ---- */
  .fx-calendar__grid[data-kind="decades"] .fx-calendar__day { font-size: var(--fx-font-size-xs); }
  .fx-calendar[data-mode="year"] .fx-calendar__grid[data-kind="years"] .fx-calendar__day { font-weight: var(--fx-font-weight-medium); }
}

@layer fx.components {
  .fx-card {
    display: grid;
    gap: var(--fx-space-4);
    padding: var(--fx-space-5);
    background: var(--fx-bg-surface);
    border: var(--fx-border-width-default) solid var(--fx-border-color-surface);
    border-radius: var(--fx-radius-surface);
    box-shadow: var(--fx-shadow-sm);
    transition: border-radius var(--fx-motion-base) var(--fx-ease-standard), box-shadow var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-card__title { margin: 0; font-size: var(--fx-font-size-lg); font-weight: var(--fx-font-weight-semibold); }
  .fx-card__text { margin: 0; color: var(--fx-text-secondary); font-size: var(--fx-font-size-sm); }
  .fx-card[data-variant="raised"] { box-shadow: var(--fx-shadow-md); }
  /* Bosiladigan karta: hover'da koʻtariladi (faqat expressive — knob), bosilganda botadi */
  :is(a.fx-card, .fx-card[data-interactive]) { transition: border-radius var(--fx-motion-base) var(--fx-ease-standard), box-shadow var(--fx-motion-base) var(--fx-ease-standard), translate var(--fx-motion-base) var(--fx-ease-enter), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  :is(a.fx-card, .fx-card[data-interactive]):hover { translate: 0 calc(var(--fx-motion-lift) * var(--fx-knob-motion-lift)); box-shadow: var(--fx-shadow-md); }
  :is(a.fx-card, .fx-card[data-interactive]):active { scale: calc(1 - (1 - var(--fx-motion-press)) / 3); }

  /* Anatomiya: sarlavha qatori, media, tana, amallar, pastki qator. Karta ichki oraliqni oʻzi beradi; media chetga yetadi. */
  .fx-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--fx-space-3); }
  .fx-card__heading { display: grid; gap: calc(var(--fx-space-1) / 2); min-inline-size: 0; }
  .fx-card__heading > .fx-card__title { overflow-wrap: anywhere; }
  .fx-card__media { overflow: hidden; margin: calc(var(--fx-space-5) * -1) calc(var(--fx-space-5) * -1) 0; border-start-start-radius: inherit; border-start-end-radius: inherit; background: var(--fx-bg-muted); }
  .fx-card__media > :is(img, video, svg) { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
  .fx-card__body { display: grid; gap: var(--fx-space-3); min-inline-size: 0; align-content: start; }
  .fx-card__footer { display: flex; align-items: center; justify-content: space-between; gap: var(--fx-space-3); padding-block-start: var(--fx-space-4); border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); font-size: var(--fx-font-size-sm); color: var(--fx-text-secondary); }
  .fx-card__actions { display: flex; align-items: center; gap: var(--fx-space-2); flex-wrap: wrap; }
  /* Gorizontal: media chapda, tana oʻngda */
  @media (min-width: 600px) {
    .fx-card[data-layout="horizontal"] { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: stretch; }
    .fx-card[data-layout="horizontal"] > .fx-card__media { margin: calc(var(--fx-space-5) * -1) 0 calc(var(--fx-space-5) * -1) calc(var(--fx-space-5) * -1); border-radius: 0; border-start-start-radius: inherit; border-end-start-radius: inherit; }
  }
  /* Ixcham: oraliq kichik */
  .fx-card[data-density="compact"] { gap: var(--fx-space-3); padding: var(--fx-space-3) var(--fx-space-4); }
  .fx-card[data-density="compact"] > .fx-card__media { margin: calc(var(--fx-space-3) * -1) calc(var(--fx-space-4) * -1) 0; }
  .fx-card[data-density="compact"] .fx-card__title { font-size: var(--fx-font-size-md); }
  .fx-card[data-density="compact"] .fx-card__footer { padding-block-start: var(--fx-space-3); }
  /* Tanlanadigan: butun karta belgilash maydoni (yorliq), ichida .fx-check; tanlangan — qalin chegara + belgi koʻrinadi */
  .fx-card[data-selectable] { position: relative; cursor: pointer; }
  .fx-card[data-selectable] .fx-card__check { position: absolute; inset-block-start: var(--fx-space-3); inset-inline-end: var(--fx-space-3); z-index: 1; }
  .fx-card[data-selectable]:hover { border-color: var(--fx-border-color-strong); }
  .fx-card[data-selectable]:has(input:checked) { border-color: var(--fx-bg-brand-solid); background: var(--fx-bg-brand-subtle); }
  .fx-card[data-selectable]:has(input:focus-visible) { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-card[data-selectable]:has(input:disabled) { cursor: not-allowed; opacity: 0.6; }
  /* ---- Kengaytma (2.63–2.71): choʻzilgan havola, aria-pressed, variantlar, yigʻiladigan, yuklanish, jadval kartasi, well ---- */
  /* Butun karta bitta havola: sarlavhadagi .fx-card__link ::after bilan butun kartani qoplaydi; ichidagi tugma/havolalar ustida qoladi */
  .fx-card[data-stretched] { position: relative; transition: border-radius var(--fx-motion-base) var(--fx-ease-standard), box-shadow var(--fx-motion-base) var(--fx-ease-standard), translate var(--fx-motion-base) var(--fx-ease-enter), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-card__link { color: inherit; text-decoration: none; }
  .fx-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
  .fx-card__link:focus-visible { outline: none; }
  .fx-card[data-stretched]:has(.fx-card__link:focus-visible) { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-card[data-stretched]:hover { translate: 0 calc(var(--fx-motion-lift) * var(--fx-knob-motion-lift)); box-shadow: var(--fx-shadow-md); }
  .fx-card[data-stretched]:active { scale: calc(1 - (1 - var(--fx-motion-press)) / 3); }
  .fx-card[data-stretched] :is(button, a:not(.fx-card__link), input, select, label, summary) { position: relative; z-index: 1; }
  /* Tanlanadigan karta: aria-pressed (tugma/rolli karta), input oʻrniga */
  .fx-card[aria-pressed] { cursor: pointer; text-align: start; font: inherit; color: inherit; }
  .fx-card[aria-pressed]:hover { border-color: var(--fx-border-color-strong); }
  .fx-card[aria-pressed="true"] { border-color: var(--fx-bg-brand-solid); background: var(--fx-bg-brand-subtle); }
  .fx-card[aria-pressed]:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-card[aria-pressed]:active { scale: calc(1 - (1 - var(--fx-motion-press)) / 3); }
  /* Variantlar: outline (faqat chiziq), filled (tekis fon), ghost (yuzasiz) */
  .fx-card[data-variant="outline"] { box-shadow: none; border-color: var(--fx-border-color-default); }
  .fx-card[data-variant="filled"] { box-shadow: none; border-color: transparent; background: var(--fx-bg-muted); }
  .fx-card[data-variant="ghost"] { box-shadow: none; border-color: transparent; background: transparent; }
  /* Yigʻiladigan karta: <details class="fx-card"> + <summary class="fx-card__summary"> */
  details.fx-card { align-content: start; }
  .fx-card__summary { display: flex; align-items: center; gap: var(--fx-space-3); cursor: pointer; list-style: none; font-size: var(--fx-font-size-lg); font-weight: var(--fx-font-weight-semibold); }
  .fx-card__summary::-webkit-details-marker { display: none; }
  .fx-card__summary::after { content: ""; flex: none; margin-inline-start: auto; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: currentColor; opacity: 0.55; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; rotate: -90deg; transition: rotate var(--fx-motion-base) var(--fx-ease-standard); }
  details.fx-card[open] > .fx-card__summary::after { rotate: 0deg; }
  .fx-card__summary:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); border-radius: var(--fx-radius-badge); }
  @supports (interpolate-size: allow-keywords) {
    details.fx-card { interpolate-size: allow-keywords; }
    details.fx-card::details-content { block-size: 0; overflow: clip; transition: block-size var(--fx-motion-base) var(--fx-ease-standard), content-visibility var(--fx-motion-base) allow-discrete; }
    details.fx-card[open]::details-content { block-size: auto; }
  }
  /* Yuklanish: yuqorida puls qiluvchi chiziq, ichidagi bosishlar toʻxtaydi */
  .fx-card[aria-busy="true"] { position: relative; cursor: progress; }
  .fx-card[aria-busy="true"]::after { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; block-size: var(--fx-border-width-focus); border-start-start-radius: inherit; border-start-end-radius: inherit; background: var(--fx-bg-brand-solid); animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-card[aria-busy="true"] > :not(.fx-card__header) { pointer-events: none; }
  @media (prefers-reduced-motion: reduce) { .fx-card[aria-busy="true"]::after { animation: none; } }
  /* Jadval kartasi: boshi + jadval + pastki (sahifalash); chetlarigacha */
  .fx-card[data-flush] { gap: 0; padding: 0; overflow: clip; }
  .fx-card[data-flush] > :is(.fx-card__header, .fx-card__footer) { padding: var(--fx-space-4) var(--fx-space-5); }
  .fx-card[data-flush] > .fx-card__header { border-block-end: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-card[data-flush] > .fx-card__footer { border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-card[data-flush] > .fx-card__media { margin: 0; }
  /* Well (karta ichidagi ichki yuza): sarlavha ostidagi kod, xulosa, eslatma */
  .fx-card__well { padding: var(--fx-space-4); border-radius: var(--fx-radius-control); background: var(--fx-bg-subtle); color: var(--fx-text-primary); font-size: var(--fx-font-size-sm); }
  @media (forced-colors: active) { .fx-card { border-color: CanvasText; } .fx-card[aria-pressed="true"], .fx-card[data-selectable]:has(input:checked) { border-color: Highlight; outline: var(--fx-border-width-focus) solid Highlight; } }
}

@layer fx.components {
  /* Grafik (WDS «Grafiklar»): rollar 60/30/10 — siyoh · brend · aksent; xavf — yagona qizil; kulrang — faqat toʻr va kontekst.
     Ustun ≤ 24 px, yoy faqat uchida; chiziq 2 px; nuqta 8 px + fon halqasi faqat oxirida va hover'da; hover'da qolgani 45 %.
     Kartada va grafikda soya yoʻq. Chizish — foxui.js (data-fx-chart), ma'lumot — ichidagi jadval. */
  .fx-chart { position: relative; display: grid; align-content: start; gap: var(--fx-space-3); margin: 0; min-inline-size: 0; color: var(--fx-text-primary); }
  .fx-chart > figcaption { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--fx-space-1) var(--fx-space-3); }
  .fx-chart__title { font-size: var(--fx-font-size-md); font-weight: var(--fx-font-weight-semibold); }
  .fx-chart__sub { flex-basis: 100%; order: 3; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-chart__toggle { margin-inline-start: auto; padding: var(--fx-space-1) var(--fx-space-2); border: 0; border-radius: var(--fx-radius-control); background: none; color: var(--fx-text-tertiary); font: inherit; font-size: var(--fx-font-size-xs); cursor: pointer; }
  .fx-chart__toggle:hover { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-chart__toggle:active { background: var(--fx-bg-pressed); }
  .fx-chart__toggle:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: 1px; }
  .fx-chart__plot { position: relative; min-inline-size: 0; }
  .fx-chart__plot > svg { display: block; inline-size: 100%; block-size: auto; overflow: visible; font-family: var(--fx-font-family-sans); font-size: calc(var(--fx-font-size-xs) * 0.92); font-variant-numeric: tabular-nums; }
  .fx-chart__plot > svg:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-space-1); border-radius: var(--fx-radius-control); }

  /* rollar */
  .fx-chart [data-role] { --_c: var(--fx-viz-brand); }
  .fx-chart [data-role="ink"] { --_c: var(--fx-viz-ink); }
  .fx-chart [data-role="accent"] { --_c: var(--fx-viz-accent); }
  .fx-chart [data-role="risk"] { --_c: var(--fx-viz-risk); }
  .fx-chart [data-role="context"] { --_c: var(--fx-viz-context); }
  .fx-chart__mark { fill: var(--_c); transition: opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-chart__line { fill: none; stroke: var(--_c); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
  .fx-chart__line[data-dash] { stroke-width: 1.5; stroke-dasharray: 4 4; }
  .fx-chart__stop { stop-color: var(--_c); }
  .fx-chart__dot { fill: var(--_c); stroke: var(--fx-bg-surface); stroke-width: 2; opacity: 0; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-chart__dot:is([data-last], [data-on]) { opacity: 1; }
  .fx-chart svg[data-active] .fx-chart__mark:not([data-on]) { opacity: 0.45; }
  .fx-chart__grid line { stroke: var(--fx-viz-grid); stroke-width: 1; }
  .fx-chart__grid line[data-zero] { stroke: var(--fx-border-color-strong); }
  .fx-chart__grid text, .fx-chart__cat { fill: var(--fx-text-tertiary); }
  .fx-chart__total { fill: var(--fx-text-primary); font-size: var(--fx-font-size-lg); font-weight: var(--fx-font-weight-semibold); }

  /* kirish: ustun oʻsadi, chiziq chiziladi (harakat kamaytirilsa — yoʻq: --fx-motion-* = 0) */
  .fx-chart--enter .fx-chart__bar { animation: fx-chart-grow var(--fx-motion-slow) var(--fx-ease-emphasized) both; }
  .fx-chart--enter .fx-chart__line { stroke-dasharray: 1; animation: fx-chart-draw calc(var(--fx-motion-slow) * 2) var(--fx-ease-standard) both; }
  .fx-chart--enter .fx-chart__line[data-dash] { animation: none; stroke-dasharray: 4 4; }
  .fx-chart--enter :is(.fx-chart__area, .fx-chart__dot[data-last]) { animation: fx-fade-in var(--fx-motion-slow) var(--fx-ease-standard) both; }
  .fx-chart[data-type="hbar"] .fx-chart--enter .fx-chart__bar { animation-name: fx-chart-grow-x; }
  @keyframes fx-chart-grow { from { transform: scaleY(0); } }
  @keyframes fx-chart-grow-x { from { transform: scaleX(0); } }
  @keyframes fx-chart-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }

  /* tooltip: avval qiymat (14/600), keyin nom (12) */
  .fx-chart__tip { position: absolute; z-index: 2; display: grid; gap: var(--fx-space-1); min-inline-size: max-content; padding: var(--fx-space-2) var(--fx-space-3); border: var(--fx-border-width-default) solid var(--fx-border-color-surface); border-radius: var(--fx-radius-control); background: var(--fx-bg-surface); box-shadow: var(--fx-shadow-md); pointer-events: none; }
  .fx-chart__tip-row { display: grid; grid-template-columns: auto 1fr; align-items: baseline; column-gap: var(--fx-space-2); }
  .fx-chart__tip-row::before { content: ""; grid-row: span 2; align-self: center; inline-size: var(--fx-space-2); block-size: var(--fx-space-2); border-radius: calc(var(--fx-radius-badge) / 3); background: var(--_c); }
  .fx-chart__tip-row b { font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-semibold); font-variant-numeric: tabular-nums; }
  .fx-chart__tip-row span { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }

  /* legenda: 2+ seriyada */
  .fx-chart__legend { display: flex; flex-wrap: wrap; gap: var(--fx-space-1) var(--fx-space-4); margin: 0; padding: 0; list-style: none; color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); }
  .fx-chart__legend:empty { display: none; }
  .fx-chart__legend li { display: inline-flex; align-items: center; gap: var(--fx-space-2); }
  .fx-chart__legend li::before { content: ""; inline-size: var(--fx-space-2); block-size: var(--fx-space-2); border-radius: calc(var(--fx-radius-badge) / 3); background: var(--_c); }
  .fx-chart__legend b { color: var(--fx-text-primary); font-weight: var(--fx-font-weight-semibold); font-variant-numeric: tabular-nums; }

  /* chiziqli oʻlchagich: nom → katta raqam → toʻliq endagi chiziq (halqa emas, WDS 11.10) */
  .fx-chart__gauges { display: grid; gap: var(--fx-space-4); }
  .fx-chart__gauge { display: grid; gap: var(--fx-space-1); }
  .fx-chart__gauge-name { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-chart__gauge-value { font-family: var(--fx-font-family-display); font-size-adjust: var(--fx-font-adjust-display); font-size: var(--fx-font-size-display-sm); font-variant-numeric: tabular-nums; line-height: 1.1; }
  .fx-chart__gauge-bar { position: relative; display: block; block-size: var(--fx-space-2); border-radius: var(--fx-radius-badge); background: var(--fx-viz-track); }
  .fx-chart__gauge-bar > i { display: block; block-size: 100%; border-radius: inherit; background: var(--_c); transition: inline-size var(--fx-motion-slow) var(--fx-ease-emphasized); }
  .fx-chart__gauge-bar > b { position: absolute; inset-block: calc(var(--fx-space-1) * -1); inline-size: 2px; translate: -1px 0; background: var(--fx-text-primary); }

  /* issiqlik xaritasi: bitta tus, 5 qadam, eng kichigi kulrang */
  .fx-chart__heat { display: grid; grid-template-columns: auto repeat(var(--_cols), minmax(var(--fx-space-8), 1fr)); gap: calc(var(--fx-space-1) / 2); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; }
  .fx-chart__heat-h { padding: var(--fx-space-1) var(--fx-space-2); color: var(--fx-text-tertiary); white-space: nowrap; }
  .fx-chart__heat-col { text-align: center; }
  .fx-chart__heat-cell { display: grid; place-items: center; min-block-size: var(--fx-space-8); border-radius: calc(var(--fx-radius-badge) / 2); color: var(--fx-text-primary); }
  .fx-chart__heat-cell[data-step="0"] { background: var(--fx-viz-track); }
  .fx-chart__heat-cell[data-step="1"] { background: color-mix(in oklab, var(--fx-viz-brand) 25%, var(--fx-bg-surface)); }
  .fx-chart__heat-cell[data-step="2"] { background: color-mix(in oklab, var(--fx-viz-brand) 45%, var(--fx-bg-surface)); }
  .fx-chart__heat-cell[data-step="3"] { background: color-mix(in oklab, var(--fx-viz-brand) 70%, var(--fx-bg-surface)); color: var(--fx-text-on-brand); }
  .fx-chart__heat-cell[data-step="4"] { background: var(--fx-viz-brand); color: var(--fx-text-on-brand); }

  /* holatlar: boʻsh, yuklanish (aria-busy) */
  .fx-chart__empty { display: grid; place-items: center; min-block-size: calc(var(--fx-space-12) * 3); margin: 0; border: var(--fx-border-width-default) dashed var(--fx-border-color-default); border-radius: var(--fx-radius-control); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-sm); }
  .fx-chart[aria-busy="true"] .fx-chart__plot { min-block-size: calc(var(--fx-space-12) * 3); border-radius: var(--fx-radius-control); background: var(--fx-bg-muted); animation: fx-pulse calc(var(--fx-duration-pulse) * var(--fx-knob-motion)) ease-in-out infinite; }
  .fx-chart[aria-busy="true"] .fx-chart__plot > * { visibility: hidden; }
  .fx-chart[data-type="spark"] { gap: 0; }
}
@layer fx.components {
  /* tur boʻyicha joylashuv */
  .fx-chart:is([data-type="bar"], [data-type="hbar"], [data-type="line"]) .fx-chart__plot { min-block-size: calc(var(--fx-space-12) * 3); }
  .fx-chart[data-type="donut"] .fx-chart__plot { inline-size: min(100%, calc(var(--fx-space-12) * 5)); justify-self: center; }
  .fx-chart[data-type="share"] .fx-chart__legend { display: grid; grid-template-columns: repeat(auto-fit, minmax(calc(var(--fx-space-12) * 2), 1fr)); }
  .fx-chart:is([data-type="gauge"], [data-type="heatmap"]) .fx-chart__legend { display: none; }
  .fx-chart[data-type="heatmap"] .fx-chart__plot { overflow-x: auto; }
}
@layer fx.components {
  /* «Jadval» koʻrinishi */
  /* ekran oʻquvchi rejimida jadval kengligi sahifani kengaytirmasin (telefonda koʻp ustunli jadval) */
  .fx-chart__data.fx-sr-only { inline-size: 1px; table-layout: fixed; }
  .fx-chart__data { inline-size: 100%; border-collapse: collapse; font-size: var(--fx-font-size-sm); font-variant-numeric: tabular-nums; }
  .fx-chart__data :is(th, td) { padding: var(--fx-space-2) var(--fx-space-3); border-block-end: var(--fx-border-width-default) solid var(--fx-border-color-default); text-align: start; }
  .fx-chart__data td { text-align: end; }
  .fx-chart__data thead th { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
}
@layer fx.components {
  /* ---- 4-toʻlqin: maydon, voronka, maqsad chizigʻi va izoh, interaktiv legenda ---- */
  /* maydon (4.119): katta yuza — past toʻyinganlik; ustma-ust qatlamlar orasida sirt chizigʻi; ≤ 3 seriya, eng muhimi pastda */
  .fx-chart__band { fill: var(--_c); fill-opacity: 0.12; stroke: none; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-chart__band[data-stacked] { fill-opacity: 0.22; stroke: var(--fx-bg-surface); stroke-width: 1; }
  .fx-chart--enter .fx-chart__band { animation: fx-fade-in var(--fx-motion-slow) var(--fx-ease-standard) both; }
  .fx-chart:is([data-type="area"], [data-type="funnel"]) .fx-chart__plot { min-block-size: calc(var(--fx-space-12) * 3); }
  /* maqsad / chegara (4.125): yagona punktir turi; yorliq oʻng ustunda, siyohning ikkinchi darajasi */
  .fx-chart__ref line { stroke: var(--fx-text-secondary); stroke-width: 1; stroke-dasharray: 4 3; }
  .fx-chart__ref-label { fill: var(--fx-text-secondary); font-weight: var(--fx-font-weight-medium); }
  /* izoh: bitta callout, nuqtaga 1 px chiziq */
  .fx-chart__lead { stroke: var(--fx-text-tertiary); stroke-width: 1; }
  .fx-chart__note { fill: var(--fx-text-primary); font-weight: var(--fx-font-weight-semibold); }
  /* voronka (4.117): qiymat qalin, ulush xira; oʻtish foizi oraliqda, eng katta yoʻqotish — qizil + soʻz */
  .fx-chart__fval { fill: var(--fx-text-primary); font-weight: var(--fx-font-weight-semibold); }
  .fx-chart__fpct { fill: var(--fx-text-tertiary); font-weight: var(--fx-font-weight-regular); }
  .fx-chart__conv { fill: var(--fx-text-tertiary); }
  .fx-chart__conv[data-max] { fill: var(--fx-text-error); font-weight: var(--fx-font-weight-semibold); }
  .fx-chart[data-type="funnel"] .fx-chart--enter .fx-chart__bar { animation-name: fx-chart-grow-x; }
  /* interaktiv legenda (4.126): band — tugma, oʻchirilgani xira trek rangi va chizilgan matn */
  .fx-chart__legend-btn { display: inline-flex; align-items: center; min-block-size: var(--fx-size-min-target); margin-inline: calc(var(--fx-space-2) * -1); padding: 0 var(--fx-space-2); border: 0; border-radius: var(--fx-radius-badge); background: none; color: inherit; font: inherit; cursor: pointer; }
  .fx-chart__legend li:has(> .fx-chart__legend-btn) { gap: 0; }
  .fx-chart__legend li:has(> .fx-chart__legend-btn)::before { order: 0; margin-inline-end: var(--fx-space-1); }
  .fx-chart__legend li:has(> .fx-chart__legend-btn) { position: relative; padding-inline-start: 0; }
  .fx-chart__legend-btn:hover { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-chart__legend-btn:active { background: var(--fx-bg-pressed); }
  .fx-chart__legend-btn:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); }
  .fx-chart__legend li[data-off] { color: var(--fx-text-tertiary); }
  .fx-chart__legend li[data-off]::before { background: var(--fx-viz-track); }
  .fx-chart__legend li[data-off] .fx-chart__legend-btn { text-decoration: line-through; }
}
@layer fx.components {
  /* ---- 5-toʻlqin: radar, nuqtali/pufakli, kombinatsiya, treemap, sharshara, sankey, bullet, zoom/brush ---- */
  .fx-chart:is([data-type="radar"], [data-type="scatter"], [data-type="combo"], [data-type="treemap"], [data-type="waterfall"], [data-type="sankey"]) .fx-chart__plot { min-block-size: calc(var(--fx-space-12) * 3); }
  .fx-chart[data-type="radar"] .fx-chart__plot { inline-size: min(100%, calc(var(--fx-space-12) * 11)); justify-self: center; }
  .fx-chart[data-type="bullet"] .fx-chart__plot { min-block-size: var(--fx-space-8); }
  .fx-chart__grid polygon { fill: none; stroke: var(--fx-viz-grid); stroke-width: 1; }
  .fx-chart__spoke { stroke: var(--fx-viz-grid); stroke-width: 1; }
  .fx-chart__axis-title { fill: var(--fx-text-tertiary); font-weight: var(--fx-font-weight-medium); }
  /* nuqtali / pufakli: koʻp nuqtada shaffoflik, ustma-ust tushganda sirt halqasi ajratadi; urgʻu — yonida nom */
  .fx-chart__pt { fill-opacity: 0.72; stroke: var(--fx-bg-surface); stroke-width: 1; }
  .fx-chart__pt[data-on] { fill-opacity: 1; stroke: var(--fx-text-primary); stroke-width: 2; }
  .fx-chart__pt-label { fill: var(--fx-text-primary); font-weight: var(--fx-font-weight-semibold); }
  /* treemap: katta yuzalar — pogʻonali past toʻyinganlik; toʻq katakda yorugʻ yozuv */
  .fx-chart__tile { stroke: none; }
  .fx-chart__tile[data-step="1"] { fill-opacity: 0.78; }
  .fx-chart__tile[data-step="2"] { fill-opacity: 0.56; }
  .fx-chart__tile[data-step="3"] { fill-opacity: 0.38; }
  .fx-chart__tile-label { fill: var(--fx-text-primary); font-weight: var(--fx-font-weight-semibold); pointer-events: none; }
  .fx-chart__tile-label[data-on="dark"] { fill: var(--fx-bg-surface); }
  .fx-chart__tile-sub { font-weight: var(--fx-font-weight-regular); fill-opacity: 0.85; }
  /* sharshara: ustunlar orasida ingichka ulovchi chiziq; oʻzgarish yorligʻi belgisi bilan (+ / −) */
  .fx-chart__conn { stroke: var(--fx-text-tertiary); stroke-width: 1; }
  .fx-chart__wval { fill: var(--fx-text-secondary); font-weight: var(--fx-font-weight-medium); }
  /* sankey: oqim — yumshoq tasma; hover'da boshqalari xiralashadi */
  .fx-chart__link { fill: var(--_c); fill-opacity: 0.3; stroke: none; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard), fill-opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-chart__link[data-on] { fill-opacity: 0.55; }
  .fx-chart svg[data-active] .fx-chart__link:not([data-on]) { opacity: 0.45; }
  .fx-chart__node { fill: var(--_c); }
  .fx-chart__node-label { fill: var(--fx-text-primary); font-weight: var(--fx-font-weight-medium); paint-order: stroke; stroke: var(--fx-bg-surface); stroke-width: 3px; stroke-linejoin: round; }
  .fx-chart--enter :is(.fx-chart__link, .fx-chart__pt, .fx-chart__tile) { animation: fx-fade-in var(--fx-motion-slow) var(--fx-ease-standard) both; }
  /* bullet: zonalar kulrang (toʻqi — past zona), fakt — ingichka ustun, reja — tik tayoqcha */
  .fx-chart__zone { fill: color-mix(in oklab, var(--fx-viz-context) 22%, var(--fx-bg-surface)); }
  .fx-chart__zone[data-step="0"] { fill: color-mix(in oklab, var(--fx-viz-context) 70%, var(--fx-bg-surface)); }
  .fx-chart__zone[data-step="1"] { fill: color-mix(in oklab, var(--fx-viz-context) 45%, var(--fx-bg-surface)); }
  .fx-chart__target { stroke: var(--fx-text-primary); stroke-width: 2.5; stroke-linecap: round; }
  .fx-chart[data-type="bullet"] .fx-chart--enter .fx-chart__bar { animation-name: fx-chart-grow-x; }
  /* zoom / brush: ostida mini-grafik, tanlangan oraliq oynasi va ikki tutqich (slider) */
  .fx-chart__brush { --_a: 0%; --_b: 100%; position: relative; block-size: var(--fx-space-10); margin-inline: var(--fx-space-3); touch-action: none; user-select: none; cursor: crosshair; }
  .fx-chart__brush-mini { display: block; inline-size: 100%; block-size: 100%; border-radius: var(--fx-radius-control); background: var(--fx-bg-subtle); }
  .fx-chart__brush-line { fill: none; stroke: var(--fx-viz-context); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
  .fx-chart__brush-area { fill: var(--fx-viz-track); stroke: none; }
  .fx-chart__brush-win { position: absolute; inset-block: 0; left: var(--_a); inline-size: calc(var(--_b) - var(--_a)); border: var(--fx-border-width-default) solid var(--fx-border-color-strong); border-radius: var(--fx-radius-control); background: color-mix(in oklab, var(--fx-viz-brand) 14%, transparent); cursor: grab; }
  .fx-chart__brush-win:active { cursor: grabbing; }
  .fx-chart__brush-handle { position: absolute; inset-block: var(--fx-space-2); inline-size: var(--fx-space-2); translate: -50% 0; border: var(--fx-border-width-default) solid var(--fx-border-color-strong); border-radius: var(--fx-radius-badge); background: var(--fx-bg-surface); cursor: ew-resize; }
  .fx-chart__brush-handle::before { content: ""; position: absolute; inset: calc(var(--fx-space-2) * -1); }
  .fx-chart__brush-handle[data-edge="0"] { left: var(--_a); }
  .fx-chart__brush-handle[data-edge="1"] { left: var(--_b); }
  .fx-chart__brush-handle:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  @media (forced-colors: active) { .fx-chart__brush-win, .fx-chart__brush-handle { border-color: CanvasText; } .fx-chart__zone { fill: Canvas; stroke: GrayText; } .fx-chart__target { stroke: CanvasText; } }
}

@layer fx.components {
  .fx-check { --_k: 1; --_w: 1; position: relative; display: inline-flex; align-items: center; gap: var(--fx-space-2); min-block-size: var(--fx-size-min-target); cursor: pointer; font-size: var(--fx-font-size-sm); }
  .fx-check > input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; margin: 0; }
  .fx-check__box {
    --_s: calc(var(--fx-size-checkbox) * var(--_k));
    flex: none;
    display: grid;
    place-items: center;
    inline-size: var(--_s);
    block-size: var(--_s);
    box-sizing: border-box;
    border: var(--fx-border-width-default) solid var(--fx-border-color-strong);
    /* Checkbox yoyi o'lchamga nisbatan (WDS r111) — doira bo'lmaydi, radio bilan adashmasin */
    border-radius: calc(var(--_s) * var(--fx-radius-checkbox-ratio));
    background: var(--fx-bg-surface);
    transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-radius var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-check__box::after {
    content: "";
    inline-size: 60%;
    block-size: 60%;
    background: var(--fx-text-on-brand);
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5 5 9l5-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    transition: opacity var(--fx-motion-fast) var(--fx-ease-standard), clip-path var(--fx-motion-base) var(--fx-ease-enter), scale var(--fx-motion-base) var(--fx-ease-spring);
  }
  .fx-check > input:checked + .fx-check__box { background: var(--fx-bg-brand-solid); border-color: transparent; }
  .fx-check > input:checked + .fx-check__box::after { opacity: 1; clip-path: inset(0 0 0 0); }
  .fx-check:active > input:not(:disabled) + .fx-check__box { scale: var(--fx-motion-press); }
  .fx-check__box { transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-radius var(--fx-motion-base) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-check > input:focus-visible + .fx-check__box { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }

  /* Radio — istisno: doim doira, xarakter tugmasi tegmaydi */
  .fx-check[data-type="radio"] .fx-check__box { border-radius: var(--fx-radius-circle); }
  .fx-check[data-type="radio"] .fx-check__box::after { mask: none; border-radius: var(--fx-radius-circle); inline-size: 40%; block-size: 40%; clip-path: none; scale: 0; }
  .fx-check[data-type="radio"] > input:checked + .fx-check__box::after { scale: 1; }

  /* Vazifa doirasi (Todoist kabi, Ustoz 21.10): kvadrat emas — doira, chegarasi va och foni ustuvorlik rangida (--fx-priority-1…4,
     data-priority="1|2|3|4"; yoʻq — kulrang). Ustiga kelinganda belgi xira koʻrinadi («bossam bajariladi»), bajarilganda — toʻla rang, oq belgi */
  .fx-check[data-type="task"] { --_p: var(--fx-priority-4); --_k: 1.15; }
  .fx-check[data-type="task"][data-priority="1"] { --_p: var(--fx-priority-1); }
  .fx-check[data-type="task"][data-priority="2"] { --_p: var(--fx-priority-2); }
  .fx-check[data-type="task"][data-priority="3"] { --_p: var(--fx-priority-3); }
  .fx-check[data-type="task"] .fx-check__box { border: calc(var(--fx-border-width-default) * 1.5) solid var(--_p); border-radius: var(--fx-radius-circle); background: color-mix(in oklab, var(--_p) 10%, var(--fx-bg-surface)); }
  .fx-check[data-type="task"]:not([data-priority]) .fx-check__box, .fx-check[data-type="task"][data-priority="4"] .fx-check__box { background: var(--fx-bg-surface); }
  .fx-check[data-type="task"] .fx-check__box::after { background: var(--_p); clip-path: none; inline-size: 55%; block-size: 55%; }
  @media (hover: hover) { .fx-check[data-type="task"]:hover > input:not(:checked, :disabled) + .fx-check__box::after { opacity: 0.6; } }
  .fx-check[data-type="task"] > input:checked + .fx-check__box { border-color: transparent; background: var(--_p); }
  .fx-check[data-type="task"]:is(:not([data-priority]), [data-priority="4"]) > input:checked + .fx-check__box { background: var(--fx-text-tertiary); }
  .fx-check[data-type="task"] > input:checked + .fx-check__box::after { background: var(--fx-text-on-brand); scale: 1; }

  /* Switch — istisno: trek doim pill */
  .fx-check[data-type="switch"] .fx-check__box {
    inline-size: calc(var(--fx-size-switch-track) * var(--_k) * var(--_w));
    border-radius: var(--_s);
    place-items: center start;
    padding-inline: var(--fx-space-1);
    border-color: transparent;
    background: var(--fx-bg-muted);
  }
  .fx-check[data-type="switch"] .fx-check__box::after {
    mask: none;
    inline-size: calc(var(--_s) - var(--fx-space-2));
    block-size: calc(var(--_s) - var(--fx-space-2));
    border-radius: var(--fx-radius-circle);
    background: var(--fx-bg-surface);
    opacity: 1;
    clip-path: none;
    box-shadow: var(--fx-shadow-sm);
    transition: translate var(--fx-motion-slow) var(--fx-ease-spring), background-color var(--fx-motion-fast) var(--fx-ease-standard);
  }
  .fx-check[data-type="switch"] > input:checked + .fx-check__box::after { translate: calc(var(--fx-size-switch-track) * var(--_k) * var(--_w) - var(--_s)) 0; background: var(--fx-text-on-brand); }

  /* Qisman tanlangan (bir qismi belgilangan guruh boshligʻi): input.indeterminate = true */
  .fx-check > input:indeterminate + .fx-check__box { background: var(--fx-bg-brand-solid); border-color: transparent; }
  .fx-check > input:indeterminate + .fx-check__box::after { opacity: 1; clip-path: none; block-size: var(--fx-border-width-focus); mask: none; border-radius: var(--fx-radius-circle); }
  .fx-check:not(:has(> input:disabled)):hover > .fx-check__box { border-color: var(--fx-text-tertiary); }
  .fx-check:has(> input:disabled) { cursor: not-allowed; color: var(--fx-text-disabled); }
  .fx-check > input:disabled + .fx-check__box { background: var(--fx-bg-muted); border-color: transparent; }

  /* Tanlov kartasi: katta bosish maydoni, belgilansa brend tusi va halqa */
  .fx-choice { display: flex; align-items: flex-start; gap: var(--fx-space-3); padding: var(--fx-space-4); border-radius: var(--fx-radius-surface); border: var(--fx-border-width-default) solid var(--fx-border-color-surface); background: var(--fx-bg-surface); cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-choice:hover { background: var(--fx-bg-subtle); }
  .fx-choice:has(input:checked) { background: var(--fx-bg-brand-subtle); border-color: var(--fx-border-color-focus); }
  .fx-choice:has(input:focus-visible) { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-choice__body { display: grid; gap: var(--fx-space-1); min-inline-size: 0; }
  .fx-choice__title { font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-semibold); color: var(--fx-text-primary); }
  .fx-choice__text { font-size: var(--fx-font-size-sm); color: var(--fx-text-secondary); }

  /* ---- Kengaytma (0.21): oʻlcham, yorliq tomoni, tavsif, switch ikon/yorliq/yuklanish, tanlov kartasi, hammasi-guruhi, shartli ochilish ---- */
  .fx-check[data-size="sm"] { --_k: 0.8; font-size: var(--fx-font-size-xs); }
  .fx-check[data-size="lg"] { --_k: 1.25; font-size: var(--fx-font-size-md); }
  /* Yorliq chapda, quti oʻngda (sozlamalar qatori) */
  .fx-check[data-label="start"] { display: flex; flex-direction: row-reverse; justify-content: space-between; inline-size: 100%; }
  /* Sarlavha + tavsif */
  .fx-check__body { display: grid; gap: var(--fx-space-1); min-inline-size: 0; }
  .fx-check__title { color: var(--fx-text-primary); }
  .fx-check__desc { font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); }
  .fx-check:has(> .fx-check__body > .fx-check__desc) { align-items: flex-start; }
  .fx-check:has(> .fx-check__body > .fx-check__desc) > .fx-check__box { margin-block-start: calc(var(--fx-space-1) / 2); }
  /* Switch ichida belgi: ✕ / ✓ — rangdan tashqari shakl bilan ham farqlanadi */
  .fx-check[data-type="switch"][data-icons] .fx-check__box::after { content: "✕"; display: grid; place-items: center; font-size: var(--fx-font-size-xs); line-height: 1; color: var(--fx-text-tertiary); }
  .fx-check[data-type="switch"][data-icons] > input:checked + .fx-check__box::after { content: "✓"; color: var(--fx-bg-brand-solid); }
  /* Switch ichida soʻz: data-on / data-off (kalta: «Ha» / «Yoʻq»); trek kengayadi */
  .fx-check[data-type="switch"][data-labels] { --_w: 1.7; }
  .fx-check[data-type="switch"][data-labels] .fx-check__box { position: relative; }
  .fx-check[data-type="switch"][data-labels] .fx-check__box::before { content: attr(data-off); content: attr(data-off) / ""; position: absolute; inset-inline-end: var(--fx-space-2); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-semibold); color: var(--fx-text-secondary); line-height: 1; }
  .fx-check[data-type="switch"][data-labels] > input:checked + .fx-check__box::before { content: attr(data-on); content: attr(data-on) / ""; inset-inline-end: auto; inset-inline-start: var(--fx-space-2); color: var(--fx-text-on-brand); }
  /* Switch yuklanmoqda (server javobi kutilmoqda): input aria-busy="true" — tutqich aylanadi, bosish bloklanadi */
  .fx-check[data-type="switch"]:has(> input[aria-busy="true"]) { cursor: progress; pointer-events: none; }
  .fx-check[data-type="switch"] > input[aria-busy="true"] + .fx-check__box::after { box-sizing: border-box; background: transparent; box-shadow: none; border: var(--fx-border-width-focus) solid var(--fx-border-color-strong); border-block-start-color: transparent; animation: fx-spin var(--fx-duration-spin) linear infinite; }
  @media (prefers-reduced-motion: reduce) { .fx-check[data-type="switch"] > input[aria-busy="true"] + .fx-check__box::after { animation: none; } }

  /* Tanlov kartasi: rasm/ikon, narx, belgi oʻng chetda, nofaol va xato holati */
  .fx-choice__body { flex: 1; }
  .fx-choice__media { flex: none; display: grid; place-items: center; inline-size: var(--fx-size-control-md); block-size: var(--fx-size-control-md); border-radius: var(--fx-radius-control); background: var(--fx-bg-muted); color: var(--fx-text-secondary); overflow: hidden; }
  .fx-choice__media > :is(svg, img) { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-choice__media > img { inline-size: 100%; block-size: 100%; object-fit: cover; }
  .fx-choice:has(input:checked) .fx-choice__media { background: var(--fx-bg-surface); color: var(--fx-text-brand); }
  .fx-choice__aside { flex: none; font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-semibold); font-variant-numeric: tabular-nums; color: var(--fx-text-primary); }
  .fx-choice[data-indicator="end"] > .fx-check { order: 2; }
  .fx-choice[data-indicator="end"] > .fx-choice__aside { order: 1; }
  .fx-choice:has(input:disabled) { cursor: not-allowed; background: var(--fx-bg-muted); color: var(--fx-text-disabled); border-color: transparent; }
  .fx-choice:has(input:disabled) :is(.fx-choice__title, .fx-choice__text, .fx-choice__aside) { color: var(--fx-text-disabled); }
  .fx-choice:has(input:disabled):hover { background: var(--fx-bg-muted); }
  .fx-choice:has(input:disabled):active { background: var(--fx-bg-pressed); }
  .fx-choice[data-invalid] { border-color: var(--fx-border-color-error); }
  .fx-choice:active:not(:has(input:disabled)) { scale: var(--fx-motion-press); }

  /* Guruh: «hammasi» + bandlar (gorizontal, toʻr). Boshliq input[data-all] xulq bilan holatni yigʻadi. */
  .fx-checkgroup { display: grid; gap: var(--fx-space-3); }
  .fx-checkgroup__items { display: grid; gap: var(--fx-space-2); }
  .fx-checkgroup__items[data-indent] { padding-inline-start: calc(var(--fx-size-checkbox) + var(--fx-space-2)); }
  .fx-checkgroup__items[data-layout="row"] { display: flex; flex-wrap: wrap; gap: var(--fx-space-2) var(--fx-space-6); }
  .fx-checkgroup__items[data-layout="grid"] { grid-template-columns: repeat(auto-fill, minmax(calc(var(--fx-space-12) * 3), 1fr)); gap: var(--fx-space-2) var(--fx-space-4); }
  .fx-checkgroup__count { font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); font-variant-numeric: tabular-nums; }

  /* Shartli ochilish: tanlanganda ichki maydon ochiladi (CSS :has); yopiqda fokusga tushmaydi */
  .fx-check__reveal { display: grid; grid-template-rows: 0fr; visibility: hidden; opacity: 0; margin-inline-start: calc(var(--fx-size-checkbox) + var(--fx-space-2)); transition: grid-template-rows var(--fx-motion-base) var(--fx-ease-standard), opacity var(--fx-motion-base) var(--fx-ease-standard), visibility var(--fx-motion-base); }
  .fx-check__reveal > * { min-block-size: 0; overflow: hidden; padding: var(--fx-space-1); }
  .fx-check:has(> input:checked) + .fx-check__reveal { grid-template-rows: 1fr; visibility: visible; opacity: 1; }

  /* Shkala (0–10, 1–5): radio tugmalar qatori, uchlarida izoh. Joriy qiymat toʻldiriladi. */
  .fx-scale { display: grid; gap: var(--fx-space-2); margin: 0; padding: 0; border: 0; min-inline-size: 0; }
  .fx-scale__row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(var(--fx-size-min-target), 1fr); gap: var(--fx-space-1); }
  .fx-scale__item { position: relative; display: grid; }
  .fx-scale__item > input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; margin: 0; }
  .fx-scale__item > span { display: grid; place-items: center; min-block-size: var(--fx-size-min-target); border: var(--fx-border-width-default) solid var(--fx-border-color-field); border-radius: var(--fx-radius-control); background: var(--fx-bg-field); font-size: var(--fx-font-size-sm); font-variant-numeric: tabular-nums; color: var(--fx-text-primary); cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-scale__item:hover > span { border-color: var(--fx-border-color-strong); background: var(--fx-bg-subtle); }
  .fx-scale__item:active > span { background: var(--fx-bg-muted); }
  .fx-scale__item:active > input:not(:disabled) + span { scale: var(--fx-motion-press); }
  .fx-scale__item > input:checked + span { background: var(--fx-bg-brand-solid); border-color: transparent; color: var(--fx-text-on-brand); font-weight: var(--fx-font-weight-semibold); }
  .fx-scale__item > input:focus-visible + span { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-scale__item > input:disabled + span { background: var(--fx-bg-muted); color: var(--fx-text-disabled); border-color: transparent; cursor: not-allowed; }
  .fx-scale__ends { display: flex; justify-content: space-between; gap: var(--fx-space-3); font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); }

  /* ---- Kengaytma (2.34, 2.152): radio/checkbox — tugma koʻrinishi (Radio.Button), forced-colors ---- */
  .fx-check[data-appearance="button"] { padding-inline: var(--fx-space-4); border: var(--fx-border-width-default) solid var(--fx-border-color-field); border-radius: var(--fx-radius-control); background: var(--fx-bg-field); transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-check[data-appearance="button"] > .fx-check__box { display: none; }
  .fx-check[data-appearance="button"]:hover:not(:has(> input:disabled)) { border-color: var(--fx-border-color-strong); background: var(--fx-bg-subtle); }
  .fx-check[data-appearance="button"]:has(> input:checked) { border-color: var(--fx-border-color-focus); background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); font-weight: var(--fx-font-weight-semibold); }
  .fx-check[data-appearance="button"]:has(> input:focus-visible) { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-check[data-appearance="button"]:has(> input:disabled) { background: var(--fx-bg-muted); border-color: transparent; }
  .fx-check[data-appearance="button"]:active:not(:has(> input:disabled)) { scale: var(--fx-motion-press); }
  .fx-check[data-appearance="button"]:has(> input:checked)::before { content: "✓"; font-weight: var(--fx-font-weight-semibold); }
  @media (forced-colors: active) {
    .fx-check__box { border-color: ButtonText; forced-color-adjust: none; background: Canvas; }
    .fx-check > input:checked + .fx-check__box, .fx-check > input:indeterminate + .fx-check__box { background: Highlight; border-color: Highlight; }
    .fx-check__box::after { background: HighlightText; }
    .fx-check[data-type="switch"] .fx-check__box { border-color: ButtonText; }
    .fx-check[data-type="switch"] .fx-check__box::after { background: ButtonText; }
    .fx-check[data-type="switch"] > input:checked + .fx-check__box::after { background: HighlightText; }
    .fx-choice { border-color: CanvasText; }
    .fx-choice:has(input:checked) { border-color: Highlight; outline: var(--fx-border-width-focus) solid Highlight; }
  }
}

@layer fx.components {
  /* Chip: filtr (bosiladi, aria-pressed) yoki teg (× bilan olib tashlanadi). Tanlangani — teskari: fon asosiy matn rangi,
     matn sahifa foni (WDS «Rang»: och tus tanlov uchun sezilmaydi). Ichidagi son — alohida xira belgi. */
  .fx-chip {
    text-decoration: none; /* <a class="fx-chip"> (filtr fasetlari) havola tagchizigʻini olmasin — FoxOS 19.10 */
    /* bir xil oʻlcham (Ustoz 19.10: «tugmalar markazda emas»): <button>’da brauzerning 1 px ichki chekinishi va border-box, <a>’da content-box edi —
       balandlik 44 va 46, matn 1 px siljigan. Endi har qanday teg bilan bir xil quti: chegara ichida, tik chekinishsiz */
    box-sizing: border-box;
    padding-block: 0;
    /* filtr chip — tab oʻrnida ishlatiladi: tugma bilan bir qator (control-h-sm). Ustoz 21.10: «tablar kichkina — global tuzat»;
       zich joy (jadval, karta ichi) — data-size="sm", teg — oʻzi ixcham. test-ota TAB-01 har sahifada oʻlchaydi */
    --_h: var(--fx-control-h-sm);
    display: inline-flex;
    justify-self: start;
    align-items: center;
    gap: var(--fx-space-1);
    block-size: var(--_h);
    padding-inline: var(--fx-space-4);
    /* chegara oʻqiga boʻysunadi (Olim/Manbaa 21.10): chiziqli libosda — chiziq va sirt, chiziqsizda (gibrid, soyali) — maydon kabi toʻldirilgan, chiziqsiz */
    border: var(--fx-border-width-default) solid var(--fx-border-color-field);
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-badge));
    background: var(--fx-bg-field);
    color: var(--fx-text-secondary);
    font: inherit;
    font-size: var(--fx-font-size-sm);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard);
  }
  .fx-chip:hover { background: color-mix(in oklab, var(--fx-text-primary) 6%, var(--fx-bg-field)); color: var(--fx-text-primary); }
  .fx-chip:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  .fx-chip[aria-pressed="true"] { border-color: transparent; background: var(--fx-text-primary); color: var(--fx-bg-page); }
  /* sanoq: bir xonali — doira, uzunrogʻi — kapsula (ezilgan doira yoʻq, test-ota SHAPE-01) */
  .fx-chip__count { box-sizing: border-box; display: inline-grid; place-items: center; min-inline-size: 1.5em; block-size: 1.5em; padding-inline: calc(var(--fx-space-1) / 2); border-radius: var(--fx-radius-pill); background: color-mix(in oklab, currentColor 10%, transparent); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; }
  .fx-chip__remove { display: inline-grid; place-items: center; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); margin-inline-end: calc(var(--fx-space-1) * -1); padding: 0; border: 0; border-radius: var(--fx-radius-circle); background: transparent; color: inherit; font: inherit; line-height: 1; cursor: pointer; opacity: 0.6; }
  .fx-chip__remove:hover { opacity: 1; background: color-mix(in oklab, currentColor 12%, transparent); }
  .fx-chip:is([data-size="sm"], [data-type="tag"]) { --_h: calc(var(--fx-control-h-sm) - var(--fx-space-2)); padding-inline: var(--fx-space-3); }
  .fx-chip[data-type="tag"] { cursor: default; background: var(--fx-bg-muted); border-color: transparent; color: var(--fx-text-primary); }
  button.fx-chip:active:not(:disabled) { scale: var(--fx-motion-press); }
  /* ---- Kengaytma (2.57–2.60, 2.155): avatarli chip, filtr-dropdown chevron, assist/suggestion, chip guruhi, bosish maydoni ---- */
  .fx-chip { position: relative; }
  .fx-chip::before { content: ""; position: absolute; inset-inline: 0; inset-block: min(0px, calc((var(--_h) - var(--fx-size-min-target)) / 2)); }
  .fx-chip > .fx-avatar { --_s: calc(var(--_h) - var(--fx-space-1)); margin-inline-start: calc(var(--fx-space-3) * -0.5); font-size: calc(var(--fx-font-size-xs) * 0.55); }
  .fx-chip > .fx-avatar[data-status]::after { display: none; }
  .fx-chip > svg { flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); }
  /* Filtr chip + dropdown (“Holat ▾”): aria-haspopup boʻlsa chevron, ochiqda 180° */
  .fx-chip[aria-haspopup]::after { content: ""; flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); margin-inline-end: calc(var(--fx-space-1) * -1); background: currentColor; opacity: 0.6; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: rotate var(--fx-motion-base) var(--fx-ease-standard); }
  .fx-chip[aria-haspopup][aria-expanded="true"]::after { rotate: 180deg; }
  /* Assist (amalga yoʻnaltiradi, oldida ikon) va suggestion (tayyor taklif) turlari */
  .fx-chip[data-type="assist"] { background: var(--fx-bg-subtle); color: var(--fx-text-primary); }
  .fx-chip[data-type="assist"] > svg:first-child { color: var(--fx-text-brand); }
  .fx-chip[data-type="suggestion"]:not([aria-pressed="true"]) { border-color: transparent; background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); }
  .fx-chip[data-type="suggestion"]:not([aria-pressed="true"]):hover { background: var(--fx-bg-brand-subtle-hover); }
  /* Guruh: oʻrash (standart), bitta qatorda surish (scroll), eng koʻp koʻrinadigan son + “+N” chip (data-more) */
  .fx-chip-group { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fx-space-2); min-inline-size: 0; }
  .fx-chip-group[data-overflow="scroll"] { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; }
  .fx-chip-group[data-overflow="scroll"] > .fx-chip { flex: none; scroll-snap-align: start; }
  /* telefonda chip guruhi standart — bitta qator, gorizontal surish, oʻng cheti soʻnadi (davomi borligi koʻrinsin) (Fox OS 21.10: 10 chip 3 qatorda ekranning yarmini olardi);
     qatorlarga oʻralishi kerak boʻlsa — data-overflow="wrap" */
  @media (max-width: 599.98px) {
    .fx-chip-group:not([data-overflow="wrap"]) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; overscroll-behavior-x: contain; }
    .fx-chip-group:not([data-overflow="wrap"]) > .fx-chip { flex: none; scroll-snap-align: start; }
    .fx-chip-group:not([data-overflow="wrap"])::-webkit-scrollbar { display: none; }
  }
  .fx-chip-group[data-max="3"] > .fx-chip:nth-child(n + 4):not([data-more]),
  .fx-chip-group[data-max="4"] > .fx-chip:nth-child(n + 5):not([data-more]),
  .fx-chip-group[data-max="5"] > .fx-chip:nth-child(n + 6):not([data-more]),
  .fx-chip-group[data-max="6"] > .fx-chip:nth-child(n + 7):not([data-more]) { display: none; }
  .fx-chip[data-more] { border-style: dashed; color: var(--fx-text-tertiary); }
  @media (forced-colors: active) {
    .fx-chip[aria-pressed="true"] { background: Highlight; color: HighlightText; forced-color-adjust: none; }
    .fx-chip[data-type="tag"] { border-color: ButtonText; }
  }
}

@layer fx.components {
  /* Buyruqlar oynasi (Ctrl/⌘+K): native <dialog> tepada, qidiruv + variantlar roʻyxati; xulq foxui.js (data-fx-command) */
  .fx-command { inline-size: min(100vw - var(--fx-space-8), calc(var(--fx-dialog-width) * 1.25)); max-block-size: min(70dvh, calc(var(--fx-dialog-width) * 1.1)); margin: calc(var(--fx-space-12) * 2) auto auto; padding: 0; border: var(--fx-border-width-default) solid var(--fx-border-color-surface); border-radius: var(--fx-radius-overlay); background: var(--fx-bg-surface); color: var(--fx-text-primary); box-shadow: var(--fx-shadow-lg); overflow: hidden; }
  .fx-command[open] { display: flex; flex-direction: column; }
  /* Kirish va chiqish (WDS «Harakat»: har kirishning chiqishi bor; chiqish ~30 % tez) */
  .fx-command { opacity: 0; scale: var(--fx-motion-scale-enter); transition: opacity var(--fx-motion-exit-fast) var(--fx-ease-exit), scale var(--fx-motion-exit-fast) var(--fx-ease-exit), display var(--fx-motion-exit-fast) allow-discrete, overlay var(--fx-motion-exit-fast) allow-discrete; }
  .fx-command[open] { opacity: 1; scale: 1; transition-duration: var(--fx-motion-base); transition-timing-function: var(--fx-ease-enter); }
  @starting-style { .fx-command[open] { opacity: 0; scale: var(--fx-motion-scale-enter); } }

  .fx-command::backdrop { background: color-mix(in oklab, var(--fx-bg-overlay) 30%, transparent); }
  .fx-command__input { flex: none; inline-size: 100%; block-size: var(--fx-control-h-lg); padding-inline: var(--fx-space-5); box-sizing: border-box; border: 0; border-block-end: var(--fx-border-width-default) solid var(--fx-border-color-default); background: transparent; color: var(--fx-text-primary); font: inherit; font-size: var(--fx-font-size-md); }
  .fx-command__input:focus { outline: none; }
  .fx-command__input::placeholder { color: var(--fx-text-tertiary); }
  .fx-command__foot { flex: none; display: flex; gap: var(--fx-space-4); padding: var(--fx-space-2) var(--fx-space-4); border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  /* Sahifalar yoʻli (2.133): kiritilgan sahifalar kichik belgilar bilan maydon tepasida */
  .fx-command__crumbs { flex: none; display: flex; flex-wrap: wrap; gap: var(--fx-space-1); padding: var(--fx-space-3) var(--fx-space-5) 0; }
  .fx-command__crumbs[hidden] { display: none; }
  .fx-command__crumb { padding: calc(var(--fx-space-1) / 2) var(--fx-space-2); border-radius: var(--fx-radius-badge); background: var(--fx-bg-muted); color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
  .fx-command__crumb + .fx-command__crumb::before { content: "› "; color: var(--fx-text-tertiary); }
  /* Sahifaga kiruvchi variant: oʻngda chevron */
  .fx-option[data-page]::after { content: "›"; margin-inline-start: auto; color: var(--fx-text-tertiary); }
  .fx-option__hint + .fx-option__hint { margin-inline-start: var(--fx-space-2); }
  .fx-listbox__group[hidden] { display: none; }
}

@layer fx.components {
  /* Oldin/keyin taqqoslash (4.77): ikki qatlam ustma-ust, ajratgichni sudrab solishtiriladi. Boshqaruv — haqiqiy
     <input type="range"> (butun maydon ustida, koʻrinmas): sichqoncha, barmoq va klaviatura (← → Home End PageUp/Down) tekin.
     foxui.js (data-fx-compare) qiymatni --fx-compare-pos ga yozadi; JS boʻlmasa — 50% da turadi. */
  .fx-compare {
    --fx-compare-pos: 50%;
    position: relative;
    display: grid;
    overflow: hidden;
    border: var(--fx-border-width-default) solid var(--fx-border-color-surface);
    border-radius: var(--fx-radius-surface);
    background: var(--fx-bg-muted);
    user-select: none;
    touch-action: pan-y;
  }
  .fx-compare__before, .fx-compare__after { grid-area: 1 / 1; min-inline-size: 0; }
  .fx-compare__before > :is(img, video), .fx-compare__after > :is(img, video) { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
  .fx-compare__after { clip-path: inset(0 0 0 var(--fx-compare-pos)); }
  .fx-compare:dir(rtl) .fx-compare__after { clip-path: inset(0 var(--fx-compare-pos) 0 0); }
  /* yorliqlar: «Oldin» chap tepada, «Keyin» oʻng tepada */
  .fx-compare__label {
    position: absolute;
    inset-block-start: var(--fx-space-3);
    z-index: 2;
    padding: calc(var(--fx-space-1) / 2) var(--fx-space-2);
    border-radius: var(--fx-radius-badge);
    background: color-mix(in oklab, var(--fx-bg-surface) 85%, transparent);
    color: var(--fx-text-primary);
    font-size: var(--fx-font-size-xs);
    font-weight: var(--fx-font-weight-medium);
    backdrop-filter: blur(calc(var(--fx-space-2) * var(--fx-knob-blur)));
    pointer-events: none;
  }
  .fx-compare__label[data-side="before"] { inset-inline-start: var(--fx-space-3); }
  .fx-compare__label[data-side="after"] { inset-inline-end: var(--fx-space-3); }
  /* ajratgich chizigʻi va tutqich */
  .fx-compare__handle {
    position: absolute;
    inset-block: 0;
    inset-inline-start: var(--fx-compare-pos);
    z-index: 2;
    inline-size: var(--fx-border-width-focus);
    translate: -50% 0;
    background: var(--fx-bg-static-light);
    box-shadow: var(--fx-shadow-md);
    pointer-events: none;
  }
  .fx-compare:dir(rtl) .fx-compare__handle { translate: 50% 0; }
  .fx-compare__handle::after {
    content: "";
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 50%;
    inline-size: var(--fx-size-control-md);
    block-size: var(--fx-size-control-md);
    translate: -50% -50%;
    border: var(--fx-border-width-default) solid var(--fx-border-color-default);
    border-radius: var(--fx-radius-circle);
    background: var(--fx-bg-surface);
    box-shadow: var(--fx-shadow-md);
    transition: scale var(--fx-motion-fast) var(--fx-ease-standard);
  }
  /* tutqichdagi ← → belgisi (mask — rang mavzudan) */
  .fx-compare__handle::before {
    content: "";
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 50%;
    z-index: 1;
    inline-size: var(--fx-size-icon-md);
    block-size: var(--fx-size-icon-md);
    translate: -50% -50%;
    background: var(--fx-text-secondary);
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7l-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
  }
  .fx-compare:hover .fx-compare__handle::after, .fx-compare:has(.fx-compare__range:active) .fx-compare__handle::after { scale: calc(1 + 0.08 * var(--fx-knob-motion)); }
  .fx-compare:has(.fx-compare__range:focus-visible) .fx-compare__handle::after { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  /* koʻrinmas boshqaruv: butun maydon */
  .fx-compare__range {
    position: absolute;
    inset: 0;
    z-index: 3;
    inline-size: 100%;
    block-size: 100%;
    margin: 0;
    opacity: 0;
    cursor: ew-resize;
    appearance: none;
  }
  .fx-compare[data-ratio="video"] { aspect-ratio: 16 / 9; }
  .fx-compare[data-ratio="square"] { aspect-ratio: 1; }
  @media (forced-colors: active) { .fx-compare__handle { background: CanvasText; } }
}

@layer fx.components {
  /* Kontekst menyu: maydon (.fx-context) ustida oʻng tugma, uzoq bosish yoki Shift+F10 / ☰ tugmasi — .fx-menu kursor oʻrnida ochiladi.
     Menyuning oʻzi — oddiy fx-menu (data-context bilan). Xulq — foxui.js (data-fx-context="menyu-id"). */
  .fx-context { -webkit-touch-callout: none; }
  .fx-context:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-context[data-context-open] { background: var(--fx-bg-subtle); }
  .fx-menu[data-context] { position: fixed; inset: auto; margin: 0; position-area: none; position-try-fallbacks: none; transform-origin: top left; }
}

@layer fx.components {
  /* Nusxa tugmasi: nusxa ikoni → ✓ ga yumshoq almashadi (2 s), natija aria-live bilan e'lon qilinadi.
     JS: behaviors/copy.js — data-fx-copy + data-copy-target="#id" yoki data-copy="matn". */
  .fx-copy { position: relative; display: inline-grid; place-items: center; flex: none; inline-size: var(--fx-control-h-sm); block-size: var(--fx-control-h-sm); padding: 0; border: 0; border-radius: var(--fx-radius-control); background: transparent; color: var(--fx-text-secondary); font: inherit; cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-copy:hover { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-copy:active { scale: var(--fx-motion-press); }
  .fx-copy:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  .fx-copy > svg { grid-area: 1 / 1; inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); transition: opacity var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-base) var(--fx-ease-spring); }
  .fx-copy > [data-fx-icon="check"] { opacity: 0; scale: 0.5; }
  .fx-copy[data-state="copied"] { color: var(--fx-fg-success); }
  .fx-copy[data-state="copied"] > [data-fx-icon="copy"] { opacity: 0; scale: 0.5; }
  .fx-copy[data-state="copied"] > [data-fx-icon="check"] { opacity: 1; scale: 1; }
  .fx-copy[data-state="error"] { color: var(--fx-fg-error); }
  .fx-copy__status { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  /* Matnli variant: yozuv ham almashadi */
  .fx-copy[data-variant="text"] { inline-size: auto; padding-inline: var(--fx-space-3); gap: var(--fx-space-2); grid-auto-flow: column; font-size: var(--fx-font-size-xs); }
}

@layer fx.components {
  /* Teskari sanoq (4.88): aksiya tugashi, OTP qayta yuborish, imtihon vaqti. Raqamlar tabular (sakramaydi), birlik soʻz bilan.
     Holatlar: oz qoldi (data-state="urgent") — qizil + «!» belgisi va «Oz qoldi» soʻzi; tugadi (data-state="ended") — chizilgan + matn.
     Ekran oʻquvchiga siyrak aytiladi (har daqiqa, oxirgi 10 soniyada bir marta, tugaganda) — xulq: foxui.js → countdown. */
  .fx-countdown { display: inline-grid; justify-items: start; gap: var(--fx-space-2); color: var(--fx-text-primary); }
  .fx-countdown__label { color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
  .fx-countdown__units { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--fx-space-2); max-inline-size: 100%; }
  .fx-countdown__unit { display: grid; justify-items: center; gap: var(--fx-space-1); flex: 0 0 auto; inline-size: calc(var(--fx-control-h-lg) * 1.1); min-inline-size: max-content; /* birlik nomi («daqiqa») katakdan chiqmaydi; flex-basis emas — aks holda Chromium ichki kenglikni kam hisoblab, keng joyda ham qatorni oʻrardi (Fox RX, /sayt, 24.10) */ padding: var(--fx-space-2) var(--fx-space-2) var(--fx-space-1); border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-control); background: var(--fx-bg-surface); }
  .fx-countdown__num { font-size: var(--fx-font-size-xl); font-weight: var(--fx-font-weight-semibold); font-variant-numeric: tabular-nums; line-height: 1.1; }
  .fx-countdown__name { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); white-space: nowrap; }
  .fx-countdown__sep { align-self: center; padding-block-end: var(--fx-space-4); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-lg); font-weight: var(--fx-font-weight-semibold); }
  .fx-countdown__done { margin: 0; color: var(--fx-text-secondary); font-size: var(--fx-font-size-sm); }
  .fx-countdown__done[hidden] { display: none; }
  /* Ixcham: bitta qator «02:15» — OTP qayta yuborish, tugma yonida */
  .fx-countdown[data-variant="inline"] { display: inline-flex; align-items: baseline; gap: var(--fx-space-1); }
  .fx-countdown[data-variant="inline"] .fx-countdown__units { gap: 0; }
  .fx-countdown[data-variant="inline"] .fx-countdown__unit { display: inline; min-inline-size: 0; padding: 0; border: 0; background: none; }
  .fx-countdown[data-variant="inline"] .fx-countdown__num { font-size: inherit; font-weight: var(--fx-font-weight-semibold); }
  .fx-countdown[data-variant="inline"] .fx-countdown__name { display: none; }
  .fx-countdown[data-variant="inline"] .fx-countdown__sep { padding: 0; font-size: inherit; }
  /* Banner ichida: yorqin fon ustida (aksiya) */
  .fx-countdown[data-variant="solid"] .fx-countdown__unit { border-color: transparent; background: var(--fx-text-primary); color: var(--fx-bg-page); }
  .fx-countdown[data-variant="solid"] .fx-countdown__name { color: inherit; opacity: 0.75; }
  .fx-countdown[data-size="sm"] .fx-countdown__unit { inline-size: var(--fx-control-h-lg); padding: var(--fx-space-1); }
  .fx-countdown[data-size="sm"] .fx-countdown__num { font-size: var(--fx-font-size-md); }
  /* Oz qoldi: rang + «!» + soʻz (label ichiga data-urgent-text) */
  .fx-countdown[data-state="urgent"] .fx-countdown__num { color: var(--fx-text-error); }
  .fx-countdown[data-state="urgent"] .fx-countdown__label::before { content: "! "; color: var(--fx-text-error); font-weight: var(--fx-font-weight-semibold); }
  .fx-countdown[data-state="urgent"] .fx-countdown__label::after { content: " — oz qoldi"; color: var(--fx-text-error); }
  .fx-countdown[data-state="urgent"][data-variant="solid"] .fx-countdown__unit { background: var(--fx-bg-error-solid); color: var(--fx-text-on-error); }
  .fx-countdown[data-state="urgent"][data-variant="solid"] .fx-countdown__num { color: inherit; }
  .fx-countdown[data-state="ended"] .fx-countdown__num { color: var(--fx-text-disabled); text-decoration: line-through; }
}

@layer fx.components {
  /* Kunlar tasmasi (4.104): gorizontal 7 kun + ‹ › hafta. Bron, jadval, yetkazib berish vaqti sahifalari tepasida. Xulq foxui.js → daystrip.
     Holatlar faqat rangda emas: tanlangan — toʻldirilgan, bugun — «Bugun» yozuvi va halqa, band kun — nuqta + koʻrinmas «bron bor»,
     yopiq kun — chizilgan raqam. */
  .fx-daystrip { display: grid; gap: var(--fx-space-2); inline-size: 100%; max-inline-size: calc(var(--fx-popover-width) * 1.75); color: var(--fx-text-primary); }
  .fx-daystrip__head { display: flex; align-items: center; gap: var(--fx-space-2); }
  .fx-daystrip__title { flex: 1; margin: 0; font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-semibold); }
  .fx-daystrip__nav { display: grid; place-items: center; inline-size: var(--fx-control-h-sm); block-size: var(--fx-control-h-sm); padding: 0; border: 0; border-radius: var(--fx-radius-control); background: transparent; color: var(--fx-text-secondary); cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-daystrip__nav:hover:not(:disabled) { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-daystrip__nav:active:not(:disabled) { scale: var(--fx-motion-press); }
  .fx-daystrip__nav:disabled { color: var(--fx-text-disabled); cursor: not-allowed; }
  .fx-daystrip__nav > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-daystrip__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--fx-space-1); }
  .fx-daystrip__day {
    position: relative;
    display: grid;
    justify-items: center;
    gap: calc(var(--fx-space-1) / 2);
    min-inline-size: 0;
    padding: var(--fx-space-2) var(--fx-space-1);
    border: var(--fx-border-width-default) solid var(--fx-border-color-default);
    border-radius: var(--fx-radius-control);
    background: var(--fx-bg-surface);
    color: var(--fx-text-primary);
    font: inherit;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
    transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard);
  }
  .fx-daystrip__day:hover:not([aria-checked="true"], [aria-disabled="true"]) { background: var(--fx-bg-muted); }
  .fx-daystrip__day:active:not([aria-checked="true"], [aria-disabled="true"]) { background: var(--fx-bg-pressed); }
  .fx-daystrip__day:active:not([aria-disabled="true"]) { scale: var(--fx-motion-press); }
  .fx-daystrip__day:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  .fx-daystrip__dow { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-daystrip__num { font-size: var(--fx-font-size-lg); font-weight: var(--fx-font-weight-semibold); line-height: var(--fx-line-height-tight); }
  .fx-daystrip__sub { min-block-size: 1lh; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-daystrip__day[data-today] { border-color: var(--fx-border-color-strong); border-width: var(--fx-border-width-focus); }
  .fx-daystrip__day[data-today] .fx-daystrip__sub { color: var(--fx-text-brand); font-weight: var(--fx-font-weight-medium); }
  /* Band kun: pastda nuqta (+ koʻrinmas matn) */
  .fx-daystrip__day[data-mark]::after { content: ""; position: absolute; inset-block-start: var(--fx-space-1); inset-inline-end: var(--fx-space-1); inline-size: var(--fx-size-status-dot-sm); block-size: var(--fx-size-status-dot-sm); border-radius: var(--fx-radius-circle); background: var(--fx-fg-warning); }
  .fx-daystrip__day[aria-checked="true"] { border-color: transparent; background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); }
  .fx-daystrip__day[aria-checked="true"] :is(.fx-daystrip__dow, .fx-daystrip__sub) { color: var(--fx-text-on-brand); }
  .fx-daystrip__day[aria-checked="true"][data-mark]::after { background: var(--fx-text-on-brand); }
  .fx-daystrip__day[aria-disabled="true"] { background: transparent; color: var(--fx-text-disabled); cursor: not-allowed; }
  .fx-daystrip__day[aria-disabled="true"] .fx-daystrip__num { text-decoration: line-through; }
  .fx-daystrip[data-size="sm"] .fx-daystrip__day { padding-block: var(--fx-space-1); }
  .fx-daystrip[data-size="sm"] .fx-daystrip__num { font-size: var(--fx-font-size-md); }
  .fx-daystrip[data-size="sm"] .fx-daystrip__sub { display: none; }
  @media (forced-colors: active) { .fx-daystrip__day[aria-checked="true"] { forced-color-adjust: none; background: Highlight; color: HighlightText; } }
}

@layer fx.components {
  /* Effektlar qatlami (4-toʻlqin, 4.52 va 4.56): har qanday yuzaga (fx-card, bento katagi, narx kartasi) data-fx bilan qoʻshiladi.
     data-fx="spotlight" — kursorni kuzatuvchi nur: chegarada va fonda yumshoq radial yorugʻlik (Linear, Magic UI «Magic Card»).
     data-fx="beam" — chegara boʻylab aylanib yuruvchi nur («tavsiya», «yangi» urgʻusi; Ant 6 BorderBeam).
     Bir nechtasi birga: data-fx="spotlight beam". Kursor koordinatasi — foxui.js (data-fx-effects konteynerda): --fx-mx, --fx-my;
     guruhda kursor yaqinidagi qoʻshni kartalar chegarasi ham yonadi. JS boʻlmasa — oddiy yuza, hover'da markazdan nur.
     Cheksiz aylanish faqat koʻrinishda (JS data-paused qoʻyadi), reduced-motion, calm va none rejimlarda — statik. */
  @property --fx-spot { syntax: "<number>"; inherits: true; initial-value: 0; }
  @property --fx-spot-fill { syntax: "<number>"; inherits: true; initial-value: 0; }
  @property --fx-beam-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

  [data-fx~="spotlight"] {
    --fx-mx: 50%;
    --fx-my: 50%;
    --fx-spot: 0;
    --fx-spot-fill: 0;
    --_c: var(--fx-bg-brand-solid);
    --_bg: var(--fx-bg-surface);
    --_line: var(--fx-border-color-surface);
    --_r: calc(var(--fx-space-12) * 6);
    border: var(--fx-border-width-default) solid transparent;
    background:
      radial-gradient(circle var(--_r) at var(--fx-mx) var(--fx-my), color-mix(in oklab, var(--_c) calc(var(--fx-spot-fill) * 12%), transparent), transparent) padding-box,
      linear-gradient(var(--_bg), var(--_bg)) padding-box,
      radial-gradient(circle calc(var(--_r) * 0.75) at var(--fx-mx) var(--fx-my), color-mix(in oklab, var(--_c) calc(var(--fx-spot) * 85%), var(--_line)), var(--_line)) border-box;
    transition: --fx-spot var(--fx-motion-slow) var(--fx-ease-standard), --fx-spot-fill var(--fx-motion-base) var(--fx-ease-standard), translate var(--fx-motion-base) var(--fx-ease-enter), box-shadow var(--fx-motion-base) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard);
  }
  [data-fx~="spotlight"][data-lit] { --fx-spot: 1; }
  [data-fx~="spotlight"]:hover { --fx-spot-fill: 1; }
  /* rang: standart — brend; toifa ranglari bilan */
  [data-fx~="spotlight"][data-fx-color="blue"], [data-fx~="beam"][data-fx-color="blue"] { --_c: var(--fx-bg-category-blue); }
  [data-fx~="spotlight"][data-fx-color="purple"], [data-fx~="beam"][data-fx-color="purple"] { --_c: var(--fx-bg-category-purple); }
  [data-fx~="spotlight"][data-fx-color="pink"], [data-fx~="beam"][data-fx-color="pink"] { --_c: var(--fx-bg-category-pink); }
  [data-fx~="spotlight"][data-fx-color="green"], [data-fx~="beam"][data-fx-color="green"] { --_c: var(--fx-bg-category-green); }
  /* yuza rangi boshqacha boʻlsa (masalan bg-subtle ustida filled karta) */
  [data-fx~="spotlight"][data-variant="filled"] { --_bg: var(--fx-bg-muted); }

  /* Chegara nuri: ::after — chegara qalinligidagi halqa (mask bilan ichi kesiladi), ichida aylanuvchi konus */
  [data-fx~="beam"] { --_c: var(--fx-bg-brand-solid); --_w: calc(var(--fx-border-width-default) * 1.5); position: relative; }
  /* konteyner oʻz qatlamini yaratadi — tashqi nur (z-index: -1) karta ortida, lekin boʻlim fonidan oldinda chiziladi */
  [data-fx-effects] { isolation: isolate; }
  [data-fx~="beam"]::after {
    content: "";
    position: absolute;
    inset: calc(var(--fx-border-width-default) * -1);
    z-index: 1;
    padding: var(--_w);
    border-radius: inherit;
    background: conic-gradient(from var(--fx-beam-angle), transparent 0 62%, color-mix(in oklab, var(--_c) 40%, transparent) 76%, var(--_c) 88%, var(--fx-viz-accent) 94%, transparent 99%);
    mask: linear-gradient(black, black) content-box exclude, linear-gradient(black, black);
    pointer-events: none;
    animation: fx-beam-spin calc(var(--fx-duration-pulse) * 3.5) linear infinite;
  }
  /* yumshoq tashqi nur — beam bilan birga */
  [data-fx~="beam"][data-fx-glow]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: conic-gradient(from var(--fx-beam-angle), transparent 0 70%, color-mix(in oklab, var(--_c) 35%, transparent) 90%, transparent);
    filter: blur(var(--fx-space-4));
    animation: fx-beam-spin calc(var(--fx-duration-pulse) * 3.5) linear infinite;
  }
  [data-fx~="beam"][data-fx-speed="slow"]::after, [data-fx~="beam"][data-fx-speed="slow"][data-fx-glow]::before { animation-duration: calc(var(--fx-duration-pulse) * 6); }
  [data-fx~="beam"][data-fx-speed="fast"]::after, [data-fx~="beam"][data-fx-speed="fast"][data-fx-glow]::before { animation-duration: calc(var(--fx-duration-pulse) * 2); }
  @keyframes fx-beam-spin { to { --fx-beam-angle: 360deg; } }

  /* --- Yaltirash (4.54, Magic UI Glare Hover / Aceternity Glare Card): hover yoki klaviatura fokusida karta ustidan bitta diagonal
     nur chapdan oʻngga oʻtadi. Qaytishda nur darhol boshiga tushadi (keyingi hover yana chapdan). ::before ishlatadi —
     beam[data-fx-glow] bilan birga qoʻymang. Harakat kamaytirilsa nur koʻrinmaydi (oʻtish 0 — darhol chetga). */
  [data-fx~="glare"] { position: relative; isolation: isolate; }
  [data-fx~="glare"]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
    background: linear-gradient(115deg, transparent 40%, color-mix(in oklab, var(--fx-bg-static-light) 50%, transparent) 50%, transparent 60%) 100% 0 / 300% 100% no-repeat;
    pointer-events: none;
  }
  [data-fx~="glare"]:is(:focus-visible, :focus-within)::before { background-position: 0 0; transition: background-position calc(var(--fx-motion-slower) * 1.6) var(--fx-ease-standard); }
  @media (hover: hover) and (pointer: fine) {
    [data-fx~="glare"]:hover::before { background-position: 0 0; transition: background-position calc(var(--fx-motion-slower) * 1.6) var(--fx-ease-standard); }
  }

  /* --- Yoʻnalishni sezuvchi hover (4.55, Aceternity Direction Aware Hover): qoplama (.fx-effects__overlay) kursor kirgan tomondan
     sirpanib chiqadi va chiqqan tomonga ketadi. Tomon — data-from (JS), koʻrinish — data-in. Klaviatura fokusida pastdan chiqadi;
     hover yoʻq qurilmada qoplama doim pastda gradient bilan koʻrinadi (matn yoʻqolmaydi). */
  [data-fx~="direction"] { position: relative; overflow: hidden; isolation: isolate; }
  .fx-effects__overlay {
    --_ox: 0%;
    --_oy: 100%;
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    align-content: end;
    gap: var(--fx-space-1);
    padding: var(--fx-space-5);
    border-radius: inherit;
    background: linear-gradient(to top, color-mix(in oklab, var(--fx-bg-overlay) 85%, transparent), color-mix(in oklab, var(--fx-bg-overlay) 45%, transparent));
    color: var(--fx-bg-static-light);
    translate: var(--_ox) var(--_oy);
    transition: translate var(--fx-motion-slow) var(--fx-ease-emphasized);
  }
  [data-fx~="direction"][data-from="top"] .fx-effects__overlay { --_ox: 0%; --_oy: -100%; }
  [data-fx~="direction"][data-from="right"] .fx-effects__overlay { --_ox: 100%; --_oy: 0%; }
  [data-fx~="direction"][data-from="bottom"] .fx-effects__overlay { --_ox: 0%; --_oy: 100%; }
  [data-fx~="direction"][data-from="left"] .fx-effects__overlay { --_ox: -100%; --_oy: 0%; }
  [data-fx~="direction"][data-snap] .fx-effects__overlay { transition: none; }
  [data-fx~="direction"]:is([data-in], :focus-within) .fx-effects__overlay { translate: 0 0; }
  @media (hover: none) {
    .fx-effects__overlay { translate: 0 0; inset-block-start: auto; padding-block-start: var(--fx-space-10); background: linear-gradient(to top, color-mix(in oklab, var(--fx-bg-overlay) 80%, transparent), transparent); }
  }
  .fx-effects__title { margin: 0; font-size: var(--fx-font-size-lg); font-weight: var(--fx-font-weight-semibold); }
  .fx-effects__meta { margin: 0; font-size: var(--fx-font-size-sm); opacity: 0.85; }

  /* koʻrinmasa (IntersectionObserver) yoki tab yashirin — toʻxtaydi */
  [data-fx][data-paused]::after, [data-fx][data-paused]::before { animation-play-state: paused; }
  /* tinch rejimlar: aylanish yoʻq — nur yuqori burchakda statik turadi */
  [data-fx-motion="calm"] [data-fx~="beam"]::after, [data-fx-motion="none"] [data-fx~="beam"]::after,
  [data-fx-motion="calm"] [data-fx~="beam"]::before, [data-fx-motion="none"] [data-fx~="beam"]::before { animation: none; --fx-beam-angle: 300deg; }
  @media (prefers-reduced-motion: reduce) { [data-fx~="beam"]::after, [data-fx~="beam"]::before, [data-fx~="beam"][data-fx-glow]::before { animation: none; --fx-beam-angle: 300deg; } }
  @media (forced-colors: active) {
    [data-fx~="spotlight"] { border-color: CanvasText; background: Canvas; }
    [data-fx~="beam"]::after, [data-fx~="beam"]::before, [data-fx~="glare"]::before { display: none; }
    .fx-effects__overlay { translate: 0 0; background: Canvas; color: CanvasText; }
  }
}

@layer fx.components {
  /* Vazifa holati doirasi (PDP Task): backlog — punktir; qilinadi — chegara; jarayonda — 50 %; tekshiruvda — 75 %;
     bajarildi — toʻla brend doira + ✓; bekor — xira doira + ×. Rang yolgʻiz belgi emas — shakl ham oʻzgaradi. */
  /* --fx-flow-value — ochiq API (inline style bilan haqiqiy foiz); berilmasa — holatning odatiy toʻlishi (--_pd) */
  .fx-flow { --_c: var(--fx-text-tertiary); --_pd: 0%; --fx-flow-value: var(--_pd); --_p: 0%; position: relative; display: inline-block; flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); box-sizing: border-box; border: calc(var(--fx-border-width-focus) * 0.75) solid var(--_c); border-radius: var(--fx-radius-circle); background: radial-gradient(closest-side, var(--fx-bg-surface) 0 52%, transparent 54%), conic-gradient(var(--_c) var(--_p), transparent 0); }
  .fx-flow[data-state="backlog"] { border-style: dashed; }
  .fx-flow[data-state="todo"] { --_c: var(--fx-text-secondary); }
  .fx-flow[data-state="progress"] { --_c: var(--fx-fg-warning); --_pd: 50%; --_p: var(--fx-flow-value); background: conic-gradient(var(--_c) var(--_p), transparent 0); background-clip: content-box; padding: calc(var(--fx-border-width-focus) * 0.5); }
  .fx-flow[data-state="review"] { --_c: var(--fx-fg-info); --_pd: 75%; --_p: var(--fx-flow-value); background: conic-gradient(var(--_c) var(--_p), transparent 0); background-clip: content-box; padding: calc(var(--fx-border-width-focus) * 0.5); }
  .fx-flow:is([data-state="done"], [data-state="cancelled"], [data-state="blocked"], [data-state="failed"], [data-state="live"], [data-state="update"])::after { content: ""; position: absolute; inset: 10%; background: var(--fx-bg-surface); mask: center / contain no-repeat; }
  .fx-flow[data-state="done"] { --_c: var(--fx-bg-brand-solid); background: var(--_c); }
  .fx-flow[data-state="done"]::after { background: var(--fx-text-on-brand); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2 5 8.5l4.5-5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .fx-flow[data-state="cancelled"] { --_c: var(--fx-text-tertiary); background: var(--_c); opacity: 0.6; }
  .fx-flow[data-state="cancelled"]::after { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 3.5l5 5M8.5 3.5l-5 5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E"); }
  .fx-flow[data-size="lg"] { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  /* pauza (Ustoz 21.10: «romb belgisi yoqmayapti» — pauza toʻsiq emas, ataylab toʻxtatilgan ish): sokin doira, ichida ikki tik chiziq ⏸;
     ustuvorlik rangini olmaydi — toʻxtatilgan ish baqirmaydi */
  .fx-flow[data-state="paused"] { --_c: var(--fx-text-secondary); }
  .fx-flow[data-state="paused"]::after { content: ""; position: absolute; inset: 20%; background: var(--_c); mask: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4.3 3v6M7.7 3v6' stroke='black' stroke-width='1.9' stroke-linecap='round'/%3E%3C/svg%3E"); }
  /* ---- Qoʻshimcha shakllar (Fox OS 21.10, Dribbble «status icons»): toʻsiq — romb «!», xato — doira «×», jonli — doira «▶»,
     yangilanish bor — kvadrat «!». Har biri boshqa SHAKL — rangsiz ham ajraladi. ---- */
  .fx-flow:is([data-state="blocked"], [data-state="failed"], [data-state="live"], [data-state="update"]) { border: 0; background: var(--_c); }
  .fx-flow:is([data-state="blocked"], [data-state="failed"], [data-state="live"], [data-state="update"])::after { inset: 18%; background: var(--fx-bg-static-light); }
  .fx-flow[data-state="blocked"] { --_c: var(--fx-fg-warning); border-radius: 0; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
  .fx-flow[data-state="blocked"]::after { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 2.8v3.8' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='6' cy='9' r='1.05' fill='black'/%3E%3C/svg%3E"); }
  .fx-flow[data-state="failed"] { --_c: var(--fx-fg-error); }
  .fx-flow[data-state="failed"]::after { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.6 3.6l4.8 4.8M8.4 3.6 3.6 8.4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E"); }
  .fx-flow[data-state="live"] { --_c: var(--fx-fg-success); }
  .fx-flow[data-state="live"]::after { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4.4 3.2v5.6L9 6Z' fill='black' stroke='black' stroke-width='0.8' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .fx-flow[data-state="update"] { --_c: var(--fx-bg-brand-solid); border-radius: var(--fx-radius-badge); }
  .fx-flow[data-state="update"]::after { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 2.8v3.8' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='6' cy='9' r='1.05' fill='black'/%3E%3C/svg%3E"); }
  /* ---- Ustuvorlik rangi (Ustoz 21.10, Fox OS): SHAKL — holat, RANG — ustuvorlik. data-priority="urgent|high|normal|low" ochiq ishning
     (backlog, todo, progress, review, blocked, live, update) rangini almashtiradi; bajarilgan, bekor va xato — oʻz rangida (tugagan ish baqirmaydi).
     Ranglar .fx-prio-tag bilan bir xil. Haqiqiy foiz: style="--fx-flow-value: 46%". Rang yolgʻiz belgi emas — ustuvorlik matnda yoki aria-label'da. ---- */
  .fx-flow[data-priority="urgent"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"]) { --_c: var(--fx-fg-error); }
  .fx-flow[data-priority="high"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"]) { --_c: var(--fx-fg-warning); }
  .fx-flow[data-priority="normal"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"]) { --_c: var(--fx-fg-info); }
  .fx-flow[data-priority="low"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"]) { --_c: var(--fx-text-tertiary); }
  /* ---- Holat yorligʻi (.fx-flow-tag, Dribbble namunasi kabi): doira + soʻz kapsulada; standart — chiziqli, data-variant="soft" — doira rangida och fon ---- */
  .fx-flow-tag { --_t: var(--fx-text-secondary); display: inline-flex; align-items: center; gap: var(--fx-space-2); block-size: calc(var(--fx-space-6) + var(--fx-space-1)); box-sizing: border-box; padding: 0 var(--fx-space-3) 0 var(--fx-space-2); border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-pill); background: var(--fx-bg-surface); color: var(--fx-text-primary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); white-space: nowrap; }
  .fx-flow-tag:has(> .fx-flow[data-state="progress"]) { --_t: var(--fx-fg-warning); }
  .fx-flow-tag:has(> .fx-flow[data-state="review"]) { --_t: var(--fx-fg-info); }
  .fx-flow-tag:has(> .fx-flow[data-state="done"]) { --_t: var(--fx-bg-brand-solid); }
  .fx-flow-tag:has(> .fx-flow[data-state="blocked"]) { --_t: var(--fx-fg-warning); }
  .fx-flow-tag:has(> .fx-flow[data-state="failed"]) { --_t: var(--fx-fg-error); }
  .fx-flow-tag:has(> .fx-flow[data-state="live"]) { --_t: var(--fx-fg-success); }
  .fx-flow-tag:has(> .fx-flow[data-state="update"]) { --_t: var(--fx-bg-brand-solid); }
  .fx-flow-tag:has(> .fx-flow[data-priority="urgent"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"])) { --_t: var(--fx-fg-error); }
  .fx-flow-tag:has(> .fx-flow[data-priority="high"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"])) { --_t: var(--fx-fg-warning); }
  .fx-flow-tag:has(> .fx-flow[data-priority="normal"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"])) { --_t: var(--fx-fg-info); }
  .fx-flow-tag:has(> .fx-flow[data-priority="low"]:not([data-state="done"], [data-state="cancelled"], [data-state="failed"], [data-state="paused"])) { --_t: var(--fx-text-tertiary); }
  .fx-flow-tag[data-variant="soft"] { border-color: transparent; background: color-mix(in oklab, var(--_t) 14%, var(--fx-bg-surface)); color: color-mix(in oklab, var(--_t) 70%, var(--fx-text-primary)); }
  /* ---- Bosqich yorligʻi kengaytmasi (Ustoz 21.10, Dribbble namunasi: Draft · In-progress · In-review · Completed):
     data-tone="status" — semantik ranglar: bajarildi — yashil (brend emas), koʻrib chiqish — koʻk, jarayon — toʻq sariq, qoralama — toʻq kulrang;
     data-size="lg" — katta (44 px, matn md); data-shape="icon" — faqat ikon, kvadrat plitka (nomi aria-label/title'da). Yumaloqligi — uslubdan ---- */
  .fx-flow-tag[data-tone="status"]:has(> .fx-flow[data-state="backlog"]) { --_t: var(--fx-text-secondary); }
  .fx-flow-tag[data-tone="status"] > .fx-flow[data-state="backlog"] { --_c: var(--fx-text-secondary); }
  .fx-flow-tag[data-tone="status"]:has(> .fx-flow[data-state="done"]) { --_t: var(--fx-fg-success); }
  .fx-flow-tag[data-tone="status"] > .fx-flow[data-state="done"] { --_c: var(--fx-fg-success); }
  .fx-flow-tag[data-variant="soft"] { border-radius: calc(var(--fx-knob-pill) * var(--fx-radius-pill) + (1 - var(--fx-knob-pill)) * var(--fx-radius-control)); }
  .fx-flow-tag[data-size="lg"] { gap: var(--fx-space-2); block-size: var(--fx-control-h-md); padding: 0 var(--fx-space-4) 0 var(--fx-space-3); font-size: var(--fx-font-size-md); }
  .fx-flow-tag[data-size="lg"] > .fx-flow { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-flow-tag[data-shape="icon"] { justify-content: center; inline-size: calc(var(--fx-space-6) + var(--fx-space-1)); padding: 0; }
  .fx-flow-tag[data-shape="icon"][data-size="lg"] { inline-size: var(--fx-control-h-md); }
}

@layer fx.components {
  .fx-field { display: grid; gap: var(--fx-space-2); }
  .fx-label { font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-medium); color: var(--fx-text-secondary); }
  .fx-hint { font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); }
  .fx-field[data-invalid] .fx-hint { color: var(--fx-text-error); }
  .fx-input, .fx-textarea {
    --_h: var(--fx-control-h-md);
    inline-size: 100%;
    box-sizing: border-box;
    font: inherit;
    font-size: var(--fx-font-size-md);
    color: var(--fx-text-primary);
    background: var(--fx-bg-field);
    border: var(--fx-border-width-default) solid var(--fx-border-color-field); /* uslubga qarab: chegarali yoki toʻldirilgan (knob field-fill) */
    transition: border-color var(--fx-motion-fast) var(--fx-ease-standard),
      border-radius var(--fx-motion-base) var(--fx-ease-standard),
      block-size var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-input {
    block-size: var(--_h);
    padding-inline: var(--fx-space-4);
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control));
  }
  /* Textarea hech qachon pill bo'lmaydi (WDS «Shakl va oraliq») */
  .fx-textarea { min-block-size: calc(var(--_h) * 2); padding: var(--fx-space-3) var(--fx-space-4); border-radius: var(--fx-radius-field-multiline); resize: vertical; }
  .fx-input::placeholder, .fx-textarea::placeholder { color: var(--fx-text-tertiary); }
  .fx-input:hover, .fx-textarea:hover { border-color: color-mix(in oklab, var(--fx-border-color-strong) calc((1 - var(--fx-knob-field-fill)) * 100%), transparent); background: color-mix(in oklab, var(--fx-text-primary) calc(var(--fx-knob-field-fill) * 6%), var(--fx-bg-field)); }
  .fx-input:focus-visible, .fx-textarea:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-default) * -1); }
  .fx-field[data-invalid] .fx-input, .fx-field[data-invalid] .fx-textarea { border-color: var(--fx-border-color-error); }
  .fx-input[data-size="sm"] { --_h: var(--fx-control-h-sm); font-size: var(--fx-font-size-sm); }
  .fx-input:disabled, .fx-textarea:disabled { background: var(--fx-bg-muted); color: var(--fx-text-disabled); cursor: not-allowed; }
  /* Majburiy belgisi, faqat oʻqish, muvaffaqiyat izohi */
  .fx-label[data-required]::after { content: " *"; color: var(--fx-text-error); }
  .fx-input:read-only:not(:disabled), .fx-textarea:read-only:not(:disabled) { background: var(--fx-bg-subtle); border-style: dashed; }
  .fx-field[data-valid] .fx-hint { color: var(--fx-fg-success); }
  .fx-field:has(:is(input, select, textarea):disabled) .fx-label { color: var(--fx-text-disabled); }

  /* Input guruhi: maydon + oldi/orqa qism (birlik, ikon, tugma) — tashqi qobiq maydon koʻrinishida, ichki input chegarasiz */
  .fx-input-group {
    --_h: var(--fx-control-h-md);
    display: flex;
    align-items: center;
    block-size: var(--_h);
    box-sizing: border-box;
    inline-size: 100%;
    background: var(--fx-bg-field);
    border: var(--fx-border-width-default) solid var(--fx-border-color-field);
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control));
    overflow: hidden;
    transition: border-color var(--fx-motion-fast) var(--fx-ease-standard);
  }
  .fx-input-group:focus-within { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-default) * -1); }
  .fx-input-group__control { flex: 1; min-inline-size: 0; block-size: 100%; padding-inline: var(--fx-space-4); border: 0; background: transparent; color: var(--fx-text-primary); font: inherit; font-size: var(--fx-font-size-md); }
  .fx-input-group__control:focus { outline: none; }
  .fx-input-group__control::placeholder { color: var(--fx-text-tertiary); }
  .fx-input-group__addon { flex: none; display: inline-flex; align-items: center; gap: var(--fx-space-2); block-size: 100%; padding-inline: var(--fx-space-3); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-sm); white-space: nowrap; }
  .fx-input-group__addon:first-child { padding-inline-start: var(--fx-space-4); }
  .fx-input-group__addon:first-child + .fx-input-group__control { padding-inline-start: 0; }
  .fx-input-group__addon:last-child { padding-inline-end: var(--fx-space-4); }
  .fx-input-group__addon > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-input-group[data-size="sm"] { --_h: var(--fx-control-h-sm); }
  .fx-field[data-invalid] .fx-input-group { border-color: var(--fx-border-color-error); }

  /* Guruh sarlavhasi bilan (checkbox/radio guruhi, manzil maydonlari) */
  .fx-fieldset { display: grid; gap: var(--fx-space-3); margin: 0; padding: 0; border: 0; min-inline-size: 0; }
  /* fieldset sarlavhasi — faqat <legend> elementi (20.10: grafik legendasi .fx-legend bilan nom toʻqnashardi — qalin shrift unga ham tushardi) */
  /* float + 100 % — legend oddiy grid bandiga aylanadi va fieldset gap'i unga ham tegadi (aks holda sarlavha ostidagi maydonga yopishadi; Ustoz 21.10) */
  legend.fx-legend { float: inline-start; inline-size: 100%; padding: 0; font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-semibold); color: var(--fx-text-primary); }
  /* Xato: maydon bir marta yengil silkinadi (G1); harakat kamaytirilsa — yoʻq (siljish 0) */
  .fx-field[data-invalid] :is(.fx-input, .fx-textarea, .fx-input-group) { animation: fx-shake var(--fx-motion-slow) var(--fx-ease-standard); }
  @keyframes fx-shake { 20%, 60% { translate: calc(var(--fx-motion-shift-sm) * -1) 0; } 40%, 80% { translate: var(--fx-motion-shift-sm) 0; } }

  /* ---- Kengaytma (0.21): lg oʻlcham, eni, gorizontal forma, belgilar hisoblagichi, tozalash/koʻrsatish tugmalari, avto-oʻsish ---- */
  .fx-input[data-size="lg"], .fx-input-group[data-size="lg"] { --_h: var(--fx-control-h-lg); }
  .fx-input[data-size="lg"] { font-size: var(--fx-font-size-lg); }
  /* Maydon eni mazmun uzunligiga mos (pochta indeksi, kod) — «ch» birligida */
  .fx-input[data-width], .fx-input-group[data-width] { max-inline-size: 100%; }
  .fx-input[data-width="xs"], .fx-input-group[data-width="xs"] { inline-size: 10ch; }
  .fx-input[data-width="sm"], .fx-input-group[data-width="sm"] { inline-size: 20ch; }
  .fx-input[data-width="md"], .fx-input-group[data-width="md"] { inline-size: 32ch; }
  /* Gorizontal forma: yorliq chapda, maydon oʻngda; tor joyda yana ustma-ust */
  .fx-field[data-layout="inline"] { grid-template-columns: minmax(0, calc(var(--fx-space-12) * 3)) minmax(0, 1fr); align-items: center; column-gap: var(--fx-space-6); }
  .fx-field[data-layout="inline"] > :not(.fx-label) { grid-column: 2; }
  .fx-field[data-layout="inline"] > .fx-label { grid-column: 1; grid-row: 1; }
  @media (max-width: 599.98px) {
    .fx-field[data-layout="inline"] { grid-template-columns: minmax(0, 1fr); }
    .fx-field[data-layout="inline"] > :not(.fx-label), .fx-field[data-layout="inline"] > .fx-label { grid-column: 1; grid-row: auto; }
  }
  /* Izoh qatori: chapda hint, oʻngda belgilar hisoblagichi */
  .fx-field__foot { display: flex; justify-content: space-between; align-items: baseline; gap: var(--fx-space-3); }
  .fx-counter { flex: none; margin-inline-start: auto; font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); font-variant-numeric: tabular-nums; }
  .fx-counter[data-state="near"] { color: var(--fx-fg-warning); font-weight: var(--fx-font-weight-semibold); }
  .fx-counter[data-state="over"] { color: var(--fx-text-error); font-weight: var(--fx-font-weight-semibold); }
  .fx-counter[data-state="over"]::before { content: "! "; }
  /* Maydon ichidagi tugma: koʻrsatish (parol), tozalash (✕) — guruh chetida, kvadrat bosish maydoni */
  .fx-input-group__btn { flex: none; display: grid; place-items: center; box-sizing: border-box; aspect-ratio: 1; block-size: 100%; min-inline-size: var(--fx-size-min-target); max-block-size: var(--fx-size-min-target); padding: 0; border: 0; border-radius: var(--fx-radius-control); background: transparent; color: var(--fx-text-tertiary); font: inherit; cursor: pointer; transition: color var(--fx-motion-fast) var(--fx-ease-standard), background-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-input-group__btn:hover { color: var(--fx-text-primary); background: var(--fx-bg-muted); }
  .fx-input-group__btn:active { scale: var(--fx-motion-press); }
  .fx-input-group__btn:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-input-group__btn[aria-pressed="true"] { color: var(--fx-text-brand); }
  .fx-input-group__btn[hidden] { display: none; }
  .fx-input-group__btn > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  /* Eski brauzer (xulq yuklanmagan): bosh maydonda tozalash tugmasi koʻrinmaydi */
  .fx-input-group:has(.fx-input-group__control:placeholder-shown) > .fx-input-group__btn[data-clear] { display: none; }
  /* Caps Lock ogohlantirishi: belgi + soʻz (rangning oʻzi yetmaydi) */
  .fx-hint[data-caps]:not([hidden])::before { content: "⇪ "; }
  .fx-hint[data-caps] { color: var(--fx-fg-warning); }
  .fx-hint[data-caps][hidden] { display: none; }
  /* Parol kuchliligi: 4 boʻlakli chiziq + daraja soʻzi */
  .fx-strength { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; align-items: center; gap: var(--fx-space-1) var(--fx-space-1); }
  .fx-strength__bar { grid-row: 1; block-size: var(--fx-space-1); border-radius: var(--fx-radius-circle); background: var(--fx-bg-muted); transition: background-color var(--fx-motion-base) var(--fx-ease-standard); }
  .fx-strength__label { grid-column: 5; grid-row: 1; margin-inline-start: var(--fx-space-2); font-size: var(--fx-font-size-xs); color: var(--fx-text-secondary); }
  .fx-strength[data-level="1"] > .fx-strength__bar:nth-child(-n+1) { background: var(--fx-bg-error-solid); }
  .fx-strength[data-level="2"] > .fx-strength__bar:nth-child(-n+2) { background: var(--fx-fg-warning); }
  .fx-strength[data-level="3"] > .fx-strength__bar:nth-child(-n+3) { background: var(--fx-fg-info); }
  .fx-strength[data-level="4"] > .fx-strength__bar:nth-child(-n+4) { background: var(--fx-fg-success); }
  /* Textarea avto-oʻsishi: field-sizing (Chromium/Safari), qolganida xulq balandlikni moslaydi; data-rows — eng koʻp qator (3 / 5 / 8) */
  .fx-textarea[data-autosize] { field-sizing: content; resize: none; max-block-size: calc(var(--_h) * 2.5); overflow-y: auto; }
  .fx-textarea[data-autosize][data-rows="3"] { max-block-size: calc(var(--_h) * 1.5); }
  .fx-textarea[data-autosize][data-rows="8"] { max-block-size: calc(var(--_h) * 4); }
  /* Kod/JSON maydoni: monospace */
  .fx-textarea[data-code] { font-family: var(--fx-font-family-mono); font-size-adjust: var(--fx-font-adjust-mono); font-size: var(--fx-font-size-sm); tab-size: 2; white-space: pre; overflow-x: auto; }

  /* ---- Kengaytma (2.18–2.20, 2.24): holat ikoni, variantlar (filled/borderless/underlined), floating label, ichki tugma ---- */
  /* Maydon oxiridagi holat belgisi: yuklanmoqda / toʻgʻri (✓) / xato (!) — rangning oʻzi yetmaydi */
  .fx-input-group__status { flex: none; display: grid; place-items: center; inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); margin-inline-end: var(--fx-space-3); font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-semibold); line-height: 1; }
  .fx-input-group__status[data-state="valid"] { color: var(--fx-fg-success); }
  .fx-input-group__status[data-state="valid"]::before { content: "✓"; }
  .fx-input-group__status[data-state="invalid"] { color: var(--fx-text-error); }
  .fx-input-group__status[data-state="invalid"]::before { content: "!"; }
  .fx-input-group__status[data-state="loading"]::before { content: ""; box-sizing: border-box; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); border: var(--fx-border-width-focus) solid color-mix(in oklab, var(--fx-text-tertiary) 25%, transparent); border-block-start-color: var(--fx-text-tertiary); border-radius: var(--fx-radius-circle); animation: fx-spin var(--fx-duration-spin) linear infinite; }
  @media (prefers-reduced-motion: reduce) { .fx-input-group__status[data-state="loading"]::before { animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; } }
  /* Variantlar */
  .fx-input[data-variant="filled"], .fx-input-group[data-variant="filled"] { border-color: transparent; background: var(--fx-bg-muted); }
  .fx-input[data-variant="filled"]:hover { border-color: transparent; background: color-mix(in oklab, var(--fx-text-primary) 4%, var(--fx-bg-muted)); }
  .fx-input[data-variant="borderless"], .fx-input-group[data-variant="borderless"] { border-color: transparent; background: transparent; }
  .fx-input[data-variant="borderless"]:hover { border-color: transparent; background: var(--fx-bg-muted); }
  .fx-input[data-variant="borderless"]:active { background: var(--fx-bg-pressed); }
  .fx-input[data-variant="underlined"], .fx-input-group[data-variant="underlined"] { border-color: transparent; border-block-end-color: var(--fx-border-color-strong); border-radius: 0; background: transparent; }
  .fx-input[data-variant="underlined"]:hover { border-color: transparent; border-block-end-color: var(--fx-text-primary); background: transparent; }
  .fx-input[data-variant="underlined"]:focus-visible, .fx-input-group[data-variant="underlined"]:focus-within { outline-offset: 0; border-radius: 0; }
  .fx-field[data-invalid] .fx-input:is([data-variant="filled"], [data-variant="borderless"], [data-variant="underlined"]) { border-color: transparent; border-block-end-color: var(--fx-border-color-error); }
  /* Floating label: yorliq maydon ichida, fokus/qiymatda tepaga chiqadi (maydonda placeholder=" " boʻlishi shart) */
  .fx-field[data-float] { position: relative; }
  .fx-field[data-float] > .fx-label { position: absolute; z-index: 1; inset-inline-start: var(--fx-space-4); inset-block-start: calc((var(--fx-control-h-md) + var(--fx-space-2)) / 2); translate: 0 -50%; max-inline-size: calc(100% - var(--fx-space-8)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-md); font-weight: var(--fx-font-weight-regular); pointer-events: none; transition: inset-block-start var(--fx-motion-fast) var(--fx-ease-standard), translate var(--fx-motion-fast) var(--fx-ease-standard), font-size var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-field[data-float] > .fx-input { block-size: calc(var(--_h) + var(--fx-space-2)); padding-block: var(--fx-space-4) 0; }
  .fx-field[data-float] > .fx-input::placeholder { color: transparent; }
  .fx-field[data-float]:focus-within > .fx-label, .fx-field[data-float]:has(> .fx-input:not(:placeholder-shown)) > .fx-label { inset-block-start: var(--fx-space-2); translate: 0 0; font-size: var(--fx-font-size-xs); }
  .fx-field[data-float]:focus-within > .fx-label { color: var(--fx-text-brand); }
  .fx-field[data-float][data-invalid] > .fx-label { color: var(--fx-text-error); }
  /* Maydon ichidagi amal tugmasi (“Obuna boʻlish”): guruhning oxirida, maydondan bir oz kichik */
  .fx-input-group > .fx-btn { flex: none; align-self: center; block-size: calc(var(--_h) - var(--fx-space-3)); min-block-size: 0; margin-inline-end: var(--fx-space-1); }
  .fx-input-group > .fx-copy { margin-inline-end: var(--fx-space-1); }
  @media (forced-colors: active) { .fx-input, .fx-textarea, .fx-input-group { border-color: ButtonText; } .fx-input:focus-visible, .fx-input-group:focus-within { outline-color: Highlight; } }
}

@layer fx.components {
  /* Klaviatura tugmasi belgisi (Ustoz 21.10, PDP namunasi: «mono xunuk, liniya bilan ham xunuk»): chiziqsiz kulrang plitka, matn shriftida (500),
     oq blokda ham, kulrang fonda ham ajralib turadi (kulrang fonda — sirt rangida, .fx-search__kbd kabi) */
  .fx-kbd { display: inline-grid; place-items: center; box-sizing: border-box; min-inline-size: calc(var(--fx-space-5) + var(--fx-space-1) / 2); block-size: calc(var(--fx-space-5) + var(--fx-space-1) / 2); padding: 0 calc(var(--fx-space-1) * 1.5); border: 0; border-radius: var(--fx-radius-badge); background: var(--fx-bg-muted); color: var(--fx-text-secondary); font-family: inherit; font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); line-height: 1; letter-spacing: 0; white-space: nowrap; vertical-align: middle; }
  /* ---- Kengaytma (2.147): kombinatsiya (⌘ + K), kichik oʻlcham ---- */
  .fx-kbd-combo { display: inline-flex; align-items: center; gap: calc(var(--fx-space-1) / 2); }
  .fx-kbd-combo__sep { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-kbd[data-size="sm"] { min-inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); padding-inline: var(--fx-space-1); font-size: calc(var(--fx-font-size-xs) * 0.85); }
  @media (forced-colors: active) { .fx-kbd { border: var(--fx-border-width-default) solid ButtonText; } }
}

@layer fx.components {
  /* Legenda (mustaqil, 60/30/10 rollari bilan): grafik, ulush chizigʻi va koʻp boʻlakli progress yonida. Rang yolgʻiz belgi emas —
     nom (va ixtiyoriy qiymat) doim yoziladi. Interaktiv boʻlsa element tugma (aria-pressed): oʻchirilgan seriya xira va chizilgan. */
  /* grafik legendasi — <legend> elementi emas (fieldset sarlavhasi bir xil klassda — input.css, 20.10) */
  .fx-legend:not(legend) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fx-space-2) var(--fx-space-4); margin: 0; padding: 0; list-style: none; font-size: var(--fx-font-size-xs); color: var(--fx-text-secondary); }
  .fx-legend[data-direction="column"] { flex-direction: column; align-items: stretch; gap: var(--fx-space-2); }
  .fx-legend__item { display: inline-flex; align-items: center; gap: var(--fx-space-2); min-inline-size: 0; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; }
  .fx-legend[data-direction="column"] .fx-legend__item { justify-content: space-between; }
  .fx-legend__swatch { --_c: var(--fx-viz-brand); flex: none; inline-size: var(--fx-space-3); block-size: var(--fx-space-3); border-radius: calc(var(--fx-space-1) / 2); background: var(--_c); }
  .fx-legend__swatch[data-role="ink"] { --_c: var(--fx-viz-ink); }
  .fx-legend__swatch[data-role="accent"] { --_c: var(--fx-viz-accent); }
  .fx-legend__swatch[data-role="risk"] { --_c: var(--fx-viz-risk); }
  .fx-legend__swatch[data-role="context"] { --_c: var(--fx-viz-context); }
  .fx-legend__swatch[data-shape="dot"] { border-radius: var(--fx-radius-circle); }
  .fx-legend__swatch[data-shape="line"] { block-size: var(--fx-border-width-focus); inline-size: var(--fx-space-4); border-radius: var(--fx-border-width-focus); }
  .fx-legend__label { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .fx-legend__value { color: var(--fx-text-primary); font-variant-numeric: tabular-nums; font-weight: var(--fx-font-weight-medium); }
  button.fx-legend__item { padding: calc(var(--fx-space-1) / 2) var(--fx-space-2); margin-inline: calc(var(--fx-space-2) * -1); border-radius: var(--fx-radius-badge); cursor: pointer; }
  button.fx-legend__item:hover { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  button.fx-legend__item:active { background: var(--fx-bg-pressed); }
  button.fx-legend__item:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); }
  button.fx-legend__item[aria-pressed="false"] { color: var(--fx-text-tertiary); text-decoration: line-through; }
  button.fx-legend__item[aria-pressed="false"] .fx-legend__swatch { background: var(--fx-viz-track); }
  /* Interaktiv (4.126): data-interactive + data-fx-legend — grafik seriyasini yashiradi (aria-controls → fx-chart data-hidden) */
  .fx-legend[data-interactive] { gap: var(--fx-space-1) var(--fx-space-3); }
  .fx-legend[data-interactive] button.fx-legend__item { min-block-size: var(--fx-size-min-target); margin-inline: 0; }
}

@layer fx.components {
  /* Variantlar roʻyxati — combobox va buyruqlar oynasining umumiy qismi. Faol variant (klaviatura) — aria-selected yoki data-active. */
  .fx-listbox { display: grid; gap: calc(var(--fx-space-1) / 2); margin: 0; padding: var(--fx-space-1); list-style: none; overflow: auto; }
  .fx-listbox__group { padding: var(--fx-space-2) var(--fx-space-3) var(--fx-space-1); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
  .fx-option { display: flex; align-items: center; gap: var(--fx-space-3); min-block-size: calc(var(--fx-control-h-sm) - var(--fx-space-1)); padding-inline: var(--fx-space-3); border-radius: var(--fx-radius-nav); color: var(--fx-text-primary); font-size: var(--fx-font-size-sm); text-decoration: none; cursor: pointer; }
  .fx-option > svg { flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); color: var(--fx-text-tertiary); }
  .fx-option__hint { margin-inline-start: auto; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-option__body { display: grid; min-inline-size: 0; }
  .fx-option__desc { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-option--lg { min-block-size: var(--fx-control-h-md); }
  /* Koʻp tanlov: tanlangan variantda ✓ (rangdan tashqari shakl belgisi) */
  [aria-multiselectable="true"] > .fx-option::after { content: ""; flex: none; margin-inline-start: auto; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: currentColor; opacity: 0; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
  [aria-multiselectable="true"] > .fx-option[aria-selected="true"]::after { opacity: 1; }
  .fx-option[data-create] { color: var(--fx-text-brand); }
  .fx-option:hover, .fx-option[data-active] { background: var(--fx-bg-muted); }
  .fx-option:active { background: var(--fx-bg-pressed); }
  .fx-option[aria-selected="true"] { color: var(--fx-text-brand); font-weight: var(--fx-font-weight-medium); }
  .fx-option[hidden] { display: none; }
  .fx-listbox__empty { padding: var(--fx-space-6) var(--fx-space-3); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-sm); text-align: center; }
}

@layer fx.components {
  /* Yugurik qator (4.71, #108): logolar yoki fikrlar cheksiz suriladi. foxui.js (data-fx-marquee) tasma ichini bir marta nusxalaydi
     (nusxa aria-hidden + inert) va tezlikni kenglikdan hisoblaydi — tezlik har ekranda bir xil. Hover yoki fokusda pauza,
     ekrandan chiqsa toʻxtaydi. JS boʻlmasa, harakat kamaytirilsa yoki data-fx-motion="none" — oddiy gorizontal scroll (nusxasiz). */
  .fx-marquee {
    --_gap: var(--fx-space-8);
    --_dur: calc(var(--fx-duration-pulse) * 20);
    --_fade: calc(var(--fx-space-12) * 1.5);
    position: relative;
    display: flex;
    overflow-x: auto;
    scrollbar-width: none;
    mask: linear-gradient(to right, transparent, black var(--_fade), black calc(100% - var(--_fade)), transparent);
  }
  .fx-marquee::-webkit-scrollbar { display: none; }
  .fx-marquee__track {
    display: flex;
    flex: none;
    align-items: center;
    gap: var(--_gap);
    min-inline-size: max-content;
    margin: 0;
    padding: 0 var(--_gap) 0 0;
    list-style: none;
  }
  .fx-marquee__track > * { flex: none; }
  .fx-marquee[data-fx-ready~="marquee"] { overflow: hidden; }
  .fx-marquee[data-fx-ready~="marquee"] .fx-marquee__track { animation: fx-marquee-x var(--_dur) linear infinite; }
  .fx-marquee[data-direction="reverse"] .fx-marquee__track { animation-direction: reverse; }
  .fx-marquee:is(:hover, :focus-within, [data-paused], [data-stopped]) .fx-marquee__track { animation-play-state: paused; }
  .fx-marquee[data-pause="none"]:not([data-paused], [data-stopped]) .fx-marquee__track { animation-play-state: running; }
  .fx-marquee[data-gap="sm"] { --_gap: var(--fx-space-4); }
  .fx-marquee[data-gap="lg"] { --_gap: var(--fx-space-12); }
  @keyframes fx-marquee-x { to { translate: -100% 0; } }
  /* vertikal: fikrlar ustuni (balandlik ota yoki --fx-marquee-height bilan) */
  .fx-marquee[data-orientation="vertical"] {
    --fx-marquee-height: calc(var(--fx-space-12) * 10);
    flex-direction: column;
    block-size: var(--fx-marquee-height);
    overflow: hidden auto;
    mask: linear-gradient(to bottom, transparent, black var(--_fade), black calc(100% - var(--_fade)), transparent);
  }
  .fx-marquee[data-orientation="vertical"] .fx-marquee__track { flex-direction: column; align-items: stretch; min-inline-size: 0; padding: 0 0 var(--_gap); }
  .fx-marquee[data-orientation="vertical"][data-fx-ready~="marquee"] .fx-marquee__track { animation-name: fx-marquee-y; }
  @keyframes fx-marquee-y { to { translate: 0 -100%; } }
  /* RTL: tasma teskari tomonga */
  .fx-marquee:dir(rtl) .fx-marquee__track { animation-direction: reverse; }
  .fx-marquee[data-direction="reverse"]:dir(rtl) .fx-marquee__track { animation-direction: normal; }
  /* pauza tugmasi (ixtiyoriy, WCAG 2.2.2): qatordan tashqarida (mask uni soʻndirmasin), aria-controls = qator id */
  .fx-marquee__toggle[aria-pressed="true"] { color: var(--fx-text-primary); }
  /* harakatsiz: animatsiya yoʻq, nusxa yashirin, oddiy scroll */
  [data-fx-motion="none"] .fx-marquee .fx-marquee__track[data-clone] { display: none; }
  [data-fx-motion="none"] .fx-marquee[data-fx-ready~="marquee"] { overflow-x: auto; }
  [data-fx-motion="none"] .fx-marquee[data-fx-ready] .fx-marquee__track { animation: none; }
  @media (prefers-reduced-motion: reduce) {
    .fx-marquee[data-fx-ready~="marquee"] { overflow-x: auto; }
    .fx-marquee[data-orientation="vertical"][data-fx-ready~="marquee"] { overflow-y: auto; }
    .fx-marquee[data-fx-ready] .fx-marquee__track { animation: none; }
    .fx-marquee .fx-marquee__track[data-clone], .fx-marquee__toggle { display: none; }
  }
}

@layer fx.components {
  /* Maskali kiritish (telefon, karta): raqamlar tabular. Xulq foxui.js'da (data-fx-mask="+998 (##) ###-##-##"); toʻlgan boʻlsa input'da data-complete. */
  :is(.fx-input, .fx-input-group__control)[data-fx-mask] { font-variant-numeric: tabular-nums; }
}

@layer fx.components {
  /* Menyu: native popover + anchor (popover kabi joylashadi), ichida bandlar; xulq — foxui.js (data-fx-menu) */
  .fx-menu {
    min-inline-size: calc(var(--fx-popover-width) * 0.6);
    max-inline-size: min(100vw - var(--fx-space-8), var(--fx-popover-width));
    margin: 0;
    padding: var(--fx-space-1);
    border: var(--fx-border-width-default) solid var(--fx-border-color-surface);
    border-radius: var(--fx-radius-overlay);
    background: var(--fx-bg-surface);
    color: var(--fx-text-primary);
    box-shadow: var(--fx-shadow-lg);
    font-size: var(--fx-font-size-sm);
    overflow: visible; /* ichki menyu chetga chiqadi */
  }
  .fx-menu:popover-open { display: grid; gap: var(--fx-space-1); }
  /* Kirish va chiqish (WDS «Harakat»: har kirishning chiqishi bor; chiqish ~30 % tez) */
  .fx-menu { opacity: 0; scale: var(--fx-motion-scale-enter); translate: 0 calc(var(--fx-motion-shift-sm) * -1); transition: opacity var(--fx-motion-exit-fast) var(--fx-ease-exit), scale var(--fx-motion-exit-fast) var(--fx-ease-exit), translate var(--fx-motion-exit-fast) var(--fx-ease-exit), display var(--fx-motion-exit-fast) allow-discrete, overlay var(--fx-motion-exit-fast) allow-discrete; }
  .fx-menu:popover-open { opacity: 1; scale: 1; translate: 0 0; transition-duration: var(--fx-motion-base); transition-timing-function: var(--fx-ease-enter); }
  @starting-style { .fx-menu:popover-open { opacity: 0; scale: var(--fx-motion-scale-enter); translate: 0 calc(var(--fx-motion-shift-sm) * -1); } }
  .fx-menu { transform-origin: top left; }
  @supports (position-area: block-end) {
    .fx-menu { inset: auto; position-area: block-end span-inline-end; position-try-fallbacks: flip-block, flip-inline; margin-block: var(--fx-space-1); }
  }
  .fx-menu__item {
    display: flex;
    align-items: center;
    gap: var(--fx-space-2);
    min-block-size: calc(var(--fx-control-h-sm) - var(--fx-space-1));
    padding-inline: var(--fx-space-3);
    border: 0;
    border-radius: var(--fx-radius-nav);
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: start;
    text-decoration: none;
    cursor: pointer;
  }
  .fx-menu__item:hover, .fx-menu__item:focus-visible { background: var(--fx-bg-muted); outline: none; }
  .fx-menu__item:active { background: var(--fx-bg-pressed); }
  .fx-menu__item > svg { flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); color: var(--fx-text-tertiary); }
  .fx-menu__item[data-tone="danger"] { color: var(--fx-text-error); }
  .fx-menu__item[aria-disabled="true"] { color: var(--fx-text-disabled); cursor: not-allowed; }
  .fx-menu__item[aria-disabled="true"]:hover { background: transparent; }
  /* Belgilanadigan band: oʻngda belgi */
  .fx-menu__item[aria-checked]::after { content: ""; margin-inline-start: auto; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: var(--fx-text-brand); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5 6.5 11.5 12.5 4.5' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; opacity: 0; }
  .fx-menu__item[aria-checked="true"]::after { opacity: 1; }
  .fx-menu__kbd { margin-inline-start: auto; color: var(--fx-text-tertiary); font-family: var(--fx-font-family-mono); font-size-adjust: var(--fx-font-adjust-mono); font-size: var(--fx-font-size-xs); }
  .fx-menu__title { padding: var(--fx-space-2) var(--fx-space-3) var(--fx-space-1); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
  .fx-menu__sep { block-size: var(--fx-border-width-default); margin: var(--fx-space-1) calc(var(--fx-space-1) * -1); border: 0; background: var(--fx-border-color-default); }
  /* Ichki menyu (2.129): band + yoniga ochiladigan .fx-menu__sub; chevron — ::after */
  .fx-menu__subwrap { position: relative; display: grid; }
  .fx-menu__subwrap > .fx-menu__item[aria-haspopup="menu"]::after { content: ""; margin-inline-start: auto; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: var(--fx-text-tertiary); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 3.5 10.5 8 6 12.5' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
  .fx-menu__subwrap > .fx-menu__item[aria-expanded="true"] { background: var(--fx-bg-muted); }
  .fx-menu__sub { position: absolute; inset-block-start: calc(var(--fx-space-1) * -2); inset-inline-start: calc(100% + var(--fx-space-1)); z-index: 1; display: grid; gap: var(--fx-space-1); min-inline-size: calc(var(--fx-popover-width) * 0.6); padding: var(--fx-space-1); border: var(--fx-border-width-default) solid var(--fx-border-color-surface); border-radius: var(--fx-radius-overlay); background: var(--fx-bg-surface); box-shadow: var(--fx-shadow-lg); }
  .fx-menu__sub[hidden] { display: none; }
  .fx-menu__sub[data-flip] { inset-inline-start: auto; inset-inline-end: calc(100% + var(--fx-space-1)); }
  /* Menyu ichida qidiruv (2.131): tepada maydon, ostida chiziq; topilmasa — .fx-menu__empty */
  .fx-menu__search { box-sizing: border-box; inline-size: 100%; block-size: calc(var(--fx-control-h-sm) - var(--fx-space-1)); padding-inline: var(--fx-space-3); border: 0; border-block-end: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: 0; background: transparent; color: inherit; font: inherit; }
  .fx-menu__search:focus { outline: none; border-block-end-color: var(--fx-border-color-focus); }
  .fx-menu__search::placeholder { color: var(--fx-text-tertiary); }
  .fx-menu__empty { padding: var(--fx-space-4) var(--fx-space-3); color: var(--fx-text-tertiary); text-align: center; }
  .fx-menu__empty[hidden], .fx-menu__item[hidden], .fx-menu__title[hidden], .fx-menu__sep[hidden], .fx-menu__subwrap[hidden] { display: none; }
}
@layer fx.components {
  /* Moslashuvchi overlay (4.26): data-fx-adaptive — telefonda (< 640 px) menyu pastki varaqqa aylanadi: toʻliq en, pastdan chiqadi, fon xiralashadi,
     tepada tutqich chizigʻi; kompyuterda — oddiy menyu. Barmoq uchun bandlar balandroq. Atribut faqat CSS — xulq oʻzgarmaydi. */
  @media (max-width: 599.98px) {
    .fx-menu[data-fx-adaptive] { position: fixed; inset: auto 0 0 0; box-sizing: border-box; inline-size: 100%; max-inline-size: 100%; min-inline-size: 0; max-block-size: 85dvh; margin: 0; padding-block-end: calc(var(--fx-space-4) + env(safe-area-inset-bottom, 0px)); border-radius: var(--fx-radius-overlay) var(--fx-radius-overlay) 0 0; overflow: auto; position-area: none; position-try-fallbacks: none; translate: 0 100%; scale: 1; transform-origin: bottom center; }
    .fx-menu[data-fx-adaptive]:popover-open { translate: 0 0; transition-timing-function: var(--fx-ease-sheet); transition-duration: var(--fx-motion-slow); }
    @starting-style { .fx-menu[data-fx-adaptive]:popover-open { translate: 0 100%; } }
    .fx-menu[data-fx-adaptive]::backdrop { background: color-mix(in oklab, var(--fx-bg-overlay) 40%, transparent); }
    .fx-menu[data-fx-adaptive]::before { content: ""; display: block; inline-size: var(--fx-space-8); block-size: var(--fx-space-1); margin: 0 auto var(--fx-space-3); border-radius: var(--fx-radius-circle); background: var(--fx-border-color-strong); position: static; rotate: none; border: 0; }
    .fx-menu[data-fx-adaptive] .fx-menu__item { min-block-size: var(--fx-size-touch-target); }
  }
}

@layer fx.components {
  /* Suhbat xabari (odam yoki AI agent): avatar, ism va vaqt, matn; foydalanuvchi xabari oʻngda brend tusida.
     «Yozmoqda» — uch nuqta, faqat shaffoflik (WDS «Harakat»). */
  .fx-message { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--fx-space-1) var(--fx-space-3); align-items: start; max-inline-size: 72ch; }
  .fx-message > .fx-avatar { grid-row: span 2; }
  .fx-message__meta { display: flex; align-items: baseline; gap: var(--fx-space-2); font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); }
  .fx-message__name { color: var(--fx-text-primary); font-weight: var(--fx-font-weight-semibold); font-size: var(--fx-font-size-sm); }
  .fx-message__body { color: var(--fx-text-primary); font-size: var(--fx-font-size-sm); line-height: 1.6; overflow-wrap: anywhere; }
  .fx-message__body > :first-child { margin-block-start: 0; }
  .fx-message__body > :last-child { margin-block-end: 0; }
  .fx-message[data-role="user"] { grid-template-columns: minmax(0, 1fr); justify-items: end; margin-inline-start: auto; }
  .fx-message[data-role="user"] .fx-message__body { padding: var(--fx-space-3) var(--fx-space-4); border-radius: var(--fx-radius-surface); border-end-end-radius: var(--fx-radius-badge); background: var(--fx-bg-brand-subtle); }
  .fx-typing { display: inline-flex; gap: var(--fx-space-1); padding-block: var(--fx-space-2); }
  .fx-typing > i { inline-size: var(--fx-size-status-dot-sm); block-size: var(--fx-size-status-dot-sm); border-radius: var(--fx-radius-circle); background: var(--fx-text-tertiary); animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-typing > i:nth-child(2) { animation-delay: calc(var(--fx-duration-pulse) / 6); }
  .fx-typing > i:nth-child(3) { animation-delay: calc(var(--fx-duration-pulse) / 3); }
  @media (prefers-reduced-motion: reduce) { .fx-typing > i { animation: none; } }
  /* AI yorligʻi: kontent AI tomonidan yaratilgani — binafsha toifa tusi (Atlassian «discovery» kabi) */
  .fx-ai-label { display: inline-flex; align-items: center; gap: var(--fx-space-1); padding: calc(var(--fx-space-1) / 2) var(--fx-space-2); border-radius: var(--fx-radius-tag); background: var(--fx-bg-category-purple-subtle); color: var(--fx-text-primary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-semibold); }
  .fx-ai-label::before { content: "✦"; color: var(--fx-text-brand); }

  /* ---------- Pufakcha varianti (messenjer; PDP Chat): data-variant="bubble" + data-dir="in|out" + data-group="first|mid|last" ----------
     Kiruvchi — neytral quduq, avatar faqat guruh oxirida; chiquvchi — mavzuning och brend tusi + siyoh matn (oq/yashil emas — kontrast).
     Guruhda yaqin burchaklar kichrayadi, oraliq 2 vs 12. Vaqt va yuborish belgisi pufakcha oxirida, matn oqimida. */
  .fx-message[data-variant="bubble"] { --_r: var(--fx-radius-overlay); --_rs: calc(var(--fx-radius-badge) / 1.5); grid-template-columns: var(--fx-size-avatar-md) minmax(0, max-content); column-gap: var(--fx-space-2); max-inline-size: min(78%, 64ch); margin-block-start: var(--fx-space-3); }
  .fx-message[data-variant="bubble"]:is([data-group="mid"], [data-group="last"]) { margin-block-start: calc(var(--fx-space-1) / 2); }
  .fx-message[data-variant="bubble"] > .fx-avatar { grid-row: 1 / span 3; align-self: end; }
  .fx-message[data-variant="bubble"]:is([data-group="first"], [data-group="mid"]) > .fx-avatar { visibility: hidden; }
  .fx-message[data-variant="bubble"] .fx-message__body { grid-column: 2; padding: var(--fx-space-2) var(--fx-space-3); border-radius: var(--_r); background: var(--fx-bg-muted); }
  .fx-message[data-variant="bubble"][data-dir="in"]:is([data-group="first"]) .fx-message__body { border-end-start-radius: var(--_rs); }
  .fx-message[data-variant="bubble"][data-dir="in"][data-group="mid"] .fx-message__body { border-start-start-radius: var(--_rs); border-end-start-radius: var(--_rs); }
  .fx-message[data-variant="bubble"][data-dir="in"][data-group="last"] .fx-message__body { border-start-start-radius: var(--_rs); }
  .fx-message[data-variant="bubble"] .fx-message__name { grid-column: 2; font-size: var(--fx-font-size-xs); }
  .fx-message[data-variant="bubble"][data-dir="out"] { grid-template-columns: minmax(0, max-content); justify-content: end; margin-inline-start: auto; }
  .fx-message[data-variant="bubble"][data-dir="out"] .fx-message__body { grid-column: 1; background: var(--fx-bg-brand-subtle); }
  .fx-message[data-variant="bubble"][data-dir="out"][data-group="first"] .fx-message__body { border-end-end-radius: var(--_rs); }
  .fx-message[data-variant="bubble"][data-dir="out"][data-group="mid"] .fx-message__body { border-start-end-radius: var(--_rs); border-end-end-radius: var(--_rs); }
  .fx-message[data-variant="bubble"][data-dir="out"][data-group="last"] .fx-message__body { border-start-end-radius: var(--_rs); }
  .fx-message__time { float: inline-end; display: inline-flex; align-items: center; gap: calc(var(--fx-space-1) / 2); margin: var(--fx-space-1) 0 0 var(--fx-space-3); color: var(--fx-text-tertiary); font-size: calc(var(--fx-font-size-xs) * 0.92); font-variant-numeric: tabular-nums; line-height: 1; }
  /* yuborish holati: soat → ✓ → ✓✓ → ✓✓ brend; xato — soʻz bilan */
  .fx-message__tick { inline-size: var(--fx-size-icon-sm); block-size: calc(var(--fx-size-icon-sm) * 0.75); background: currentColor; mask: center / contain no-repeat; }
  .fx-message__tick[data-s="sending"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Ccircle cx='8' cy='6' r='4.5' fill='none' stroke='black' stroke-width='1.3'/%3E%3Cpath d='M8 3.8V6l1.4 1' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E"); }
  .fx-message__tick[data-s="sent"] { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath d='M3 6.5 6 9l6-6.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .fx-message__tick:is([data-s="delivered"], [data-s="read"]) { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath d='M1 6.5 4 9l6-6.5M7 8.5l.5.5 6-6.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .fx-message__tick[data-s="read"] { color: var(--fx-text-brand); }
  .fx-message__error { display: flex; align-items: center; gap: var(--fx-space-2); grid-column: 1 / -1; justify-self: end; color: var(--fx-fg-error); font-size: var(--fx-font-size-xs); }
  /* iqtibos, yoʻnaltirilgan, oʻchirilgan, tahrirlangan */
  .fx-message__quote { display: grid; margin-block-end: var(--fx-space-1); padding: var(--fx-space-1) var(--fx-space-2); border-inline-start: calc(var(--fx-border-width-focus) * 1.25) solid var(--fx-text-brand); border-radius: var(--fx-radius-badge); background: color-mix(in oklab, var(--fx-bg-surface) 55%, transparent); font-size: var(--fx-font-size-xs); }
  .fx-message__quote > b { color: var(--fx-text-brand); }
  .fx-message__fwd { margin-block-end: var(--fx-space-1); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-style: italic; }
  .fx-message[data-deleted] .fx-message__body { color: var(--fx-text-tertiary); font-style: italic; }
  /* fayl, rasm, ovozli xabar */
  .fx-message__file { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: var(--fx-space-3); padding: var(--fx-space-2); border-radius: var(--fx-radius-control); background: color-mix(in oklab, var(--fx-bg-surface) 60%, transparent); color: inherit; text-decoration: none; }
  .fx-message__file > :first-child { display: grid; place-items: center; inline-size: var(--fx-control-h-md); block-size: var(--fx-control-h-md); grid-row: span 2; border-radius: var(--fx-radius-control); background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-semibold); }
  .fx-message__file small { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-message__media { display: block; inline-size: min(100%, calc(var(--fx-space-12) * 6)); aspect-ratio: 4 / 3; margin: calc(var(--fx-space-1) * -1) calc(var(--fx-space-2) * -1) var(--fx-space-1); border-radius: calc(var(--fx-radius-overlay) - var(--fx-space-1)); object-fit: cover; background: var(--fx-bg-subtle); }
  .fx-message__voice { display: flex; align-items: center; gap: var(--fx-space-2); min-inline-size: calc(var(--fx-space-12) * 4); }
  .fx-message__voice > button { display: grid; place-items: center; inline-size: var(--fx-control-h-sm); block-size: var(--fx-control-h-sm); padding: 0; border: 0; border-radius: var(--fx-radius-circle); background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); cursor: pointer; }
  .fx-message__voice > button > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); fill: currentColor; }
  .fx-message__wave { flex: 1; block-size: var(--fx-space-6); background: repeating-linear-gradient(90deg, var(--fx-text-secondary) 0 2px, transparent 2px 5px); mask: linear-gradient(transparent 0 0) , url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 24' preserveAspectRatio='none'%3E%3Cpath d='M0 12h4V8h4v8h4V4h4v16h4V9h4v6h4V2h4v20h4V7h4v10h4V5h4v14h4V9h4v6h4V3h4v18h4V8h4v8h4V10h4v4h4V6h4v12h4V9h4v6h4' fill='black'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask-composite: add; opacity: 0.7; }
  /* reaksiyalar: pill (ikon + son), meniki — brend */
  .fx-reactions { display: flex; flex-wrap: wrap; gap: var(--fx-space-1); grid-column: 2; margin-block-start: var(--fx-space-1); }
  .fx-message[data-dir="out"] .fx-reactions { grid-column: 1; justify-content: end; }
  .fx-reaction { display: inline-flex; align-items: center; gap: var(--fx-space-1); min-block-size: var(--fx-space-6); padding: 0 var(--fx-space-2); border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-circle); background: var(--fx-bg-surface); color: var(--fx-text-secondary); font: inherit; font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; cursor: pointer; transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard); }
  .fx-reaction:active { scale: var(--fx-motion-press); }
  .fx-reaction[aria-pressed="true"] { border-color: var(--fx-border-color-focus); background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); }
  /* ajratgichlar: sana pill, tizim xabari, «Oʻqilmaganlar» chizigʻi */
  .fx-message-divider { display: flex; align-items: center; gap: var(--fx-space-3); margin-block: var(--fx-space-4); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-message-divider[data-type="date"] { justify-content: center; }
  .fx-message-divider[data-type="date"] > span { padding: var(--fx-space-1) var(--fx-space-3); border-radius: var(--fx-radius-tag); background: var(--fx-bg-muted); color: var(--fx-text-secondary); font-weight: var(--fx-font-weight-medium); }
  .fx-message-divider[data-type="system"] { justify-content: center; text-align: center; }
  .fx-message-divider[data-type="unread"] { color: var(--fx-text-brand); font-weight: var(--fx-font-weight-semibold); }
  .fx-message-divider[data-type="unread"]::before, .fx-message-divider[data-type="unread"]::after { content: ""; flex: 1; block-size: var(--fx-border-width-default); background: currentColor; opacity: 0.5; }

  /* ---- Kengaytma (2.149): ketma-ket xabar (avatarsiz), variantlar “2/3”, tahrirlash, xato+qayta urinish, matn ichida kod va jadval ---- */
  .fx-message:not([data-variant="bubble"])[data-group="cont"] { grid-template-columns: minmax(0, 1fr); padding-inline-start: calc(var(--fx-size-avatar-md) + var(--fx-space-3)); margin-block-start: calc(var(--fx-space-2) * -1); }
  .fx-message:not([data-variant="bubble"])[data-group="cont"] > :is(.fx-avatar, .fx-message__meta) { display: none; }
  .fx-message:not([data-variant="bubble"])[data-group="cont"][data-role="user"] { padding-inline-start: 0; }
  /* Variantlar: ‹ 2/3 › */
  .fx-message__variants { display: inline-flex; align-items: center; gap: var(--fx-space-1); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; }
  .fx-message__variants > button { display: grid; place-items: center; inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); padding: 0; border: 0; border-radius: var(--fx-radius-badge); background: none; color: inherit; font: inherit; cursor: pointer; }
  .fx-message__variants > button:hover:not(:disabled) { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-message__variants > button:active:not(:disabled) { background: var(--fx-bg-pressed); }
  .fx-message__variants > button:disabled { opacity: 0.4; cursor: not-allowed; }
  .fx-message__variants > button:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); }
  /* Tahrirlash rejimi (data-state="editing"): matn maydoniga aylanadi */
  .fx-message[data-state="editing"] .fx-message__body { min-inline-size: calc(var(--fx-space-12) * 5); padding: var(--fx-space-3) var(--fx-space-4); border: var(--fx-border-width-default) solid var(--fx-border-color-focus); border-radius: var(--fx-radius-surface); background: var(--fx-bg-surface); }
  .fx-message[data-state="editing"] .fx-message__body:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-default); }
  /* Xato + “Qayta urinish” */
  .fx-message[data-state="error"] .fx-message__body { border: var(--fx-border-width-default) solid var(--fx-border-color-error); border-radius: var(--fx-radius-surface); padding: var(--fx-space-2) var(--fx-space-3); }
  .fx-message__retry { padding: 0; border: 0; border-radius: var(--fx-radius-badge); background: none; color: var(--fx-text-brand); font: inherit; font-weight: var(--fx-font-weight-medium); text-decoration: underline; text-underline-offset: calc(var(--fx-space-1) * 0.75); cursor: pointer; }
  .fx-message__retry:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  /* Matn ichida kod bloki, inline kod va jadval */
  .fx-message__body :is(pre, code) { font-family: var(--fx-font-family-mono); font-size-adjust: var(--fx-font-adjust-mono); font-size: var(--fx-font-size-xs); }
  .fx-message__body code { padding: calc(var(--fx-space-1) / 2) var(--fx-space-1); border-radius: var(--fx-radius-badge); background: var(--fx-bg-muted); }
  .fx-message__body pre { margin: var(--fx-space-2) 0; padding: var(--fx-space-3) var(--fx-space-4); overflow-x: auto; border-radius: var(--fx-radius-control); background: var(--fx-bg-muted); line-height: 1.5; tab-size: 2; }
  .fx-message__body pre code { padding: 0; background: none; }
  .fx-message__body table { display: block; max-inline-size: 100%; overflow-x: auto; margin: var(--fx-space-2) 0; border-collapse: collapse; font-size: var(--fx-font-size-xs); }
  .fx-message__body :is(th, td) { padding: var(--fx-space-1) var(--fx-space-3); border: var(--fx-border-width-default) solid var(--fx-border-color-default); text-align: start; }
  .fx-message__body th { background: var(--fx-bg-subtle); font-weight: var(--fx-font-weight-semibold); }
  @media (forced-colors: active) { .fx-message[data-variant="bubble"] .fx-message__body { border: var(--fx-border-width-default) solid CanvasText; } }
}

@layer fx.components {
  /* Harakat qatlami (4-toʻlqin 4.25, 4.31, 4.32, 4.35). Hamma davomiylik --fx-motion-* (knob bilan: reduced-motion va
     data-fx-motion="none"da 0), egri — --fx-ease-*. */

  /* --- Harakat sxemasi: fazoviy va effekt prujinalari (4.25, M3 Expressive) ---
     spatial — joy/oʻlcham/burilish uchun (biroz oshib ketadi), effects — rang/shaffoflik uchun (hech qachon oshib ketmaydi).
     Qiymat — transition/animation'ga tayyor «davomiylik egri» juftligi: transition: translate var(--fx-spring-spatial-default).
     calm'da fazoviy ham sakramaydi; expressive'da sekin prujina sakraydi. Token taklifi: --fx-spring-spatial-* / --fx-spring-effects-*. */
  :root, [data-fx-motion], [data-fx-personality], [data-fx-density] {
    --fx-spring-spatial-fast: var(--fx-motion-fast) var(--fx-ease-spring);
    --fx-spring-spatial-default: var(--fx-motion-slow) var(--fx-ease-spring);
    --fx-spring-spatial-slow: var(--fx-motion-slower) var(--fx-ease-spring);
    --fx-spring-effects-fast: var(--fx-motion-fast) var(--fx-ease-standard);
    --fx-spring-effects-default: var(--fx-motion-base) var(--fx-ease-standard);
    --fx-spring-effects-slow: var(--fx-motion-slow) var(--fx-ease-standard);
  }
  [data-fx-motion="calm"] {
    --fx-spring-spatial-fast: var(--fx-motion-fast) var(--fx-ease-emphasized);
    --fx-spring-spatial-default: var(--fx-motion-slow) var(--fx-ease-emphasized);
    --fx-spring-spatial-slow: var(--fx-motion-slower) var(--fx-ease-emphasized);
  }
  [data-fx-motion="expressive"] {
    --fx-spring-spatial-slow: var(--fx-motion-slower) var(--fx-ease-bounce);
  }
  /* Tayyor oʻtishlar: data-spring="spatial" — joy/oʻlcham, "effects" — rang/shaffoflik, "both" — ikkalasi */
  .fx-spring[data-spring="spatial"] { transition: translate var(--fx-spring-spatial-default), scale var(--fx-spring-spatial-default), rotate var(--fx-spring-spatial-default), inline-size var(--fx-spring-spatial-default), block-size var(--fx-spring-spatial-default); }
  .fx-spring, .fx-spring[data-spring="effects"] { transition: opacity var(--fx-spring-effects-default), color var(--fx-spring-effects-default), background-color var(--fx-spring-effects-default), border-color var(--fx-spring-effects-default); }
  .fx-spring[data-spring="both"] { transition: translate var(--fx-spring-spatial-default), scale var(--fx-spring-spatial-default), rotate var(--fx-spring-spatial-default), opacity var(--fx-spring-effects-default), color var(--fx-spring-effects-default), background-color var(--fx-spring-effects-default); }
  .fx-spring[data-speed="fast"] { --fx-spring-spatial-default: var(--fx-spring-spatial-fast); --fx-spring-effects-default: var(--fx-spring-effects-fast); }
  .fx-spring[data-speed="slow"] { --fx-spring-spatial-default: var(--fx-spring-spatial-slow); --fx-spring-effects-default: var(--fx-spring-effects-slow); }

  /* --- Scroll'ga bogʻliq kirish (4.31): blok koʻrinish maydoniga kirganda paydo boʻladi (animation-timeline: view()).
     Qoʻllanmasa, harakat kamaytirilsa yoki data-fx-motion="none" boʻlsa — darhol koʻrinadi (hech narsa yashirilmaydi). */
  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      [data-fx-reveal] {
        animation: fx-reveal-up var(--fx-ease-enter) both;
        animation-duration: auto;
        animation-timeline: view();
        animation-range: entry 0% entry 70%;
      }
      [data-fx-reveal="fade"] { animation-name: fx-reveal-fade; }
      [data-fx-reveal="blur"] { animation-name: fx-reveal-blur; }
      [data-fx-reveal="scale"] { animation-name: fx-reveal-scale; }
      [data-fx-motion="none"] [data-fx-reveal], [data-fx-reveal][data-fx-motion="none"] { animation: none; }
    }
  }
  @keyframes fx-reveal-up { from { opacity: 0; translate: 0 var(--fx-motion-shift-lg); } }
  @keyframes fx-reveal-fade { from { opacity: 0; } }
  @keyframes fx-reveal-blur { from { opacity: 0; filter: blur(var(--fx-space-2)); translate: 0 var(--fx-motion-shift-md); } }
  @keyframes fx-reveal-scale { from { opacity: 0; scale: var(--fx-motion-scale-enter); } }

  /* --- Oʻqish progress chizigʻi (4.32): sahifa (yoki eng yaqin aylanuvchi blok) aylantirilgani sari toʻladi.
     scroll() timeline'siz brauzerda koʻrinmaydi (bezak — ma'no bermaydi, aria-hidden). */
  .fx-scroll-progress {
    position: fixed;
    inset-block-start: 0;
    inset-inline: 0;
    z-index: var(--fx-z-sticky);
    block-size: var(--fx-space-1);
    background: var(--fx-bg-brand-solid);
    transform-origin: 0 50%;
    scale: 0 1;
    pointer-events: none;
    display: none;
  }
  .fx-scroll-progress:dir(rtl) { transform-origin: 100% 50%; }
  .fx-scroll-progress[data-position="sticky"] { position: sticky; }
  .fx-scroll-progress[data-tone="accent"] { background: var(--fx-viz-accent); }
  .fx-scroll-progress[data-size="sm"] { block-size: calc(var(--fx-space-1) / 2); }
  @supports (animation-timeline: scroll()) {
    .fx-scroll-progress { display: block; animation: fx-scroll-progress linear both; animation-duration: auto; animation-timeline: scroll(root block); }
    .fx-scroll-progress[data-position="sticky"] { animation-timeline: scroll(nearest block); }
  }
  @keyframes fx-scroll-progress { to { scale: 1 1; } }

  /* --- Aylanuvchi raqam (4.35): qiymat oʻzgarganda raqamlar barabandek aylanadi. Xulq — behaviors/ticker.js (data-fx-ticker).
     JS boʻlmasa — oddiy matn. Har raqam ustuni — 0…9 lentasi, --_d — koʻrinadigan raqam. */
  .fx-ticker { display: inline-flex; align-items: baseline; font-variant-numeric: tabular-nums; line-height: var(--fx-line-height-tight); white-space: nowrap; }
  .fx-ticker__track { display: inline-flex; }
  .fx-ticker__digit { display: inline-block; block-size: 1lh; overflow: hidden; }
  .fx-ticker__reel { display: flex; flex-direction: column; translate: 0 calc(var(--_d, 0) * -10%); transition: translate calc(var(--fx-motion-slower) + var(--_i, 0) * var(--fx-duration-stagger) * var(--fx-knob-motion)) var(--fx-ease-emphasized); }
  [data-fx-motion="expressive"] .fx-ticker__reel { transition-timing-function: var(--fx-ease-spring); }
  .fx-ticker__reel > span { block-size: 1lh; text-align: center; }
  .fx-ticker__sym { display: inline-block; }
  .fx-ticker[data-tone="up"] { color: var(--fx-fg-success); }
  .fx-ticker[data-tone="down"] { color: var(--fx-fg-error); }
}

@layer fx.components {
  /* Yon menyu (WDS «Karkas va navigatsiya», S1): band 40, matn bitta qator «…», tanlangan — brend tusi + brend matni
     (chap chiziq va qora pill emas), guruh sarlavhasi katta harf, son — xira pill, ichki bandlar tutash yoʻl chizigʻida (ochiladigan guruh — fx-nav__toggle),
     pastki bandlar tagda qotiriladi. Yigʻilgan holat (data-collapsed) — faqat ikonkalar, nom aria-label/title'da. */
  .fx-nav { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--fx-space-1); inline-size: var(--fx-nav-width); padding: var(--fx-space-3); box-sizing: border-box; }
  .fx-nav__group { display: grid; gap: calc(var(--fx-space-1) / 2); min-inline-size: 0; }
  .fx-nav__group + .fx-nav__group { margin-block-start: var(--fx-space-4); }
  .fx-nav__title { padding: 0 var(--fx-space-3) var(--fx-space-1); color: var(--fx-text-tertiary); font-size: calc(var(--fx-font-size-xs) * 0.92); font-weight: var(--fx-font-weight-semibold); letter-spacing: 0.06em; text-transform: uppercase; }
  .fx-nav__item {
    --_h: var(--fx-nav-item-height);
    display: flex;
    align-items: center;
    gap: var(--fx-space-3);
    block-size: var(--_h);
    padding-inline: var(--fx-space-3);
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-nav));
    color: var(--fx-text-secondary);
    font-size: var(--fx-font-size-sm);
    font-weight: var(--fx-font-weight-medium);
    text-decoration: none;
    white-space: nowrap;
    min-inline-size: 0;
    overflow: hidden;
    transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-radius var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-nav__item > svg { flex: none; inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  /* Uzun nom — bitta qator «…» (WDS r202) */
  .fx-nav__label { flex: 1; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; }
  /* sanoq: bir xonali — toʻliq doira, uzunrogʻi — kapsula; ellips yoki ezilgan doira yoʻq (Ustoz 20.10 «qovun»; test-ota SHAPE-01) */
  .fx-nav__count { flex: none; box-sizing: border-box; display: inline-grid; place-items: center; min-inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); padding: 0 calc(var(--fx-space-1) / 2); border-radius: var(--fx-radius-pill); background: var(--fx-bg-muted); color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; text-align: center; }
  .fx-nav__item:hover { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-nav__item:active { background: var(--fx-bg-pressed); }
  .fx-nav__item[aria-current="page"] { background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); }
  .fx-nav__item[aria-current="page"] .fx-nav__count { background: var(--fx-bg-surface); }
  .fx-nav__item:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-nav__item[target="_blank"] .fx-nav__label::after { content: " ↗"; color: var(--fx-text-tertiary); }
  /* Ichki bandlar (Ustoz 19.10, Cloudflare koʻrinishi): guruh ikonkasi markazidan tushgan ingichka tutash chiziq (matn rangining 14 %);
     joriy band — chiziq ustida brend tusidagi qisqa tayoqcha + xira fon. Avvalgi uzuq chiziq (r178) shu bilan almashdi. */
  .fx-nav__subs { display: grid; min-inline-size: 0; gap: calc(var(--fx-space-1) / 2); margin-inline-start: calc(var(--fx-space-3) + var(--fx-size-icon-md) / 2); padding-inline-start: var(--fx-space-3); background: linear-gradient(color-mix(in oklab, var(--fx-text-primary) 14%, transparent), color-mix(in oklab, var(--fx-text-primary) 14%, transparent)) 0 0 / var(--fx-border-width-default) 100% no-repeat; }
  .fx-nav__subs .fx-nav__item { --_h: var(--fx-nav-subitem-height); position: relative; overflow: visible; color: color-mix(in oklab, var(--fx-text-primary) 60%, transparent); }
  .fx-nav__subs .fx-nav__item[aria-current="page"] { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-nav__subs .fx-nav__item[aria-current="page"]::before { content: ""; position: absolute; inset-block: 22%; inset-inline-start: calc(var(--fx-space-3) * -1 - var(--fx-border-width-default) / 2); inline-size: calc(var(--fx-border-width-default) * 2); border-radius: var(--fx-radius-pill); background: var(--fx-bg-brand-solid); }
  /* Ochiladigan guruh: tugma + oʻq; ochilish balandlik boʻyicha silliq (interpolate-size), yopiqda bandlar fokusga tushmaydi */
  .fx-nav__toggle { inline-size: 100%; border: 0; background: none; font-family: inherit; font-size-adjust: inherit; line-height: inherit; letter-spacing: inherit; text-align: start; cursor: pointer; }
  .fx-nav__chev { flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); color: var(--fx-text-tertiary); transition: rotate var(--fx-motion-base) var(--fx-ease-standard); }
  .fx-nav__toggle[aria-expanded="false"] .fx-nav__chev { rotate: -90deg; }
  .fx-nav__toggle:has(+ .fx-nav__subs [aria-current="page"]) { color: var(--fx-text-primary); }
  .fx-nav__toggle[aria-expanded] + .fx-nav__subs { interpolate-size: allow-keywords; overflow: clip; overflow-clip-margin: var(--fx-border-width-focus); block-size: auto; transition: block-size var(--fx-motion-base) var(--fx-ease-standard), opacity var(--fx-motion-base) var(--fx-ease-standard), visibility var(--fx-motion-base); }
  .fx-nav__toggle[aria-expanded="false"] + .fx-nav__subs { block-size: 0; opacity: 0; visibility: hidden; }
  @media (prefers-reduced-motion: reduce) { .fx-nav__toggle[aria-expanded] + .fx-nav__subs, .fx-nav__chev { transition: none; } }
  .fx-nav__foot { display: grid; gap: calc(var(--fx-space-1) / 2); margin-block-start: auto; padding-block-start: var(--fx-space-4); }
  /* Yigʻilgan: ikonkalar ustuni */
  .fx-nav[data-collapsed] { inline-size: var(--fx-nav-width-collapsed); padding-inline: var(--fx-space-2); }
  .fx-nav[data-collapsed] .fx-nav__item { justify-content: center; padding-inline: 0; }
  .fx-nav[data-collapsed] .fx-nav__chev { display: none; }
  .fx-nav[data-collapsed] :is(.fx-nav__label, .fx-nav__title, .fx-nav__subs) { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
  .fx-nav[data-collapsed] .fx-nav__item { overflow: visible; }
  .fx-nav[data-collapsed] .fx-nav__count { position: absolute; translate: calc(var(--fx-space-3)) calc(var(--fx-space-3) * -1); min-inline-size: 0; inline-size: var(--fx-size-status-dot-sm); block-size: var(--fx-size-status-dot-sm); padding: 0; overflow: hidden; color: transparent; background: var(--fx-text-brand); }
  .fx-nav[data-collapsed] .fx-nav__item { position: relative; }
  /* ---- Kengaytma (2.137): sevimlilar guruhi, “Yangi” belgisi, ichidagi qidiruv ---- */
  .fx-nav__group[data-pinned] > .fx-nav__title::before { content: "★ "; letter-spacing: 0; }
  .fx-nav__new { flex: none; padding: calc(var(--fx-space-1) / 2) var(--fx-space-2); border-radius: var(--fx-radius-badge); background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); font-size: calc(var(--fx-font-size-xs) * 0.85); font-weight: var(--fx-font-weight-semibold); line-height: 1.2; }
  .fx-nav__item[data-new]::after { content: ""; flex: none; inline-size: var(--fx-size-status-dot-sm); block-size: var(--fx-size-status-dot-sm); border-radius: var(--fx-radius-circle); background: var(--fx-bg-brand-solid); }
  .fx-nav__item:has(.fx-nav__count)[data-new]::after { display: none; }
  .fx-nav[data-collapsed] .fx-nav__new { display: none; }
  .fx-nav__search { margin-block-end: var(--fx-space-2); }
  .fx-nav[data-collapsed] .fx-nav__search { display: none; }
  @media (forced-colors: active) { .fx-nav__item[aria-current="page"] { background: Highlight; color: HighlightText; forced-color-adjust: none; } }
}

@layer fx.components {
  /* Shar (orb) — AI yordamchining abstrakt «yuzi» (Siri sharidan ilhom, Ustoz 17.10): yuz, qoʻl, koʻz yoʻq — chizgi xatosi boʻlmaydi.
     Bitta rangdan (standart — brend; data-color — 6 toifa rangi; AI yordamchi ichida — saytning brend rangi) toʻq yadro + uchta suzuvchi rang toʻlqini + yaltiroq.
     Holatlar (data-state): idle — sekin nafas · thinking — toʻlqinlar tezlashib buraladi · talking — urib turadi · handoff — bir marta chaqnaydi.
     Faqat CSS, 0 bayt JS; oʻlcham konteyner birligida (cqi) — har oʻlchamda bir xil koʻrinadi. */
  .fx-orb {
    --_o: var(--fx-bg-brand-solid);
    --_t: 1;
    position: relative;
    display: inline-block;
    flex: none;
    inline-size: var(--fx-size-avatar-md);
    aspect-ratio: 1;
    container-type: inline-size;
    border-radius: var(--fx-radius-circle);
    overflow: hidden;
    isolation: isolate;
    /* toʻlqin ranglari brenddan: ton bir tomonga (−35°, −70°) aylantiriladi — iliq brendda yashil «kir» chiqmaydi, yorugʻlik va toʻyinganlik qotiriladi — brend och, toʻq yoki kulrang boʻlsa ham shar yorqin */
    --_w1: oklch(from var(--_o) 0.78 max(c, 0.2) h);
    --_w2: oklch(from var(--_o) 0.72 max(c, 0.24) calc(h - 35));
    --_w3: oklch(from var(--_o) 0.74 max(c, 0.22) calc(h - 70));
    --_k1: oklch(from var(--_o) 0.42 max(c, 0.16) calc(h - 35));
    --_k2: oklch(from var(--_o) 0.2 max(c, 0.1) calc(h - 50));
    background: radial-gradient(circle at 50% 50%, var(--_k1), var(--_k2) 78%);
    animation: fx-orb-breath calc(var(--fx-duration-pulse) * 2.5 * var(--_t)) var(--fx-ease-standard) infinite;
  }
  .fx-orb[data-color="coral"] { --_o: var(--fx-bg-category-coral); }
  .fx-orb[data-color="pink"] { --_o: var(--fx-bg-category-pink); }
  .fx-orb[data-color="blue"] { --_o: var(--fx-bg-category-blue); }
  .fx-orb[data-color="green"] { --_o: var(--fx-bg-category-green); }
  .fx-orb[data-color="yellow"] { --_o: var(--fx-bg-category-yellow); }
  .fx-orb[data-color="purple"] { --_o: var(--fx-bg-category-purple); }
  .fx-orb[data-size="sm"] { inline-size: var(--fx-size-avatar-sm); }
  .fx-orb[data-size="lg"] { inline-size: var(--fx-size-avatar-lg); }
  .fx-orb[data-size="xl"] { inline-size: calc(var(--fx-size-avatar-lg) * 2); }
  /* uchta rang toʻlqini — har biri oʻz tezligi va yoʻnalishida aylanadi */
  .fx-orb__wave { position: absolute; inset: -20%; border-radius: var(--fx-radius-circle); filter: blur(7cqi); mix-blend-mode: screen; animation: fx-orb-spin calc(var(--fx-duration-pulse) * 5 * var(--_t)) linear infinite; }
  .fx-orb__wave:nth-child(1) { background: radial-gradient(ellipse 60% 44% at 32% 36%, var(--_w1) 0 18%, transparent 62%); }
  .fx-orb__wave:nth-child(2) { background: radial-gradient(ellipse 46% 58% at 68% 56%, var(--_w2) 0 16%, transparent 62%); animation-duration: calc(var(--fx-duration-pulse) * 7 * var(--_t)); animation-direction: reverse; }
  .fx-orb__wave:nth-child(3) { background: radial-gradient(ellipse 54% 40% at 46% 74%, var(--_w3) 0 14%, transparent 60%); animation-duration: calc(var(--fx-duration-pulse) * 9 * var(--_t)); }
  /* ovoz toʻlqinlari (JS: data-fx-orb → canvas, Siri kabi lentalar) — gradient ustida, yaltiroq ostida */
  .fx-orb__lines { position: absolute; inset: 0; z-index: 1; inline-size: 100%; block-size: 100%; mix-blend-mode: screen; }
  .fx-orb::after { z-index: 2; }
  /* yaltiroq — shishasimon hajm */
  .fx-orb::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(circle at 50% 50%, transparent 60%, color-mix(in oklab, var(--_w1) 30%, transparent) 70%, transparent 74%), radial-gradient(circle at 36% 28%, color-mix(in oklab, var(--fx-bg-static-light) 28%, transparent) 0 6%, transparent 26%); pointer-events: none; }
  /* holatlar */
  .fx-orb[data-state="thinking"] { --_t: 0.35; }
  .fx-orb[data-state="thinking"] .fx-orb__wave { scale: 0.8; transition: scale var(--fx-motion-slow) var(--fx-ease-standard); }
  .fx-orb[data-state="talking"] { --_t: 0.6; animation: fx-orb-talk calc(var(--fx-duration-pulse) / 4) var(--fx-ease-standard) 4; }
  .fx-orb[data-state="handoff"] { animation: fx-orb-flash var(--fx-duration-slower) var(--fx-ease-standard) 1; }
  @keyframes fx-orb-spin { to { rotate: 1turn; } }
  @keyframes fx-orb-breath { 50% { scale: 1.04; } }
  @keyframes fx-orb-talk { 50% { scale: 1.08; } }
  @keyframes fx-orb-flash { 40% { filter: brightness(1.6) saturate(1.3); scale: 1.08; } }
  @media (prefers-reduced-motion: reduce) { .fx-orb, .fx-orb__wave { animation: none; } }
  @media (forced-colors: active) { .fx-orb { background: CanvasText; } .fx-orb__wave, .fx-orb::after { display: none; } }
}

@layer fx.components {
  /* Bosma qatlami (4-toʻlqin 4.14; GOV.UK, Carbon, Primer). Ekranda .fx-print — oddiy hujjat oʻrami (hisob-faktura, dalolatnoma, hisobot).
     Chop etilganda (Ctrl+P) global: navigatsiya, tugmalar, toast, suzuvchi qatlamlar yashirinadi; karkas bitta ustunga yoyiladi;
     soyalar oʻchadi; jadval sarlavhasi har betda takrorlanadi; qator, rasm, karta betda boʻlinmaydi.
     Boshqaruv atributi data-print: hide (bosmada yoʻq) · only (faqat bosmada) · break-before / break-after (yangi bet) · avoid (boʻlinmasin)
     · urls (ichidagi tashqi havolalar manzili qavsda yoziladi). */
  .fx-print { display: grid; gap: var(--fx-space-5); max-inline-size: calc(var(--fx-popover-width) * 2.4); margin-inline: auto; padding: var(--fx-space-8); border: var(--fx-border-width-default) solid var(--fx-border-color-surface); border-radius: var(--fx-radius-surface); background: var(--fx-bg-surface); color: var(--fx-text-primary); font-size: var(--fx-font-size-sm); }
  .fx-print__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--fx-space-4); padding-block-end: var(--fx-space-4); border-block-end: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-print__title { margin: 0; font-size: var(--fx-font-size-xl); font-weight: var(--fx-font-weight-bold); }
  .fx-print__meta { margin: 0; color: var(--fx-text-secondary); font-variant-numeric: tabular-nums; }
  .fx-print__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--fx-space-3); padding-block-start: var(--fx-space-4); border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-print__actions { display: flex; justify-content: flex-end; gap: var(--fx-space-2); }
  /* Faqat bosmada koʻrinadigan qism (rekvizitlar, imzo joyi, sahifa manzili) — ekranda yashirin */
  [data-print="only"] { display: none; }

  @media print {
    /* Bet chegarasi — jismoniy oʻlchov (sm), ekran tokeni emas */
    @page { margin: 1.5cm; }
    :root { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    body { background: none; }
    /* 1) Yashiriladiganlar: navigatsiya, amallar, ustki qatlamlar */
    [data-print="hide"],
    .fx-print__actions,
    .fx-shell__side, .fx-shell__top, .fx-shell__rail, .fx-shell__aside,
    .fx-site-header, .fx-site-footer, .fx-skip-link,
    .fx-toast, .fx-fab, .fx-backtotop, .fx-quickexit, .fx-floatwin, .fx-menubar, .fx-tour, .fx-tour__beacon,
    :is(main, .fx-print) .fx-btn:not([data-print="show"]) { display: none !important; }
    [data-print="only"] { display: revert; }
    /* 2) Karkas — bitta ustun, ish maydoni toʻliq en */
    .fx-shell, .fx-shell[data-variant] { display: block; min-block-size: 0; block-size: auto; overflow: visible; padding: 0; background: none; }
    .fx-shell__main { padding: 0; overflow: visible; border: 0; box-shadow: none; }
    /* 3) Yuzalar: soya va rangli fon oʻrniga ingichka chiziq (siyoh tejash) */
    .fx-print { max-inline-size: none; padding: 0; border: 0; border-radius: 0; }
    .fx-card, .fx-print, .fx-elevation, .fx-dialog { box-shadow: none !important; }
    /* 4) Sahifa sinishi */
    [data-print="break-before"] { break-before: page; }
    [data-print="break-after"] { break-after: page; }
    [data-print="avoid"], tr, img, svg, figure, .fx-card, .fx-stat, .fx-callout { break-inside: avoid; }
    h1, h2, h3, h4, .fx-print__title { break-after: avoid; }
    p { orphans: 3; widows: 3; }
    /* 5) Jadval: sarlavha va yakun har betda takrorlanadi */
    thead { display: table-header-group; }
    tfoot { display: table-footer-group; }
    /* 6) Havola manzili: .fx-prose va data-print="urls" ichida tashqi havola matnidan keyin */
    :is(.fx-prose, [data-print="urls"]) a[href^="http"]:not(.fx-btn)::after { content: " (" attr(href) ")"; color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); word-break: break-all; }
  }
}

@layer fx.components {
  /* Ustuvorlik belgisi (PDP Task): 3 ta oʻsib boruvchi ustuncha — past 1, oʻrta 2, yuqori 3 toʻla; shoshilinch — 3 toʻla + xavf rangi;
     yoʻq — 3 xira. Belgi soʻzsiz boʻlmaydi: aria-label (yoki yonida matn). */
  .fx-prio { --_on: var(--fx-text-secondary); display: inline-grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: calc(var(--fx-space-1) / 2); inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); padding: calc(var(--fx-space-1) / 2); box-sizing: border-box; flex: none; }
  .fx-prio::before, .fx-prio::after, .fx-prio > i { content: ""; display: block; border-radius: calc(var(--fx-radius-badge) / 4); background: color-mix(in oklab, var(--_on) 25%, transparent); }
  .fx-prio::before { block-size: 40%; } .fx-prio > i { block-size: 70%; } .fx-prio::after { block-size: 100%; order: 3; }
  .fx-prio:is([data-level="1"], [data-level="2"], [data-level="3"], [data-level="urgent"])::before { background: var(--_on); }
  .fx-prio:is([data-level="2"], [data-level="3"], [data-level="urgent"]) > i { background: var(--_on); }
  .fx-prio:is([data-level="3"], [data-level="urgent"])::after { background: var(--_on); }
  .fx-prio[data-level="urgent"] { --_on: var(--fx-fg-error); }
  .fx-prio[data-level="0"] { opacity: 0.8; }
  .fx-prio[data-size="lg"] { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }

  /* ---- Belgi varianti (Ustoz Figma maketi, 21.10 — Jira kabi 10 daraja): data-variant="mark" + data-level: trivial · lowest · lower · low ·
     minor · high · higher · highest · critical · blocker. Pastga — moviy chevronlar, yuqoriga — qizil; koʻp chevronda uzoqdagisi xiraroq.
     Rang — ma'noli tokenlardan (libos bilan almashadi), shakl — maska. Doim soʻz bilan (yonida matn yoki aria-label). ---- */
  .fx-prio[data-variant="mark"] { --_c: var(--fx-text-tertiary); display: inline-block; padding: 0; background: var(--_c); mask: center / contain no-repeat var(--_m); }
  .fx-prio[data-variant="mark"]::before, .fx-prio[data-variant="mark"]::after, .fx-prio[data-variant="mark"] > i { display: none; }
  .fx-prio[data-variant="mark"][data-level="trivial"] { --_c: var(--fx-text-tertiary); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="low"] { --_c: var(--fx-fg-info); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 6 7-6' stroke-opacity='1'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="lower"] { --_c: var(--fx-fg-info); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 6l7 6 7-6' stroke-opacity='0.55'/%3E%3Cpath d='M5 12l7 6 7-6' stroke-opacity='1'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="lowest"] { --_c: var(--fx-fg-info); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3.5l7 6 7-6' stroke-opacity='0.4'/%3E%3Cpath d='M5 9l7 6 7-6' stroke-opacity='0.65'/%3E%3Cpath d='M5 14.5l7 6 7-6' stroke-opacity='1'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="high"] { --_c: var(--fx-fg-error); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 15l7-6 7 6' stroke-opacity='1'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="higher"] { --_c: var(--fx-fg-error); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l7-6 7 6' stroke-opacity='1'/%3E%3Cpath d='M5 18l7-6 7 6' stroke-opacity='0.55'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="highest"] { --_c: var(--fx-fg-error); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9.5l7-6 7 6' stroke-opacity='1'/%3E%3Cpath d='M5 15l7-6 7 6' stroke-opacity='0.65'/%3E%3Cpath d='M5 20.5l7-6 7 6' stroke-opacity='0.4'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="minor"] { --_c: var(--fx-fg-warning); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16M4 15h16'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="critical"] { --_c: var(--fx-fg-error); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5 19.5 7.5V21.5L12 16.8 4.5 21.5V7.5Z' fill='black' stroke-width='1'/%3E%3C/svg%3E"); }
  .fx-prio[data-variant="mark"][data-level="blocker"] { --_c: var(--fx-fg-error); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath fill='black' fill-rule='evenodd' stroke='none' d='M12 2a10 10 0 1 0 0 20a10 10 0 1 0 0-20ZM6.5 10.6h11v2.8h-11Z'/%3E%3C/svg%3E"); }

  /* ---- Yorliq: .fx-prio-tag — pastel kapsula, oq doirada belgi va soʻz (Ustoz Figma maketi): urgent ★ · high ✦ · normal ▲ · low ○ ---- */
  .fx-prio-tag { --_c: var(--fx-text-secondary); --_bg: var(--fx-bg-muted); --_h: var(--fx-control-h-sm); display: inline-grid; grid-template-columns: auto auto; align-items: center; column-gap: var(--fx-space-2); block-size: var(--_h); box-sizing: border-box; padding: 0 var(--fx-space-3) 0 calc(var(--fx-space-1) / 2 + var(--fx-border-width-default)); border-radius: var(--fx-radius-pill); background: var(--_bg); color: color-mix(in oklab, var(--_c) 78%, var(--fx-text-primary)); font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-medium); white-space: nowrap; }
  .fx-prio-tag::before, .fx-prio-tag::after { content: ""; grid-area: 1 / 1; place-self: center; border-radius: var(--fx-radius-circle); }
  .fx-prio-tag::before { inline-size: calc(var(--_h) - var(--fx-space-1)); block-size: calc(var(--_h) - var(--fx-space-1)); background: var(--fx-bg-surface); }
  .fx-prio-tag::after { inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: var(--_c); mask: center / contain no-repeat var(--_m); }
  .fx-prio-tag[data-level="urgent"] { --_c: var(--fx-fg-error); --_bg: var(--fx-bg-error-subtle); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath fill='black' stroke='none' d='M12 2.6l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.4l-5.9 3.3 1.3-6.6-4.9-4.6 6.6-.8Z'/%3E%3C/svg%3E"); }
  .fx-prio-tag[data-level="high"] { --_c: var(--fx-fg-warning); --_bg: var(--fx-bg-warning-subtle); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath fill='black' stroke='none' d='M12 2c.6 5 2.6 8.4 8 10-5.4 1.6-7.4 5-8 10-.6-5-2.6-8.4-8-10 5.4-1.6 7.4-5 8-10Z'/%3E%3C/svg%3E"); }
  .fx-prio-tag[data-level="normal"] { --_c: var(--fx-fg-info); --_bg: var(--fx-bg-info-subtle); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath fill='black' stroke='none' d='M12 4.5 20.5 19h-17Z'/%3E%3C/svg%3E"); }
  .fx-prio-tag[data-level="low"] { --_c: var(--fx-text-tertiary); --_bg: var(--fx-bg-muted); --_m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='7.5' stroke-width='3'/%3E%3C/svg%3E"); }
  .fx-prio-tag[data-size="sm"] { --_h: calc(var(--fx-space-6) + var(--fx-space-1)); font-size: var(--fx-font-size-xs); }
}

@layer fx.components {
  /* Chiziqli progress (WDS «Grafiklar»: foiz — halqa emas, chiziqli oʻlchagich). Qiymat: style="--fx-progress-value: 40%". */
  .fx-progress {
    --fx-progress-value: 0%;
    --_fill: var(--fx-bg-brand-solid);
    --_gap: var(--fx-space-1);
    position: relative;
    display: block;
    --_h: var(--fx-space-2);
    block-size: var(--_h);
    border-radius: calc(var(--_h) / 2);
    background: var(--fx-bg-muted);
    overflow: hidden;
  }
  .fx-progress::before {
    content: "";
    display: block;
    inline-size: clamp(0%, var(--fx-progress-value), 100%);
    block-size: 100%;
    border-radius: inherit;
    background: var(--_fill);
    transition: inline-size var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-progress[data-tone="success"] { --_fill: var(--fx-fg-success); }
  .fx-progress[data-tone="warning"] { --_fill: var(--fx-fg-warning); }
  .fx-progress[data-tone="error"] { --_fill: var(--fx-fg-error); }
  .fx-progress[data-color="yellow"] { --_fill: var(--fx-bg-category-yellow); }
  .fx-progress[data-color="pink"] { --_fill: var(--fx-bg-category-pink); }
  .fx-progress[data-color="blue"] { --_fill: var(--fx-bg-category-blue); }
  .fx-progress[data-color="coral"] { --_fill: var(--fx-bg-category-coral); }
  .fx-progress[data-color="green"] { --_fill: var(--fx-bg-category-green); }
  .fx-progress[data-color="purple"] { --_fill: var(--fx-bg-category-purple); }
  /* Tugash nuqtasi (M3 stop indicator, FoxOS taklifi 18.10): aniq qiymatda trek toʻlgan qismdan boʻshliq bilan boshlanadi va oʻng uchida
     kichik nuqta — ish shu yerda tugaydi. 100 % da trek va nuqta yoʻqoladi. Koʻp boʻlakli va aylana — oʻz qoidasida. */
  .fx-progress[aria-valuenow]:not([data-variant="stacked"], [data-variant="wavy"], [data-shape]) { background: none; overflow: visible; }
  .fx-progress[aria-valuenow]:not([data-variant="stacked"], [data-variant="wavy"], [data-shape])::after {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: min(100%, calc(clamp(0%, var(--fx-progress-value), 100%) + var(--_gap)));
    inset-inline-end: 0;
    border-radius: inherit;
    background: radial-gradient(circle closest-side, var(--_fill) 50%, transparent calc(50% + 0.5px)) 100% 50% / var(--_h) var(--_h) no-repeat, var(--fx-bg-muted);
    transition: inset-inline-start var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-progress[aria-valuenow]:not([data-variant="stacked"], [data-variant="wavy"], [data-shape]):dir(rtl)::after { background-position: 0 50%, 0 0; }
  @media (forced-colors: active) { .fx-progress[aria-valuenow]:not([data-variant="stacked"], [data-variant="wavy"], [data-shape])::after { background: GrayText; } .fx-progress::before { background: Highlight; forced-color-adjust: none; } }
  /* Noaniq: aria-valuenow yoʻq — boʻlak trekda sirpanadi (M3); harakat kamaytirilsa — joyida pulsatsiya */
  .fx-progress:not([aria-valuenow])::before { inline-size: 40%; animation: fx-progress-run calc(var(--fx-duration-indeterminate) * max(var(--fx-knob-motion-loop), 0.001)) var(--fx-ease-standard) infinite; }
  @keyframes fx-progress-run { from { translate: -100% 0; } to { translate: 250% 0; } }
  @media (prefers-reduced-motion: reduce) { .fx-progress:not([aria-valuenow])::before { inline-size: 100%; translate: none; animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; } }
  /* Oʻlchamlar (2.121) */
  .fx-progress[data-size="xs"] { --_h: calc(var(--fx-space-1) / 2 * 3); }
  .fx-progress[data-size="sm"] { --_h: var(--fx-space-1); }
  .fx-progress[data-size="lg"] { --_h: var(--fx-space-3); }
  /* Yorliq + qiymat qatori (2.118): chiziq ustida nom, oʻngda raqam, ostida izoh */
  .fx-progress-row { display: grid; gap: var(--fx-space-2); }
  .fx-progress-row__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--fx-space-3); font-size: var(--fx-font-size-sm); }
  .fx-progress-row__label { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fx-text-primary); font-weight: var(--fx-font-weight-medium); }
  .fx-progress-row__value { flex: none; color: var(--fx-text-secondary); font-variant-numeric: tabular-nums; }
  .fx-progress-row__hint { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  /* Koʻp boʻlakli (2.119): umumiy sigʻimning boʻlaklari — har boʻlak oʻz ulushi (--fx-progress-value) va roli; ichma-ich chiziq sahifa rangida */
  .fx-progress[data-variant="stacked"] { display: flex; }
  .fx-progress[data-variant="stacked"]::before { display: none; }
  .fx-progress__seg { --_c: var(--fx-viz-brand); flex: 0 0 clamp(0%, var(--fx-progress-value), 100%); min-inline-size: 0; background: var(--_c); transition: flex-basis var(--fx-motion-base) var(--fx-ease-standard); }
  .fx-progress__seg + .fx-progress__seg { border-inline-start: var(--fx-border-width-focus) solid var(--fx-bg-surface); }
  .fx-progress__seg[data-role="ink"] { --_c: var(--fx-viz-ink); }
  .fx-progress__seg[data-role="accent"] { --_c: var(--fx-viz-accent); }
  .fx-progress__seg[data-role="risk"] { --_c: var(--fx-viz-risk); }
  .fx-progress__seg[data-role="context"] { --_c: var(--fx-viz-context); }
}

@layer fx.components {
  /* Aylana (4.114): halqa + markazda foiz yoki ikon (.fx-progress__label). Aniq — --fx-progress-value, noaniq — aria-valuenow yoʻq (yoy aylanadi).
     Halqa ::before'da (mask faqat halqani kesadi, yorliq koʻrinib turadi). Dashboard grafigi emas — yuklash, kvota, profil toʻldirilishi uchun. */
  .fx-progress[data-shape="circle"] {
    --_d: var(--fx-control-h-lg);
    --_t: calc(var(--_d) / 10);
    --_fill: var(--fx-bg-brand-solid);
    position: relative;
    display: inline-grid;
    place-items: center;
    inline-size: var(--_d);
    block-size: var(--_d);
    border-radius: var(--fx-radius-circle);
    background: none;
    overflow: visible;
    color: var(--fx-text-primary);
    font-size: var(--fx-font-size-xs);
    font-weight: var(--fx-font-weight-semibold);
    font-variant-numeric: tabular-nums;
  }
  .fx-progress[data-shape="circle"]::before {
    position: absolute;
    inset: 0;
    inline-size: auto;
    border-radius: inherit;
    background: conic-gradient(var(--_fill) clamp(0%, var(--fx-progress-value), 100%), var(--fx-bg-muted) 0);
    mask: radial-gradient(farthest-side, transparent calc(100% - var(--_t) - 0.5px), white calc(100% - var(--_t)));
    transition: none;
  }
  .fx-progress[data-shape="circle"][data-tone="success"] { --_fill: var(--fx-fg-success); }
  .fx-progress[data-shape="circle"][data-tone="warning"] { --_fill: var(--fx-fg-warning); }
  .fx-progress[data-shape="circle"][data-tone="error"] { --_fill: var(--fx-fg-error); }
  .fx-progress[data-shape="circle"][data-size="sm"] { --_d: var(--fx-control-h-sm); --_t: calc(var(--_d) / 8); font-size: calc(var(--fx-font-size-xs) * 0.85); }
  .fx-progress[data-shape="circle"][data-size="lg"] { --_d: calc(var(--fx-control-h-lg) * 2); --_t: calc(var(--_d) / 14); font-size: var(--fx-font-size-lg); }
  .fx-progress__label { position: relative; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
  .fx-progress__label > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); fill: currentColor; }
  /* noaniq: chorak yoy aylanadi; harakat kamaytirilsa — butun halqa pulsatsiyada */
  .fx-progress[data-shape="circle"]:not([aria-valuenow])::before { inline-size: auto; translate: none; background: conic-gradient(var(--_fill) 0 28%, var(--fx-bg-muted) 0); animation: fx-spin calc(var(--fx-duration-spin) * max(var(--fx-knob-motion-loop), 0.001)) linear infinite; }
  @media (prefers-reduced-motion: reduce) { .fx-progress[data-shape="circle"]:not([aria-valuenow])::before { background: var(--fx-bg-muted); animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; } }
  @media (forced-colors: active) { .fx-progress[data-shape="circle"]::before { background: conic-gradient(Highlight clamp(0%, var(--fx-progress-value), 100%), GrayText 0); forced-color-adjust: none; } }
}

@layer fx.components {
  /* Toʻlqinli progress (4.42, M3 Expressive): toʻlgan qism — toʻlqinsimon chiziq, qolgan yoʻl — tekis trek, oraligʻida kichik boʻshliq.
     Toʻlqin — SVG niqob (rang mavzudan: fon rangi niqob orqali koʻrinadi). Aniq qiymatda toʻlqin statik (cheksiz harakat yoʻq);
     noaniq holatda toʻlqinli boʻlak trekda sirpanadi (oddiy progress bilan bir xil siyosat: loop knob, reduced-motion — pulsatsiya).
     100 % boʻlganda toʻlqin tinchlanadi — tekis chiziq (M3: ish tugadi). Aylana: halqaning oʻzi toʻlqinsimon. */
  .fx-progress[data-variant="wavy"] {
    --_h: var(--fx-space-3);
    --_stroke: calc(var(--_h) / 3);
    --_gap: var(--fx-space-1);
    position: relative;
    isolation: isolate;
    border-radius: 0;
    background: none;
  }
  .fx-progress[data-variant="wavy"]::before {
    border-radius: 0;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12' preserveAspectRatio='none'%3E%3Cpath d='M0 6Q6 0 12 6T24 6' fill='none' stroke='black' stroke-width='4'/%3E%3C/svg%3E") 0 50% / calc(var(--_h) * 2.5) 100% repeat-x;
  }
  .fx-progress[data-variant="wavy"]:dir(rtl)::before { mask-position: 100% 50%; }
  /* tekis trek: toʻlgan qismdan keyin, boshi boʻshliq bilan */
  .fx-progress[data-variant="wavy"]::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset-block: calc(50% - var(--_stroke) / 2);
    inset-inline-start: min(100%, calc(clamp(0%, var(--fx-progress-value), 100%) + var(--_gap)));
    inset-inline-end: 0;
    border-radius: var(--fx-radius-pill);
    background: var(--fx-bg-muted);
  }
  .fx-progress[data-variant="wavy"][aria-valuenow]::after { background: radial-gradient(circle closest-side, var(--_fill) 50%, transparent calc(50% + 0.5px)) 100% 50% / var(--_stroke) var(--_stroke) no-repeat, var(--fx-bg-muted); }
  .fx-progress[data-variant="wavy"][aria-valuenow]:dir(rtl)::after { background-position: 0 50%, 0 0; }
  .fx-progress[data-variant="wavy"][aria-valuenow="100"]::before { mask: linear-gradient(black, black) 0 50% / 100% var(--_stroke) no-repeat; border-radius: var(--fx-radius-pill); }
  .fx-progress[data-variant="wavy"]:not([aria-valuenow])::after { inset-inline-start: 0; }
  .fx-progress[data-variant="wavy"][data-size="sm"] { --_h: var(--fx-space-2); }
  .fx-progress[data-variant="wavy"][data-size="lg"] { --_h: var(--fx-space-4); }
  /* aylana: toʻlqinsimon halqa (konus — qiymat, qolgani — trek rangi) */
  .fx-progress[data-shape="circle"][data-variant="wavy"]::before {
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50.0 7.5L51.9 6.2L53.9 5.4L55.9 5.3L57.8 5.9L59.5 7.2L61.0 8.9L62.4 10.7L63.8 12.2L65.3 13.1L67.0 13.5L69.0 13.5L71.2 13.2L73.5 13.1L75.7 13.3L77.5 14.2L78.8 15.7L79.6 17.7L80.1 19.9L80.4 22.2L80.8 24.1L81.7 25.7L83.0 26.9L84.7 27.9L86.8 28.8L88.9 29.8L90.6 31.1L91.7 32.7L92.1 34.7L91.8 36.8L91.1 39.0L90.2 41.1L89.6 43.0L89.6 44.8L90.1 46.5L91.2 48.2L92.5 50.0L93.8 51.9L94.6 53.9L94.7 55.9L94.1 57.8L92.8 59.5L91.1 61.0L89.3 62.4L87.8 63.8L86.9 65.3L86.5 67.0L86.5 69.0L86.8 71.2L86.9 73.5L86.7 75.7L85.8 77.5L84.3 78.8L82.3 79.6L80.1 80.1L77.8 80.4L75.9 80.8L74.3 81.7L73.1 83.0L72.1 84.7L71.2 86.8L70.2 88.9L68.9 90.6L67.3 91.7L65.3 92.1L63.2 91.8L61.0 91.1L58.9 90.2L57.0 89.6L55.2 89.6L53.5 90.1L51.8 91.2L50.0 92.5L48.1 93.8L46.1 94.6L44.1 94.7L42.2 94.1L40.5 92.8L39.0 91.1L37.6 89.3L36.2 87.8L34.7 86.9L33.0 86.5L31.0 86.5L28.7 86.8L26.5 86.9L24.3 86.7L22.5 85.8L21.2 84.3L20.4 82.3L19.9 80.1L19.6 77.8L19.2 75.9L18.3 74.3L17.0 73.1L15.3 72.1L13.2 71.3L11.1 70.2L9.4 68.9L8.3 67.3L7.9 65.3L8.2 63.2L8.9 61.0L9.8 58.9L10.4 57.0L10.4 55.2L9.9 53.5L8.8 51.8L7.5 50.0L6.2 48.1L5.4 46.1L5.3 44.1L5.9 42.2L7.2 40.5L8.9 39.0L10.7 37.6L12.2 36.2L13.1 34.7L13.5 33.0L13.5 31.0L13.2 28.8L13.1 26.5L13.3 24.3L14.2 22.5L15.7 21.2L17.7 20.4L19.9 19.9L22.2 19.6L24.1 19.2L25.7 18.3L26.9 17.0L27.9 15.3L28.8 13.2L29.8 11.1L31.1 9.4L32.7 8.3L34.7 7.9L36.8 8.2L39.0 8.9L41.1 9.8L43.0 10.4L44.8 10.4L46.5 9.9L48.2 8.8L50.0 7.5Z' fill='none' stroke='black' stroke-width='7' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  }
  .fx-progress[data-shape="circle"][data-variant="wavy"]::after { display: none; }
  @media (forced-colors: active) { .fx-progress[data-variant="wavy"]::before { background: Highlight; forced-color-adjust: none; } .fx-progress[data-variant="wavy"]::after { background: GrayText; } }
}

@layer fx.components {
  /* Segment (bir nechtadan bittasi): tugmalar guruhi, tanlangani aria-pressed (yoki havola boʻlsa aria-current). Haqiqiy tablar — fx-tabs. tashqi qobiq va ichki pill — ichma-ich yoy formulasi: ichki = tashqi − ichki chet */
  .fx-segment {
    --_pad: var(--fx-space-1);
    --_h: var(--fx-control-h-md);
    --_inner-h: calc(var(--_h) - var(--_pad) * 2);
    display: inline-flex;
    gap: var(--fx-space-1);
    padding: var(--_pad);
    background: var(--fx-bg-muted);
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control));
    transition: border-radius var(--fx-motion-base) var(--fx-ease-standard);
    /* koʻp band telefonda sahifani yonga surmaydi — oʻzi ichida suriladi, chetlari soʻnadi (RedFox admin, 21.10) */
    max-inline-size: 100%; box-sizing: border-box; overflow-x: auto; scrollbar-width: none;
  }
  .fx-segment::-webkit-scrollbar { display: none; }
  .fx-segment > * { flex: none; }
  .fx-segment__item {
    /* bir xil oʻlcham (Ustoz 19.10: «tugmalar markazda emas»): <button>’da brauzerning 1 px ichki chekinishi va border-box, <a>’da content-box edi —
       balandlik 44 va 46, matn 1 px siljigan. Endi har qanday teg bilan bir xil quti: chegara ichida, tik chekinishsiz */
    box-sizing: border-box;
    padding-block: 0;
    display: inline-grid;
    place-items: center;
    /* ikon + yozuv yonma-yon (21.10: ustma-ust tushib, kichik oʻlchamda kesilardi) */
    grid-auto-flow: column;
    gap: var(--fx-space-2);
    text-decoration: none;
    white-space: nowrap;
    block-size: var(--_inner-h);
    padding-inline: var(--fx-space-4);
    border: 0;
    font: inherit;
    font-size: var(--fx-font-size-sm);
    font-weight: var(--fx-font-weight-medium);
    color: var(--fx-text-secondary);
    background: transparent;
    cursor: pointer;
    border-radius: calc(var(--fx-knob-pill) * var(--_inner-h) / 2 + (1 - var(--fx-knob-pill)) * max(0px, var(--fx-radius-control) - var(--_pad)));
    transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-radius var(--fx-motion-base) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard);
  }
  .fx-segment[data-size="sm"] { --_h: var(--fx-control-h-sm); }
  .fx-segment__item:hover { color: var(--fx-text-primary); }
  .fx-segment__item:is([aria-pressed="true"], [aria-current="page"], :has(> input:checked)) { background: var(--fx-bg-surface); color: var(--fx-text-primary); box-shadow: var(--fx-shadow-sm); }
  .fx-segment__item:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); }
  .fx-segment__item:active { scale: var(--fx-motion-press); }
  /* Tanlov «thumb»i sirpanadi (anchor positioning; qoʻllanmasa — tanlangan bandning oʻz foni) */
  @supports (anchor-name: --a) and (anchor-scope: --a) {
    .fx-segment { position: relative; isolation: isolate; anchor-scope: --fx-seg; }
    .fx-segment__item:is([aria-pressed="true"], [aria-current="page"], :has(> input:checked)) { anchor-name: --fx-seg; background: transparent; box-shadow: none; }
    .fx-segment:has(:is([aria-pressed="true"], [aria-current="page"]), > .fx-segment__item > input:checked)::before {
      content: ""; position: absolute; z-index: -1; position-anchor: --fx-seg;
      inset: anchor(top) anchor(right) anchor(bottom) anchor(left);
      border-radius: calc(var(--fx-knob-pill) * var(--_inner-h) / 2 + (1 - var(--fx-knob-pill)) * max(0px, var(--fx-radius-control) - var(--_pad)));
      background: var(--fx-bg-surface); box-shadow: var(--fx-shadow-sm);
      transition: inset var(--fx-motion-slow) var(--fx-ease-spring);
    }
  }
  /* Forma varianti (Imtihon shabloni, 22.10): <label class="fx-segment__item"><input type="radio" name="…">Matn</label> — JS'siz yuboriladi,
     tanlangani :checked; input koʻrinmas, lekin fokus va klaviatura (← →) brauzerning radio guruhidan */
  .fx-segment__item > input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
  .fx-segment__item:has(> input:focus-visible) { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); }
  /* ---- Kengaytma (2.97, 2.155): fill (toʻliq en), ikon-only, multi (toggle guruhi), kichik oʻlchamda bosish maydoni ---- */
  .fx-segment[data-fill] { display: flex; inline-size: 100%; }
  .fx-segment[data-fill] > .fx-segment__item { flex: 1 1 0; }
  .fx-segment[data-icon-only] > .fx-segment__item { aspect-ratio: 1; padding-inline: 0; }
  .fx-segment__item > svg { inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); }
  .fx-segment__item { position: relative; }
  .fx-segment[data-size="sm"] > .fx-segment__item::before { content: ""; position: absolute; inset-inline: 0; inset-block: calc((var(--_inner-h) - var(--fx-size-min-target)) / 2); }
  /* Multi: har band mustaqil (aria-pressed), sirpanuvchi thumb oʻrniga har tanlangan bandning oʻz foni */
  .fx-segment[data-multi]:has(.fx-segment__item)::before { display: none; }
  .fx-segment[data-multi] .fx-segment__item:is([aria-pressed="true"], [aria-current="page"], :has(> input:checked)) { anchor-name: none; background: var(--fx-bg-surface); box-shadow: var(--fx-shadow-sm); }
  @media (forced-colors: active) { .fx-segment__item:is([aria-pressed="true"], [aria-current="page"], :has(> input:checked)) { background: Highlight; color: HighlightText; forced-color-adjust: none; } .fx-segment { border: var(--fx-border-width-default) solid ButtonText; } }
  /* gorizontal surish qatorlarida soʻnish (fade) yoʻq — Ustoz 21.10: «oqishni butunlay olib tashlash kerak; Apple saytida oqishsiz surish mumkinligi bilinadi» — chetda kesilgan element oʻzi «davomi bor» deydi */
}

@layer fx.components {
  /* Native <select> — maydon bilan bir xil shakl (yoy, balandlik, toʻldirilgan/chegarali); oʻngda strelka (mask, currentColor) */
  .fx-select {
    --_h: var(--fx-control-h-md);
    appearance: none;
    inline-size: 100%;
    block-size: var(--_h);
    box-sizing: border-box;
    padding-inline: var(--fx-space-4) calc(var(--fx-space-4) + var(--fx-size-icon-sm) + var(--fx-space-2));
    font: inherit;
    font-size: var(--fx-font-size-md);
    color: var(--fx-text-primary);
    background-color: var(--fx-bg-field);
    border: var(--fx-border-width-default) solid var(--fx-border-color-field);
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control));
    cursor: pointer;
    transition: border-color var(--fx-motion-fast) var(--fx-ease-standard);
  }
  .fx-select-wrap { position: relative; display: block; }
  .fx-select-wrap::after {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-end: var(--fx-space-4);
    margin-block: auto;
    inline-size: var(--fx-size-icon-sm);
    block-size: var(--fx-size-icon-sm);
    background: var(--fx-text-tertiary);
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    pointer-events: none;
  }
  .fx-select:hover { border-color: color-mix(in oklab, var(--fx-border-color-strong) calc((1 - var(--fx-knob-field-fill)) * 100%), transparent); }
  .fx-select:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-default) * -1); }
  .fx-select:has(option[value=""]:checked) { color: var(--fx-text-tertiary); }
  .fx-select:disabled { background-color: var(--fx-bg-muted); color: var(--fx-text-disabled); cursor: not-allowed; }
  .fx-select[data-size="sm"] { --_h: var(--fx-control-h-sm); font-size: var(--fx-font-size-sm); }
  .fx-field[data-invalid] .fx-select { border-color: var(--fx-border-color-error); }
  /* ---- Kengaytma (2.37, 2.38): guruh sarlavhalari (optgroup), boy opsiyalar (appearance: base-select, Chromium) ---- */
  .fx-select optgroup { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-semibold); }
  .fx-select optgroup > option { color: var(--fx-text-primary); font-size: var(--fx-font-size-md); font-weight: var(--fx-font-weight-regular); }
  /* OTA QOIDA (Ustoz 19.10: «hech qayerda default (musor) dropdown qolmasin»): HAR fx-select ochilganda tizim uslubidagi roʻyxat —
     sirt, yoy, soya; band hover'da muted, tanlangani brend tusida ✓ bilan; strelka ochilganda aylanadi. Brauzerning koʻk fonli roʻyxati yoʻq.
     appearance: base-select (Chromium 135+); qoʻllamaydigan brauzerda native qoladi (eng yaxshi kirish imkoniyati).
     Boy roʻyxat (ikon/avatar + tavsif): <select class="fx-select" data-rich><button><selectedcontent></selectedcontent></button> <option>…</option></select>. */
  @supports (appearance: base-select) {
    .fx-select, .fx-select::picker(select), .fx-search__scope, .fx-search__scope::picker(select) { appearance: base-select; }
    .fx-select { display: flex; align-items: center; }
    .fx-select-wrap:has(> .fx-select)::after { display: none; } /* strelka endi ::picker-icon'da */
    .fx-select::picker-icon { content: ""; position: absolute; inset-inline-end: var(--fx-space-4); inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: var(--fx-text-tertiary); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: rotate var(--fx-motion-fast) var(--fx-ease-standard); }
    .fx-select { position: relative; }
    .fx-select:open::picker-icon { rotate: 180deg; }
    /* qamrov tanlovi (fx-search__scope, «Hammasi») — brauzer uchburchagi ▼ emas, oʻsha chevron, matndan keyin oqimda (Ustoz 21.10: «strelkadan voz kechgandik»; test-ota ARROW-01) */
    .fx-search__scope::picker-icon { content: ""; flex: none; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); margin-inline-start: var(--fx-space-1); background: currentColor; opacity: 0.7; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; transition: rotate var(--fx-motion-fast) var(--fx-ease-standard); }
    .fx-search__scope:open::picker-icon { rotate: 180deg; }
    .fx-search__scope { display: inline-flex; align-items: center; }
    :is(.fx-select, .fx-search__scope)::picker(select) { margin-block: var(--fx-space-1); padding: var(--fx-space-1); border: var(--fx-border-width-default) solid var(--fx-border-color-surface); border-radius: min(var(--fx-radius-overlay), var(--fx-space-4)); background: var(--fx-bg-surface); box-shadow: var(--fx-shadow-lg); color: var(--fx-text-primary); max-block-size: min(60dvh, calc(var(--fx-space-12) * 8)); overflow-y: auto; opacity: 1; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard), translate var(--fx-motion-fast) var(--fx-ease-standard), display var(--fx-motion-fast) allow-discrete, overlay var(--fx-motion-fast) allow-discrete; }
    @starting-style { :is(.fx-select, .fx-search__scope):open::picker(select) { opacity: 0; translate: 0 calc(var(--fx-space-1) * -1); } }
    :is(.fx-select, .fx-search__scope) option { display: flex; align-items: center; gap: var(--fx-space-3); min-block-size: var(--fx-control-h-sm); padding: var(--fx-space-1) var(--fx-space-3); border-radius: min(var(--fx-radius-nav), var(--fx-space-3)); color: var(--fx-text-primary); font-size: var(--fx-font-size-sm); cursor: pointer; }
    :is(.fx-select, .fx-search__scope) option:is(:hover, :focus-visible) { background: var(--fx-bg-muted); outline: none; }
    :is(.fx-select, .fx-search__scope) option:checked { background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); font-weight: var(--fx-font-weight-medium); }
    :is(.fx-select, .fx-search__scope) option::checkmark { order: 1; margin-inline-start: auto; color: var(--fx-text-brand); }
    :is(.fx-select, .fx-search__scope) option:disabled { color: var(--fx-text-disabled); cursor: not-allowed; }
    .fx-select optgroup { padding-block-start: var(--fx-space-2); }
    .fx-select legend { padding: var(--fx-space-1) var(--fx-space-3); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-semibold); }
    /* boy roʻyxat: ichki tugma, ikon/avatar va tavsif */
    .fx-select[data-rich] { padding-inline: var(--fx-space-2); }
    .fx-select[data-rich] > button { display: flex; align-items: center; inline-size: 100%; padding-inline: var(--fx-space-2); border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
    .fx-select[data-rich] option small { display: block; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
    .fx-select[data-rich] :is(.fx-avatar, svg) { flex: none; }
  }
  /* Matn ichidagi tanlov (20.10, heroui.pro Inline Select'dan): «… <tanlov> boʻyicha saralash» — qutisiz, matn bilan bir chiziqda,
     brend rangida va nuqtali tagchiziq bilan (havola emasligi koʻrinsin), yonida kichik strelka. Roʻyxat — oʻsha tizim ::picker'i (FX-SELECT-01). */
  .fx-select-wrap:has(> .fx-select[data-variant="inline"]) { display: inline-block; vertical-align: baseline; }
  .fx-select-wrap:has(> .fx-select[data-variant="inline"])::after { inset-inline-end: 0; inline-size: 0.9em; block-size: 0.9em; background: currentColor; color: var(--fx-text-brand); }
  .fx-select[data-variant="inline"] { --_h: auto; display: inline-flex; inline-size: auto; block-size: auto; min-block-size: 0; padding: 0 calc(var(--fx-space-4) + var(--fx-space-1)) 0 0; border: 0; border-radius: var(--fx-radius-badge); background: transparent; color: var(--fx-text-brand); font: inherit; font-weight: var(--fx-font-weight-medium); text-decoration: underline dotted; text-decoration-thickness: calc(var(--fx-border-width-default) * 1.5); text-underline-offset: 0.2em; }
  .fx-select[data-variant="inline"]:hover { background: var(--fx-bg-brand-subtle); }
  .fx-select[data-variant="inline"]:focus-visible { outline-offset: var(--fx-border-width-default); }
  @supports (appearance: base-select) { .fx-select[data-variant="inline"]::picker-icon { inset-inline-end: 0; inline-size: 0.9em; block-size: 0.9em; background: currentColor; } }
  @media (forced-colors: active) { .fx-select { border-color: ButtonText; } }
}
@layer fx.components {
  /* Moslashuvchi overlay (4.26): data-fx-adaptive + data-rich — telefonda (< 640 px) boy roʻyxat (::picker) pastki varaqqa aylanadi.
     Oddiy <select> telefonda baribir tizimning oʻz tanlagichini ochadi. */
  @supports (appearance: base-select) {
    @media (max-width: 599.98px) {
      .fx-select[data-fx-adaptive]::picker(select) { position: fixed; inset: auto 0 0 0; box-sizing: border-box; inline-size: 100%; max-block-size: 70dvh; margin: 0; padding-block-end: calc(var(--fx-space-4) + env(safe-area-inset-bottom, 0px)); border-radius: var(--fx-radius-overlay) var(--fx-radius-overlay) 0 0; position-area: none; position-try-fallbacks: none; }
      .fx-select[data-fx-adaptive] option { min-block-size: var(--fx-size-touch-target); }
    }
  }
}

@layer fx.components {
  /* Skelet: ma'lumot joyini oldindan koʻrsatadi; harakat — faqat shaffoflik pulsatsiyasi (WDS «Harakat»), siljish yoʻq */
  /* Keçikiş (Ustoz 24.10, WDS r81): kontent --fx-duration-delay-skeleton (300 ms) içida kelsa skelet umuman körinmaydi — lipillamaydi.
     JS'siz: birinçi animatsiya faqat keçikiş davomida yaşiradi (Astro Server Islands fallback'i ham şunday ishlaydi). data-delay="0" — darhol */
  .fx-skeleton { display: block; block-size: var(--fx-font-size-sm); border-radius: var(--fx-radius-badge); background: var(--fx-bg-muted); animation: fx-skeleton-kech var(--fx-skeleton-kech, var(--fx-duration-instant)) var(--fx-ease-standard) var(--fx-skeleton-delay, var(--fx-duration-delay-skeleton)) backwards, fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-skeleton-card, .fx-skeleton-zone__fallback { animation: fx-skeleton-kech var(--fx-skeleton-kech, var(--fx-duration-instant)) var(--fx-ease-standard) var(--fx-skeleton-delay, var(--fx-duration-delay-skeleton)) backwards; }
  [data-delay="0"]:is(.fx-skeleton, .fx-skeleton-card, .fx-skeleton-zone, .fx-skeleton-group, .fx-skeleton-row) { --fx-skeleton-delay: 0s; --fx-skeleton-kech: 0s; }
  @keyframes fx-skeleton-kech { from, to { visibility: hidden; } }
  .fx-skeleton[data-shape="title"] { block-size: var(--fx-font-size-xl); inline-size: 60%; }
  .fx-skeleton[data-shape="circle"] { inline-size: var(--fx-size-avatar-md); block-size: var(--fx-size-avatar-md); border-radius: var(--fx-radius-circle); }
  .fx-skeleton[data-shape="block"] { block-size: calc(var(--fx-space-12) * 2); border-radius: var(--fx-radius-surface); }
  /* Yaltiraş (shadcn, Vercel kabi): fon tokeni ustidan yoruğlik tasmasi ötadi. Faqat transform — GPU'da, qayta çizilmaydi.
     data-anim="shimmer" skeletning özida yoki butun guruh/karta/zonada (hammasi bir xil). Harakat kamaytirilsa — tekis, keçikiş qoladi */
  :is(.fx-skeleton[data-anim="shimmer"], [data-anim="shimmer"] .fx-skeleton) { position: relative; overflow: hidden; animation-name: fx-skeleton-kech; }
  :is(.fx-skeleton[data-anim="shimmer"], [data-anim="shimmer"] .fx-skeleton)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--fx-bg-surface) 70%, transparent), transparent); transform: translateX(-100%); animation: fx-skeleton-shimmer var(--fx-duration-shimmer) var(--fx-ease-standard) infinite; }
  @keyframes fx-skeleton-shimmer { to { transform: translateX(100%); } }
  @media (prefers-reduced-motion: reduce) {
    .fx-skeleton { animation-name: fx-skeleton-kech; }
    :is(.fx-skeleton[data-anim="shimmer"], [data-anim="shimmer"] .fx-skeleton)::after { content: none; }
  }
  /* ---- Kengaytma (2.123): shakllar va kompozit namunalar (paragraf, avatar+qatorlar, jadval qatori, karta) ---- */
  .fx-skeleton[data-shape="square"] { inline-size: var(--fx-size-avatar-md); block-size: var(--fx-size-avatar-md); border-radius: calc(var(--fx-size-avatar-md) * var(--fx-radius-avatar-ratio)); }
  .fx-skeleton[data-shape="image"] { aspect-ratio: 16 / 9; block-size: auto; border-radius: var(--fx-radius-surface); }
  .fx-skeleton[data-shape="button"] { inline-size: calc(var(--fx-space-12) * 2); block-size: var(--fx-control-h-md); border-radius: var(--fx-radius-control); }
  /* Paragraf: n qator, oxirgisi qisqa */
  .fx-skeleton-group { display: grid; gap: var(--fx-space-2); min-inline-size: 0; }
  .fx-skeleton-group > .fx-skeleton:last-child:not(:only-child) { inline-size: 65%; }
  /* Avatar + qatorlar */
  .fx-skeleton-row { display: flex; align-items: center; gap: var(--fx-space-3); }
  .fx-skeleton-row > .fx-skeleton-group { flex: 1; }
  /* Jadval qatori: data-cols ustun soni */
  .fx-skeleton-row[data-type="table"] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--fx-space-4); padding-block: var(--fx-space-3); border-block-end: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-skeleton-row[data-type="table"][data-cols="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fx-skeleton-row[data-type="table"][data-cols="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .fx-skeleton-row[data-type="table"][data-cols="6"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  /* Karta: rasm + sarlavha + paragraf */
  .fx-skeleton-card { display: grid; gap: var(--fx-space-3); padding: var(--fx-space-5); border: var(--fx-border-width-default) solid var(--fx-border-color-surface); border-radius: var(--fx-radius-surface); background: var(--fx-bg-surface); }
  /* Zona: skelet va kontent bitta katakda ustma-ust — almaşganda joy siljimaydi (CLS 0, skelet öliçami kontentniki bilan bir xil bölsin).
     Holatni aria-busy beradi: "true" — skelet (keçikiş bilan), olib taşlansa yoki "false" — kontent; JS faqat aria-busy'ni almaştiradi */
  .fx-skeleton-zone { display: grid; position: relative; min-inline-size: 0; }
  .fx-skeleton-zone > :is(.fx-skeleton-zone__fallback, .fx-skeleton-zone__content) { grid-area: 1 / 1; min-inline-size: 0; }
  /* Kontent allaqaçon bor (qayta yuklaş, filtr) — skelet uning ustida, aynan uning öliçamida: balandlik özgarmaydi */
  .fx-skeleton-zone:has(> .fx-skeleton-zone__content:not(:empty)) > .fx-skeleton-zone__fallback { position: absolute; inset: 0; overflow: hidden; }
  .fx-skeleton-zone[aria-busy="true"] > .fx-skeleton-zone__content { visibility: hidden; }
  .fx-skeleton-zone:not([aria-busy="true"]) > .fx-skeleton-zone__fallback { display: none; }
  .fx-skeleton-zone[aria-busy="false"] > .fx-skeleton-zone__content { animation: fx-skeleton-ochil var(--fx-duration-base) var(--fx-ease-standard); }
  @keyframes fx-skeleton-ochil { from { opacity: 0; } }
  @media (prefers-reduced-motion: reduce) { .fx-skeleton-zone[aria-busy="false"] > .fx-skeleton-zone__content { animation: none; } }
  @media (forced-colors: active) { .fx-skeleton { background: GrayText; forced-color-adjust: none; } }
}

@layer fx.components {
  /* Slider: native range, oʻz koʻrinishi (WDS: brauzer koʻrinishi va accent-color ishlatilmaydi). Toʻlgan qism —
     --fx-slider-value (foxui.js qiymatga qarab yangilaydi; JS'siz — trek bir xil rangda). */
  .fx-slider {
    --fx-slider-value: 50%;
    --_t: var(--fx-space-1);
    --_k: var(--fx-size-checkbox);
    appearance: none;
    inline-size: 100%;
    block-size: var(--fx-size-min-target);
    margin: 0;
    background: transparent;
    cursor: pointer;
  }
  .fx-slider::-webkit-slider-runnable-track { block-size: var(--_t); border-radius: var(--_t); background: linear-gradient(to right, var(--fx-bg-brand-solid) var(--fx-slider-value), var(--fx-bg-muted) var(--fx-slider-value)); }
  .fx-slider::-moz-range-track { block-size: var(--_t); border-radius: var(--_t); background: var(--fx-bg-muted); }
  .fx-slider::-moz-range-progress { block-size: var(--_t); border-radius: var(--_t); background: var(--fx-bg-brand-solid); }
  .fx-slider::-webkit-slider-thumb { appearance: none; inline-size: var(--_k); block-size: var(--_k); margin-block-start: calc((var(--_t) - var(--_k)) / 2); border: var(--fx-border-width-focus) solid var(--fx-bg-brand-solid); border-radius: var(--fx-radius-circle); background: var(--fx-bg-surface); box-shadow: var(--fx-shadow-sm); }
  .fx-slider::-moz-range-thumb { inline-size: var(--_k); block-size: var(--_k); box-sizing: border-box; border: var(--fx-border-width-focus) solid var(--fx-bg-brand-solid); border-radius: var(--fx-radius-circle); background: var(--fx-bg-surface); }
  .fx-slider:focus-visible { outline: none; }
  .fx-slider:focus-visible::-webkit-slider-thumb { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-slider:focus-visible::-moz-range-thumb { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-slider:disabled { cursor: not-allowed; opacity: 0.5; }

  /* ---- Diapazon (ikki tutqich), belgilar (marks), qiymat pufagi ---- Ildiz .fx-slider-range, ichida 1–2 ta input.fx-slider;
     toʻlgan qism --fx-range-lo / --fx-range-hi (0…1, foxui.js). Inputlar ustma-ust, faqat tutqichlar sichqonchani oladi. */
  .fx-slider-range { --_k: var(--fx-size-checkbox); --_t: var(--fx-space-1); position: relative; block-size: var(--fx-size-min-target); inline-size: 100%; --fx-range-lo: 0; --fx-range-hi: 0.5; }
  .fx-slider-range:has(.fx-slider-range__marks) { margin-block-end: var(--fx-space-8); }
  .fx-slider-range:has(.fx-slider-range__bubble) { margin-block-start: var(--fx-space-8); }
  .fx-slider-range__rail { position: absolute; inset-inline: 0; inset-block-start: 50%; block-size: var(--_t); translate: 0 -50%; border-radius: var(--_t); background: var(--fx-bg-muted); pointer-events: none; }
  .fx-slider-range__fill { position: absolute; inset-block: 0; inset-inline-start: calc(var(--fx-range-lo) * (100% - var(--_k)) + var(--_k) / 2); inset-inline-end: calc((1 - var(--fx-range-hi)) * (100% - var(--_k)) + var(--_k) / 2); border-radius: var(--_t); background: var(--fx-bg-brand-solid); }
  .fx-slider-range .fx-slider { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
  .fx-slider-range .fx-slider[data-top] { z-index: 2; }
  .fx-slider-range .fx-slider::-webkit-slider-runnable-track { background: transparent; }
  .fx-slider-range .fx-slider::-moz-range-track, .fx-slider-range .fx-slider::-moz-range-progress { background: transparent; }
  .fx-slider-range .fx-slider::-webkit-slider-thumb { pointer-events: auto; cursor: grab; }
  .fx-slider-range .fx-slider::-moz-range-thumb { pointer-events: auto; cursor: grab; }
  .fx-slider-range .fx-slider:active::-webkit-slider-thumb { cursor: grabbing; scale: var(--fx-motion-scale-press); }
  /* Belgilar: har bandda ingichka chiziq + yorliq (boʻsh band — faqat chiziq) */
  .fx-slider-range__marks { position: absolute; inset-inline: 0; inset-block-start: calc(50% + var(--_k) / 2 + var(--fx-space-1)); margin: 0; padding: 0; list-style: none; pointer-events: none; }
  .fx-slider-range__marks > li { position: absolute; inset-inline-start: calc(var(--p, 0) * (100% - var(--_k)) + var(--_k) / 2); translate: -50% 0; display: grid; justify-items: center; gap: var(--fx-space-1); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .fx-slider-range__marks > li::before { content: ""; inline-size: var(--fx-border-width-default); block-size: var(--fx-space-2); background: var(--fx-border-color-strong); }
  .fx-slider-range__marks > li[data-in]::before { background: var(--fx-bg-brand-solid); }
  /* «odatiy» belgisi (Ustoz 21.10, hisoblagich): oddiy chiziq emas — kichik uchburchak belgi va yozuv; qiymat qayerda «normal» ekani bir qarashda */
  .fx-slider-range__marks > li[data-typical] { z-index: 1; color: var(--fx-text-brand); font-weight: var(--fx-font-weight-medium); }
  .fx-slider-range__marks > li[data-typical]::before { inline-size: var(--fx-space-3); block-size: var(--fx-space-2); background: currentColor; mask: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M6 0 12 8H0Z' fill='black'/%3E%3C/svg%3E"); }
  /* Qiymat pufagi: tutqich ustida (WDS Grafiklar: tooltip kabi — raqam tabular) */
  .fx-slider-range__bubble { position: absolute; inset-block-end: calc(50% + var(--_k) / 2 + var(--fx-space-1)); inset-inline-start: calc(var(--p, 0) * (100% - var(--_k)) + var(--_k) / 2); translate: -50% 0; padding: calc(var(--fx-space-1) / 2) var(--fx-space-2); border-radius: var(--fx-radius-badge); background: var(--fx-text-primary); color: var(--fx-bg-page); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); font-variant-numeric: tabular-nums; white-space: nowrap; pointer-events: none; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-slider-range[data-bubble="focus"] .fx-slider-range__bubble { opacity: 0; }
  .fx-slider-range[data-bubble="focus"]:is(:hover, :focus-within) .fx-slider-range__bubble { opacity: 1; }
  .fx-slider-range[data-bubble="always"] .fx-slider-range__bubble { opacity: 1; }
  .fx-slider-range[data-disabled] { opacity: 0.5; }

  /* ---- Vertikal (4.93): ovoz, ekvalayzer, xarita zoom — native range writing-mode bilan tik; ↑ oshiradi. Toʻlgan qism pastdan. ---- */
  .fx-slider[data-orientation="vertical"] { writing-mode: vertical-lr; direction: rtl; inline-size: calc(var(--fx-space-12) * 3); block-size: var(--fx-size-min-target); } /* tik yozuvda inline — balandlik */
  .fx-slider[data-orientation="vertical"]::-webkit-slider-runnable-track { background: linear-gradient(to top, var(--fx-bg-brand-solid) var(--fx-slider-value), var(--fx-bg-muted) var(--fx-slider-value)); }
  .fx-slider-stack { display: inline-flex; align-items: end; gap: var(--fx-space-4); }
  .fx-slider-stack__item { display: grid; justify-items: center; gap: var(--fx-space-1); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; }
  .fx-slider-stack__item > output { color: var(--fx-text-primary); font-weight: var(--fx-font-weight-medium); }
  /* ---- Gistogramma (4.95): narx filtri ostida taqsimot ustunchalari; tanlangan oraliqdagisi brend tusida (bezak — aria-hidden,
     qiymat tutqichlarning aria-valuetext'ida). Ustunchalar foxui.js → slider chizadi: data-histogram="3,8,12,…". ---- */
  .fx-slider-range[data-histogram] { margin-block-start: calc(var(--fx-space-12) + var(--fx-space-2)); }
  .fx-slider-range__histogram { position: absolute; inset-inline: calc(var(--_k) / 2); inset-block-end: calc(50% + var(--_t)); block-size: var(--fx-space-12); display: flex; align-items: flex-end; gap: calc(var(--fx-space-1) / 2); pointer-events: none; }
  .fx-slider-range__histogram > i { flex: 1; block-size: calc(var(--h, 0) * 100%); min-block-size: calc(var(--fx-space-1) / 2); border-start-start-radius: var(--fx-radius-badge); border-start-end-radius: var(--fx-radius-badge); background: var(--fx-viz-track); transition: background-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-slider-range__histogram > i[data-in] { background: var(--fx-viz-brand); }
  /* ---- Markazdan (4.94): manfiy ↔ musbat sozlama (yorqinlik ±, balans, chegirma/ustama) — toʻldirish noldan qiymatgacha.
     --fx-slider-lo / --fx-slider-hi (foiz) xulq yozadi; nol joyida ingichka belgi. Qiymat soʻzda ishora bilan: «+20», «−15». ---- */
  .fx-slider[data-origin="center"] { --fx-slider-lo: 50%; --fx-slider-hi: 50%; --fx-slider-zero: 50%; }
  .fx-slider[data-origin="center"]::-webkit-slider-runnable-track { background:
    linear-gradient(to right, transparent calc(var(--fx-slider-zero) - var(--fx-border-width-default)), var(--fx-border-color-strong) 0 calc(var(--fx-slider-zero) + var(--fx-border-width-default)), transparent 0),
    linear-gradient(to right, var(--fx-bg-muted) var(--fx-slider-lo), var(--fx-bg-brand-solid) var(--fx-slider-lo) var(--fx-slider-hi), var(--fx-bg-muted) var(--fx-slider-hi)); }
  .fx-slider[data-origin="center"]::-moz-range-track { background: linear-gradient(to right, var(--fx-bg-muted) var(--fx-slider-lo), var(--fx-bg-brand-solid) var(--fx-slider-lo) var(--fx-slider-hi), var(--fx-bg-muted) var(--fx-slider-hi)); }
  .fx-slider[data-origin="center"]::-moz-range-progress { background: transparent; }
  .fx-slider-center { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--fx-space-3); }
  .fx-slider-center > output { min-inline-size: 4ch; color: var(--fx-text-primary); font-size: var(--fx-font-size-sm); font-weight: var(--fx-font-weight-medium); font-variant-numeric: tabular-nums; text-align: end; }
  .fx-slider-center__scale { grid-column: 1; display: flex; justify-content: space-between; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; }
}

@layer fx.components {
  /* Koʻrsatkich plitkasi: yorliq + katta raqam + izoh. Neytral yoki rangli (toifa rangi) — hilos namunasi, Ustoz tasdigʻi 16.10. */
  .fx-stat {
    display: grid;
    align-content: start;
    gap: var(--fx-space-2);
    padding: var(--fx-space-4) var(--fx-space-5) var(--fx-space-5);
    min-inline-size: 0;
    border-radius: var(--fx-radius-surface);
    border: var(--fx-border-width-default) solid var(--fx-border-color-surface);
    background: var(--fx-bg-surface);
    color: var(--fx-text-primary);
    text-decoration: none;
    transition: box-shadow var(--fx-motion-fast) var(--fx-ease-standard), border-radius var(--fx-motion-base) var(--fx-ease-standard);
  }
  .fx-stat__label { display: flex; justify-content: space-between; align-items: center; gap: var(--fx-space-2); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); color: var(--fx-text-secondary); }
  .fx-stat__value { margin-block-start: var(--fx-space-2); font-family: var(--fx-font-family-numeric); font-size-adjust: var(--fx-font-adjust-numeric); font-size: var(--fx-font-size-display-md); font-weight: var(--fx-font-weight-medium); font-variant-numeric: tabular-nums; line-height: 1; }
  .fx-stat__hint { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); }
  .fx-stat[data-tone="warning"] .fx-stat__value { color: var(--fx-fg-warning); }
  .fx-stat[data-tone="error"] .fx-stat__value { color: var(--fx-fg-error); }
  a.fx-stat:hover { box-shadow: var(--fx-shadow-md); }
  a.fx-stat:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  /* Rangli plitka: toifa rangi, chiziqsiz; yorliq va izoh — ustidagi matnning xira varianti */
  .fx-stat[data-color] { border-color: transparent; color: var(--fx-text-on-category); }
  .fx-stat[data-color] .fx-stat__label { color: color-mix(in oklab, var(--fx-text-on-category) 80%, transparent); }
  .fx-stat[data-color] .fx-stat__hint { color: color-mix(in oklab, var(--fx-text-on-category) 70%, transparent); }
  .fx-stat[data-color="yellow"] { background: var(--fx-bg-category-yellow); }
  .fx-stat[data-color="pink"] { background: var(--fx-bg-category-pink); }
  .fx-stat[data-color="blue"] { background: var(--fx-bg-category-blue); }
  .fx-stat[data-color="coral"] { background: var(--fx-bg-category-coral); }
  .fx-stat[data-color="green"] { background: var(--fx-bg-category-green); }
  .fx-stat[data-color="purple"] { background: var(--fx-bg-category-purple); }
  a.fx-stat { transition: box-shadow var(--fx-motion-fast) var(--fx-ease-standard), border-radius var(--fx-motion-base) var(--fx-ease-standard), translate var(--fx-motion-base) var(--fx-ease-enter); }
  a.fx-stat:hover { translate: 0 calc(var(--fx-motion-lift) * var(--fx-knob-motion-lift)); }
  /* KPI: yorliq, katta raqam, oʻzgarish (.fx-delta), pastki izoh, mini grafik oʻrni (.fx-stat__viz — ichiga fx-chart type="spark") */
  .fx-stat__row { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--fx-space-3); min-inline-size: 0; }
  .fx-stat__delta { display: flex; align-items: center; gap: var(--fx-space-2); flex-wrap: wrap; }
  .fx-stat__viz { flex: 0 1 40%; min-inline-size: 0; max-block-size: var(--fx-control-h-lg); }
  .fx-stat__foot { padding-block-start: var(--fx-space-2); border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); font-size: var(--fx-font-size-xs); color: var(--fx-text-tertiary); }
  .fx-stat[data-size="hero"] .fx-stat__value { font-size: calc(var(--fx-font-size-display-md) * 1.5); }
  .fx-stat[data-size="compact"] { padding: var(--fx-space-3) var(--fx-space-4); gap: var(--fx-space-1); }
  .fx-stat[data-size="compact"] .fx-stat__value { font-size: var(--fx-font-size-xl); margin-block-start: 0; }
  /* KPI sarlavhasi (20.10, Ustoz: heroui.pro KPI'dan): ikon plitkasi + yorliq + oʻng chetda trend chip yoki menyu; pastda chetma-chet grafik */
  .fx-stat__head { display: flex; align-items: center; gap: var(--fx-space-2); min-inline-size: 0; }
  .fx-stat__head .fx-stat__label { flex: 1; min-inline-size: 0; }
  .fx-stat__head > :last-child:not(.fx-stat__label, .fx-stat__icon) { margin-inline-start: auto; }
  .fx-stat__icon { display: inline-grid; place-items: center; flex: none; inline-size: var(--fx-control-h-sm); aspect-ratio: 1; border-radius: var(--fx-radius-control); background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); }
  .fx-stat__icon svg { inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); }
  .fx-stat__icon[data-tone="success"] { background: var(--fx-bg-success-subtle); color: var(--fx-fg-success); }
  .fx-stat__icon[data-tone="warning"] { background: var(--fx-bg-warning-subtle); color: var(--fx-fg-warning); }
  .fx-stat__icon[data-tone="error"] { background: var(--fx-bg-error-subtle); color: var(--fx-fg-error); }
  .fx-stat__head .fx-btn[data-shape="icon"] { margin-block: calc(var(--fx-space-1) * -1); }
  .fx-stat__chart { margin: var(--fx-space-2) calc(var(--fx-space-5) * -1) calc(var(--fx-space-5) * -1); overflow: hidden; border-end-start-radius: inherit; border-end-end-radius: inherit; }
  .fx-stat__chart .fx-chart { margin: 0; }
  .fx-stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(calc(var(--fx-popover-width) * 0.75), 1fr)); gap: var(--fx-space-4); }
  /* ---- Kengaytma (2.128): solishtirish davri, yuklanish holati, ijobiy ohang ---- */
  .fx-stat[data-tone="success"] .fx-stat__value { color: var(--fx-fg-success); }
  .fx-stat__period { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  /* Yuklanmoqda (aria-busy): matnlar skelet chiziqqa aylanadi, mini grafik yashirinadi */
  .fx-stat[aria-busy="true"] :is(.fx-stat__label, .fx-stat__value, .fx-stat__hint, .fx-stat__period) { border-radius: var(--fx-radius-badge); background: var(--fx-bg-muted); color: transparent; user-select: none; animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-stat[aria-busy="true"] .fx-stat__value { inline-size: 55%; }
  .fx-stat[aria-busy="true"] .fx-stat__viz { visibility: hidden; }
  @media (prefers-reduced-motion: reduce) { .fx-stat[aria-busy="true"] :is(.fx-stat__label, .fx-stat__value, .fx-stat__hint, .fx-stat__period) { animation: none; } }
  @media (forced-colors: active) { .fx-stat { border-color: CanvasText; } }
  /* Tanlanadigan plitkalar (4.128): .fx-stat-row[data-selectable] (role=tablist), plitka — button.fx-stat[role=tab].
     Tanlangani: tepada 3 qalinlikdagi brend chizigʻi (shakl) + kuchli chegara + aria-selected; rang yolgʻiz belgi emas. */
  .fx-stat-row[data-selectable] { gap: var(--fx-space-3); }
  button.fx-stat { position: relative; inline-size: 100%; margin: 0; font: inherit; text-align: start; cursor: pointer; overflow: hidden; }
  button.fx-stat::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; block-size: calc(var(--fx-border-width-focus) * 1.5); background: var(--fx-bg-brand-solid); scale: 1 0; transform-origin: top; transition: scale var(--fx-motion-base) var(--fx-ease-emphasized); }
  button.fx-stat:hover { background: var(--fx-bg-subtle); }
  button.fx-stat:active { scale: var(--fx-motion-press); }
  button.fx-stat:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-stat[aria-selected="true"] { border-color: var(--fx-border-color-strong); background: var(--fx-bg-surface); }
  .fx-stat[aria-selected="true"]::before { scale: 1 1; }
  .fx-stat[aria-selected="true"] .fx-stat__label { color: var(--fx-text-primary); }
  @media (forced-colors: active) { .fx-stat[aria-selected="true"] { border: var(--fx-border-width-focus) solid Highlight; } .fx-stat[aria-selected="true"]::before { background: Highlight; } }
}

@layer fx.components {
  /* Holat — shakl + soʻz (WDS «Komponentlar»: rangning oʻzi yetmaydi): bajarildi — doira, ogohlantirish — uchburchak,
     xato — romb, kutilmoqda — halqa, neytral — kvadrat. Jadval katagi va zich roʻyxat uchun. */
  .fx-status { display: inline-flex; align-items: center; gap: var(--fx-space-2); font-size: var(--fx-font-size-sm); color: var(--fx-text-primary); white-space: nowrap; }
  .fx-status::before { content: ""; flex: none; inline-size: var(--fx-size-status-dot); block-size: var(--fx-size-status-dot); border-radius: var(--fx-radius-badge); background: var(--fx-text-tertiary); }
  .fx-status[data-tone="success"]::before { border-radius: var(--fx-radius-circle); background: var(--fx-fg-success); }
  .fx-status[data-tone="warning"]::before { clip-path: polygon(50% 0, 100% 100%, 0 100%); border-radius: 0; background: var(--fx-fg-warning); }
  .fx-status[data-tone="error"]::before { inline-size: calc(var(--fx-size-status-dot) * 0.85); block-size: calc(var(--fx-size-status-dot) * 0.85); rotate: 45deg; border-radius: 0; background: var(--fx-fg-error); }
  .fx-status[data-tone="pending"]::before { box-sizing: border-box; border-radius: var(--fx-radius-circle); background: transparent; border: var(--fx-border-width-focus) solid var(--fx-text-tertiary); }
  .fx-status[data-tone="neutral"] { color: var(--fx-text-secondary); }
  /* ---- Kengaytma (2.62): “jonli” puls, kutilmoqda — aylanuvchi halqa, oʻlchamlar ---- */
  .fx-status[data-pulse]::before { animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-status[data-tone="pending"][data-pulse]::before { border-block-start-color: transparent; animation: fx-spin var(--fx-duration-spin) linear infinite; }
  @media (prefers-reduced-motion: reduce) { .fx-status[data-pulse]::before { animation: none; } }
  .fx-status[data-size="sm"] { gap: var(--fx-space-1); font-size: var(--fx-font-size-xs); }
  .fx-status[data-size="lg"] { font-size: var(--fx-font-size-md); }
  @media (forced-colors: active) { .fx-status::before { forced-color-adjust: none; background: CanvasText; } .fx-status[data-tone="pending"]::before { background: transparent; border-color: CanvasText; } }
}

@layer fx.components {
  /* Ma'lumot jadvali (WDS «Dashboard»: oʻz hududida aylanadi, sarlavha qotadi, holat/pul/sana — nowrap, oxirgi qatorda chiziq yoʻq) */
  .fx-table-scroll { position: relative; overflow: auto; max-inline-size: 100%; } /* relative — ichidagi absolut/sticky element oʻramdan chiqib sahifani kengaytirmaydi */
  .fx-table {
    --_py: calc(var(--fx-space-3) * var(--fx-knob-density));
    --fx-table-surface: var(--fx-bg-surface); /* jadval turgan yuza (hook): sahifa ustida boʻlsa var(--fx-bg-page) */
    inline-size: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: var(--fx-font-size-sm);
    font-variant-numeric: tabular-nums;
    color: var(--fx-text-primary);
  }
  .fx-table th, .fx-table td {
    padding: var(--_py) var(--fx-space-3);
    text-align: start;
    vertical-align: middle;
    border-block-end: var(--fx-border-width-default) solid var(--fx-border-color-default);
  }
  .fx-table thead th {
    position: sticky;
    inset-block-start: 0;
    z-index: 1;
    background: var(--fx-table-surface);
    color: var(--fx-text-tertiary);
    font-size: var(--fx-font-size-xs);
    font-weight: var(--fx-font-weight-medium);
    white-space: nowrap;
  }
  .fx-table tbody tr:last-child > * { border-block-end: 0; }
  .fx-table tbody tr:hover > * { background: var(--fx-bg-subtle); }
  .fx-table tbody tr:active > * { background: var(--fx-bg-muted); }
  .fx-table tfoot td, .fx-table tfoot th { border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-strong); border-block-end: 0; font-weight: var(--fx-font-weight-semibold); }
  /* Ustun turlari: raqam/pul — oʻngda; holat, sana, kod — bir qatorda */
  .fx-table [data-type="num"] { text-align: end; white-space: nowrap; }
  .fx-table [data-type="nowrap"] { white-space: nowrap; }
  .fx-table[data-size="sm"] { --_py: calc(var(--fx-space-2) * var(--fx-knob-density)); }
  .fx-table caption { padding-block-end: var(--fx-space-3); text-align: start; color: var(--fx-text-secondary); font-size: var(--fx-font-size-sm); }
  /* Saralash: sarlavhadagi tugma, holat — th[aria-sort]; belgi — strelka (faol ustunda toʻq) */
  .fx-table__sort { display: inline-flex; align-items: center; gap: var(--fx-space-1); margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
  .fx-table__sort::after { content: ""; inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); background: currentColor; opacity: 0.35; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 6.5 8 3.5l3 3M5 9.5l3 3 3-3' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
  .fx-table__sort:hover { color: var(--fx-text-primary); }
  .fx-table__sort:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); border-radius: var(--fx-radius-badge); }
  .fx-table th[aria-sort="ascending"], .fx-table th[aria-sort="descending"] { color: var(--fx-text-primary); }
  .fx-table th[aria-sort="ascending"] .fx-table__sort::after { opacity: 1; mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 9.5l3-3 3 3' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .fx-table th[aria-sort="descending"] .fx-table__sort::after { opacity: 1; mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 6.5l3 3 3-3' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .fx-table [data-type="num"] .fx-table__sort { flex-direction: row-reverse; }
  /* Qator tanlash: belgi ustuni tor; tanlangan va havola orqali kelingan (:target) qator — brend tusi (WDS «Rang») */
  .fx-table__check { inline-size: var(--fx-size-checkbox); padding-inline-end: 0; }
  .fx-table tbody tr:has(.fx-table__check input:checked) > *, .fx-table tbody tr[aria-selected="true"] > *, .fx-table tbody tr:target > * { background: var(--fx-bg-brand-subtle); }
  /* Ommaviy amallar paneli: tanlov boʻlsa koʻrinadi — soni + amallar */
  .fx-table-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fx-space-3); padding: var(--fx-space-2) var(--fx-space-3); border-radius: var(--fx-radius-control); background: var(--fx-text-primary); color: var(--fx-bg-page); font-size: var(--fx-font-size-sm); }
  .fx-table-bulk[hidden] { display: none; }
  .fx-table-bulk__count { margin-inline-end: auto; font-weight: var(--fx-font-weight-semibold); font-variant-numeric: tabular-nums; }
  /* Zichlik (2.105): ixcham · standart · keng — qator balandligi bitta oʻzgaruvchi; ustuvor — foydalanuvchi tanlovi (data-density) */
  .fx-table[data-density="compact"] { --_py: calc(var(--fx-space-1) * var(--fx-knob-density)); }
  .fx-table[data-density="comfortable"] { --_py: calc(var(--fx-space-4) * var(--fx-knob-density)); }
  /* Zebra va chegarali (2.112) */
  .fx-table[data-zebra] tbody tr:nth-child(even) > * { background: var(--fx-bg-subtle); }
  .fx-table[data-bordered] th, .fx-table[data-bordered] td { border-inline-end: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-table[data-bordered] th:last-child, .fx-table[data-bordered] td:last-child { border-inline-end: 0; }
  /* Qotgan birinchi ustun (2.109): gorizontal aylantirilganda nom koʻrinib turadi; fon shaffof emas */
  .fx-table[data-pin-first] :is(th, td):first-child { position: sticky; inset-inline-start: 0; z-index: 1; background: var(--fx-table-surface); border-inline-end: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-table[data-pin-first] thead th:first-child { z-index: 2; }
  .fx-table[data-pin-first] tbody tr:hover > :first-child { background: var(--fx-bg-subtle); }
  .fx-table[data-pin-first] tbody tr:active > :first-child { background: var(--fx-bg-muted); }
  .fx-table[data-pin-first] tbody tr:has(.fx-table__check input:checked) > :first-child, .fx-table[data-pin-first] tbody tr[aria-selected="true"] > :first-child { background: var(--fx-bg-brand-subtle); }
  /* Jami qatori qotadi (2.108): uzun roʻyxatda pastda doim koʻrinadi */
  .fx-table[data-sticky-foot] tfoot :is(td, th) { position: sticky; inset-block-end: 0; z-index: 1; background: var(--fx-table-surface); }
  .fx-table tfoot [data-type="num"] { font-variant-numeric: tabular-nums; }
  /* Kengaytiriladigan qator (2.106): chevron tugma + tafsilot qatori */
  .fx-table__expand { display: inline-grid; place-items: center; inline-size: var(--fx-size-min-target); block-size: var(--fx-size-min-target); margin: calc(var(--fx-space-2) * -1) 0; padding: 0; border: 0; border-radius: var(--fx-radius-badge); background: transparent; color: var(--fx-text-tertiary); cursor: pointer; }
  .fx-table__expand:hover { background: var(--fx-bg-muted); color: var(--fx-text-primary); }
  .fx-table__expand:active { background: var(--fx-bg-pressed); }
  .fx-table__expand:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); }
  .fx-table__expand > svg { inline-size: var(--fx-size-icon-sm); block-size: var(--fx-size-icon-sm); transition: rotate var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-table__expand[aria-expanded="true"] > svg { rotate: 90deg; }
  .fx-table__detail[hidden] { display: none; }
  .fx-table__detail > td { padding-block: var(--fx-space-4); background: var(--fx-bg-subtle); color: var(--fx-text-secondary); }
  .fx-table tbody tr:hover + .fx-table__detail > *, .fx-table tbody tr:has(+ .fx-table__detail:not([hidden])):hover > * { background: var(--fx-bg-subtle); }
  .fx-table tbody tr:active + .fx-table__detail > *, .fx-table tbody tr:has(+ .fx-table__detail:not([hidden])):active > * { background: var(--fx-bg-muted); }
  /* Qatordagi amallar (2.110): tepada yashirin, qator ustiga kelganda yoki fokusda chiqadi; sensorli qurilmada doim koʻrinadi */
  .fx-table__actions { inline-size: 1%; white-space: nowrap; text-align: end; }
  .fx-table__actions > * { opacity: 0; transition: opacity var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-table tbody tr:hover .fx-table__actions > *, .fx-table tbody tr:focus-within .fx-table__actions > *, .fx-table__actions:has([aria-expanded="true"]) > * { opacity: 1; }
  @media (hover: none) { .fx-table__actions > * { opacity: 1; } }
  /* Skelet qatorlar (2.114): yuklanayotganda jadval balandligi sakramaydi; hover/tanlov yoʻq */
  .fx-table tbody tr.fx-table__skeleton > * { background: transparent; }
  .fx-table__skeleton .fx-skeleton { inline-size: 80%; }
  .fx-table__skeleton:nth-child(3n+1) .fx-skeleton { inline-size: 55%; }
  .fx-table__skeleton:nth-child(3n+2) .fx-skeleton { inline-size: 70%; }
  /* Ustun ko'rinishi va zichlik menyusi ichidagi ro'yxat */
  .fx-table-opts { display: grid; gap: var(--fx-space-1); margin: 0; padding: 0; border: 0; }
  .fx-table-opts legend { float: inline-start; inline-size: 100%; margin-block-end: var(--fx-space-1); padding: 0; color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
  /* Telefonda kartalar (4.134): data-stack="sm" (< 640) yoki "md" (< 840) — har qator karta, katak «yorliq : qiymat» (data-label;
     boʻlmasa table.js thead'dan toʻldiradi). Birinchi katak — karta sarlavhasi; sarlavha qatori ekran oʻquvchida qoladi. */
  .fx-table[data-stack] td::before { content: none; }
  @media (max-width: 599.98px) { .fx-table[data-stack="sm"] :is(thead) { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); } .fx-table[data-stack="sm"], .fx-table[data-stack="sm"] :is(tbody, tr, td, th) { display: block; } .fx-table[data-stack="sm"] tbody tr { display: grid; gap: var(--fx-space-2); margin-block-end: var(--fx-space-3); padding: var(--fx-space-3) var(--fx-space-4); border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-surface); background: var(--fx-table-surface); } .fx-table[data-stack="sm"] tbody :is(td, th) { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: baseline; gap: var(--fx-space-3); padding: 0; border: 0; text-align: start; white-space: normal; } .fx-table[data-stack="sm"] tbody :is(td, th)[data-label]::before { content: attr(data-label); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); } .fx-table[data-stack="sm"] tbody :is(td, th):first-child:not(.fx-table__check) { grid-template-columns: 1fr; font-weight: var(--fx-font-weight-semibold); } .fx-table[data-stack="sm"] tbody :is(td, th):first-child:not(.fx-table__check)::before { content: none; } .fx-table[data-stack="sm"] tbody td[data-type="num"] { text-align: start; } .fx-table[data-stack="sm"] .fx-table__check { position: absolute; inset-block-start: var(--fx-space-3); inset-inline-end: var(--fx-space-3); } .fx-table[data-stack="sm"] tbody tr { position: relative; } }
  @media (max-width: 839.98px) { .fx-table[data-stack="md"] :is(thead) { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); } .fx-table[data-stack="md"], .fx-table[data-stack="md"] :is(tbody, tr, td, th) { display: block; } .fx-table[data-stack="md"] tbody tr { display: grid; gap: var(--fx-space-2); margin-block-end: var(--fx-space-3); padding: var(--fx-space-3) var(--fx-space-4); border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-surface); background: var(--fx-table-surface); } .fx-table[data-stack="md"] tbody :is(td, th) { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: baseline; gap: var(--fx-space-3); padding: 0; border: 0; text-align: start; white-space: normal; } .fx-table[data-stack="md"] tbody :is(td, th)[data-label]::before { content: attr(data-label); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); } .fx-table[data-stack="md"] tbody :is(td, th):first-child:not(.fx-table__check) { grid-template-columns: 1fr; font-weight: var(--fx-font-weight-semibold); } .fx-table[data-stack="md"] tbody :is(td, th):first-child:not(.fx-table__check)::before { content: none; } .fx-table[data-stack="md"] tbody td[data-type="num"] { text-align: start; } .fx-table[data-stack="md"] .fx-table__check { position: absolute; inset-block-start: var(--fx-space-3); inset-inline-end: var(--fx-space-3); } .fx-table[data-stack="md"] tbody tr { position: relative; } }
  /* ---- Ustun enini oʻzgartirish (4.135): data-resizable — sarlavha oʻng chetida tutqich (datagrid'dagi kabi), fokuslanadi (← →). ---- */
  .fx-table[data-resizable] thead th { position: sticky; }
  .fx-table__resize { position: absolute; inset-block: 0; inset-inline-end: 0; inline-size: var(--fx-space-2); cursor: col-resize; touch-action: none; z-index: 1; }
  .fx-table__resize::after { content: ""; position: absolute; inset-block: var(--fx-space-2); inset-inline-end: 0; inline-size: var(--fx-border-width-default); background: var(--fx-border-color-default); transition: background-color var(--fx-motion-fast) var(--fx-ease-standard); }
  .fx-table__resize:hover::after, .fx-table__resize:focus-visible::after, .fx-table__resize[data-active]::after { inline-size: var(--fx-border-width-focus); background: var(--fx-bg-brand-solid); }
  .fx-table__resize:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-table[data-resizing] { cursor: col-resize; user-select: none; }
  .fx-table[data-resizable] :is(th, td) { box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; }
  /* gorizontal surish qatorlarida soʻnish (fade) yoʻq — Ustoz 21.10: «oqishni butunlay olib tashlash kerak; Apple saytida oqishsiz surish mumkinligi bilinadi» — chetda kesilgan element oʻzi «davomi bor» deydi */
}

@layer fx.components {
  /* Vaqt slotlari toʻri (4.85): bron/uchrashuv uchun boʻsh vaqtlar — tugmasimon radio. Native radio: ← → ↑ ↓ guruh ichida yuradi,
     band (disabled) slot oʻtkazib yuboriladi. Holatlar faqat rangda emas: tanlangan — toʻldirilgan + ✓, band — chizilgan + «band» soʻzi,
     oz qolgan — «2 joy» yozuvi. Kalendar (fx-calendar) bilan yonma-yon ishlatiladi. */
  .fx-timeslots { --_cols: 4; --_h: var(--fx-control-h-md); display: grid; gap: var(--fx-space-4); min-inline-size: 0; margin: 0; padding: 0; border: 0; color: var(--fx-text-primary); }
  .fx-timeslots[data-columns="3"] { --_cols: 3; }
  .fx-timeslots[data-columns="6"] { --_cols: 6; }
  .fx-timeslots[data-size="sm"] { --_h: var(--fx-control-h-sm); }
  .fx-timeslots__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--fx-space-1) var(--fx-space-3); }
  .fx-timeslots__title { float: left; padding: 0; font-size: var(--fx-font-size-md); font-weight: var(--fx-font-weight-semibold); }
  .fx-timeslots__title + * { clear: left; }
  .fx-timeslots__meta { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); }
  .fx-timeslots__group { display: grid; gap: var(--fx-space-2); }
  .fx-timeslots__label { color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
  .fx-timeslots__grid { display: grid; grid-template-columns: repeat(var(--_cols), minmax(0, 1fr)); gap: var(--fx-space-2); }
  .fx-timeslots[data-layout="list"] .fx-timeslots__grid { grid-template-columns: minmax(0, 1fr); max-block-size: calc(var(--_h) * 7 + var(--fx-space-2) * 6); overflow-y: auto; padding-inline-end: var(--fx-space-1); }
  .fx-timeslots__slot {
    position: relative;
    display: grid;
    place-content: center;
    justify-items: center;
    min-block-size: var(--_h);
    box-sizing: border-box;
    padding-inline: var(--fx-space-2);
    border: var(--fx-border-width-default) solid var(--fx-border-color-strong);
    border-radius: calc(var(--fx-knob-pill) * var(--_h) / 2 + (1 - var(--fx-knob-pill)) * var(--fx-radius-control));
    background: var(--fx-bg-surface);
    color: var(--fx-text-primary);
    font-size: var(--fx-font-size-sm);
    font-weight: var(--fx-font-weight-medium);
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
    cursor: pointer;
    transition: background-color var(--fx-motion-fast) var(--fx-ease-standard), border-color var(--fx-motion-fast) var(--fx-ease-standard), color var(--fx-motion-fast) var(--fx-ease-standard), scale var(--fx-motion-instant) var(--fx-ease-standard);
  }
  .fx-timeslots__slot > input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: inherit; }
  .fx-timeslots__slot:hover:not(:has(:disabled, :checked)) { border-color: var(--fx-border-color-focus); background: var(--fx-bg-brand-subtle); }
  .fx-timeslots__slot:active:not(:has(:disabled)) { scale: var(--fx-motion-press); }
  .fx-timeslots__slot:has(:focus-visible) { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: var(--fx-border-width-focus); }
  .fx-timeslots__slot:has(:checked) { border-color: var(--fx-bg-brand-solid); background: var(--fx-bg-brand-solid); color: var(--fx-text-on-brand); }
  .fx-timeslots__slot:has(:checked) > span:first-of-type::before { content: "✓ "; }
  .fx-timeslots__slot:has(:disabled) { border-style: dashed; border-color: var(--fx-border-color-default); background: transparent; color: var(--fx-text-disabled); cursor: not-allowed; }
  .fx-timeslots__slot:has(:disabled) > span:first-of-type { text-decoration: line-through; }
  .fx-timeslots__note { font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-regular); color: var(--fx-text-tertiary); }
  .fx-timeslots__slot:has(:checked) .fx-timeslots__note { color: inherit; }
  .fx-timeslots__slot[data-few] .fx-timeslots__note { color: var(--fx-text-error); }
  .fx-timeslots[data-layout="list"] .fx-timeslots__slot { grid-auto-flow: column; justify-content: space-between; padding-inline: var(--fx-space-4); }
  .fx-timeslots__empty { margin: 0; padding: var(--fx-space-6) var(--fx-space-4); border: var(--fx-border-width-default) dashed var(--fx-border-color-default); border-radius: var(--fx-radius-surface); color: var(--fx-text-tertiary); font-size: var(--fx-font-size-sm); text-align: center; }
  .fx-timeslots__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--fx-space-3); padding-block-start: var(--fx-space-3); border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); color: var(--fx-text-secondary); font-size: var(--fx-font-size-sm); }
  @media (max-width: 599.98px) { .fx-timeslots:not([data-layout="list"]) { --_cols: 3; } }
  @media (forced-colors: active) { .fx-timeslots__slot:has(:checked) { outline: var(--fx-border-width-focus) solid Highlight; } }
}

@layer fx.components {
  /* Vosita chaqiruvi kartasi (tool call): <details> — sarlavhada ikon, nom (mono), vaqt, holat (shakl + soʻz), ochilsa kirish va natija.
     Holatlar: pending · running · waiting (ruxsat kutmoqda) · done · error. Ichiga .fx-approval qoʻyish mumkin. */
  .fx-toolcall { border: var(--fx-border-width-default) solid var(--fx-border-color-default); border-radius: var(--fx-radius-overlay); background: var(--fx-bg-surface); font-size: var(--fx-font-size-sm); }
  .fx-toolcall[data-state="waiting"] { border-color: var(--fx-fg-warning); }
  .fx-toolcall[data-state="error"] { border-color: var(--fx-border-color-error); }
  .fx-toolcall > summary { display: flex; align-items: center; gap: var(--fx-space-3); padding: var(--fx-space-2) var(--fx-space-3); border-radius: inherit; list-style: none; cursor: pointer; user-select: none; }
  .fx-toolcall > summary::-webkit-details-marker { display: none; }
  .fx-toolcall > summary:hover { background: var(--fx-bg-subtle); }
  .fx-toolcall > summary:active { background: var(--fx-bg-muted); }
  .fx-toolcall > summary:focus-visible { outline: var(--fx-border-width-focus) solid var(--fx-border-color-focus); outline-offset: calc(var(--fx-border-width-focus) * -1); }
  .fx-toolcall > summary > svg { flex: none; inline-size: var(--fx-size-icon-md); block-size: var(--fx-size-icon-md); fill: none; stroke: var(--fx-text-secondary); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .fx-toolcall__name { flex: 1; min-inline-size: 0; overflow: hidden; color: var(--fx-text-primary); font-family: var(--fx-font-family-mono); font-size-adjust: var(--fx-font-adjust-mono); font-size: var(--fx-font-size-sm); text-overflow: ellipsis; white-space: nowrap; }
  .fx-toolcall__time { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-variant-numeric: tabular-nums; }
  .fx-toolcall__chev { transition: rotate var(--fx-motion-base) var(--fx-ease-standard); }
  .fx-toolcall[open] .fx-toolcall__chev { rotate: 90deg; }
  .fx-toolcall__status { display: inline-flex; align-items: center; gap: var(--fx-space-1); padding: var(--fx-space-1) var(--fx-space-2); border-radius: var(--fx-radius-badge); background: var(--fx-bg-muted); color: var(--fx-text-secondary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); line-height: 1; white-space: nowrap; }
  .fx-toolcall__status::before { content: ""; flex: none; box-sizing: border-box; inline-size: var(--fx-size-status-dot); block-size: var(--fx-size-status-dot); border-radius: var(--fx-radius-circle); background: currentColor; }
  .fx-toolcall[data-state="pending"] .fx-toolcall__status::before { background: transparent; border: var(--fx-border-width-default) dashed currentColor; }
  .fx-toolcall[data-state="running"] .fx-toolcall__status { background: var(--fx-bg-brand-subtle); color: var(--fx-text-brand); }
  .fx-toolcall[data-state="running"] .fx-toolcall__status::before { background: transparent; border: var(--fx-border-width-focus) solid currentColor; animation: fx-pulse var(--fx-duration-pulse) var(--fx-ease-standard) infinite; }
  .fx-toolcall[data-state="waiting"] .fx-toolcall__status { background: var(--fx-bg-warning-subtle); color: var(--fx-fg-warning); }
  .fx-toolcall[data-state="waiting"] .fx-toolcall__status::before { border-radius: var(--fx-radius-badge); background: transparent; border: var(--fx-border-width-focus) solid currentColor; }
  .fx-toolcall[data-state="done"] .fx-toolcall__status { background: var(--fx-bg-success-subtle); color: var(--fx-fg-success); }
  .fx-toolcall[data-state="done"] .fx-toolcall__status::before { border-radius: 0; background: currentColor; mask: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  .fx-toolcall[data-state="error"] .fx-toolcall__status { background: var(--fx-bg-error-subtle); color: var(--fx-fg-error); }
  .fx-toolcall[data-state="error"] .fx-toolcall__status::before { rotate: 45deg; scale: 0.85; border-radius: 0; }
  .fx-toolcall__body { display: grid; gap: var(--fx-space-3); padding: var(--fx-space-3); border-block-start: var(--fx-border-width-default) solid var(--fx-border-color-default); }
  .fx-toolcall__section { display: grid; gap: var(--fx-space-1); min-inline-size: 0; }
  .fx-toolcall__label { color: var(--fx-text-tertiary); font-size: var(--fx-font-size-xs); font-weight: var(--fx-font-weight-medium); }
  .fx-toolcall__body pre { margin: 0; padding: var(--fx-space-2) var(--fx-space-3); overflow-x: auto; border-radius: var(--fx-radius-badge); background: var(--fx-bg-muted); color: var(--fx-text-primary); font-family: var(--fx-font-family-mono); font-size-adjust: var(--fx-font-adjust-mono); font-size: var(--fx-font-size-xs); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
  .fx-toolcall__error { margin: 0; color: var(--fx-text-error); }
  @media (prefers-reduced-motion: reduce) { .fx-toolcall[data-state="running"] .fx-toolcall__status::before { animation: none; } }
}

@layer fx.components {
  /* Yozuv tanlovi (Qaror 22.10 #4): Yangi · Eski lotin · Кирилл — fx-segment ustiga qurilgan (qobiq va tanlov shundan).
     Yorliqlar har biri oʻz yozuvida va oʻgirilmaydi (data-yozuv-skip). Xulq — foxui.js (data-fx-yozuv), yadro — foxui/yozuv. */
  .fx-yozuv .fx-segment__item { white-space: nowrap; }
  .fx-yozuv__label-short { display: none; }
  .fx-yozuv[data-variant="short"] .fx-yozuv__label { display: none; }
  .fx-yozuv[data-variant="short"] .fx-yozuv__label-short { display: inline; }
}
