:root{--color-neutral-0: #ffffff;--color-neutral-25: #fcfcfc;--color-neutral-50: #fafafa;--color-neutral-100: #f1f2f3;--color-neutral-200: #d6d8dc;--color-neutral-300: #b3b6bd;--color-neutral-400: #9599a3;--color-neutral-500: #767c89;--color-neutral-600: #5c616a;--color-neutral-750: #34373C;--color-neutral-800: #27292E;--color-neutral-850: #1E2024;--color-neutral-900: #18191B;--color-neutral-950: #0C0D0E;--color-neutral-975: #000000;--color-alpha-black-50: rgba(0, 14, 28, .0196078431372549);--color-alpha-black-100: rgba(0, 14, 28, .050980392156862744);--color-alpha-black-200: rgba(0, 14, 28, .1607843137254902);--color-alpha-black-300: rgba(0, 14, 28, .30196078431372547);--color-alpha-black-400: rgba(0, 13, 26, .4196078431372549);--color-alpha-black-500: rgba(3, 18, 32, .5490196078431373);--color-alpha-black-600: rgba(6, 15, 25, .6588235294117647);--color-alpha-black-700: rgba(4, 14, 24, .7686274509803922);--color-alpha-black-800: rgba(8, 14, 20, .8784313725490196);--color-alpha-white-50: #fafafa;--color-alpha-white-100: rgba(250, 250, 250, .9686274509803922);--color-alpha-white-200: rgba(248, 250, 252, .8705882352941177);--color-alpha-white-300: rgba(245, 250, 255, .7411764705882353);--color-alpha-white-400: rgba(245, 250, 255, .611764705882353);--color-alpha-white-500: rgba(245, 250, 255, .5019607843137255);--color-alpha-white-600: rgba(245, 250, 255, .4);--color-alpha-white-700: rgba(245, 250, 255, .27058823529411763);--color-alpha-white-800: rgba(245, 250, 255, .1607843137254902);--color-alpha-white-900: rgba(245, 250, 255, .10196078431372549);--color-yellow-zebra-50: #fff9e9;--color-yellow-zebra-100: #fef1cc;--color-yellow-zebra-200: #fde398;--color-yellow-zebra-300: #fccf3f;--color-yellow-zebra-400: #e9bc2e;--color-yellow-zebra-500: #d8ab29;--color-yellow-zebra-600: #ba8b21;--color-yellow-zebra-700: #956416;--color-yellow-zebra-800: #774b0f;--color-yellow-zebra-900: #623c0a;--color-yellow-zebra-950: #372203;--color-blue-gray-25: #fcfcfd;--color-blue-gray-50: #f8f9fc;--color-blue-gray-100: #eaecf5;--color-blue-gray-200: #d5d9eb;--color-blue-gray-300: #afb5d9;--color-blue-gray-400: #717bbc;--color-blue-gray-500: #4e5ba6;--color-blue-gray-600: #3e4784;--color-blue-gray-700: #363f72;--color-blue-gray-800: #293056;--color-blue-gray-900: #101323;--color-red-25: #fffbfa;--color-red-50: #fef3f2;--color-red-100: #fee4e2;--color-red-200: #fecdca;--color-red-300: #fda29b;--color-red-400: #f97066;--color-red-500: #f04438;--color-red-600: #d92d20;--color-red-700: #b42318;--color-red-800: #912018;--color-red-900: #7a271a;--color-green-25: #f6fef9;--color-green-50: #ecfdf3;--color-green-100: #d1fadf;--color-green-200: #a6f4c5;--color-green-300: #6ce9a6;--color-green-400: #32d583;--color-green-500: #12b76a;--color-green-600: #039855;--color-green-700: #027a48;--color-green-800: #05603a;--color-green-900: #054f31;--color-orange-25: #fffaf5;--color-orange-50: #fff6ed;--color-orange-100: #ffead5;--color-orange-200: #fddcab;--color-orange-300: #fcb67e;--color-orange-400: #fb9846;--color-orange-500: #e7700d;--color-orange-600: #c85f09;--color-orange-700: #a14f0c;--color-orange-800: #7d3f0c;--color-orange-900: #5f310c;--color-pink-25: #fef6fb;--color-pink-50: #fdf2fa;--color-pink-100: #fce7f6;--color-pink-200: #fcceee;--color-pink-300: #faa7e0;--color-pink-400: #f670c7;--color-pink-500: #ee46bc;--color-pink-600: #dd2590;--color-pink-700: #c11574;--color-pink-800: #9e165f;--color-pink-900: #851651;--color-purple-25: #fafaff;--color-purple-50: #f4f3ff;--color-purple-100: #ebe9fe;--color-purple-200: #d9d6fe;--color-purple-300: #bdb4fe;--color-purple-400: #9b8afb;--color-purple-500: #7a5af8;--color-purple-600: #6938ef;--color-purple-700: #5925dc;--color-purple-800: #4a1fb8;--color-purple-900: #3e1c96;--color-blue-25: #f5faff;--color-blue-50: #eff8ff;--color-blue-100: #d1e9ff;--color-blue-200: #b2ddff;--color-blue-300: #84caff;--color-blue-400: #55b1fc;--color-blue-500: #2e90fa;--color-blue-600: #1570ef;--color-blue-700: #175cd3;--color-blue-800: #1849a9;--color-blue-900: #194185;--color-blue-light-25: #f5fbff;--color-blue-light-50: #f0f9ff;--color-blue-light-100: #e0f2fe;--color-blue-light-200: #b9e6fe;--color-blue-light-300: #81d6f8;--color-blue-light-400: #52c0ef;--color-blue-light-500: #0ba5ec;--color-blue-light-600: #0086c9;--color-blue-light-700: #026aa2;--color-blue-light-800: #065986;--color-blue-light-900: #0b4a6f;--color-indigo-0: #ffffff;--color-indigo-25: #f5f8ff;--color-indigo-50: #eef4ff;--color-indigo-100: #e0eaff;--color-indigo-200: #c7d7fe;--color-indigo-300: #a4bcfd;--color-indigo-400: #8098f9;--color-indigo-500: #6172f3;--color-indigo-600: #444ce7;--color-indigo-700: #3538cd;--color-indigo-800: #2d31a6;--color-indigo-900: #2d3282;--radius-xs: 2;--radius-s: 4;--radius-default: 8;--radius-l: 16;--radius-full-rounded: 9999;--spacing-xxs: 2;--spacing-xs: 4;--spacing-s: 8;--spacing-m: 16;--spacing-l: 24;--spacing-xl: 32;--spacing-2xl: 40;--spacing-3xl: 48;--spacing-4xl: 56;--spacing-5xl: 64;--spacing-6xl: 80;--spacing-7xl: 120;--font-size-8: 8;--font-size-10: 10;--font-size-12: 12;--font-size-14: 14;--font-size-16-base: 16;--font-size-18: 18;--font-size-20: 20;--font-size-22: 22;--font-size-24: 24;--font-size-32: 32;--font-size-40: 40;--font-size-48: 48;--font-size-56: 56;--font-size-64: 64;--font-family-1: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-weight-regular: 400;--font-weight-medium: 600;--font-weight-bold: 800;--font-line-height-none: 100%;--font-line-height-tight: 110%;--font-line-height-snug: 120%;--font-line-height-normal: 140%}:root,[data-theme=light]{--color-text-primary: var(--color-alpha-black-800);--color-text-secondary: var(--color-alpha-black-600);--color-text-link: var(--color-accent-high);--color-text-disabled: var(--color-alpha-black-400);--color-text-inverted: var(--color-alpha-white-100);--color-text-placeholder: var(--color-alpha-black-600);--color-text-on-dark-primary: var(--color-alpha-white-50);--color-text-on-dark-secondary: var(--color-alpha-white-300);--color-text-on-light-primary: var(--color-alpha-black-800);--color-text-on-light-secondary: var(--color-alpha-black-700);--color-accent-alpha-low: rgba(11, 165, 236, .10196078431372549);--color-accent-alpha-high: rgba(11, 165, 236, .2);--color-accent-lowest: var(--color-blue-light-25);--color-accent-low: var(--color-blue-light-100);--color-accent-base: var(--color-blue-light-600);--color-accent-high: var(--color-blue-light-700);--color-accent-highest: var(--color-blue-light-800);--color-surface-state-default: var(--color-neutral-0);--color-surface-state-disabled: var(--color-neutral-100);--color-surface-raised: var(--color-neutral-0);--color-surface-base: var(--color-neutral-50);--color-surface-subtle: var(--color-neutral-100);--color-surface-sunken: var(--color-neutral-200);--color-surface-sunken-strong: var(--color-neutral-800);--color-surface-decorative-bluelight: var(--color-blue-light-200);--color-surface-decorative-blue: var(--color-blue-200);--color-surface-decorative-indigo: var(--color-indigo-200);--color-surface-decorative-purple: var(--color-purple-200);--color-surface-decorative-pink: var(--color-pink-200);--color-surface-decorative-orange: var(--color-orange-200);--color-surface-decorative-yellow: var(--color-yellow-zebra-200);--color-surface-decorative-bluegray: var(--color-blue-gray-200);--color-surface-decorative-neutral: var(--color-neutral-200);--color-surface-on-dark: var(--color-neutral-800);--color-background-high: var(--color-neutral-25);--color-background-base: var(--color-neutral-50);--color-background-subtle: var(--color-neutral-100);--color-border-highest: var(--color-neutral-800);--color-border-high: var(--color-neutral-300);--color-border-base: var(--color-neutral-200);--color-border-low: var(--color-neutral-100);--color-border-on-dark: var(--color-neutral-50);--color-border-accent: var(--color-accent-base);--color-divider-default: var(--color-neutral-100);--color-divider-on-dark: var(--color-alpha-white-700);--color-icon-brand: var(--brand-base);--color-icon-on-brand: var(--brand-on-brand);--color-icon-on-dark: var(--color-alpha-white-50);--color-icon-on-light: var(--color-alpha-black-800);--color-icon-neutral-highest: var(--color-neutral-800);--color-icon-neutral-high: var(--color-alpha-black-600);--color-icon-neutral-base: var(--color-neutral-50);--color-icon-neutral-lowest: var(--color-neutral-0);--color-icon-disabled: var(--color-alpha-black-300);--color-icon-action: var(--color-text-link);--color-feedback-success-text: var(--color-green-900);--color-feedback-success-surface: var(--color-green-50);--color-feedback-success-icon: var(--color-green-700);--color-feedback-success-border: var(--color-green-200);--color-feedback-info-text: var(--color-blue-light-900);--color-feedback-info-surface: var(--color-blue-light-50);--color-feedback-info-icon: var(--color-blue-light-700);--color-feedback-info-border: var(--color-blue-light-200);--color-feedback-warning-text: var(--color-orange-900);--color-feedback-warning-surface: var(--color-orange-50);--color-feedback-warning-icon: var(--color-orange-600);--color-feedback-warning-border: var(--color-orange-200);--color-feedback-error-text: var(--color-red-900);--color-feedback-error-surface: var(--color-red-50);--color-feedback-error-icon: var(--color-red-700);--color-feedback-error-border-low: var(--color-red-200);--color-feedback-error-border-high: var(--color-red-700);--color-danger-high: var(--color-red-700);--color-danger-high-hover: var(--color-red-800);--color-danger-high-active: var(--color-red-900);--color-danger-subtle-hover: var(--color-red-50);--color-danger-subtle-active: var(--color-red-100);--color-danger-border: var(--color-red-800);--color-danger-icon: var(--color-red-900);--color-danger-text: var(--color-red-900);--elevation-shadow-color-main: var(--color-alpha-black-200);--elevation-shadow-color-subtle: var(--color-alpha-black-100);--elevation-shadow-color-high: var(--color-alpha-black-300);--color-overlay: var(--color-alpha-black-600)}[data-theme=dark]{--color-text-primary: var(--color-alpha-white-100);--color-text-secondary: var(--color-alpha-white-300);--color-text-link: var(--color-accent-high);--color-text-disabled: var(--color-alpha-white-400);--color-text-inverted: var(--color-alpha-black-800);--color-text-placeholder: var(--color-alpha-white-600);--color-text-on-dark-primary: var(--color-alpha-white-50);--color-text-on-dark-secondary: var(--color-alpha-white-300);--color-text-on-light-primary: var(--color-alpha-black-800);--color-text-on-light-secondary: var(--color-alpha-black-700);--color-accent-alpha-low: rgba(11, 165, 236, .34901960784313724);--color-accent-alpha-high: rgba(11, 165, 236, .5019607843137255);--color-accent-lowest: var(--color-blue-light-900);--color-accent-low: var(--color-blue-light-800);--color-accent-base: var(--color-blue-light-400);--color-accent-high: var(--color-blue-light-200);--color-accent-highest: var(--color-blue-light-50);--color-surface-state-default: var(--color-alpha-white-900);--color-surface-state-disabled: var(--color-alpha-white-700);--color-surface-raised: var(--color-neutral-750);--color-surface-base: var(--color-neutral-800);--color-surface-subtle: var(--color-neutral-850);--color-surface-sunken: var(--color-neutral-900);--color-surface-sunken-strong: var(--color-neutral-950);--color-surface-decorative-bluelight: var(--color-blue-light-800);--color-surface-decorative-blue: var(--color-blue-800);--color-surface-decorative-indigo: var(--color-indigo-800);--color-surface-decorative-purple: var(--color-purple-800);--color-surface-decorative-pink: var(--color-pink-800);--color-surface-decorative-orange: var(--color-orange-800);--color-surface-decorative-yellow: var(--color-yellow-zebra-800);--color-surface-decorative-bluegray: var(--color-blue-gray-800);--color-surface-decorative-neutral: var(--color-neutral-800);--color-surface-on-dark: var(--color-neutral-800);--color-background-high: var(--color-neutral-900);--color-background-base: var(--color-neutral-800);--color-background-subtle: var(--color-neutral-700);--color-border-highest: var(--color-neutral-200);--color-border-high: var(--color-neutral-500);--color-border-base: var(--color-neutral-700);--color-border-low: var(--color-neutral-800);--color-border-on-dark: var(--color-neutral-50);--color-border-accent: var(--color-accent-high);--color-divider-default: var(--color-neutral-700);--color-divider-on-dark: var(--color-alpha-black-700);--color-icon-brand: var(--brand-base);--color-icon-on-brand: var(--brand-on-brand);--color-icon-on-dark: var(--color-alpha-white-50);--color-icon-on-light: var(--color-alpha-black-800);--color-icon-neutral-highest: var(--color-neutral-50);--color-icon-neutral-high: var(--color-alpha-white-300);--color-icon-neutral-base: var(--color-neutral-800);--color-icon-neutral-lowest: var(--color-neutral-900);--color-icon-disabled: var(--color-alpha-white-400);--color-icon-action: var(--color-text-link);--color-feedback-success-text: var(--color-green-50);--color-feedback-success-surface: var(--color-green-900);--color-feedback-success-icon: var(--color-green-300);--color-feedback-success-border: var(--color-green-700);--color-feedback-info-text: var(--color-blue-light-50);--color-feedback-info-surface: var(--color-blue-light-900);--color-feedback-info-icon: var(--color-blue-light-300);--color-feedback-info-border: var(--color-blue-light-700);--color-feedback-warning-text: var(--color-orange-50);--color-feedback-warning-surface: var(--color-orange-900);--color-feedback-warning-icon: var(--color-orange-300);--color-feedback-warning-border: var(--color-orange-600);--color-feedback-error-text: var(--color-red-50);--color-feedback-error-surface: var(--color-red-900);--color-feedback-error-icon: var(--color-red-300);--color-feedback-error-border-low: var(--color-red-700);--color-feedback-error-border-high: var(--color-red-300);--color-danger-high: var(--color-red-400);--color-danger-high-hover: var(--color-red-300);--color-danger-high-active: var(--color-red-200);--color-danger-subtle-hover: var(--color-red-400);--color-danger-subtle-active: var(--color-red-300);--color-danger-border: var(--color-red-400);--color-danger-icon: var(--color-red-50);--color-danger-text: var(--color-red-50);--elevation-shadow-color-main: var(--color-alpha-black-700);--elevation-shadow-color-subtle: var(--color-alpha-black-600);--elevation-shadow-color-high: var(--color-alpha-black-800);--color-overlay: var(--color-alpha-black-600)}:root{--icon-size-16: 16;--icon-size-20: 20;--icon-size-24: 24;--control-selection-size-small: 16;--control-selection-size-medium: 20}:root{--font-size-caption: var(--font-size-12);--font-size-notification-small: var(--font-size-8);--font-size-notification-medium: var(--font-size-10);--font-size-body-1: var(--font-size-16-base);--font-size-body-2: var(--font-size-14);--font-size-heading-1: var(--font-size-40);--font-size-heading-2: var(--font-size-32);--font-size-heading-3: var(--font-size-24);--font-size-heading-4: var(--font-size-20);--font-size-heading-5: var(--font-size-18);--font-size-display-1: var(--font-size-48);--font-size-display-2: var(--font-size-64)}[data-viewport=tablet]{--font-size-caption: var(--font-size-12);--font-size-notification-small: var(--font-size-8);--font-size-notification-medium: var(--font-size-10);--font-size-body-1: var(--font-size-16-base);--font-size-body-2: var(--font-size-14);--font-size-heading-1: var(--font-size-40);--font-size-heading-2: var(--font-size-32);--font-size-heading-3: var(--font-size-22);--font-size-heading-4: var(--font-size-20);--font-size-heading-5: var(--font-size-18);--font-size-display-1: var(--font-size-48);--font-size-display-2: var(--font-size-56)}[data-viewport=mobile]{--font-size-caption: var(--font-size-12);--font-size-notification-small: var(--font-size-8);--font-size-notification-medium: var(--font-size-10);--font-size-body-1: var(--font-size-16-base);--font-size-body-2: var(--font-size-14);--font-size-heading-1: var(--font-size-32);--font-size-heading-2: var(--font-size-24);--font-size-heading-3: var(--font-size-22);--font-size-heading-4: var(--font-size-18);--font-size-heading-5: var(--font-size-16-base);--font-size-display-1: var(--font-size-40);--font-size-display-2: var(--font-size-48)}:root{--spacing-box-inner-padding-xs: var(--spacing-xs);--spacing-box-inner-padding-s: var(--spacing-s);--spacing-box-inner-padding-m: var(--spacing-m);--spacing-box-inner-padding-l: var(--spacing-l);--spacing-box-inner-gap-xs: var(--spacing-xs);--spacing-box-inner-gap-s: var(--spacing-s);--spacing-box-inner-gap-m: var(--spacing-m);--spacing-box-inner-gap-l: var(--spacing-l)}[data-density=compact]{--spacing-box-inner-padding-xs: var(--spacing-xxs);--spacing-box-inner-padding-s: var(--spacing-xs);--spacing-box-inner-padding-m: var(--spacing-s);--spacing-box-inner-padding-l: var(--spacing-m);--spacing-box-inner-gap-xs: var(--spacing-xxs);--spacing-box-inner-gap-s: var(--spacing-xs);--spacing-box-inner-gap-m: var(--spacing-s);--spacing-box-inner-gap-l: var(--spacing-m)}:root,[data-theme=light]{--brand-low: var(--color-yellow-zebra-100);--brand-high: var(--color-yellow-zebra-400);--brand-lowest: var(--color-yellow-zebra-50);--brand-base: var(--color-yellow-zebra-300);--brand-on-brand: var(--color-text-on-light-primary);--brand-highest: var(--color-yellow-zebra-500)}[data-theme=dark]{--brand-low: var(--color-yellow-zebra-400);--brand-high: var(--color-yellow-zebra-200);--brand-lowest: var(--color-yellow-zebra-500);--brand-base: var(--color-yellow-zebra-300);--brand-on-brand: var(--color-text-on-light-primary);--brand-highest: var(--color-yellow-zebra-50)}:root{--button-color-text-primary: var(--color-text-primary);--button-color-text-disabled: var(--color-text-disabled);--button-color-text-danger: var(--color-danger-text);--button-color-text-on-dark: var(--color-text-on-dark-primary);--button-color-text-on-brand: var(--brand-on-brand);--button-color-text-link: var(--color-text-link);--button-color-surface-disabled: var(--color-surface-subtle);--button-color-surface-primary-default: var(--brand-base);--button-color-surface-primary-hover: var(--brand-high);--button-color-surface-primary-active: var(--brand-highest);--button-color-surface-secondary-hover: var(--color-accent-alpha-low);--button-color-surface-secondary-active: var(--color-accent-alpha-high);--button-color-surface-danger-filled-default: var(--color-danger-high);--button-color-surface-danger-filled-hover: var(--color-danger-high-hover);--button-color-surface-danger-filled-active: var(--color-danger-high-active);--button-color-surface-danger-outlined-hover: var(--color-danger-subtle-hover);--button-color-surface-danger-outlined-active: var(--color-danger-subtle-active);--button-color-border-on-dark: var(--color-border-on-dark);--button-color-border-secondary: var(--color-border-highest);--button-color-border-danger-outlined: var(--color-danger-border);--button-color-icon-danger: var(--color-danger-icon);--button-color-icon-default: var(--color-icon-action);--input-label-default: var(--color-text-secondary);--input-label-error: var(--color-feedback-error-text);--input-surface-default: var(--color-surface-state-default);--input-surface-disabled: var(--color-surface-state-disabled);--input-check-surface-default: var(--color-surface-state-default);--input-check-surface-checked: var(--color-accent-base);--input-check-surface-checked-hover: var(--color-accent-high);--input-check-checker-active: var(--color-icon-neutral-lowest);--input-check-checker-disabled: var(--color-icon-disabled);--input-text-default: var(--color-text-primary);--input-text-placeholder: var(--color-text-placeholder);--input-text-disabled: var(--color-text-disabled);--input-text-error: var(--color-feedback-error-text);--input-icon-default: var(--color-text-secondary);--input-icon-disabled: var(--color-icon-disabled);--input-icon-error: var(--color-feedback-error-icon);--input-border-active: var(--color-accent-base);--input-border-default: var(--color-border-high);--input-border-error: var(--color-feedback-error-border-high);--table-cell-surface-purple: var(--color-surface-decorative-purple);--table-cell-surface-yellow: var(--color-surface-decorative-yellow);--table-cell-surface-default: var(--color-surface-raised);--table-cell-surface-subtle: var(--color-surface-base);--badge-text: var(--color-text-primary);--badge-accent-surface-bluelight: var(--color-surface-decorative-bluelight);--badge-accent-surface-blue: var(--color-surface-decorative-blue);--badge-accent-surface-indigo: var(--color-surface-decorative-indigo);--badge-accent-surface-purple: var(--color-surface-decorative-purple);--badge-accent-surface-pink: var(--color-surface-decorative-pink);--badge-accent-surface-orange: var(--color-surface-decorative-orange);--badge-accent-surface-yellow: var(--color-surface-decorative-yellow);--badge-accent-surface-bluegray: var(--color-surface-decorative-bluegray);--badge-accent-surface-neutral: var(--color-surface-decorative-neutral);--side-menu-surface: var(--color-surface-on-dark);--modal-overlay-surface: var(--color-overlay);--focus-ring-color: var(--color-accent-base);--focus-ring-width: 3px;--focus-ring-offset: 4px;--calendar-holiday: var(--color-surface-decorative-purple);--calendar-day-off: var(--color-surface-decorative-yellow)}:root{--button-radius: var(--radius-full-rounded);--input-radius: var(--radius-s);--container-radius: var(--radius-default);--badge-radius: var(--radius-xs)}:root{--button-height-small: 24;--button-height-medium: 34;--button-height-big: 40;--button-padding-small: 12;--button-padding-medium: 20;--button-padding-big: 28;--button-icon-small: var(--icon-size-16);--button-icon-medium: var(--icon-size-20);--button-icon-big: var(--icon-size-24);--form-check-size: var(--control-selection-size-medium);--form-toggle-thumb-small: var(--control-selection-size-small);--form-toggle-thumb-medoum: var(--control-selection-size-medium);--input-height-small: 24;--input-height-medium: 32;--input-height-big: 40;--input-gap-default: 6}:root{--button-font-family: var(--font-family-1);--button-letter-spacing: .4;--button-line-height: var(--font-line-height-none);--button-big-font-size: var(--font-size-16-base);--button-medium-font-size: var(--font-size-14);--button-small-font-size: var(--font-size-12);--badge-letter-spacing: .5;--badge-small-font-size: var(--font-size-notification-small);--badge-medium-font-size: var(--font-size-notification-medium)}:root{--table-cell-height: 52;--table-header-height: 32}[data-density=compact]{--table-cell-height: 38;--table-header-height: 32}:root{--color-primary: var(--text-strong);--color-accent-light: var(--p-blue-200);--color-bg-page: var(--canvas);--color-bg-card: var(--surface);--color-text-heading: var(--text-strong);--color-text-body: var(--text-2);--color-text-label: var(--text-strong);--color-text-placeholder: var(--text-3);--color-text-white: var(--text-on-dark);--color-border: var(--border);--color-border-soft: var(--border-soft);--color-border-strong: var(--border-strong);--color-focus-shadow: var(--hover);--color-focus-border: var(--focus);--color-focus-ring: var(--focus-ring);--color-hover: var(--hover);--color-danger: var(--err-dot);--color-danger-ring: rgba(180, 35, 24, .12);--color-success: var(--ok);--color-toggle-off: var(--p-grey-300);--shadow-card: var(--shadow-1);--radius-pill: var(--r-pill);--color-role-operario: #51575E;--color-role-operario-bg: #F7F7F8;--color-role-administrador: #0B4A6F;--color-role-administrador-bg: #F0F9FF;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-xl: 1.375rem;--font-weight-light: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-family-base: var(--font);--control-height: 44px;--form-control-height: 36px;--radius-md: var(--r-md);--form-max-width: 440px;--sidebar-collapsed-width: 72px;--ease: cubic-bezier(.4, 0, .2, 1);--z-raised: 2;--z-dropdown: 10;--z-sidebar: 20;--z-drag-indicator: 449;--z-drag-ghost: 450;--z-overlay: 2000;--z-dialog: 2100;--z-toast: 3000;--overlay: rgba(39, 41, 46, .4);--danger-soft: rgba(180, 35, 24, .08);--danger-tint: rgba(180, 35, 24, .12);--ok-tint: rgba(23, 178, 106, .12);--sidebar-divider: var(--color-alpha-white-900, rgba(245, 250, 255, .1));--p-white: var(--color-neutral-0, #FFFFFF);--p-grey-100: var(--color-neutral-100, #F1F2F3);--p-grey-150: color-mix(in srgb, var(--color-neutral-100, #F1F2F3) 50%, var(--color-neutral-200, #D6D8DC) 50%);--p-grey-300: var(--color-neutral-300, #B8BCC2);--p-grey-400: var(--color-neutral-400, #8A9099);--p-grey-750: var(--color-neutral-750, #45474D);--p-grey-800: var(--color-neutral-800, #27292E);--p-yellow-50: var(--color-yellow-zebra-50, #FFFCF5);--p-blue-25: var(--color-blue-light-25, #F5FBFF);--p-blue-50: var(--color-blue-light-50, #F0F9FF);--p-blue-100: var(--color-blue-light-100, #E0F2FE);--p-blue-200: var(--color-blue-light-200, #CDEBF8);--p-blue-500: var(--color-blue-light-500, #0BA5EC);--p-blue-600: var(--color-blue-light-600, #0086C9);--p-blue-900: var(--color-blue-light-900, #0B4A6F);--p-red-50: var(--color-red-50, #FEF3F2);--p-red-600: var(--color-red-700, #B42318);--p-red-700: var(--color-red-800, #912018);--p-red-800: var(--color-red-900, #7A271A);--p-green-400: var(--color-green-400, #32D583);--p-green-600: var(--color-green-700, #067647);--p-orange-400: var(--color-orange-400, #FDB022);--text: var(--color-text-primary, rgba(8, 14, 20, .88));--text-strong: var(--color-text-primary, #080E14);--text-2: var(--color-text-secondary, #51575E);--text-3: #8A9099;--text-disabled: var(--color-text-disabled, rgba(0, 13, 26, .42));--text-on-dark: var(--color-text-on-dark-primary, rgba(250, 250, 250, .97));--text-on-dark-2: var(--color-text-on-dark-secondary, rgba(250, 250, 250, .7));--border: var(--color-border-base, #D6D8DC);--border-strong: var(--color-border-high, #B8BCC2);--border-soft: #E9EAEC;--canvas: var(--color-background-subtle, #F1F2F3);--surface: var(--color-surface-raised, #FFFFFF);--surface-2: var(--color-surface-base, #FAFAFA);--surface-3: var(--color-surface-subtle, #F7F7F8);--focus: var(--color-accent-base, #0086C9);--focus-ring: var(--color-accent-alpha-high, rgba(0, 134, 201, .24));--link: var(--color-text-link, #026AA2);--hover: var(--color-blue-light-50, #F0F9FF);--ok: var(--color-green-500, #17B26A);--ok-bg: var(--color-feedback-success-surface, #ECFDF3);--ok-text: var(--color-feedback-success-text, #054F31);--ok-icon: var(--color-feedback-success-icon, #067647);--warn-dot: var(--color-feedback-warning-icon, #DC6803);--warn-bg: var(--color-feedback-warning-surface, #FFFAEB);--warn-text: var(--color-feedback-warning-text, #7A2E0E);--err: var(--color-red-500, #F04438);--err-dot: var(--color-feedback-error-icon, #B42318);--err-bg: var(--color-feedback-error-surface, #FEF3F2);--err-text: var(--color-feedback-error-text, #7A271A);--info: var(--color-blue-light-500, #0BA5EC);--info-bg: var(--color-feedback-info-surface, #F0F9FF);--info-text: var(--color-feedback-info-text, #0B4A6F);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--btn-primary: var(--brand-base, #FCCF3F);--btn-primary-hover: var(--brand-high, #E9BC2E);--btn-primary-active: var(--brand-highest, #D8AB29);--btn-ink: var(--button-color-text-primary, rgba(8, 14, 20, .88));--btn-secondary-fill: transparent;--btn-secondary-border: var(--button-color-border-secondary, #27292E);--btn-secondary-hover: var(--button-color-surface-secondary-hover, rgba(11,165,236,.1));--btn-secondary-active: var(--button-color-surface-secondary-active, rgba(11,165,236,.2));--btn-danger: var(--button-color-surface-danger-filled-default, #B42318);--btn-danger-hover: var(--button-color-surface-danger-filled-hover, #912018);--btn-danger-active: var(--button-color-surface-danger-filled-active, #7A271A);--btn-disabled: var(--button-color-surface-disabled, #F1F2F3);--sidebar: var(--side-menu-surface, #27292E);--sidebar-active: color-mix(in srgb, var(--side-menu-surface, #27292E) 75%, white 25%);--sidebar-hover: var(--color-neutral-750, #34363C);--sidebar-w: 248px;--header: var(--color-neutral-100, #F1F2F3);--r-xs: calc(var(--radius-s, 4) / 16 * 1rem);--r-sm: 6px;--r-md: calc(var(--radius-default, 8) / 16 * 1rem);--r-pill: calc(var(--radius-full-rounded, 9999) / 16 * 1rem);--shadow-1: 0 1px 2px var(--elevation-shadow-color-subtle, rgba(8, 14, 20, .06)), 0 1px 3px var(--elevation-shadow-color-main, rgba(8, 14, 20, .1));--shadow-pop: 0 12px 32px -8px var(--elevation-shadow-color-high, rgba(8, 14, 20, .24)), 0 2px 6px var(--elevation-shadow-color-subtle, rgba(8, 14, 20, .08))}*{margin:0;padding:0;box-sizing:border-box;font-family:var(--font-family-base)}body{font-size:.8125rem;line-height:1.55;letter-spacing:-.005em}app-sidebar{font-size:.875rem}button,input,select,textarea{font:inherit}.role-color--operario{--role-color: var(--color-role-operario);--role-color-bg: var(--color-role-operario-bg)}.role-color--administrador{--role-color: var(--color-role-administrador);--role-color-bg: var(--color-role-administrador-bg)}html{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}html.workshop-text{font-size:125%}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-md)}*::-webkit-scrollbar-thumb:hover{background-color:var(--color-accent-light)}:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.search-field{position:relative;display:flex;align-items:center}.search-field input{padding-left:32px}.search-field-icon{position:absolute;top:50%;left:var(--space-sm);transform:translateY(-50%);width:16px;height:16px;color:var(--color-text-placeholder);pointer-events:none}.icon-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-body);cursor:pointer;transition:background-color .15s ease}.icon-button:hover{background-color:var(--hover)}.icon-button-icon{width:14px;height:14px}.icon-button-icon--excel{width:20px;height:20px}.drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-sm);border:2px dashed var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-card);text-align:center;cursor:pointer;color:var(--color-text-label)}.drop:hover,.drop--active{border-color:var(--btn-primary)}.drop:focus-within{outline:2px solid var(--btn-primary);outline-offset:2px}.drop-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.drop-icon{width:24px;height:24px}.drop-hint{font-size:.75rem;font-weight:var(--font-weight-light);color:var(--color-text-body)}.file-list{list-style:none;margin:var(--space-sm) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.file-item{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.75rem}.file-item--error{border-color:var(--color-danger)}.file-name{order:1;flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font-weight:var(--font-weight-semibold);color:var(--color-text-label)}.file-item .icon-button{order:2}.file-detail{order:3;flex:1 1 100%;color:var(--color-danger)}@media(pointer:coarse){.btn{min-height:44px}.icon-button{width:40px;height:40px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:2px var(--space-md);border-radius:var(--r-pill);border:1px solid transparent;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;background:none;color:var(--btn-ink);transition:background-color .15s ease,border-color .15s ease,color .15s ease}.btn svg{width:14px;height:14px;flex-shrink:0}.btn.sm{padding:2px 12px;font-size:.75rem}.btn.lg{padding:var(--space-xs) var(--space-lg)}.btn.block{width:100%}.btn.primary{background-color:var(--btn-primary)}.btn.primary:hover{background-color:var(--btn-primary-hover)}.btn.primary:active{background-color:var(--btn-primary-active)}.btn.secondary{background-color:var(--btn-secondary-fill);border-color:var(--btn-secondary-border);color:var(--btn-ink)}.btn.secondary:hover{background-color:var(--btn-secondary-hover)}.btn.secondary:active{background-color:var(--btn-secondary-active)}.btn.danger{background-color:var(--btn-danger);color:#fafafa}.btn.danger:hover{background-color:var(--btn-danger-hover)}.btn.danger:active{background-color:var(--btn-danger-active)}.btn.danger-o{border-color:var(--p-red-700);color:var(--p-red-800)}.btn.danger-o:hover{background:var(--p-red-50)}.btn.ghost{color:var(--link);padding:0 var(--space-sm);text-transform:none;letter-spacing:normal}.btn.ghost:hover{background-color:var(--hover)}.btn:disabled,.btn:disabled:hover,.btn:disabled:active{background-color:var(--btn-disabled);color:var(--text-disabled);border-color:transparent;cursor:not-allowed}.ph{display:flex;align-items:flex-start;gap:16px;margin-bottom:8px}.ph>div:first-child{min-width:0}.ph :is(h1,h2){font-size:1.125rem;font-weight:600;margin:0;color:var(--text-strong)}.ph p{margin:4px 0 0;color:var(--text-2);font-size:.8125rem}.ph .actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:640px){.ph{flex-direction:column;align-items:stretch}.ph .actions{margin-left:0}}.page-header{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0;padding:var(--space-lg) var(--space-xl);background-color:var(--header);border-bottom:1px solid var(--color-border)}.page-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-heading);margin:0}.page-header p{margin:0;font-size:var(--font-size-sm);color:var(--text-2)}@media(max-width:640px){.page-header{padding:var(--space-lg) var(--space-md)}}.section-title{font-size:.875rem;font-weight:600;color:var(--text-strong);margin:0 0 12px;display:flex;align-items:center;gap:8px}.muted{color:var(--text-2)}.small{font-size:.6875rem}.strong{font-weight:600;color:var(--text-strong)}.toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.toolbar .r{margin-left:auto;display:flex;gap:var(--space-md);align-items:center;flex:none}@media(max-width:640px){.toolbar .r{width:100%;margin-left:0;justify-content:space-between;flex-wrap:wrap}.toolbar .r .btn{flex:1 1 auto}}.table-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.table-bar-filters{flex:1 1 0;min-width:0}.table-bar-actions{display:flex;align-items:center;gap:var(--space-sm);flex:none;margin-left:auto}@media(max-width:640px){.table-bar{flex-direction:column;align-items:stretch}.table-bar-filters{flex:none}.table-bar-actions{margin-left:0;flex-wrap:wrap}.table-bar-actions .btn{flex:1 1 auto}}.page{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg) var(--space-xl) var(--space-xl)}.page>app-tab-nav,.page>.project-list-phase-tabs{margin-bottom:calc(var(--space-lg) - var(--space-md))}.page>router-outlet.tab-outlet{display:none}@media(max-width:640px){.page{padding:var(--space-lg) var(--space-md);gap:var(--space-lg)}.page>app-tab-nav,.page>.project-list-phase-tabs{margin-bottom:0}}.tab-indicator-host{position:relative}.tab-indicator{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--color-primary);opacity:0;transition:transform .28s var(--ease),width .28s var(--ease),opacity .15s var(--ease);pointer-events:none}@media(prefers-reduced-motion:reduce){.tab-indicator{transition:opacity .15s var(--ease)}}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;margin-left:var(--space-sm);padding:0 6px;border-radius:var(--r-pill);background:var(--p-grey-150);color:var(--color-text-body);font-size:.6875rem;font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;transition:background-color .2s var(--ease),color .2s var(--ease)}.active>.tab-count{background:var(--color-focus-shadow);color:var(--color-primary)}@keyframes tabContentIn{0%{opacity:0;transform:translateY(4px)}}:where(router-outlet.tab-outlet+*){display:block}router-outlet.tab-outlet+*{animation:tabContentIn .24s var(--ease)}@media(prefers-reduced-motion:reduce){router-outlet.tab-outlet+*{animation:none}}.toolbar-filter{flex:1 1 140px;min-width:130px;max-width:200px}.toolbar-filter--search{flex:1 1 180px;min-width:160px;max-width:280px}@media(max-width:640px){.toolbar-filter,.toolbar-filter--search{flex:none;width:100%;min-width:0;max-width:none}}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-xs)}.toolbar .search-field input{padding-top:6px;padding-bottom:6px;padding-right:var(--space-sm);border-radius:var(--r-sm);border:1px solid var(--color-border);background-color:var(--color-bg-card);color:var(--color-text-label);font-size:.75rem;width:100%;transition:border-color .2s ease,box-shadow .2s ease}.toolbar .search-field input:focus-visible{outline:2px solid transparent;border-color:var(--color-focus-border);box-shadow:0 0 0 3px var(--color-focus-ring)}.toolbar .search-field input::placeholder{color:var(--color-text-placeholder)}.tbl-wrap{border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);overflow-x:auto;container-type:inline-size}.tbl-wrap+app-pagination{display:block;margin-top:var(--space-md)}.page>.tbl-wrap+app-pagination{margin-top:0}table.tbl{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.tbl th{position:relative;background:var(--surface-3);text-align:left;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);padding:10px 16px;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);white-space:nowrap}.tbl th:last-child,.tbl td:last-child{border-right:0}.tbl th.n,.tbl td.n{text-align:right}.tbl th.c,.tbl td.c{text-align:center}.tbl td{padding:8px 16px;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);vertical-align:middle;color:var(--text)}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr:nth-child(2n) td{background:var(--surface-2)}.tbl tbody tr:hover td{background:var(--p-blue-100)}.tbl td .icon-button:hover,.tbl td .btn.ghost:hover{background-color:var(--p-blue-200)}.tbl td .icon-button--danger:hover{color:var(--color-danger);background-color:var(--danger-soft)}.tbl tbody tr.clickable{cursor:pointer}.tbl td.em{font-weight:700;color:var(--text-strong)}.tbl td .sub{display:block;font-size:.6875rem;color:var(--text-2);font-weight:400;margin-top:2px}.tbl td.tbl-empty{padding:var(--space-2xl) var(--space-lg);text-align:center;color:var(--text-2);font-size:.75rem}.tbl td.tbl-empty>app-spinner,.tbl td.tbl-empty>app-empty-state{position:sticky;left:var(--space-lg);width:calc(100cqw - 2 * var(--space-lg))}app-spinner,app-empty-state{display:block;padding:var(--space-xl) var(--space-md);text-align:center}.card:has(>.card-b>app-empty-state:only-child),.card:has(>.card-b>app-spinner:only-child){display:flex;flex-direction:column}.card>.card-b:has(>app-empty-state:only-child),.card>.card-b:has(>app-spinner:only-child){flex:1;display:flex;flex-direction:column;justify-content:center}.tbl-empty app-spinner,.tbl-empty app-empty-state,.project-milestones-empty app-empty-state,.project-material-categories-empty app-empty-state{padding:0}.tbl.fixed{table-layout:fixed;max-width:none}.tbl.fixed td,.tbl.fixed th{overflow:hidden;text-overflow:ellipsis}.tbl.fixed td{white-space:nowrap}.tbl.fixed td .sub,.tbl.fixed td .line-meta,.tbl.fixed td .furniture-meta{overflow:hidden;text-overflow:ellipsis}.tbl.fixed td .tag{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;line-height:20px;vertical-align:middle}.tbl.fixed td .st{display:block;overflow:hidden;text-overflow:ellipsis}.tbl.fixed td .st:before{display:inline-block;vertical-align:middle;margin:-1px 6px 0 0}.tbl.fixed th .th-l{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.tbl.fixed th .th-l:has(+.th-sort){max-width:calc(100% - 12px)}.tbl th[data-col-key]{cursor:grab;-webkit-user-select:none;user-select:none}.tbl th.th-drag{opacity:.35}.th-sort{display:inline-block;margin-left:4px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid var(--text-2);vertical-align:middle}.th-sort.desc{border-bottom:none;border-top:5px solid var(--text-2)}.th-rs{position:absolute;right:-4px;top:0;bottom:0;width:9px;cursor:col-resize;z-index:var(--z-raised)}.th-rs:after{content:"";position:absolute;left:4px;top:22%;bottom:22%;width:2px;border-radius:1px;background:var(--p-blue-500);opacity:0;transition:opacity .15s}.tbl th:hover .th-rs:after,.th-rs:hover:after{opacity:.8}.tbl th[data-col-key]:last-child .th-rs{right:0}body.colrs,body.colrs *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}body.coldrag,body.coldrag *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.th-ghost{position:fixed;z-index:var(--z-drag-ghost);pointer-events:none;display:flex;align-items:center;padding:0 16px;background:var(--surface);border:1px solid var(--focus);border-radius:var(--r-xs);box-shadow:0 12px 28px -8px #080e1452;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-strong);transform:rotate(-1deg)}.th-ind{position:fixed;z-index:var(--z-drag-indicator);pointer-events:none;width:3px;border-radius:2px;background:var(--focus)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{height:24px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--surface);font-size:.75rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--text)}.chip:hover:not(:disabled){background:var(--hover)}.chip:disabled{opacity:.6;cursor:not-allowed}.chip.on{border:2px solid var(--focus);background:var(--p-blue-50);padding:0 13px;font-weight:600}.chip .c{font-size:.6875rem;color:var(--text-2);font-weight:600}.backlink{display:inline-flex;align-items:center;gap:4px;color:var(--link);font-weight:600;font-size:.75rem;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px;line-height:1.3}.backlink:hover{color:var(--p-blue-900)}.backlink-icon{width:14px;height:14px;flex-shrink:0}.tag{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--r-xs);font-size:.6875rem;font-weight:600;background:var(--surface-3);color:var(--text-2)}.tag.ok{background:var(--ok-bg);color:var(--ok-text)}.tag.warn{background:var(--warn-bg);color:var(--warn-text)}.tag.err{background:var(--err-bg);color:var(--err-text)}.tag.info{background:var(--info-bg);color:var(--info-text)}.st{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--text-strong)}.st:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--p-grey-400)}.st.ok:before{background:var(--ok-icon)}.st.warn:before{background:var(--warn-dot)}.st.err:before{background:var(--err-dot)}.st.info:before{background:var(--p-blue-600)}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:480px){.g2{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-md);box-shadow:var(--shadow-1)}.card-h{padding:16px 24px 0;display:flex;align-items:center;gap:8px}.card-h h3{margin:0;font-size:.875rem;font-weight:600;color:var(--text-strong)}.card-h .r{margin-left:auto}.card-b{padding:16px 24px}.card-b--flush{padding:8px 0 0}.card-f{margin-top:auto;display:flex;padding:12px 16px;border-top:1px solid var(--border-soft)}.dgrid{margin-bottom:24px;align-items:stretch}.page .dgrid{margin-bottom:var(--space-sm)}.dgrid .card{display:flex;flex-direction:column;height:100%}.dgrid .card>.card-b{flex:1;display:flex;flex-direction:column}.dgrid .card>.card-b>.banner{margin-top:auto;margin-bottom:0}.sp-form{display:flex;flex-direction:column;gap:20px}.sp-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:480px){.sp-row{grid-template-columns:minmax(0,1fr)}}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-1);margin-bottom:24px}.page .kpis{margin-bottom:var(--space-sm)}.kpi{padding:16px 20px;border-right:1px solid var(--border-soft)}.kpi:last-child{border-right:0}.kpi-l{font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2)}.kpi-v{font-size:1.125rem;white-space:nowrap;font-weight:600;color:var(--text-strong);margin-top:6px;letter-spacing:-.01em}.kpi-s{font-size:.6875rem;color:var(--text-2);margin-top:2px}.kpi-s.up{color:var(--ok-text)}.kpi-s.down{color:var(--err-text)}.banner{display:flex;align-items:center;gap:12px;padding:8px 16px;border-radius:var(--r-sm);border:1px solid;font-size:.75rem;margin-bottom:16px}.banner.ok{background:var(--ok-bg);border-color:var(--p-green-400);color:var(--ok-text)}.banner.warn{background:var(--warn-bg);border-color:var(--p-orange-400);color:var(--warn-text)}.banner.err{background:var(--err-bg);border-color:var(--err);color:var(--err-text)}.banner.info{background:var(--info-bg);border-color:var(--info);color:var(--info-text)}.banner .r{margin-left:auto;display:flex;gap:8px}.role-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--radius-pill);background-color:var(--role-color-bg, var(--color-focus-shadow));color:var(--role-color, var(--color-text-label));font-size:.75rem;font-weight:var(--font-weight-semibold)}.progress-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:var(--font-weight-semibold);white-space:nowrap}.progress-meter{display:inline-flex;align-items:center;gap:var(--space-sm);max-width:100%}.progress-meter-track{width:200px;max-width:100%;height:6px;flex-shrink:1;border-radius:var(--radius-pill);background-color:var(--border);overflow:hidden}.progress-meter-fill{height:100%;border-radius:var(--radius-pill);transition:width .2s ease,background-color .2s ease}.progress-meter-label{font-size:.75rem;font-weight:var(--font-weight-semibold);color:var(--color-text-label);white-space:nowrap}.kv-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.kv-label{font-size:.75rem;color:var(--color-text-body)}.kv-value{font-size:.75rem;font-weight:var(--font-weight-semibold);color:var(--color-text-label);text-align:right}.field-required{color:var(--color-danger)}.marks-invalid app-select.ng-invalid.ng-touched .select-trigger,.marks-invalid app-date-picker.ng-invalid.ng-touched .date-picker-trigger,.marks-invalid app-autocomplete.ng-invalid.ng-touched .autocomplete-input,.marks-invalid app-password-field.ng-invalid.ng-touched .input-wrapper>input,.marks-invalid .form-field input.ng-invalid.ng-touched,.marks-invalid .form-field textarea.ng-invalid.ng-touched{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-ring)}.sidepanel-overlay{display:none;position:fixed;inset:0;background:var(--overlay);z-index:var(--z-overlay)}.sidepanel-overlay.open,.sidepanel-overlay.closing{display:block}.sidepanel-overlay.open{animation:sidepanelOverlayIn .24s var(--ease)}.sidepanel-overlay.closing{animation:sidepanelOverlayOut .22s var(--ease) forwards}.sidepanel{position:absolute;top:0;right:0;bottom:0;width:min(480px,100vw);background-color:var(--color-bg-card);box-shadow:-16px 0 40px -12px #080e1440;overflow-y:auto;padding:var(--space-lg);animation:sidepanelIn .3s var(--ease)}.sidepanel-overlay.closing .sidepanel{animation:sidepanelOut .22s var(--ease) forwards}@keyframes sidepanelOverlayIn{0%{opacity:0}}@keyframes sidepanelOverlayOut{to{opacity:0}}@keyframes sidepanelIn{0%{transform:translate(100%)}}@keyframes sidepanelOut{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.sidepanel-overlay.open,.sidepanel-overlay.closing,.sidepanel-overlay.open .sidepanel,.sidepanel-overlay.closing .sidepanel{animation:none}}@media(max-width:640px){.sidepanel{padding:var(--space-lg) var(--space-md)}}.sidepanel .form-container{min-height:100%}.sidepanel .form{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-md);margin-top:auto}.sidepanel .form-header{margin-left:calc(-1 * var(--space-lg));margin-right:calc(-1 * var(--space-lg));padding-left:var(--space-lg);padding-right:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border-soft)}.sidepanel .modal-actions{margin-left:calc(-1 * var(--space-lg));margin-right:calc(-1 * var(--space-lg));padding-left:var(--space-lg);padding-right:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border-soft)}.modal-actions .delete-action,.modal-actions .status-action,.modal-actions .status-actions{margin-right:auto}@media(max-width:640px){.sidepanel .form-header,.sidepanel .modal-actions{margin-left:calc(-1 * var(--space-md));margin-right:calc(-1 * var(--space-md));padding-left:var(--space-md);padding-right:var(--space-md)}}.form-container{display:flex;flex-direction:column;gap:var(--space-md)}.form-header{display:flex;flex-direction:column;gap:var(--space-xs)}.form-title{font-size:1.125rem;font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.form-header p{font-weight:var(--font-weight-light);font-size:.75rem;color:var(--color-text-body)}.form{display:flex;flex-direction:column;gap:var(--space-xl)}.form-inputs{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-lg) var(--space-md)}.form-inputs--2col{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:480px){.form-inputs--2col{grid-template-columns:minmax(0,1fr)}}.field-hint{margin:6px 0 0;font-size:.6875rem;color:var(--text-2)}.form-field{display:flex;flex-direction:column;gap:var(--space-xs)}.form-field--full{grid-column:1 / -1}.form-field>label{font-weight:var(--font-weight-semibold);font-size:.75rem;color:var(--color-text-label)}.form-field>input:where(:not([type=file])),.form-field .input-wrapper>input,.form-field>textarea{width:100%;padding:6px var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);font-family:inherit;font-size:.75rem;transition:border-color .2s ease,box-shadow .2s ease}.form-field>input:where(:not([type=file])),.form-field .input-wrapper>input{height:var(--form-control-height)}.form-field>textarea{resize:vertical}.form-field>input:focus,.form-field>input:active,.form-field .input-wrapper>input:focus,.form-field .input-wrapper>input:active,.form-field>textarea:focus,.form-field>textarea:active{outline:2px solid transparent;border-color:var(--color-focus-border);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-field>input::placeholder,.form-field .input-wrapper>input::placeholder,.form-field>textarea::placeholder{font-weight:var(--font-weight-light);font-size:.75rem;color:var(--color-text-placeholder)}.input-wrapper{position:relative;display:flex;align-items:center}.form-field .input-wrapper>input{padding-right:32px}.form-field .input-wrapper--leading>input{padding-left:32px}.input-icon{position:absolute;top:50%;left:var(--space-sm);transform:translateY(-50%);width:16px;height:16px;color:var(--color-text-placeholder);pointer-events:none}.input-action{position:absolute;right:var(--space-sm);top:0;bottom:0;margin:auto 0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-body);cursor:pointer;transition:background-color .15s ease}.input-action:hover{background-color:var(--color-hover)}.input-action:after{content:"";position:absolute;inset:-8px}.input-action-icon{width:16px;height:16px}
