.login-container{background:linear-gradient(135deg,#f5f7fa 0%,#c3cfe2 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-background{z-index:0;width:100%;height:100%;position:absolute;overflow:hidden}.login-bg-circle{background:linear-gradient(135deg,#1366ec1a,#40a9ff0d);border-radius:50%;animation:20s ease-in-out infinite float;position:absolute}.login-bg-circle.circle-1{width:600px;height:600px;animation-delay:0s;top:-200px;right:-100px}.login-bg-circle.circle-2{width:400px;height:400px;animation-delay:5s;bottom:-100px;left:-100px}.login-bg-circle.circle-3{width:300px;height:300px;animation-delay:10s;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-20px)rotate(5deg)}}.login-box{z-index:1;background:#fff;border-radius:16px;width:400px;padding:48px 40px 40px;animation:.6s ease-out slideUp;position:relative;box-shadow:0 20px 60px #0000001a}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-logo-section{text-align:center;margin-bottom:40px}.login-logo-section .login-logo{width:64px;height:64px;margin-bottom:16px}.login-logo-section .login-title{color:#1d2129;margin:0 0 8px;font-size:28px;font-weight:600}.login-logo-section .login-subtitle{color:#86909c;margin:0;font-size:14px}.login-form .ant-form-item{background:#f7f8fa;border:1px solid #0000;border-radius:8px;margin-bottom:24px;transition:all .3s}.login-form .ant-form-item:hover{background:#fff;border-color:#1366ec}.login-form .ant-form-item:focus-within{background:#fff;border-color:#1366ec;box-shadow:0 0 0 2px #1366ec1a}.login-form .ant-input,.login-form .ant-input-password{background:0 0;font-size:15px}.login-form .ant-input::placeholder,.login-form .ant-input-password::placeholder{color:#c9cdd4}.login-form .ant-input-prefix{color:#86909c;margin-right:12px}.login-form .ant-checkbox-wrapper{color:#86909c;font-size:14px}.login-button{background:#1366ec;border:none;border-radius:8px;height:48px;font-size:16px;font-weight:500;transition:all .3s;box-shadow:0 4px 12px #1366ec4d}.login-button:hover{background:#2b75ee;transform:translateY(-1px);box-shadow:0 6px 16px #1366ec66}.login-button:active{transform:translateY(0)}.login-footer{text-align:center;margin-top:24px}.login-footer p{color:#c9cdd4;margin:0;font-size:13px}@media (width<=480px){.login-box{width:90%;padding:32px 24px 24px}.login-logo-section .login-logo{width:48px;height:48px}.login-logo-section .login-title{font-size:24px}}.mobile-tabbar{z-index:100;height:calc(52px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--cockpit-chrome,#fff);border-top:1px solid var(--cockpit-border,#e2e8f0);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-tabbar-item{color:var(--cockpit-text-muted,#64748b);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;text-decoration:none;display:flex}.mobile-tabbar-item .anticon{font-size:18px}.mobile-tabbar-item.active{color:var(--cockpit-primary,#e11d8f)}body{background-color:var(--cockpit-bg,#f8fafc);color:var(--cockpit-text,#0f172a);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}.ant-pro-basicLayout .ant-pro-top-nav-header{background:var(--cockpit-chrome,#fff);border-bottom:1px solid var(--cockpit-border,#e2e8f0);height:48px;box-shadow:none;padding:0 20px;line-height:48px}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-pro-top-nav-header-left{align-items:center;gap:20px;display:flex}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-pro-top-nav-header-left .ant-pro-top-nav-header-logo{align-items:center;gap:8px;text-decoration:none;display:flex}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-pro-top-nav-header-left .ant-pro-top-nav-header-logo img{width:24px;height:24px}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-pro-top-nav-header-left .ant-pro-top-nav-header-logo h1{color:var(--cockpit-text,#0f172a);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-menu.ant-menu-top{background:0 0;border-bottom:none;line-height:48px}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-menu.ant-menu-top .ant-menu-item{height:48px;color:var(--cockpit-text-muted,#64748b);border-bottom:none;padding:0 16px;font-size:13px;font-weight:500;line-height:48px;position:relative}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-menu.ant-menu-top .ant-menu-item:hover{color:var(--cockpit-text,#0f172a)}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-menu.ant-menu-top .ant-menu-item.ant-menu-item-selected{color:var(--cockpit-text,#0f172a);font-weight:600}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-menu.ant-menu-top .ant-menu-item.ant-menu-item-selected:after{content:"";background:var(--cockpit-primary,#e11d8f);width:16px;height:2px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.ant-pro-basicLayout .ant-pro-top-nav-header .ant-pro-top-nav-header-right{align-items:center;gap:12px;display:flex}.ant-pro-basicLayout .ant-pro-sider{background:var(--cockpit-chrome,#fff);border-right:1px solid var(--cockpit-border,#e2e8f0)}.ant-pro-basicLayout .ant-pro-sider .ant-pro-sider-logo h1{font-size:15px;font-weight:600;color:var(--cockpit-text,#0f172a)!important}.ant-pro-basicLayout .ant-pro-sider .ant-menu{background:0 0;border-right:none}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-item{border-radius:4px;height:32px;margin:2px 8px;padding:0 12px;font-size:13px;line-height:32px}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-item:hover{background:var(--cockpit-primary-faint,#e11d8f0f)}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-item.ant-menu-item-selected{background:var(--cockpit-primary-soft,#e11d8f1a);color:var(--cockpit-primary,#e11d8f);font-weight:500}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-item.ant-menu-item-selected:after{display:none}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-submenu .ant-menu-submenu-title{border-radius:4px;height:32px;margin:2px 8px;padding:0 12px;font-size:13px;line-height:32px}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-submenu .ant-menu-submenu-title:hover,.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-submenu.ant-menu-submenu-open>.ant-menu-submenu-title{background:var(--cockpit-primary-faint,#e11d8f0f);color:var(--cockpit-text,#0f172a)}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-submenu .ant-menu-sub{background:0 0}.ant-pro-basicLayout .ant-pro-sider .ant-menu .ant-menu-submenu .ant-menu-sub .ant-menu-item{padding-left:40px!important}.ant-pro-basicLayout .ant-pro-basicLayout-content{background:var(--cockpit-bg,#f8fafc);min-height:calc(100vh - 48px);margin:0}.ant-pro-basicLayout .ant-pro-breadcrumb{background:0 0;margin-bottom:12px;padding:12px 20px 0}.ant-pro-basicLayout .ant-pro-breadcrumb .ant-breadcrumb{font-size:13px}.ant-pro-basicLayout .ant-pro-breadcrumb .ant-breadcrumb .ant-breadcrumb-link{color:var(--cockpit-text-muted,#64748b)}.ant-pro-basicLayout .ant-pro-breadcrumb .ant-breadcrumb .ant-breadcrumb-link:hover{color:var(--cockpit-primary,#e11d8f)}.ant-pro-basicLayout .ant-pro-page-container{padding:0}.ant-input-search .ant-input{background:var(--cockpit-input-bg,#fff);transition:border-color .15s;border:1px solid var(--cockpit-border,#e2e8f0)!important;border-radius:4px!important}.ant-input-search .ant-input:focus{box-shadow:none;border-color:var(--cockpit-primary,#e11d8f)!important}.ant-input-search .ant-input:hover{border-color:var(--cockpit-text-muted,#64748b)!important}.ant-input-search .ant-input-search-button{border-radius:0 4px 4px 0!important}.ant-card{border:1px solid var(--cockpit-border,#e2e8f0);box-shadow:none;background:var(--cockpit-surface,#fff);border-radius:4px}.ant-card .ant-card-head{border-bottom:1px solid var(--cockpit-border,#e2e8f0);min-height:auto;padding:12px 16px}.ant-card .ant-card-head .ant-card-head-title{color:var(--cockpit-text-muted,#64748b);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.ant-card .ant-card-body{padding:16px}.ant-table .ant-table-thead>tr>th{background-color:var(--cockpit-surface-alt,#fff);color:var(--cockpit-text-muted,#64748b);border-bottom:1px solid var(--cockpit-border,#e2e8f0);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;font-size:12px;font-weight:600}.ant-table .ant-table-thead>tr>th:before{display:none}.ant-table .ant-table-tbody>tr:hover>td{background-color:var(--cockpit-hover,#e11d8f08)!important}.ant-table .ant-table-tbody>tr>td{border-bottom:1px solid var(--cockpit-border-soft,#e2e8f0);padding:10px 12px;font-size:13px}.ant-table .ant-table-cell{font-size:13px}.ant-tag{border:1px solid #0000;border-radius:2px;padding:1px 6px;font-size:11px;font-weight:500}.ant-tag.ant-tag-success{color:#16a34a;background:#22c55e1a;border-color:#22c55e33}.ant-tag.ant-tag-warning{color:#d97706;background:#f59e0b1a;border-color:#f59e0b33}.ant-tag.ant-tag-error{color:#dc2626;background:#ef44441a;border-color:#ef444433}.ant-tag.ant-tag-processing,.ant-tag.ant-tag-blue{background:var(--cockpit-primary-soft,#e11d8f1a);color:var(--cockpit-primary-strong,#be185d);border-color:var(--cockpit-primary-border,#e11d8f33)}html[data-theme=dark] .ant-tag.ant-tag-success{color:#4ade80;background:#22c55e29;border-color:#22c55e52}html[data-theme=dark] .ant-tag.ant-tag-warning{color:#fbbf24;background:#f59e0b29;border-color:#f59e0b52}html[data-theme=dark] .ant-tag.ant-tag-error{color:#f87171;background:#ef444429;border-color:#ef444452}.ant-btn{border:1px solid var(--cockpit-border,#e2e8f0);border-radius:4px;height:32px;padding:4px 14px;font-size:13px;font-weight:500;transition:all .15s}.ant-btn.ant-btn-primary{background:var(--cockpit-primary,#e11d8f);border-color:var(--cockpit-primary,#e11d8f)}.ant-btn.ant-btn-primary:hover{background:var(--cockpit-primary-hover,#be185d);border-color:var(--cockpit-primary-hover,#be185d)}.ant-btn.ant-btn-text{color:var(--cockpit-text-muted,#64748b);border:none}.ant-btn.ant-btn-text:hover{color:var(--cockpit-primary,#e11d8f);background:var(--cockpit-primary-faint,#e11d8f0f)}.ant-progress .ant-progress-bg{border-radius:1px}.dashboard-container,.page-container{padding:20px}.page-container .ant-card{margin-bottom:12px}.page-container .ant-card:last-child{margin-bottom:0}.app-density-compact .page-container,.app-density-compact .dashboard-container{padding:12px}.app-density-compact .ant-card .ant-card-head{min-height:40px;padding:0 12px}.app-density-compact .ant-card .ant-card-body{padding:12px}.app-density-compact .ant-tabs>.ant-tabs-nav{margin-bottom:12px}.app-density-compact .ant-table-wrapper .ant-table-thead>tr>th,.app-density-compact .ant-table-wrapper .ant-table-tbody>tr>td{padding-top:6px;padding-bottom:6px}@media (width<=768px){.ant-pro-top-nav-header{padding:0 12px}.ant-pro-top-nav-header .ant-input-search,.header-doc-text{display:none}.ant-modal{max-width:calc(100vw - 16px);margin:8px auto}.dashboard-container,.page-container{padding:8px}.ant-card .ant-card-body{padding:12px}.ant-table .ant-table-thead>tr>th,.ant-table .ant-table-tbody>tr>td{padding:6px 8px}.stat-card{min-height:80px;padding:10px}.stat-card .ant-statistic-content-value{font-size:20px}.ant-table-content{overflow-x:auto}.ant-table-content:not(:has(.ant-table-placeholder))>table{min-width:640px}.ant-pro-page-container-children-container,.dashboard-container,.page-container{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}#root{width:100%;height:100vh}.ant-pro-sider ant-layout-sider{box-shadow:2px 0 8px #1d23290d}.ant-pro-page-container{padding:24px}
