@charset "UTF-8";html{color-scheme:light;--mat-sys-background: #fef8fc;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f5eff4;--mat-sys-inverse-primary: #d5baff;--mat-sys-inverse-surface: #323033;--mat-sys-on-background: #1d1b1e;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #5f00c0;--mat-sys-on-primary-fixed: #270057;--mat-sys-on-primary-fixed-variant: #5f00c0;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #4b4357;--mat-sys-on-secondary-fixed: #1f182a;--mat-sys-on-secondary-fixed-variant: #4b4357;--mat-sys-on-surface: #1d1b1e;--mat-sys-on-surface-variant: #49454e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #00458f;--mat-sys-on-tertiary-fixed: #001b3f;--mat-sys-on-tertiary-fixed-variant: #00458f;--mat-sys-outline: #7b757f;--mat-sys-outline-variant: #cbc4cf;--mat-sys-primary: #7d00fa;--mat-sys-primary-container: #ecdcff;--mat-sys-primary-fixed: #ecdcff;--mat-sys-primary-fixed-dim: #d5baff;--mat-sys-scrim: #000000;--mat-sys-secondary: #645b70;--mat-sys-secondary-container: #eadef7;--mat-sys-secondary-fixed: #eadef7;--mat-sys-secondary-fixed-dim: #cec2db;--mat-sys-shadow: #000000;--mat-sys-surface: #fef8fc;--mat-sys-surface-bright: #fef8fc;--mat-sys-surface-container: #f2ecf1;--mat-sys-surface-container-high: #ede6eb;--mat-sys-surface-container-highest: #e6e1e6;--mat-sys-surface-container-low: #f8f2f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #ded8dd;--mat-sys-surface-tint: #7d00fa;--mat-sys-surface-variant: #e8e0eb;--mat-sys-tertiary: #005cbb;--mat-sys-tertiary-container: #d7e3ff;--mat-sys-tertiary-fixed: #d7e3ff;--mat-sys-tertiary-fixed-dim: #abc7ff;--mat-sys-neutral-variant20: #332f37;--mat-sys-neutral10: #1d1b1e;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-body-large-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-body-medium-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-body-small-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-display-large-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-display-medium-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-display-small-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-headline-large-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-headline-medium-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-headline-small-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-label-large-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-label-medium-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-label-small-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-title-large-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-title-medium-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-title-small-font: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root{--primary: var(--mat-sys-primary);--primary-hover: color-mix(in srgb, var(--mat-sys-primary) 88%, var(--mat-sys-on-primary));--primary-elevated: var(--mat-sys-primary);--primary-light: var(--mat-sys-primary-container);--primary-muted: color-mix(in srgb, var(--mat-sys-primary) 45%, var(--mat-sys-surface));--accent: var(--mat-sys-tertiary);--accent-dark: color-mix(in srgb, var(--mat-sys-tertiary) 78%, var(--mat-sys-on-surface));--success: #16a34a;--success-light: #f0fdf4;--success-rgb: 22, 163, 74;--warning: #f59e0b;--warning-light: #fffbeb;--warning-text: #92400e;--warning-rgb: 245, 158, 11;--danger: var(--mat-sys-error);--danger-light: var(--mat-sys-error-container);--danger-rgb: 220, 38, 38;--primary-rgb: 124, 58, 237;--text-muted-rgb: 107, 114, 128;--info: #0e7490;--info-light: #ecfeff;--tint-accent-bg: #dbeafe;--tint-warning-bg: #fef3c7;--tint-info-bg: #cffafe;--tint-primary-bg: #ede9fe;--tint-success-bg: #d1fae5;--tint-danger-bg: #fee2e2;--success-vivid: #22c55e;--success-highlight: #4ade80;--danger-vivid: #ef4444;--danger-highlight: #f87171;--accent-vivid: #3b82f6;--primary-border-soft: #c4b5fd;--primary-highlight-soft: #b79bf8;--text-subtle: #94a3b8;--text-slate-dark: #334155;--success-on-mint: #166534;--tint-success-strong: #dcfce7;--border-danger-soft: #fecaca;--border-danger-mid: #fca5a5;--border-success-soft: #bbf7d0;--snackbar-warn-bg: #c2410c;--warning-strong: #d97706;--tint-orange-wash: #fff7ed;--orange-strong: #ea580c;--tint-blue-soft: #eff6ff;--accent-sky: #93c5fd;--tint-indigo-soft: #e0e7ff;--tint-emerald-hint: #ecfdf5;--success-emerald-700: #047857;--success-emerald-600: #059669;--success-pale: #86efac;--tint-violet-wash: #f3e8ff;--warning-border-wash: #fde68a;--warning-amber-text: #b45309;--accent-border-muted: #bfdbfe;--accent-text-dark: #1e40af;--danger-text-dark: #991b1b;--primary-border-wash: #ddd6fe;--material-blue-50: #e3f2fd;--border-slate: #cbd5e1;--border-gray-200: #e5e7eb;--tint-calendar-today: #fff3e0;--sky-gradient-start: #0ea5e9;--sky-gradient-end: #38bdf8;--tint-sky-wash-start: #f0f9ff;--tint-sky-wash-end: #e0f2fe;--border-sky-soft: #bae6fd;--text-sky-dark: #0369a1;--emerald-500: #10b981;--sky-700: #0284c7;--gray-600: #4b5563;--slate-600: #475569;--bg-wash: #fafbfc;--scrollbar-track: #f1f1f1;--scrollbar-thumb: #c1c1c1;--scrollbar-thumb-hover: #a1a1a1;--calendar-badge-purple: #9c27b0;--calendar-badge-orange: #ff9800;--calendar-badge-red: #f44336;--calendar-badge-blue: #2196f3;--calendar-badge-deep-orange: #ff5722;--task-priority-urgent: #312e81;--task-priority-high: #4c1d95;--task-priority-medium: #92400e;--task-priority-low: #14532d;--task-priority-none: #374151;--cyan-500: #06b6d4;--cyan-600: #0891b2;--cyan-300: #22d3ee;--indigo-50: #eef2ff;--indigo-600: #4f46e5;--indigo-700: #4338ca;--indigo-800: #3730a3;--danger-muted-red-bg: #ffebee;--danger-deep: #c62828;--border-mint-soft: #a7f3d0;--border-mint-mid: #6ee7b7;--ceiling-dark-bg: #0f172a;--ceiling-dark-surface: #1e293b;--ceiling-dark-border: #334155;--ceiling-dark-muted: #475569;--ceiling-dark-text-soft: #94a3b8;--ceiling-dark-text: #e2e8f0;--ceiling-dark-sky: #38bdf8;--ceiling-dark-mint: #34d399;--ceiling-dark-rose: #f87171;--ceiling-dark-text-bright: #f1f5f9;--ceiling-dark-mint-bright: #6ee7b7;--bg-primary: var(--mat-sys-surface);--bg-secondary: var(--mat-sys-background);--bg-tertiary: var(--mat-sys-surface-container);--bg-sidebar: #0f172a;--text-primary: var(--mat-sys-on-surface);--text-secondary: var(--mat-sys-on-surface-variant);--text-muted: var(--mat-sys-on-surface-variant);--text-inverse: var(--mat-sys-on-primary);--border: var(--mat-sys-outline-variant);--border-light: var(--mat-sys-surface-container-highest);--border-color: var(--mat-sys-outline-variant);--shadow-sm: 0 1px 2px color-mix(in srgb, var(--mat-sys-shadow) 8%, transparent);--shadow-md: 0 4px 12px color-mix(in srgb, var(--mat-sys-shadow) 12%, transparent);--shadow-lg: 0 10px 24px color-mix(in srgb, var(--mat-sys-shadow) 16%, transparent);--sp-1: var(--mat-sys-corner-extra-small);--sp-2: calc(2 * var(--mat-sys-corner-extra-small));--sp-3: calc(3 * var(--mat-sys-corner-extra-small));--sp-4: calc(4 * var(--mat-sys-corner-extra-small));--sp-5: calc(5 * var(--mat-sys-corner-extra-small));--sp-6: calc(6 * var(--mat-sys-corner-extra-small));--sp-8: calc(8 * var(--mat-sys-corner-extra-small));--radius-sm: var(--mat-sys-corner-small);--radius-md: var(--mat-sys-corner-medium);--radius-lg: var(--mat-sys-corner-large);--radius-xl: var(--mat-sys-corner-extra-large);--radius-full: var(--mat-sys-corner-full);--font-family: var(--mat-sys-body-large-font);--fs-xs: var(--mat-sys-body-small-size);--fs-sm: var(--mat-sys-body-medium-size);--fs-base: var(--mat-sys-body-large-size);--fs-md: var(--mat-sys-title-medium-size);--fs-lg: var(--mat-sys-title-large-size);--fs-xl: var(--mat-sys-headline-small-size);--fs-2xl: var(--mat-sys-headline-medium-size);--fw-normal: var(--mat-sys-body-large-weight);--fw-medium: var(--mat-sys-label-large-weight);--fw-semibold: 600;--fw-bold: var(--mat-sys-label-large-weight-prominent);--fw-extrabold: 800;--sidebar-width: 260px;--topbar-height: 64px;--topbar-height-mobile: 48px;--page-max-width: 1400px;--page-padding: 24px;--content-gap: 16px;--z-base: 0;--z-raised: 1;--z-sticky: 10;--z-dropdown: 100;--z-overlay: 1000;--z-ceiling-canvas: 10000;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--border-radius: var(--radius-sm);--shadow: var(--shadow-sm)}.btn,.save-btn,.assign-measurement-btn,.create-btn,.mia-submit,.send-btn,.action-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0 var(--sp-5);min-height:44px;background:var(--primary);color:var(--text-inverse);box-shadow:none}.btn mat-icon,.save-btn mat-icon,.assign-measurement-btn mat-icon,.create-btn mat-icon,.mia-submit mat-icon,.send-btn mat-icon,.action-btn mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn:disabled,.save-btn:disabled,.assign-measurement-btn:disabled,.create-btn:disabled,.mia-submit:disabled,.send-btn:disabled,.action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn:hover:not(:disabled),.save-btn:hover:not(:disabled),.assign-measurement-btn:hover:not(:disabled),.create-btn:hover:not(:disabled),.mia-submit:hover:not(:disabled),.send-btn:hover:not(:disabled),.action-btn:hover:not(:disabled){background:var(--primary-hover);box-shadow:none}.btn:active:not(:disabled),.save-btn:active:not(:disabled),.assign-measurement-btn:active:not(:disabled),.create-btn:active:not(:disabled),.mia-submit:active:not(:disabled),.send-btn:active:not(:disabled),.action-btn:active:not(:disabled){transform:scale(.97)}.btn.btn-lg,.btn-lg.save-btn,.btn-lg.assign-measurement-btn,.btn-lg.create-btn,.btn-lg.mia-submit,.btn-lg.send-btn,.btn-lg.action-btn{padding:0 28px;min-height:52px;font-size:16px}.btn.btn-lg mat-icon,.btn-lg.save-btn mat-icon,.btn-lg.assign-measurement-btn mat-icon,.btn-lg.create-btn mat-icon,.btn-lg.mia-submit mat-icon,.btn-lg.send-btn mat-icon,.btn-lg.action-btn mat-icon{font-size:20px;width:20px;height:20px}.btn.btn-sm,.btn-sm.save-btn,.btn-sm.assign-measurement-btn,.btn-sm.create-btn,.btn-sm.mia-submit,.btn-sm.send-btn,.btn-sm.action-btn{padding:0 14px;min-height:36px;font-size:13px}.btn.btn-sm mat-icon,.btn-sm.save-btn mat-icon,.btn-sm.assign-measurement-btn mat-icon,.btn-sm.create-btn mat-icon,.btn-sm.mia-submit mat-icon,.btn-sm.send-btn mat-icon,.btn-sm.action-btn mat-icon{font-size:16px;width:16px;height:16px}.btn.btn-icon-only,.btn-icon-only.save-btn,.btn-icon-only.assign-measurement-btn,.btn-icon-only.create-btn,.btn-icon-only.mia-submit,.btn-icon-only.send-btn,.btn-icon-only.action-btn{padding:0;width:44px;height:44px}.btn-secondary,.ub-btn,.upload-btn,.header-btn,.tool-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0 20px;min-height:44px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light)}.btn-secondary mat-icon,.ub-btn mat-icon,.upload-btn mat-icon,.header-btn mat-icon,.tool-btn mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn-secondary:disabled,.ub-btn:disabled,.upload-btn:disabled,.header-btn:disabled,.tool-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-secondary:active:not(:disabled),.ub-btn:active:not(:disabled),.upload-btn:active:not(:disabled),.header-btn:active:not(:disabled),.tool-btn:active:not(:disabled){transform:scale(.97)}.btn-secondary:hover:not(:disabled),.ub-btn:hover:not(:disabled),.upload-btn:hover:not(:disabled),.header-btn:hover:not(:disabled),.tool-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent)}.btn-secondary.btn-sm,.btn-sm.ub-btn,.btn-sm.upload-btn,.btn-sm.header-btn,.btn-sm.tool-btn{padding:0 14px;min-height:36px}.btn-secondary.btn-icon-only,.btn-icon-only.ub-btn,.btn-icon-only.upload-btn,.btn-icon-only.header-btn,.btn-icon-only.tool-btn{padding:0;width:44px;height:44px}.btn-success,.mark-paid-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0 20px;min-height:44px;background:var(--success);color:var(--text-inverse);box-shadow:none}.btn-success mat-icon,.mark-paid-btn mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn-success:disabled,.mark-paid-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-success:active:not(:disabled),.mark-paid-btn:active:not(:disabled){transform:scale(.97)}.btn-success:hover:not(:disabled),.mark-paid-btn:hover:not(:disabled){background:var(--success-emerald-700);box-shadow:none}.btn-success mat-icon,.mark-paid-btn mat-icon{font-size:18px;width:18px;height:18px}.btn-success.btn-sm,.btn-sm.mark-paid-btn{padding:0 14px;min-height:36px}.btn-success.btn-icon-only,.btn-icon-only.mark-paid-btn{padding:0;width:44px;height:44px}.crm-mat-filled-success.mat-mdc-unelevated-button{--mdc-filled-button-container-color: var(--success);--mdc-filled-button-label-text-color: var(--text-inverse);--mdc-filled-button-disabled-container-color: color-mix( in srgb, var(--success) 42%, var(--mat-sys-surface) );--mdc-filled-button-disabled-label-text-color: var(--text-inverse)}.crm-mat-filled-success.mat-mdc-unelevated-button mat-spinner{--mdc-circular-progress-active-indicator-color: var(--text-inverse)}.crm-mat-filled-success--full-width{width:100%}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0 20px;min-height:44px;background:var(--danger);color:var(--text-inverse);box-shadow:none}.btn-danger mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn-danger:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-danger:active:not(:disabled){transform:scale(.97)}.btn-danger:hover:not(:disabled){background:var(--danger-deep);box-shadow:none}.btn-danger mat-icon{font-size:18px;width:18px;height:18px}.btn-danger.btn-sm{padding:0 14px;min-height:36px}.btn-danger.btn-icon-only{padding:0;width:44px;height:44px}.btn-ghost,.tool-palette-btn,.cancel-btn,.back-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0 20px;min-height:44px;background:transparent;color:var(--text-secondary)}.btn-ghost mat-icon,.tool-palette-btn mat-icon,.cancel-btn mat-icon,.back-btn mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn-ghost:disabled,.tool-palette-btn:disabled,.cancel-btn:disabled,.back-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-ghost:active:not(:disabled),.tool-palette-btn:active:not(:disabled),.cancel-btn:active:not(:disabled),.back-btn:active:not(:disabled){transform:scale(.97)}.btn-ghost:hover:not(:disabled),.tool-palette-btn:hover:not(:disabled),.cancel-btn:hover:not(:disabled),.back-btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.btn-ghost.btn-sm,.btn-sm.tool-palette-btn,.btn-sm.cancel-btn,.btn-sm.back-btn{padding:0 14px;min-height:36px}.btn-ghost.btn-icon-only,.btn-icon-only.tool-palette-btn,.btn-icon-only.cancel-btn,.btn-icon-only.back-btn{padding:0;width:44px;height:44px}.btn-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:8px 16px;min-height:36px;background:transparent;color:var(--accent);border:none}.btn-link mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn-link:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-link:active:not(:disabled){transform:scale(.97)}.btn-link:hover:not(:disabled){color:var(--accent-dark);background:var(--tint-accent-bg)}.btn-link mat-icon{font-size:16px;width:16px;height:16px}.btn-icon,.zoom-float-btn,.room-chip-btn,.dlg-close,.po-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0;width:44px;height:44px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light)}.btn-icon mat-icon,.zoom-float-btn mat-icon,.room-chip-btn mat-icon,.dlg-close mat-icon,.po-btn mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn-icon:disabled,.zoom-float-btn:disabled,.room-chip-btn:disabled,.dlg-close:disabled,.po-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-icon:active:not(:disabled),.zoom-float-btn:active:not(:disabled),.room-chip-btn:active:not(:disabled),.dlg-close:active:not(:disabled),.po-btn:active:not(:disabled){transform:scale(.97)}.btn-icon:hover:not(:disabled),.zoom-float-btn:hover:not(:disabled),.room-chip-btn:hover:not(:disabled),.dlg-close:hover:not(:disabled),.po-btn:hover:not(:disabled){background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.btn-icon.btn-sm,.btn-sm.zoom-float-btn,.btn-sm.room-chip-btn,.btn-sm.dlg-close,.btn-sm.po-btn{width:36px;height:36px}.btn-icon.btn-sm mat-icon,.btn-sm.zoom-float-btn mat-icon,.btn-sm.room-chip-btn mat-icon,.btn-sm.dlg-close mat-icon,.btn-sm.po-btn mat-icon{font-size:16px;width:16px;height:16px}.btn-icon.btn-lg,.btn-lg.zoom-float-btn,.btn-lg.room-chip-btn,.btn-lg.dlg-close,.btn-lg.po-btn{width:52px;height:52px}.btn-icon.btn-lg mat-icon,.btn-lg.zoom-float-btn mat-icon,.btn-lg.room-chip-btn mat-icon,.btn-lg.dlg-close mat-icon,.btn-lg.po-btn mat-icon{font-size:22px;width:22px;height:22px}.btn-fab{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:56px;height:56px;border-radius:16px;background:var(--accent);color:var(--text-inverse);box-shadow:none}.btn-fab mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.btn-fab:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-fab:active:not(:disabled){transform:scale(.97)}.btn-fab:hover:not(:disabled){background:var(--accent-dark);box-shadow:none;transform:scale(1.02)}.btn-fab mat-icon{font-size:24px;width:24px;height:24px}.btn-fab.btn-sm{width:44px;height:44px}.btn-fab.btn-sm mat-icon{font-size:18px;width:18px;height:18px}.mat-mdc-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button,.mat-mdc-outlined-button,.mat-tonal-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family, inherit);font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.4;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all var(--transition-base);box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;min-height:44px;padding:0 20px;border-radius:var(--radius-md)!important;font-weight:600!important;box-shadow:none!important}.mat-mdc-button mat-icon,.mat-mdc-raised-button mat-icon,.mat-mdc-unelevated-button mat-icon,.mat-mdc-outlined-button mat-icon,.mat-tonal-button mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.mat-mdc-button:disabled,.mat-mdc-raised-button:disabled,.mat-mdc-unelevated-button:disabled,.mat-mdc-outlined-button:disabled,.mat-tonal-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.mat-mdc-button:active:not(:disabled),.mat-mdc-raised-button:active:not(:disabled),.mat-mdc-unelevated-button:active:not(:disabled),.mat-mdc-outlined-button:active:not(:disabled),.mat-tonal-button:active:not(:disabled){transform:scale(.97)}.mat-mdc-unelevated-button.mat-primary,.mat-mdc-raised-button.mat-primary{background:var(--primary)!important;color:var(--text-inverse)!important;box-shadow:none!important}.mat-mdc-unelevated-button.mat-primary:hover:not(:disabled),.mat-mdc-raised-button.mat-primary:hover:not(:disabled){background:var(--primary-hover)!important;box-shadow:none!important}.mat-mdc-button.mat-primary:not(.mat-mdc-outlined-button):not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button){background:transparent!important;color:var(--primary)!important;box-shadow:none!important}.mat-mdc-button.mat-primary:not(.mat-mdc-outlined-button):not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):hover:not(:disabled){background:color-mix(in srgb,var(--primary) 10%,transparent)!important}.mat-mdc-outlined-button.mat-primary{color:var(--primary)!important;border-color:var(--primary)!important;box-shadow:none!important}.mat-mdc-outlined-button.mat-primary:hover:not(:disabled){background:var(--primary-light)!important}.mat-mdc-unelevated-button.mat-warn,.mat-mdc-raised-button.mat-warn{background:var(--danger)!important;color:var(--text-inverse)!important;box-shadow:none!important}.mat-mdc-unelevated-button.mat-warn:hover:not(:disabled),.mat-mdc-raised-button.mat-warn:hover:not(:disabled){background:var(--danger-deep)!important;box-shadow:none!important}.mat-mdc-button.mat-warn:not(.mat-mdc-outlined-button):not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button){background:transparent!important;color:var(--danger)!important;box-shadow:none!important}.mat-mdc-button.mat-warn:not(.mat-mdc-outlined-button):not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):hover:not(:disabled){background:var(--danger-light)!important}.mat-mdc-outlined-button.mat-warn{color:var(--danger)!important;border-color:var(--danger)!important;box-shadow:none!important}.mat-mdc-outlined-button.mat-warn:hover:not(:disabled){background:var(--danger-light)!important}.mat-mdc-unelevated-button.mat-accent,.mat-mdc-raised-button.mat-accent{background:var(--success)!important;color:var(--text-inverse)!important;box-shadow:none!important}.mat-mdc-unelevated-button.mat-accent:hover:not(:disabled),.mat-mdc-raised-button.mat-accent:hover:not(:disabled){background:var(--success-emerald-700)!important;box-shadow:none!important}.mat-mdc-button.mat-accent:not(.mat-mdc-outlined-button):not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button){background:transparent!important;color:var(--success)!important;box-shadow:none!important}.mat-mdc-button.mat-accent:not(.mat-mdc-outlined-button):not(.mat-mdc-unelevated-button):not(.mat-mdc-raised-button):hover:not(:disabled){background:var(--tint-success-bg)!important}.mat-mdc-outlined-button.mat-accent{color:var(--success)!important;border-color:var(--success)!important;box-shadow:none!important}.mat-mdc-outlined-button.mat-accent:hover:not(:disabled){background:var(--tint-success-bg)!important}.btn-group{display:inline-flex;gap:8px;align-items:center}.btn-group .btn,.btn-group .save-btn,.btn-group .assign-measurement-btn,.btn-group .create-btn,.btn-group .mia-submit,.btn-group .send-btn,.btn-group .action-btn,.btn-group .btn-secondary,.btn-group .ub-btn,.btn-group .upload-btn,.btn-group .header-btn,.btn-group .tool-btn,.btn-group .btn-ghost,.btn-group .tool-palette-btn,.btn-group .cancel-btn,.btn-group .back-btn,.btn-group .mat-mdc-button{margin:0}.btn-group-vertical{display:flex;flex-direction:column;gap:8px;align-items:stretch}.btn-group-vertical .btn,.btn-group-vertical .save-btn,.btn-group-vertical .assign-measurement-btn,.btn-group-vertical .create-btn,.btn-group-vertical .mia-submit,.btn-group-vertical .send-btn,.btn-group-vertical .action-btn,.btn-group-vertical .btn-secondary,.btn-group-vertical .ub-btn,.btn-group-vertical .upload-btn,.btn-group-vertical .header-btn,.btn-group-vertical .tool-btn,.btn-group-vertical .btn-ghost,.btn-group-vertical .tool-palette-btn,.btn-group-vertical .cancel-btn,.btn-group-vertical .back-btn,.btn-group-vertical .mat-mdc-button,.btn-full{width:100%}.btn-loading{position:relative}.btn-loading mat-icon,.btn-loading span{visibility:hidden}.btn-loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:18px;height:18px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:button-spin .8s linear infinite}.btn-loading.mat-mdc-button:after{top:calc(50% - 1px)}@keyframes button-spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@media (max-width: 600px){.btn,.save-btn,.assign-measurement-btn,.create-btn,.mia-submit,.send-btn,.action-btn,.btn-secondary,.ub-btn,.upload-btn,.header-btn,.tool-btn,.btn-ghost,.tool-palette-btn,.cancel-btn,.back-btn,.btn-link,.btn-success,.mark-paid-btn,.btn-danger,.mat-mdc-button{min-height:44px;padding:0 16px;font-size:14px}.btn mat-icon,.save-btn mat-icon,.assign-measurement-btn mat-icon,.create-btn mat-icon,.mia-submit mat-icon,.send-btn mat-icon,.action-btn mat-icon,.btn-secondary mat-icon,.ub-btn mat-icon,.upload-btn mat-icon,.header-btn mat-icon,.tool-btn mat-icon,.btn-ghost mat-icon,.tool-palette-btn mat-icon,.cancel-btn mat-icon,.back-btn mat-icon,.btn-link mat-icon,.btn-success mat-icon,.mark-paid-btn mat-icon,.btn-danger mat-icon,.mat-mdc-button mat-icon{font-size:18px;width:18px;height:18px}.btn-sm{min-height:36px;padding:0 12px}.btn-lg{padding:0 24px;min-height:48px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.btn-success .mat-mdc-circular-progress,.mark-paid-btn .mat-mdc-circular-progress,.btn-success mat-spinner,.mark-paid-btn mat-spinner,.btn-danger .mat-mdc-circular-progress,.btn-danger mat-spinner,.btn-fab .mat-mdc-circular-progress,.btn-fab mat-spinner,.ub-camera .mat-mdc-circular-progress,.ub-camera mat-spinner,.mat-mdc-unelevated-button.mat-primary .mat-mdc-circular-progress,.mat-mdc-unelevated-button.mat-primary mat-spinner,.mat-mdc-unelevated-button.mat-warn .mat-mdc-circular-progress,.mat-mdc-unelevated-button.mat-warn mat-spinner,.mat-mdc-unelevated-button.mat-accent .mat-mdc-circular-progress,.mat-mdc-unelevated-button.mat-accent mat-spinner,.mat-mdc-button.mat-mdc-raised-button .mat-mdc-circular-progress,.mat-mdc-button.mat-mdc-raised-button mat-spinner,.mat-mdc-raised-button.mat-primary .mat-mdc-circular-progress,.mat-mdc-raised-button.mat-primary mat-spinner,.mat-mdc-raised-button.mat-warn .mat-mdc-circular-progress,.mat-mdc-raised-button.mat-warn mat-spinner,.mat-mdc-raised-button.mat-accent .mat-mdc-circular-progress,.mat-mdc-raised-button.mat-accent mat-spinner{--mdc-circular-progress-active-indicator-color: var(--text-inverse)}.btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) .mat-mdc-circular-progress,.save-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) .mat-mdc-circular-progress,.assign-measurement-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) .mat-mdc-circular-progress,.create-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) .mat-mdc-circular-progress,.mia-submit:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) .mat-mdc-circular-progress,.send-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) .mat-mdc-circular-progress,.action-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) .mat-mdc-circular-progress,.btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) mat-spinner,.save-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) mat-spinner,.assign-measurement-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) mat-spinner,.create-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) mat-spinner,.mia-submit:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) mat-spinner,.send-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) mat-spinner,.action-btn:not(.btn-secondary):not(.ub-btn):not(.upload-btn):not(.header-btn):not(.tool-btn):not(.btn-ghost):not(.tool-palette-btn):not(.cancel-btn):not(.back-btn):not(.btn-danger) mat-spinner{--mdc-circular-progress-active-indicator-color: var(--text-inverse)}.btn-secondary .mat-mdc-circular-progress,.ub-btn .mat-mdc-circular-progress,.upload-btn .mat-mdc-circular-progress,.header-btn .mat-mdc-circular-progress,.tool-btn .mat-mdc-circular-progress,.btn-secondary mat-spinner,.ub-btn mat-spinner,.upload-btn mat-spinner,.header-btn mat-spinner,.tool-btn mat-spinner,.btn-ghost .mat-mdc-circular-progress,.tool-palette-btn .mat-mdc-circular-progress,.cancel-btn .mat-mdc-circular-progress,.back-btn .mat-mdc-circular-progress,.btn-ghost mat-spinner,.tool-palette-btn mat-spinner,.cancel-btn mat-spinner,.back-btn mat-spinner,.btn-link .mat-mdc-circular-progress,.btn-link mat-spinner{--mdc-circular-progress-active-indicator-color: var(--accent-dark)}.tool-btn .tool-label{font-size:11px;font-weight:600;letter-spacing:.3px}.header-btn{padding:8px 14px;min-height:40px}.header-btn mat-icon{font-size:18px;width:18px;height:18px}.back-btn{padding:0 14px;width:auto}.ub-btn.ub-camera,.upload-btn.ub-camera{background:var(--accent);color:var(--text-inverse)}.assign-measurement-btn{width:100%}.cancel-btn mat-icon{color:var(--danger)}.dlg-close{width:36px;height:36px;font-size:18px;line-height:1;border:1px solid var(--border-light);background:transparent}.btn-xs{padding:0 10px;min-height:28px;font-size:12px}.btn-xs mat-icon{font-size:14px;width:14px;height:14px}.btn:disabled,.action-btn:disabled,.send-btn:disabled,.mia-submit:disabled,.create-btn:disabled,.assign-measurement-btn:disabled,.save-btn:disabled,.mat-mdc-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.tool-palette-btn.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.room-chip-btn{width:32px;height:32px}.room-chip-btn mat-icon{font-size:16px;width:16px;height:16px}.zoom-float-btn{width:40px;height:40px}.zoom-float-btn mat-icon{font-size:20px;width:20px;height:20px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden;font-family:var(--font-family);font-size:var(--fs-base);color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}.mat-mdc-card{border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-sm)!important}.mat-mdc-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button,.mat-mdc-outlined-button{border-radius:var(--radius-md)!important}.mat-mdc-raised-button.mat-primary,.mat-mdc-unelevated-button.mat-primary{background-color:var(--primary)!important}.mat-mdc-tab-group .mat-mdc-tab{font-weight:var(--fw-medium)!important}.mat-mdc-menu-panel{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;max-width:none!important;overflow-x:hidden!important}.notif-panel-menu.mat-mdc-menu-panel{width:370px!important;max-width:370px!important;max-height:480px!important;border-radius:var(--radius-md)!important;overflow:hidden!important}.notif-panel-menu .mat-mdc-menu-content{padding:0!important}.notif-panel-menu .np-head{display:flex!important;justify-content:space-between!important;align-items:center!important;padding:var(--sp-4) var(--sp-4)!important;border-bottom:1px solid var(--border-light)!important}.notif-panel-menu .np-head>span{font-size:var(--fs-md)!important;font-weight:var(--fw-bold)!important;color:var(--text-primary)!important}.notif-panel-menu .np-head>button{border:none!important;background:none!important;color:var(--primary)!important;font-size:var(--fs-xs)!important;font-weight:var(--fw-semibold)!important;cursor:pointer!important;padding:var(--sp-1) var(--sp-2)!important;border-radius:var(--sp-1)!important}.notif-panel-menu .np-head>button:hover{background:var(--primary-light)!important}.notif-panel-menu .mat-mdc-menu-item{height:auto!important;min-height:0!important;padding:0!important;line-height:normal!important;white-space:normal!important;border-radius:0!important}.notif-panel-menu .mat-mdc-menu-item .mdc-list-item__primary-text{display:block!important;width:100%!important}.notif-panel-menu .mat-mdc-menu-item .mat-icon{margin:0!important;padding:0!important}.notif-panel-menu .np-row{display:flex!important;align-items:flex-start!important;gap:var(--sp-3)!important;padding:var(--sp-3) var(--sp-4)!important;width:100%!important;box-sizing:border-box!important;border-bottom:1px solid var(--bg-secondary)}.notif-panel-menu .np-row.unread{background:var(--primary-light)!important}.notif-panel-menu .np-ico{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;min-height:32px!important;max-height:32px!important;border-radius:var(--radius-sm)!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;flex-shrink:0!important}.notif-panel-menu .np-ico .mat-icon{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important;overflow:hidden!important}.notif-panel-menu .np-ico.n-blue{background:var(--tint-accent-bg)!important}.notif-panel-menu .np-ico.n-blue .mat-icon{color:var(--accent)!important}.notif-panel-menu .np-ico.n-amber{background:var(--tint-warning-bg)!important}.notif-panel-menu .np-ico.n-amber .mat-icon{color:var(--warning)!important}.notif-panel-menu .np-ico.n-cyan{background:var(--tint-info-bg)!important}.notif-panel-menu .np-ico.n-cyan .mat-icon{color:var(--info)!important}.notif-panel-menu .np-ico.n-violet{background:var(--tint-primary-bg)!important}.notif-panel-menu .np-ico.n-violet .mat-icon{color:var(--primary)!important}.notif-panel-menu .np-ico.n-green{background:var(--tint-success-bg)!important}.notif-panel-menu .np-ico.n-green .mat-icon{color:var(--success)!important}.notif-panel-menu .np-ico.n-red{background:var(--tint-danger-bg)!important}.notif-panel-menu .np-ico.n-red .mat-icon{color:var(--danger)!important}.notif-panel-menu .np-ico.n-gray{background:var(--bg-tertiary)!important}.notif-panel-menu .np-ico.n-gray .mat-icon{color:var(--text-secondary)!important}.notif-panel-menu .np-text{flex:1!important;min-width:0!important;overflow:hidden!important}.notif-panel-menu .np-text strong{display:block!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold)!important;color:var(--text-primary)!important;line-height:1.3!important}.notif-panel-menu .np-text span{display:block!important;font-size:var(--fs-xs)!important;color:var(--text-secondary)!important;margin-top:2px!important;line-height:1.4!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.notif-panel-menu .np-text small{display:block!important;font-size:var(--fs-xs)!important;color:var(--text-muted)!important;margin-top:var(--sp-1)!important}.notif-panel-menu .np-dot{width:7px!important;height:7px!important;border-radius:var(--radius-full)!important;background:var(--primary)!important;flex-shrink:0!important;margin-top:6px!important;display:inline-block!important;font-style:normal!important}.notif-panel-menu .np-empty{text-align:center!important;padding:40px var(--sp-4)!important;color:var(--text-muted)!important;font-size:var(--fs-sm)!important}@media (max-width: 768px){.notif-panel-menu.mat-mdc-menu-panel{width:calc(100vw - 32px)!important;max-width:400px!important;max-height:60vh!important}}@media (max-width: 576px){.notif-panel-menu.mat-mdc-menu-panel{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:60vh!important}.np-row{padding:var(--sp-4)!important}}.user-menu-panel.mat-mdc-menu-panel{min-width:200px}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--radius-lg)!important;max-height:85vh!important}.mat-mdc-dialog-title{padding:var(--sp-6) var(--sp-6) var(--sp-4)!important}.mat-mdc-dialog-content{padding:var(--sp-2) var(--sp-6) var(--sp-2)!important;max-height:50vh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;background:linear-gradient(white 30%,transparent) center top,linear-gradient(transparent,#fff 70%) center bottom,radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.12),transparent) center top,radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.12),transparent) center bottom;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 12px,100% 12px;background-attachment:local,local,scroll,scroll}.mat-mdc-dialog-content .dlg-form{padding-top:var(--sp-1)}.mat-mdc-dialog-actions{padding:var(--sp-4) var(--sp-6) var(--sp-6)!important}:root{--mat-form-field-container-text-size: 15px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-outline-color: var(--border);--mat-form-field-focus-outline-color: var(--primary);--mat-form-field-hover-outline-color: var(--text-muted)}.mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{margin-bottom:0}.mat-mdc-form-field .mat-mdc-form-field-hint{font-size:var(--fs-xs);color:var(--text-muted)}.mat-mdc-form-field .mat-mdc-text-field-wrapper{min-height:48px!important}.mat-mdc-form-field .mat-mdc-form-field-infix{min-height:48px!important;padding-top:0!important;padding-bottom:0!important;display:flex!important;align-items:center!important}.mat-mdc-form-field .mat-mdc-form-field-infix input{align-self:center}.mat-mdc-form-field-type-mat-select .mat-mdc-select-trigger{min-height:24px;align-items:center}app-filter-bar{--mat-form-field-container-height: 40px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 8px;--mat-form-field-filled-with-label-container-padding-top: 8px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}app-filter-bar .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{min-height:0;padding:0}app-filter-bar .mat-mdc-form-field .mat-mdc-text-field-wrapper{height:48px!important;min-height:48px!important}app-filter-bar .expand-filters-btn,app-filter-bar .clear-filters-btn{height:48px!important;min-height:48px!important;max-height:48px!important;padding:0 var(--sp-4)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important}input[type=time]{text-align:left!important}.mat-mdc-dialog-content .mat-mdc-form-field{width:100%}.page-container{max-width:var(--page-max-width)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-6)}.page-header h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--content-gap)}.stat-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.stat-card .stat-label{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-2)}.stat-card .stat-value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.mat-mdc-dialog-container .dlg-header{display:flex;align-items:center;padding:var(--sp-4) var(--sp-6) 0 var(--sp-6)}.mat-mdc-dialog-container .dialog-header{display:flex;align-items:center;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.mat-mdc-dialog-container .dlg-close{flex-shrink:0;margin-left:auto;margin-right:-8px;margin-top:-8px}.mat-mdc-dialog-container .dlg-title{font-size:20px!important;font-weight:800!important;letter-spacing:-.3px;color:var(--text-primary)!important;margin:0!important;padding:0!important;line-height:1.3!important}.mat-mdc-dialog-container .dlg-form{display:flex;flex-direction:column;gap:var(--sp-4)}.mat-mdc-dialog-container .color-input-row{display:flex;align-items:center;gap:12px;width:100%}.mat-mdc-dialog-container .color-input-row .color-picker{width:44px;height:44px;padding:4px;border:1px solid var(--border);border-radius:8px;cursor:pointer;background:transparent;flex-shrink:0}.mat-mdc-dialog-container .color-input-row .color-picker::-webkit-color-swatch-wrapper{padding:2px}.mat-mdc-dialog-container .color-input-row .color-picker::-webkit-color-swatch{border-radius:6px;border:none}.mat-mdc-dialog-container .color-input-row input[matInput]{flex:1;min-width:0}.mat-mdc-dialog-container .row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.mat-mdc-dialog-container .field-label{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-secondary);letter-spacing:.3px;text-transform:uppercase;margin:var(--sp-1) 0 calc(-1 * var(--sp-1));padding:0}.mat-mdc-dialog-container .field-label:first-child{margin-top:0}.mat-mdc-dialog-container .currency-suffix{font-weight:var(--fw-semibold);color:var(--text-secondary);padding-right:var(--sp-1)}.mat-mdc-dialog-container .error-banner{display:flex;align-items:center;gap:var(--sp-2);background:var(--danger-light);color:var(--danger);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);font-size:var(--fs-sm);border:1px solid var(--border-danger-soft);margin-top:var(--sp-1)}.mat-mdc-dialog-container .error-banner mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.mat-mdc-dialog-container .success-banner{display:flex;align-items:center;gap:var(--sp-2);background:var(--success-light);color:var(--success);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);font-size:var(--fs-sm);border:1px solid var(--border-success-soft);margin-top:var(--sp-1)}.mat-mdc-dialog-container .success-banner mat-icon{font-size:18px;width:18px;height:18px;flex-shrink:0}.mat-mdc-dialog-container .perms-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;max-height:240px;overflow-y:auto}@media (max-width: 768px){.mat-mdc-dialog-container .row-2,.mat-mdc-dialog-container .perms-grid{grid-template-columns:1fr 1fr;gap:var(--sp-3)}}@media (max-width: 576px){.mat-mdc-dialog-container .row-2{grid-template-columns:1fr;gap:var(--sp-3)}.mat-mdc-dialog-container .perms-grid{grid-template-columns:1fr;gap:var(--sp-2)}}@media (max-width: 768px){:root{--topbar-height: var(--topbar-height-mobile)}}.cdk-overlay-pane:has(.mat-mdc-dialog-container){max-width:min(80vw,650px)!important}@media (max-width: 768px){.cdk-overlay-pane:has(.mat-mdc-dialog-container){max-width:min(85vw,550px)!important}.mat-mdc-dialog-container .mdc-dialog__surface{max-width:100%!important}}@media (max-width: 576px){.cdk-overlay-pane:has(.mat-mdc-dialog-container){max-width:calc(100vw - 24px)!important;width:calc(100vw - 24px)!important;margin:12px!important;max-height:calc(100vh - 24px)!important;max-height:calc(100dvh - 24px)!important}.mat-mdc-dialog-container .mdc-dialog__surface{max-width:100%!important;border-radius:var(--radius-lg)!important;max-height:calc(100vh - 24px)!important;max-height:calc(100dvh - 24px)!important}.mat-mdc-dialog-content{max-height:none!important;padding:var(--sp-4)!important;flex:1;overflow-y:auto}.mat-mdc-dialog-actions{padding:var(--sp-4)!important;padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom,0px))!important;border-top:1px solid var(--border)!important;position:sticky;bottom:0;background:var(--bg-primary);z-index:1;flex-shrink:0}.drawing-dialog .cdk-overlay-pane{width:100vw!important;max-width:100vw!important;height:100vh!important;height:100dvh!important;max-height:100vh!important;max-height:100dvh!important}}@supports (padding-top: env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@media (pointer: coarse){button,a[mat-button],a[mat-flat-button],a[mat-stroked-button],.mat-mdc-icon-button,[mat-icon-button]{min-height:44px;min-width:44px}.mat-mdc-menu-item{min-height:48px}}.snack-error .mdc-snackbar__surface{background:var(--danger)!important}.snack-error .mdc-snackbar__label,.snack-error .mat-mdc-button{color:var(--text-inverse)!important}.snack-warn .mdc-snackbar__surface{background:var(--snackbar-warn-bg)!important}.snack-warn .mdc-snackbar__label,.snack-warn .mat-mdc-button{color:var(--text-inverse)!important}.installation-calendar-dialog .mat-mdc-dialog-container .mdc-dialog__surface{max-width:1000px!important;width:1000px!important}@media (max-width: 576px){.installation-calendar-dialog .cdk-overlay-pane{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;margin:10px!important}.installation-calendar-dialog .mat-mdc-dialog-container .mdc-dialog__surface{width:100%!important;max-width:100%!important;max-height:calc(100vh - 20px)!important;max-height:calc(100dvh - 20px)!important;border-radius:var(--radius-lg)!important}}.role-permissions-dialog .mat-mdc-dialog-container .mdc-dialog__surface{max-width:min(720px,94vw)!important;width:min(720px,94vw)!important}.role-permissions-dialog .mat-mdc-checkbox .mdc-form-field{align-items:flex-start}.role-permissions-dialog .mat-mdc-checkbox .mdc-label{width:100%;padding-top:1px}@media (max-width: 576px){.role-permissions-dialog .cdk-overlay-pane{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;margin:8px!important}.role-permissions-dialog .mat-mdc-dialog-container .mdc-dialog__surface{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 16px)!important;border-radius:var(--radius-lg)!important}}
