*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa;color:#333}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .3s ease}.slide-enter-from{transform:translate(-100%)}.slide-leave-to{transform:translate(100%)}.shadow-soft{box-shadow:0 2px 8px #0000001a}.shadow-medium{box-shadow:0 4px 16px #00000026}.shadow-strong{box-shadow:0 8px 32px #0003}.rounded-soft{border-radius:6px}.rounded-medium{border-radius:8px}.rounded-strong{border-radius:12px}.transition-all{transition:all .2s ease-in-out}.transition-transform{transition:transform .2s ease-in-out}.transition-opacity{transition:opacity .2s ease-in-out}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.hover-scale:hover{transform:scale(1.02)}.text-gradient{background:linear-gradient(135deg,#1890ff 0%,#40a9ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.1)}.btn-modern{border-radius:8px;font-weight:500;transition:all .2s ease-in-out;border:none;cursor:pointer}.btn-modern:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.btn-modern:active{transform:translateY(0)}.card-modern{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;transition:all .2s ease-in-out;border:1px solid #f0f0f0}.card-modern:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-1px)}.input-modern{border-radius:8px;border:2px solid #e8e8e8;transition:all .2s ease-in-out;padding:12px 16px}.input-modern:focus{border-color:#1890ff;box-shadow:0 0 0 3px #1890ff1a;outline:none}.table-modern{border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.table-modern th{background:linear-gradient(135deg,#fafafa 0%,#f5f5f5 100%);font-weight:600;color:#333;border-bottom:2px solid #f0f0f0}.table-modern td{border-bottom:1px solid #f0f0f0;transition:background-color .2s ease-in-out}.table-modern tr:hover td{background-color:#f8f9fa}@media (max-width: 768px){.mobile-hidden{display:none!important}.mobile-full{width:100%!important}.mobile-center{text-align:center!important}}@media (max-width: 480px){.mobile-padding{padding:12px!important}.mobile-margin{margin:8px!important}}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid #f3f3f3;border-top:3px solid #1890ff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.status-success{background-color:#52c41a}.status-warning{background-color:#faad14}.status-error{background-color:#f5222d}.status-info{background-color:#1890ff}.tooltip-modern{background:rgba(0,0,0,.8);color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;max-width:200px;word-wrap:break-word}.empty-state{text-align:center;padding:40px 20px;color:#999}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-text{font-size:16px;margin-bottom:8px}.empty-state-description{font-size:14px;color:#ccc}.layout[data-v-e03d918a]{min-height:100vh;--sider-width: 200px;--sider-collapsed-width: 80px}.sider[data-v-e03d918a]{box-shadow:2px 0 8px #1d23290d;position:fixed;left:0;top:0;bottom:0;overflow-y:auto;width:var(--sider-width)}.logo[data-v-e03d918a]{height:64px;padding:16px;display:flex;align-items:center;background:rgba(255,255,255,.1);margin-bottom:8px}.logo img[data-v-e03d918a]{width:32px;height:32px}.logo h1[data-v-e03d918a]{color:#fff;font-size:18px;margin:0 0 0 12px;font-weight:600;white-space:nowrap}.header[data-v-e03d918a]{background:#fff;padding:0 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #0000000d;z-index:9;position:fixed;right:0;top:0;left:var(--sider-width);transition:all .2s}.header-left[data-v-e03d918a]{display:flex;align-items:center}.trigger[data-v-e03d918a]{font-size:18px;padding:0 24px;cursor:pointer;transition:color .3s}.trigger[data-v-e03d918a]:hover{color:#1890ff}.breadcrumb[data-v-e03d918a]{margin-left:16px}.header-right[data-v-e03d918a]{display:flex;align-items:center}.user-dropdown[data-v-e03d918a]{display:flex;align-items:center;padding:0 12px;cursor:pointer;transition:all .3s}.user-dropdown[data-v-e03d918a]:hover{background:rgba(0,0,0,.025)}.username[data-v-e03d918a]{margin-left:8px;color:#000000d9}.content[data-v-e03d918a]{margin-top:64px;margin-left:var(--sider-width);padding:24px;overflow-y:auto;transition:all .2s}.ant-layout-sider-collapsed[data-v-e03d918a]{width:var(--sider-collapsed-width)!important}.ant-layout-sider-collapsed+.ant-layout .header[data-v-e03d918a]{left:var(--sider-collapsed-width)}.ant-layout-sider-collapsed+.ant-layout .content[data-v-e03d918a]{margin-left:var(--sider-collapsed-width)}[data-v-e03d918a] .ant-layout-header{height:64px;line-height:64px;background:#fff}[data-v-e03d918a] .ant-menu-inline{border-right:none}.admin-layout{--primary-color: #2563eb;--primary-hover: #1d4ed8;--secondary-color: #64748b;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--background-color: #f8fafc;--surface-color: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border-color: #e2e8f0;--border-radius: 12px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--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);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1)}
