.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:var(--space-lg)}.login-content{width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:var(--space-xl);color:#fff;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.login-logo{width:120px;height:120px;object-fit:contain;background:#fff;border-radius:50%;padding:var(--space-md);box-shadow:var(--shadow-xl)}.login-header h1{font-size:2.5rem;font-weight:700;margin-bottom:var(--space-sm);color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.1)}.login-header p{font-size:1.125rem;opacity:.9}.login-card{margin-bottom:var(--space-lg);box-shadow:var(--shadow-xl)}.login-form{display:flex;flex-direction:column;gap:var(--space-lg)}.login-form h2{text-align:center;margin-bottom:var(--space-sm)}.login-error{padding:var(--space-md);background:#fee2e2;border:1px solid #fecaca;border-radius:var(--radius-md);color:#991b1b;font-size:.875rem;text-align:center}.login-footer{text-align:center;margin-top:var(--space-md)}.login-info{text-align:center;color:#fff;font-size:.875rem;opacity:.9}@media (max-width: 640px){.login-header h1{font-size:2rem}}.main-sider{background:linear-gradient(180deg,#001529,#002140)!important;box-shadow:2px 0 8px #00000026}.logo-container{height:64px;display:flex;align-items:center;justify-content:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px}.logo-full{display:flex;align-items:center;justify-content:center}.sidebar-menu{border-right:none!important}.sidebar-menu .ant-menu-item{margin:4px 8px;border-radius:8px;height:44px;line-height:44px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.sidebar-menu .ant-menu-item:hover{background-color:#ffffff14!important;transform:translate(4px)}.sidebar-menu .ant-menu-item-selected{background:linear-gradient(90deg,#1890ff,#096dd9)!important;box-shadow:0 2px 8px #1890ff4d}.sidebar-menu .ant-menu-submenu-title{margin:4px 8px;border-radius:8px;height:44px;line-height:44px}.sidebar-menu .ant-menu-submenu-title:hover{background-color:#ffffff14!important}.main-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.trigger{transition:color .3s}.trigger:hover{color:#1890ff}.ant-layout-sider{transition:all .2s cubic-bezier(.645,.045,.355,1)}.main-sider::-webkit-scrollbar{width:6px}.main-sider::-webkit-scrollbar-track{background:#0000001a}.main-sider::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.main-sider::-webkit-scrollbar-thumb:hover{background:#ffffff4d}:root{--primary: #1e40af;--primary-dark: #1e3a8a;--primary-light: #3b82f6;--secondary: #f59e0b;--secondary-dark: #d97706;--secondary-light: #fbbf24;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--info: #3b82f6;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--bg: #ffffff;--bg-secondary: #f9fafb;--text: #111827;--text-secondary: #6b7280;--border: #e5e7eb;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:var(--font-sans);color:var(--text);background-color:var(--bg-secondary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;color:var(--gray-900)}h1{font-size:2.25rem}h2{font-size:1.875rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{line-height:1.6}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.container{max-width:1280px;margin:0 auto;padding:0 var(--space-lg)}.text-center{text-align:center}.text-muted{color:var(--text-secondary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}@media (max-width: 768px){html,body,#root{overflow-x:hidden;width:100%}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}.container{padding:0 var(--space-md)}.ant-layout{overflow-x:hidden!important}.ant-card{margin:0!important}.ant-card-body{padding:12px!important}.ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.ant-table{min-width:100%}.ant-modal{max-width:calc(100vw - 32px)!important;margin:16px auto!important}.ant-modal-content{max-width:100%!important}.ant-modal-body{padding:16px!important}.ant-form-item{margin-bottom:16px!important}.ant-btn-lg{height:40px;padding:0 16px;font-size:14px}.ant-space{gap:8px!important}.ant-space-item{margin-right:0!important}.ant-input-lg,.ant-select-lg{font-size:14px!important}.ant-typography{word-break:break-word}}@media (max-width: 480px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.container{padding:0 var(--space-sm)}.ant-btn-lg{height:36px;padding:0 12px;font-size:13px}.ant-modal{max-width:calc(100vw - 16px)!important;margin:8px auto!important}}
