.pwa-toast[data-v-8cf425c5]{position:fixed;right:20px;bottom:20px;margin:16px;padding:12px;border:1px solid #8885;border-radius:4px;z-index:1000;text-align:left;box-shadow:3px 4px 5px #8885;background-color:#fff;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.pwa-toast .message[data-v-8cf425c5]{margin-bottom:0}.pwa-toast button[data-v-8cf425c5]{border:1px solid #8885;outline:none;margin-right:5px;border-radius:2px;padding:3px 10px;cursor:pointer}.sidebar[data-v-a919c1b4]{background-color:var(--color-background-sidebar);padding:20px;overflow-y:auto}.sidebar-nav ul[data-v-a919c1b4]{list-style:none;padding:0;margin:0}.sidebar-nav li[data-v-a919c1b4]{margin-bottom:10px}.sidebar-nav a[data-v-a919c1b4],.nav-link[data-v-a919c1b4]{text-decoration:none;color:var(--color-text-secondary);font-weight:700;display:block;padding:10px;border-radius:4px;-webkit-tap-highlight-color:transparent}.sidebar-nav a[data-v-a919c1b4]:hover{color:var(--color-text-primary)}.sidebar-nav a.router-link-exact-active[data-v-a919c1b4]{color:var(--color-primary)}@media (max-width: 768px){.sidebar[data-v-a919c1b4]{background-color:var(--color-background-header);border-top:1px solid var(--color-border-secondary);padding:0 0 env(safe-area-inset-bottom,0px) 0;display:flex;align-items:center;overflow-y:initial}.sidebar-nav[data-v-a919c1b4]{width:100%}.sidebar-nav ul[data-v-a919c1b4]{display:flex;justify-content:space-around;width:100%}.sidebar-nav li[data-v-a919c1b4]{margin-bottom:0;flex-grow:1;text-align:center}.sidebar-nav a[data-v-a919c1b4]{padding:var(--spacing-1) 0;transition:color .2s ease}}.topbar[data-v-c8e02fe5]{background-color:var(--color-background-primary);border-bottom:1px solid var(--color-border-secondary);display:flex;align-items:center;padding:0 var(--spacing-6);height:100%;box-sizing:border-box}.topbar-content[data-v-c8e02fe5]{width:100%;display:flex;align-items:center;justify-content:space-between;padding-top:env(safe-area-inset-top,0px)}.app-title[data-v-c8e02fe5]{font-size:1.5rem;font-weight:700;margin:0;color:var(--color-text-primary)}.user-name-title[data-v-c8e02fe5]{font-size:1.5rem;font-weight:700;margin:0;color:var(--color-text-primary);display:none}.app-title-link[data-v-c8e02fe5]{text-decoration:none;cursor:pointer}.theme-toggle-btn[data-v-c8e02fe5]{background:none;border:none;cursor:pointer;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.theme-toggle-btn[data-v-c8e02fe5]:hover{background-color:var(--color-background-hover)}.theme-icon[data-v-c8e02fe5]{width:24px;height:24px}@media (max-width: 768px){.topbar-content[data-v-c8e02fe5]{position:relative;justify-content:center}.app-title-link:has(.user-name-title) .app-title[data-v-c8e02fe5]{display:none}.app-title-link:has(.user-name-title) .user-name-title[data-v-c8e02fe5]{display:block}.theme-toggle-btn[data-v-c8e02fe5]{position:absolute;right:var(--spacing-4)}}.main-layout[data-v-cd5c00ca]{position:fixed;inset:0;display:flex;flex-direction:column;background-color:var(--color-background)}.layout-topbar[data-v-cd5c00ca]{flex-shrink:0;height:var(--layout-topbar-height);z-index:10}.layout-body[data-v-cd5c00ca]{display:flex;flex-grow:1;overflow:hidden;min-height:0}.layout-sidebar[data-v-cd5c00ca]{flex-shrink:0;width:var(--layout-sidebar-width);overflow-y:auto;transition:width .3s ease}.layout-main-content[data-v-cd5c00ca]{flex-grow:1;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;min-height:0;max-width:100%;width:100%;overflow-x:hidden;overflow-y:auto}.layout-main-content.full-width[data-v-cd5c00ca]{width:100%;max-width:none;padding:0}@media (max-width: 768px){.main-layout.no-sidebar .layout-body[data-v-cd5c00ca]{flex-direction:column;padding-top:0}.layout-sidebar[data-v-cd5c00ca]{width:100%;height:calc(var(--layout-bottom-nav-height) + env(safe-area-inset-bottom,0px));position:fixed;bottom:0;left:0;z-index:20;flex-shrink:0}.layout-main-content[data-v-cd5c00ca]{order:1;padding-bottom:calc(var(--layout-bottom-nav-height) + env(safe-area-inset-bottom,0px));max-width:100%;width:100%;overflow-x:hidden}.main-layout.no-sidebar .layout-main-content[data-v-cd5c00ca]{padding-bottom:0}}.toast-container[data-v-d41d9adf]{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.toast-message[data-v-d41d9adf]{pointer-events:auto;display:flex;align-items:center;padding:10px 16px;border-radius:8px;background:#fff;box-shadow:0 4px 12px #00000026;min-width:300px;max-width:90vw;color:var(--color-text-primary, #333);font-size:14px;border-left:4px solid transparent}.toast-icon[data-v-d41d9adf]{display:flex;align-items:center;margin-right:10px}.toast-text[data-v-d41d9adf]{flex:1;margin-right:10px}.toast-close[data-v-d41d9adf]{background:none;border:none;font-size:18px;cursor:pointer;color:#999;padding:0 4px;line-height:1}.toast-close[data-v-d41d9adf]:hover{color:#666}.toast-success[data-v-d41d9adf]{border-left-color:#4caf50}.toast-success .toast-icon[data-v-d41d9adf]{color:#4caf50}.toast-error[data-v-d41d9adf]{border-left-color:#f44336}.toast-error .toast-icon[data-v-d41d9adf]{color:#f44336}.toast-info[data-v-d41d9adf]{border-left-color:#2196f3}.toast-info .toast-icon[data-v-d41d9adf]{color:#2196f3}.toast-enter-active[data-v-d41d9adf],.toast-leave-active[data-v-d41d9adf]{transition:all .3s ease}.toast-enter-from[data-v-d41d9adf],.toast-leave-to[data-v-d41d9adf]{opacity:0;transform:translateY(-20px)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text-primary);overflow:hidden}:root{--layout-topbar-height: calc(44px + env(safe-area-inset-top, 0px)) ;--layout-sidebar-width: 240px;--layout-bottom-nav-height: 50px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px}:root{--color-primary: #CFB685;--color-primary-light: #eef2ff;--color-primary-dark: #CFB685;--color-primary-hover: #CFB685;--color-primary-gradient: linear-gradient(45deg, var(--color-primary), var(--color-secondary));--color-primary-gradient-hover: linear-gradient(45deg, var(--color-primary-hover), var(--color-secondary-hover));--color-secondary: #06b6d4;--color-secondary-light: #e0f2fe;--color-secondary-hover: #0891b2;--color-accent: #10b981;--color-accent-light: #d1fae5;--color-accent-hover: #059669;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-text-primary: #111827;--color-text-secondary: #374151;--color-text-tertiary: #6b7280;--color-text-quaternary: #9ca3af;--color-text-inverse: #ffffff;--color-text-placeholder: #9ca3af;--color-text-disabled: #9ca3af;--color-background-primary: #ffffff;--color-background-secondary: #f8fafc;--color-background-tertiary: #f1f5f9;--color-background-card: #ffffff;--color-background-hover: #f8fafc;--color-background-focus: #f1f5f9;--color-background-disabled: #f9fafb;--color-background-input: #ffffff;--color-background-glass: rgba(255, 255, 255, .7);--color-background-scrollbar-track: #f1f5f9;--color-background-scrollbar-thumb: #cbd5e1;--color-background-scrollbar-thumb-hover: #94a3b8;--color-button-disabled: #e5e7eb;--color-background-page: #f8fafc;--color-background-sidebar: #f8fafc;--color-background-header: #f8fafc;--color-background-footer: #ffffff;--color-border-primary: #e5e7eb;--color-border-secondary: #f3f4f6;--color-border-tertiary: #e5e7eb;--color-border-card: var(--color-border-primary);--color-border-focus: #CFB685;--color-border-hover: #d1d5db;--shadow-none: none;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-primary-md: 0 4px 6px -1px rgba(79, 70, 229, .2), 0 2px 4px -2px rgba(79, 70, 229, .2);--shadow-primary-md-hover: 0 10px 15px -3px rgba(79, 70, 229, .2), 0 4px 6px -4px rgba(79, 70, 229, .2);--shadow-primary-lg-hover: 0 20px 25px -5px rgba(79, 70, 229, .25), 0 8px 10px -6px rgba(79, 70, 229, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--spacing-px: 1px;--spacing-0: 0px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-7: 28px;--spacing-8: 32px;--spacing-9: 36px;--spacing-10: 40px;--spacing-11: 44px;--spacing-12: 48px;--spacing-14: 56px;--spacing-16: 64px;--spacing-20: 80px;--spacing-24: 96px;--spacing-28: 112px;--spacing-32: 128px;--spacing-36: 144px;--spacing-40: 160px;--spacing-44: 176px;--spacing-48: 192px;--spacing-52: 208px;--spacing-56: 224px;--spacing-60: 240px;--spacing-64: 256px;--spacing-72: 288px;--spacing-80: 320px;--spacing-96: 384px;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-serif: Georgia, Cambria, "Times New Roman", Times, serif;--font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--font-size-5xl: 48px;--font-size-6xl: 60px;--font-size-7xl: 72px;--font-size-8xl: 96px;--font-weight-thin: 100;--font-weight-extralight: 200;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-weight-black: 900;--line-height-none: 1;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--letter-spacing-tighter: -.05em;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0em;--letter-spacing-wide: .025em;--letter-spacing-wider: .05em;--letter-spacing-widest: .1em;--radius-none: 0px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-4xl: 32px;--radius-5xl: 40px;--radius-6xl: 48px;--transition-none: none;--transition-all: all .15s ease-in-out;--transition-colors: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, text-decoration-color .15s ease-in-out, fill .15s ease-in-out, stroke .15s ease-in-out;--transition-opacity: opacity .15s ease-in-out;--transition-shadow: box-shadow .15s ease-in-out;--transition-transform: transform .15s ease-in-out;--animate-spin: spin 1s linear infinite;--animate-ping: ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce: bounce 1s infinite;--layout-sidebar-width: 280px;--layout-sidebar-collapsed-width: 80px;--layout-header-height: 96px;--layout-bottom-nav-height: 40px;--layout-content-max-width: 1200px;--layout-content-max-width-xl: 1400px;--layout-content-max-width-2xl: 1600px;--card-padding-sm: var(--spacing-4);--card-padding-md: var(--spacing-6);--card-padding-lg: var(--spacing-8);--card-padding-xl: var(--spacing-10);--card-gap-sm: var(--spacing-3);--card-gap-md: var(--spacing-4);--card-gap-lg: var(--spacing-6);--card-shadow-sm: var(--shadow-sm);--card-shadow-md: var(--shadow-md);--card-shadow-lg: var(--shadow-lg);--card-shadow-xl: var(--shadow-xl);--grid-cols-1: repeat(1, minmax(0, 1fr));--grid-cols-2: repeat(2, minmax(0, 1fr));--grid-cols-3: repeat(3, minmax(0, 1fr));--grid-cols-4: repeat(4, minmax(0, 1fr));--grid-cols-5: repeat(5, minmax(0, 1fr));--grid-cols-6: repeat(6, minmax(0, 1fr));--grid-cols-12: repeat(12, minmax(0, 1fr));--breakpoint-xs: 480px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--z-index-auto: auto;--z-index-0: 0;--z-index-10: 10;--z-index-20: 20;--z-index-30: 30;--z-index-40: 40;--z-index-50: 50;--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--z-index-toast: 1080}html.dark{--color-text-primary: #f9fafb;--color-text-secondary: #e5e7eb;--color-text-tertiary: #d1d5db;--color-text-quaternary: #9ca3af;--color-text-inverse: #111827;--color-text-placeholder: #6b7280;--color-text-disabled: #6b7280;--color-background-primary: #111827;--color-background-secondary: #1f2937;--color-background-tertiary: #374151;--color-background-card: #1f2937;--color-background-hover: #374151;--color-background-focus: #4b5563;--color-background-disabled: #1f2937;--color-background-input: #1f2937;--color-background-glass: rgba(31, 41, 55, .7);--color-background-scrollbar-track: #374151;--color-background-scrollbar-thumb: #4b5563;--color-background-scrollbar-thumb-hover: #6b7280;--color-button-disabled: #374151;--color-background-page: #111827;--color-background-sidebar: #111827;--color-background-header: #111827;--color-background-footer: #1f2937;--color-border-primary: #374151;--color-border-secondary: #4b5563;--color-border-tertiary: #374151;--color-border-focus: #CFB685;--color-border-hover: #4b5563;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px -1px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .5);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .6);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .4)}@media (prefers-contrast: high){:root{--color-border-primary: #000000;--color-border-focus: #000000;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .8);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .8)}}@media (prefers-reduced-motion: reduce){:root{--transition-all: none;--transition-colors: none;--transition-opacity: none;--transition-shadow: none;--transition-transform: none;--animate-spin: none;--animate-ping: none;--animate-pulse: none;--animate-bounce: none}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.wuxing-mu{color:#10b981}.wuxing-huo{color:#ef4444}.wuxing-tu{color:#7e471c}.wuxing-jin{color:#eab308}.wuxing-shui{color:#3b82f6}html.dark .wuxing-mu{color:#34d399}html.dark .wuxing-huo{color:#f87171}html.dark .wuxing-tu{color:#d97706}html.dark .wuxing-jin{color:#facc15}html.dark .wuxing-shui{color:#60a5fa}*,*:before,*:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--color-border-primary)}*:before,*:after{--tw-content: ""}html{line-height:var(--line-height-normal);-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--font-family-sans);font-feature-settings:normal;font-variation-settings:normal}body{margin:0;font-family:inherit;line-height:inherit;background-color:var(--color-background-page);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;background-color:var(--color-background-page)}::selection{background-color:var(--color-primary-light);color:var(--color-text-primary)}::-moz-selection{background-color:var(--color-primary-light);color:var(--color-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background-hover);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--color-text-quaternary);border-radius:var(--radius-sm);transition:background var(--transition-colors)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}::-webkit-scrollbar-corner{background:var(--color-background-hover)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}[disabled]{cursor:not-allowed;opacity:.6}a{color:var(--color-primary);text-decoration:inherit;transition:color var(--transition-colors)}a:hover{color:var(--color-primary-hover);text-decoration:underline}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=checkbox],[type=radio]{-webkit-appearance:none;appearance:none;background-color:var(--color-background-primary);background-origin:border-box;border-color:var(--color-border-primary);border-width:1px;color:var(--color-text-primary);display:inline-block;flex-shrink:0;height:16px;padding:0;user-select:none;width:16px;border-style:solid;border-radius:var(--radius-sm);transition:all var(--transition-colors)}[type=checkbox]:checked,[type=radio]:checked{background-color:var(--color-primary);border-color:var(--color-primary);background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='m12.207 4.793a1 1 0 0 0-1.414 0l-3.793 3.793-1.793-1.793a1 1 0 0 0-1.414 1.414l2.5 2.5a1 1 0 0 0 1.414 0l4.5-4.5a1 1 0 0 0 0-1.414z'/%3e%3c/svg%3e");background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=radio]{border-radius:9999px}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}table{text-indent:0;border-color:inherit;border-collapse:collapse}code,kbd,samp,pre{font-family:var(--font-family-mono);font-size:1em}.animate-spin{animation:var(--animate-spin)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-bounce{animation:var(--animate-bounce)}.transition-all{transition:var(--transition-all)}.transition-colors{transition:var(--transition-colors)}.transition-opacity{transition:var(--transition-opacity)}.transition-shadow{transition:var(--transition-shadow)}.transition-transform{transition:var(--transition-transform)}.delay-75{transition-delay:75ms}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-1000{transition-duration:1s}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media (prefers-contrast: high){*{border-width:2px}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width: 768px){::-webkit-scrollbar{display:none}*{scrollbar-width:none}}.main-content-container{position:relative;z-index:1;flex-grow:1;display:flex;min-height:0}.page-container{width:100%;max-width:var(--layout-content-max-width);margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-6)}.page-container-full{width:100%;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-6)}.card-grid{display:grid;gap:var(--spacing-6);width:100%}.card-grid-cols-1{grid-template-columns:var(--grid-cols-1)}.card-grid-cols-2{grid-template-columns:var(--grid-cols-2)}.card-grid-cols-3{grid-template-columns:var(--grid-cols-3)}.card-grid-cols-4{grid-template-columns:var(--grid-cols-4)}.card-grid-cols-5{grid-template-columns:var(--grid-cols-5)}.card-grid-cols-6{grid-template-columns:var(--grid-cols-6)}@media (min-width: 640px){.card-grid-cols-sm-1{grid-template-columns:var(--grid-cols-1)}.card-grid-cols-sm-2{grid-template-columns:var(--grid-cols-2)}.card-grid-cols-sm-3{grid-template-columns:var(--grid-cols-3)}.card-grid-cols-sm-4{grid-template-columns:var(--grid-cols-4)}}@media (min-width: 768px){.card-grid-cols-md-1{grid-template-columns:var(--grid-cols-1)}.card-grid-cols-md-2{grid-template-columns:var(--grid-cols-2)}.card-grid-cols-md-3{grid-template-columns:var(--grid-cols-3)}.card-grid-cols-md-4{grid-template-columns:var(--grid-cols-4)}}@media (min-width: 1024px){.card-grid-cols-lg-1{grid-template-columns:var(--grid-cols-1)}.card-grid-cols-lg-2{grid-template-columns:var(--grid-cols-2)}.card-grid-cols-lg-3{grid-template-columns:var(--grid-cols-3)}.card-grid-cols-lg-4{grid-template-columns:var(--grid-cols-4)}}@media (min-width: 1280px){.card-grid-cols-xl-1{grid-template-columns:var(--grid-cols-1)}.card-grid-cols-xl-2{grid-template-columns:var(--grid-cols-2)}.card-grid-cols-xl-3{grid-template-columns:var(--grid-cols-3)}.card-grid-cols-xl-4{grid-template-columns:var(--grid-cols-4)}}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-0{gap:var(--spacing-0)}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.gap-10{gap:var(--spacing-10)}.gap-12{gap:var(--spacing-12)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow-0{flex-grow:0}.flex-grow{flex-grow:1}.p-0{padding:var(--spacing-0)}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-5{padding:var(--spacing-5)}.p-6{padding:var(--spacing-6)}.p-8{padding:var(--spacing-8)}.p-10{padding:var(--spacing-10)}.p-12{padding:var(--spacing-12)}.px-0{padding-left:var(--spacing-0);padding-right:var(--spacing-0)}.px-1{padding-left:var(--spacing-1);padding-right:var(--spacing-1)}.px-2{padding-left:var(--spacing-2);padding-right:var(--spacing-2)}.px-3{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}.px-4{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.px-5{padding-left:var(--spacing-5);padding-right:var(--spacing-5)}.px-6{padding-left:var(--spacing-6);padding-right:var(--spacing-6)}.px-8{padding-left:var(--spacing-8);padding-right:var(--spacing-8)}.px-10{padding-left:var(--spacing-10);padding-right:var(--spacing-10)}.px-12{padding-left:var(--spacing-12);padding-right:var(--spacing-12)}.py-0{padding-top:var(--spacing-0);padding-bottom:var(--spacing-0)}.py-1{padding-top:var(--spacing-1);padding-bottom:var(--spacing-1)}.py-2{padding-top:var(--spacing-2);padding-bottom:var(--spacing-2)}.py-3{padding-top:var(--spacing-3);padding-bottom:var(--spacing-3)}.py-4{padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}.py-5{padding-top:var(--spacing-5);padding-bottom:var(--spacing-5)}.py-6{padding-top:var(--spacing-6);padding-bottom:var(--spacing-6)}.py-8{padding-top:var(--spacing-8);padding-bottom:var(--spacing-8)}.py-10{padding-top:var(--spacing-10);padding-bottom:var(--spacing-10)}.py-12{padding-top:var(--spacing-12);padding-bottom:var(--spacing-12)}.pt-0{padding-top:var(--spacing-0)}.pt-1{padding-top:var(--spacing-1)}.pt-2{padding-top:var(--spacing-2)}.pt-3{padding-top:var(--spacing-3)}.pt-4{padding-top:var(--spacing-4)}.pt-5{padding-top:var(--spacing-5)}.pt-6{padding-top:var(--spacing-6)}.pt-8{padding-top:var(--spacing-8)}.pt-10{padding-top:var(--spacing-10)}.pt-12{padding-top:var(--spacing-12)}.pb-0{padding-bottom:var(--spacing-0)}.pb-1{padding-bottom:var(--spacing-1)}.pb-2{padding-bottom:var(--spacing-2)}.pb-3{padding-bottom:var(--spacing-3)}.pb-4{padding-bottom:var(--spacing-4)}.pb-5{padding-bottom:var(--spacing-5)}.pb-6{padding-bottom:var(--spacing-6)}.pb-8{padding-bottom:var(--spacing-8)}.pb-10{padding-bottom:var(--spacing-10)}.pb-12{padding-bottom:var(--spacing-12)}.pl-0{padding-left:var(--spacing-0)}.pl-1{padding-left:var(--spacing-1)}.pl-2{padding-left:var(--spacing-2)}.pl-3{padding-left:var(--spacing-3)}.pl-4{padding-left:var(--spacing-4)}.pl-5{padding-left:var(--spacing-5)}.pl-6{padding-left:var(--spacing-6)}.pl-8{padding-left:var(--spacing-8)}.pl-10{padding-left:var(--spacing-10)}.pl-12{padding-left:var(--spacing-12)}.pr-0{padding-right:var(--spacing-0)}.pr-1{padding-right:var(--spacing-1)}.pr-2{padding-right:var(--spacing-2)}.pr-3{padding-right:var(--spacing-3)}.pr-4{padding-right:var(--spacing-4)}.pr-5{padding-right:var(--spacing-5)}.pr-6{padding-right:var(--spacing-6)}.pr-8{padding-right:var(--spacing-8)}.pr-10{padding-right:var(--spacing-10)}.pr-12{padding-right:var(--spacing-12)}.m-0{margin:var(--spacing-0)}.m-1{margin:var(--spacing-1)}.m-2{margin:var(--spacing-2)}.m-3{margin:var(--spacing-3)}.m-4{margin:var(--spacing-4)}.m-5{margin:var(--spacing-5)}.m-6{margin:var(--spacing-6)}.m-8{margin:var(--spacing-8)}.m-10{margin:var(--spacing-10)}.m-12{margin:var(--spacing-12)}.mx-0{margin-left:var(--spacing-0);margin-right:var(--spacing-0)}.mx-1{margin-left:var(--spacing-1);margin-right:var(--spacing-1)}.mx-2{margin-left:var(--spacing-2);margin-right:var(--spacing-2)}.mx-3{margin-left:var(--spacing-3);margin-right:var(--spacing-3)}.mx-4{margin-left:var(--spacing-4);margin-right:var(--spacing-4)}.mx-5{margin-left:var(--spacing-5);margin-right:var(--spacing-5)}.mx-6{margin-left:var(--spacing-6);margin-right:var(--spacing-6)}.mx-8{margin-left:var(--spacing-8);margin-right:var(--spacing-8)}.mx-10{margin-left:var(--spacing-10);margin-right:var(--spacing-10)}.mx-12{margin-left:var(--spacing-12);margin-right:var(--spacing-12)}.my-0{margin-top:var(--spacing-0);margin-bottom:var(--spacing-0)}.my-1{margin-top:var(--spacing-1);margin-bottom:var(--spacing-1)}.my-2{margin-top:var(--spacing-2);margin-bottom:var(--spacing-2)}.my-3{margin-top:var(--spacing-3);margin-bottom:var(--spacing-3)}.my-4{margin-top:var(--spacing-4);margin-bottom:var(--spacing-4)}.my-5{margin-top:var(--spacing-5);margin-bottom:var(--spacing-5)}.my-6{margin-top:var(--spacing-6);margin-bottom:var(--spacing-6)}.my-8{margin-top:var(--spacing-8);margin-bottom:var(--spacing-8)}.my-10{margin-top:var(--spacing-10);margin-bottom:var(--spacing-10)}.my-12{margin-top:var(--spacing-12);margin-bottom:var(--spacing-12)}.mt-0{margin-top:var(--spacing-0)}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-5{margin-top:var(--spacing-5)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mt-10{margin-top:var(--spacing-10)}.mt-12{margin-top:var(--spacing-12)}.mb-0{margin-bottom:var(--spacing-0)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.mb-10{margin-bottom:var(--spacing-10)}.mb-12{margin-bottom:var(--spacing-12)}.ml-0{margin-left:var(--spacing-0)}.ml-1{margin-left:var(--spacing-1)}.ml-2{margin-left:var(--spacing-2)}.ml-3{margin-left:var(--spacing-3)}.ml-4{margin-left:var(--spacing-4)}.ml-5{margin-left:var(--spacing-5)}.ml-6{margin-left:var(--spacing-6)}.ml-8{margin-left:var(--spacing-8)}.ml-10{margin-left:var(--spacing-10)}.ml-12{margin-left:var(--spacing-12)}.mr-0{margin-right:var(--spacing-0)}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mr-3{margin-right:var(--spacing-3)}.mr-4{margin-right:var(--spacing-4)}.mr-5{margin-right:var(--spacing-5)}.mr-6{margin-right:var(--spacing-6)}.mr-8{margin-right:var(--spacing-8)}.mr-10{margin-right:var(--spacing-10)}.mr-12{margin-right:var(--spacing-12)}@media (min-width: 769px){.main-content-container,.page-container{padding:var(--spacing-10) var(--spacing-8)}}@media (min-width: 1024px){.page-container{max-width:var(--layout-content-max-width-xl)}}@media (min-width: 1280px){.page-container{max-width:var(--layout-content-max-width-2xl)}.main-content-container,.page-container{padding:var(--spacing-12) var(--spacing-10)}}@media (min-width: 1400px){.page-container{max-width:var(--layout-content-max-width-2xl)}}@media (max-width: 768px) and (orientation: landscape){.main-content-container{padding-bottom:calc(var(--layout-bottom-nav-height) + var(--spacing-4))}}@media (max-width: 768px){.main-content-container{padding:0}}@media (min-width: 1600px){.page-container{max-width:var(--layout-content-max-width-2xl)}.card-grid{gap:var(--spacing-8)}}@media print{.main-content-container{padding:0}}.card{background:var(--color-background-card);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);box-shadow:var(--card-shadow-sm);overflow:hidden;transition:all var(--transition-all);width:100%;position:relative}.card:hover{box-shadow:var(--card-shadow-md);transform:translateY(-1px)}.card:active{transform:translateY(0);box-shadow:var(--card-shadow-sm)}.card-sm{border-radius:var(--radius-lg);box-shadow:var(--card-shadow-sm);padding:var(--card-padding-sm)}.card-md{border-radius:var(--radius-xl);box-shadow:var(--card-shadow-md);padding:var(--card-padding-md)}.card-lg{border-radius:var(--radius-2xl);box-shadow:var(--card-shadow-lg);padding:var(--card-padding-lg)}.card-xl{border-radius:var(--radius-3xl);box-shadow:var(--card-shadow-xl);padding:var(--card-padding-xl)}.card-disabled{opacity:.6;pointer-events:none;cursor:not-allowed}.card-loading{position:relative}.card-loading:after{content:"";position:absolute;inset:0;background:#fffc;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10}.card-header{padding:var(--card-padding-lg);border-bottom:1px solid var(--color-border-secondary);background:transparent}.card-sm .card-header{padding:var(--card-padding-sm)}.card-md .card-header{padding:var(--card-padding-md)}.card-lg .card-header{padding:var(--card-padding-lg)}.card-xl .card-header{padding:var(--card-padding-xl)}.card-header-no-border{border-bottom:none}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;line-height:var(--line-height-tight)}.card-title-sm{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.card-title-lg{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.card-title-xl{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:var(--spacing-1) 0 0;line-height:var(--line-height-normal)}.card-description{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:var(--spacing-2) 0 0;line-height:var(--line-height-relaxed)}.card-body{padding:var(--card-padding-lg);flex:1}.card-sm .card-body{padding:var(--card-padding-sm)}.card-md .card-body{padding:var(--card-padding-md)}.card-lg .card-body{padding:var(--card-padding-lg)}.card-xl .card-body{padding:var(--card-padding-xl)}.card-body-no-padding{padding:0}.card-footer{padding:var(--card-padding-lg);border-top:1px solid var(--color-border-secondary);background:transparent}.card-sm .card-footer{padding:var(--card-padding-sm)}.card-md .card-footer{padding:var(--card-padding-md)}.card-lg .card-footer{padding:var(--card-padding-lg)}.card-xl .card-footer{padding:var(--card-padding-xl)}.card-footer-no-border{border-top:none}.card-actions{display:flex;gap:var(--spacing-2);align-items:center;justify-content:flex-start}.card-actions-right{justify-content:flex-end}.card-actions-center{justify-content:center}.card-actions-between{justify-content:space-between}.card-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);margin-bottom:var(--spacing-4)}.card-icon-sm{width:40px;height:40px;font-size:var(--font-size-lg)}.card-icon-lg{width:56px;height:56px;font-size:var(--font-size-2xl)}.card-icon-primary{background:var(--color-primary-light);color:var(--color-primary)}.card-icon-secondary{background:var(--color-secondary-light);color:var(--color-secondary)}.card-icon-accent{background:var(--color-accent-light);color:var(--color-accent)}.card-icon-warning{background:var(--color-warning-light);color:var(--color-warning)}.card-icon-danger{background:var(--color-danger-light);color:var(--color-danger)}.card-image{width:100%;height:200px;object-fit:cover;background:var(--color-background-hover)}.card-image-sm{height:120px}.card-image-lg{height:300px}.card-image-xl{height:400px}.card-image-rounded{border-radius:var(--radius-xl)}.card-avatars{display:flex;margin:var(--spacing-3) 0}.card-avatars .avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-background-card);background:var(--color-background-hover);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-left:-8px;transition:all var(--transition-all)}.card-avatars .avatar:first-child{margin-left:0}.card-avatars .avatar:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-md)}.card-badge{position:absolute;top:var(--spacing-4);right:var(--spacing-4);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.card-badge-primary{background:var(--color-primary);color:var(--color-text-inverse)}.card-badge-secondary{background:var(--color-secondary);color:var(--color-text-inverse)}.card-badge-accent{background:var(--color-accent);color:var(--color-text-inverse)}.card-badge-warning{background:var(--color-warning);color:var(--color-text-inverse)}.card-badge-danger{background:var(--color-danger);color:var(--color-text-inverse)}.card-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin:var(--spacing-3) 0}.card-tag{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-background-hover);color:var(--color-text-tertiary);transition:all var(--transition-all)}.card-tag:hover{background:var(--color-background-focus);color:var(--color-text-secondary)}.card-divider{height:1px;background:var(--color-border-secondary);margin:var(--spacing-4) 0}.card-divider-text{display:flex;align-items:center;margin:var(--spacing-4) 0;gap:var(--spacing-3)}.card-divider-text:before,.card-divider-text:after{content:"";flex:1;height:1px;background:var(--color-border-secondary)}.card-divider-text span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);padding:0 var(--spacing-2)}.card-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-4);margin:var(--spacing-4) 0}.card-stat{text-align:center;padding:var(--spacing-3);border-radius:var(--radius-lg);background:var(--color-background-hover);transition:all var(--transition-all)}.card-stat:hover{background:var(--color-background-focus);transform:translateY(-1px)}.card-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.card-stat-label{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.card-progress{margin:var(--spacing-4) 0}.card-progress-bar{width:100%;height:8px;background:var(--color-border-secondary);border-radius:var(--radius-full);overflow:hidden}.card-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));border-radius:var(--radius-full);transition:width var(--transition-all)}.card-progress-info{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-2)}.card-progress-label{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.card-progress-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.card-list{list-style:none;margin:0;padding:0}.card-list-item{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border-secondary);display:flex;align-items:center;justify-content:space-between;transition:all var(--transition-all)}.card-list-item:hover{background:var(--color-background-hover)}.card-list-item:last-child{border-bottom:none}.card-list-item-content{flex:1}.card-list-item-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.card-list-item-description{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.card-list-item-action{margin-left:var(--spacing-3)}.card-table{width:100%;border-collapse:collapse;margin:var(--spacing-4) 0}.card-table th,.card-table td{padding:var(--spacing-3) var(--spacing-4);text-align:left;border-bottom:1px solid var(--color-border-secondary)}.card-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);background:var(--color-background-hover)}.card-table tr:hover td{background:var(--color-background-hover)}.card-table tr:last-child td{border-bottom:none}.card-elevated{box-shadow:var(--card-shadow-lg)}.card-elevated:hover{box-shadow:var(--card-shadow-xl);transform:translateY(-2px)}.card-outlined{border:2px solid var(--color-border-primary);background:transparent}.card-filled{background:var(--color-background-hover);border:none}.card-filled:hover{background:var(--color-background-focus)}@media (max-width: 640px){.card-stats{grid-template-columns:1fr}.card-actions{flex-direction:column;gap:var(--spacing-2)}.card-table{font-size:var(--font-size-sm)}.card-table th,.card-table td{padding:var(--spacing-2) var(--spacing-3)}}.card-enter-active,.card-leave-active{transition:all var(--transition-all)}.card-enter-from{opacity:0;transform:translateY(20px)}.card-leave-to{opacity:0;transform:translateY(-20px)}.card-enter-to{opacity:1;transform:translateY(0)}.card-skeleton{background:linear-gradient(90deg,var(--color-border-secondary) 25%,var(--color-border-primary) 50%,var(--color-border-secondary) 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.card-skeleton-text{height:16px;border-radius:var(--radius-sm);margin-bottom:var(--spacing-2)}.card-skeleton-title{height:24px;width:60%;border-radius:var(--radius-sm);margin-bottom:var(--spacing-3)}.card-skeleton-avatar{width:40px;height:40px;border-radius:50%;margin-bottom:var(--spacing-3)}.card-skeleton-button{height:36px;width:100px;border-radius:var(--radius-md)}*{-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{display:none}body,html{-ms-overflow-style:none;scrollbar-width:none}
