:root{--zinc-50: #fafafa;--zinc-100: #f4f4f5;--zinc-200: #e4e4e7;--zinc-300: #d4d4d8;--zinc-400: #a1a1aa;--zinc-500: #71717a;--zinc-600: #52525b;--zinc-700: #3f3f46;--zinc-800: #27272a;--zinc-900: #18181b;--zinc-950: #09090b;--red-50: #fef2f2;--red-100: #fee2e2;--red-200: #fecaca;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--green-50: #f0fdf4;--green-200: #bbf7d0;--green-500: #22c55e;--green-600: #16a34a;--green-700: #15803d;--amber-50: #fffbeb;--amber-200: #fde68a;--amber-500: #f59e0b;--amber-600: #d97706;--amber-700: #b45309;--sky-50: #f0f9ff;--sky-200: #bae6fd;--sky-500: #0ea5e9;--sky-600: #0284c7;--sky-700: #0369a1;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--text-12: 12px;--text-13: 13px;--text-14: 14px;--text-16: 16px;--text-20: 20px;--text-24: 24px;--text-28: 28px;--theme-solid: #2563eb;--theme-solid-hover: #1d4ed8;--theme-solid-active: #1e40af;--theme-solid-fg: #ffffff;--theme-soft: #eff6ff;--theme-soft-fg: #1d4ed8;--theme-soft-border: #bfdbfe;--theme-ring: #93c5fd;--theme-ring-soft: #93c5fd80;--background: #ffffff;--foreground: var(--zinc-950);--card: #ffffff;--card-foreground: var(--zinc-950);--popover: #ffffff;--popover-foreground: var(--zinc-950);--primary: var(--theme-solid);--primary-foreground: var(--theme-solid-fg);--secondary: var(--zinc-100);--secondary-foreground: var(--zinc-900);--muted: var(--zinc-100);--muted-foreground: var(--zinc-500);--accent: var(--zinc-100);--accent-foreground: var(--zinc-900);--destructive: var(--red-500);--destructive-foreground: var(--zinc-50);--destructive-bg: var(--red-50);--destructive-border: var(--red-200);--destructive-text: var(--red-700);--border: var(--zinc-200);--input: var(--zinc-200);--ring: var(--zinc-400);--radius: .625rem;--primary-hover: var(--theme-solid-hover);--primary-active: var(--theme-solid-active);--destructive-hover: rgb(239 68 68 / .9);--destructive-active: rgb(239 68 68 / .8);--secondary-hover: rgb(244 244 245 / .8);--destructive-tint: rgb(239 68 68 / .1);--destructive-tint-active: rgb(239 68 68 / .16);--focus-ring: 0 0 0 3px var(--theme-ring-soft);--focus-ring-error: 0 0 0 3px rgb(239 68 68 / .2);--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--radius-full: 999px;--success: var(--green-500);--success-foreground: var(--zinc-50);--success-bg: var(--green-50);--success-border: var(--green-200);--success-text: var(--green-700);--success-hover: var(--green-600);--warning: var(--amber-500);--warning-foreground: var(--zinc-950);--warning-bg: var(--amber-50);--warning-border: var(--amber-200);--warning-text: var(--amber-700);--warning-hover: var(--amber-600);--info: var(--sky-500);--info-foreground: var(--zinc-950);--info-bg: var(--sky-50);--info-border: var(--sky-200);--info-text: var(--sky-700);--info-hover: var(--sky-600);--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--z-sticky: 1000;--z-overlay: 1100;--z-modal: 1200;--z-popover: 1300;--z-toast: 1400;--control-h-sm: 32px;--control-h-md: 36px;--control-h-lg: 40px;--btn-h-sm: var(--control-h-sm);--btn-h-md: var(--control-h-md);--btn-h-lg: var(--control-h-lg);--btn-px-sm: 12px;--btn-px-md: 16px;--btn-px-lg: 24px;--btn-radius: var(--radius-md);--btn-border-width: 1px;--btn-font-size: var(--text-14);--btn-font-weight: 500;--btn-gap: var(--space-2);--btn-shadow: var(--shadow-xs);--btn-duration: .15s;--btn-disabled-bg: var(--zinc-100);--btn-disabled-border: var(--zinc-200);--btn-disabled-fg: var(--zinc-600);--control-px-sm: 12px;--control-px-md: 12px;--control-px-lg: 16px;--control-radius: var(--radius-md);--control-duration: .15s;--form-label-w: 88px;--form-field-max: 480px;--form-gap-y: var(--space-5);--form-group-gap: var(--space-8);--table-head-h: 40px;--table-row-h: 48px;--table-row-h-compact: 40px;--table-cell-px: 16px;--table-hover-bg: rgb(244 244 245 / .6);--badge-h-sm: 20px;--badge-h-md: 24px;--badge-px: var(--space-2);--pagination-size: var(--control-h-sm);--filterbar-h: 56px;--bulkbar-h: var(--control-h-lg);--sidebar-w: 240px;--sidebar-w-collapsed: 64px;--topbar-h: 56px;--content-px: var(--space-6);--content-max-w: 1440px;--app-canvas: var(--zinc-50);--page-header-h: 64px;--page-header-h-desc: 80px;--tabs-h: 40px;--tabs-indicator: 2px;--overlay-bg: rgb(0 0 0 / .5);--overlay-duration: .15s;--overlay-shift: 4px;--dialog-w-sm: 400px;--dialog-w-md: 520px;--dialog-w-lg: 720px;--dialog-radius: var(--radius-lg);--dialog-shadow: var(--shadow-lg);--dialog-px: var(--space-6);--dialog-py: var(--space-5);--dialog-gap: var(--space-2);--dialog-max-h: calc(100vh - var(--space-16) * 2);--toast-w: 360px;--toast-radius: var(--radius-lg);--toast-shadow: var(--shadow-lg);--toast-px: var(--space-4);--toast-py: var(--space-3);--toast-gap: var(--space-3);--toast-offset: var(--space-6);--toast-icon: 16px;--toast-bar-w: 3px;--menu-panel-min-w: 160px;--menu-panel-max-w: 320px;--menu-panel-radius: var(--radius-lg);--menu-panel-shadow: var(--shadow-md);--menu-panel-p: var(--space-1);--menu-item-h: var(--control-h-sm);--menu-item-radius: var(--radius-sm);--menu-item-px: var(--space-2);--menu-item-gap: var(--space-2);--menu-item-icon: 16px;--dp-panel-w: 296px;--dp-shortcut-w: 96px;--dp-panel-w-range: calc(var(--dp-panel-w) + var(--dp-shortcut-w) + 1px);--dp-radius: var(--radius-lg);--dp-shadow: var(--shadow-md);--dp-p: var(--space-3);--dp-cell: var(--control-h-sm);--dp-cell-radius: var(--radius-md);--dp-head-h: var(--control-h-sm);--card-p: var(--space-6);--card-p-compact: var(--space-4);--card-gap: var(--space-4);--card-radius: var(--radius-lg);--card-head-gap: var(--space-1);--textarea-min-h: 80px;--textarea-px: var(--control-px-md);--textarea-py: var(--space-2);--textarea-count: var(--text-12);--radio-size: 16px;--radio-dot: 6px;--radio-gap: var(--space-2);--radio-stack-gap: var(--space-3);--radio-inline-gap: var(--space-6);--switch-w: 36px;--switch-h: 20px;--switch-knob: 16px;--switch-track-off: var(--input);--switch-duration: var(--control-duration);--inputnum-btn-w: 28px;--desc-label-w: 120px;--desc-row-h: var(--control-h-lg);--desc-col-gap: var(--space-8);--desc-row-gap: var(--space-3);--desc-cols: 2;--empty-icon: 64px;--empty-py: var(--space-16);--empty-gap: var(--space-2);--empty-actions-gap: var(--space-4);--empty-desc-max-w: 400px;--tooltip-bg: var(--foreground);--tooltip-fg: var(--background);--tooltip-max-w: 240px;--tooltip-px: 10px;--tooltip-py: 6px;--tooltip-radius: var(--radius-sm);--tooltip-arrow: 8px;--tooltip-offset: var(--space-2);--tooltip-delay: .3s;--alert-px: var(--space-4);--alert-py: var(--space-3);--alert-radius: var(--radius-md);--alert-icon: 16px;--alert-gap: var(--space-3);--popconfirm-w: 240px;--popconfirm-p: var(--space-3);--popconfirm-radius: var(--radius-lg);--popconfirm-shadow: var(--shadow-md);--popconfirm-offset: var(--space-2);--breadcrumb-fs: var(--text-13);--breadcrumb-gap: var(--space-2);--breadcrumb-max-w: 180px;--drawer-w: 480px;--drawer-w-lg: 640px;--drawer-shadow: var(--shadow-lg);--drawer-duration: var(--overlay-duration);--tpl-gap: var(--space-4);--tpl-gap-lg: var(--space-6);--tpl-aside-w: 320px;--tpl-form-w: 720px;--tpl-actions-h: 56px;--tpl-stat-value: var(--text-28);--tpl-chart-h: 280px;--tpl-skeleton-bg: var(--muted);--tpl-skeleton-bar: var(--space-2);--upload-drop-py: var(--space-6);--upload-drop-px: var(--space-4);--upload-drop-radius: var(--radius-md);--upload-file-h: var(--space-12);--upload-thumb: var(--space-8);--upload-meta-gap: 2px;--upload-file-gap: var(--space-3);--upload-progress-h: 4px;--avatar-sm: 24px;--avatar-md: 32px;--avatar-lg: 40px;--avatar-radius-org: var(--radius-md);--avatar-overlap: -8px;--avatar-ring: 2px;--avatar-ring-color: var(--background);--skeleton-bg: var(--muted);--skeleton-radius: var(--radius-sm);--skeleton-duration: 1.4s;--skeleton-opacity-min: .45;--skeleton-bar-h: var(--space-2);--skeleton-w-sm: 96px;--skeleton-w-md: 160px;--skeleton-w-lg: 240px;--progress-h: var(--space-2);--progress-h-thin: 2px;--progress-radius: var(--radius-full);--progress-track: var(--muted);--spinner-sm: 16px;--spinner-md: 20px;--spinner-border: 2px;--spinner-duration: .6s}:root[data-theme=green]{--theme-solid: #15803d;--theme-solid-hover: #166534;--theme-solid-active: #14532d;--theme-solid-fg: #ffffff;--theme-soft: #f0fdf4;--theme-soft-fg: #15803d;--theme-soft-border: #bbf7d0;--theme-ring: #86efac;--theme-ring-soft: #86efac80}:root[data-theme=teal]{--theme-solid: #0f766e;--theme-solid-hover: #115e59;--theme-solid-active: #134e4a;--theme-solid-fg: #ffffff;--theme-soft: #f0fdfa;--theme-soft-fg: #0f766e;--theme-soft-border: #99f6e4;--theme-ring: #5eead4;--theme-ring-soft: #5eead480}:root[data-theme=cyan]{--theme-solid: #0e7490;--theme-solid-hover: #155e75;--theme-solid-active: #164e63;--theme-solid-fg: #ffffff;--theme-soft: #ecfeff;--theme-soft-fg: #0e7490;--theme-soft-border: #a5f3fc;--theme-ring: #67e8f9;--theme-ring-soft: #67e8f980}:root[data-theme=pink]{--theme-solid: #db2777;--theme-solid-hover: #be185d;--theme-solid-active: #9d174d;--theme-solid-fg: #ffffff;--theme-soft: #fdf2f8;--theme-soft-fg: #be185d;--theme-soft-border: #fbcfe8;--theme-ring: #f9a8d4;--theme-ring-soft: #f9a8d480}:root[data-theme=orange]{--theme-solid: #c2410c;--theme-solid-hover: #9a3412;--theme-solid-active: #7c2d12;--theme-solid-fg: #ffffff;--theme-soft: #fff7ed;--theme-soft-fg: #c2410c;--theme-soft-border: #fed7aa;--theme-ring: #fdba74;--theme-ring-soft: #fdba7480}:root[data-theme=violet]{--theme-solid: #7c3aed;--theme-solid-hover: #6d28d9;--theme-solid-active: #5b21b6;--theme-solid-fg: #ffffff;--theme-soft: #f5f3ff;--theme-soft-fg: #6d28d9;--theme-soft-border: #ddd6fe;--theme-ring: #c4b5fd;--theme-ring-soft: #c4b5fd80}:root[data-theme=neutral]{--theme-solid: #18181b;--theme-solid-hover: #27272a;--theme-solid-active: #3f3f46;--theme-solid-fg: #ffffff;--theme-soft: #f4f4f5;--theme-soft-fg: #3f3f46;--theme-soft-border: #e4e4e7;--theme-ring: #a1a1aa;--theme-ring-soft: #a1a1aa80}.control{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-2);width:100%;height:var(--control-h-md);padding:0 var(--control-px-md);font-family:inherit;font-size:var(--text-14);line-height:1;color:var(--foreground);background-color:var(--background);border:1px solid var(--input);border-radius:var(--control-radius);transition:border-color var(--control-duration),box-shadow var(--control-duration),background-color var(--control-duration)}input.control,textarea.control{display:block;text-align:left}.control:hover:not(:disabled):not([aria-disabled=true]):not([readonly]){border-color:var(--zinc-300)}.control:focus-visible,.control:focus-within{outline:none;border-color:var(--ring);box-shadow:var(--focus-ring)}.control[aria-invalid=true],.control--error{border-color:var(--destructive)}.control[aria-invalid=true]:focus-visible,.control[aria-invalid=true]:focus-within,.control--error:focus-visible,.control--error:focus-within{border-color:var(--destructive);box-shadow:var(--focus-ring-error)}.control:disabled,.control[aria-disabled=true],.control.is-disabled{background-color:var(--muted);color:var(--muted-foreground);cursor:not-allowed}.control:disabled:hover,.control[aria-disabled=true]:hover{border-color:var(--input)}.control--sm{height:var(--control-h-sm);padding:0 var(--control-px-sm);font-size:var(--text-13)}.control--lg{height:var(--control-h-lg);padding:0 var(--control-px-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-gap);height:var(--btn-h-md);padding:0 var(--btn-px-md);font-family:inherit;font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);line-height:1;white-space:nowrap;border:var(--btn-border-width) solid transparent;border-radius:var(--btn-radius);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--btn-duration) ease,border-color var(--btn-duration) ease,color var(--btn-duration) ease,box-shadow var(--btn-duration) ease,opacity var(--btn-duration) ease}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn--sm{height:var(--btn-h-sm);padding:0 var(--btn-px-sm)}.btn--lg{height:var(--btn-h-lg);padding:0 var(--btn-px-lg)}.btn--icon{width:var(--btn-h-md);padding:0}.btn--icon.btn--sm{width:var(--btn-h-sm)}.btn--icon.btn--lg{width:var(--btn-h-lg)}.btn--primary{background-color:var(--theme-solid);border-color:var(--theme-solid);color:var(--theme-solid-fg);box-shadow:var(--btn-shadow)}.btn--primary:hover:not(:disabled){background-color:var(--theme-solid-hover);border-color:var(--theme-solid-hover)}.btn--primary:active:not(:disabled){background-color:var(--theme-solid-active);border-color:var(--theme-solid-active)}.btn--secondary{background-color:var(--secondary);border-color:var(--secondary);color:var(--secondary-foreground)}.btn--secondary:hover:not(:disabled){background-color:var(--secondary-hover);border-color:var(--secondary-hover)}.btn--secondary:active:not(:disabled){background-color:var(--zinc-200);border-color:var(--zinc-200)}.btn--outline{background-color:var(--background);border-color:var(--input);color:var(--foreground);box-shadow:var(--btn-shadow)}.btn--outline:hover:not(:disabled){background-color:var(--theme-soft);border-color:var(--theme-soft-border);color:var(--theme-soft-fg)}.btn--outline:active:not(:disabled){background-color:var(--theme-soft);border-color:var(--theme-soft-border);color:var(--theme-soft-fg)}.btn--ghost{background-color:transparent;border-color:transparent;color:var(--foreground)}.btn--ghost:hover:not(:disabled){background-color:var(--accent);color:var(--accent-foreground)}.btn--ghost:active:not(:disabled){background-color:var(--zinc-200);color:var(--accent-foreground)}.btn--destructive{background-color:var(--destructive);border-color:var(--destructive);color:var(--destructive-foreground);box-shadow:var(--btn-shadow)}.btn--destructive:hover:not(:disabled){background-color:var(--destructive-hover);border-color:var(--destructive-hover)}.btn--destructive:active:not(:disabled){background-color:var(--destructive-active);border-color:var(--destructive-active)}.btn--destructive-outline{background-color:var(--background);border-color:var(--input);color:var(--destructive);box-shadow:var(--btn-shadow)}.btn--destructive-outline:hover:not(:disabled){background-color:var(--destructive-tint);border-color:var(--destructive-tint);color:var(--destructive)}.btn--destructive-outline:active:not(:disabled){background-color:var(--destructive-tint-active)}.btn--link{background-color:transparent;border-color:transparent;color:var(--theme-soft-fg);text-underline-offset:4px}.btn--link:hover:not(:disabled){text-decoration:underline}.btn:disabled{opacity:1;pointer-events:none;cursor:not-allowed;box-shadow:none}.btn--primary:disabled,.btn--secondary:disabled,.btn--destructive:disabled{background-color:var(--btn-disabled-bg);border-color:var(--btn-disabled-border);color:var(--btn-disabled-fg)}.btn--outline:disabled,.btn--destructive-outline:disabled{background-color:var(--background);border-color:var(--btn-disabled-border);color:var(--btn-disabled-fg)}.btn--ghost:disabled,.btn--link:disabled{background-color:transparent;border-color:transparent;color:var(--btn-disabled-fg);text-decoration:none}.btn[data-loading=true]{position:relative;pointer-events:none}.btn[data-loading=true] .btn__label{visibility:hidden}.btn[data-loading=true]:after{content:"";position:absolute;top:50%;left:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);opacity:.9;animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-group{display:inline-flex;align-items:center;gap:var(--space-2)}.control::placeholder{color:var(--muted-foreground)}.control__input{flex:1 1 auto;min-width:0;height:100%;padding:0;font:inherit;color:inherit;background:transparent;border:0;outline:none}.control__input::placeholder{color:var(--muted-foreground)}.control__icon{display:inline-flex;flex:none;align-items:center;justify-content:center;width:16px;height:16px;color:var(--muted-foreground)}.control__icon svg{width:100%;height:100%}.control__affix{flex:none;font-size:var(--text-13);color:var(--muted-foreground);white-space:nowrap}.control__affix--action{cursor:pointer;padding:0 var(--space-1)}.control__affix--action:hover{color:var(--foreground)}.control[readonly]:not(:disabled){background-color:transparent;border-color:transparent;color:var(--zinc-600);cursor:default}.control[readonly]:not(:disabled):focus{box-shadow:none;border-color:transparent}.control:-webkit-autofill,.control__input:-webkit-autofill{-webkit-text-fill-color:var(--foreground);box-shadow:0 0 0 1000px var(--background) inset;transition:background-color 100000s ease-in-out 0s}.control[data-width=sm]{max-width:160px}.control[data-width=md]{max-width:240px}.control--textarea{display:block;height:auto;min-height:var(--textarea-min-h);padding:var(--textarea-py) var(--textarea-px);font-family:inherit;font-size:var(--text-14);line-height:1.6;resize:vertical;padding-bottom:calc(var(--textarea-py) + var(--space-2))}.control--textarea[rows]{height:auto}.control--textarea::placeholder{color:var(--muted-foreground)}.textarea-field{position:relative;display:block}.textarea-count{position:absolute;right:var(--space-3);bottom:var(--space-3);font-size:var(--textarea-count);color:var(--muted-foreground);font-variant-numeric:tabular-nums;pointer-events:none}.textarea-count.is-over{color:var(--destructive-text);font-weight:500}.textarea-field .control--textarea{padding-bottom:calc(var(--textarea-py) + var(--space-5))}.select{position:relative;width:100%}.control--select{cursor:pointer;text-align:left;justify-content:flex-start}.control--select .control__value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control--select .control__value--placeholder{color:var(--muted-foreground)}.control--select .control__chevron{flex:none;display:inline-flex;width:16px;height:16px;margin-left:auto;color:var(--muted-foreground);transition:transform var(--control-duration)}.control--select .control__chevron svg{width:100%;height:100%}.control--select[aria-expanded=true] .control__chevron{transform:rotate(180deg)}.select-chip{display:inline-flex;flex:none;align-items:center;gap:var(--space-1);height:20px;padding:0 var(--space-2);border-radius:var(--radius-sm);background-color:var(--secondary);color:var(--secondary-foreground);font-size:var(--text-12);white-space:nowrap}.select-chip__x{display:inline-flex;width:12px;height:12px;color:var(--muted-foreground);cursor:pointer}.select-chip__x svg{width:100%;height:100%}.select-chip__x:hover{color:var(--foreground)}.select-more{flex:none;font-size:var(--text-12);color:var(--muted-foreground);font-variant-numeric:tabular-nums}.select-panel{position:absolute;z-index:var(--z-popover);top:calc(100% + var(--space-1));left:0;min-width:100%;max-width:320px;background-color:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.select-search{padding:var(--space-2);border-bottom:1px solid var(--border)}.select-search .control{height:var(--control-h-sm)}.select-list{max-height:264px;overflow-y:auto;padding:var(--space-1);margin:0;list-style:none}.select-option{display:flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-14);color:var(--foreground);cursor:pointer}.select-option:hover,.select-option[data-active=true]{background-color:var(--accent);color:var(--accent-foreground)}.select-option[aria-selected=true]{font-weight:500}.select-option__check{display:inline-flex;flex:none;width:16px;height:16px;color:var(--foreground);opacity:0}.select-option[aria-selected=true] .select-option__check{opacity:1}.select-option__check svg{width:14px;height:14px}.select-option[aria-disabled=true]{color:var(--muted-foreground);cursor:not-allowed}.select-option[aria-disabled=true]:hover{background-color:transparent}.select-group-label{padding:var(--space-2) var(--space-2) var(--space-1);font-size:var(--text-12);color:var(--muted-foreground)}.select-empty{padding:var(--space-4) var(--space-2);text-align:center;font-size:var(--text-13);color:var(--muted-foreground)}.checkbox{box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;flex:none;width:16px;height:16px;margin:0;background-color:var(--background);border:1px solid var(--input);border-radius:4px;cursor:pointer;transition:background-color var(--control-duration),border-color var(--control-duration),box-shadow var(--control-duration)}.checkbox:hover:not(:disabled):not(:checked):not(:indeterminate){border-color:var(--zinc-400)}.checkbox:focus-visible{outline:none;box-shadow:var(--focus-ring)}.checkbox:checked,.checkbox:indeterminate{background-color:var(--primary);border-color:var(--primary)}.checkbox:checked:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--primary-foreground);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.6 8.3l2.9 2.9 5.9-5.9' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.6 8.3l2.9 2.9 5.9-5.9' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px 14px no-repeat}.checkbox:indeterminate:after{content:"";position:absolute;left:3px;top:6px;width:8px;height:2px;border-radius:1px;background-color:var(--primary-foreground)}.checkbox:disabled{background-color:var(--muted);border-color:var(--border);cursor:not-allowed}.checkbox:disabled:checked,.checkbox:disabled:indeterminate{background-color:var(--zinc-300);border-color:var(--zinc-300)}.checkbox:disabled:after{background-color:var(--muted-foreground)}.checkbox-field{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-14);color:var(--foreground);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-field:has(.checkbox:disabled){color:var(--muted-foreground);cursor:not-allowed}.checkbox-field__text{line-height:1.4}.checkbox-group{display:flex;flex-direction:column;gap:var(--space-3)}.checkbox-group--inline{flex-direction:row;flex-wrap:wrap;gap:var(--space-6)}.radio{box-sizing:border-box;flex:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;width:var(--radio-size);height:var(--radio-size);margin:0;border:1px solid var(--input);border-radius:var(--radius-full);background-color:var(--background);cursor:pointer;transition:border-color var(--control-duration),background-color var(--control-duration)}.radio:checked{border-color:var(--primary);background-color:var(--background)}.radio:checked:after{content:"";position:absolute;top:50%;left:50%;width:var(--radio-dot);height:var(--radio-dot);margin-top:calc(-1 * var(--radio-dot) / 2);margin-left:calc(-1 * var(--radio-dot) / 2);border-radius:var(--radius-full);background-color:var(--primary)}.radio:hover:not(:disabled){border-color:var(--ring)}.radio:focus-visible{outline:none;box-shadow:var(--focus-ring)}.radio:disabled{border-color:var(--border);background-color:var(--muted);cursor:not-allowed}.radio:disabled:checked:after{background-color:var(--muted-foreground)}.radio-field{display:inline-flex;align-items:center;gap:var(--radio-gap);font-size:var(--text-14);color:var(--foreground);cursor:pointer}.radio-field__text{min-width:0}.radio-field:has(.radio:disabled){color:var(--muted-foreground);cursor:not-allowed}.radio-group{display:flex;flex-direction:column;gap:var(--radio-stack-gap)}.radio-group--inline{flex-direction:row;gap:var(--radio-inline-gap)}.radio-card{box-sizing:border-box;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--card-radius);background-color:var(--card);cursor:pointer;transition:border-color var(--control-duration),background-color var(--control-duration)}.radio-card:hover{border-color:var(--ring)}.radio-card:has(.radio:checked){border-color:var(--primary)}.radio-card__body{min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.radio-card__title{font-size:var(--text-14);font-weight:500;color:var(--foreground)}.radio-card__desc{font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground)}.radio-card .radio{margin-top:2px}.radio-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--card-gap)}.switch{box-sizing:border-box;flex:none;position:relative;display:inline-flex;align-items:center;width:var(--switch-w);height:var(--switch-h);padding:0;border:none;border-radius:var(--radius-full);background-color:var(--switch-track-off);cursor:pointer;transition:background-color var(--switch-duration)}.switch:after{content:"";position:absolute;top:50%;left:2px;width:var(--switch-knob);height:var(--switch-knob);margin-top:calc(-1 * var(--switch-knob) / 2);border-radius:var(--radius-full);background-color:var(--background);box-shadow:var(--shadow-xs);transition:transform var(--switch-duration)}.switch[aria-checked=true],.switch:checked{background-color:var(--primary)}.switch[aria-checked=true]:after,.switch:checked:after{transform:translate(calc(var(--switch-w) - var(--switch-knob) - 2 * 2px))}.switch:hover:not(:disabled){background-color:var(--zinc-300)}.switch[aria-checked=true]:hover:not(:disabled),.switch:checked:hover:not(:disabled){background-color:var(--primary-hover)}.switch:focus-visible{outline:none;box-shadow:var(--focus-ring)}.switch:disabled{background-color:var(--muted);cursor:not-allowed;opacity:.5}.switch-field{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-size:var(--text-14);color:var(--foreground)}.switch-field__text{min-width:0}.switch-field__desc{margin:var(--space-1) 0 0;font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground)}.switch[data-busy=true]{cursor:progress}.switch-group{display:flex;flex-direction:column;gap:var(--space-4)}.control--number{gap:0;padding-right:0}.control--number .control__input{text-align:right;font-variant-numeric:tabular-nums;padding-right:var(--space-2)}.control__stepper{flex:none;align-self:stretch;display:flex;flex-direction:column;width:var(--inputnum-btn-w);margin:-1px -1px -1px 0;border-left:1px solid var(--border);border-radius:0 var(--control-radius) var(--control-radius) 0;overflow:hidden}.control__step{box-sizing:border-box;flex:1 1 50%;display:inline-flex;align-items:center;justify-content:center;min-height:0;padding:0;border:none;background-color:transparent;color:var(--muted-foreground);cursor:pointer;transition:background-color var(--control-duration),color var(--control-duration)}.control__step+.control__step{border-top:1px solid var(--border)}.control__step:hover{background-color:var(--accent);color:var(--foreground)}.control__step:focus-visible{outline:none;box-shadow:var(--focus-ring);position:relative;z-index:1}.control__step svg{width:12px;height:12px}.control__step[aria-disabled=true],.control__step:disabled{color:var(--zinc-300);cursor:not-allowed}.control__step[aria-disabled=true]:hover,.control__step:disabled:hover{background-color:transparent}.control--number:has(.control__input:disabled) .control__stepper{background-color:var(--muted)}.control__unit{flex:none;font-size:var(--text-14);color:var(--muted-foreground)}.control--number .control__input{font-size:var(--text-14)}.form{display:flex;flex-direction:column;max-width:720px}.form>.form-item+.form-item{margin-top:var(--form-gap-y)}.form>.form-group+.form-group,.form>.form-item+.form-group,.form>.form-group+.form-item{margin-top:var(--form-group-gap)}.form-item{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.form-label{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-13);font-weight:500;line-height:1.4;color:var(--foreground)}.form-label__req{color:var(--destructive);font-weight:400}.form-label__optional{font-size:var(--text-12);font-weight:400;color:var(--muted-foreground)}.form-item__body{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.form-help,.form-error{margin:0;font-size:var(--text-12);line-height:1.5}.form-help{color:var(--muted-foreground)}.form-error{display:inline-flex;align-items:flex-start;gap:var(--space-1);color:var(--destructive)}.form-error__icon{flex:none;width:12px;height:12px;margin-top:3px}.form-error__icon svg{width:100%;height:100%}.form-group{display:flex;flex-direction:column;gap:var(--space-4)}.form-group__title{margin:0 0 var(--space-1);padding-bottom:var(--space-2);font-size:var(--text-14);font-weight:600;color:var(--foreground);border-bottom:1px solid var(--border)}.form--horizontal .form-item{display:grid;grid-template-columns:var(--form-label-w) minmax(0,1fr);column-gap:var(--space-4);row-gap:var(--space-2);align-items:start}.form--horizontal .form-label{min-height:var(--control-h-md)}.form--vertical .form-item__body{max-width:var(--form-field-max)}.form-inline{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-3)}.form-inline>.control,.form-inline>.select>.control{width:auto;min-width:160px}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border)}.form-actions__left{margin-right:auto}.form-actions--sticky{position:sticky;bottom:0;background-color:var(--background);z-index:var(--z-sticky)}.card{box-sizing:border-box;background-color:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-p)}.card--compact{padding:var(--card-p-compact)}.card--interactive{cursor:pointer;transition:border-color var(--control-duration),background-color var(--control-duration)}.card--interactive:hover{border-color:var(--ring)}.card--interactive.is-selected{border-color:var(--foreground)}.card__header{display:flex;flex-direction:column;gap:var(--card-head-gap);margin-bottom:var(--space-4)}.card__title{margin:0;font-size:var(--text-14);font-weight:600;line-height:1.5;color:var(--foreground)}.card__desc{margin:0;font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground)}.card__header--row{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.card__header-actions{flex:none;display:flex;align-items:center;gap:var(--space-2)}.card__body{min-width:0}.card__footer{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.card__footer--end{justify-content:flex-end}.card-group{display:flex;flex-direction:column;gap:var(--card-gap)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--card-gap)}.table-wrap{box-sizing:border-box;width:100%;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background-color:var(--card)}.table{box-sizing:border-box;width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-14);color:var(--foreground)}.table thead th{height:var(--table-head-h);padding:0 var(--table-cell-px);text-align:left;font-size:var(--text-13);font-weight:500;color:var(--muted-foreground);background-color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle}.table--sticky-head thead th{position:sticky;top:0;z-index:var(--z-sticky)}.table tbody td{height:var(--table-row-h);padding:0 var(--table-cell-px);border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table--compact tbody td{height:var(--table-row-h-compact)}.table--hover tbody tr:hover td{background-color:var(--table-hover-bg)}.table tbody tr[aria-selected=true] td{background-color:var(--accent)}.table .col-check{width:48px;padding-right:0}.table .col-num{text-align:right;font-variant-numeric:tabular-nums}.table .col-actions{text-align:right;white-space:nowrap}.table .cell-muted{color:var(--muted-foreground)}.table .cell-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-13)}.table .cell-title{font-weight:500}.table .cell-sub{display:block;margin-top:2px;font-size:var(--text-12);font-weight:400;color:var(--muted-foreground)}.th-sort{display:inline-flex;align-items:center;gap:var(--space-1);cursor:pointer;-webkit-user-select:none;user-select:none}.th-sort:hover{color:var(--foreground)}.th-sort__icon{display:inline-flex;width:14px;height:14px;color:var(--muted-foreground);opacity:.5}.th-sort__icon svg{width:100%;height:100%}.th-sort[aria-sort=ascending] .th-sort__icon,.th-sort[aria-sort=descending] .th-sort__icon{color:var(--foreground);opacity:1}.th-sort[aria-sort=descending] .th-sort__icon{transform:rotate(180deg)}.table .col-sticky-right{position:sticky;right:0;background-color:var(--card);box-shadow:-8px 0 8px -8px #0000001a}.table tbody tr:hover .col-sticky-right{background-color:var(--table-hover-bg)}.table thead .col-sticky-right{background-color:var(--muted)}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.table-toolbar__left,.table-toolbar__right{display:flex;align-items:center;gap:var(--space-2)}.table-toolbar__title{font-size:var(--text-14);font-weight:600}.badge{box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--space-1);height:var(--badge-h-sm);padding:0 var(--badge-px);border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-12);font-weight:500;line-height:1;white-space:nowrap;vertical-align:middle}.badge--md{height:var(--badge-h-md);padding:0 var(--space-3);font-size:var(--text-13)}.badge__dot{flex:none;width:6px;height:6px;border-radius:var(--radius-full);background-color:currentColor}.badge--success{background-color:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}.badge--warning{background-color:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}.badge--info{background-color:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}.badge--destructive{background-color:var(--destructive-bg);border-color:var(--destructive-border);color:var(--destructive-text)}.badge--neutral{background-color:var(--muted);border-color:var(--border);color:var(--muted-foreground)}.badge--default{background-color:var(--primary);color:var(--primary-foreground)}.badge--secondary{background-color:var(--secondary);color:var(--secondary-foreground)}.badge--outline{background-color:transparent;border-color:var(--border);color:var(--foreground)}.badge--plain{height:auto;padding:0;border:0;background:none;font-weight:400;color:var(--foreground)}.badge--plain.badge--success{color:var(--success-text)}.badge--plain.badge--warning{color:var(--warning-text)}.badge--plain.badge--info{color:var(--info-text)}.badge--plain.badge--destructive{color:var(--destructive-text)}.badge--plain.badge--neutral{color:var(--muted-foreground)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-size:var(--text-13);color:var(--muted-foreground)}.pagination__total{font-variant-numeric:tabular-nums}.pagination__right{display:flex;align-items:center;gap:var(--space-4)}.pagination__pages{display:flex;align-items:center;gap:var(--space-1)}.pagination__size{display:flex;align-items:center;gap:var(--space-2);white-space:nowrap}.page-btn{box-sizing:border-box;display:inline-flex;flex:none;align-items:center;justify-content:center;min-width:var(--pagination-size);height:var(--pagination-size);padding:0 var(--space-2);font-family:inherit;font-size:var(--text-13);font-variant-numeric:tabular-nums;color:var(--zinc-600);background-color:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--control-duration),color var(--control-duration),border-color var(--control-duration)}.page-btn:hover:not(:disabled):not([aria-current=page]){background-color:var(--accent);color:var(--foreground)}.page-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-btn[aria-current=page]{background-color:var(--primary);color:var(--primary-foreground);font-weight:500}.page-btn--nav{padding:0}.page-btn--nav svg{width:16px;height:16px}.page-btn:disabled{color:var(--zinc-300);background-color:transparent;cursor:not-allowed}.page-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:var(--pagination-size);height:var(--pagination-size);color:var(--muted-foreground);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.pagination-bar{margin-top:var(--space-4)}.filterbar{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-3);min-height:var(--filterbar-h);padding:var(--space-2) 0}.filterbar__group{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0}.filterbar__end{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.filterbar .control[data-width=sm],.filterbar .select[data-width=sm]{width:160px}.filterbar .control[data-width=md],.filterbar .select[data-width=md]{width:200px}.filterbar .control[data-width=lg],.filterbar .select[data-width=lg]{width:240px}.filterbar .select{width:200px}.filterbar__more{display:inline-flex;align-items:center;gap:var(--space-1);height:var(--control-h-md);padding:0 var(--space-2);font-family:inherit;font-size:var(--text-13);color:var(--zinc-600);background:none;border:0;cursor:pointer}.filterbar__more:hover{color:var(--foreground)}.filterbar__more svg{width:14px;height:14px;transition:transform var(--control-duration)}.filterbar__more[aria-expanded=true] svg{transform:rotate(180deg)}.filter-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding-bottom:var(--space-3);font-size:var(--text-12)}.filter-chip{box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-2);background-color:var(--secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--secondary-foreground);font-size:var(--text-12);white-space:nowrap}.filter-chip__k{color:var(--muted-foreground)}.filter-chip__x{display:inline-flex;width:12px;height:12px;color:var(--muted-foreground);cursor:pointer}.filter-chip__x:hover{color:var(--foreground)}.filter-chip__x svg{width:100%;height:100%}.filter-chips__clear{color:var(--muted-foreground);font-size:var(--text-12);cursor:pointer;background:none;border:0;padding:0}.filter-chips__clear:hover{color:var(--foreground);text-decoration:underline}.bulkbar{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-3);height:var(--bulkbar-h);padding:0 var(--space-4);background-color:var(--accent);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-13)}.bulkbar__count{font-weight:500;font-variant-numeric:tabular-nums}.bulkbar__count b{font-weight:600;color:var(--foreground)}.bulkbar__actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.app{display:flex;height:100vh;overflow:hidden;background:var(--app-canvas)}.app__sidebar{box-sizing:border-box;flex:none;width:var(--sidebar-w);display:flex;flex-direction:column;overflow-y:auto;background:var(--background);border-right:1px solid var(--border);transition:width var(--control-duration)}.app--collapsed .app__sidebar{width:var(--sidebar-w-collapsed)}.app__main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{box-sizing:border-box;flex:none;height:var(--topbar-h);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-6);background:var(--background);border-bottom:1px solid var(--border)}.app__scroll{flex:1;overflow-y:auto}.app__content{box-sizing:border-box;max-width:var(--content-max-w);margin:0 auto;padding:var(--content-px)}.sidebar{box-sizing:border-box;flex:1;display:flex;flex-direction:column;padding:var(--space-2)}.sidebar__brand{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-2);height:var(--topbar-h);padding:0 var(--space-2);font-size:var(--text-16);font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden}.sidebar__brand-icon{flex:none;width:24px;height:24px}.sidebar__brand-icon svg{width:100%;height:100%}.sidebar__group-title{font-size:var(--text-12);color:var(--muted-foreground);padding:var(--space-3) var(--space-2) var(--space-1);white-space:nowrap}.nav-item{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-2);height:var(--control-h-md);padding:0 var(--space-2);margin-bottom:1px;border-radius:var(--radius-sm);font-size:var(--text-14);color:var(--foreground);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--control-duration),color var(--control-duration)}.nav-item:hover{background:var(--accent)}.nav-item__icon{flex:none;width:16px;height:16px;color:var(--muted-foreground)}.nav-item__icon svg{width:100%;height:100%}.nav-item__text{overflow:hidden;text-overflow:ellipsis}.nav-item__badge{margin-left:auto}.nav-item.is-active{background:var(--accent);font-weight:500}.nav-item.is-active .nav-item__icon{color:var(--foreground)}.sidebar--bar .nav-item.is-active{background:transparent;border-left:2px solid var(--primary);border-radius:0;padding-left:calc(var(--space-2) - 2px)}.sidebar--bar .nav-item.is-active .nav-item__icon{color:var(--primary)}.nav-sub{display:none;padding-left:28px}.nav-item.is-expanded+.nav-sub{display:block}.nav-sub .nav-item{height:var(--control-h-sm);font-size:var(--text-13)}.app--collapsed .sidebar__brand-text,.app--collapsed .sidebar__group-title,.app--collapsed .nav-item__text,.app--collapsed .nav-item__badge{display:none}.app--collapsed .nav-item,.app--collapsed .sidebar__brand{justify-content:center;padding:0}.sidebar__footer{margin-top:auto;border-top:1px solid var(--border);padding-top:var(--space-2)}.page-header{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-3);min-height:var(--page-header-h);margin-bottom:var(--space-5);border-bottom:1px solid var(--border)}.page-header--desc{min-height:var(--page-header-h-desc)}.page-header__main{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.page-header__back{flex:none}.page-header__back .btn__icon,.page-header__back svg{width:16px;height:16px}.page-header__title{margin:0;font-size:var(--text-20);font-weight:600;line-height:1.3;color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-header__desc{margin:0;font-size:var(--text-13);color:var(--muted-foreground);line-height:1.5}.page-header__actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex:none}.page-header--sticky{position:sticky;top:0;z-index:var(--z-sticky);background:var(--app-canvas);padding-top:var(--space-4)}.tabs{box-sizing:border-box;display:flex;align-items:stretch;gap:var(--space-6);height:var(--tabs-h);border-bottom:1px solid var(--border)}.tab{box-sizing:border-box;position:relative;display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-1);font-size:var(--text-14);color:var(--muted-foreground);background:none;border:none;cursor:pointer;white-space:nowrap;transition:color var(--control-duration)}.tab:hover{color:var(--foreground)}.tab:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.tab__badge{font-size:var(--text-12)}.tab.is-active{color:var(--foreground);font-weight:500}.tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:var(--tabs-indicator);background:var(--primary);border-radius:var(--radius-full)}.tabs--pill{gap:var(--space-2);height:auto;border-bottom:none;padding:var(--space-1);background:var(--muted);border-radius:var(--radius-md);width:fit-content}.tabs--pill .tab{height:var(--control-h-sm);padding:0 var(--space-3);border-radius:var(--radius-sm)}.tabs--pill .tab:hover{background:var(--background)}.tabs--pill .tab.is-active{background:var(--background);box-shadow:var(--shadow-xs)}.tabs--pill .tab.is-active:after{display:none}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:var(--breadcrumb-gap);font-size:var(--breadcrumb-fs);line-height:1.5;color:var(--muted-foreground)}.breadcrumb__item{display:inline-flex;align-items:center;gap:var(--space-1);max-width:var(--breadcrumb-max-w);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);text-decoration:none;border-radius:var(--radius-sm)}a.breadcrumb__item:hover{color:var(--foreground)}a.breadcrumb__item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.breadcrumb__item[aria-current=page],.breadcrumb__item--current{color:var(--foreground);font-weight:500;cursor:default}.breadcrumb__sep{display:inline-flex;align-items:center;color:var(--muted-foreground);-webkit-user-select:none;user-select:none}.breadcrumb__sep svg{width:var(--text-12);height:var(--text-12);fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.breadcrumb__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:var(--space-6);height:var(--space-6);padding:0 var(--space-1);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted-foreground);font-size:inherit;font-family:inherit;cursor:pointer}.breadcrumb__ellipsis:hover{background-color:var(--accent);color:var(--foreground)}.breadcrumb__ellipsis:focus-visible{outline:none;box-shadow:var(--focus-ring)}.breadcrumb--in-header{margin-bottom:var(--space-2)}.control--datepicker{cursor:pointer}.control--datepicker .control__icon,.control--datepicker .control__value--placeholder{color:var(--muted-foreground)}.dp{position:relative;width:100%}.dp-panel{box-sizing:border-box;position:absolute;z-index:var(--z-popover);top:calc(100% + var(--space-1));left:0;display:flex;width:var(--dp-panel-w);background-color:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--dp-radius);box-shadow:var(--dp-shadow);overflow:hidden;animation:dp-in var(--overlay-duration) ease-out}.dp-panel--range{width:var(--dp-panel-w-range)}@keyframes dp-in{0%{opacity:0;transform:translateY(calc(-1 * var(--overlay-shift)))}to{opacity:1;transform:translateY(0)}}.dp-shortcuts{box-sizing:border-box;flex:none;width:var(--dp-shortcut-w);display:flex;flex-direction:column;padding:var(--dp-p);gap:var(--space-1);background-color:var(--muted);border-right:1px solid var(--border)}.dp-shortcut{box-sizing:border-box;display:flex;align-items:center;height:var(--menu-item-h);padding:0 var(--menu-item-px);border:none;border-radius:var(--menu-item-radius);background-color:transparent;font-family:inherit;font-size:var(--text-13);color:var(--foreground);text-align:left;white-space:nowrap;cursor:pointer;transition:background-color var(--control-duration)}.dp-shortcut:hover{background-color:var(--background)}.dp-shortcut:focus-visible{outline:none;box-shadow:var(--focus-ring)}.dp-main{box-sizing:border-box;flex:1 1 auto;min-width:0;display:flex;flex-direction:column;padding:var(--dp-p)}.dp-head{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-1);height:var(--dp-head-h);margin-bottom:var(--space-2)}.dp-head__label{flex:1 1 auto;min-width:0;text-align:center;font-size:var(--text-14);font-weight:500;color:var(--foreground);font-variant-numeric:tabular-nums}.dp-grid{display:grid;grid-template-columns:repeat(7,var(--dp-cell));gap:var(--space-2)}.dp-week{display:inline-flex;align-items:center;justify-content:center;height:var(--dp-cell);font-size:var(--text-12);color:var(--muted-foreground)}.dp-cell-day{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--dp-cell);height:var(--dp-cell);padding:0;border:1px solid transparent;border-radius:var(--dp-cell-radius);background-color:transparent;font-family:inherit;font-size:var(--text-14);color:var(--foreground);cursor:pointer;font-variant-numeric:tabular-nums;transition:background-color var(--control-duration),color var(--control-duration)}.dp-cell-day:hover{background-color:var(--accent);color:var(--accent-foreground)}.dp-cell-day:focus-visible{outline:none;box-shadow:var(--focus-ring)}.dp-cell-day--today{border-color:var(--primary);font-weight:500}.dp-cell-day.is-selected,.dp-cell-day.is-selected:hover{background-color:var(--primary);color:var(--primary-foreground);font-weight:500}.dp-cell-day.is-in-range{background-color:var(--muted);border-radius:0}.dp-cell-day.is-range-start{border-top-right-radius:0;border-bottom-right-radius:0}.dp-cell-day.is-range-end{border-top-left-radius:0;border-bottom-left-radius:0}.dp-cell-day--outside{color:var(--muted-foreground)}.dp-cell-day[aria-disabled=true]{color:var(--zinc-300);cursor:not-allowed}.dp-cell-day[aria-disabled=true]:hover{background-color:transparent}.dp-foot{box-sizing:border-box;display:flex;align-items:center;justify-content:flex-end;gap:var(--dialog-gap);margin-top:var(--dp-p);padding-top:var(--dp-p);border-top:1px solid var(--border)}.descriptions{box-sizing:border-box;display:grid;grid-template-columns:repeat(var(--desc-cols),minmax(0,1fr));column-gap:var(--desc-col-gap);row-gap:var(--desc-row-gap);margin:0}.descriptions--1{--desc-cols: 1}.descriptions--2{--desc-cols: 2}.descriptions--3{--desc-cols: 3}.descriptions__item{display:flex;align-items:flex-start;gap:var(--space-2);min-width:0;min-height:var(--desc-row-h);padding:var(--space-2) 0}.descriptions__item--full{grid-column:1 / -1}.descriptions__label{flex:none;box-sizing:border-box;width:var(--desc-label-w);font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground);padding-top:1px}.descriptions__value{flex:1 1 auto;min-width:0;margin:0;font-size:var(--text-14);line-height:1.5;color:var(--foreground);word-break:break-word}.descriptions__value--empty{color:var(--muted-foreground)}.descriptions__value a{color:var(--foreground);text-decoration:underline;text-underline-offset:2px}.descriptions__item--copy .descriptions__value{display:flex;align-items:center;gap:var(--space-2)}@media (max-width: 768px){.descriptions--2,.descriptions--3{--desc-cols: 1}.descriptions__label{width:96px}}.empty{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--empty-py) var(--space-4);text-align:center}.empty--sm{padding:var(--space-8) var(--space-4)}.empty__icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--empty-icon);height:var(--empty-icon);margin-bottom:var(--empty-actions-gap);color:var(--muted-foreground)}.empty--sm .empty__icon{width:var(--space-10);height:var(--space-10);margin-bottom:var(--space-3)}.empty__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.empty__title{margin:0;font-size:var(--text-14);font-weight:500;line-height:1.5;color:var(--foreground)}.empty__desc{max-width:var(--empty-desc-max-w);margin:var(--empty-gap) 0 0;font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground)}.empty__actions{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--empty-actions-gap)}.overlay{position:fixed;z-index:var(--z-overlay);top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background-color:var(--overlay-bg);animation:overlay-in var(--overlay-duration) ease-out}.overlay[hidden]{display:none}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.dialog{box-sizing:border-box;display:flex;flex-direction:column;width:100%;max-width:var(--dialog-w-md);max-height:var(--dialog-max-h);background-color:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--dialog-radius);box-shadow:var(--dialog-shadow);animation:dialog-in var(--overlay-duration) ease-out}.dialog--sm{max-width:var(--dialog-w-sm)}.dialog--md{max-width:var(--dialog-w-md)}.dialog--lg{max-width:var(--dialog-w-lg)}@keyframes dialog-in{0%{opacity:0;transform:translateY(var(--overlay-shift))}to{opacity:1;transform:translateY(0)}}.dialog__header{box-sizing:border-box;flex:none;position:relative;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--dialog-py) var(--dialog-px);padding-right:calc(var(--dialog-px) + var(--control-h-md) - var(--space-2))}.dialog__title{margin:0;font-size:var(--text-16);font-weight:600;line-height:1.5;color:var(--foreground)}.dialog__desc{margin:0;font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground)}.dialog__close{position:absolute;top:var(--space-3);right:var(--space-3)}.dialog__body{box-sizing:border-box;flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 var(--dialog-px) var(--dialog-py)}.dialog--confirm .dialog__body{padding-top:0}.dialog__footer{box-sizing:border-box;flex:none;display:flex;align-items:center;justify-content:flex-end;gap:var(--dialog-gap);padding:var(--dialog-py) var(--dialog-px);border-top:1px solid var(--border)}.dialog__footer--split{justify-content:space-between}.dialog__footer-note{font-size:var(--text-12);color:var(--muted-foreground)}.dialog__icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--space-10);height:var(--space-10);border-radius:var(--radius-full);background-color:var(--destructive-bg);color:var(--destructive-text)}.dialog__icon svg{width:var(--space-5);height:var(--space-5)}.dialog--confirm .dialog__confirm{display:flex;align-items:flex-start;gap:var(--space-4)}.dialog--confirm .dialog__confirm-body{min-width:0}.overlay--drawer{align-items:stretch;justify-content:flex-end;padding:0}.drawer{box-sizing:border-box;display:flex;flex-direction:column;width:var(--drawer-w);max-width:100vw;height:100%;background-color:var(--card);color:var(--card-foreground);border-left:1px solid var(--border);box-shadow:var(--drawer-shadow);animation:drawer-in var(--drawer-duration) ease-out}.drawer--lg{width:var(--drawer-w-lg)}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer .dialog__body{padding-top:var(--dialog-py)}.drawer .dialog__close{top:var(--space-3);right:var(--space-3)}@media (max-width: 768px){.drawer,.drawer--lg{width:100vw;border-left:0}}.overlay--drawer.is-closing .drawer{animation:drawer-out var(--drawer-duration) ease-in forwards}@keyframes drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}.toast-region{position:fixed;z-index:var(--z-toast);top:var(--toast-offset);right:var(--toast-offset);display:flex;flex-direction:column;gap:var(--toast-gap);width:var(--toast-w);pointer-events:none}.toast-region>*{pointer-events:auto}.toast{box-sizing:border-box;position:relative;display:flex;align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--toast-py) var(--toast-px);background-color:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--toast-radius);box-shadow:var(--toast-shadow);overflow:hidden;animation:toast-in var(--overlay-duration) ease-out}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--toast-bar-w);background-color:var(--muted-foreground)}@keyframes toast-in{0%{opacity:0;transform:translate(var(--overlay-shift))}to{opacity:1;transform:translate(0)}}.toast--success:before{background-color:var(--success)}.toast--success .toast__icon{color:var(--success)}.toast--warning:before{background-color:var(--warning)}.toast--warning .toast__icon{color:var(--warning)}.toast--info:before{background-color:var(--info)}.toast--info .toast__icon{color:var(--info)}.toast--destructive:before{background-color:var(--destructive)}.toast--destructive .toast__icon{color:var(--destructive)}.toast__icon{flex:none;display:inline-flex;width:var(--toast-icon);height:var(--toast-icon);margin-top:2px;color:var(--muted-foreground)}.toast__icon svg{width:100%;height:100%}.toast__content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.toast__title{margin:0;font-size:var(--text-14);font-weight:500;line-height:1.5;color:var(--foreground)}.toast__desc{margin:0;font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground)}.toast__action{flex:none}.toast__close{flex:none;color:var(--muted-foreground);cursor:pointer;background:none;border:none;padding:var(--space-1);display:inline-flex;transition:color var(--control-duration)}.toast__close:hover{color:var(--foreground)}.toast__close svg{width:14px;height:14px}@media (max-width: 480px){.toast-region{left:var(--space-4);right:var(--space-4);width:auto}}.alert{box-sizing:border-box;display:flex;align-items:flex-start;gap:var(--alert-gap);padding:var(--alert-py) var(--alert-px);border:1px solid var(--border);border-radius:var(--alert-radius);background-color:var(--card);color:var(--foreground)}.alert--info{border-color:var(--info-border);background-color:var(--info-bg)}.alert--info .alert__icon{color:var(--info-text)}.alert--success{border-color:var(--success-border);background-color:var(--success-bg)}.alert--success .alert__icon{color:var(--success-text)}.alert--warning{border-color:var(--warning-border);background-color:var(--warning-bg)}.alert--warning .alert__icon{color:var(--warning-text)}.alert--destructive{border-color:var(--destructive-border);background-color:var(--destructive-bg)}.alert--destructive .alert__icon{color:var(--destructive-text)}.alert__icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--alert-icon);height:var(--alert-icon);margin-top:2px}.alert__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.alert__content{flex:1 1 auto;min-width:0}.alert__title{margin:0;font-size:var(--text-14);font-weight:500;line-height:1.5;color:var(--foreground)}.alert__title+.alert__desc{margin-top:var(--space-1)}.alert__desc{margin:0;font-size:var(--text-13);line-height:1.5;color:var(--muted-foreground)}.alert__desc a,.alert__action{color:var(--foreground);font-weight:500;text-decoration:underline;text-underline-offset:2px;background:none;border:0;padding:0;font-size:inherit;font-family:inherit;cursor:pointer}.alert__close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--space-6);height:var(--space-6);margin:-2px calc(var(--space-2) * -1) -2px 0;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted-foreground);cursor:pointer}.alert__close:hover{background-color:var(--accent);color:var(--foreground)}.alert__close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.alert__close svg{width:var(--text-14);height:var(--text-14);fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round}.popconfirm{position:relative;display:inline-flex;align-items:center}.popconfirm__panel{position:absolute;z-index:var(--z-popover);bottom:calc(100% + var(--popconfirm-offset));right:0;box-sizing:border-box;width:var(--popconfirm-w);padding:var(--popconfirm-p);border:1px solid var(--border);border-radius:var(--popconfirm-radius);background-color:var(--popover);box-shadow:var(--popconfirm-shadow);text-align:left;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(var(--overlay-shift));transition:opacity var(--overlay-duration) ease-out,transform var(--overlay-duration) ease-out,visibility 0s linear var(--overlay-duration)}.popconfirm__panel[data-open=true],.popconfirm.is-open>.popconfirm__panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}.popconfirm__panel:after{content:"";position:absolute;top:100%;right:var(--space-4);width:var(--tooltip-arrow);height:var(--tooltip-arrow);margin-top:calc(var(--tooltip-arrow) / -2);border-radius:1px;background-color:var(--popover);transform:rotate(45deg)}.popconfirm__panel--up{top:calc(100% + var(--popconfirm-offset));bottom:auto;transform:translateY(calc(var(--overlay-shift) * -1))}.popconfirm__panel--up:after{top:auto;bottom:100%;margin-top:0;margin-bottom:calc(var(--tooltip-arrow) / -2)}.popconfirm__panel--up[data-open=true],.popconfirm.is-open>.popconfirm__panel--up{transform:translateY(0)}.popconfirm__panel--left{right:auto;left:0}.popconfirm__panel--left:after{right:auto;left:var(--space-4)}.popconfirm__title{margin:0;font-size:var(--text-13);font-weight:500;line-height:1.5;color:var(--foreground)}.popconfirm__desc{margin:var(--space-1) 0 0;font-size:var(--text-12);line-height:1.5;color:var(--muted-foreground)}.popconfirm__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.popconfirm__actions .btn{flex:none}.menu{position:relative;display:inline-flex}.menu-panel{box-sizing:border-box;position:absolute;z-index:var(--z-popover);top:calc(100% + var(--space-1));left:0;min-width:var(--menu-panel-min-w);max-width:var(--menu-panel-max-w);padding:var(--menu-panel-p);background-color:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--menu-panel-radius);box-shadow:var(--menu-panel-shadow);animation:menu-in var(--overlay-duration) ease-out}.menu-panel--right{left:auto;right:0}.menu-panel--up{top:auto;bottom:calc(100% + var(--space-1))}@keyframes menu-in{0%{opacity:0;transform:translateY(calc(-1 * var(--overlay-shift)))}to{opacity:1;transform:translateY(0)}}.menu-item{box-sizing:border-box;display:flex;align-items:center;gap:var(--menu-item-gap);width:100%;height:var(--menu-item-h);padding:0 var(--menu-item-px);border:none;border-radius:var(--menu-item-radius);background-color:transparent;font-family:inherit;font-size:var(--text-14);color:var(--foreground);text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--control-duration),color var(--control-duration)}.menu-item:hover,.menu-item[data-active=true]{background-color:var(--accent);color:var(--accent-foreground)}.menu-item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.menu-item__icon{flex:none;display:inline-flex;width:var(--menu-item-icon);height:var(--menu-item-icon);color:var(--muted-foreground)}.menu-item__icon svg{width:100%;height:100%}.menu-item__text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.menu-item__hint{flex:none;margin-left:auto;font-size:var(--text-12);color:var(--muted-foreground);font-variant-numeric:tabular-nums}.menu-item--danger{color:var(--destructive-text)}.menu-item--danger:hover,.menu-item--danger[data-active=true]{background-color:var(--destructive-bg);color:var(--destructive-text)}.menu-item--danger .menu-item__icon{color:var(--destructive-text)}.menu-label{padding:var(--space-2) var(--menu-item-px) var(--space-1);font-size:var(--text-12);color:var(--muted-foreground);cursor:default}.menu-sep{height:1px;margin:var(--space-1) 0;background-color:var(--border);border:none}.menu-item[aria-disabled=true]{color:var(--muted-foreground);cursor:not-allowed}.menu-item[aria-disabled=true]:hover{background-color:transparent}.tooltip{position:relative;display:inline-flex;align-items:center}.tooltip__bubble{position:absolute;z-index:var(--z-popover);bottom:calc(100% + var(--tooltip-offset));left:50%;box-sizing:border-box;max-width:var(--tooltip-max-w);padding:var(--tooltip-py) var(--tooltip-px);border-radius:var(--tooltip-radius);background-color:var(--tooltip-bg);color:var(--tooltip-fg);font-size:var(--text-12);line-height:1.5;text-align:left;white-space:normal;transform:translate(-50%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--overlay-duration) ease-out,visibility 0s linear var(--overlay-duration)}.tooltip__bubble:after{content:"";position:absolute;top:100%;left:50%;width:var(--tooltip-arrow);height:var(--tooltip-arrow);margin-top:calc(var(--tooltip-arrow) / -2);margin-left:calc(var(--tooltip-arrow) / -2);border-radius:1px;background-color:var(--tooltip-bg);transform:rotate(45deg)}.tooltip:hover>.tooltip__bubble,.tooltip:focus-within>.tooltip__bubble{opacity:1;visibility:visible;transition-delay:var(--tooltip-delay),0s}.tooltip:focus-within>.tooltip__bubble{transition-delay:0s,0s}.tooltip__bubble--bottom{top:calc(100% + var(--tooltip-offset));bottom:auto}.tooltip__bubble--bottom:after{top:auto;bottom:100%;margin-top:0;margin-bottom:calc(var(--tooltip-arrow) / -2)}.tooltip__bubble--left{top:50%;right:calc(100% + var(--tooltip-offset));bottom:auto;left:auto;transform:translateY(-50%)}.tooltip__bubble--left:after{top:50%;right:calc(var(--tooltip-arrow) / -2);bottom:auto;left:auto;margin:calc(var(--tooltip-arrow) / -2) 0 0 0}.tooltip__bubble--right{top:50%;bottom:auto;left:calc(100% + var(--tooltip-offset));transform:translateY(-50%)}.tooltip__bubble--right:after{top:50%;bottom:auto;left:calc(var(--tooltip-arrow) / -2);margin:calc(var(--tooltip-arrow) / -2) 0 0 0}.tooltip--truncate{display:block;min-width:0}.tooltip--truncate>.tooltip__trigger{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload{box-sizing:border-box;display:flex;flex-direction:column;width:100%}.upload__drop{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--upload-drop-py) var(--upload-drop-px);border:1px dashed var(--border);border-radius:var(--upload-drop-radius);background-color:var(--card);color:var(--muted-foreground);text-align:center;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.upload__drop:hover,.upload__drop:focus-visible{border-color:var(--zinc-400);background-color:var(--muted)}.upload__drop:focus-visible{outline:none;box-shadow:var(--focus-ring)}.upload__drop--over{border-color:var(--primary);border-style:dashed;background-color:var(--accent)}.upload__drop[aria-disabled=true]{border-color:var(--border);background-color:var(--muted);color:var(--muted-foreground);cursor:not-allowed}.upload__icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--space-6);height:var(--space-6);margin-bottom:var(--space-1);color:var(--muted-foreground)}.upload__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.upload__title{margin:0;font-size:var(--text-14);font-weight:500;color:var(--foreground)}.upload__title em{font-style:normal;text-decoration:underline;text-underline-offset:2px}.upload__hint{margin:0;font-size:var(--text-12);line-height:1.5;color:var(--muted-foreground)}.upload--compact .upload__drop{padding:var(--space-4);gap:var(--space-1)}.upload__list{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none}.upload__file{position:relative;box-sizing:border-box;display:flex;align-items:center;gap:var(--upload-file-gap);height:var(--upload-file-h);padding:0 var(--space-1) 0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--card);overflow:hidden}.upload__thumb{display:flex;align-items:center;justify-content:center;flex:none;width:var(--upload-thumb);height:var(--upload-thumb);overflow:hidden;border-radius:var(--radius-sm);background-color:var(--muted);color:var(--muted-foreground)}.upload__thumb img{display:block;width:100%;height:100%;object-fit:cover}.upload__thumb svg{width:var(--space-4);height:var(--space-4);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.upload__meta{display:flex;flex-direction:column;gap:var(--upload-meta-gap);flex:1;min-width:0}.upload__name{overflow:hidden;font-size:var(--text-13);color:var(--foreground);text-overflow:ellipsis;white-space:nowrap}.upload__size{font-size:var(--text-12);color:var(--muted-foreground);font-variant-numeric:tabular-nums}.upload__action{flex:none}.upload__progress{position:absolute;left:0;right:0;bottom:0;height:var(--upload-progress-h);overflow:hidden;background-color:var(--muted)}.upload__progress-bar{display:block;height:100%;width:var(--upload-value, 0%);background-color:var(--primary);transition:width .2s ease}.upload__file--done .upload__size{color:var(--muted-foreground)}.upload__file--error{border-color:var(--destructive)}.upload__file--error .upload__name,.upload__file--error .upload__size{color:var(--destructive-text)}.upload__file--error .upload__thumb{color:var(--destructive-text);background-color:var(--destructive-tint)}.upload__file--paused .upload__progress-bar{background-color:var(--muted-foreground)}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:var(--avatar-md);height:var(--avatar-md);overflow:hidden;border-radius:var(--radius-full);background-color:var(--muted);color:var(--muted-foreground);font-size:var(--text-12);font-weight:500;line-height:1;text-transform:uppercase;-webkit-user-select:none;user-select:none}.avatar--sm{width:var(--avatar-sm);height:var(--avatar-sm);font-size:var(--text-12)}.avatar--lg{width:var(--avatar-lg);height:var(--avatar-lg);font-size:var(--text-14)}.avatar--org{border-radius:var(--avatar-radius-org)}.avatar__img{display:block;width:100%;height:100%;object-fit:cover}.avatar__text{display:block;max-width:100%;overflow:hidden;white-space:nowrap}.avatar-group{display:inline-flex;align-items:center}.avatar-group>.avatar+.avatar{margin-left:var(--avatar-overlap)}.avatar-group>.avatar{box-shadow:0 0 0 var(--avatar-ring) var(--avatar-ring-color)}.avatar--more{background-color:var(--accent);color:var(--foreground);font-variant-numeric:tabular-nums}.card .avatar-group{--avatar-ring-color: var(--card)}.skeleton{display:block;box-sizing:border-box;height:var(--text-12);border-radius:var(--skeleton-radius);background-color:var(--skeleton-bg);animation:skeleton-pulse var(--skeleton-duration) ease-in-out infinite}.skeleton--title{height:var(--space-5);width:40%}.skeleton--circle{border-radius:var(--radius-full);aspect-ratio:1}.skeleton--avatar{width:var(--avatar-md);height:var(--avatar-md);border-radius:var(--radius-full)}.skeleton--button{height:var(--control-h-md);width:var(--skeleton-w-sm);border-radius:var(--btn-radius)}.skeleton-lines{display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-lines>.skeleton:last-child{width:60%}.skeleton-media{display:flex;align-items:flex-start;gap:var(--space-3)}.skeleton-media__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-1)}.skeleton-media__body>.skeleton:last-child{width:40%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:var(--skeleton-opacity-min)}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;opacity:.7}}.skeleton-rows{display:flex;flex-direction:column}.skeleton-rows__row{display:flex;align-items:center;gap:var(--space-6);height:var(--table-row-h);padding:0 var(--table-cell-px);border-bottom:1px solid var(--border)}.skeleton-rows__row:last-child{border-bottom:none}.skeleton-rows__row>.skeleton{height:var(--skeleton-bar-h)}.skeleton-rows__row>.skeleton--xs{width:var(--space-4);flex:none}.skeleton-rows__row>.skeleton--sm{width:var(--skeleton-w-sm)}.skeleton-rows__row>.skeleton--md{width:var(--skeleton-w-md)}.skeleton-rows__row>.skeleton--lg{width:var(--skeleton-w-lg)}.skeleton-rows__row>.skeleton--fill{flex:1}.progress{position:relative;overflow:hidden;width:100%;height:var(--progress-h);border-radius:var(--progress-radius);background-color:var(--progress-track)}.progress__bar{display:block;height:100%;width:var(--progress-value, 0%);border-radius:inherit;background-color:var(--primary);transition:width .2s ease}.progress--error .progress__bar{background-color:var(--destructive)}.progress--paused .progress__bar{background-color:var(--muted-foreground)}.progress--indeterminate .progress__bar{width:35%;transition:none;animation:progress-slide 1.2s ease-in-out infinite}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}@media (prefers-reduced-motion: reduce){.progress--indeterminate .progress__bar{width:100%;animation:none;opacity:.6}}.progress--thin{height:var(--progress-h-thin);border-radius:0}.progress--page{position:fixed;top:0;left:0;right:0;z-index:var(--z-toast)}.progress--page .progress__bar{width:40%;transition:none;animation:progress-slide 1.2s ease-in-out infinite}.progress-line{display:flex;align-items:center;gap:var(--space-3)}.progress-line>.progress{flex:1;min-width:0}.progress-line__value{flex:none;min-width:var(--space-10);text-align:right;font-size:var(--text-12);font-variant-numeric:tabular-nums;color:var(--muted-foreground)}.spinner{display:inline-block;flex:none;box-sizing:border-box;width:var(--spinner-sm);height:var(--spinner-sm);border:var(--spinner-border) solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:spinner-rotate var(--spinner-duration) linear infinite;vertical-align:-.125em}.spinner--md{width:var(--spinner-md);height:var(--spinner-md)}.spinner--corner{position:absolute;top:var(--space-3);right:var(--space-3);color:var(--muted-foreground)}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:1.6s}}.tpl{display:flex;flex-direction:column;gap:var(--tpl-gap)}.tpl-list__filters{display:flex;flex-direction:column}.tpl-list__table{min-width:0}.tpl-list__state{border:1px solid var(--border);border-radius:var(--radius-lg);background-color:var(--card)}.tpl-skeleton{display:flex;flex-direction:column}.tpl-skeleton__row{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-6);height:var(--table-row-h);padding:0 var(--table-cell-px);border-bottom:1px solid var(--border)}.tpl-skeleton__row:last-child{border-bottom:none}.tpl-skeleton__bar{height:var(--tpl-skeleton-bar);border-radius:var(--radius-full);background-color:var(--tpl-skeleton-bg);animation:tpl-skeleton-pulse 1.4s ease-in-out infinite}.tpl-skeleton__bar--xs{width:48px;flex:none}.tpl-skeleton__bar--sm{width:96px}.tpl-skeleton__bar--md{width:160px}.tpl-skeleton__bar--lg{width:240px}.tpl-skeleton__bar--fill{flex:1}@keyframes tpl-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.tpl-skeleton__bar{animation:none}}.tpl-detail{display:grid;grid-template-columns:minmax(0,1fr) var(--tpl-aside-w);gap:var(--tpl-gap-lg);align-items:start}.tpl-detail--full{grid-template-columns:minmax(0,1fr)}@media (max-width: 1199px){.tpl-detail{grid-template-columns:minmax(0,1fr)}}.tpl-detail__main,.tpl-detail__aside{display:flex;flex-direction:column;gap:var(--tpl-gap);min-width:0}.tpl-detail__tabs{margin-bottom:var(--space-5)}.tpl-aside-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);font-size:var(--text-13)}.tpl-aside-row+.tpl-aside-row{margin-top:var(--space-2)}.tpl-aside-row__k{flex:none;color:var(--muted-foreground);font-size:var(--text-12)}.tpl-aside-row__v{min-width:0;text-align:right;color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-form__body{display:flex;flex-direction:column;gap:var(--tpl-gap);max-width:var(--tpl-form-w)}.tpl-form__actions{box-sizing:border-box;position:sticky;bottom:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);height:var(--tpl-actions-h);margin:var(--tpl-gap) calc(var(--content-px) * -1) calc(var(--content-px) * -1);padding:0 var(--content-px);background-color:var(--card);border-top:1px solid var(--border)}.tpl-form__actions-inner{display:flex;align-items:center;gap:var(--space-2);width:100%;max-width:var(--tpl-form-w);margin-right:auto}.tpl-form__actions-inner .tpl-form__actions-end{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.tpl-form__dirty{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-13);color:var(--muted-foreground)}.tpl-dash__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--card-gap)}@media (max-width: 1279px){.tpl-dash__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 767px){.tpl-dash__stats{grid-template-columns:minmax(0,1fr)}}.stat{display:flex;flex-direction:column;gap:var(--space-2)}.stat__label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-13);color:var(--muted-foreground)}.stat__value{display:flex;align-items:baseline;gap:var(--space-1);font-size:var(--tpl-stat-value);font-weight:600;line-height:1.2;color:var(--foreground);font-variant-numeric:tabular-nums}.stat__unit{font-size:var(--text-13);font-weight:400;color:var(--muted-foreground)}.stat__delta{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-12);font-variant-numeric:tabular-nums}.stat__delta--up{color:var(--success-text)}.stat__delta--down{color:var(--destructive-text)}.stat__delta--flat{color:var(--muted-foreground)}.stat__delta svg{width:var(--text-12);height:var(--text-12)}.tpl-dash__charts{display:grid;grid-template-columns:2fr 1fr;gap:var(--card-gap);align-items:start}@media (max-width: 1199px){.tpl-dash__charts{grid-template-columns:minmax(0,1fr)}}.chart-box{display:flex;flex-direction:column;gap:var(--space-3);width:100%;height:var(--tpl-chart-h)}.chart-box__plot{flex:1;min-height:0}.chart-box__plot svg,.chart-box__plot canvas{display:block;width:100%;height:100%}.chart-box__axis{display:flex;justify-content:space-between;flex:none;font-size:var(--text-12);color:var(--muted-foreground);font-variant-numeric:tabular-nums}.chart-box--placeholder{display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--muted-foreground);font-size:var(--text-13)}.rank-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-13)}.rank-row+.rank-row{margin-top:var(--space-3)}.rank-row__name{flex:none;width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--foreground)}.rank-row__track{flex:1;height:var(--tpl-skeleton-bar);border-radius:var(--radius-full);background-color:var(--muted);overflow:hidden}.rank-row__bar{display:block;height:100%;border-radius:var(--radius-full);background-color:var(--foreground);opacity:.85}.rank-row__val{flex:none;min-width:48px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted-foreground)}html[data-theme]{color-scheme:light}:root{--theme-solid: #2563eb}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;color:#18181b;background:#fafafa}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,Menlo,monospace}.num,.mono{white-space:nowrap}.table .badge{display:inline-block;white-space:nowrap}.table td{word-break:break-word}.app__sidebar{flex:none;width:var(--sidebar-w, 240px);min-width:0}.badge--income{background:#ecfdf5;color:#047857}.badge--expense{background:#fef2f2;color:#b91c1c}.badge--public{background:#eff6ff;color:#1d4ed8}.badge--private{background:#fffbeb;color:#b45309}.pager{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:12px}.pager button{min-width:32px;height:32px;border:1px solid var(--border, #e4e4e7);background:#fff;border-radius:8px;cursor:pointer}.pager button:disabled{opacity:.4;cursor:not-allowed}.pager button.on{background:var(--theme-solid);color:#fff;border-color:var(--theme-solid)}.page-body{padding:20px 24px}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-6{grid-template-columns:repeat(6,1fr)}@media (max-width: 1280px){.grid-6{grid-template-columns:repeat(3,1fr)}}@media (max-width: 640px){.grid-6{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1200px){.grid-4{grid-template-columns:repeat(2,1fr)}}.stat-value{font-size:22px;font-weight:700;line-height:1.25}.stat-label{font-size:13px;color:#71717a;margin-bottom:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}@media (max-width: 900px){.form-grid{grid-template-columns:1fr}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:10px;width:560px;max-width:94vw;max-height:88vh;overflow:auto;box-shadow:0 20px 50px #0003}.modal-head{padding:16px 20px;border-bottom:1px solid #e4e4e7;display:flex;justify-content:space-between;align-items:center;font-weight:600}.modal-body{padding:20px}.modal-foot{padding:16px 20px;border-top:1px solid #e4e4e7;display:flex;justify-content:flex-end;gap:8px}.chart-placeholder{background:#f4f4f5;border-radius:8px;height:220px;display:flex;align-items:center;justify-content:center;color:#a1a1aa;font-size:13px}.bar-chart{display:flex;align-items:flex-end;gap:8px;height:180px;padding:0 8px}.bar-chart .bcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.bar-chart .bars{display:flex;align-items:flex-end;gap:3px;height:140px}.bar-chart .bar{width:14px;border-radius:3px 3px 0 0}.bar-chart .bl{font-size:10px;color:#71717a}.toast-region{position:fixed;top:20px;right:20px;z-index:2000}
