@charset "UTF-8";body{font-family:sans-serif}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#c9eeff;background-image:linear-gradient(135deg,#c9eeff,#a1d9f7);padding:20px;font-family:PingFang SC,Microsoft YaHei,sans-serif}.login-card{display:flex;background-color:#fff;border-radius:20px;box-shadow:0 10px 30px #00000014;overflow:hidden;width:100%;max-width:1000px;transition:transform .3s ease}.login-card:hover{transform:translateY(-5px);box-shadow:0 15px 35px #0000001a}.login-illustration{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px;background-color:#f8fdff}.login-illustration img{max-width:100%;height:auto;transition:transform .5s ease}.login-illustration img:hover{transform:scale(1.03)}.login-form-container{flex:1;padding:40px;display:flex;flex-direction:column}h1{font-size:28px;color:#333;margin-bottom:15px;font-weight:600;position:relative}h1:after{content:"";position:absolute;bottom:-8px;left:0;width:40px;height:3px;background-color:#2d7ff9;border-radius:3px}.login-description{color:#666;font-size:14px;margin-bottom:30px;line-height:1.6}.login-description .lock-icon{color:#f5a623;display:inline-flex;align-items:center;vertical-align:middle;margin-left:4px}.login-description .lock-icon svg{width:16px;height:16px}.login-form .form-group{margin-bottom:20px}.login-form .form-group label{display:block;font-size:14px;color:#555;margin-bottom:8px;font-weight:500}.login-form .form-group .mode-select{width:100%;padding:15px;border-radius:8px;border:none;font-size:16px;background-color:#f0f7ff;color:#2d7ff9;transition:all .3s ease;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232D7FF9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 15px center;background-size:16px}.login-form .form-group .mode-select:focus{outline:none;box-shadow:0 0 0 2px #2d7ff933;background-color:#e8f2ff}.login-form .form-group .mode-select option{padding:10px}.login-form .input-with-icon{position:relative}.login-form .input-with-icon .input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#2d7ff9}.login-form .input-with-icon .input-icon svg{width:100%;height:100%}.login-form .input-with-icon .check-icon{position:absolute;right:15px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#4caf50}.login-form .input-with-icon .check-icon svg{width:100%;height:100%}.login-form .input-with-icon input{width:100%;padding:15px 15px 15px 45px;border-radius:8px;border:none;font-size:16px;transition:all .3s ease}.login-form .input-with-icon input[type=email]{background-color:#f0f7ff;color:#2d7ff9}.login-form .input-with-icon input[type=password]{background-color:#f0f7ff;color:#333}.login-form .input-with-icon input::placeholder{color:#aab}.login-form .input-with-icon input:focus{outline:none;box-shadow:0 0 0 2px #2d7ff933;background-color:#e8f2ff}.form-footer{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.form-footer .remember-me{display:flex;align-items:center}.form-footer .checkbox-container{display:flex;align-items:center;position:relative;cursor:pointer;font-size:14px;color:#666;-webkit-user-select:none;user-select:none}.form-footer .checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.form-footer .checkbox-container input:checked~.checkmark{background-color:#4caf50;border-color:#4caf50}.form-footer .checkbox-container input:checked~.checkmark:after{display:block}.form-footer .checkbox-container .checkmark{position:relative;height:18px;width:18px;background-color:#fff;border:2px solid #ddd;border-radius:4px;margin-right:8px;transition:all .2s ease}.form-footer .checkbox-container .checkmark:after{content:"";position:absolute;display:none;left:5px;top:1px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.form-footer .checkbox-container:hover .checkmark{border-color:#4caf50}.form-footer .checkbox-container span:not(.checkmark){margin-left:5px}.form-footer .forgot-password a{color:#999;text-decoration:none;font-size:14px;transition:color .2s}.form-footer .forgot-password a:hover{color:#2d7ff9;text-decoration:underline}.login-buttons{display:flex;gap:15px;margin-bottom:30px}.login-buttons button{flex:1;padding:15px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;border:none}.login-buttons button:focus{outline:none}.login-buttons .login-button{background-color:#2d7ff9;color:#fff}.login-buttons .login-button:hover{background-color:#1a6fd8}.login-buttons .login-button:disabled{background-color:#ccc;cursor:not-allowed}.login-buttons .create-account-button{background-color:#f0f7ff;color:#2d7ff9}.login-buttons .create-account-button:hover{background-color:#e8f2ff}@media(max-width:768px){.login-card{flex-direction:column}.login-illustration{display:none}.login-form-container{padding:30px}.login-buttons{flex-direction:column}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-form-container{animation:fadeIn .5s ease-out}.login-form .form-group{animation:fadeIn .5s ease-out;animation-fill-mode:both}.login-form .form-group:nth-child(1){animation-delay:.1s}.login-form .form-group:nth-child(2){animation-delay:.2s}.form-footer,.login-buttons{animation:fadeIn .5s ease-out;animation-fill-mode:both}.form-footer{animation-delay:.3s}.login-buttons{animation-delay:.4s}.register-form{padding:20px}.register-form-container{display:grid;grid-template-columns:1fr 1fr;gap:10px}.register-form .ant-form-item{margin-bottom:20px}.register-form .ant-form-item .ant-form-item-label label{color:#333;font-weight:500}.register-form .ant-form-item .ant-input,.register-form .ant-form-item .ant-input-password{padding:8px 12px;border-radius:6px;border:1px solid #e8e8e8;transition:all .3s}.register-form .ant-form-item .ant-input:hover,.register-form .ant-form-item .ant-input:focus,.register-form .ant-form-item .ant-input-password:hover,.register-form .ant-form-item .ant-input-password:focus{border-color:#2d7ff9;box-shadow:0 0 0 2px #2d7ff91a}.register-form .ant-form-item .ant-input::placeholder,.register-form .ant-form-item .ant-input-password::placeholder{color:#aab}.register-form .register-buttons{width:100%;display:flex;justify-content:space-around;gap:12px;margin-bottom:0;margin-top:30px}.register-form .register-buttons button{flex:1;padding:12px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s;border:none}.register-form .register-buttons button:focus{outline:none}.register-form .register-buttons .register-button{background-color:#2d7ff9;color:#fff}.register-form .register-buttons .register-button:hover{background-color:#1a6fd8}.register-form .register-buttons .cancel-button{background-color:#f0f0f0;color:#666}.register-form .register-buttons .cancel-button:hover{background-color:#e8e8e8}.ant-modal .ant-modal-content{border-radius:12px;overflow:hidden}.ant-modal .ant-modal-content .ant-modal-header{border-bottom:1px solid #f0f0f0;padding:16px 24px;margin:0}.ant-modal .ant-modal-content .ant-modal-header .ant-modal-title{font-size:18px;font-weight:600;color:#333}.ant-modal .ant-modal-content .ant-modal-close{color:#999}.ant-modal .ant-modal-content .ant-modal-close:hover{color:#666}.ant-modal .ant-modal-content .ant-modal-body{padding:0}.main-layout{display:flex;width:100%;height:100%;overflow:hidden}.sidebar-container{display:flex;width:100%;height:100%}.sidebar-container .sidebar{height:100%;width:64px;background-color:#fff;border-right:1px solid #eaeaea;transition:width .3s ease;overflow:hidden;z-index:10;flex-shrink:0;display:flex;flex-direction:column}.sidebar-container .sidebar.expanded{width:220px}.sidebar-container .sidebar.expanded .menu-text,.sidebar-container .sidebar.expanded .logo-text{opacity:1;visibility:visible}.sidebar-container .main-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.sidebar-container .main-content .content-container{flex:1;overflow-y:auto;overflow-x:hidden}.sidebar-container .main-content .content-container::-webkit-scrollbar{width:0;background:transparent}.sidebar-container .main-content .content-container{scrollbar-width:none;-ms-overflow-style:none}.sidebar-logo{display:flex;align-items:center;height:64px;padding:0 16px;border-bottom:1px solid #f0f0f0}.sidebar-logo .logo-icon{width:32px;height:32px;display:flex;justify-content:center;align-items:center;flex-shrink:0}.sidebar-logo .logo-text{margin-left:12px;font-size:16px;font-weight:600;color:#2d7ff9;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .3s}.sidebar-menu{flex:1;display:flex;flex-direction:column;padding:8px 0}.menu-item{display:flex;align-items:center;height:48px;padding:0 16px;margin:4px 8px;color:#666;cursor:pointer;border-radius:6px;transition:all .2s;position:relative}.menu-item svg{font-size:18px;min-width:18px}.menu-item .menu-text{margin-left:12px;font-size:14px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .3s;flex:1}.menu-item:hover{background-color:#f5f5f5;color:#2d7ff9}.menu-item.active{background-color:#e6f2ff;color:#2d7ff9}.sidebar-bottom{padding:8px 0;border-top:1px solid #eaeaea;margin-top:auto}.sidebar-bottom .menu-item{margin:4px 8px}.sidebar-bottom .menu-item:last-child{color:#ff4d4f}.sidebar-bottom .menu-item:last-child:hover{background-color:#fff1f0;color:#ff4d4f}.dashboard-tabs{display:flex;align-items:center;height:40px;padding:0 16px;background-color:#fff;border-bottom:1px solid #eaeaea;overflow-x:auto;overflow-y:hidden}.dashboard-tabs::-webkit-scrollbar{height:2px}.dashboard-tabs::-webkit-scrollbar-thumb{background-color:#ddd;border-radius:2px}.dashboard-tabs .tab{padding:0 12px;height:100%;display:flex;align-items:center;font-size:14px;color:#666;cursor:pointer;position:relative;min-width:100px;max-width:160px;-webkit-user-select:none;user-select:none;margin-right:4px;border-radius:4px 4px 0 0}.dashboard-tabs .tab .tab-icon{margin-right:8px;display:flex;align-items:center}.dashboard-tabs .tab .tab-icon svg{font-size:16px}.dashboard-tabs .tab .tab-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-tabs .tab .close-tab{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;background:none;padding:0;margin-left:8px;border-radius:50%;color:#999;opacity:0;transition:all .2s}.dashboard-tabs .tab .close-tab svg{font-size:12px}.dashboard-tabs .tab .close-tab:hover{background-color:#0000000d;color:#666}.dashboard-tabs .tab:hover{background-color:#f5f7fa}.dashboard-tabs .tab:hover .close-tab{opacity:1}.dashboard-tabs .tab.active{color:#2d7ff9;background-color:#f5f7fa}.dashboard-tabs .tab.active:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background-color:#2d7ff9}.dashboard-tabs .tab.active .close-tab{opacity:1}.dashboard-header{display:flex;justify-content:space-between;align-items:center;height:64px;padding:0 16px;background-color:#fff;border-bottom:1px solid #eaeaea}.dashboard-header .header-left{display:flex;align-items:center}.dashboard-header .header-left .menu-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;cursor:pointer;margin-right:16px;border-radius:4px;color:#666}.dashboard-header .header-left .menu-toggle:hover{background-color:#f5f5f5;color:#2d7ff9}.dashboard-header .header-left .menu-toggle svg{font-size:20px}.dashboard-header .header-left .breadcrumb{display:flex;align-items:center;color:#666}.dashboard-header .header-left .breadcrumb svg{font-size:16px;margin-right:8px}.dashboard-header .header-left .breadcrumb span{font-size:14px}.dashboard-header .header-right{display:flex;align-items:center;gap:16px}.dashboard-header .header-right .search-box{display:flex;align-items:center;background-color:#f5f7fa;border-radius:4px;padding:6px 12px;width:240px}.dashboard-header .header-right .search-box svg{color:#999;font-size:16px;margin-right:8px}.dashboard-header .header-right .search-box input{border:none;background:none;outline:none;font-size:14px;color:#333;width:100%}.dashboard-header .header-right .search-box input::placeholder{color:#999}.dashboard-header .header-right .header-actions{display:flex;align-items:center;gap:8px}.dashboard-header .header-right .header-actions .action-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;cursor:pointer;border-radius:4px;color:#666;position:relative}.dashboard-header .header-right .header-actions .action-button:hover{background-color:#f5f5f5;color:#2d7ff9}.dashboard-header .header-right .header-actions .action-button svg{font-size:18px}.dashboard-header .header-right .header-actions .action-button.notification-button .notification-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;background-color:#ff4d4f;color:#fff;border-radius:9px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:18px;border:2px solid white;box-shadow:0 2px 4px #0003}.dashboard-header .header-right .user-info{display:flex;align-items:center;gap:8px;border:1px solid #eaeaea;border-radius:10px;padding:4px 10px}.dashboard-header .header-right .user-info-avatar{width:32px;height:32px;border-radius:50%;background-color:#f0f0f0;display:flex;align-items:center;justify-content:center}.dashboard-header .header-right .user-info-avatar img{margin-top:0;width:100%;height:100%;border-radius:50%}.dashboard-header .header-right .user-info-section{display:flex;flex-direction:column}.dashboard-header .header-right .user-info-section-username{font-size:14px;font-weight:600;color:#333}.dashboard-header .header-right .user-info-section-role{margin:0;font-size:12px;color:#999}.dashboard-header .header-right .notifications-list{max-height:500px;overflow-y:auto}.dashboard-header .header-right .notifications-list .notification-item{display:flex;padding:16px;border-bottom:1px solid #f0f0f0;transition:background-color .3s}.dashboard-header .header-right .notifications-list .notification-item:hover{background-color:#f9f9f9}.dashboard-header .header-right .notifications-list .notification-item.high{border-left:4px solid #ff4d4f}.dashboard-header .header-right .notifications-list .notification-item.medium{border-left:4px solid #faad14}.dashboard-header .header-right .notifications-list .notification-item.low{border-left:4px solid #52c41a}.dashboard-header .header-right .notifications-list .notification-item .notification-icon{flex-shrink:0;margin-right:16px;width:32px;height:32px;border-radius:50%;background-color:#f0f0f0;display:flex;align-items:center;justify-content:center;position:relative}.dashboard-header .header-right .notifications-list .notification-item .notification-icon svg{font-size:18px;color:#1890ff}.dashboard-header .header-right .notifications-list .notification-item .notification-icon .unread-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background-color:#ff4d4f;border-radius:50%;border:2px solid white}.dashboard-header .header-right .notifications-list .notification-item.unread{background-color:#f0f7ff;border-left-width:4px}.dashboard-header .header-right .notifications-list .notification-item .notification-content{flex:1}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-header h4{margin:0;font-size:16px;color:#333;flex:1}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-header .notice-importance{padding:2px 8px;border-radius:10px;font-size:12px;color:#fff}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-header .notice-importance.high{background-color:#ff4d4f}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-header .notice-importance.medium{background-color:#faad14}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-header .notice-importance.low{background-color:#52c41a}.dashboard-header .header-right .notifications-list .notification-item .notification-content p{margin:8px 0;color:#666;font-size:14px}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-footer{display:flex;justify-content:space-between;font-size:12px;color:#999;flex-wrap:wrap;gap:8px}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-footer .notification-time,.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-footer .notification-sender{color:#999}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-footer .notification-status.unread{color:#1890ff;font-weight:500}.dashboard-header .header-right .notifications-list .notification-item .notification-content .notification-footer .notification-status.read{color:#999}.dashboard-header .header-right .notifications-list .no-notifications{padding:40px 0;text-align:center;color:#999;font-size:14px}.dashboard-header .header-right :global(.ant-modal-content){border-radius:12px;overflow:hidden}.dashboard-header .header-right :global(.ant-modal-content) .ant-modal-header{border-bottom:1px solid #f0f0f0;padding:16px 24px}.dashboard-header .header-right :global(.ant-modal-content) .ant-modal-header .ant-modal-title{font-size:18px;font-weight:600;color:#333}.dashboard-header .header-right :global(.ant-modal-content) .ant-modal-body{padding:0}.dashboard-header .header-right :global(.ant-modal-content) .ant-modal-close{color:#999}.dashboard-header .header-right :global(.ant-modal-content) .ant-modal-close:hover{color:#666}.dashboard{padding:20px;background-color:#f5f7fa;flex:1;overflow-y:auto;overflow-x:hidden;width:100%}.dashboard .welcome-section{background:linear-gradient(135deg,#1890ff,#36cfc9);border-radius:8px;padding:24px;margin-bottom:24px;color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 12px #0000001a}.dashboard .welcome-section .welcome-message h2{font-size:24px;font-weight:600;margin-bottom:8px}.dashboard .welcome-section .welcome-message .date-time{display:flex;align-items:center;font-size:14px}.dashboard .welcome-section .welcome-message .date-time svg{margin-right:8px}.dashboard .welcome-section .welcome-message .date-time .time{margin-left:12px;font-weight:500}.dashboard .welcome-section .welcome-stats{display:flex}.dashboard .welcome-section .welcome-stats .stat-item{background:#fff3;border-radius:8px;padding:12px 16px;margin-left:16px;min-width:120px;display:flex;flex-direction:column;align-items:center}.dashboard .welcome-section .welcome-stats .stat-item .stat-value{font-size:28px;font-weight:700;margin-bottom:4px}.dashboard .welcome-section .welcome-stats .stat-item .stat-label{font-size:14px}.dashboard .section-title{font-size:18px;font-weight:600;color:#333;margin:20px 0 16px;position:relative;padding-left:12px}.dashboard .section-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:18px;background-color:#2d7ff9;border-radius:2px}.dashboard .attendance-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.dashboard .attendance-cards .attendance-card{background-color:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #0000000d;transition:all .3s ease}.dashboard .attendance-cards .attendance-card:hover{transform:translateY(-5px);box-shadow:0 5px 15px #00000014}.dashboard .attendance-cards .attendance-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dashboard .attendance-cards .attendance-card .card-header h3{font-size:16px;color:#666;font-weight:400}.dashboard .attendance-cards .attendance-card .card-header .card-icon{font-size:24px;color:#ccc}.dashboard .attendance-cards .attendance-card .card-value{font-size:28px;font-weight:700;margin-bottom:8px;color:#333}.dashboard .attendance-cards .attendance-card .card-trend{font-size:14px}.dashboard .attendance-cards .attendance-card .card-trend.positive{color:#52c41a}.dashboard .attendance-cards .attendance-card .card-trend.negative{color:#f5222d}.dashboard .attendance-cards .attendance-card .card-trend.neutral{color:#999}.dashboard .attendance-cards .attendance-card.attendance-rate{border-top:3px solid #52c41a}.dashboard .attendance-cards .attendance-card.attendance-rate .card-icon{color:#52c41a}.dashboard .attendance-cards .attendance-card.leave{border-top:3px solid #faad14}.dashboard .attendance-cards .attendance-card.leave .card-icon{color:#faad14}.dashboard .attendance-cards .attendance-card.late{border-top:3px solid #1890ff}.dashboard .attendance-cards .attendance-card.late .card-icon{color:#1890ff}.dashboard .attendance-cards .attendance-card.abnormal{border-top:3px solid #f5222d}.dashboard .attendance-cards .attendance-card.abnormal .card-icon{color:#f5222d}.dashboard .charts-container{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:24px}.dashboard .charts-container .chart-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;overflow:hidden}.dashboard .charts-container .chart-card .chart-header{padding:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f0f0}.dashboard .charts-container .chart-card .chart-header .chart-title{font-size:16px;color:#333;font-weight:500}.dashboard .charts-container .chart-card .chart-header .chart-tabs{display:flex}.dashboard .charts-container .chart-card .chart-header .chart-tabs .chart-tab{padding:6px 12px;font-size:14px;color:#666;cursor:pointer;border-radius:4px}.dashboard .charts-container .chart-card .chart-header .chart-tabs .chart-tab.active{background-color:#f5f7fa;color:#2d7ff9}.dashboard .charts-container .chart-card .chart-content{height:300px;padding:16px}.dashboard .charts-container .chart-card .chart-content .chart-placeholder{display:flex;justify-content:center;align-items:center;height:100%;background-color:#f9f9f9;border-radius:4px}.dashboard .charts-container .chart-card .chart-content .chart-placeholder .chart-image{width:100%;height:100%;object-fit:contain}.dashboard .charts-container .chart-card .chart-content .chart-placeholder .no-image{font-size:16px;color:#bbb;display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#f9f9f9;border-radius:4px;border:1px dashed #ddd}.dashboard .charts-container .chart-card .attendance-chart{height:100%;display:flex;flex-direction:column}.dashboard .charts-container .chart-card .attendance-chart .chart-legend{display:flex;justify-content:center;margin-bottom:16px}.dashboard .charts-container .chart-card .attendance-chart .chart-legend .legend-item{display:flex;align-items:center;margin:0 12px}.dashboard .charts-container .chart-card .attendance-chart .chart-legend .legend-item .legend-color{width:12px;height:12px;border-radius:2px;margin-right:6px}.dashboard .charts-container .chart-card .attendance-chart .chart-legend .legend-item .legend-color.attendance{background-color:#52c41a}.dashboard .charts-container .chart-card .attendance-chart .chart-legend .legend-item .legend-color.leave{background-color:#faad14}.dashboard .charts-container .chart-card .attendance-chart .chart-legend .legend-item .legend-color.late{background-color:#1890ff}.dashboard .charts-container .chart-card .attendance-chart .chart-legend .legend-item .legend-text{font-size:14px;color:#666}.dashboard .charts-container .chart-card .department-chart{height:100%;display:flex}.dashboard .charts-container .chart-card .department-chart .chart-placeholder{flex:1;height:100%}.dashboard .charts-container .chart-card .department-chart .department-legend{width:120px;padding-left:16px}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item{display:flex;flex-direction:column;margin-bottom:16px}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item .legend-color{width:12px;height:12px;border-radius:2px;margin-right:6px;display:inline-block}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item .legend-color.dept1{background-color:#1890ff}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item .legend-color.dept2{background-color:#52c41a}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item .legend-color.dept3{background-color:#faad14}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item .legend-color.dept4{background-color:#f5222d}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item .legend-text{font-size:14px;color:#666;margin:4px 0}.dashboard .charts-container .chart-card .department-chart .department-legend .legend-item .legend-value{font-size:16px;font-weight:600;color:#333}.dashboard .dashboard-footer{text-align:center;padding:16px 0}.dashboard .dashboard-footer .copyright{font-size:14px;color:#999}@media(max-width:1200px){.attendance-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.charts-container{grid-template-columns:1fr}.department-chart{flex-direction:column}.department-chart .department-legend{width:100%!important;padding-left:0!important;margin-top:16px;display:flex;flex-wrap:wrap;justify-content:space-between}.department-chart .department-legend .legend-item{width:45%}}@media(max-width:576px){.attendance-cards{grid-template-columns:1fr}}.profile-page{padding:24px;background-color:#f5f5f5;min-height:100vh}.profile-page .profile-header{margin-bottom:24px}.profile-page .profile-header h2{font-size:24px;color:#333;margin:0}.profile-page .profile-content{display:flex;flex-direction:column;gap:24px}.profile-page .photos-section{display:flex;gap:24px;margin-bottom:24px}@media(max-width:768px){.profile-page .photos-section{flex-direction:column}}.profile-page .photos-section .photo-upload-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0000001a;flex:1}.profile-page .photos-section .photo-upload-card h3{margin:0 0 16px;font-size:16px;color:#333}.profile-page .photos-section .photo-upload-card .photo-container{position:relative;width:200px;height:200px;margin:0 auto;border-radius:8px;overflow:hidden}.profile-page .photos-section .photo-upload-card .photo-container:hover .upload-overlay{opacity:1}.profile-page .photos-section .photo-upload-card .photo-container .photo-preview{width:100%;height:100%;object-fit:cover}.profile-page .photos-section .photo-upload-card .photo-container .upload-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;cursor:pointer}.profile-page .photos-section .photo-upload-card .photo-container .upload-overlay .upload-button{color:#fff;font-size:24px;cursor:pointer}.profile-page .photos-section .photo-upload-card .photo-container .upload-overlay .upload-button:hover{transform:scale(1.1)}.profile-page .info-section{background:#fff;padding:24px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.profile-page .info-section .info-group{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}@media(max-width:768px){.profile-page .info-section .info-group{grid-template-columns:1fr}}.profile-page .info-section .info-group:last-child{margin-bottom:0}.profile-page .info-section .info-group .info-item{display:flex;align-items:center;gap:12px}.profile-page .info-section .info-group .info-item.full-width{grid-column:1/-1}.profile-page .info-section .info-group .info-item svg{color:#1890ff;font-size:20px;flex-shrink:0}.profile-page .info-section .info-group .info-item .item-content{flex:1}.profile-page .info-section .info-group .info-item .item-content label{display:block;font-size:14px;color:#666;margin-bottom:4px}.profile-page .info-section .info-group .info-item .item-content span{display:block;font-size:16px;color:#333}.customer-service-page{padding:24px;background:#f5f5f5;min-height:100%}.customer-service-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;background:#fff;padding:16px 24px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.customer-service-page .page-header h2{margin:0;display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600}.customer-service-page .page-filters{display:flex;gap:16px;margin-bottom:16px;background:#fff;padding:16px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.complaint-page{padding:24px;background:#f5f5f5;min-height:100%}.complaint-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;background:#fff;padding:16px 24px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.complaint-page .page-header h2{margin:0;display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;color:#ff4d4f}.complaint-page .page-header h2 svg{font-size:24px;color:#ff4d4f}.complaint-page .statistics-cards{margin-bottom:24px}.complaint-page .statistics-cards .ant-statistic .ant-statistic-title{font-size:14px;color:#666;margin-bottom:8px}.complaint-page .statistics-cards .ant-statistic .ant-statistic-content{font-size:24px;font-weight:600}.complaint-page .statistics-cards .stat-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:all .3s}.complaint-page .statistics-cards .stat-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.complaint-page .statistics-cards .stat-card.total .ant-statistic-content{color:#1890ff}.complaint-page .statistics-cards .stat-card.pending .ant-statistic-content{color:#faad14}.complaint-page .statistics-cards .stat-card.processing .ant-statistic-content{color:#1890ff}.complaint-page .statistics-cards .stat-card.resolved .ant-statistic-content{color:#52c41a}.complaint-page .statistics-cards .stat-card.closed .ant-statistic-content{color:#8c8c8c}.complaint-page .filter-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:16px}.complaint-page .filter-card .ant-card-body{padding:16px 24px}.complaint-page .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.complaint-page .ant-card .ant-card-body{padding:24px}.complaint-page .ant-table .ant-table-thead>tr>th{background:#fafafa;font-weight:600}.complaint-page .ant-table .ant-table-tbody>tr:hover>td{background:#f5f5f5}.complaint-page .ant-table .ant-table-tbody>tr{cursor:pointer}.complaint-page .ant-modal .ant-modal-header{border-bottom:1px solid #f0f0f0}.complaint-page .ant-modal .ant-modal-body{padding:24px}.complaint-page .ant-modal .ant-form-item-label>label{font-weight:500}.complaint-page .ant-descriptions .ant-descriptions-item-label{font-weight:600;color:#666;width:120px}.product-manage-page{padding:20px}.product-manage-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.product-manage-page .page-header h2{margin:0}.product-manage-page .filters{margin-bottom:20px}.category-manage-page{padding:20px}.category-manage-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.category-manage-page .page-header h2{margin:0}.activity-manage-page{padding:20px}.activity-manage-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.activity-manage-page .page-header h2{margin:0}.activity-manage-page .filters{margin-bottom:20px}.home-settings-page{padding:20px}.home-settings-page .recommended-categories .category-item{padding:12px;border:1px solid #e8e8e8;border-radius:4px;margin-bottom:8px;background:#fafafa}.home-settings-page .recommended-categories .category-item .category-info{display:flex;justify-content:space-between;align-items:center}.home-settings-page .recommended-categories .category-item .category-info .category-name{font-weight:500}.home-settings-page .zone-preview .zone-placeholder{width:100%;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f5f5;border:1px dashed #d9d9d9;border-radius:4px;color:#999;cursor:pointer}.home-settings-page .zone-preview .zone-placeholder svg{font-size:24px;margin-bottom:8px}.home-settings-page .zone-preview .zone-info{margin-top:10px}.home-settings-page .zone-preview .zone-info .zone-title{font-weight:500;font-size:14px;margin-bottom:4px}.home-settings-page .zone-preview .zone-info .zone-subtitle{font-size:12px;color:#999}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;width:100%;font-family:PingFang SC,Microsoft YaHei,sans-serif}#root{height:100%;width:100%}.App{height:100%;width:100%;display:flex;flex-direction:column}.App.login-mode{background-color:#c9eeff;background-image:linear-gradient(135deg,#c9eeff,#a1d9f7)}.component-selector,.component-container{display:none}h1{color:#333;margin-bottom:20px}.component-selector{margin-bottom:20px;display:flex;flex-wrap:wrap;justify-content:center}.component-selector button{margin:0 5px 5px;padding:8px 16px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.component-selector button:hover{background-color:#45a049}.component-selector button:disabled{background-color:#ccc;cursor:not-allowed}.component-container{border:1px solid #ddd;padding:20px;border-radius:4px}.component-container button{margin:5px;padding:8px 16px;background-color:#008cba;color:#fff;border:none;border-radius:4px;cursor:pointer}.component-container button:hover{background-color:#007b9a}.component-container button:disabled{background-color:#ccc;cursor:not-allowed}select{padding:8px;margin:10px 0;border-radius:4px;border:1px solid #ddd}img,video{margin-top:10px;border:1px solid #ddd;border-radius:4px}
