.error-boundary[data-v-33df0835]{@apply min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8;}.error-boundary__container[data-v-33df0835]{@apply max-w-md w-full space-y-8 text-center;}.error-boundary__title[data-v-33df0835]{@apply mt-6 text-3xl font-extrabold text-gray-900;}.error-boundary__description[data-v-33df0835]{@apply mt-2 text-sm text-gray-600;}.error-boundary__actions[data-v-33df0835]{@apply mt-8 flex flex-col sm:flex-row gap-4 justify-center;}.error-boundary__button[data-v-33df0835]{@apply w-full sm:w-auto inline-flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium focus:outline-none focus:ring-2 focus:ring-offset-2 transition-colors duration-200;}.error-boundary__button--primary[data-v-33df0835]{@apply text-white bg-primary-600 hover:bg-primary-700 focus:ring-primary-500;}.error-boundary__button--secondary[data-v-33df0835]{@apply text-gray-700 bg-white border-gray-300 hover:bg-gray-50 focus:ring-primary-500;}.error-boundary__details[data-v-33df0835]{@apply mt-8;}.error-boundary__details summary[data-v-33df0835]{@apply text-gray-600 hover:text-gray-800 cursor-pointer;}@media (max-width: 640px){.error-boundary[data-v-33df0835]{@apply px-4 py-8;}.error-boundary__title[data-v-33df0835]{@apply text-2xl;}.error-boundary__description[data-v-33df0835]{@apply text-sm;}}.notification-container[data-v-4909fc6f]{@apply fixed top-4 right-4 z-toast pointer-events-none;max-width:400px}.notification-wrapper[data-v-4909fc6f]{@apply space-y-2;}.notification[data-v-4909fc6f]{@apply relative flex items-start p-4 mb-2 bg-white border border-gray-200 rounded-lg shadow-lg pointer-events-auto;@apply transform transition-all duration-300 ease-out;min-width:300px;max-width:400px;opacity:0;transform:translate(100%)}.notification--visible[data-v-4909fc6f]{opacity:1;transform:translate(0)}.notification--success[data-v-4909fc6f]{@apply border-green-200 bg-green-50;}.notification--error[data-v-4909fc6f]{@apply border-red-200 bg-red-50;}.notification--warning[data-v-4909fc6f]{@apply border-yellow-200 bg-yellow-50;}.notification--info[data-v-4909fc6f]{@apply border-blue-200 bg-blue-50;}.notification__icon[data-v-4909fc6f]{@apply flex-shrink-0 mr-3;}.notification--success .notification__icon[data-v-4909fc6f]{@apply text-green-500;}.notification--error .notification__icon[data-v-4909fc6f]{@apply text-red-500;}.notification--warning .notification__icon[data-v-4909fc6f]{@apply text-yellow-500;}.notification--info .notification__icon[data-v-4909fc6f]{@apply text-blue-500;}.notification__content[data-v-4909fc6f]{@apply flex-1 min-w-0;}.notification__title[data-v-4909fc6f]{@apply text-sm font-medium text-gray-900 mb-1;}.notification__message[data-v-4909fc6f]{@apply text-sm text-gray-600;}.notification__close[data-v-4909fc6f]{@apply flex-shrink-0 ml-3 text-gray-400 hover:text-gray-600 transition-colors;}.notification:hover .notification__close[data-v-4909fc6f]{@apply text-gray-500;}.notification__progress[data-v-4909fc6f]{@apply absolute bottom-0 left-0 h-1 bg-current opacity-30;width:100%;animation-name:notification-progress-4909fc6f;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes notification-progress-4909fc6f{0%{width:100%}to{width:0%}}.notification-enter-active[data-v-4909fc6f],.notification-leave-active[data-v-4909fc6f]{transition:all .3s ease-out}.notification-enter-from[data-v-4909fc6f],.notification-leave-to[data-v-4909fc6f]{opacity:0;transform:translate(100%)}@media (max-width: 640px){.notification-container[data-v-4909fc6f]{@apply top-2 right-2 left-2;max-width:none}.notification[data-v-4909fc6f]{min-width:auto;max-width:none}}@media (prefers-color-scheme: dark){.notification[data-v-4909fc6f]{@apply bg-gray-800 border-gray-700 text-gray-100;}.notification__title[data-v-4909fc6f]{@apply text-gray-100;}.notification__message[data-v-4909fc6f]{@apply text-gray-300;}.notification__close[data-v-4909fc6f]{@apply text-gray-400 hover:text-gray-200;}}.global-loading[data-v-454c516d]{position:fixed;top:0;left:0;width:100%;height:2px;background:#e6f0ff;z-index:1000}.global-loading .bar[data-v-454c516d]{height:100%;background:#409eff;transition:width .3s ease-out}.layout[data-v-454c516d]{min-height:100vh}.sidebar[data-v-454c516d]{border-right:1px solid #e4e7ed;background:#fff}.logo[data-v-454c516d]{height:56px;display:flex;align-items:center;justify-content:center;color:#fff;background:#303133;font-weight:600}.logo span[data-v-454c516d]{color:#fff}.logo-img[data-v-454c516d]{max-height:40px;max-width:160px;object-fit:contain;filter:invert(1)}.menu[data-v-454c516d]{border-right:none}.header[data-v-454c516d]{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #e4e7ed;background:#fff}.title[data-v-454c516d]{font-size:16px;font-weight:600;color:#303133}.user-info[data-v-454c516d]{margin-left:auto;color:#606266;font-size:14px}.user-name[data-v-454c516d]{padding:4px 8px;background:#f5f7fa;border-radius:12px;cursor:pointer}.logout-btn[data-v-454c516d]{margin-left:8px}.main[data-v-454c516d]{padding:16px;background:#f5f7fa}.nav-icon[data-v-454c516d]{margin-right:8px}.nav-text[data-v-454c516d]{font-size:14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-family-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-secondary)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin:0 0 var(--spacing-md) 0;line-height:var(--line-height-relaxed);color:var(--text-secondary)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark);text-decoration:underline}ul,ol{margin:0 0 var(--spacing-md) 0;padding-left:var(--spacing-lg)}li{margin-bottom:var(--spacing-xs);line-height:var(--line-height-relaxed)}input,button,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:transparent;border:1px solid var(--border-color);border-radius:var(--border-radius);outline:none;transition:all var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(102,126,234,.1)}button{cursor:pointer;user-select:none;border:none;background:var(--color-primary);color:var(--text-white);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}button:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}button:active{transform:translateY(0)}img{max-width:100%;height:auto;display:block}.container{width:100%;max-width:var(--container-xl);margin:0 auto;padding:0 var(--spacing-md)}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.container-lg{max-width:var(--container-lg)}.container-xl{max-width:var(--container-xl)}.container-2xl{max-width:var(--container-2xl)}.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}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.flex-1{flex:1 1 0%}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gap-1{gap:var(--spacing-xs)}.gap-2{gap:var(--spacing-sm)}.gap-4{gap:var(--spacing-md)}.gap-6{gap:var(--spacing-lg)}.gap-8{gap:var(--spacing-xl)}.m-0{margin:0}.m-1{margin:var(--spacing-xs)}.m-2{margin:var(--spacing-sm)}.m-4{margin:var(--spacing-md)}.m-6{margin:var(--spacing-lg)}.m-8{margin:var(--spacing-xl)}.p-0{padding:0}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-4{padding:var(--spacing-md)}.p-6{padding:var(--spacing-lg)}.p-8{padding:var(--spacing-xl)}.rounded{border-radius:var(--border-radius)}.rounded-md{border-radius:var(--border-radius-md)}.rounded-lg{border-radius:var(--border-radius-lg)}.rounded-full{border-radius:var(--border-radius-full)}.shadow{box-shadow:var(--shadow)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.transition{transition:all var(--transition-normal)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}@media (min-width: 640px){.sm\:container{max-width:var(--container-sm)}}@media (min-width: 768px){.md\:container{max-width:var(--container-md)}}@media (min-width: 1024px){.lg\:container{max-width:var(--container-lg)}}@media (min-width: 1280px){.xl\:container{max-width:var(--container-xl)}}:root{--color-primary: #667eea;--color-primary-dark: #5a6fd8;--color-primary-light: #7c8ff0;--color-secondary: #764ba2;--color-accent: #f093fb;--color-success: #27ae60;--color-warning: #f39c12;--color-error: #e74c3c;--color-info: #3498db;--color-gray-50: #f8f9fa;--color-gray-100: #f1f3f4;--color-gray-200: #e9ecef;--color-gray-300: #dee2e6;--color-gray-400: #ced4da;--color-gray-500: #adb5bd;--color-gray-600: #6c757d;--color-gray-700: #495057;--color-gray-800: #343a40;--color-gray-900: #212529;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-dark: #2c3e50;--bg-gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);--text-primary: #2c3e50;--text-secondary: #6c757d;--text-white: #ffffff;--text-success: var(--color-success);--text-warning: var(--color-warning);--text-error: var(--color-error);--border-color: #dee2e6;--border-color-light: #f1f3f4;--border-color-dark: #ced4da}:root{--font-family-sans: "Inter", "Helvetica Neue", Arial, sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 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-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}:root{--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 2.5rem;--spacing-3xl: 3rem;--spacing-4xl: 4rem}:root{--border-radius-sm: .25rem;--border-radius: .5rem;--border-radius-md: .75rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--border-radius-full: 9999px}:root{--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25)}:root{--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}:root{--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080}:root{--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out;--transition-slow: .5s ease-in-out}:root{--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px}
