:root{--color-brand-50: #f0f5fa;--color-brand-100: #dce5f0;--color-brand-200: #b9cce0;--color-brand-300: #8da8c8;--color-brand-400: #5a7da8;--color-brand-500: #1e3a5f;--color-brand-600: #162d4a;--color-brand-700: #0f2238;--color-brand-800: #0a1828;--color-brand-900: #060e1a;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-error: #ef4444;--color-error-light: #fee2e2;--color-info: #3b82f6;--color-info-light: #dbeafe;--color-neutral-0: #ffffff;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-neutral-950: #020617;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Cascadia Code", 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: 28px;--font-size-4xl: 36px;--font-size-5xl: 48px;--font-size-6xl: 56px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--letter-spacing-tight: -.5px;--letter-spacing-wide: 1px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 80px;--space-5xl: 100px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .08), 0 4px 10px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 50px rgba(0, 0, 0, .1);--shadow-glow: 0 0 20px rgba(30, 58, 95, .3);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s ease;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown: 100;--z-sticky: 200;--z-overlay: 500;--z-modal: 1000;--z-toast: 1200}html{font-family:var(--font-family-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}@keyframes pulse-glow{0%,to{box-shadow:0 0 #1e3a5f66}50%{box-shadow:0 0 0 12px #1e3a5f00}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden;width:100%;font-family:var(--font-family-sans)}body{overscroll-behavior:none;background-color:var(--color-neutral-50);color:var(--color-neutral-700)}.ant-layout-sider .ant-layout-sider-children{display:flex!important;flex-direction:column!important;overflow:hidden!important}.sider-logo-light{height:64px;display:flex;align-items:center;justify-content:center;background:var(--color-neutral-0);border-bottom:1px solid #f0f0f0;padding:0 8px}.sider-logo-light .sider-logo-img{height:40px;width:auto;max-width:100%;object-fit:contain}.layout-header-light{background:var(--color-neutral-0)!important;padding:0 24px!important;display:flex;align-items:center;justify-content:flex-end;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:10;height:56px;line-height:56px;border-bottom:1px solid #f0f0f0}.layout-content-light{margin:16px;min-height:calc(100vh - 88px);background:var(--color-neutral-50)}.header-user-menu-light{cursor:pointer;padding:4px 12px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.header-user-menu-light:hover{background:#0000000a}.header-username{font-size:var(--font-size-sm);color:#333;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-page-container{min-height:100vh;display:flex;background:var(--color-neutral-50)}.login-left-section{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:var(--color-neutral-0)}.login-left-content{max-width:480px}.login-brand{display:flex;align-items:center;gap:16px;margin-bottom:48px}.login-brand-icon{width:56px;height:56px;background:#1890ff33;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:var(--font-weight-bold);color:#1890ff;border:2px solid rgba(24,144,255,.3)}.login-brand-text{font-size:28px;font-weight:var(--font-weight-bold);letter-spacing:3px;color:var(--color-neutral-0)}.login-slogan{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:1.3;margin-bottom:20px;color:var(--color-neutral-0);letter-spacing:1px}.login-description{font-size:var(--font-size-base);color:#ffffffa6;line-height:var(--line-height-relaxed);margin-bottom:40px}.login-features{display:flex;flex-direction:column;gap:18px}.login-feature-item{display:flex;align-items:center;gap:14px;font-size:15px;color:#ffffffd9}.login-feature-icon{width:36px;height:36px;background:#1890ff26;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:18px;color:#1890ff}.login-right-section{width:460px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px 48px;background:var(--color-neutral-0)}.login-form-wrapper{width:100%;max-width:360px}.login-form-header{margin-bottom:36px;text-align:center}.login-form-title{font-size:26px;font-weight:var(--font-weight-semibold);color:#1a1a2e;margin-bottom:8px}.login-form-subtitle{font-size:var(--font-size-sm);color:#999}.login-form .ant-input-affix-wrapper{height:44px;border-radius:var(--radius-sm)}.login-form .ant-btn-primary{height:44px;border-radius:var(--radius-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.captcha-img-wrapper{height:44px;border:1px solid #d9d9d9;border-left:none;border-radius:0 6px 6px 0;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#fafafa;min-width:120px}.captcha-img-wrapper:hover{border-color:#1890ff}.captcha-img{height:42px;display:block}.captcha-placeholder{color:#999;font-size:13px;white-space:nowrap;padding:0 12px}.login-form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.login-form-options .ant-checkbox-wrapper{color:#666}.login-form-forgot{color:#1890ff;cursor:pointer;font-size:var(--font-size-sm)}.login-form-forgot:hover{color:#40a9ff}.login-footer{margin-top:32px;text-align:center;color:#999;font-size:var(--font-size-xs)}.login-page-admin .login-left-section{background:linear-gradient(135deg,#1a1a1a,#0d0d0d)}.login-page-admin .login-brand-icon{background:#ca8a042e;color:#ca8a04;border:2px solid rgba(202,138,4,.3)}.login-page-admin .login-feature-icon{background:#ca8a041f;color:#ca8a04}.ant-space-compact .ant-input-affix-wrapper:first-child{border-radius:6px 0 0 6px}@media screen and (max-width: 768px){.header-username{display:none}.layout-header-light{padding:0 12px!important;height:48px;line-height:48px}.layout-content-light{margin:12px 8px;min-height:calc(100vh - 72px)}.sider-logo-light{height:48px;font-size:16px}.ant-table{font-size:12px}.ant-table-cell{padding:8px!important}.ant-form-item{margin-bottom:16px}.ant-btn{font-size:13px;padding:4px 12px}.ant-card{margin-bottom:12px}.ant-card-head{padding:12px 16px;min-height:44px}.ant-card-body{padding:16px}.ant-pagination{font-size:12px}.ant-pagination-item{min-width:28px;height:28px;line-height:26px}.ant-drawer-body{padding:0}.ant-drawer-header{padding:12px 16px}.ant-drawer-title{font-size:16px}.login-page-container{flex-direction:column}.login-left-section{display:none}.login-right-section{width:100%;min-height:100vh;padding:40px 24px}.login-form-wrapper{max-width:100%}.login-form-header{margin-bottom:32px}.login-form-title{font-size:24px}}@media screen and (min-width: 769px) and (max-width: 1024px){.login-left-section{padding:40px}.login-slogan{font-size:28px}.login-right-section{width:380px;padding:40px 32px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.ant-drawer-body,.ant-modal-body{padding-bottom:env(safe-area-inset-bottom,16px)}}@media (max-width: 767px){.ant-btn{min-height:44px}.ant-menu-item{min-height:48px;line-height:48px}.ant-table-row{min-height:44px}.ant-radio-wrapper,.ant-checkbox-wrapper{min-height:44px;line-height:44px}.ant-form-item{max-width:100%}.ant-input,.ant-select-selector,.ant-picker-input>input{font-size:16px!important}.ant-card-body{padding:12px!important}.ant-card-head{padding:0 12px;min-height:44px}.ant-card-head-title{padding:12px 0}.ant-table-wrapper{-webkit-overflow-scrolling:touch}.ant-modal{max-width:96%!important;margin:8px auto;top:16px}.ant-modal-content{border-radius:12px 12px 0 0}.ant-drawer-content-wrapper{max-width:85vw!important}.app-content{padding:12px!important}.app-header{padding:0 12px!important}*{touch-action:manipulation}.mobile-safe-top{padding-top:env(safe-area-inset-top,0px)}.mobile-safe-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.ant-tabs-tab{min-height:44px;padding:8px 16px!important}.ant-tabs-tab-btn{font-size:15px}.ant-tag{min-height:28px;line-height:28px;font-size:13px}.ant-statistic-content-value{font-size:24px!important}.ant-descriptions-view table{table-layout:fixed}.ant-steps-horizontal .ant-steps-item{padding-bottom:8px}}@media (min-width: 768px) and (max-width: 991px){.app-content,.ant-card-body{padding:16px!important}}.ant-btn:active,.ant-menu-item:active,.ant-card-hoverable:active{transform:scale(.97);transition:transform .1s ease}.m-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #f0f0f0;background:#fafafa}.m-drawer-header .ant-space{font-size:16px;font-weight:600}.m-safe-bottom{padding-bottom:constant(safe-area-inset-bottom,16px);padding-bottom:env(safe-area-inset-bottom,16px)}
