.admin-layout{height:100vh}.admin-layout .admin-sider{position:fixed;left:0;top:0;bottom:0;z-index:100;box-shadow:2px 0 8px #00000026;background:#001529!important}.admin-layout .admin-sider .admin-logo{height:64px;display:flex;align-items:center;justify-content:center;padding:0 16px;background:#ffffff1a;border-bottom:1px solid rgba(255,255,255,.1)}.admin-layout .admin-sider .admin-logo .logo-img{width:32px;height:32px;margin-right:8px}.admin-layout .admin-sider .admin-logo .logo-text{color:#fff;font-size:16px;font-weight:600;white-space:nowrap}.admin-layout .admin-sider .admin-menu{border-right:none;background:transparent!important}.admin-layout .admin-sider .admin-menu .ant-menu-item{margin:4px 8px;border-radius:6px;color:#ffffffd9!important}.admin-layout .admin-sider .admin-menu .ant-menu-item.ant-menu-item-selected{background-color:#1890ff!important;color:#fff!important}.admin-layout .admin-sider .admin-menu .ant-menu-item.ant-menu-item-selected:after{display:none}.admin-layout .admin-sider .admin-menu .ant-menu-item:hover{background-color:#ffffff1a!important;color:#fff!important}.admin-layout .admin-sider .admin-menu .ant-menu-item-icon{font-size:16px}.admin-layout .ant-layout{transition:margin-left .2s}.admin-layout .ant-layout.collapsed{margin-left:80px}.admin-layout .admin-header{height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 4px #00000014;position:sticky;top:0;z-index:99}.admin-layout .admin-header .header-left{display:flex;align-items:center}.admin-layout .admin-header .header-left .collapse-btn{font-size:18px;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.admin-layout .admin-header .header-left .collapse-btn:hover{background-color:#0000000d}.admin-layout .admin-header .header-right{display:flex;align-items:center;gap:16px}.admin-layout .admin-header .header-right .notification-btn{font-size:18px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;position:relative}.admin-layout .admin-header .header-right .notification-btn:hover{background-color:#0000000d}.admin-layout .admin-header .header-right .notification-btn:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;background-color:#ff4d4f;border-radius:50%;display:none}.admin-layout .admin-header .header-right .notification-btn.has-notification:after{display:block}.admin-layout .admin-header .header-right .user-info{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background-color .2s}.admin-layout .admin-header .header-right .user-info:hover{background-color:#0000000d}.admin-layout .admin-header .header-right .user-info .user-avatar{width:32px;height:32px}.admin-layout .admin-header .header-right .user-info .user-name{font-size:14px;font-weight:500;color:#262626;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-layout .admin-content{background:#f5f5f5;min-height:calc(100vh - 64px);overflow-y:auto}@media (max-width: 767px){.admin-layout .admin-sider{transform:translate(-100%);transition:transform .3s}.admin-layout .admin-sider.mobile-open{transform:translate(0)}.admin-layout .ant-layout{margin-left:0}.admin-layout .admin-header{padding:0 16px}.admin-layout .admin-header .header-right{gap:8px}.admin-layout .admin-header .header-right .user-name{display:none}}@media (max-width: 479px){.admin-layout .admin-header{padding:0 12px}.admin-layout .admin-header .header-right .notification-btn{width:36px;height:36px;font-size:16px}.admin-layout .admin-header .header-right .user-info{padding:6px 8px}.admin-layout .admin-header .header-right .user-info .user-avatar{width:28px;height:28px}}.dark-theme .admin-layout .admin-header{background:#001529;border-bottom:1px solid #434343}.dark-theme .admin-layout .admin-header .collapse-btn:hover,.dark-theme .admin-layout .admin-header .notification-btn:hover,.dark-theme .admin-layout .admin-header .user-info:hover{background-color:#ffffff1a}.dark-theme .admin-layout .admin-header .user-info .user-name{color:#fff}.dark-theme .admin-layout .admin-content{background:#141414}@media print{.admin-layout .admin-sider,.admin-layout .admin-header{display:none}.admin-layout .ant-layout{margin-left:0}.admin-layout .admin-content{background:#fff;min-height:auto}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2)}.login-container .login-background{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0}.login-container .login-background .bg-shape{position:absolute;border-radius:50%;background:#ffffff1a;animation:float 6s ease-in-out infinite}.login-container .login-background .bg-shape.shape-1{width:200px;height:200px;top:10%;left:10%;animation-delay:0s}.login-container .login-background .bg-shape.shape-2{width:150px;height:150px;top:60%;right:15%;animation-delay:2s}.login-container .login-background .bg-shape.shape-3{width:100px;height:100px;bottom:20%;left:20%;animation-delay:4s}.login-container .login-content{position:relative;z-index:1;width:100%;max-width:400px;padding:0 24px}.login-container .login-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;box-shadow:0 20px 40px #0000001a;padding:40px 32px}.login-container .login-card .login-header{text-align:center;margin-bottom:32px}.login-container .login-card .login-header .login-logo{width:64px;height:64px;margin-bottom:16px}.login-container .login-card .login-header .login-title{font-size:28px;font-weight:600;color:#262626;margin-bottom:8px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-container .login-card .login-header .login-subtitle{font-size:14px;color:#8c8c8c;margin:0}.login-container .login-card .login-form .ant-form-item{margin-bottom:20px}.login-container .login-card .login-form .ant-form-item:last-child{margin-bottom:0}.login-container .login-card .login-form .ant-input-affix-wrapper,.login-container .login-card .login-form .ant-input{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s}.login-container .login-card .login-form .ant-input-affix-wrapper:hover,.login-container .login-card .login-form .ant-input:hover{border-color:#1890ff}.login-container .login-card .login-form .ant-input-affix-wrapper:focus,.login-container .login-card .login-form .ant-input-affix-wrapper.ant-input-affix-wrapper-focused,.login-container .login-card .login-form .ant-input:focus,.login-container .login-card .login-form .ant-input.ant-input-affix-wrapper-focused{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.login-container .login-card .login-form .ant-input-prefix{color:#8c8c8c;margin-right:8px}.login-container .login-card .login-form .login-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.login-container .login-card .login-form .login-options .ant-checkbox-wrapper{color:#8c8c8c;font-size:14px}.login-container .login-card .login-form .login-options .forgot-password{padding:0;font-size:14px;height:auto}.login-container .login-card .login-form .login-options .forgot-password:hover{color:#1890ff}.login-container .login-card .login-form .login-button{height:48px;border-radius:8px;font-size:16px;font-weight:500;background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 12px #667eea66;transition:all .3s}.login-container .login-card .login-form .login-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.login-container .login-card .login-form .login-button:active{transform:translateY(0)}.login-container .login-card .login-form .login-button.ant-btn-loading{transform:none}.login-container .login-card .login-footer{margin-top:24px;text-align:center}.login-container .login-card .login-footer .demo-account{margin:0;font-size:12px;color:#8c8c8c}.login-container .login-card .login-footer .demo-account span{margin-right:4px}.login-container .login-card .login-footer .demo-account .ant-btn-link{padding:0;height:auto;font-size:12px;color:#1890ff}.login-container .login-card .login-footer .demo-account .ant-btn-link:hover{color:#1890ff;text-decoration:underline}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}@media (min-width: 768px){.login-container .login-content{max-width:360px;padding:0 20px}.login-container .login-card{padding:32px 24px}.login-container .login-card .login-header{margin-bottom:24px}.login-container .login-card .login-header .login-logo{width:56px;height:56px;margin-bottom:12px}.login-container .login-card .login-header .login-title{font-size:24px}}@media (max-width: 479px){.login-container{padding:20px}.login-container .login-content{max-width:100%;padding:0}.login-container .login-card{padding:24px 20px;border-radius:12px}.login-container .login-card .login-header{margin-bottom:20px}.login-container .login-card .login-header .login-logo{width:48px;height:48px;margin-bottom:8px}.login-container .login-card .login-header .login-title{font-size:20px;margin-bottom:4px}.login-container .login-card .login-header .login-subtitle{font-size:12px}.login-container .login-card .login-form .ant-form-item{margin-bottom:16px}.login-container .login-card .login-form .login-button{height:44px;font-size:15px}.login-container .login-card .login-form .login-options .ant-checkbox-wrapper,.login-container .login-card .login-form .login-options .forgot-password{font-size:13px}.login-container .login-card .login-footer{margin-top:20px}.login-container .login-card .login-footer .demo-account,.login-container .login-card .login-footer .demo-account .ant-btn-link{font-size:11px}.login-container .login-background .bg-shape.shape-1{width:120px;height:120px}.login-container .login-background .bg-shape.shape-2{width:80px;height:80px}.login-container .login-background .bg-shape.shape-3{width:60px;height:60px}}.dark-theme .login-container{background:linear-gradient(135deg,#2c3e50,#34495e)}.dark-theme .login-container .login-card{background:#1e1e1ef2}.dark-theme .login-container .login-card .login-header .login-title{color:#fff}.dark-theme .login-container .login-card .login-header .login-subtitle{color:#ffffffb3}.dark-theme .login-container .login-card .login-form .ant-input-affix-wrapper,.dark-theme .login-container .login-card .login-form .ant-input{background:#ffffff1a;border-color:#fff3;color:#fff}.dark-theme .login-container .login-card .login-form .ant-input-affix-wrapper::placeholder,.dark-theme .login-container .login-card .login-form .ant-input::placeholder{color:#ffffff80}.dark-theme .login-container .login-card .login-form .ant-input-prefix{color:#ffffff80}.dark-theme .login-container .login-card .login-form .login-options .ant-checkbox-wrapper{color:#ffffffb3}.dark-theme .login-container .login-card .login-footer .demo-account{color:#ffffff80}@media print{.login-container{background:#fff}.login-container .login-background{display:none}.login-container .login-card{background:#fff;box-shadow:none;border:1px solid #ddd}}.dashboard-container{padding:24px;background:#f5f5f5;min-height:calc(100vh - 64px)}.dashboard-container .dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dashboard-container .dashboard-header .header-left h1{font-size:28px;font-weight:600;color:#262626;margin:0 0 8px}.dashboard-container .dashboard-header .header-left p{font-size:14px;color:#8c8c8c;margin:0}.dashboard-container .dashboard-header .header-right .ant-picker,.dashboard-container .dashboard-header .header-right .ant-select .ant-select-selector{border-radius:6px}.dashboard-container .stat-cards{margin-bottom:24px}.dashboard-container .stat-cards .stat-card{border-radius:12px;border:none;box-shadow:0 2px 8px #0000000f;transition:all .3s}.dashboard-container .stat-cards .stat-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.dashboard-container .stat-cards .stat-card .ant-card-body{padding:20px}.dashboard-container .stat-cards .stat-card .stat-content{display:flex;align-items:center;gap:16px}.dashboard-container .stat-cards .stat-card .stat-content .stat-icon{width:48px;height:48px;border-radius:12px;background:#1890ff1a;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.dashboard-container .stat-cards .stat-card .stat-content .stat-info{flex:1}.dashboard-container .stat-cards .stat-card .stat-content .stat-info .ant-statistic .ant-statistic-title{font-size:14px;color:#8c8c8c;margin-bottom:4px}.dashboard-container .stat-cards .stat-card .stat-content .stat-info .ant-statistic .ant-statistic-content{color:#262626}.dashboard-container .stat-cards .stat-card .stat-content .stat-info .trend{display:flex;align-items:center;gap:4px;font-size:12px;margin-top:4px}.dashboard-container .stat-cards .stat-card .stat-content .stat-info .trend.up{color:#52c41a}.dashboard-container .stat-cards .stat-card .stat-content .stat-info .trend.down{color:#ff4d4f}.dashboard-container .chart-section{margin-bottom:24px}.dashboard-container .chart-card{border-radius:12px;border:none;box-shadow:0 2px 8px #0000000f}.dashboard-container .chart-card .ant-card-head{border-bottom:1px solid #d9d9d9}.dashboard-container .chart-card .ant-card-head .ant-card-head-title{font-size:16px;font-weight:600;color:#262626}.dashboard-container .chart-card .ant-card-body{padding:20px}.dashboard-container .course-card{border-radius:12px;border:none;box-shadow:0 2px 8px #0000000f}.dashboard-container .course-card .ant-card-head{border-bottom:1px solid #d9d9d9}.dashboard-container .course-card .ant-card-head .ant-card-head-title{font-size:16px;font-weight:600;color:#262626}.dashboard-container .course-card .ant-card-body{padding:20px}.dashboard-container .course-card .course-item{display:flex;justify-content:space-between;align-items:center;width:100%}.dashboard-container .course-card .course-item .course-info{flex:1}.dashboard-container .course-card .course-item .course-info h4{font-size:14px;font-weight:500;color:#262626;margin:0 0 4px}.dashboard-container .course-card .course-item .course-info p{font-size:12px;color:#8c8c8c;margin:0 0 8px}.dashboard-container .course-card .course-item .course-info .ant-progress{margin:0}.dashboard-container .course-card .course-item .course-rating{font-size:12px;color:#faad14;font-weight:500}.dashboard-container .order-card{border-radius:12px;border:none;box-shadow:0 2px 8px #0000000f}.dashboard-container .order-card .ant-card-head{border-bottom:1px solid #d9d9d9}.dashboard-container .order-card .ant-card-head .ant-card-head-title{font-size:16px;font-weight:600;color:#262626}.dashboard-container .order-card .ant-card-body{padding:20px}.dashboard-container .order-card .ant-table .ant-table-thead>tr>th{background:#f5f5f5;border-bottom:1px solid #d9d9d9;font-weight:500;color:#262626}.dashboard-container .order-card .ant-table .ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0}.dashboard-container .order-card .ant-table .ant-table-tbody>tr:hover>td{background:#1890ff05}@media (min-width: 992px){.dashboard-container{padding:20px}.dashboard-container .dashboard-header{margin-bottom:20px}.dashboard-container .dashboard-header .header-left h1{font-size:24px}.dashboard-container .stat-cards,.dashboard-container .chart-section{margin-bottom:20px}}@media (min-width: 768px){.dashboard-container{padding:16px}.dashboard-container .dashboard-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:16px}.dashboard-container .dashboard-header .header-left h1{font-size:22px}.dashboard-container .dashboard-header .header-right{width:100%}.dashboard-container .dashboard-header .header-right .ant-space{width:100%;justify-content:space-between}.dashboard-container .stat-cards{margin-bottom:16px}.dashboard-container .stat-cards .stat-card .ant-card-body{padding:16px}.dashboard-container .stat-cards .stat-card .stat-content{gap:12px}.dashboard-container .stat-cards .stat-card .stat-content .stat-icon{width:40px;height:40px;font-size:18px}.dashboard-container .chart-section{margin-bottom:16px}.dashboard-container .chart-card .ant-card-body,.dashboard-container .course-card .ant-card-body,.dashboard-container .order-card .ant-card-body{padding:16px}}@media (max-width: 479px){.dashboard-container{padding:12px}.dashboard-container .dashboard-header{margin-bottom:12px}.dashboard-container .dashboard-header .header-left h1{font-size:20px}.dashboard-container .dashboard-header .header-left p{font-size:13px}.dashboard-container .dashboard-header .header-right .ant-space{flex-direction:column;width:100%}.dashboard-container .dashboard-header .header-right .ant-space .ant-picker,.dashboard-container .dashboard-header .header-right .ant-space .ant-select{width:100%}.dashboard-container .stat-cards{margin-bottom:12px}.dashboard-container .stat-cards .stat-card .ant-card-body{padding:12px}.dashboard-container .stat-cards .stat-card .stat-content{gap:8px}.dashboard-container .stat-cards .stat-card .stat-content .stat-icon{width:36px;height:36px;font-size:16px}.dashboard-container .stat-cards .stat-card .stat-content .stat-info .ant-statistic .ant-statistic-title{font-size:12px}.dashboard-container .stat-cards .stat-card .stat-content .stat-info .ant-statistic .ant-statistic-content{font-size:18px!important}.dashboard-container .chart-section{margin-bottom:12px}.dashboard-container .chart-card .ant-card-head .ant-card-head-title,.dashboard-container .course-card .ant-card-head .ant-card-head-title,.dashboard-container .order-card .ant-card-head .ant-card-head-title{font-size:14px}.dashboard-container .chart-card .ant-card-body,.dashboard-container .course-card .ant-card-body,.dashboard-container .order-card .ant-card-body{padding:12px}.dashboard-container .course-card .course-item{flex-direction:column;align-items:flex-start;gap:8px}.dashboard-container .course-card .course-item .course-rating{align-self:flex-end}.dashboard-container .order-card .ant-table .ant-table-content{overflow-x:auto}}.dark-theme .dashboard-container{background:#141414}.dark-theme .dashboard-container .dashboard-header .header-left h1{color:#fff}.dark-theme .dashboard-container .dashboard-header .header-left p{color:#ffffffa6}.dark-theme .dashboard-container .stat-card,.dark-theme .dashboard-container .chart-card,.dark-theme .dashboard-container .course-card,.dark-theme .dashboard-container .order-card{background:#1f1f1f;border-color:#303030}.dark-theme .dashboard-container .stat-card .ant-card-head,.dark-theme .dashboard-container .chart-card .ant-card-head,.dark-theme .dashboard-container .course-card .ant-card-head,.dark-theme .dashboard-container .order-card .ant-card-head{background:#1f1f1f;border-bottom-color:#303030}.dark-theme .dashboard-container .stat-card .ant-card-head .ant-card-head-title,.dark-theme .dashboard-container .chart-card .ant-card-head .ant-card-head-title,.dark-theme .dashboard-container .course-card .ant-card-head .ant-card-head-title,.dark-theme .dashboard-container .order-card .ant-card-head .ant-card-head-title{color:#fff}.dark-theme .dashboard-container .stat-card .stat-content .stat-info .ant-statistic .ant-statistic-title,.dark-theme .dashboard-container .chart-card .stat-content .stat-info .ant-statistic .ant-statistic-title,.dark-theme .dashboard-container .course-card .stat-content .stat-info .ant-statistic .ant-statistic-title,.dark-theme .dashboard-container .order-card .stat-content .stat-info .ant-statistic .ant-statistic-title{color:#ffffffa6}.dark-theme .dashboard-container .stat-card .stat-content .stat-info .ant-statistic .ant-statistic-content,.dark-theme .dashboard-container .chart-card .stat-content .stat-info .ant-statistic .ant-statistic-content,.dark-theme .dashboard-container .course-card .stat-content .stat-info .ant-statistic .ant-statistic-content,.dark-theme .dashboard-container .order-card .stat-content .stat-info .ant-statistic .ant-statistic-content,.dark-theme .dashboard-container .stat-card .course-item .course-info h4,.dark-theme .dashboard-container .chart-card .course-item .course-info h4,.dark-theme .dashboard-container .course-card .course-item .course-info h4,.dark-theme .dashboard-container .order-card .course-item .course-info h4{color:#fff}.dark-theme .dashboard-container .stat-card .course-item .course-info p,.dark-theme .dashboard-container .chart-card .course-item .course-info p,.dark-theme .dashboard-container .course-card .course-item .course-info p,.dark-theme .dashboard-container .order-card .course-item .course-info p{color:#ffffffa6}.dark-theme .dashboard-container .order-card .ant-table .ant-table-thead>tr>th{background:#1f1f1f;border-bottom-color:#303030;color:#fff}.dark-theme .dashboard-container .order-card .ant-table .ant-table-tbody>tr>td{background:#1f1f1f;border-bottom-color:#303030;color:#fff}.dark-theme .dashboard-container .order-card .ant-table .ant-table-tbody>tr:hover>td{background:#ffffff0a}@media print{.dashboard-container{background:#fff;padding:0}.dashboard-container .dashboard-header .header-right{display:none}.dashboard-container .stat-card,.dashboard-container .chart-card,.dashboard-container .course-card,.dashboard-container .order-card{box-shadow:none;border:1px solid #ddd;break-inside:avoid;margin-bottom:16px}}.users-container{padding:24px;background:#f5f5f5;min-height:calc(100vh - 64px)}.users-container .stats-row{margin-bottom:24px}.users-container .stats-row .ant-card{border-radius:8px;border:none;box-shadow:0 2px 8px #0000000f}.users-container .stats-row .ant-card .ant-card-body{padding:20px}.users-container .stats-row .ant-card .ant-statistic .ant-statistic-title{font-size:14px;color:#8c8c8c;margin-bottom:8px}.users-container .stats-row .ant-card .ant-statistic .ant-statistic-content{font-size:24px;font-weight:600}.users-container .users-card{border-radius:12px;border:none;box-shadow:0 2px 8px #0000000f}.users-container .users-card .ant-card-body{padding:24px}.users-container .users-card .search-bar{margin-bottom:16px;padding:16px;background:#f5f5f5;border-radius:8px;border:1px solid #f0f0f0}.users-container .users-card .search-bar .ant-input,.users-container .users-card .search-bar .ant-select-selector,.users-container .users-card .search-bar .ant-picker,.users-container .users-card .search-bar .ant-btn{border-radius:6px}.users-container .users-card .action-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.users-container .users-card .action-bar .action-left .ant-btn,.users-container .users-card .action-bar .action-right .ant-btn{border-radius:6px}.users-container .users-card .ant-table .ant-table-thead>tr>th{background:#f5f5f5;border-bottom:1px solid #d9d9d9;font-weight:500;color:#262626;padding:12px 16px}.users-container .users-card .ant-table .ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;padding:12px 16px}.users-container .users-card .ant-table .ant-table-tbody>tr:hover>td{background:#1890ff05}.users-container .users-card .ant-table .user-info{display:flex;align-items:center;gap:12px}.users-container .users-card .ant-table .user-info .user-details .username{font-weight:500;color:#262626;margin-bottom:2px}.users-container .users-card .ant-table .user-info .user-details .real-name{font-size:12px;color:#8c8c8c}.users-container .users-card .ant-table .phone,.users-container .users-card .ant-table .points{font-size:12px;color:#8c8c8c;margin-top:2px}.users-container .users-card .ant-pagination{margin-top:16px;text-align:right}.users-container .users-card .ant-pagination .ant-pagination-total-text{color:#8c8c8c}@media (min-width: 992px){.users-container{padding:20px}.users-container .stats-row{margin-bottom:20px}.users-container .stats-row .ant-card .ant-card-body{padding:16px}.users-container .stats-row .ant-card .ant-statistic .ant-statistic-content{font-size:20px}.users-container .users-card .ant-card-body{padding:20px}}@media (min-width: 768px){.users-container{padding:16px}.users-container .stats-row{margin-bottom:16px}.users-container .stats-row .ant-card .ant-card-body{padding:12px}.users-container .stats-row .ant-card .ant-statistic .ant-statistic-title{font-size:12px}.users-container .stats-row .ant-card .ant-statistic .ant-statistic-content{font-size:18px}.users-container .users-card .ant-card-body{padding:16px}.users-container .users-card .search-bar{padding:12px}.users-container .users-card .search-bar .ant-row .ant-col{margin-bottom:8px}.users-container .users-card .search-bar .ant-row .ant-col:last-child{margin-bottom:0}.users-container .users-card .action-bar{flex-direction:column;align-items:flex-start;gap:12px}.users-container .users-card .action-bar .action-left,.users-container .users-card .action-bar .action-right{width:100%}.users-container .users-card .action-bar .action-right{display:flex;justify-content:flex-end}}@media (max-width: 479px){.users-container{padding:12px}.users-container .stats-row{margin-bottom:12px}.users-container .stats-row .ant-card .ant-card-body{padding:8px}.users-container .stats-row .ant-card .ant-statistic .ant-statistic-title{font-size:11px;margin-bottom:4px}.users-container .stats-row .ant-card .ant-statistic .ant-statistic-content{font-size:16px}.users-container .users-card .ant-card-body{padding:12px}.users-container .users-card .search-bar{padding:8px}.users-container .users-card .search-bar .ant-row .ant-col{margin-bottom:6px}.users-container .users-card .action-bar{margin-bottom:12px}.users-container .users-card .action-bar .action-left .ant-space{flex-wrap:wrap}.users-container .users-card .ant-table .ant-table-thead>tr>th,.users-container .users-card .ant-table .ant-table-tbody>tr>td{padding:8px 12px}.users-container .users-card .ant-table .user-info{gap:8px}.users-container .users-card .ant-table .user-info .ant-avatar{width:32px;height:32px}.users-container .users-card .ant-table .user-info .user-details .username{font-size:13px}.users-container .users-card .ant-table .user-info .user-details .real-name,.users-container .users-card .ant-table .phone,.users-container .users-card .ant-table .points{font-size:11px}.users-container .users-card .ant-pagination{margin-top:12px}.users-container .users-card .ant-pagination .ant-pagination-options{display:none}}.ant-modal .ant-modal-header{border-bottom:1px solid #d9d9d9}.ant-modal .ant-modal-header .ant-modal-title{font-size:16px;font-weight:600;color:#262626}.ant-modal .ant-modal-body{padding:24px}.ant-modal .ant-modal-body .ant-form .ant-form-item{margin-bottom:16px}.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-form-item-label{padding-bottom:4px}.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-form-item-label label{font-size:14px;font-weight:500;color:#262626}.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-input,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-select-selector,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-picker{border-radius:6px;border:1px solid #d9d9d9}.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-input:hover,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-select-selector:hover,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-picker:hover{border-color:#1890ff}.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-input:focus,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-input.ant-select-focused .ant-select-selector,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-input.ant-picker-focused,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-select-selector:focus,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-select-selector.ant-select-focused .ant-select-selector,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-select-selector.ant-picker-focused,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-picker:focus,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-picker.ant-select-focused .ant-select-selector,.ant-modal .ant-modal-body .ant-form .ant-form-item .ant-picker.ant-picker-focused{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.ant-modal .ant-modal-footer{border-top:1px solid #d9d9d9;padding:16px 24px}.ant-modal .ant-modal-footer .ant-btn{border-radius:6px}.dark-theme .users-container{background:#141414}.dark-theme .users-container .stats-row .ant-card{background:#1f1f1f;border-color:#303030}.dark-theme .users-container .stats-row .ant-card .ant-statistic .ant-statistic-title{color:#ffffffa6}.dark-theme .users-container .stats-row .ant-card .ant-statistic .ant-statistic-content{color:#fff}.dark-theme .users-container .users-card{background:#1f1f1f;border-color:#303030}.dark-theme .users-container .users-card .search-bar{background:#141414;border-color:#303030}.dark-theme .users-container .users-card .ant-table .ant-table-thead>tr>th{background:#1f1f1f;border-bottom-color:#303030;color:#fff}.dark-theme .users-container .users-card .ant-table .ant-table-tbody>tr>td{background:#1f1f1f;border-bottom-color:#303030;color:#fff}.dark-theme .users-container .users-card .ant-table .ant-table-tbody>tr:hover>td{background:#ffffff0a}.dark-theme .users-container .users-card .ant-table .user-info .user-details .username{color:#fff}.dark-theme .users-container .users-card .ant-table .user-info .user-details .real-name,.dark-theme .users-container .users-card .ant-table .phone,.dark-theme .users-container .users-card .ant-table .points,.dark-theme .users-container .users-card .ant-pagination .ant-pagination-total-text{color:#ffffffa6}.dark-theme .ant-modal .ant-modal-content{background:#1f1f1f}.dark-theme .ant-modal .ant-modal-header{background:#1f1f1f;border-bottom-color:#303030}.dark-theme .ant-modal .ant-modal-header .ant-modal-title{color:#fff}.dark-theme .ant-modal .ant-modal-body{background:#1f1f1f}.dark-theme .ant-modal .ant-modal-body .ant-form .ant-form-item .ant-form-item-label label{color:#fff}.dark-theme .ant-modal .ant-modal-body .ant-form .ant-form-item .ant-input,.dark-theme .ant-modal .ant-modal-body .ant-form .ant-form-item .ant-select-selector{background:#ffffff0a;border-color:#303030;color:#fff}.dark-theme .ant-modal .ant-modal-body .ant-form .ant-form-item .ant-input::placeholder,.dark-theme .ant-modal .ant-modal-body .ant-form .ant-form-item .ant-select-selector::placeholder{color:#ffffff73}.dark-theme .ant-modal .ant-modal-footer{background:#1f1f1f;border-top-color:#303030}@media print{.users-container{background:#fff;padding:0}.users-container .stats-row{display:none}.users-container .users-card{box-shadow:none;border:1px solid #ddd}.users-container .users-card .search-bar,.users-container .users-card .action-bar{display:none}.users-container .users-card .ant-table .ant-table-thead>tr>th,.users-container .users-card .ant-table .ant-table-tbody>tr>td{border:1px solid #ddd;padding:8px}.users-container .users-card .ant-pagination{display:none}}.code-quality-container{padding:24px;background:#f5f5f5;min-height:calc(100vh - 64px)}.code-quality-container .page-header{margin-bottom:24px}.code-quality-container .page-header h2{margin-bottom:8px;color:#262626;font-weight:600}.code-quality-container .page-header .ant-typography{margin-bottom:0;color:#8c8c8c}.code-quality-container .overall-score-card{text-align:center}.code-quality-container .overall-score-card .score-circle{margin-bottom:16px}.code-quality-container .overall-score-card .score-label{font-size:16px;font-weight:500;color:#262626}.code-quality-container .overall-score-card .score-tag{font-size:14px;padding:4px 12px;border-radius:6px}.code-quality-container .metric-card{text-align:center;transition:all .3s ease}.code-quality-container .metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.code-quality-container .metric-card .metric-progress{margin-bottom:12px}.code-quality-container .metric-card .metric-label{font-size:14px;font-weight:500;color:#262626}.code-quality-container .stat-card{text-align:center;transition:all .3s ease}.code-quality-container .stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.code-quality-container .stat-card .stat-number{font-size:28px;font-weight:700;line-height:1;margin-bottom:8px}.code-quality-container .stat-card .stat-number.total{color:#1890ff}.code-quality-container .stat-card .stat-number.high{color:#f5222d}.code-quality-container .stat-card .stat-number.medium{color:#faad14}.code-quality-container .stat-card .stat-number.low{color:#52c41a}.code-quality-container .stat-card .stat-number.fixable{color:#722ed1}.code-quality-container .stat-card .stat-label{font-size:14px;color:#8c8c8c}.code-quality-container .issues-table .ant-table-thead>tr>th{background:#fafafa;font-weight:600}.code-quality-container .issues-table .issue-type-tag{display:inline-flex;align-items:center;gap:4px}.code-quality-container .issues-table .issue-type-tag .anticon{font-size:12px}.code-quality-container .issues-table .severity-tag{font-weight:500;border-radius:4px}.code-quality-container .issues-table .category-tag{display:inline-flex;align-items:center;gap:4px;font-weight:500}.code-quality-container .issues-table .category-tag .anticon{font-size:12px}.code-quality-container .issues-table .action-buttons .ant-btn{padding:0;height:auto}.code-quality-container .issues-table .action-buttons .ant-btn:hover{background:transparent}.code-quality-container .suggestions-table .ant-table-thead>tr>th{background:#fafafa;font-weight:600}.code-quality-container .suggestions-table .impact-tag,.code-quality-container .suggestions-table .effort-tag{font-weight:500;border-radius:4px}.code-quality-container .suggestions-table .ant-table-expanded-row .ant-table-expanded-row-content{background:#fafafa}.code-quality-container .suggestions-table .ant-table-expanded-row .ant-table-expanded-row-content .benefits-list .ant-list-item{padding:4px 0;border:none}.code-quality-container .suggestions-table .ant-table-expanded-row .ant-table-expanded-row-content .benefits-list .ant-list-item .anticon{margin-right:8px}.code-quality-container .suggestions-table .ant-table-expanded-row .ant-table-expanded-row-content .code-comparison .before-code pre,.code-quality-container .suggestions-table .ant-table-expanded-row .ant-table-expanded-row-content .code-comparison .after-code pre{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.4;margin:0;border-radius:4px;overflow-x:auto}.code-quality-container .suggestions-table .ant-table-expanded-row .ant-table-expanded-row-content .code-comparison .before-code pre{background:#fff2f0;border:1px solid #ffccc7}.code-quality-container .suggestions-table .ant-table-expanded-row .ant-table-expanded-row-content .code-comparison .after-code pre{background:#f6ffed;border:1px solid #b7eb8f}.code-quality-container .quality-tabs .ant-tabs-tab{font-weight:500}.code-quality-container .quality-tabs .ant-tabs-tab .ant-badge .ant-badge-count{background:#1890ff;box-shadow:0 0 0 1px #fff}.code-quality-container .quality-tabs .ant-tabs-content-holder{padding-top:16px}.code-quality-container .empty-state{text-align:center;padding:40px 20px}.code-quality-container .empty-state .ant-alert .ant-alert-icon{font-size:24px}.code-quality-container .empty-state .ant-alert .ant-alert-message{font-size:18px;font-weight:600}.code-quality-container .empty-state .ant-alert .ant-alert-description{font-size:14px;margin-top:8px}.code-quality-container .issue-detail-modal .issue-meta .meta-item{margin-bottom:12px}.code-quality-container .issue-detail-modal .issue-meta .meta-item .meta-label{font-weight:600;color:#262626}.code-quality-container .issue-detail-modal .issue-meta .meta-item .meta-value{margin-left:8px}.code-quality-container .issue-detail-modal .issue-description .description-content{background:#f5f5f5;padding:12px;border-radius:4px;border-left:4px solid #1890ff;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.5}.code-quality-container .issue-detail-modal .issue-suggestion .suggestion-content{background:#f6ffed;padding:12px;border-radius:4px;border-left:4px solid #52c41a;font-size:14px;line-height:1.5}@media (max-width: 768px){.code-quality-container{padding:16px}.code-quality-container .page-header{margin-bottom:16px}.code-quality-container .page-header h2{font-size:20px}.code-quality-container .metric-card,.code-quality-container .stat-card{margin-bottom:16px}.code-quality-container .issues-table .ant-table,.code-quality-container .suggestions-table .ant-table{font-size:12px}.code-quality-container .issues-table .ant-table-thead>tr>th,.code-quality-container .issues-table .ant-table-tbody>tr>td,.code-quality-container .suggestions-table .ant-table-thead>tr>th,.code-quality-container .suggestions-table .ant-table-tbody>tr>td{padding:8px 4px}}@media (max-width: 576px){.code-quality-container .overall-score-card .ant-progress-circle{width:100px!important;height:100px!important}.code-quality-container .metric-card .ant-progress-circle{width:60px!important;height:60px!important}.code-quality-container .stat-card .stat-number{font-size:24px}}.ant-progress-circle .ant-progress-text{font-weight:600}.ant-tag.issue-type-error{background:#fff2f0;border-color:#ffccc7;color:#a8071a}.ant-tag.issue-type-warning{background:#fff7e6;border-color:#ffd591;color:#ad6800}.ant-tag.issue-type-info{background:#e6f7ff;border-color:#91d5ff;color:#0050b3}.ant-tag.severity-high{background:#fff2f0;border-color:#ffccc7;color:#a8071a;font-weight:600}.ant-tag.severity-medium{background:#fff7e6;border-color:#ffd591;color:#ad6800;font-weight:600}.ant-tag.severity-low{background:#f6ffed;border-color:#b7eb8f;color:#135200;font-weight:600}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.code-quality-container .ant-card{animation:fadeInUp .3s ease-out}.code-quality-container .ant-table-row{transition:all .2s ease}.code-quality-container .ant-table-row:hover{background:#fafafa}.loading-overlay{position:relative}.loading-overlay:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#fffc;z-index:10}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:14px;line-height:1.5715;color:#262626;background-color:#f5f5f5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-column{display:flex;flex-direction:column}.flex-1{flex:1}.w-full{width:100%}.h-full{height:100%}.m-0{margin:0}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.p-0{padding:0}.pt-0{padding-top:0}.pr-0{padding-right:0}.pb-0{padding-bottom:0}.pl-0{padding-left:0}.m-1{margin:4px}.mt-1{margin-top:4px}.mr-1{margin-right:4px}.mb-1{margin-bottom:4px}.ml-1{margin-left:4px}.p-1{padding:4px}.pt-1{padding-top:4px}.pr-1{padding-right:4px}.pb-1{padding-bottom:4px}.pl-1{padding-left:4px}.m-2{margin:8px}.mt-2{margin-top:8px}.mr-2{margin-right:8px}.mb-2{margin-bottom:8px}.ml-2{margin-left:8px}.p-2{padding:8px}.pt-2{padding-top:8px}.pr-2{padding-right:8px}.pb-2{padding-bottom:8px}.pl-2{padding-left:8px}.m-3{margin:12px}.mt-3{margin-top:12px}.mr-3{margin-right:12px}.mb-3{margin-bottom:12px}.ml-3{margin-left:12px}.p-3{padding:12px}.pt-3{padding-top:12px}.pr-3{padding-right:12px}.pb-3{padding-bottom:12px}.pl-3{padding-left:12px}.m-4{margin:16px}.mt-4{margin-top:16px}.mr-4{margin-right:16px}.mb-4{margin-bottom:16px}.ml-4{margin-left:16px}.p-4{padding:16px}.pt-4{padding-top:16px}.pr-4{padding-right:16px}.pb-4{padding-bottom:16px}.pl-4{padding-left:16px}.m-5{margin:20px}.mt-5{margin-top:20px}.mr-5{margin-right:20px}.mb-5{margin-bottom:20px}.ml-5{margin-left:20px}.p-5{padding:20px}.pt-5{padding-top:20px}.pr-5{padding-right:20px}.pb-5{padding-bottom:20px}.pl-5{padding-left:20px}.m-6{margin:24px}.mt-6{margin-top:24px}.mr-6{margin-right:24px}.mb-6{margin-bottom:24px}.ml-6{margin-left:24px}.p-6{padding:24px}.pt-6{padding-top:24px}.pr-6{padding-right:24px}.pb-6{padding-bottom:24px}.pl-6{padding-left:24px}.m-7{margin:28px}.mt-7{margin-top:28px}.mr-7{margin-right:28px}.mb-7{margin-bottom:28px}.ml-7{margin-left:28px}.p-7{padding:28px}.pt-7{padding-top:28px}.pr-7{padding-right:28px}.pb-7{padding-bottom:28px}.pl-7{padding-left:28px}.m-8{margin:32px}.mt-8{margin-top:32px}.mr-8{margin-right:32px}.mb-8{margin-bottom:32px}.ml-8{margin-left:32px}.p-8{padding:32px}.pt-8{padding-top:32px}.pr-8{padding-right:32px}.pb-8{padding-bottom:32px}.pl-8{padding-left:32px}.m-9{margin:36px}.mt-9{margin-top:36px}.mr-9{margin-right:36px}.mb-9{margin-bottom:36px}.ml-9{margin-left:36px}.p-9{padding:36px}.pt-9{padding-top:36px}.pr-9{padding-right:36px}.pb-9{padding-bottom:36px}.pl-9{padding-left:36px}.m-10{margin:40px}.mt-10{margin-top:40px}.mr-10{margin-right:40px}.mb-10{margin-bottom:40px}.ml-10{margin-left:40px}.p-10{padding:40px}.pt-10{padding-top:40px}.pr-10{padding-right:40px}.pb-10{padding-bottom:40px}.pl-10{padding-left:40px}.text-primary{color:#1890ff}.text-success{color:#52c41a}.text-warning{color:#faad14}.text-error{color:#ff4d4f}.text-muted{color:#8c8c8c}.bg-primary{background-color:#1890ff}.bg-success{background-color:#52c41a}.bg-warning{background-color:#faad14}.bg-error{background-color:#ff4d4f}.bg-light{background-color:#fafafa}.card{background:#fff;border-radius:6px;box-shadow:0 2px 8px #00000026;padding:16px;margin-bottom:16px}.page-container{padding:24px;background:#f5f5f5;min-height:calc(100vh - 64px)}.page-header{margin-bottom:24px}.page-header .page-title{font-size:20px;font-weight:600;color:#262626;margin:0}.page-header .page-description{color:#8c8c8c;margin-top:8px;margin-bottom:0}.ant-table .ant-table-thead>tr>th{background:#fafafa;font-weight:600}.ant-table .ant-table-tbody>tr:hover>td{background:#1890ff0d}.ant-form .ant-form-item-label>label{font-weight:500}.btn-group{display:flex;gap:8px}.btn-group .ant-btn{margin:0}.status-tag.active{background:#52c41a1a;color:#52c41a;border:1px solid rgba(82,196,26,.3)}.status-tag.inactive{background:#8c8c8c1a;color:#8c8c8c;border:1px solid rgba(140,140,140,.3)}.status-tag.pending{background:#faad141a;color:#faad14;border:1px solid rgba(250,173,20,.3)}.status-tag.error{background:#ff4d4f1a;color:#ff4d4f;border:1px solid rgba(255,77,79,.3)}@media (max-width: 768px){.page-container{padding:16px}.btn-group{flex-direction:column}.btn-group .ant-btn{width:100%}}@media print{.no-print{display:none!important}.page-container{padding:0;background:#fff}}
