.icon-heart[data-v-01a5a4c9]{transition:transform .2s ease}.icon-heart[data-v-01a5a4c9]:hover{transform:scale(1.1)}.icon-heart--filled[data-v-01a5a4c9]{animation:heartbeat-01a5a4c9 .3s ease-out}@keyframes heartbeat-01a5a4c9{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.icon-spin[data-v-48cfe7e3]{animation:spin-48cfe7e3 1s linear infinite}@keyframes spin-48cfe7e3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header[data-v-0668abb8]{position:fixed;top:0;left:0;right:0;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl);background-color:var(--color-header-bg, var(--color-bg-secondary));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);z-index:var(--z-header)}.header__left[data-v-0668abb8]{display:flex;align-items:center;gap:var(--space-md)}.header__menu-btn[data-v-0668abb8]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;color:var(--color-text);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal)}.header__menu-btn[data-v-0668abb8]:hover{background-color:var(--color-bg-tertiary);color:var(--color-primary)}.header__logo[data-v-0668abb8]{display:flex;align-items:center;gap:var(--space-md);text-decoration:none;color:var(--color-text)}.header__logo-icon[data-v-0668abb8]{filter:drop-shadow(0 2px 8px rgba(79,70,229,.25))}.header__logo-text[data-v-0668abb8]{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:-.01em;color:var(--color-primary)}:root:not([data-theme=dark]) .header__logo-text[data-v-0668abb8]{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header__center[data-v-0668abb8]{display:flex;align-items:center}.theme-toggle[data-v-0668abb8]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.theme-toggle[data-v-0668abb8]:hover{background:var(--gradient-subtle);color:var(--color-primary);transform:rotate(15deg) scale(1.05);box-shadow:var(--shadow-md)}.header__right[data-v-0668abb8]{display:flex;align-items:center;gap:var(--space-md)}.user-info__avatar[data-v-0668abb8]{width:36px;height:36px;border-radius:var(--radius-lg);object-fit:cover;border:2px solid var(--color-border);transition:border-color var(--transition-normal)}.user-info__avatar[data-v-0668abb8]:hover{border-color:var(--color-primary)}.user-info__avatar-placeholder[data-v-0668abb8]{width:36px;height:36px;border-radius:var(--radius-lg);background-color:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.user-info__name[data-v-0668abb8]{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.user-dropdown[data-v-0668abb8]{position:relative}.user-dropdown__trigger[data-v-0668abb8]{display:flex;align-items:center;gap:var(--space-sm);background:none;border:none;color:var(--color-text);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-lg);transition:background-color var(--transition-normal)}.user-dropdown__trigger[data-v-0668abb8]:hover{background-color:var(--color-bg-tertiary)}.user-dropdown__chevron[data-v-0668abb8]{transition:transform var(--transition-normal);color:var(--color-text-muted)}.user-dropdown__chevron.open[data-v-0668abb8]{transform:rotate(180deg)}.user-dropdown__menu[data-v-0668abb8]{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:160px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-xs);z-index:100}.user-dropdown__item[data-v-0668abb8]{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;background:none;color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius-md);text-decoration:none;transition:background-color var(--transition-normal)}.user-dropdown__item[data-v-0668abb8]:hover{background-color:var(--color-bg-tertiary);color:var(--color-primary)}.dropdown-enter-active[data-v-0668abb8],.dropdown-leave-active[data-v-0668abb8]{transition:opacity .15s ease,transform .15s ease}.dropdown-enter-from[data-v-0668abb8],.dropdown-leave-to[data-v-0668abb8]{opacity:0;transform:translateY(-4px)}@media (max-width: 768px){.header[data-v-0668abb8]{padding:0 var(--space-md)}.header__logo-text[data-v-0668abb8]{font-size:var(--font-size-lg)}.theme-toggle[data-v-0668abb8]{width:40px;height:40px}}.sidebar[data-v-a651cadd]{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);z-index:var(--z-sidebar);transition:width var(--transition-normal)}.sidebar--collapsed[data-v-a651cadd]{width:var(--sidebar-collapsed-width)}.sidebar__overlay[data-v-a651cadd]{display:none}.sidebar__nav[data-v-a651cadd]{height:100%;background-color:var(--color-sidebar-bg, var(--color-bg-secondary));border-right:1px solid var(--color-border);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;position:relative}.sidebar__header[data-v-a651cadd]{display:none}.sidebar__menu[data-v-a651cadd]{list-style:none;padding:var(--space-md);flex:1}.sidebar__menu li[data-v-a651cadd]{margin-bottom:var(--space-xs)}.sidebar__link[data-v-a651cadd]{display:flex;align-items:center;gap:var(--space-md);padding:12px 16px;color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-lg);transition:all var(--transition-normal);white-space:nowrap;overflow:hidden}.sidebar--collapsed .sidebar__link[data-v-a651cadd]{justify-content:center;padding:12px}.sidebar__link[data-v-a651cadd]:hover{background-color:var(--color-sidebar-active, var(--color-bg-tertiary));color:var(--color-text);transform:translate(4px)}.sidebar__link--active[data-v-a651cadd]{background:var(--gradient-subtle);color:var(--color-primary);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm)}.sidebar__link--active[data-v-a651cadd]:hover{transform:none}.sidebar__label[data-v-a651cadd]{transition:opacity var(--transition-fast)}.sidebar--collapsed .sidebar__label[data-v-a651cadd]{opacity:0;width:0}.sidebar__toggle[data-v-a651cadd]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:var(--space-md);margin-top:auto;border:none;background-color:var(--color-bg-secondary);color:var(--color-text-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.sidebar--collapsed .sidebar__toggle[data-v-a651cadd]{margin-left:auto;margin-right:auto}.sidebar__toggle[data-v-a651cadd]:hover{background:var(--gradient-subtle);color:var(--color-primary)}.sidebar__toggle svg[data-v-a651cadd]{transition:transform var(--transition-normal)}.rotate-180[data-v-a651cadd]{transform:rotate(180deg)}@media (max-width: 1024px){.sidebar[data-v-a651cadd]{width:var(--sidebar-width)!important;transform:translate(-100%);transition:transform var(--transition-normal)}.sidebar--open[data-v-a651cadd]{transform:translate(0)}.sidebar--collapsed[data-v-a651cadd]{width:var(--sidebar-width)!important}.sidebar__overlay[data-v-a651cadd]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sidebar__nav[data-v-a651cadd]{position:relative;z-index:1;background-color:var(--color-bg-secondary)}.sidebar__header[data-v-a651cadd]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.sidebar__title[data-v-a651cadd]{font-weight:var(--font-weight-semibold);color:var(--color-text)}.sidebar__close[data-v-a651cadd]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.sidebar__close[data-v-a651cadd]:hover{background-color:var(--color-bg-tertiary);color:var(--color-primary)}.sidebar__toggle[data-v-a651cadd]{display:none}.sidebar__link[data-v-a651cadd]{justify-content:flex-start!important;padding:12px 16px!important}.sidebar__label[data-v-a651cadd]{opacity:1!important;width:auto!important}}.footer[data-v-19e3d419]{border-top:1px solid var(--color-border);padding:var(--space-lg) var(--space-xl);margin-top:auto}.footer__inner[data-v-19e3d419]{max-width:1200px;margin:0 auto;text-align:center}.footer__disclaimer[data-v-19e3d419]{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0 0 var(--space-sm);line-height:1.5}.footer__bottom[data-v-19e3d419]{display:flex;align-items:center;justify-content:center;gap:var(--space-md);font-size:var(--font-size-xs);color:var(--color-text-muted)}.footer__copyright[data-v-19e3d419]{color:var(--color-text-muted)}.footer__link[data-v-19e3d419]{color:var(--color-primary);text-decoration:none}.footer__link[data-v-19e3d419]:hover{text-decoration:underline}.vip-banner[data-v-a151ab2c]{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.vip-banner__content[data-v-a151ab2c]{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-lg);max-width:1200px;margin:0 auto;font-size:var(--font-size-sm)}.vip-banner__icon[data-v-a151ab2c]{flex-shrink:0;display:flex}.vip-banner__text[data-v-a151ab2c]{flex:1}.vip-banner__btn[data-v-a151ab2c]{flex-shrink:0;padding:2px var(--space-md);background:#ffffffe6;color:#d97706;font-weight:var(--font-weight-bold);font-size:var(--font-size-xs);border-radius:var(--radius-full);text-decoration:none;transition:background var(--transition-fast)}.vip-banner__btn[data-v-a151ab2c]:hover{background:#fff}.vip-banner__close[data-v-a151ab2c]{flex-shrink:0;background:none;border:none;color:#fffc;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.vip-banner__close[data-v-a151ab2c]:hover{color:#fff}@media (max-width: 640px){.vip-banner__content[data-v-a151ab2c]{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs)}}.layout[data-v-ecab8b04]{min-height:100vh}.layout__main[data-v-ecab8b04]{display:flex;flex-direction:column;margin-top:var(--header-height);margin-left:var(--sidebar-width);min-height:calc(100vh - var(--header-height));background-color:var(--color-bg);transition:margin-left var(--transition-normal)}.layout--collapsed .layout__main[data-v-ecab8b04]{margin-left:var(--sidebar-collapsed-width)}@media (max-width: 1024px){.layout__main[data-v-ecab8b04],.layout--collapsed .layout__main[data-v-ecab8b04]{margin-left:0}}.modal-enter-active[data-v-fb5f9f77],.modal-leave-active[data-v-fb5f9f77]{transition:opacity var(--transition-normal)}.modal-enter-from[data-v-fb5f9f77],.modal-leave-to[data-v-fb5f9f77]{opacity:0}.modal-enter-active .modal[data-v-fb5f9f77],.modal-leave-active .modal[data-v-fb5f9f77]{transition:transform var(--transition-normal)}.modal-enter-from .modal[data-v-fb5f9f77],.modal-leave-to .modal[data-v-fb5f9f77]{transform:scale(.95)}.feedback-fab[data-v-0be988cc]{position:fixed;bottom:24px;right:24px;width:52px;height:52px;border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-btn);transition:transform var(--transition-fast),box-shadow var(--transition-fast);z-index:calc(var(--z-modal) - 1)}.feedback-fab[data-v-0be988cc]:hover{transform:scale(1.08);box-shadow:var(--shadow-glow)}.feedback-form[data-v-0be988cc]{display:flex;flex-direction:column;gap:var(--space-md)}.form-group[data-v-0be988cc]{display:flex;flex-direction:column;gap:var(--space-xs)}.form-label[data-v-0be988cc]{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.required[data-v-0be988cc]{color:var(--color-danger)}.form-input[data-v-0be988cc],.form-textarea[data-v-0be988cc]{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-text);background:var(--color-bg-secondary);transition:border-color var(--transition-fast)}.form-input[data-v-0be988cc]:focus,.form-textarea[data-v-0be988cc]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}.form-textarea[data-v-0be988cc]{resize:vertical;min-height:100px}.char-count[data-v-0be988cc]{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:right}.form-error[data-v-0be988cc]{font-size:var(--font-size-sm);color:var(--color-danger);padding:var(--space-sm);background:var(--color-danger-light);border-radius:var(--radius-sm)}.form-actions[data-v-0be988cc]{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm)}.btn-cancel[data-v-0be988cc]{padding:var(--space-sm) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast)}.btn-cancel[data-v-0be988cc]:hover{background:var(--color-bg-tertiary)}.btn-submit[data-v-0be988cc]{padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-md);background:var(--gradient-primary);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-fast)}.btn-submit[data-v-0be988cc]:hover:not(:disabled){background:var(--gradient-primary-hover)}.btn-submit[data-v-0be988cc]:disabled{opacity:.6;cursor:not-allowed}.feedback-success[data-v-0be988cc]{text-align:center;padding:var(--space-xl) 0}.success-icon[data-v-0be988cc]{width:48px;height:48px;border-radius:var(--radius-full);background:var(--color-success-light);color:var(--color-success);font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-md)}.feedback-success p[data-v-0be988cc]{color:var(--color-text-secondary);font-size:var(--font-size-md);margin:0}@media (max-width: 640px){.feedback-fab[data-v-0be988cc]{bottom:16px;right:16px;width:46px;height:46px}}:root{--color-indigo-50: #EEF2FF;--color-indigo-100: #E0E7FF;--color-indigo-200: #C7D2FE;--color-indigo-300: #A5B4FC;--color-indigo-400: #818CF8;--color-indigo-500: #6366F1;--color-indigo-600: #4F46E5;--color-indigo-700: #4338CA;--color-indigo-800: #3730A3;--color-indigo-900: #312E81;--color-indigo-950: #1E1B4B;--color-violet-50: #F5F3FF;--color-violet-100: #EDE9FE;--color-violet-200: #DDD6FE;--color-violet-300: #C4B5FD;--color-violet-400: #A78BFA;--color-violet-500: #8B5CF6;--color-violet-600: #7C3AED;--color-violet-700: #6D28D9;--color-violet-800: #5B21B6;--color-violet-900: #4C1D95;--color-slate-50: #F8FAFC;--color-slate-100: #F1F5F9;--color-slate-200: #E2E8F0;--color-slate-300: #CBD5E1;--color-slate-400: #94A3B8;--color-slate-500: #64748B;--color-slate-600: #475569;--color-slate-700: #334155;--color-slate-800: #1E293B;--color-slate-900: #0F172A;--color-slate-950: #020617;--color-emerald-50: #ECFDF5;--color-emerald-100: #D1FAE5;--color-emerald-500: #10B981;--color-emerald-600: #059669;--color-red-50: #FEF2F2;--color-red-100: #FEE2E2;--color-red-500: #EF4444;--color-red-600: #DC2626;--color-amber-50: #FFFBEB;--color-amber-100: #FEF3C7;--color-amber-500: #F59E0B;--color-amber-600: #D97706;--color-primary: var(--color-indigo-600);--color-primary-hover: var(--color-indigo-700);--color-primary-light: var(--color-indigo-100);--color-secondary: var(--color-violet-600);--color-secondary-hover: var(--color-violet-700);--color-secondary-light: var(--color-violet-100);--color-danger: var(--color-red-500);--color-danger-hover: var(--color-red-600);--color-danger-light: var(--color-red-100);--color-warning: var(--color-amber-500);--color-warning-hover: var(--color-amber-600);--color-warning-light: var(--color-amber-100);--color-success: var(--color-emerald-500);--color-success-hover: var(--color-emerald-600);--color-success-light: var(--color-emerald-100);--color-bg: var(--color-slate-50);--color-bg-secondary: #ffffff;--color-bg-tertiary: var(--color-slate-100);--color-text: var(--color-slate-900);--color-text-secondary: var(--color-slate-600);--color-text-muted: var(--color-slate-500);--color-border: var(--color-slate-200);--color-border-hover: var(--color-slate-300);--shadow-sm: 0 2px 8px rgba(79, 70, 229, .06);--shadow-md: 0 4px 20px -2px rgba(79, 70, 229, .1);--shadow-lg: 0 10px 25px -5px rgba(79, 70, 229, .15), 0 8px 10px -6px rgba(79, 70, 229, .1);--shadow-xl: 0 20px 40px -10px rgba(79, 70, 229, .2);--shadow-inner: inset 0 2px 4px rgba(79, 70, 229, .04);--shadow-btn: 0 4px 14px 0 rgba(79, 70, 229, .3);--shadow-glow: 0 0 20px rgba(79, 70, 229, .4);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.1;--line-height-snug: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.65;--header-height: 64px;--sidebar-width: 260px;--sidebar-collapsed-width: 72px;--transition-fast: .15s ease-out;--transition-normal: .2s ease-out;--transition-slow: .3s ease-out;--z-sidebar: 100;--z-header: 200;--z-modal: 300;--z-tooltip: 400;--gradient-primary: linear-gradient(135deg, var(--color-indigo-600) 0%, var(--color-violet-600) 100%);--gradient-primary-hover: linear-gradient(135deg, var(--color-indigo-700) 0%, var(--color-violet-700) 100%);--gradient-subtle: linear-gradient(135deg, var(--color-indigo-50) 0%, var(--color-violet-50) 100%);--gradient-dark: linear-gradient(135deg, var(--color-indigo-900) 0%, var(--color-indigo-950) 100%)}[data-theme=light]{--color-primary: #4F46E5;--color-primary-hover: #4338CA;--color-primary-light: #E0E7FF;--color-secondary: #7C3AED;--color-secondary-hover: #6D28D9;--color-secondary-light: #EDE9FE;--color-danger: #EF4444;--color-danger-hover: #DC2626;--color-danger-light: #FEE2E2;--color-warning: #F59E0B;--color-warning-hover: #D97706;--color-warning-light: #FEF3C7;--color-success: #10B981;--color-success-hover: #059669;--color-success-light: #D1FAE5;--color-bg: #F8FAFC;--color-bg-secondary: #FFFFFF;--color-bg-tertiary: #F1F5F9;--color-text: #0F172A;--color-text-secondary: #475569;--color-text-muted: #64748B;--color-border: #E2E8F0;--color-border-hover: #CBD5E1;--color-sidebar-bg: #FFFFFF;--color-sidebar-active: #EEF2FF;--color-header-bg: rgba(255, 255, 255, .8);--shadow-sm: 0 2px 8px rgba(79, 70, 229, .06);--shadow-md: 0 4px 20px -2px rgba(79, 70, 229, .1);--shadow-lg: 0 10px 25px -5px rgba(79, 70, 229, .15), 0 8px 10px -6px rgba(79, 70, 229, .1);--shadow-inner: inset 0 2px 4px rgba(79, 70, 229, .04)}[data-theme=dark]{--color-primary: #818CF8;--color-primary-hover: #A5B4FC;--color-primary-light: #312E81;--color-secondary: #A78BFA;--color-secondary-hover: #C4B5FD;--color-secondary-light: #4C1D95;--color-danger: #F87171;--color-danger-hover: #FCA5A5;--color-danger-light: #450a0a;--color-warning: #FBBF24;--color-warning-hover: #FCD34D;--color-warning-light: #451a03;--color-success: #34D399;--color-success-hover: #6EE7B7;--color-success-light: #064e3b;--color-bg: #0F172A;--color-bg-secondary: #1E293B;--color-bg-tertiary: #334155;--color-text: #F1F5F9;--color-text-secondary: #CBD5E1;--color-text-muted: #64748B;--color-border: #334155;--color-border-hover: #475569;--color-sidebar-bg: #1E293B;--color-sidebar-active: #312E81;--color-header-bg: rgba(15, 23, 42, .9);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(79, 70, 229, .1);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .2);--gradient-primary: linear-gradient(135deg, #312E81 0%, #4C1D95 100%);--gradient-primary-hover: linear-gradient(135deg, #3730A3 0%, #5B21B6 100%);--gradient-subtle: linear-gradient(135deg, rgba(99, 102, 241, .15) 0%, rgba(139, 92, 246, .15) 100%)}body,body *{transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-fast),box-shadow var(--transition-normal)}.blob-decoration{position:absolute;width:400px;height:400px;background:var(--gradient-subtle);border-radius:50%;filter:blur(80px);opacity:.5;z-index:-1;pointer-events:none}[data-theme=dark] .blob-decoration{opacity:.3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px 20px;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal);text-decoration:none;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap;position:relative;overflow:hidden}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-light),0 0 0 1px var(--color-primary)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn--primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-btn)}.btn--primary:hover:not(:disabled){background:var(--gradient-primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px #4f46e566}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--secondary{background-color:var(--color-bg-secondary);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.btn--secondary:hover:not(:disabled){background-color:var(--color-bg-tertiary);border-color:var(--color-border-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn--ghost{background-color:transparent;color:var(--color-text-secondary)}.btn--ghost:hover:not(:disabled){background-color:var(--color-bg-tertiary);color:var(--color-text)}.btn--danger{background-color:var(--color-danger);color:#fff;box-shadow:0 4px 14px #ef44444d}.btn--danger:hover:not(:disabled){background-color:var(--color-danger-hover);transform:translateY(-2px);box-shadow:0 6px 20px #ef444466}.btn--sm{padding:6px 14px;font-size:var(--font-size-xs);border-radius:var(--radius-md)}.btn--lg{padding:14px 28px;font-size:var(--font-size-md);border-radius:var(--radius-xl)}.btn--icon{padding:10px;border-radius:var(--radius-lg)}.card{position:relative;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;transition:all var(--transition-normal)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card__header{padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.card__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.card__body{padding:var(--space-lg)}.card__footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border);background-color:var(--color-bg-tertiary)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm)}.table th,.table td{padding:var(--space-md);text-align:left}.table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background-color:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.table th:first-child{border-radius:var(--radius-lg) 0 0 0}.table th:last-child{border-radius:0 var(--radius-lg) 0 0}.table td{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.table tbody tr:hover td{background-color:var(--color-bg-tertiary)}.table tbody tr:last-child td:first-child{border-radius:0 0 0 var(--radius-lg)}.table tbody tr:last-child td:last-child{border-radius:0 0 var(--radius-lg) 0}.badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);white-space:nowrap}.badge--risk{background-color:var(--color-warning-light);color:var(--color-warning-hover)}.badge--disposal{background-color:var(--color-danger-light);color:var(--color-danger)}.badge--exiting{background-color:var(--color-success-light);color:var(--color-success)}.badge--twse{background-color:var(--color-primary-light);color:var(--color-primary)}.badge--tpex{background-color:var(--color-secondary-light);color:var(--color-secondary)}.input{width:100%;padding:12px 16px;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-normal)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.input::placeholder{color:var(--color-text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.modal{background-color:var(--color-bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:75%;width:100%;max-height:90vh;overflow:auto}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.modal__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal__body{padding:var(--space-lg)}.modal__footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--color-border);background-color:var(--color-bg-tertiary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center}.empty-state__icon{width:80px;height:80px;color:var(--color-text-muted);margin-bottom:var(--space-lg);opacity:.5}.empty-state__title{margin:0 0 var(--space-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.empty-state__description{margin:0;color:var(--color-text-secondary)}.spinner{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.hover-lift{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-light),0 0 0 1px var(--color-primary)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text);background-color:var(--color-bg);-webkit-text-stroke:.2px currentColor}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img,svg{display:block;max-width:100%}button{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--color-primary)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.text-success{color:var(--color-success)}.text-muted{color:var(--color-text-muted)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.page{padding:var(--space-lg)}.page__header{margin-bottom:var(--space-lg)}.page__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);letter-spacing:-.02em;margin:0 0 var(--space-xs)}.page__description{color:var(--color-text-secondary);margin:0}@media (max-width: 768px){.page{padding:var(--space-md)}.page__title{font-size:var(--font-size-xl)}.table{display:block;overflow-x:auto}.hide-mobile{display:none!important}}@media (max-width: 480px){.page{padding:var(--space-sm)}}
