html{--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-body-large-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-body-medium-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-body-small-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-display-large-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-display-medium-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-display-small-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-headline-large-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-headline-medium-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-headline-small-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-label-large-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-label-medium-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-label-small-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-title-large-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-title-medium-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--mat-sys-title-small-font: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, 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}body{color-scheme:light;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium);margin:0}:root{--green-50: #f5f7f5;--green-100: #e8ede9;--green-200: #d1dbd3;--green-300: #aac5af;--green-400: #77a780;--green-500: #54825d;--green-600: #44694b;--green-700: #3a5a40;--green-800: #2e4733;--green-900: #223525;--n-0: #ffffff;--n-25: #fdfcfa;--n-50: #f7f6f3;--n-100: #f0eeea;--n-200: #e4e1db;--n-300: #cdc9c1;--n-400: #9c968c;--n-500: #6b665e;--n-600: #565149;--n-700: #403c36;--n-800: #2b2823;--n-900: #1a1815;--bg: var(--n-50);--surface: var(--n-0);--surface-sunken: var(--n-100);--border: var(--n-200);--border-strong: var(--n-300);--text: var(--n-900);--text-secondary: var(--n-600);--muted: var(--n-500);--text-on-accent: #ffffff;--accent: var(--green-700);--accent-hover: var(--green-800);--accent-strong: var(--green-900);--accent-tint: var(--green-50);--accent-tint-2: var(--green-100);--accent-border: var(--green-200);--accent-2: var(--green-800);--accent-soft: var(--green-100);--accent-hover-border: var(--green-300);--danger: #b91c1c;--danger-bright: #ef4444;--danger-tint: #fef2f2;--danger-border: #fecaca;--danger-soft: var(--danger-tint);--warn: #b45309;--warn-bright: #f59e0b;--warn-tint: #fffbeb;--warn-border: #fde68a;--warn-soft: var(--warn-tint);--chart-alt: #5b6b8c;--clay-50: #fdf3ec;--clay-100: #f9e4d5;--clay-300: #e0a878;--clay-500: #b45a30;--clay-700: #9a4a25;--info: #1d4ed8;--info-tint: #eff6ff;--info-border: #bfdbfe;--success: var(--green-700);--success-tint: var(--green-50);--success-border: var(--green-200);--status-success-bg: var(--green-700);--status-success-fg: var(--n-0);--status-warn-bg: #fbbf24;--status-warn-fg: #78350f;--status-danger-bg: var(--danger);--status-danger-fg: var(--n-0);--status-info-bg: var(--info);--status-info-fg: var(--n-0);--status-neutral-bg: var(--n-500);--status-neutral-fg: var(--n-0);--radius-xs: 8px;--radius-sm: 10px;--radius: 14px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 24px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 12px rgba(16, 24, 40, .07), 0 2px 4px rgba(16, 24, 40, .04);--shadow-lg: 0 12px 28px rgba(16, 24, 40, .09), 0 4px 8px rgba(16, 24, 40, .04);--shadow-xl: 0 24px 48px rgba(16, 24, 40, .12), 0 8px 16px rgba(16, 24, 40, .05);--shadow-accent: 0 4px 14px rgba(58, 90, 64, .24);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 48px;--font-sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--ease: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration: .2s;--sidebar-width: 264px;--navbar-height: 64px;--content-max: 1440px}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tabular-nums,table td,.stat .value{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}.mat-mdc-button-base:focus-visible,.mdc-dialog__surface:focus-visible{outline:none}.skip-link{position:fixed;left:8px;top:-48px;z-index:2000;padding:10px 16px;border-radius:var(--radius-xs);background:var(--accent);color:var(--text-on-accent);font-weight:var(--weight-semibold);text-decoration:none;transition:top .15s ease}.skip-link:focus{top:8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.admin-rating-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xl);overflow:hidden;padding:0}.admin-rating-dialog-panel .mat-mdc-dialog-container .mat-mdc-dialog-content,.admin-rating-dialog-panel .mat-mdc-dialog-container .mdc-dialog__content{padding:0;max-height:none}.logout-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface,.admin-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xl);overflow:hidden}.logout-dialog-panel .mat-mdc-dialog-title,.logout-dialog-panel .mat-mdc-dialog-content,.logout-dialog-panel .mat-mdc-dialog-actions,.admin-dialog-panel .mat-mdc-dialog-title,.admin-dialog-panel .mat-mdc-dialog-content,.admin-dialog-panel .mat-mdc-dialog-actions{padding-left:0;padding-right:0}.ui-page{margin-top:var(--navbar-height);margin-left:var(--sidebar-width);padding:var(--space-6) var(--space-7) var(--space-8);min-height:calc(100vh - var(--navbar-height));box-sizing:border-box;background:var(--bg);color:var(--text);font-family:var(--font-sans)}.ui-page-inner{max-width:var(--content-max);margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}.ui-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.ui-page-title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.02em}.ui-page-sub{margin:var(--space-1) 0 0;font-size:var(--text-base);color:var(--muted)}.ui-page-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}@media (max-width: 768px){.ui-page{margin-left:0;padding:var(--space-4)}}.ui-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-5)}.ui-panel--flush{padding:0;overflow:hidden}.ui-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.ui-panel--flush .ui-panel-head{margin:0;padding:var(--space-5);border-bottom:1px solid var(--border)}.ui-panel-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text)}.ui-panel-note{font-size:var(--text-sm);color:var(--muted)}.ui-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-4)}.ui-stat{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration) var(--ease),transform var(--duration) var(--ease)}.ui-stat:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.ui-stat--featured{background:linear-gradient(150deg,var(--green-700),var(--green-900));border-color:transparent;color:var(--text-on-accent);box-shadow:var(--shadow-accent),var(--shadow-md)}.ui-stat-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.ui-stat-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--muted)}.ui-stat--featured .ui-stat-label,.ui-stat--featured .ui-stat-meta{color:#ffffffd1}.ui-stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:var(--leading-tight);font-variant-numeric:tabular-nums}.ui-stat--featured .ui-stat-value{color:var(--text-on-accent)}.ui-stat-meta{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted)}.ui-stat-icon{width:38px;height:38px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--n-100);border:1px solid var(--border);flex-shrink:0}.ui-stat-icon .material-icons{font-size:18px;color:var(--text-secondary)}.ui-stat--featured .ui-stat-icon{background:#ffffff29;border-color:#ffffff3d}.ui-stat--featured .ui-stat-icon .material-icons{color:#fff}.ui-metrics{display:flex;flex-wrap:wrap;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.ui-metric{flex:1 1 160px;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-right:1px solid var(--border)}.ui-metric:last-child{border-right:0}.ui-metric-icon{width:34px;height:34px;flex:0 0 auto;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--accent-tint);color:var(--accent)}.ui-metric-icon .material-icons{font-size:18px}.ui-metric-body{min-width:0;display:flex;flex-direction:column;line-height:var(--leading-tight)}.ui-metric-value{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text);font-variant-numeric:tabular-nums}.ui-metric-label{font-size:var(--text-xs);color:var(--muted)}@media (max-width: 768px){.ui-metric{flex-basis:50%;border-bottom:1px solid var(--border)}}.ui-filters{display:flex;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-4) var(--space-5)}.ui-field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.ui-field>label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.ui-field--grow{flex:1;min-width:220px}.ui-input,.ui-select{height:40px;padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:var(--text-base);outline:none;transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.ui-input:focus,.ui-select:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-tint)}.ui-select--sm{height:34px;padding:0 var(--space-3);font-size:var(--text-sm)}.ui-search{display:flex;align-items:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.ui-search:focus-within{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-tint)}.ui-search .material-icons{font-size:18px;color:var(--muted)}.ui-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:inherit;font-size:var(--text-base);color:var(--text)}.ui-search input::placeholder{color:var(--muted)}.ui-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow-x:auto;overflow-y:hidden;position:relative}.ui-table{width:100%;border-collapse:collapse}.ui-table thead th{padding:var(--space-4) var(--space-5);text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--n-50);border-bottom:1px solid var(--border);white-space:nowrap}.ui-table tbody td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);font-size:var(--text-base);color:var(--text);vertical-align:middle;font-variant-numeric:tabular-nums}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr{transition:background var(--duration-fast) var(--ease)}.ui-table tbody tr:hover{background:var(--n-25)}.ui-table .ui-col-actions{width:1%;white-space:nowrap;text-align:right}.ui-cell-primary{font-weight:var(--weight-semibold);color:var(--text)}.ui-cell-secondary{font-size:var(--text-xs);color:var(--muted)}.ui-cell-mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold);border:1px solid transparent;white-space:nowrap}.ui-badge--neutral{background:var(--n-100);color:var(--text-secondary);border-color:var(--border)}.ui-badge--success{background:var(--success-tint);color:var(--green-800);border-color:var(--success-border)}.ui-badge--warn{background:var(--warn-tint);color:var(--warn);border-color:var(--warn-border)}.ui-badge--danger{background:var(--danger-tint);color:var(--danger);border-color:var(--danger-border)}.ui-badge--info{background:var(--info-tint);color:var(--info);border-color:var(--info-border)}.ui-badge--status{border-color:transparent}.ui-badge--status.ui-badge--success{background:var(--status-success-bg);color:var(--status-success-fg)}.ui-badge--status.ui-badge--warn{background:var(--status-warn-bg);color:var(--status-warn-fg)}.ui-badge--status.ui-badge--danger{background:var(--status-danger-bg);color:var(--status-danger-fg)}.ui-badge--status.ui-badge--info{background:var(--status-info-bg);color:var(--status-info-fg)}.ui-badge--status.ui-badge--neutral{background:var(--status-neutral-bg);color:var(--status-neutral-fg)}.ui-badge--on{background:var(--green-600);color:var(--n-0);border-color:transparent}.ui-badge--type-a{background:var(--accent-tint);color:var(--green-800);border-color:var(--accent-border)}.ui-badge--type-b{background:var(--n-50);color:var(--text-secondary);border-color:var(--border-strong)}.ui-badge .material-icons{font-size:14px}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;padding:0 var(--space-5);border-radius:var(--radius-sm);border:1px solid transparent;font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.ui-btn .material-icons{font-size:18px}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn--primary{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-accent)}.ui-btn--primary:hover:not(:disabled){background:var(--accent-hover)}.ui-btn--ghost{background:var(--surface);color:var(--text-secondary);border-color:var(--border)}.ui-btn--ghost:hover:not(:disabled){background:var(--n-50);border-color:var(--border-strong);color:var(--text)}.ui-btn--danger{background:var(--danger-tint);color:var(--danger);border-color:var(--danger-border)}.ui-btn--danger:hover:not(:disabled){background:var(--danger);color:#fff;border-color:var(--danger)}.ui-btn--icon{width:38px;height:38px;padding:0;background:var(--surface);border-color:var(--border);color:var(--text-secondary)}.ui-btn--icon:hover:not(:disabled){background:var(--n-50);border-color:var(--border-strong);color:var(--text)}.ui-btn--icon.is-danger:hover:not(:disabled){background:var(--danger-tint);border-color:var(--danger-border);color:var(--danger)}.ui-btn--icon.is-approve:hover:not(:disabled){background:var(--success-tint);border-color:var(--success-border);color:var(--accent)}.ui-btn--icon.ui-btn--sm{width:34px;padding:0}.ui-btn--sm{height:34px;padding:0 var(--space-4);font-size:var(--text-sm)}.ui-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.ui-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--space-3) var(--space-5)}.ui-pager-info{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums}.ui-pager-side{display:flex;align-items:center;gap:var(--space-3)}.ui-avatar{width:36px;height:36px;flex:0 0 auto;border-radius:var(--radius-pill);display:grid;place-items:center;background:var(--accent-tint-2);color:var(--green-800);font-size:var(--text-xs);font-weight:var(--weight-bold);overflow:hidden}.ui-avatar img{width:100%;height:100%;object-fit:cover}.ui-avatar--lg{width:64px;height:64px;font-size:var(--text-lg)}.ui-divider{height:1px;background:var(--border);border:0;margin:0}.ui-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4)}.ui-modal-overlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:var(--space-5);background:#1a181580;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.ui-modal{position:relative;display:flex;flex-direction:column;width:100%;max-width:880px;max-height:88vh;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.ui-modal--sm{max-width:460px}.ui-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--border)}.ui-modal-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text)}.ui-modal-body{padding:var(--space-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5)}.ui-modal-foot{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);background:var(--n-50)}.ui-detail{display:flex;flex-direction:column;gap:var(--space-1)}.ui-detail-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.ui-detail-value{font-size:var(--text-base);color:var(--text)}.ui-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}
