@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&display=swap";:root{--color-primary: #3a7bd5;--color-primary-hover: #2a6ac0;--color-secondary: #5C6BC0;--color-success: #26A69A;--color-danger: #e53935;--color-warning: #FFA000;--gradient-main: linear-gradient(135deg, #3a7bd5 0%, #3a6073 100%);--gradient-main-hover: linear-gradient(135deg, #2a6ac0 0%, #2a5063 100%);--shadow-sm: 0 2px 8px rgba(58, 123, 213, .2);--shadow-md: 0 4px 12px rgba(58, 123, 213, .3);--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--spacing-sm: 12px;--spacing-lg: 32px;--spacing-xs: 8px;--spacing-xl: 48px;--radius-md: 9999px;--radius-full: 9999px;--font-size-sm: .8rem;--font-size-xs: .75rem;--font-size-md: .9rem;--font-weight-medium: 600;--transition-fast: .3s}.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:var(--font-size-sm);font-weight:500;padding:.5rem 1rem;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .2s ease;min-width:80px;height:36px}.btn:focus{outline:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn-large{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md)}.btn-primary{background-color:#40e0d0;color:#fff}.btn-primary:hover{background-color:#20b2aa}.btn-secondary{background-color:#f0f0f0;color:#666}.btn-secondary:hover{background-color:#e0e0e0}.btn-ghost{background:transparent;color:#40e0d0;border:2px solid #40E0D0;min-width:100px;height:40px;border-radius:8px;font-size:16px;font-weight:600;padding:0 20px}.btn-ghost:hover{background:#40e0d014;color:#2ecc71;border-color:#2ecc71}.btn-outline{background:transparent;color:#40e0d0;border:1.5px solid #40E0D0;box-shadow:none}.btn-outline:hover{background:#40e0d014;color:#2ecc71;border-color:#2ecc71}.btn-success{background-color:var(--color-success);color:#fff}.btn-success:hover{background-color:#059669}.btn-danger{background-color:#fff1f0;color:#f5222d}.btn-danger:hover{background-color:#ffd4d2}.btn-warning{background-color:var(--color-warning);color:#fff}.btn-warning:hover{background-color:#d97706}.btn-text{background-color:transparent;color:var(--color-primary);box-shadow:none}.btn-text:hover{background-color:#2563eb0d;box-shadow:none}.btn-icon{background:transparent!important;border:none;border-radius:4px;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.2rem;color:#6b7280;transition:all .2s ease-in-out;box-shadow:none}.btn-icon:hover{background:transparent!important;color:#40e0d0;box-shadow:none}.btn-icon:active{background:transparent!important;color:#40e0d0}.btn-icon-danger{background:transparent!important;color:#6b7280}.btn-icon-danger:hover{background:transparent!important;color:#40e0d0;box-shadow:none}.btn-primary{background:var(--color-primary, #2563eb);color:#fff;border:none}.btn-primary:hover{background:var(--color-primary-dark, #1d4ed8)}.btn-group{display:flex;gap:var(--spacing-sm)}.btn-group-vertical{display:flex;flex-direction:column;gap:var(--spacing-sm)}a.btn{text-decoration:none}.btn-floating{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);width:3.5rem;height:3.5rem;border-radius:var(--radius-full, 9999px);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);z-index:10}.btn-floating:hover{transform:translateY(-.25rem) scale(1.05)}@media (max-width: 768px){.btn{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-xs)}.btn-large{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm)}.btn-floating{bottom:var(--spacing-lg);right:var(--spacing-lg);width:3rem;height:3rem}}.btn i,.btn svg{font-size:1em;display:inline-block;vertical-align:middle}.btn i:first-child:not(:last-child),.btn svg:first-child:not(:last-child){margin-right:var(--spacing-xs)}.btn i:last-child:not(:first-child),.btn svg:last-child:not(:first-child){margin-left:var(--spacing-xs)}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:1rem;height:1rem;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:button-loading-spinner .75s linear infinite}@keyframes button-loading-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.excel-button{background-image:var(--gradient-main);color:#fff}.excel-button:hover{background-image:var(--gradient-main-hover)}.back-button{background-image:var(--gradient-main);color:#fff}.back-button:hover{background-image:var(--gradient-main-hover)}.add-task-middle-button{margin:var(--spacing-md) auto;display:block;background-image:var(--gradient-main);color:#fff}.add-task-middle-button:hover{background-image:var(--gradient-main-hover)}.btn-primary,.btn-success{background:var(--gradient-main);color:#fff}.btn-primary:hover,.btn-success:hover{background:var(--gradient-main-hover)}.btn-secondary{background:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}.btn-secondary:hover{background:#f6fcff}.btn-text{background:transparent;color:var(--color-primary);padding:8px 16px;box-shadow:none}.btn-text:hover:not(:disabled){background:#3a7bd51a;transform:translateY(-1px);box-shadow:0 4px 15px #3a7bd533}.icon{width:18px;height:18px;display:inline-block;background-size:contain;background-repeat:no-repeat;background-position:center}.btn-text .icon{filter:none}.btn .icon-plus{filter:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")!important}.icon-arrow-left{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='19' y1='12' x2='5' y2='12'%3E%3C/line%3E%3Cpolyline points='12 19 5 12 12 5'%3E%3C/polyline%3E%3C/svg%3E")}.icon-download{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='7 10 12 15 17 10'%3E%3C/polyline%3E%3Cline x1='12' y1='15' x2='12' y2='3'%3E%3C/line%3E%3C/svg%3E")}.btn-primary .icon-download{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='7 10 12 15 17 10'%3E%3C/polyline%3E%3Cline x1='12' y1='15' x2='12' y2='3'%3E%3C/line%3E%3C/svg%3E")}.icon-upload{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='17 8 12 3 7 8'%3E%3C/polyline%3E%3Cline x1='12' y1='3' x2='12' y2='15'%3E%3C/line%3E%3C/svg%3E")}.icon-edit{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'%3E%3C/path%3E%3Cpath d='M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'%3E%3C/path%3E%3C/svg%3E")}.icon-trash{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'%3E%3C/polyline%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'%3E%3C/path%3E%3C/svg%3E")}.icon-save{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'%3E%3C/path%3E%3Cpolyline points='17 21 17 13 7 13 7 21'%3E%3C/polyline%3E%3Cpolyline points='7 3 7 8 15 8'%3E%3C/polyline%3E%3C/svg%3E")}.btn-icon{background:transparent;color:var(--color-primary);box-shadow:none;padding:4px}.btn-icon-danger{background:transparent;color:var(--color-danger);box-shadow:none;padding:4px}.btn-icon:hover{background:#3a7bd514}.btn-icon-danger:hover{background:#e5393514}.project-form{display:flex;flex-direction:column;gap:20px;width:100%;max-width:100%;padding:24px;background:#fff;height:100%;overflow-y:auto;border-radius:8px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:0;position:relative}.form-group label{font-size:14px;font-weight:500;color:#2d3748;display:flex;align-items:center;margin-bottom:4px;transition:color .2s ease}.form-group .required{color:#ef4444;margin-left:4px;font-size:16px}.form-group input,.form-group textarea,.form-group select{border:1px solid #e2e8f0;border-radius:6px;padding:12px 14px;font-size:14px;transition:all .2s ease;background-color:#fff;width:100%;box-shadow:0 1px 3px #00000014;color:#2d3748;font-family:inherit}.form-group input:hover,.form-group textarea:hover,.form-group select:hover{border-color:#cbd5e1;background-color:#fff;box-shadow:0 2px 4px #0000000f}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:#3b82f6;outline:none;background-color:#fff;box-shadow:0 0 0 3px #3b82f61a}.form-group input::placeholder,.form-group textarea::placeholder{color:#a0aec0;transition:color .2s ease}.form-group input:focus::placeholder,.form-group textarea:focus::placeholder{color:#cbd5e1}.form-group textarea{resize:vertical;min-height:100px;font-family:inherit;line-height:1.5}.form-group input.error,.form-group textarea.error,.form-group select.error{border-color:#ef4444;background-color:#fef2f2;box-shadow:0 0 0 3px #ef44441a}.field-error{color:#ef4444;font-size:13px;margin-top:6px;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fef2f2;border-radius:8px;border-left:3px solid #ef4444;animation:fadeIn .3s ease}.field-error:before{content:"⚠";font-size:14px;color:#ef4444}.error-message{background:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:6px;margin-bottom:16px;text-align:center;box-shadow:0 1px 3px #dc26261a;border:1px solid #fecaca;border-left:3px solid #dc2626;animation:fadeIn .3s ease;font-weight:500}.select-wrapper{position:relative}.select-wrapper select{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:48px;cursor:pointer;background-image:none}.select-wrapper:after{content:"▼";position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#6b7280;font-size:12px;pointer-events:none;transition:all .3s ease}.select-wrapper:focus-within:after{transform:translateY(-50%) rotate(180deg);color:#667eea}.select-wrapper:hover:after{color:#374151}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid #edf2f7}.btn-cancel{padding:10px 20px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px;box-shadow:0 1px 3px #00000014}.btn-cancel:hover{background:#f8fafc;color:#475569;box-shadow:0 2px 4px #0000000f;border-color:#cbd5e1}.btn-submit{padding:10px 20px;border-radius:6px;border:1px solid transparent;background:linear-gradient(90deg,#3b82f6,#1d4ed8);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px;box-shadow:0 2px 4px #3b82f633}.btn-submit:hover{background:linear-gradient(90deg,#2563eb,#1e40af);box-shadow:0 4px 8px #3b82f64d}.btn-submit:active{box-shadow:0 1px 2px #3b82f633}.btn-cancel:disabled,.btn-submit:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 1px 2px #0000000d}.btn-submit:disabled{background:#9ca3af}.form-row{display:flex;gap:24px;margin-bottom:1.2rem}.form-group.half{flex:1;margin-bottom:0}.progress-input-container{display:flex;align-items:center;gap:16px}.progress-input-container input[type=number]{flex:0 0 120px;text-align:center}.progress-visual{flex:1;height:6px;background-color:#edf2f7;border-radius:3px;overflow:hidden;position:relative}.progress-bar{height:100%;background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:3px;transition:width .3s ease;min-width:2px}.form-section{margin-top:24px;padding-top:20px;border-top:1px solid #edf2f7}.section-title{font-size:16px;font-weight:600;color:#2d3748;margin-bottom:16px;display:flex;align-items:center;gap:8px}.readonly-field{background-color:#f7fafc!important;color:#4a5568!important;cursor:not-allowed!important;border-color:#e2e8f0!important}.readonly-field:hover{background-color:#f7fafc!important;border-color:#e2e8f0!important;box-shadow:0 1px 3px #00000014!important}.readonly-field:focus{background-color:#f7fafc!important;border-color:#e2e8f0!important;box-shadow:0 1px 3px #00000014!important}.field-hint{font-size:12px;color:#718096;margin-top:4px;font-style:italic}@media (max-width: 600px){.form-row{flex-direction:column;gap:0}.form-group.half{margin-bottom:1.2rem}.progress-input-container{flex-direction:column;align-items:stretch;gap:12px}.progress-input-container input[type=number]{flex:none}.form-section{margin-top:20px;padding-top:16px}.section-title{font-size:15px}}.project-statistics{margin-bottom:32px;padding:0;background:transparent;border-radius:0;box-shadow:none}.project-statistics-container{background:#fff;border-radius:0;box-shadow:none}.section-title{font-size:1.5rem;font-weight:700;color:#2c3e50;margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid #e9ecef;position:relative}.stats-loading{text-align:center;padding:24px;color:#6c757d;font-size:16px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;color:#95a5a6;font-size:16px}.loading-spinner{width:40px;height:40px;margin-bottom:16px;border:3px solid rgba(52,152,219,.2);border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}.statistics-grid,.stat-cards-container{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:30px}.stat-card-row{background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #0000000d;position:relative;display:flex;flex-direction:column;min-height:200px;transition:all .3s ease;overflow:hidden}.stat-card-row>*:not(.stat-title):not(.stat-summary):not(.stat-card-topbar):not(.status-divider):not(.stat-divider){flex:1;display:flex;align-items:center;justify-content:center}.stat-card-row:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.weekly-stats-card,.hours-stats-card,.status-stats-card,.deadline-stats-card,.overdue-stats-card{background:#fff!important;padding:16px;min-height:200px;display:flex;flex-direction:column}.stat-card-topbar{position:absolute;top:0;left:0;right:0;height:4px;z-index:1}.stat-card-topbar-blue{background:linear-gradient(90deg,#3498db,#2980b9)}.stat-card-topbar-green{background:linear-gradient(90deg,#2ecc71,#27ae60)}.stat-card-topbar-purple{background:linear-gradient(90deg,#9b59b6,#8e44ad)}.stat-card-topbar-orange{background:linear-gradient(90deg,#f39c12,#e67e22)}.stat-card-topbar-red{background:linear-gradient(90deg,#e74c3c,#c0392b)}.stat-title{font-size:16px;font-weight:600;color:#2c3e50;margin-top:0;margin-bottom:16px;text-align:center;position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;height:24px;flex-shrink:0}.stat-title>div{display:flex}.stat-title .project-short-name{font-size:14px;margin-left:5px;color:#3498db;font-weight:700;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-icon1{font-size:22px;margin-right:6px}.carousel-counter{position:absolute;right:0;top:0;font-size:14px;color:#95a5a6;font-weight:400}.project-status-container{display:flex;justify-content:center;align-items:center;margin:0;flex:1;gap:0}.status-item{display:flex;flex-direction:column;align-items:center;flex:1}.status-value-wrapper{font-size:28px;font-weight:700;margin-top:0;margin-bottom:8px;display:flex;flex-direction:column;align-items:center;line-height:1;height:70px;justify-content:center;position:relative;color:#2c3e50;flex:1}.status-value-wrapper.in-progress{color:#3498db}.status-value-wrapper.completed{color:#2ecc71}.status-value-wrapper.paused{color:#f39c12}.status-value-wrapper.high-priority{color:#e74c3c}.status-value-wrapper.medium-priority{color:#f39c12}.status-value-wrapper.coming-soon{color:#e74c3c}.status-value-wrapper.next-deadline{color:#f39c12}.status-value-wrapper.next-month{color:#3498db}.status-icon{font-size:28px;margin-top:8px;opacity:1;color:#3498db}.status-value-wrapper.in-progress .status-icon{color:#3498db}.status-value-wrapper.completed .status-icon{color:#2ecc71}.status-value-wrapper.paused .status-icon{color:#f39c12}.status-value-wrapper.high-priority .status-icon{color:#e74c3c}.status-value-wrapper.medium-priority .status-icon{color:#f39c12}.status-value-wrapper.coming-soon .status-icon{color:#e74c3c}.status-value-wrapper.next-deadline .status-icon{color:#f39c12}.status-value-wrapper.next-month .status-icon{color:#3498db}.status-label{font-size:13px;color:#7f8c8d;font-weight:500;height:18px;margin-top:0;display:flex;align-items:center;justify-content:center}.status-divider{width:1px!important;height:40px!important;background-color:#e2e8f0!important;border-right:1px solid #e2e8f0!important;margin:0 12px!important;flex-shrink:0!important;flex-grow:0!important;flex-basis:1px!important;opacity:1!important;display:block!important;z-index:10!important}.stat-divider{margin:0 4px;color:#95a5a6}.stat-summary{margin-top:auto;font-size:13px;text-align:center;color:#7f8c8d;border-top:1px solid rgba(189,195,199,.2);padding-top:8px;min-height:36px;display:flex;flex-direction:row;align-items:center;justify-content:center;flex-shrink:0;flex-wrap:nowrap;gap:8px;white-space:nowrap;overflow:hidden;width:100%;box-sizing:border-box}.overdue-stats-card .stat-summary{height:auto;min-height:50px;padding:8px;display:flex!important;flex-direction:column!important;align-items:center!important;border-top:none!important;justify-content:center!important;flex-wrap:wrap!important;gap:4px!important;white-space:normal!important;overflow:visible!important;text-overflow:unset!important}.stat-summary:not(.overdue-stats-card .stat-summary){display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;gap:8px!important;white-space:nowrap!important;overflow:hidden!important}.stat-summary>span{display:inline-flex!important;align-items:center!important;white-space:nowrap!important;flex-shrink:0!important}.stat-summary .stat-divider{margin:0 8px;color:#95a5a6;font-weight:400}.stat-summary[style*="display: flex"]:not(.overdue-stats-card .stat-summary){flex-direction:row!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;gap:8px!important;white-space:nowrap!important}.stat-summary[style*="justifyContent: center"]:not(.overdue-stats-card .stat-summary){display:flex!important;flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;white-space:nowrap!important;gap:8px!important}.stat-summary .week-date-range{font-weight:700;margin-left:4px;white-space:nowrap!important;flex-shrink:0!important}.stat-summary:has-text("任务完成率"),.stat-summary:has-text("平均进度"){display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;white-space:nowrap!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-width:0!important;overflow:visible!important}.weekly-stats-card .stat-summary,.hours-stats-card .stat-summary,.status-stats-card .stat-summary,.deadline-stats-card .stat-summary{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;gap:8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.total-count,.week-completion-rate,.total-hours{font-weight:700;color:#3498db}.stat-period{font-size:14px;color:#95a5a6;text-align:center;margin-top:10px}.total-count{font-weight:700;color:#3498db;margin-left:5px}.progress-percentage{font-weight:700;color:#2ecc71;margin-left:5px}.efficiency-rate{font-weight:700;color:#f39c12;margin-left:5px}.urgent-count,.overdue-days{font-weight:700;color:#e74c3c;margin-left:5px}.overdue-label{font-size:13px;color:#7f8c8d;font-weight:400}.overdue-stats-top-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:8px;white-space:nowrap}.overdue-stats-top-row>div{display:flex;align-items:center;gap:4px;flex:1}.overdue-stats-top-row>div:first-child{justify-content:flex-start}.overdue-stats-top-row>div:last-child{justify-content:flex-end}.overdue-stats-bottom-row{margin-top:8px!important;border-top:1px solid rgba(189,195,199,.2)!important;padding-top:8px!important;width:100%!important;text-align:center;display:flex;align-items:center;justify-content:center;gap:4px}.overdue-stats-card{display:flex;flex-direction:column}.overdue-stats-card .project-status-container{display:flex;justify-content:center;align-items:center;margin:0;flex:1;gap:0;flex-direction:row}.overdue-stats-card .status-item{display:flex;flex-direction:column;align-items:center;flex:1}.overdue-stats-card .stat-summary{margin-top:auto;font-size:13px;text-align:center;color:#7f8c8d;border-top:1px solid rgba(189,195,199,.2);padding-top:8px;min-height:50px;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;flex-shrink:0;flex-wrap:wrap!important;gap:4px!important;white-space:normal!important;overflow:visible!important;width:100%;box-sizing:border-box}.hours-total{font-weight:700;color:#2ecc71;margin-left:5px}.week-date-range{font-weight:700;color:#95a5a6;margin-left:5px}.deadline-next-project{margin-top:auto;text-align:center;font-size:15px;color:#7f8c8d;padding-top:20px;border-top:1px dashed rgba(189,195,199,.4)}.next-deadline-project{font-weight:600;color:#f39c12}.project-carousel{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;position:relative}.project-carousel-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:0 10px}.carousel-project-name{font-size:16px;font-weight:600;color:#2c3e50;margin-bottom:20px;text-align:center;background-color:#f8f9fa;padding:8px 20px;border-radius:30px;box-shadow:0 2px 10px #0000000d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.clickable-project-name{cursor:pointer;transition:all .3s ease;position:relative}.clickable-project-name:hover{background-color:#e3f2fd;color:#1976d2;transform:translateY(-2px);box-shadow:0 4px 15px #1976d233}.clickable-project-name:active{transform:translateY(-1px);box-shadow:0 2px 8px #1976d226}.clickable-project-name:after{content:"点击查看详情";position:absolute;top:-35px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1000}.clickable-project-name:hover:after{opacity:1}.carousel-btn{background-color:#f8f9fa;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#7f8c8d;transition:all .2s;box-shadow:0 2px 10px #0000000d}.carousel-btn svg{font-size:18px}.carousel-btn:hover{background-color:#ecf0f1;color:#2c3e50;transform:scale(1.05)}.carousel-btn:disabled{background-color:#f8f9fa;color:#bdc3c7;cursor:not-allowed;box-shadow:none}.no-data-message{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#95a5a6;padding:40px 20px;min-height:120px}.no-data-message p{margin-bottom:16px;font-style:italic;font-size:14px;color:#7f8c8d}.no-data-message .stat-summary{display:flex;justify-content:center;align-items:center;gap:8px;font-size:12px;color:#95a5a6}.no-data-message .stat-period{font-size:12px;color:#95a5a6;margin-top:8px}@media (max-width: 1600px){.statistics-grid,.stat-cards-container{grid-template-columns:repeat(5,1fr);gap:12px}.stat-card-row{padding:14px;min-height:180px}}@media (max-width: 1200px){.statistics-grid,.stat-cards-container{grid-template-columns:repeat(3,1fr);gap:16px}.stat-card-row{padding:16px}}@media (max-width: 768px){.statistics-grid,.stat-cards-container{grid-template-columns:repeat(2,1fr);gap:16px}.stat-card-row{padding:16px;min-height:160px}.project-status-container{flex-direction:row;flex-wrap:wrap;justify-content:space-between}.status-divider{display:none}.status-item{flex:0 0 30%;margin-bottom:10px}.stat-summary:not(.overdue-stats-card .stat-summary){font-size:12px;padding-top:8px;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;gap:4px!important;white-space:nowrap!important;overflow:hidden!important}.overdue-stats-card .stat-summary{font-size:12px;padding-top:8px;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:4px!important;white-space:normal!important;overflow:visible!important}.stat-summary .stat-divider{margin:0 2px}}@media (max-width: 480px){.section-title{font-size:1.2rem}.statistics-grid,.stat-cards-container{grid-template-columns:1fr}.stat-card-row{padding:16px}.status-value-wrapper{font-size:20px}.status-label{font-size:12px}.carousel-project-name{font-size:14px}.carousel-btn{width:30px;height:30px}.status-icon{font-size:16px}}.project-names-list{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:5px;margin-bottom:5px;padding:0 8px;max-height:60px;min-height:25px;overflow:hidden}.project-name-item{background-color:#0000000d;border-radius:12px;padding:1px 8px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;color:#555;line-height:20px}.weekly-task-progress{padding:10px 0;text-align:center;margin:8px 0;min-height:40px}.progress-detail{display:flex;justify-content:space-around;align-items:center;margin-top:5px}.task-progress-value{font-size:15px;font-weight:600;color:#3498db}.progress-percentage-text{font-size:14px;color:#2ecc71;font-weight:700}.task-completion-overview{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 0}.completion-rate-value{font-size:28px;font-weight:700;color:#f39c12;margin-bottom:5px}.completion-rate-label{font-size:14px;color:#7f8c8d;font-weight:500}.no-projects-message{font-size:13px;color:#999;font-style:italic}.priority-icon{font-size:28px;margin-top:8px}.time-range-filter{margin-bottom:20px;border:1px solid #e2e8f0;border-radius:8px;background:linear-gradient(135deg,#f8fafc,#fff);box-shadow:0 2px 8px #0000000f}.time-range-filter .ant-card-body{padding:16px!important}.filter-header{display:flex;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.filter-icon{font-size:16px;color:#3b82f6}.filter-title{font-size:14px;font-weight:600;color:#374151;letter-spacing:.3px}.filter-content{display:flex;flex-direction:column;gap:16px}.quick-select-section{display:flex;flex-direction:column;gap:8px}.section-label{font-size:12px;color:#6b7280;font-weight:500;margin-bottom:4px;letter-spacing:.2px}.quick-select-btn{border-radius:6px;font-size:12px;height:28px;padding:0 12px;transition:all .2s ease;border-color:#d1d5db}.quick-select-btn:hover{border-color:#3b82f6;color:#3b82f6;transform:translateY(-1px)}.quick-select-btn.ant-btn-primary{background:#3b82f6;border-color:#3b82f6;box-shadow:0 2px 4px #3b82f633}.quick-select-btn.ant-btn-primary:hover{background:#2563eb;border-color:#2563eb;transform:translateY(-1px)}.custom-select-section{display:flex;flex-direction:column;gap:8px}.custom-select-section .ant-picker{border-radius:6px;border-color:#d1d5db;transition:all .2s ease}.custom-select-section .ant-picker:hover{border-color:#3b82f6}.custom-select-section .ant-picker-focused{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.custom-select-section .ant-btn{border-radius:6px;height:28px;font-size:12px;transition:all .2s ease}.custom-select-section .ant-btn-primary{background:#3b82f6;border-color:#3b82f6;box-shadow:0 2px 4px #3b82f633}.custom-select-section .ant-btn-primary:hover{background:#2563eb;border-color:#2563eb;transform:translateY(-1px)}.custom-select-section .ant-btn:not(.ant-btn-primary){border-color:#d1d5db;color:#6b7280}.custom-select-section .ant-btn:not(.ant-btn-primary):hover{border-color:#9ca3af;color:#374151;transform:translateY(-1px)}@media (max-width: 768px){.filter-content{gap:12px}.quick-select-section .ant-space{width:100%}.quick-select-btn{flex:1;min-width:0}.custom-select-section .ant-row{flex-direction:column;gap:8px}.custom-select-section .ant-col{width:100%!important;flex:none!important}}.time-range-filter.loading{opacity:.7;pointer-events:none}.time-range-filter{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.quick-select-btn.ant-btn-primary{position:relative}.quick-select-btn.ant-btn-primary:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border:2px solid rgba(59,130,246,.3);border-radius:8px;pointer-events:none;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.custom-period-stats{margin-bottom:20px;border:2px solid #3b82f6;border-radius:10px;background:linear-gradient(135deg,#3b82f60d,#fff);box-shadow:0 4px 12px #3b82f626;position:relative;overflow:hidden}.custom-period-stats:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3b82f6,#8b5cf6)}.custom-period-stats .ant-card-body{padding:18px!important}.stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.header-left{display:flex;align-items:center;gap:12px}.header-icon{font-size:18px;color:#3b82f6;padding:8px;background:#3b82f61a;border-radius:8px}.header-info{display:flex;flex-direction:column;gap:4px}.period-title{font-size:16px;font-weight:600;color:#1e293b;letter-spacing:.3px}.period-range{display:flex;align-items:center;gap:8px}.range-tag{margin:0;font-size:12px;font-weight:500;border-radius:4px}.range-days{font-size:11px;color:#6b7280;font-weight:500}.stats-content{display:flex;flex-direction:column;gap:16px}.stat-item{display:flex;align-items:center;gap:12px;padding:12px;background:#f8fafc99;border-radius:8px;border:1px solid #e2e8f0;transition:all .2s ease}.stat-item:hover{background:#f8fafce6;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.stat-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;font-size:16px;color:#fff;flex-shrink:0}.stat-icon.completed{background:linear-gradient(135deg,#10b981,#059669)}.stat-icon.hours{background:linear-gradient(135deg,#3b82f6,#2563eb)}.stat-icon.efficiency{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-icon.progress{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.stat-info{display:flex;flex-direction:column;gap:2px;flex:1}.stat-label{font-size:11px;color:#6b7280;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.stat-value{font-size:16px;font-weight:700;color:#1e293b;line-height:1.2}.stat-value.completed-value{color:#10b981}.stat-value.hours-value{color:#3b82f6}.stat-value.progress-value{color:#8b5cf6}.stats-details{margin-top:8px;padding:12px;background:#f1f5f980;border-radius:6px;border:1px solid #e2e8f0}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:2px 0}.detail-label{font-size:11px;color:#6b7280;font-weight:500}.detail-value{font-size:12px;color:#374151;font-weight:600}.loading-card{border-color:#d1d5db;background:#f9fafb}.loading-content{display:flex;align-items:center;justify-content:center;gap:12px;padding:20px}.loading-text{font-size:14px;color:#6b7280}.error-card{border-color:#ef4444;background:#ef44440d}.error-content{padding:20px}.empty-card{border-color:#d1d5db;background:#f9fafb}.empty-content{padding:20px}@media (max-width: 768px){.stats-header{flex-direction:column;align-items:flex-start;gap:8px}.header-left{width:100%}.period-range{flex-wrap:wrap}.stat-item{padding:10px}.stat-icon{width:32px;height:32px;font-size:14px}.stat-value{font-size:14px}.stats-details .ant-row{flex-direction:column;gap:4px}.detail-item{padding:4px 0}}.custom-period-stats{animation:slideInDown .4s ease-out}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.custom-period-stats{position:relative}.custom-period-stats:after{content:"自定义";position:absolute;top:12px;right:12px;background:#3b82f6;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;letter-spacing:.5px}.draggable-modal,.draggable-modal *,.draggable-modal-overlay,.draggable-modal-overlay *{border-left:none!important;border-right:none!important}.draggable-modal:before,.draggable-modal:after,.draggable-modal *:before,.draggable-modal *:after{border-left:none!important;border-right:none!important}.draggable-modal .activity-item,.draggable-modal .warning-item,.draggable-modal .success-item,.draggable-modal .info-item,.draggable-modal .task-completed,.draggable-modal .task-overdue,.draggable-modal .task-due-today,.draggable-modal .ant-table-row-selected{border-left:none!important;border-right:none!important}.draggable-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;animation:fadeIn .3s ease-out;box-sizing:border-box}.draggable-modal{background:#fff;border-radius:16px;box-shadow:0 25px 50px #00000040,0 10px 25px #00000026,0 0 0 1px #ffffff1a;display:flex;flex-direction:column;animation:slideIn .4s cubic-bezier(.175,.885,.32,1.275);overflow:hidden;position:absolute;transition:box-shadow .3s ease}.draggable-modal.dragging{box-shadow:0 35px 70px #00000059,0 15px 35px #00000040,0 0 0 1px #ffffff1a;transform-origin:center}.draggable-modal.resizing{transition:none;-webkit-user-select:none;user-select:none}.draggable-modal.dragging{-webkit-user-select:none;user-select:none}.draggable-modal-header{padding:16px 24px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;cursor:move;-webkit-user-select:none;user-select:none;position:relative;min-height:56px;border-bottom:1px solid #e2e8f0}.draggable-modal-header:hover{background:#f1f5f9}.draggable-modal-title{margin:0;font-size:16px;font-weight:600;color:#2d3748;text-shadow:none;letter-spacing:0;position:relative;z-index:1}.draggable-modal-close{background:#f8fafc;border:1px solid #e2e8f0;font-size:18px;color:#64748b;cursor:pointer;padding:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease;position:relative;z-index:1}.draggable-modal-close:hover{background:#e2e8f0;color:#475569;border-color:#cbd5e1}.draggable-modal-content{flex:1;overflow-y:auto;overflow-x:hidden;background:#fff;position:relative;min-height:0;height:100%}.draggable-modal-content::-webkit-scrollbar{width:6px}.draggable-modal-content::-webkit-scrollbar-track{background:#f8fafc;border-radius:3px}.draggable-modal-content::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#cbd5e1,#94a3b8);border-radius:3px}.draggable-modal-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#94a3b8,#64748b)}.resize-handle{position:absolute;bottom:0;right:0;width:20px;height:20px;cursor:nw-resize;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-top-left-radius:8px;transition:all .2s ease;z-index:10;-webkit-user-select:none;user-select:none}.resize-handle:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);transform:scale(1.1)}.resize-icon{font-size:12px;color:#64748b;transform:rotate(90deg);font-weight:700}@media (max-width: 768px){.draggable-modal{width:95vw!important;height:90vh!important;transform:none!important;position:fixed!important;top:5vh!important;left:2.5vw!important}.draggable-modal-header{cursor:default;padding:16px 20px;min-height:50px}.draggable-modal-title{font-size:16px}.draggable-modal-close{width:32px;height:32px;font-size:18px}.resize-handle{display:none}}.draggable-modal.dragging .draggable-modal-header{background:#f1f5f9;border-bottom-color:#cbd5e1}.draggable-modal.dragging{transform-style:preserve-3d}.draggable-modal.resizing{outline:2px dashed rgba(102,126,234,.5);outline-offset:2px}.draggable-modal.resizing .resize-handle{background:linear-gradient(135deg,#3b82f6,#1d4ed8);transform:scale(1.2)}.draggable-modal.resizing .resize-icon{color:#fff}.draggable-modal:has(.ant-picker),.draggable-modal:has(.hours-filter-datepicker){overflow:visible}.draggable-modal.has-datepicker{overflow:visible}.draggable-modal.has-datepicker .draggable-modal-header{border-top-left-radius:16px;border-top-right-radius:16px;overflow:hidden}.draggable-modal.has-datepicker .draggable-modal-content{border-bottom-left-radius:16px;border-bottom-right-radius:16px}.project-hours-content,.project-hours-content *,.project-hours-modal,.project-hours-modal *{border-left:none!important;border-right:none!important}.project-hours-content:before,.project-hours-content:after,.project-hours-content *:before,.project-hours-content *:after{border-left:none!important;border-right:none!important}.project-hours-content .activity-item,.project-hours-content .warning-item,.project-hours-content .success-item,.project-hours-content .info-item,.project-hours-content .task-completed,.project-hours-content .task-overdue,.project-hours-content .task-due-today{border-left:none!important;border-right:none!important}.draggable-modal .project-hours-content{height:calc(100% - 60px);overflow-y:auto;padding:12px}.project-hours-modal .ant-modal{max-width:95vw!important;margin:0 auto}.project-hours-modal .ant-modal-content{max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.project-hours-modal .ant-modal-body{flex:1;overflow-y:auto;padding:16px!important}@media (max-width: 1400px){.project-hours-modal .ant-modal{width:95%!important;max-width:1200px!important}}@media (max-width: 1200px){.project-hours-modal .ant-modal{width:98%!important;max-width:none!important}.project-hours-modal .ant-col-8{width:100%!important;margin-bottom:16px}}@media (max-width: 768px){.project-hours-modal .ant-modal{width:100%!important;margin:0!important;max-height:100vh!important}.project-hours-modal .ant-modal-content{height:100vh;max-height:100vh;border-radius:0}.project-hours-modal .echarts-for-react{height:200px!important}.project-hours-modal .ant-table-wrapper{overflow-x:auto}}.project-hours-modal .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease}.project-hours-modal .ant-card:hover{box-shadow:0 4px 12px #00000026}.project-hours-modal .ant-statistic{text-align:center}.project-hours-modal .ant-statistic-title{font-size:12px;color:#666;margin-bottom:4px}.project-hours-modal .ant-statistic-content{font-size:18px;font-weight:700}.project-hours-modal .ant-tabs-tab{padding:8px 16px;font-weight:500}.project-hours-modal .ant-tabs-tab-active{background:linear-gradient(135deg,#1890ff,#52c41a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.project-hours-modal .ant-table-thead>tr>th{background:#fafafa;font-weight:600;color:#333;border-bottom:2px solid #e8e8e8;text-align:center}.project-hours-modal .ant-table-tbody>tr:hover>td{background:#f5f5f5}.project-hours-modal .ant-table-tbody>tr>td{vertical-align:middle}.project-hours-modal .ant-btn-primary{background:linear-gradient(135deg,#1890ff,#40a9ff);border:none;box-shadow:0 2px 4px #1890ff4d}.project-hours-modal .ant-btn-primary:hover{background:linear-gradient(135deg,#40a9ff,#1890ff);transform:translateY(-1px);box-shadow:0 4px 8px #1890ff66}.project-hours-modal .ant-spin-container{min-height:200px}.project-hours-modal .ant-empty{margin:40px 0}.project-hours-modal .ant-modal-body::-webkit-scrollbar{width:6px}.project-hours-modal .ant-modal-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.project-hours-modal .ant-modal-body::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.project-hours-modal .ant-modal-body::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.project-hours-modal .ant-card{animation:fadeInUp .3s ease-out}.project-hours-modal .echarts-for-react>div{border-radius:4px}.project-hours-modal .ant-select{border-radius:6px}.project-hours-modal .ant-select-focused{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.project-hours-modal .time-range-filter{margin-bottom:0;box-shadow:none;border:1px solid #e8e8e8}.project-hours-modal .time-range-filter div[style*="display: flex"]{flex-wrap:wrap;gap:8px}@media (max-width: 768px){.project-hours-modal .time-range-filter div[style*="display: flex"]{flex-direction:column;align-items:stretch}.project-hours-modal .time-range-filter div[style*="display: flex"]>div{width:100%;justify-content:center}}.hours-filter-datepicker,.draggable-modal .ant-picker-dropdown,.ant-picker-dropdown.hours-filter-datepicker{z-index:10050!important}.draggable-modal .project-hours-content{position:relative}.draggable-modal .ant-tabs-tabpane[data-node-key=hoursFilter]{position:relative;z-index:1}.assignee-stats-table{table-layout:fixed!important}.assignee-stats-table .ant-table{border-radius:6px;overflow:hidden}.assignee-stats-table .ant-table-thead>tr>th{background-color:#fafafa!important;border-bottom:2px solid #e8e8e8!important;font-weight:600!important;color:#262626!important;padding:12px 8px!important;text-align:center!important;vertical-align:middle!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.assignee-stats-table .ant-table-tbody>tr>td{padding:12px 8px!important;vertical-align:middle!important;border-bottom:1px solid #f0f0f0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(1),.assignee-stats-table .ant-table-tbody>tr>td:nth-child(1){text-align:center!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(2),.assignee-stats-table .ant-table-tbody>tr>td:nth-child(2){text-align:center!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(3),.assignee-stats-table .ant-table-tbody>tr>td:nth-child(3){text-align:right!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(4),.assignee-stats-table .ant-table-tbody>tr>td:nth-child(4){text-align:right!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(5),.assignee-stats-table .ant-table-tbody>tr>td:nth-child(5){text-align:center!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(6),.assignee-stats-table .ant-table-tbody>tr>td:nth-child(6){text-align:center!important}.assignee-stats-table .ant-progress{display:flex!important;justify-content:center!important;align-items:center!important}.assignee-stats-table .ant-tag{margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}.assignee-stats-table .ant-table-tbody>tr>td:nth-child(1)>div{display:flex!important;align-items:center!important;justify-content:center!important}.assignee-stats-table .ant-table-tbody>tr:hover>td{background-color:#f5f5f5!important}.assignee-stats-table .ant-table-container{border:1px solid #e8e8e8;border-radius:6px}.assignee-stats-table .ant-table-body::-webkit-scrollbar{width:6px;height:6px}.assignee-stats-table .ant-table-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.assignee-stats-table .ant-table-body::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.assignee-stats-table .ant-table-body::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.assignee-stats-table .ant-table-thead>tr>th,.assignee-stats-table .ant-table-tbody>tr>td{padding:8px 4px!important;font-size:12px!important}.assignee-stats-table .ant-tag{font-size:11px!important;padding:2px 6px!important}}@media (max-width: 480px){.assignee-stats-table{font-size:11px!important}.assignee-stats-table .ant-table-thead>tr>th,.assignee-stats-table .ant-table-tbody>tr>td{padding:6px 2px!important}}.assignee-stats-table .ant-table-thead>tr>th:nth-child(1){width:120px!important;min-width:120px!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(2){width:100px!important;min-width:100px!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(3){width:120px!important;min-width:120px!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(4){width:120px!important;min-width:120px!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(5){width:100px!important;min-width:100px!important}.assignee-stats-table .ant-table-thead>tr>th:nth-child(6){width:120px!important;min-width:120px!important}.assignee-stats-table .ant-table-tbody>tr>td{box-sizing:border-box!important}.assignee-stats-table{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important}.draggable-modal .task-stats-modal-content{height:calc(100% - 60px);overflow-y:auto;padding:12px}.project-task-stats-modal .ant-modal{max-width:95vw!important;margin:0 auto}.project-task-stats-modal .ant-modal-content{max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.project-task-stats-modal .ant-modal-body{flex:1;overflow-y:auto;padding:16px!important}.task-stats-modal-content{height:100%;display:flex;flex-direction:column;overflow-x:hidden}.task-stats-modal-content .ant-spin-container{height:100%;display:flex;flex-direction:column}.task-stats-modal-content .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000000f}.task-stats-modal-content .ant-space{width:100%;justify-content:flex-start;flex-wrap:wrap}.task-stats-modal-content .ant-statistic{text-align:center}.task-stats-modal-content .ant-statistic-title{font-size:12px;color:#666;margin-bottom:4px}.task-stats-modal-content .ant-statistic-content{font-size:20px;font-weight:600}.task-stats-modal-content .ant-statistic-content-prefix{margin-right:6px;font-size:16px}.task-stats-modal-content .ant-tabs{flex:1;display:flex;flex-direction:column}.task-stats-modal-content .ant-tabs-content-holder{flex:1;overflow-y:auto;overflow-x:hidden}.task-stats-modal-content .ant-tabs-tabpane{height:100%;overflow-y:auto;overflow-x:hidden}.task-stats-modal-content .ant-table{font-size:12px}@media (min-width: 769px){.task-stats-modal-content .ant-table-wrapper,.task-stats-modal-content .ant-table-container{overflow-x:hidden}}.task-stats-modal-content .ant-table-thead>tr>th{background-color:#fafafa;font-weight:600;font-size:12px;padding:8px 12px}.task-stats-modal-content .ant-table-tbody>tr>td{padding:8px 12px;font-size:12px}.task-stats-modal-content .ant-progress{margin:0}.task-stats-modal-content .ant-progress-text{font-size:11px}.task-stats-modal-content .ant-tag{margin:0;font-size:11px;padding:2px 6px;border-radius:4px}.task-stats-chart-container{height:300px;width:100%;margin:16px 0}.project-task-stats-modal .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease}.project-task-stats-modal .ant-card:hover{box-shadow:0 4px 12px #00000026}.project-task-stats-modal .ant-statistic{text-align:center}.project-task-stats-modal .ant-row,.project-task-stats-modal .ant-col{overflow-x:hidden}.project-task-stats-modal .echarts-for-react{max-width:100%;overflow:hidden}@media (max-width: 1400px){.project-task-stats-modal .ant-modal{width:95%!important;max-width:1200px!important}}@media (max-width: 1200px){.project-task-stats-modal .ant-modal{width:98%!important;max-width:none!important}.task-stats-modal-content .ant-col{margin-bottom:8px}.task-stats-modal-content .ant-col-8{width:100%!important;margin-bottom:16px}}@media (max-width: 768px){.project-task-stats-modal .ant-modal{width:100%!important;margin:0!important;max-height:100vh!important}.project-task-stats-modal .ant-modal-content{height:100vh;max-height:100vh;border-radius:0}.task-stats-modal-content .ant-space{flex-direction:column;align-items:stretch}.task-stats-modal-content .ant-space-item{width:100%}.task-stats-modal-content .ant-select,.task-stats-modal-content .ant-picker{width:100%!important}.task-stats-modal-content .echarts-for-react{height:200px!important}.task-stats-modal-content .ant-table-wrapper{overflow-x:auto}}.task-stats-empty-state{text-align:center;padding:40px 20px;color:#666}.task-stats-empty-state .anticon{font-size:48px;color:#d9d9d9;margin-bottom:16px}.task-stats-empty-state p{margin:8px 0}.task-stats-empty-state p:last-child{font-size:12px;color:#999}.task-stats-modal-content .ant-spin-spinning{min-height:200px}.task-stats-modal-content .ant-btn{border-radius:6px;font-size:12px;height:32px;padding:4px 12px}.task-stats-modal-content .ant-btn-icon{font-size:14px}.task-stats-modal-content .ant-select,.task-stats-modal-content .ant-picker{border-radius:6px}.task-stats-modal-content .ant-card-head-title{font-size:14px;font-weight:600;color:#262626}.task-stats-modal-content .ant-divider{margin:12px 0}.task-stats-value-success{color:#52c41a!important}.task-stats-value-warning{color:#faad14!important}.task-stats-value-danger{color:#ff4d4f!important}.task-stats-value-info{color:#1890ff!important}.task-stats-value-purple{color:#722ed1!important}.task-stats-tooltip{font-size:12px;max-width:300px}.ant-tooltip,.draggable-modal .ant-tooltip,.project-task-stats-modal .ant-tooltip{z-index:10100!important}.ant-tooltip-inner{background:#000000d9!important;border-radius:6px!important;box-shadow:0 4px 12px #00000026!important}.ant-tooltip-arrow:before{background:#000000d9!important}.task-stats-filter-result{background-color:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;padding:8px 12px;margin-bottom:16px;font-size:12px;color:#389e0d}.task-stats-export-btn{background-color:#52c41a;border-color:#52c41a;color:#fff}.task-stats-export-btn:hover{background-color:#73d13d;border-color:#73d13d}.task-stats-export-btn:disabled{background-color:#f5f5f5;border-color:#d9d9d9;color:#bfbfbf}.draggable-modal .status-stats-modal-content{height:calc(100% - 60px);overflow-y:auto;padding:16px;background:#fafbfc}.project-status-stats-modal .ant-modal{max-width:95vw!important;margin:0 auto}.project-status-stats-modal .ant-modal-content{max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.project-status-stats-modal .ant-modal-body{flex:1;overflow-y:auto;padding:var(--spacing-md)!important}.status-stats-modal-content{height:100%;display:flex;flex-direction:column;overflow-x:hidden}.status-stats-modal-content .ant-spin-container{height:100%;display:flex;flex-direction:column}.status-stats-modal-content .ant-tabs{flex:1;display:flex;flex-direction:column}.status-stats-modal-content .ant-tabs-content-holder{flex:1;overflow-y:auto}.status-stats-modal-content .ant-tabs-tabpane{height:100%;overflow-y:auto;padding-right:var(--spacing-sm)}.status-stats-modal-content .ant-tabs-tab{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);font-weight:500;transition:all .3s ease}.status-stats-modal-content .ant-tabs-tab-active{font-weight:600;color:var(--color-primary)}.status-stats-modal-content .ant-table{font-size:12px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.status-stats-modal-content .ant-table-thead>tr>th{padding:12px!important;font-size:12px;font-weight:600;background:#f8fafc!important;text-align:center!important;vertical-align:middle!important;border-bottom:2px solid #e2e8f0;color:#475569}.status-stats-modal-content .ant-table-tbody>tr>td{padding:12px!important;font-size:12px;text-align:center!important;vertical-align:middle!important;border-bottom:1px solid #f1f5f9}.status-stats-modal-content .ant-table-thead>tr>th:first-child,.status-stats-modal-content .ant-table-tbody>tr>td:first-child{text-align:left!important}.status-stats-modal-content .ant-table-tbody>tr:hover>td{background:#f8fafc;transition:background-color .2s ease}.status-stats-modal-content .ant-statistic-title{font-size:var(--font-size-xs);margin-bottom:var(--spacing-xs);color:#64748b;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-stats-modal-content .ant-statistic-content{font-size:20px;font-weight:700}.status-stats-modal-content .ant-tag{margin:0!important;font-size:12px!important;padding:4px 8px!important;border-radius:6px!important;font-weight:600!important;border:2px solid!important}.status-stats-modal-content .ant-tag[title=进行中],.status-stats-modal-content .ant-tag:contains("进行中"){background:#e3f2fd!important;color:#1976d2!important;border-color:#1976d2!important}.status-stats-modal-content .ant-tag[title=已完成],.status-stats-modal-content .ant-tag:contains("已完成"){background:#e8f5e8!important;color:#2e7d32!important;border-color:#2e7d32!important}.status-stats-modal-content .ant-tag[title=暂停],.status-stats-modal-content .ant-tag[title=已暂停],.status-stats-modal-content .ant-tag:contains("暂停"){background:#fff3e0!important;color:#f57c00!important;border-color:#f57c00!important}.status-stats-modal-content .ant-tag[title=已关闭],.status-stats-modal-content .ant-tag:contains("已关闭"){background:#ffebee!important;color:#d32f2f!important;border-color:#d32f2f!important}.status-stats-modal-content .ant-progress{margin:0}.status-stats-modal-content .ant-progress-text{font-size:var(--font-size-xs);font-weight:600}.status-stats-modal-content .ant-progress-bg{border-radius:6px}.status-stats-modal-content .ant-progress-inner{border-radius:6px;background:#f1f5f9}.status-stats-chart-container{height:320px;width:100%;margin:var(--spacing-md) 0;border-radius:var(--border-radius-sm);background:#fff;padding:var(--spacing-sm);box-shadow:var(--shadow-sm)}.project-status-stats-modal .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;border:1px solid #e2e8f0;overflow:hidden}.project-status-stats-modal .ant-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px);border-color:#1890ff}.project-status-stats-modal .ant-card-head{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.project-status-stats-modal .ant-card-head-title{font-size:14px;font-weight:600;color:#334155}.project-status-stats-modal .ant-card-body{padding:16px}.project-status-stats-modal .ant-row,.project-status-stats-modal .ant-col{overflow-x:hidden}.status-stats-modal-content .ant-btn{border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);height:32px;padding:0 var(--spacing-md);font-weight:500;transition:all .3s ease;box-shadow:var(--shadow-sm)}.status-stats-modal-content .ant-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.status-stats-modal-content .ant-divider{margin:var(--spacing-md) 0;border-color:#e2e8f0}.status-stats-modal-content .ant-tooltip{font-size:var(--font-size-xs)}.status-stats-modal-content .ant-empty{margin:var(--spacing-xl) 0;color:#64748b}.status-stats-modal-content .ant-spin-container{min-height:200px}@media (max-width: 1200px){.status-stats-modal-content .ant-col-6{flex:0 0 50%;max-width:50%}.status-stats-chart-container{height:280px}}@media (max-width: 768px){.draggable-modal .status-stats-modal-content{padding:var(--spacing-sm)}.status-stats-modal-content .ant-col-6{flex:0 0 100%;max-width:100%}.status-stats-modal-content .ant-table{font-size:10px}.status-stats-modal-content .ant-table-thead>tr>th,.status-stats-modal-content .ant-table-tbody>tr>td{padding:var(--spacing-xs)!important}.status-stats-chart-container{height:240px;margin:var(--spacing-sm) 0}.status-stats-modal-content .ant-statistic-content{font-size:16px}}.status-stats-modal-content .ant-table-row-selected{background:linear-gradient(135deg,#3b82f614,#3b82f60a)}.status-stats-modal-content .ant-table-row-selected:hover{background:linear-gradient(135deg,#3b82f61f,#3b82f60f)!important}.status-stats-modal-content .anticon{font-size:var(--font-size-sm);transition:color .3s ease}.status-stats-modal-content .ant-statistic-content-value{font-weight:700;background:linear-gradient(135deg,#334155,#475569);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.status-stats-modal-content::-webkit-scrollbar{width:6px}.status-stats-modal-content::-webkit-scrollbar-track{background:#f8fafc;border-radius:3px}.status-stats-modal-content::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#cbd5e1,#94a3b8);border-radius:3px;transition:background .3s ease}.status-stats-modal-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#94a3b8,#64748b)}.status-stats-modal-content .ant-card,.status-stats-modal-content .ant-table{animation:fadeInUp .4s ease-out}.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--spacing-xs)}.status-indicator.进行中{background:#1e40af;box-shadow:0 0 8px #1e40af66}.status-indicator.已完成{background:#047857;box-shadow:0 0 8px #04785766}.status-indicator.暂停{background:#b45309;box-shadow:0 0 8px #b4530966}.status-indicator.已关闭{background:#dc2626;box-shadow:0 0 8px #dc262666}.task-completed{background-color:#f6ffed!important}.task-overdue{background-color:#fff2f0!important}.task-due-today{background-color:#fff7e6!important}.status-stats-modal-content .ant-card-body{padding:16px}.status-stats-modal-content .ant-statistic{text-align:center}.status-stats-modal-content .echarts-container{height:300px;width:100%}.status-stats-modal-content .ant-table-tbody>tr:hover>td{background-color:#e6f7ff!important}.status-stats-modal-content .ant-table-thead>tr>th{background-color:#fafafa;font-weight:600;color:#262626}.status-stats-modal-content .ant-tag{border-radius:6px;font-weight:500;border:none}.status-stats-modal-content .ant-progress-line{margin:0}.status-stats-modal-content .ant-progress-text{font-size:12px;font-weight:600}.status-stats-modal-content .ant-card.gradient-card{border:none;border-radius:12px;overflow:hidden}.status-stats-modal-content .ant-card.gradient-card .ant-card-body{padding:20px}.status-stats-modal-content .task-table-container{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.status-stats-modal-content .task-table-container .ant-table{margin:0}.status-stats-modal-content .task-table-container .ant-table-thead>tr>th{background:#f8fafc;color:#475569;font-weight:600;font-size:12px;padding:12px 8px;text-align:center;border-bottom:2px solid #e2e8f0}.status-stats-modal-content .task-table-container .ant-table-tbody>tr>td{padding:10px 8px;font-size:12px;text-align:center;vertical-align:middle;border-bottom:1px solid #f1f5f9}.status-stats-modal-content .task-table-container .col-name,.status-stats-modal-content .task-table-container .col-project{text-align:left!important}.status-stats-modal-content .task-table-container .task-completed{background-color:#f6ffed!important}.status-stats-modal-content .task-table-container .task-overdue{background-color:#fff2f0!important}.status-stats-modal-content .task-table-container .task-due-today{background-color:#fff7e6!important}.status-stats-modal-content .task-table-container .ant-table-tbody>tr:hover>td{background-color:#e6f7ff!important;transition:background-color .2s ease}.status-stats-modal-content .importance-badge,.status-stats-modal-content .type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;text-align:center;white-space:nowrap}.status-stats-modal-content .progress-wrapper{padding:0 8px}.status-stats-modal-content .progress-wrapper .ant-progress{margin:0}.status-stats-modal-content .progress-wrapper .ant-progress-text{font-size:11px;font-weight:600}.status-stats-modal-content .ant-input,.status-stats-modal-content .ant-select-selector{border-radius:6px;border:1px solid #d1d5db;transition:all .2s ease}.status-stats-modal-content .ant-input:focus,.status-stats-modal-content .ant-select-focused .ant-select-selector{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}@media (max-width: 768px){.status-stats-modal-content{padding:8px}.status-stats-modal-content .ant-col{margin-bottom:16px}.status-stats-modal-content .task-table-container .ant-table{font-size:11px}.status-stats-modal-content .task-table-container .ant-table-thead>tr>th,.status-stats-modal-content .task-table-container .ant-table-tbody>tr>td{padding:8px 4px}.status-stats-modal-content .ant-statistic-content{font-size:18px!important}.status-stats-modal-content .task-table-container .col-type,.status-stats-modal-content .task-table-container .col-hours{display:none}}.draggable-modal .deadline-stats-modal-content{height:calc(100% - 60px);overflow-y:auto;padding:12px}.project-deadline-stats-modal .ant-modal{max-width:95vw!important;margin:0 auto}.project-deadline-stats-modal .ant-modal-content{max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.project-deadline-stats-modal .ant-modal-body{flex:1;overflow-y:auto;padding:16px!important}.deadline-stats-modal-content{height:100%;display:flex;flex-direction:column;overflow-x:hidden}.deadline-stats-modal-content .ant-spin-container{height:100%;display:flex;flex-direction:column}.deadline-stats-modal-content .ant-tabs{flex:1;display:flex;flex-direction:column}.deadline-stats-modal-content .ant-tabs-content-holder{flex:1;overflow-y:auto}.deadline-stats-modal-content .ant-tabs-tabpane{height:100%;overflow-y:auto;padding-right:8px}.deadline-stats-modal-content .ant-table{font-size:12px}.deadline-stats-modal-content .ant-table-thead>tr>th{padding:8px 6px;font-size:11px;font-weight:600;background:#fafafa}.deadline-stats-modal-content .ant-table-tbody>tr>td{padding:6px;font-size:11px}.deadline-stats-modal-content .ant-table-tbody>tr:hover>td{background:#f5f5f5}.deadline-stats-modal-content .ant-statistic{text-align:center}.deadline-stats-modal-content .ant-statistic-title{font-size:12px;margin-bottom:4px}.deadline-stats-modal-content .ant-statistic-content{font-size:18px}.deadline-stats-modal-content .ant-progress{margin:0}.deadline-stats-modal-content .ant-progress-text{font-size:11px}.deadline-stats-modal-content .ant-tag{margin:0;font-size:11px;padding:2px 6px;border-radius:4px}.deadline-stats-chart-container{height:300px;width:100%;margin:16px 0}.project-deadline-stats-modal .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease}.project-deadline-stats-modal .ant-card:hover{box-shadow:0 4px 12px #00000026}.project-deadline-stats-modal .ant-row,.project-deadline-stats-modal .ant-col{overflow-x:hidden}.deadline-urgency-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.deadline-urgency-indicator.completed{background-color:#52c41a}.deadline-urgency-indicator.on-track{background-color:#1890ff}.deadline-urgency-indicator.at-risk{background-color:#faad14}.deadline-urgency-indicator.overdue{background-color:#f5222d}.remaining-days{font-weight:700}.remaining-days.urgent{color:#f5222d}.remaining-days.warning{color:#faad14}.remaining-days.safe{color:#52c41a}@media (max-width: 1200px){.deadline-stats-modal-content .ant-col-6{flex:0 0 50%;max-width:50%}}@media (max-width: 768px){.deadline-stats-modal-content .ant-col-6{flex:0 0 100%;max-width:100%}.deadline-stats-modal-content .ant-table{font-size:10px}.deadline-stats-modal-content .ant-table-thead>tr>th,.deadline-stats-modal-content .ant-table-tbody>tr>td{padding:4px}}.deadline-stats-modal-content .ant-spin-container{min-height:200px}.deadline-stats-modal-content .ant-empty{margin:40px 0}.deadline-stats-modal-content .ant-btn{border-radius:6px;font-size:12px;height:28px;padding:0 12px}.deadline-stats-modal-content .ant-divider{margin:12px 0}.deadline-stats-modal-content .ant-tooltip{font-size:12px}.deadline-stats-modal-content .ant-tabs-tab{font-size:13px;padding:8px 16px}.deadline-stats-modal-content .ant-tabs-tab-active{font-weight:600}.deadline-stats-modal-content .ant-card-head-title{font-size:14px;font-weight:600}.deadline-stats-modal-content .ant-statistic-content-value{font-weight:700}.deadline-stats-modal-content .anticon{font-size:14px}.deadline-stats-modal-content .ant-table-row-selected{background-color:#e6f7ff}.deadline-stats-modal-content .ant-table-row-selected:hover{background-color:#bae7ff!important}.deadline-stats-modal-content::-webkit-scrollbar{width:6px}.deadline-stats-modal-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.deadline-stats-modal-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.deadline-stats-modal-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.draggable-modal .overdue-stats-modal-content{height:calc(100% - 60px);overflow-y:auto;padding:12px}.project-overdue-stats-modal .ant-modal{max-width:95vw!important;margin:0 auto}.project-overdue-stats-modal .ant-modal-content{max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.project-overdue-stats-modal .ant-modal-body{flex:1;overflow-y:auto;padding:16px!important}.overdue-stats-modal-content{height:100%;display:flex;flex-direction:column;overflow-x:hidden}.overdue-stats-modal-content .ant-spin-container{height:100%;display:flex;flex-direction:column}.overdue-stats-modal-content .ant-tabs{flex:1;display:flex;flex-direction:column}.overdue-stats-modal-content .ant-tabs-content-holder{flex:1;overflow-y:auto}.overdue-stats-modal-content .ant-tabs-tabpane{height:100%;overflow-y:auto;padding-right:8px}.overdue-stats-modal-content .ant-table{font-size:12px}.overdue-stats-modal-content .ant-table-thead>tr>th{padding:8px 6px;font-size:11px;font-weight:600;background:#fafafa}.overdue-stats-modal-content .ant-table-tbody>tr>td{padding:6px;font-size:11px}.overdue-stats-modal-content .ant-table-tbody>tr:hover>td{background:#f5f5f5}.overdue-stats-modal-content .ant-statistic{text-align:center}.overdue-stats-modal-content .ant-statistic-title{font-size:12px;margin-bottom:4px}.overdue-stats-modal-content .ant-statistic-content{font-size:18px}.overdue-stats-modal-content .ant-progress{margin:0}.overdue-stats-modal-content .ant-progress-text{font-size:11px}.overdue-stats-modal-content .ant-tag{margin:0;font-size:11px;padding:2px 6px;border-radius:4px}.overdue-stats-chart-container{height:300px;width:100%;margin:16px 0}.project-overdue-stats-modal .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease}.project-overdue-stats-modal .ant-card:hover{box-shadow:0 4px 12px #00000026}.project-overdue-stats-modal .ant-row,.project-overdue-stats-modal .ant-col{overflow-x:hidden}.overdue-days-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.overdue-days-indicator.severe{background-color:#f5222d}.overdue-days-indicator.moderate{background-color:#faad14}.overdue-days-indicator.mild{background-color:#fa8c16}.overdue-days{font-weight:700;display:inline-flex;align-items:center;justify-content:center;min-width:50px;text-align:center}.overdue-days.severe{color:#f5222d}.overdue-days.moderate{color:#faad14}.overdue-days.mild{color:#fa8c16}@media (max-width: 1200px){.overdue-stats-modal-content .ant-col-6{flex:0 0 50%;max-width:50%}}@media (max-width: 768px){.overdue-stats-modal-content .ant-col-6{flex:0 0 100%;max-width:100%}.overdue-stats-modal-content .ant-table{font-size:10px}.overdue-stats-modal-content .ant-table-thead>tr>th,.overdue-stats-modal-content .ant-table-tbody>tr>td{padding:4px}}.overdue-stats-modal-content .ant-spin-container{min-height:200px}.overdue-stats-modal-content .ant-empty{margin:40px 0}.overdue-stats-modal-content .ant-table-thead>tr>th{text-align:center!important;vertical-align:middle!important;padding:10px 12px!important;height:auto!important;line-height:1.4!important}.overdue-stats-modal-content .ant-table-tbody>tr>td{text-align:center!important;vertical-align:middle!important;padding:10px 12px!important;height:auto!important;line-height:1.4!important}.overdue-stats-modal-content .ant-table-thead>tr>th:first-child,.overdue-stats-modal-content .ant-table-tbody>tr>td:first-child{text-align:left!important}.overdue-stats-modal-content .ant-table-tbody>tr>td[data-key=overdue_days]{padding:8px 12px!important}.overdue-stats-modal-content .ant-table-tbody>tr>td .ant-progress{margin:0 auto;display:block}.overdue-stats-modal-content .ant-tag{margin:0;display:inline-block;font-size:12px;padding:2px 6px;line-height:1.2}.overdue-stats-modal-content .ant-table{font-size:13px}.overdue-stats-modal-content .ant-table-thead>tr>th{font-size:13px;font-weight:600}.overdue-stats-modal-content .ant-table-tbody>tr>td{font-size:13px}.overdue-stats-modal-content .ant-btn{border-radius:6px;font-size:12px;height:28px;padding:0 12px}.overdue-stats-modal-content .ant-divider{margin:12px 0}.overdue-stats-modal-content .ant-tooltip{font-size:12px}.overdue-stats-modal-content .ant-tabs-tab{font-size:13px;padding:8px 16px}.overdue-stats-modal-content .ant-tabs-tab-active{font-weight:600}.overdue-stats-modal-content .ant-card-head-title{font-size:14px;font-weight:600}.overdue-stats-modal-content .ant-statistic-content-value{font-weight:700}.overdue-stats-modal-content .anticon{font-size:14px}.overdue-stats-modal-content .ant-table-row-selected{background-color:#e6f7ff}.overdue-stats-modal-content .ant-table-row-selected:hover{background-color:#bae7ff!important}.overdue-stats-modal-content::-webkit-scrollbar{width:6px}.overdue-stats-modal-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.overdue-stats-modal-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.overdue-stats-modal-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out;padding-top:0}.modal{background:#fff;border-radius:16px;box-shadow:0 25px 50px #0000004d,0 5px 15px #0000001a;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;animation:slideIn .4s cubic-bezier(.175,.885,.32,1.275);border:1px solid rgba(255,255,255,.1);overflow:hidden}@keyframes slideIn{0%{transform:translateY(-30px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-header{padding:24px 32px;background:linear-gradient(135deg,#30c9f3,#2ecc71);display:flex;align-items:center;justify-content:space-between;position:relative;box-shadow:0 2px 10px #0000001a}.modal-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent)}.modal-header h2{margin:0;font-size:1.6rem;font-weight:600;color:#fff!important;letter-spacing:-.5px;text-shadow:0 1px 2px rgba(0,0,0,.1)}.new-project-title{color:#fff!important}.modal-close{background:#fff3;border:none;font-size:22px;color:#fff;cursor:pointer;padding:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.modal-close:hover{background:#ffffff4d;transform:rotate(90deg);box-shadow:0 0 10px #ffffff4d}.modal-content{padding:32px;overflow-y:auto;background:#fff}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.modal-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.modal-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.modal{width:95%;margin:20px;border-radius:16px}.modal-header{padding:20px 24px}.modal-header h2{font-size:1.3rem}.modal-content{padding:24px}.modal-close{width:32px;height:32px;font-size:18px}}.modal.modal-wide{max-width:900px}.project-list-page{padding:20px 32px;background:transparent;min-height:calc(100vh - 60px);border-radius:0;box-shadow:none}.content-container{display:flex;flex-direction:column;min-height:calc(100vh - 100px);gap:0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:0;text-align:left}.page-header h1{font-size:1.8rem;font-weight:700;color:#2c3e50;margin:0;position:relative;display:inline-block;text-align:left;padding-bottom:1.2rem}.page-header h1:after{content:"";position:absolute;bottom:0;left:0;transform:none;width:80px;height:4px;background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:9999px}.header-add-button{background:linear-gradient(90deg,#3498db,#2ecc71);color:#fff;border-radius:8px;font-weight:600;padding:10px 20px;box-shadow:0 4px 15px #2ecc7133;transition:all .3s ease}.header-add-button:hover{background:linear-gradient(90deg,#2980b9,#27ae60);transform:translateY(-2px);box-shadow:0 6px 20px #2ecc714d}.header-actions{display:flex;gap:16px}.button-like-link{text-decoration:none}.project-list{margin-top:15px;flex:1;display:flex;flex-direction:column;overflow-x:auto;background:transparent;border:none;box-shadow:none}.data-grid{width:100%;border-collapse:collapse;margin-bottom:0;white-space:nowrap;min-width:1150px;background:#fff;border-radius:12px;box-shadow:0 6px 20px #00000014;overflow:hidden;table-layout:fixed;flex:1}.data-grid th{background-color:#f8f9fa;padding:14px 20px;text-align:center;font-weight:600;color:#2c3e50;border-bottom:1px solid #e9ecef;position:relative}.data-grid td{padding:14px 20px;border-bottom:1px solid #e9ecef;color:#3a3a3a;text-align:center;position:relative}.data-grid .col-index{width:50px;min-width:50px}.data-grid .col-name{width:200px;min-width:200px;text-align:center}.data-grid .col-short-name{width:100px;min-width:100px;text-align:center}.data-grid .col-customer{width:160px;min-width:160px;text-align:center}.data-grid td.col-name,.data-grid td.col-short-name,.data-grid td.col-customer,.data-grid td.col-manager{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:center;padding:16px 20px}.data-grid .col-manager{width:100px;min-width:100px;text-align:center}.data-grid .col-date{width:90px;min-width:90px}.data-grid .col-effort{width:110px;min-width:110px;text-align:center}.data-grid .col-status{width:90px;min-width:90px}.data-grid .col-progress{width:130px;min-width:130px;text-align:center}.data-grid th.col-progress,.data-grid td.col-progress{padding:14px 18px}.data-grid .col-actions{width:120px;min-width:120px}.data-grid tr:last-child td{border-bottom:none}.data-grid tr:hover{background-color:#f8f9fc}.data-grid tr.project-row.clickable{transition:all .2s ease}.data-grid tr.project-row.clickable:hover{background-color:#e8f4fd;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.data-grid tr.project-row.clickable:active{transform:translateY(0);box-shadow:0 1px 4px #0000001a}.status-badge{display:inline-block;padding:6px 12px;border-radius:30px;font-size:.85rem;font-weight:500}.status-badge.进行中{background-color:#1890ff1a;color:#1890ff}.status-badge.已完成{background-color:#52c41a1a;color:#52c41a}.status-badge.暂停{background-color:#fa8c161a;color:#fa8c16}.status-badge.已关闭{background-color:#ef444414;color:#dc2626}.actions{display:flex;gap:10px;justify-content:center}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:8px;transition:all .2s ease}.icon-btn:hover{background-color:#f0f0f0}.actions button{padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s ease;white-space:nowrap;width:auto;min-width:80px;margin:0 2px}.actions a{display:inline-flex}.project-list .actions a,.project-list .actions button{min-width:auto;width:auto}.loading,.error-message{text-align:center;padding:40px;background:#fff;border-radius:12px;box-shadow:0 6px 20px #00000014;margin:30px auto;width:100%;max-width:1200px}.error-message{background-color:#ef44440d;color:#ef4444;border:1px solid rgba(239,68,68,.1);border-radius:12px}.empty-message{text-align:center!important;padding:80px!important;color:#6c757d;background:#fff}.empty-message .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-message .empty-state i{font-size:48px;color:#bdc3c7;margin-bottom:16px}.empty-message .empty-state span{font-size:14px;color:#7f8c8d}.pagination-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 0;margin-top:20px}.pagination-btn{background-color:#fff;border:1px solid #e9ecef;padding:8px 16px;border-radius:8px;font-weight:500;color:#3498db;transition:all .2s ease}.pagination-btn:disabled{background-color:#f8f9fa;color:#adb5bd;cursor:not-allowed;border-color:#e9ecef}.pagination-btn:hover:not(:disabled){background-color:#f8f9fa;border-color:#3498db}.pagination-info{font-size:14px;color:#6c757d}.project-filter-card{background:#f8f9fa;padding:12px 20px;border-radius:12px;margin-bottom:15px;border:1px solid #e9ecef;box-shadow:none}.filter-row{display:flex;align-items:center;gap:16px;flex-wrap:nowrap;width:100%;overflow-x:auto;padding-bottom:8px;position:relative}.filter-item{display:flex;align-items:center;white-space:nowrap}.filter-row::-webkit-scrollbar{height:6px}.filter-row::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.filter-row::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.filter-row::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.filter-item.new-project-btn-container,.filter-item.export-btn-container{flex:0 0 auto;min-width:120px}.filter-item.reset-btn-container{flex:0 0 auto}.filter-item:not(.new-project-btn-container):not(.export-btn-container):not(.reset-btn-container){flex:0 0 auto;min-width:160px}.filter-item:nth-child(3){flex:0 0 auto;min-width:160px;max-width:200px}.filter-item:has(select[style*=marginRight]){display:flex;align-items:center;gap:8px}.filter-label{font-size:14px;font-weight:500;color:#2c3e50;margin-right:8px;flex-shrink:0;min-width:85px;white-space:nowrap}.filter-item .full-width{width:100%}.filter-select{padding:8px 12px;border:1px solid #e9ecef;border-radius:8px;background-color:#fff;font-size:14px;color:#3a3a3a;height:36px;flex:1;min-width:100px}.reset-filter-btn{padding:8px 16px;background:#f8f9fa;color:#6c757d;border:1px solid #e9ecef;border-radius:8px;font-weight:500;transition:all .2s ease;height:36px}.reset-filter-btn:hover{background:#e9ecef;color:#495057}.filter-item .header-add-button{height:36px;padding:8px 16px;display:flex;align-items:center;justify-content:center}.filter-item .export-button{height:36px;padding:8px 16px;display:flex;align-items:center;justify-content:center;font-size:14px;border-radius:6px;border:1px solid #6c757d;background:#fff;color:#6c757d;cursor:pointer;transition:all .2s ease;font-weight:500}.filter-item .export-button:hover:not(:disabled){background:#6c757d;color:#fff;border-color:#6c757d}.filter-item .export-button:disabled{background:#f8f9fa;color:#adb5bd;border-color:#dee2e6;cursor:not-allowed}.no-results-message{text-align:center;padding:80px 40px;background:#fff;border-radius:12px;box-shadow:0 6px 20px #0000000d;color:#6c757d;margin:20px auto;display:flex;justify-content:center;align-items:center;width:100%;min-height:200px}.empty-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.empty-icon{margin-bottom:16px}.empty-icon i{font-size:48px;color:#bdc3c7}.empty-text{color:#7f8c8d;font-size:16px;font-weight:400}.icon-document{display:inline-block;width:48px;height:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23bdc3c7' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm-1 1.5L18.5 9H13V3.5zM17 21H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5v7h7v10a1 1 0 0 1-1 1zm-2-8H9v-1h6v1zm0 3H9v-1h6v1z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;color:#ccc}.modules-btn{background:linear-gradient(90deg,#9b59b6,#8e44ad);color:#fff}.modules-btn:hover{background:linear-gradient(90deg,#8e44ad,#9b59b6)}.dashboard-container{margin-bottom:0;background:transparent;border-radius:0;box-shadow:none;width:100%;overflow-x:auto;padding-bottom:0}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:0}.stat-card{background:#fff;border-radius:10px;box-shadow:0 4px 12px #0000000d;padding:15px;margin-bottom:15px}.card-title{display:flex;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #eee}.card-icon{margin-right:10px;font-size:20px;color:#3498db}.card-title h3{margin:0;font-size:16px;font-weight:600;color:#2c3e50}.stat-content{display:flex;flex-direction:column;gap:10px}.stat-row{display:flex;justify-content:space-between;gap:10px}.stat-item{display:flex;flex-direction:column;flex:1}.stat-label{font-size:13px;color:#7f8c8d;margin-bottom:4px}.stat-value{font-size:15px;font-weight:600;color:#2c3e50}.time-range{font-size:12px;color:#95a5a6;text-align:center;margin-bottom:5px}.loading-placeholder{display:inline-block;width:30px;height:14px;background-color:#eee;border-radius:3px;animation:pulse 1.5s infinite ease-in-out}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@media (max-width: 1600px){.dashboard-container{overflow-x:auto;padding-bottom:10px}.dashboard-container::-webkit-scrollbar{height:6px}.dashboard-container::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}}.project-list-section{flex:1;background:#fffffff2;border-radius:16px 16px 0 0;box-shadow:0 10px 30px #0000000d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px 30px;margin-top:0;display:flex;flex-direction:column}.section-title{font-size:1.5rem;font-weight:700;color:#2c3e50;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e9ecef;position:relative}.section-title:after{content:"";position:absolute;bottom:-1px;left:0;width:60px;height:3px;background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:3px}.filter-actions-right{display:flex;align-items:center;margin-left:auto;flex-shrink:0}.project-tabs{display:flex;gap:8px;background:#f8f9fa;padding:4px;border-radius:8px;border:1px solid #e9ecef;flex-shrink:0}.project-tab{padding:8px 20px;border:none;background:transparent;color:#6c757d;font-size:14px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.project-tab:hover{background:#3498db1a;color:#3498db}.project-tab.active{background:linear-gradient(90deg,#3498db,#2ecc71);color:#fff;box-shadow:0 2px 8px #3498db4d}.project-tab.active:hover{background:linear-gradient(90deg,#2980b9,#27ae60)}@media (max-width: 1024px){.filter-row{flex-wrap:nowrap;gap:16px;overflow-x:auto}.filter-item.new-project-btn-container,.filter-item.export-btn-container{flex:0 0 auto}.filter-item:not(.new-project-btn-container):not(.export-btn-container):not(.reset-btn-container){flex:0 0 auto;min-width:140px}.filter-item:nth-child(3){flex:0 0 auto;max-width:160px}.filter-item.reset-btn-container{flex:0 0 auto}}@media (max-width: 768px){.project-list-page{padding:20px}.page-header{flex-direction:column;gap:16px;align-items:flex-start}.header-actions{width:100%}.filter-actions-right{flex-wrap:wrap;margin-left:0;width:100%;justify-content:flex-start;margin-top:12px}.project-tabs{width:100%;justify-content:flex-start}.project-tab{flex:1;min-width:120px}.project-filter-card{padding:12px 16px}.filter-row{flex-direction:row;flex-wrap:nowrap;gap:12px;align-items:center;overflow-x:auto;padding-bottom:8px}.filter-item{flex:0 0 auto;width:auto}.filter-item:not(.new-project-btn-container):not(.export-btn-container):not(.reset-btn-container){display:flex;flex:0 0 auto;min-width:120px}.filter-label{min-width:60px;font-size:13px}.filter-select{min-width:100px;font-size:13px}.project-list{margin-top:20px}.data-grid th,.data-grid td{padding:12px 15px}.data-grid th.col-progress,.data-grid td.col-progress{padding:12px 13px}.project-list-section{padding:20px;border-radius:12px}}@media (max-width: 480px){.project-list-page{padding:16px}.page-header h1{font-size:1.5rem}.filter-row{gap:8px;padding-bottom:6px}.filter-item:not(.new-project-btn-container):not(.export-btn-container):not(.reset-btn-container){min-width:100px}.filter-label{min-width:50px;font-size:12px;margin-right:6px}.filter-select{min-width:80px;font-size:12px;padding:6px 8px;height:32px}.data-grid th:nth-child(3),.data-grid td:nth-child(3),.data-grid th:nth-child(4),.data-grid td:nth-child(4){display:none}.status-badge{padding:4px 8px;font-size:.75rem}.project-list-section{padding:16px}}.project-list-page .data-grid .col-progress .progress-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.project-list-page .data-grid .col-progress .progress-bar-container{position:relative;flex:1;height:14px;background-color:var(--color-bg-dark, #f3f4f6);border-radius:var(--radius-full, 9999px);overflow:hidden}.project-list-page .data-grid .col-progress .progress-bar-fill{height:100%;border-radius:var(--radius-full, 9999px);transition:width var(--transition-normal, .4s) ease}.project-list-page .data-grid .col-progress .progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:600;color:#1e3a8a;text-shadow:0 1px 1px rgba(255,255,255,.8);z-index:1;pointer-events:none;white-space:nowrap}@media (max-width: 768px){.project-list-page .data-grid .col-progress .progress-bar-container{height:12px}.project-list-page .data-grid .col-progress .progress-text{font-size:10px}}.project-name-container{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;line-height:1.2;white-space:nowrap;flex-shrink:0}.role-badge.manager{background-color:#e8f5e8;color:#2e7d32;border:1px solid #c8e6c9}.role-badge.member{background-color:#e3f2fd;color:#1565c0;border:1px solid #bbdefb}.role-badge.department{background-color:#fff3e0;color:#ef6c00;border:1px solid #ffcc02}.project-name-container .text-ellipsis{flex:1;min-width:0}:root{--ranking-primary: #1890ff;--ranking-success: #52c41a;--ranking-warning: #faad14;--ranking-error: #ff4d4f;--ranking-info: #722ed1;--ranking-neutral: #595959;--ranking-text: #262626;--ranking-text-secondary: #8c8c8c;--ranking-border: #d9d9d9;--ranking-bg: #fafafa}.efficiency-ranking{background:#fff;border-radius:0;padding:24px;box-shadow:none;border:none;height:100vh;display:flex;flex-direction:column;min-height:100vh;max-height:100vh;overflow:hidden}.efficiency-ranking.full-page{height:calc(100vh - 20px);margin:10px;max-width:none;min-height:calc(100vh - 20px);max-height:calc(100vh - 20px);overflow:hidden}.efficiency-ranking.dashboard-ranking{height:calc(100vh - 200px);min-height:calc(100vh - 200px);max-height:calc(100vh - 200px);overflow:hidden}.ranking-header{margin-bottom:24px}.header-controls{display:flex;align-items:center;justify-content:space-between;width:100%;gap:24px}.controls-left{display:flex;align-items:center;gap:16px;flex:1}.filter-results{display:flex;align-items:center;flex-shrink:0}.result-stats{display:flex;align-items:center;gap:16px;font-size:14px;color:#595959}.result-count{font-weight:600;color:#262626;background:#f0f9ff;padding:6px 12px;border-radius:16px;border:1px solid #e0f2fe}.search-info{color:#1890ff;font-weight:500;background:#e6f7ff;padding:4px 8px;border-radius:12px;font-size:13px}.period-info{color:#8c8c8c;font-size:13px;font-weight:500}.search-container{position:relative}.search-input{width:240px;height:32px;padding:0 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;background:#fff;transition:border-color .2s}.search-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.search-input::placeholder{color:#bfbfbf}.period-selector{display:flex;background:#fff;border-radius:6px;border:1px solid #d9d9d9;overflow:hidden}.period-btn{padding:6px 16px;border:none;background:#fff;color:#595959;font-size:14px;cursor:pointer;transition:all .2s;border-right:1px solid #d9d9d9}.period-btn:last-child{border-right:none}.period-btn:hover{background:#f5f5f5}.period-btn.active{background:#1890ff;color:#fff}.filter-toggle-btn{background:none;border:none;font-size:16px;cursor:pointer;padding:8px;border-radius:8px;color:#666;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.filter-toggle-btn:hover{background:#e6f7ff;color:#1890ff;transform:scale(1.1)}.filter-toggle-btn:active{transform:scale(.95)}.section-title{margin:0;font-size:18px;font-weight:700;color:#1a1a1a;display:flex;align-items:center;gap:12px;letter-spacing:-.02em}.refresh-btn{background:none;border:none;font-size:16px;cursor:pointer;padding:8px;border-radius:8px;color:#666;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.refresh-btn:hover{background:#e6f7ff;color:#1890ff;transform:rotate(180deg)}.refresh-btn:active{transform:rotate(180deg) scale(.95)}.help-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:linear-gradient(135deg,#1890ff,#40a9ff);color:#fff;border-radius:50%;font-size:12px;cursor:help;font-weight:700;transition:all .3s ease;box-shadow:0 2px 4px #1890ff4d}.help-icon:hover{transform:scale(1.1);box-shadow:0 4px 8px #1890ff66}.help-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);background:#1a1a1a;color:#fff;padding:16px;border-radius:12px;font-size:13px;line-height:1.5;white-space:nowrap;z-index:1000;opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);margin-top:12px;min-width:320px;max-width:400px;white-space:normal;box-shadow:0 8px 24px #0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.help-icon:hover .help-tooltip{opacity:1;visibility:visible}.help-tooltip:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #262626}.help-tooltip div{margin-bottom:4px}.help-tooltip div:last-child{margin-bottom:0}.period-selector{display:flex;gap:4px;background:#f5f5f5;border-radius:6px;padding:2px}.period-btn{padding:6px 12px;border:none;background:transparent;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease;color:#666}.period-btn:hover{background:#e6f7ff;color:#1890ff}.period-btn.active{background:var(--ranking-info);color:#fff;font-weight:500;box-shadow:0 2px 8px #722ed14d}.ranking-filters{background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:8px;padding:12px;margin-bottom:8px;border:1px solid rgba(0,0,0,.1);display:flex;gap:20px;flex-wrap:wrap;align-items:center;animation:slideDown .3s ease-out;box-shadow:0 2px 8px #0000001a;flex-shrink:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:13px;font-weight:500;color:#666;white-space:nowrap}.filter-select{padding:6px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;background:#fff;color:#262626;cursor:pointer;transition:all .2s ease;min-width:120px}.filter-select:hover{border-color:var(--ranking-info)}.filter-select:focus{outline:none;border-color:var(--ranking-info);box-shadow:0 0 0 2px #722ed133}.search-input{padding:6px 12px;border:1px solid var(--ranking-border);border-radius:6px;background:#fff;font-size:13px;color:var(--ranking-text);min-width:200px;transition:all .2s ease}.search-input:hover{border-color:var(--ranking-info)}.search-input:focus{outline:none;border-color:var(--ranking-info);box-shadow:0 0 0 2px #722ed11a}.search-input::placeholder{color:var(--ranking-text-secondary);font-style:italic}.ranking-content{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow:hidden;height:100%}.ranking-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px;padding:8px;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:6px;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #0000000d}.stat-card{background:#fff;border-radius:8px;padding:20px;text-align:center;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000f;transition:all .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.stat-number{font-size:32px;font-weight:700;color:#262626;margin-bottom:8px;line-height:1}.stat-border{position:absolute;left:0;top:0;width:4px;height:100%}.stat-border.excellent{background:#52c41a}.stat-border.good{background:#1890ff}.stat-border.efficiency{background:#faad14}.stat-border.active{background:#722ed1}.ranking-table-container{background:#fff;border-radius:8px;overflow:auto;box-shadow:0 2px 8px #0000000f;margin-top:16px;max-width:100%;flex:1;height:100%;min-height:0}.ranking-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:1070px;height:auto}.ranking-table thead{background:#fafafa}.ranking-table th{padding:20px 18px;text-align:left;font-weight:600;color:#262626;font-size:16px;border-bottom:2px solid #e8e8e8;letter-spacing:.5px}.ranking-table th.col-rank{width:90px;text-align:center;min-width:90px;padding:20px 16px}.ranking-table th.col-employee{width:200px;min-width:200px;text-align:left;padding:20px 16px}.ranking-table th.col-tasks,.ranking-table th.col-growth{width:110px;text-align:center;min-width:110px;padding:20px 12px}.ranking-table th.col-efficiency{width:160px;min-width:160px;text-align:left;padding:20px 16px}.ranking-table th.col-explanation{width:auto;min-width:400px;text-align:left;padding:20px}.ranking-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background-color .2s}.ranking-table tbody tr:hover{background:#f5f5f5}.ranking-table td{padding:22px 18px;vertical-align:middle;font-size:14px;line-height:1.5}.ranking-table td.col-rank{text-align:center;width:90px;min-width:90px;padding:22px 16px;vertical-align:middle}.ranking-table td.col-employee{width:200px;min-width:200px;text-align:left;padding:22px 16px;vertical-align:middle;white-space:nowrap;overflow:hidden}.ranking-table td.col-tasks,.ranking-table td.col-growth{text-align:center;width:110px;min-width:110px;padding:22px 12px;vertical-align:middle}.ranking-table td.col-efficiency{width:160px;min-width:160px;text-align:left;padding:22px 16px;vertical-align:middle}.ranking-table td.col-explanation{width:auto;min-width:400px;text-align:left;padding:22px 20px;vertical-align:top}.rank-number{font-size:20px;font-weight:700;display:inline-block;text-align:center;line-height:1.2}.rank-number.rank-gold{color:#d4af37}.rank-number.rank-silver{color:silver}.rank-number.rank-bronze{color:#cd7f32}.rank-number.rank-gray{color:#8c8c8c}.employee-info{display:flex;align-items:center;gap:12px;width:100%;white-space:nowrap;overflow:hidden;min-height:50px}.employee-avatar{width:40px;height:40px;border-radius:50%;background:#8c8c8c;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0}.employee-avatar.avatar-gold{background:#d4af37}.employee-avatar.avatar-silver{background:silver}.employee-avatar.avatar-bronze{background:#cd7f32}.employee-avatar.avatar-gray{background:#8c8c8c}.employee-details{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.employee-name{font-weight:600;color:#262626;margin-bottom:2px;font-size:14px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.employee-level{display:flex;align-items:flex-start;white-space:nowrap;margin-top:2px}.level-badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;line-height:1.2}.level-badge.优秀,.level-badge.excellent,.level-badge.良好,.level-badge.good,.level-badge.待改进{background:#fff2e8;color:#fa8c16;border:1px solid #ffbb96}.level-badge.需关注{background:#fff1f0;color:#ff4d4f;border:1px solid #ffadd2}.level-badge.一般,.level-badge.average{background:#fffbe6;color:#faad14;border:1px solid #ffe58f}.level-badge.待改进,.level-badge.needsimprovement{background:#fff2e8;color:#fa8c16;border:1px solid #ffbb96}.level-badge.需要关注,.level-badge.needsattention{background:#fff1f0;color:#ff4d4f;border:1px solid #ffadd2}.task-stats{font-weight:600;color:#262626}.growth-indicator{display:flex;align-items:center;justify-content:center;gap:4px}.growth-arrow{font-size:12px}.growth-value.positive{color:#52c41a;font-weight:600}.growth-value.negative{color:#ff4d4f;font-weight:600}.no-data{text-align:center!important;padding:40px;color:#8c8c8c;font-size:14px}.ranking-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f}.date-range{font-size:14px;color:#595959;font-weight:500}.ranking-loading,.ranking-error{text-align:center;padding:40px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;margin-top:16px}.ranking-loading{color:#1890ff}.efficiency-display{display:flex;align-items:center;gap:12px}.efficiency-progress-bar{flex:1;height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden}.efficiency-fill{height:100%;background:linear-gradient(90deg,#1890ff,#52c41a);border-radius:4px;transition:width .3s ease}.efficiency-percentage{font-weight:600;color:#262626;min-width:50px;text-align:right}.stat-icon{font-size:18px;opacity:.7;margin-bottom:2px}.stat-info{text-align:center;width:100%}.stat-value{font-size:18px;font-weight:700;color:var(--ranking-text);line-height:1.1;margin-bottom:1px}.stat-label{font-size:11px;color:var(--ranking-text-secondary);font-weight:500;letter-spacing:.2px}.ranking-meta{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#fffc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:4px;font-size:11px;color:var(--ranking-text-secondary);border:1px solid rgba(0,0,0,.06);flex-shrink:0;margin-bottom:4px}.meta-controls{display:flex;gap:8px;align-items:center}.toggle-stats-btn{padding:4px 8px;background:#722ed11a;color:var(--ranking-info);border:1px solid rgba(114,46,209,.2);border-radius:4px;font-size:11px;cursor:pointer;transition:all .2s ease}.toggle-stats-btn:hover{background:#722ed133;transform:translateY(-1px)}.toggle-stats-btn.active{background:var(--ranking-info);color:#fff;box-shadow:0 2px 4px #722ed14d}.date-range,.active-users{display:flex;align-items:center;gap:4px}.ranking-list{display:flex;flex-direction:column;gap:4px;padding:4px 2px;flex:1;overflow-y:scroll!important;overflow-x:hidden!important;max-height:calc(100vh - 200px)!important;min-height:300px!important;scrollbar-width:auto!important;scrollbar-color:var(--ranking-neutral) #f0f0f0!important;border:1px solid rgba(0,0,0,.08);border-radius:4px;background:#f8fafc80}.ranking-list::-webkit-scrollbar{width:8px!important;display:block!important;-webkit-appearance:none!important}.ranking-list::-webkit-scrollbar-track{background:#f0f0f0cc!important;border-radius:4px!important;margin:2px!important}.ranking-list::-webkit-scrollbar-thumb{background:var(--ranking-neutral)!important;border-radius:4px!important;border:1px solid rgba(240,240,240,.5)!important;transition:background .2s ease;min-height:20px!important}.ranking-list::-webkit-scrollbar-thumb:hover{background:var(--ranking-info)!important}.ranking-list::-webkit-scrollbar-corner{background:transparent!important}.ranking-list{scrollbar-gutter:stable!important}.scroll-spacer{height:1px!important;opacity:0!important;pointer-events:none!important}.efficiency-ranking.full-page .ranking-list{max-height:calc(100vh - 120px);gap:4px}.efficiency-ranking.dashboard-ranking .ranking-list{max-height:calc(100vh - 250px)!important;min-height:400px!important;overflow-y:scroll!important;overflow-x:hidden!important;scrollbar-width:auto!important;scrollbar-color:#1890ff #f0f0f0!important}.ranking-item{will-change:transform;contain:layout style paint}.ranking-item{position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fffffff2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;overflow:hidden;min-height:44px;border:1px solid rgba(0,0,0,.06);margin-bottom:0;box-shadow:0 1px 2px #0000000a}.ranking-item:hover{background:#f8fafcfa;transform:translateY(-1px);box-shadow:0 4px 12px #00000014;border-color:#722ed133;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ranking-item:active{transform:translateY(0);box-shadow:0 2px 6px #0000000f}.rank-badge{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--ranking-neutral);color:#fff;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0;box-shadow:0 2px 6px #5959594d;transition:all .3s ease}.rank-badge.rank-1{background:linear-gradient(135deg,gold,#ffed4e);color:#8b4513;box-shadow:0 2px 8px #ffd70066}.rank-badge.rank-2{background:linear-gradient(135deg,silver,#e8e8e8);color:#4a4a4a;box-shadow:0 2px 8px #c0c0c066}.rank-badge.rank-3{background:linear-gradient(135deg,#cd7f32,#daa520);color:#fff;box-shadow:0 2px 8px #cd7f3266}.rank-badge.top-10{background:var(--ranking-success);box-shadow:0 2px 6px #52c41a4d}.ranking-item:hover .rank-badge{transform:scale(1.1);box-shadow:0 4px 12px #1890ff66}.ranking-item:first-child .rank-badge{background:linear-gradient(135deg,gold,#ffed4e);color:#8b4513;box-shadow:0 4px 16px #ffd70066;border:2px solid #fff}.ranking-item:nth-child(2) .rank-badge{background:linear-gradient(135deg,silver,#e8e8e8);color:#666;box-shadow:0 4px 16px #c0c0c066;border:2px solid #fff}.ranking-item:nth-child(3) .rank-badge{background:linear-gradient(135deg,#cd7f32,#daa520);color:#fff;box-shadow:0 4px 16px #cd7f3266;border:2px solid #fff}.rank-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden;padding-right:8px}.rank-name{font-weight:600;color:var(--ranking-text);display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.efficiency-level{font-size:10px;font-weight:600;padding:2px 6px;border-radius:12px;border:none;cursor:help;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;text-transform:uppercase;letter-spacing:.3px;box-shadow:0 1px 2px #00000014}.efficiency-level:hover{transform:scale(1.08) translateY(-1px);box-shadow:0 4px 8px #00000026}.rank-metrics{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--ranking-text-secondary);flex-wrap:wrap;margin-top:1px}.rank-metrics span{display:flex;align-items:center;gap:2px;padding:1px 3px;background:#00000008;border-radius:3px;font-weight:500;transition:all .2s ease;white-space:nowrap}.rank-metrics span:hover{background:#722ed114;color:var(--ranking-info)}.rank-efficiency{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:60px;flex-shrink:0;padding-left:4px}.efficiency-score{font-weight:700;color:var(--ranking-neutral);font-size:18px;line-height:1.1;letter-spacing:-.02em;text-shadow:0 1px 2px rgba(89,89,89,.1);transition:color .3s ease}.efficiency-score.excellent{color:var(--ranking-success);text-shadow:0 1px 2px rgba(82,196,26,.2)}.efficiency-score.good{color:var(--ranking-primary);text-shadow:0 1px 2px rgba(24,144,255,.2)}.efficiency-score.average{color:var(--ranking-warning);text-shadow:0 1px 2px rgba(250,173,20,.2)}.efficiency-score.poor{color:var(--ranking-error);text-shadow:0 1px 2px rgba(255,77,79,.2)}.task-count{color:#666;font-size:15px;font-weight:500}.growth-indicator{display:flex;align-items:center;justify-content:center;gap:4px;height:24px;line-height:24px}.growth-arrow{font-size:14px;font-weight:700;line-height:1}.growth-arrow.positive{color:#52c41a}.growth-arrow.negative{color:#ff4d4f}.growth-value{font-size:14px;font-weight:600;line-height:1}.growth-value.positive{color:#52c41a}.growth-value.negative{color:#ff4d4f}.task-stats{display:flex;align-items:center;justify-content:center;height:24px;line-height:24px}.task-fraction{font-size:14px;font-weight:600;color:#262626;line-height:1}.explanation-content{font-size:13px;line-height:1.7;color:#595959;padding:8px 0}.explanation-text{display:block;font-size:13px;font-weight:400;line-height:1.7;color:#262626;text-align:justify;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.efficiency-progress{width:140px;height:8px;background:#00000014;border-radius:4px;overflow:hidden;margin-top:4px}.efficiency-bar{height:100%;border-radius:2px;transition:all .3s ease;position:relative}.efficiency-bar:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ranking-summary{display:flex;justify-content:space-around;padding:12px;background:#fff9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;margin-top:8px;border:1px solid rgba(0,0,0,.05)}.summary-item{display:flex;flex-direction:column;align-items:center;gap:4px}.summary-label{font-size:12px;color:#666}.summary-value{font-size:14px;font-weight:600;color:#1890ff}.pagination-controls{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px solid rgba(0,0,0,.1);margin-top:8px;flex-wrap:wrap;gap:8px;flex-shrink:0}.pagination-info{font-size:13px;color:#666;font-weight:500}.pagination-btn{padding:6px 12px;border:1px solid #d9d9d9;background:#fff;color:#666;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;min-width:60px}.pagination-btn:hover:not(:disabled){border-color:#1890ff;color:#1890ff;background:#f0f8ff}.pagination-btn:disabled{background:#f5f5f5;color:#bfbfbf;cursor:not-allowed;border-color:#e8e8e8}.pagination-current{padding:6px 12px;font-size:13px;font-weight:600;color:#1890ff;background:#f0f8ff;border-radius:6px;min-width:80px;text-align:center}.ranking-loading,.ranking-error,.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:#666;font-size:15px;gap:16px;border-radius:12px;background:#fff9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px dashed rgba(0,0,0,.1);min-height:200px;box-shadow:0 2px 8px #0000000d}.loading-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top:3px solid #1890ff;border-radius:50%;animation:spin 1s linear infinite;box-shadow:0 2px 8px #1890ff33}.retry-btn{padding:10px 20px;background:#1890ff;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #1890ff4d}.retry-btn:hover{background:#40a9ff;transform:translateY(-2px);box-shadow:0 4px 12px #1890ff66}.retry-btn:active{transform:translateY(0);box-shadow:0 2px 4px #1890ff4d}.ranking-error{color:#ff4d4f}.no-data{color:#999;text-align:center!important}.ranking-table .no-data{text-align:center!important;display:table-cell;vertical-align:middle}@media (max-width: 1024px){.efficiency-ranking{padding:0}.ranking-item{padding:10px;gap:10px;min-height:48px}.rank-badge{width:28px;height:28px;font-size:12px}.rank-metrics{gap:8px}.ranking-list{max-height:calc(100vh - 160px);gap:4px}.efficiency-ranking.dashboard-ranking .ranking-list{max-height:calc(100vh - 220px)}}@media (max-width: 768px){.efficiency-ranking{padding:12px;border-radius:8px}.ranking-header{flex-direction:column;align-items:stretch;gap:12px;padding-bottom:12px}.section-title{font-size:18px;justify-content:center}.ranking-table th{font-size:16px;padding:16px 12px}.ranking-table td{font-size:15px;padding:18px 12px}.rank-number{font-size:20px}.employee-name{font-size:16px}.efficiency-score{font-size:18px}.ranking-table th.col-explanation,.ranking-table td.col-explanation{width:350px;min-width:350px;padding:18px 16px}.explanation-text{font-size:12px;line-height:1.6}.header-controls{flex-direction:column;align-items:stretch;gap:16px}.filter-results{justify-content:center}.result-stats{flex-wrap:wrap;justify-content:center;gap:12px}.result-count,.search-info,.period-info{font-size:12px}.period-selector{justify-content:center}.ranking-filters{flex-direction:column;gap:12px;padding:12px}.filter-group{flex-direction:column;gap:4px;align-items:stretch}.filter-select{min-width:auto}.ranking-meta{flex-direction:column;gap:6px;text-align:center;padding:6px 8px}.ranking-item{padding:12px;gap:12px;min-height:64px;border-radius:8px}.rank-badge{width:28px;height:28px;font-size:12px}.rank-name{font-size:14px;gap:8px}.efficiency-level{font-size:10px;padding:2px 6px}.rank-metrics{flex-direction:column;gap:6px;align-items:flex-start;margin-top:2px}.rank-metrics span{font-size:11px;padding:1px 4px}.efficiency-score{font-size:16px}.efficiency-progress{width:50px;height:3px}.help-tooltip{min-width:280px;max-width:320px;font-size:12px;padding:12px}.pagination-controls{flex-direction:column;gap:8px;align-items:center}.pagination-buttons{gap:4px}.pagination-btn{padding:4px 8px;font-size:12px;min-width:50px}.pagination-current{padding:4px 8px;font-size:12px;min-width:60px}}@media (max-width: 480px){.efficiency-ranking{padding:8px}.ranking-header{padding-bottom:8px}.section-title{font-size:15px}.ranking-item{padding:10px;gap:10px;min-height:56px}.rank-badge{width:24px;height:24px;font-size:11px}.rank-name{font-size:13px}.efficiency-level{font-size:9px;padding:1px 4px}.rank-metrics span{font-size:10px}.efficiency-score{font-size:14px}.efficiency-progress{width:40px;height:2px}.help-tooltip{min-width:240px;max-width:280px;font-size:11px;padding:10px}.ranking-item{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ranking-item:active{transform:scale(.98)}.refresh-btn,.retry-btn{min-height:44px;min-width:44px}.help-icon{width:24px;height:24px;font-size:14px}}.department-management{padding:0;height:100%;display:flex;flex-direction:column}.department-header{position:absolute;top:0;right:0;z-index:10}.header-title{display:flex;flex-direction:column;gap:2px}.header-title h3{font-size:20px;font-weight:600;color:#1e293b;margin:0}.header-subtitle{font-size:14px;color:#64748b;margin:0}.btn-user-management{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#f1f5f9;color:#64748b;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-user-management:hover{background:#e2e8f0;color:#1e293b;border-color:#94a3b8}.btn-add-department{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #44c4f44d}.btn-add-department:hover{transform:translateY(-1px);box-shadow:0 4px 8px #44c4f466}.department-main-content{flex:1;display:flex;flex-direction:column;min-height:0}.add-department-form{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:20px;box-shadow:0 2px 8px #0000000a;flex-shrink:0}.form-header h4{font-size:16px;font-weight:600;color:#1e293b;margin:0}.btn-close{background:none;border:none;color:#64748b;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.btn-close:hover{background:#e2e8f0;color:#1e293b}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#44c4f4;box-shadow:0 0 0 3px #44c4f41a}.departments-list{flex:1;display:flex;flex-direction:column;min-height:0}.empty-state{text-align:center;padding:40px 20px;color:#64748b;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.departments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;flex:1;align-content:start}.department-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:18px;box-shadow:0 2px 8px #0000000a;transition:all .3s ease;height:fit-content}.department-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#d1d5db}.department-card-content{display:flex;justify-content:space-between;align-items:flex-start}.department-info{flex:1}.department-info h4{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 6px}.department-description{font-size:13px;color:#64748b;margin:0 0 10px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.department-meta{display:flex;flex-direction:column;gap:3px}.department-meta span{font-size:12px;color:#64748b}.manager{color:#44c4f4;font-weight:500}.department-actions{display:flex;gap:8px;margin-left:16px}.edit-department-form{width:100%}.edit-department-form .form-group{margin-bottom:12px}.edit-department-form .form-actions{margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0}.edit-department-form .btn-save,.edit-department-form .btn-cancel{padding:6px 12px;font-size:13px}.user-management-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px #0000000a;flex-shrink:0}.user-management-section .section-header{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.user-management-section .section-header h4{font-size:18px;font-weight:600;color:#1e293b;margin:0 0 4px}.user-management-section .section-header small{color:#64748b;font-size:14px}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-height:300px;overflow-y:auto}.user-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;transition:all .3s ease}.user-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f;border-color:#d1d5db}.user-info{margin-bottom:12px}.user-info h5{font-size:15px;font-weight:600;color:#1e293b;margin:0 0 3px}.user-email{font-size:13px;color:#64748b;margin:0 0 6px}.user-role{display:inline-block;padding:3px 6px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.role-admin{background:#fef3c7;color:#92400e}.role-user{background:#e0f2fe;color:#0369a1}.user-department{display:flex;flex-direction:column;gap:6px}.user-department label{font-size:13px;font-weight:500;color:#374151}.department-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;background:#fff;transition:border-color .2s ease}.department-select:focus{outline:none;border-color:#44c4f4;box-shadow:0 0 0 3px #44c4f41a}.current-department{font-size:12px;color:#44c4f4;font-weight:500}@media (max-width: 768px){.departments-grid,.users-grid{grid-template-columns:1fr}.department-header{flex-direction:column;align-items:flex-start;gap:12px}.header-actions{width:100%;justify-content:space-between}.department-card-content{flex-direction:column;gap:16px}.department-actions{margin-left:0;justify-content:flex-end}}.department-edit-form,.department-display{display:flex;flex-direction:column;gap:8px}.current-department-display{padding:6px 8px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;font-size:13px;color:#374151}.btn-edit-department{padding:4px 8px;background:#f8fafc;color:#475569;border:1px solid #e2e8f0;border-radius:4px;font-size:11px;cursor:pointer;display:flex;align-items:center;gap:4px;align-self:flex-start}.project-configuration{padding:0}.config-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.config-header h3{font-size:20px;font-weight:600;color:#1e293b;margin:0 0 4px}.config-subtitle{font-size:14px;color:#64748b;margin:0}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#64748b}.loading-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#44c4f4;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.section-header h4{font-size:18px;font-weight:600;color:#1e293b;margin:0}.btn-add{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #44c4f44d}.btn-add:hover{transform:translateY(-1px);box-shadow:0 4px 8px #44c4f466}.add-form{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;box-shadow:0 2px 8px #0000000a}.form-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc;border-radius:12px 12px 0 0}.form-header h5{font-size:16px;font-weight:600;color:#1e293b;margin:0}.form-header button{background:none;border:none;color:#64748b;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.form-header button:hover{background:#e2e8f0;color:#1e293b}.form-content{padding:20px}.form-group{margin-bottom:16px}.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#44c4f4;box-shadow:0 0 0 3px #44c4f41a}.form-group input[type=color]{width:60px;height:40px;padding:2px;cursor:pointer}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.btn-save{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-save:hover{transform:translateY(-1px);box-shadow:0 2px 6px #44c4f44d}.btn-cancel{padding:8px 16px;background:#f1f5f9;color:#64748b;border:1px solid #d1d5db;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-cancel:hover{background:#e2e8f0;color:#1e293b}.empty-state{text-align:center;padding:60px 20px;color:#64748b}.empty-icon{font-size:48px;color:#44c4f4;margin-bottom:16px;opacity:.6}.empty-state p{font-size:16px;font-weight:500;margin:0 0 8px;color:#1e293b}.empty-state small{font-size:14px;color:#64748b}.templates-grid,.statuses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.template-card,.status-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000a;transition:all .3s ease}.template-card:hover,.status-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#d1d5db}.template-card-content,.status-card-content{display:flex;justify-content:space-between;align-items:flex-start}.template-info,.status-info{flex:1}.template-info h5,.status-info h5{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 8px}.template-description,.status-description{font-size:14px;color:#64748b;margin:0 0 12px;line-height:1.4}.template-modules{margin-top:8px}.template-modules small{font-size:12px;color:#44c4f4;background:#f0f9ff;padding:4px 8px;border-radius:4px}.status-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.status-color{width:16px;height:16px;border-radius:50%;border:2px solid white;box-shadow:0 0 0 1px #0000001a}.template-actions,.status-actions{display:flex;gap:8px;margin-left:16px}.btn-edit,.btn-delete{padding:8px;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:14px}.btn-edit{background:#f0f9ff;color:#0284c7}.btn-edit:hover{background:#e0f2fe;color:#0369a1}.btn-delete{background:#fef2f2;color:#dc2626}.btn-delete:hover{background:#fee2e2;color:#b91c1c}.edit-form{width:100%}.edit-form .form-group{margin-bottom:12px}.edit-form .form-actions{margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0}.edit-form .btn-save,.edit-form .btn-cancel{padding:6px 12px;font-size:13px}.projects-section{margin-bottom:32px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px}.project-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000a;transition:all .3s ease}.project-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#d1d5db}.project-card-content{display:flex;flex-direction:column;gap:16px}.project-info h5{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 8px}.project-description{font-size:14px;color:#64748b;margin:0 0 12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-meta{display:flex;flex-direction:column;gap:4px}.project-meta span{font-size:13px;color:#64748b}.department-assignment{border-top:1px solid #e2e8f0;padding-top:16px}.current-department{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;color:#1e293b}.department-icon{color:#44c4f4}.department-select-form{display:flex;align-items:center;gap:8px}.department-select-form select{flex:1;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;transition:border-color .2s ease}.department-select-form select:focus{outline:none;border-color:#44c4f4;box-shadow:0 0 0 3px #44c4f41a}.btn-edit-department{padding:8px 16px;background:#f0f9ff;color:#0284c7;border:1px solid #e0f2fe;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-edit-department:hover{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}.department-stats{margin-top:32px}.department-stats h4{font-size:18px;font-weight:600;color:#1e293b;margin:0 0 20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;text-align:center;box-shadow:0 2px 8px #0000000a;transition:all .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014;border-color:#d1d5db}.stat-header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.stat-icon{color:#44c4f4;font-size:18px}.stat-header h5{font-size:16px;font-weight:600;color:#1e293b;margin:0}.stat-content{display:flex;flex-direction:column;align-items:center}.stat-number{font-size:32px;font-weight:700;color:#44c4f4;margin-bottom:4px}.stat-label{font-size:14px;color:#64748b}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.department-select-form{flex-direction:column;align-items:stretch}}.department-edit-form{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f8faff;border:1px solid #e0e7ff;border-radius:6px;margin-top:8px}.department-display{display:flex;flex-direction:column;gap:8px}.department-label{font-size:12px;font-weight:500;color:#6b7280;margin:0}.edit-controls{display:flex;align-items:center;gap:8px}.department-select{flex:1;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:13px;background:#fff}.edit-buttons{display:flex;gap:4px}.btn-save-small,.btn-cancel-small{padding:6px 8px;border:none;border-radius:4px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.btn-save-small{background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff}.btn-save-small:hover{transform:translateY(-1px);box-shadow:0 2px 8px #44c4f44d}.btn-cancel-small{background:#f1f5f9;color:#64748b;border:1px solid #d1d5db}.btn-cancel-small:hover{background:#e2e8f0;color:#475569}.btn-edit-department{padding:6px 12px;background:#f8fafc;color:#475569;border:1px solid #e2e8f0;border-radius:4px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px;align-self:flex-start;margin-top:8px}.btn-edit-department:hover{background:#f1f5f9;border-color:#d1d5db}.user-detail-modal-content,.user-detail-modal-content *,.overview-content,.overview-content *,.projects-content,.projects-content *,.tasks-content,.tasks-content *{border-left:none!important;border-right:none!important}.user-detail-modal-content:before,.user-detail-modal-content:after,.user-detail-modal-content *:before,.user-detail-modal-content *:after{border-left:none!important;border-right:none!important}.user-detail-modal-content .activity-item,.user-detail-modal-content .warning-item,.user-detail-modal-content .success-item,.user-detail-modal-content .info-item,.user-detail-modal-content .task-completed,.user-detail-modal-content .task-overdue,.user-detail-modal-content .task-due-today{border-left:none!important;border-right:none!important}.user-detail-modal-content{height:100%;display:flex;flex-direction:column;padding:16px;background:#fafbfc}.overview-content{padding:8px 0}.stat-card{border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 8px #0000000f;transition:all .3s ease;overflow:hidden;position:relative}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#1890ff,#40a9ff);opacity:0;transition:opacity .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f;border-color:#1890ff}.stat-card:hover:before{opacity:1}.stat-card .ant-card-body{padding:20px}.stat-card .ant-statistic-title{font-size:14px;font-weight:600;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.stat-card .ant-statistic-content{display:flex;align-items:center;gap:8px}.chart-card{border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 8px #0000000f;transition:all .3s ease}.chart-card:hover{box-shadow:0 8px 24px #0000001f;border-color:#1890ff}.chart-card .ant-card-head{border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.chart-card .ant-card-head-title{font-weight:600;color:#2d3748}.chart-card .ant-card-body{padding:16px}.projects-content,.tasks-content{padding:8px 0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;border:1px solid #e2e8f0}.section-header h3{margin:0;font-size:16px;font-weight:600;color:#2d3748}.section-summary{font-size:14px;color:#64748b;background:#fff;padding:6px 12px;border-radius:6px;border:1px solid #e2e8f0}.detail-table{border-radius:12px;overflow:hidden}.detail-table .ant-table{border-radius:12px}.detail-table .ant-table-thead>tr>th{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:2px solid #e2e8f0;font-weight:600;color:#2d3748;padding:16px 12px}.detail-table .ant-table-tbody>tr>td{padding:12px;border-bottom:1px solid #f1f5f9}.detail-table .ant-table-tbody>tr:hover>td{background:#f8fafc}.detail-table .ant-table-tbody>tr:last-child>td{border-bottom:none}.detail-table .ant-pagination{margin-top:16px;text-align:center}.detail-table .ant-pagination-item{border-radius:6px;border:1px solid #e2e8f0}.detail-table .ant-pagination-item-active{background:#1890ff;border-color:#1890ff}.detail-table .ant-pagination-item-active a{color:#fff}.empty-state{display:flex;align-items:center;justify-content:center;min-height:300px;background:#fff;border-radius:12px;border:1px solid #e2e8f0}.user-detail-modal-content .ant-tabs{height:100%;display:flex;flex-direction:column}.user-detail-modal-content .ant-tabs-content-holder{flex:1;overflow:hidden}.user-detail-modal-content .ant-tabs-tabpane{height:100%;overflow-y:auto;padding-right:8px}.user-detail-modal-content .ant-tabs-tab{padding:12px 16px;font-weight:500;border-radius:8px 8px 0 0;margin-right:4px;transition:all .3s ease}.user-detail-modal-content .ant-tabs-tab:hover{background:#f1f5f9}.user-detail-modal-content .ant-tabs-tab-active{background:#fff;border-bottom:2px solid #1890ff}.user-detail-modal-content .ant-tabs-tab-btn{color:#64748b}.user-detail-modal-content .ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff;font-weight:600}.user-detail-modal-content .ant-tabs-extra-content{padding:8px 0}.user-detail-modal-content .ant-tabs-tabpane::-webkit-scrollbar{width:6px}.user-detail-modal-content .ant-tabs-tabpane::-webkit-scrollbar-track{background:#f8fafc;border-radius:3px}.user-detail-modal-content .ant-tabs-tabpane::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#cbd5e1,#94a3b8);border-radius:3px}.user-detail-modal-content .ant-tabs-tabpane::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#94a3b8,#64748b)}@media (max-width: 1200px){.user-detail-modal-content{padding:12px}.section-header{flex-direction:column;align-items:flex-start;gap:8px}.section-summary{align-self:flex-end}}@media (max-width: 768px){.user-detail-modal-content{padding:8px}.stat-card .ant-card-body{padding:16px}.chart-card .ant-card-body{padding:12px}.section-header{padding:12px 16px}.detail-table .ant-table-thead>tr>th,.detail-table .ant-table-tbody>tr>td{padding:8px;font-size:12px}}.personnel-analysis{padding:24px;background:#fff;display:flex;flex-direction:column;gap:24px;height:auto;min-height:auto;overflow:visible}.filters-section{background:#fff;border-radius:8px;border:1px solid #e8e8e8;padding:20px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:row;gap:20px;align-items:center;flex-wrap:wrap}.filters-section::-webkit-scrollbar{height:4px}.filters-section::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.filters-section::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:2px}.filter-label{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:#666;min-width:80px;flex-shrink:0;white-space:nowrap;text-transform:none;letter-spacing:normal;height:36px;line-height:36px}.filter-icon{color:#1890ff;font-size:14px;vertical-align:middle;line-height:1}.filter-button-group{justify-content:center;align-items:center;height:36px}.filter-controls{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.action-buttons-group{display:flex;align-items:center;gap:8px;margin-left:auto}.refresh-button{background:#1890ff;border:none;border-radius:6px;font-weight:500;height:36px;padding:0 16px;font-size:14px;transition:all .2s ease}.refresh-button:hover{background:#40a9ff}.reset-button{background:#fff;border:1px solid #d9d9d9;border-radius:6px;font-weight:500;height:36px;padding:0 16px;color:#666;font-size:14px;transition:all .2s ease}.reset-button:hover{border-color:#40a9ff;color:#40a9ff}.filters-section .ant-select{height:36px!important;vertical-align:middle}.filters-section .ant-select .ant-select-selector{height:36px!important;border-radius:6px!important;line-height:34px!important;display:flex!important;align-items:center!important}.filters-section .ant-picker{height:36px!important;border-radius:6px!important;vertical-align:middle}.filters-section .ant-picker input{line-height:34px!important}.filters-section .ant-btn{height:32px!important;border-radius:6px!important;vertical-align:baseline;display:inline-flex!important;align-items:center!important;justify-content:center!important}.filters-section .ant-select-selection-item,.filters-section .ant-select-selection-placeholder{line-height:30px!important;display:flex!important;align-items:center!important}.filters-section .ant-picker-input>input{line-height:30px!important}.filters-section .ant-picker-range{min-width:260px!important}@media (max-width: 480px){.filters-section .ant-picker-range{min-width:240px!important;width:100%!important}}.filter-controls .ant-select{border-radius:var(--radius-md);transition:all var(--transition-smooth);box-shadow:0 1px 3px #0000001a}.filter-controls .ant-select:hover{border-color:var(--color-primary);box-shadow:0 2px 6px #1890ff26}.filter-controls .ant-select-focused{border-color:var(--color-primary);box-shadow:0 0 0 2px #1890ff33}.filter-controls .ant-picker{border-radius:var(--radius-md);transition:all var(--transition-smooth);box-shadow:0 1px 3px #0000001a}.filter-controls .ant-picker:hover{border-color:var(--color-primary);box-shadow:0 2px 6px #1890ff26}.filter-controls .ant-picker-focused{border-color:var(--color-primary);box-shadow:0 0 0 2px #1890ff33}.filter-controls .ant-btn{border-radius:var(--radius-md);height:36px;display:flex;align-items:center;gap:var(--spacing-xs);font-weight:var(--font-weight-medium);transition:all var(--transition-smooth);box-shadow:0 2px 4px #1890ff26;border:none;background:linear-gradient(135deg,var(--color-primary) 0%,#40a9ff 100%)}.filter-controls .ant-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1890ff40;background:linear-gradient(135deg,#40a9ff 0%,var(--color-primary) 100%)}.filter-controls .ant-btn:active{transform:translateY(0);box-shadow:0 2px 4px #1890ff26}.filter-controls .ant-btn:focus{box-shadow:0 0 0 2px #1890ff33}.filter-controls .ant-btn-loading{pointer-events:none;opacity:.8}.filter-controls .ant-btn-loading .anticon{animation:loadingCircle 1s infinite linear}@keyframes loadingCircle{to{transform:rotate(360deg)}}.personnel-details-section{padding:var(--spacing-lg);background:var(--color-bg-card);border-radius:0 0 var(--radius-lg) var(--radius-lg);min-height:200px}.personnel-details-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-lg);text-align:center;color:var(--color-text-light);min-height:200px}.empty-state-icon{font-size:48px;color:var(--color-border);margin-bottom:var(--spacing-md)}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.empty-state-description{font-size:var(--font-size-sm);color:var(--color-text-light);line-height:1.5}.personnel-detail-card{background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:var(--spacing-lg);transition:all var(--transition-smooth);box-shadow:var(--shadow-sm)}.personnel-detail-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.user-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.user-info{display:flex;align-items:center;gap:var(--spacing-sm)}.user-details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.user-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0;color:var(--color-text)}.user-role{font-size:var(--font-size-sm);color:var(--color-text-light);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.user-actions{display:flex;gap:var(--spacing-sm)}.user-metrics{margin-bottom:var(--spacing-md)}.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md)}.metric-item{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border);transition:all var(--transition-fast)}.metric-item:hover{background:var(--color-bg-light);border-color:var(--color-primary)}.metric-label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.metric-icon{color:var(--color-primary);font-size:var(--font-size-md)}.metric-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1.2}.metric-detail{font-size:var(--font-size-sm);color:var(--color-text-light)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.no-data{color:var(--color-text-lighter);font-style:italic}.task-details{display:flex;flex-direction:column;gap:var(--spacing-md)}.detail-section{padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.section-title{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0 0 var(--spacing-sm) 0;border-bottom:none!important;padding-bottom:0!important}.section-icon{color:var(--color-primary);font-size:var(--font-size-lg)}.task-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-sm)}.summary-item{display:flex;flex-direction:column;gap:var(--spacing-xs);text-align:center;padding:var(--spacing-xs)}.summary-label{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.summary-value{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text)}.summary-value.completed{color:var(--color-success)}.summary-value.in-progress{color:var(--color-primary)}.summary-value.rate{color:var(--color-warning)}.efficiency-analysis{display:flex;flex-direction:column;gap:var(--spacing-sm)}.analysis-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border)}.analysis-item:last-child{border-bottom:none}.analysis-label{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.efficiency-score,.time-utilization{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text)}@media (max-width: 1200px){.metric-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1200px){.metrics-grid{grid-template-columns:repeat(2,1fr);gap:16px}}@media (max-width: 768px){.filters-and-details-module{border-radius:12px}.filters-section{padding:16px}.filters-section{flex-direction:column;gap:20px;padding:16px}.filter-label{min-width:auto;width:100%;justify-content:flex-start;font-size:14px;height:auto;line-height:1.4}.filter-controls{width:100%;flex-wrap:wrap;gap:8px}.filter-controls .ant-select,.filter-controls .ant-picker{width:100%!important;min-width:200px}.action-buttons-group{width:100%;margin-left:0;margin-top:8px;justify-content:center}.action-buttons-group .ant-btn{flex:1;max-width:120px}.metrics-grid{grid-template-columns:1fr;gap:12px}.metric-card{padding:20px;min-height:100px}.metric-icon-wrapper{width:48px;height:48px;font-size:20px}.metric-value{font-size:24px}.user-analysis-card{padding:20px;margin-bottom:16px}.user-name{font-size:20px}.detail-report-btn{height:40px;padding:0 20px}.personnel-details-section{padding:var(--spacing-md)}.metric-row{grid-template-columns:1fr}.task-summary{grid-template-columns:repeat(2,1fr)}.user-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}}@media (max-width: 480px){.task-summary{grid-template-columns:repeat(2,1fr)}.personnel-detail-card{padding:var(--spacing-md)}.metric-item,.detail-section{padding:var(--spacing-sm)}}.personnel-analysis .ant-avatar{background:#1890ff}.personnel-analysis .ant-progress{margin:0}.personnel-analysis .ant-progress-line{margin:4px 0 0}.personnel-analysis .ant-progress-text{font-size:11px;color:#666}.personnel-analysis .ant-tag{margin:0;font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500}.personnel-analysis .ant-btn-link{padding:0;height:auto;font-size:12px}.personnel-analysis .ant-card-body{padding:12px 16px}.personnel-analysis .ant-select{min-width:100px}.personnel-analysis .ant-picker{border-radius:4px}.user-detail-analysis{display:flex;flex-direction:column;gap:var(--spacing-lg)}.user-detail-analysis .user-name{margin:0 0 var(--spacing-xs) 0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.user-detail-analysis .user-role-tag{margin-bottom:var(--spacing-xs)}.user-detail-analysis .user-meta{color:var(--color-text-secondary);font-size:14px}.overview-section,.tasks-section{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:none;box-shadow:var(--shadow-card)}.section-title{margin:0 0 var(--spacing-md) 0;font-size:16px;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;border-bottom:none!important;padding-bottom:0!important}.section-summary{margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:14px}.stat-card{border-radius:var(--radius-md);box-shadow:0 2px 8px #0000000f;transition:all .3s ease}.stat-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.chart-card{border-radius:var(--radius-md);box-shadow:0 2px 8px #0000000f}.detail-table{border-radius:var(--radius-md);overflow:hidden}.detail-table .ant-table-thead>tr>th{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-weight:600;color:var(--color-text-primary)}.detail-table .ant-table-tbody>tr>td{border-bottom:1px solid var(--color-border-light)}.detail-table .ant-table-tbody>tr:hover>td{background:var(--color-bg-hover)}.task-history-table{border-radius:var(--radius-md);overflow:hidden;width:100%}.task-history-table .ant-table{font-size:13px;width:100%;table-layout:fixed}.task-history-table .ant-table-thead>tr>th{background:#fafafa!important;border-bottom:1px solid var(--color-border)!important;font-weight:600!important;color:var(--color-text-primary)!important;padding:12px 8px!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.task-history-table .ant-table-tbody>tr>td{padding:10px 8px!important;border-bottom:1px solid var(--color-border-light)!important;vertical-align:middle!important;overflow:hidden!important;text-overflow:ellipsis!important}.task-history-table .ant-table-tbody>tr>td[rowspan]{vertical-align:middle!important;height:100%!important}.task-history-table .ant-table-tbody>tr>td[rowspan]>div{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;height:100%!important;min-height:100%!important}.task-history-table .ant-table-tbody>tr:hover>td{background:#f5f5f5!important}.task-history-table .ant-table-wrapper{width:100%;overflow:hidden}.task-history-table .ant-table-container{width:100%;overflow-x:auto;overflow-y:hidden}.tasks-section{margin-top:var(--spacing-lg)}.personnel-analysis .section-title,.personnel-analysis .tasks-section .section-title,.personnel-analysis .overview-section .section-title{border-bottom:none!important;padding-bottom:0!important;border:none!important;background:transparent!important;background-image:none!important}.personnel-analysis .section-title:before,.personnel-analysis .section-title:after,.personnel-analysis .tasks-section .section-title:before,.personnel-analysis .tasks-section .section-title:after,.personnel-analysis .overview-section .section-title:before,.personnel-analysis .overview-section .section-title:after{display:none!important;content:none!important;border:none!important;background:none!important;background-image:none!important}.personnel-analysis h5.section-title,.personnel-analysis .tasks-section h5.section-title,.personnel-analysis .overview-section h5.section-title{border-bottom:none!important;padding-bottom:0!important;border:none!important;background:transparent!important;background-image:none!important}.personnel-analysis h5.section-title:before,.personnel-analysis h5.section-title:after{display:none!important;content:none!important}.tasks-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:none}.tasks-section .section-title{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;border-bottom:none!important;padding-bottom:0!important}.tasks-section .section-summary{margin:0;color:var(--color-text-secondary);font-size:14px;font-weight:500}.summary-analysis{display:flex;flex-direction:column;gap:24px;height:auto;overflow:visible}.personnel-list-section{margin-top:0}.personnel-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px}.personnel-card{transition:all .3s ease;border-radius:8px;border:1px solid #e8e8e8;padding:16px}.personnel-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#1890ff}.personnel-card:hover .click-hint{color:#40a9ff!important;font-weight:500}.personnel-card:active{transform:translateY(0);box-shadow:0 2px 8px #0000001a}.personnel-card.selected{border-color:#1890ff;background-color:#f6ffed;box-shadow:0 2px 8px #1890ff33}.click-hint{transition:all .3s ease}.personnel-card h6{margin:0 0 8px;font-size:16px;font-weight:600;color:#262626}.personnel-stats{display:flex;flex-direction:column;gap:4px}.personnel-stats span{font-size:13px;color:#666}.task-history-table-wrapper{border-radius:var(--radius-md);overflow:visible}.task-history-table .ant-table-container{overflow-y:auto;overflow-x:auto}.task-history-table .ant-table-body,.task-history-table .ant-table-wrapper{overflow:visible}.tasks-section{display:flex;flex-direction:column;gap:16px}.tasks-section .task-history-table-wrapper{display:flex;flex-direction:column}@media (max-width: 1200px){.personnel-analysis .ant-col{margin-bottom:8px}.personnel-analysis .ant-table{font-size:12px}.personnel-analysis .ant-table-tbody>tr>td{padding:8px 6px}.overview-section .ant-row{margin-bottom:16px}.chart-card .ant-card-body{padding:12px}.task-history-table .ant-table{font-size:12px}.task-history-table .ant-table-thead>tr>th,.task-history-table .ant-table-tbody>tr>td{padding:8px 6px!important}.filters-section{gap:16px}}@media (max-width: 768px){.personnel-analysis .ant-statistic-content{font-size:18px}.personnel-analysis .ant-card-body{padding:8px 12px}.personnel-analysis .ant-table-wrapper{overflow-x:auto}.personnel-analysis .ant-space{flex-wrap:wrap}.personnel-analysis .ant-space-item{margin-bottom:8px}.overview-section .ant-row,.overview-section .ant-col{margin-bottom:12px}.overview-section,.tasks-section{padding:var(--spacing-md)}.chart-card{margin-bottom:var(--spacing-md)}.chart-card .ant-card-body{padding:8px}.chart-card>div{height:250px!important}.task-history-table .ant-table{font-size:11px}.task-history-table .ant-table-thead>tr>th,.task-history-table .ant-table-tbody>tr>td{padding:6px 4px!important}.task-history-table .ant-table-thead>tr>th:nth-child(2),.task-history-table .ant-table-tbody>tr>td:nth-child(2){display:none}.task-history-table .ant-table-thead>tr>th:nth-child(1),.task-history-table .ant-table-tbody>tr>td:nth-child(1){width:40%!important}.task-history-table .ant-table-thead>tr>th:nth-child(3),.task-history-table .ant-table-tbody>tr>td:nth-child(3){width:25%!important}.task-history-table .ant-table-thead>tr>th:nth-child(4),.task-history-table .ant-table-tbody>tr>td:nth-child(4),.task-history-table .ant-table-thead>tr>th:nth-child(5),.task-history-table .ant-table-tbody>tr>td:nth-child(5){width:17.5%!important}.filters-section{flex-wrap:nowrap!important;gap:12px;overflow-x:auto;padding:16px 12px}.filters-section .ant-picker-range{min-width:220px!important;width:220px!important}.filter-label{font-size:12px}.personnel-cards{grid-template-columns:1fr;gap:12px}}.user-detail-modal .ant-modal{max-width:95vw}.user-detail-modal .ant-modal-content{max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.user-detail-modal .ant-modal-body{flex:1;overflow-y:auto;padding:16px}.user-detail-modal .ant-tabs{height:100%;display:flex;flex-direction:column}.user-detail-modal .ant-tabs-content-holder{flex:1;overflow-y:auto}.user-detail-modal .ant-tabs-tabpane{height:100%}.user-detail-modal .echarts-for-react{width:100%!important;height:100%!important}.user-detail-modal .ant-table-wrapper{margin-top:8px}.user-detail-modal .ant-table{font-size:12px}.user-detail-modal .ant-table-tbody>tr>td{padding:8px}.user-detail-modal .ant-statistic-title{font-size:11px}.user-detail-modal .ant-statistic-content{font-size:16px}.personnel-analysis .ant-empty{margin:40px 0}.personnel-analysis .ant-empty-description{color:#999;font-size:13px}.personnel-analysis .ant-spin-container{min-height:200px;display:flex;align-items:center;justify-content:center}.personnel-analysis .ant-spin-text{margin-top:12px;color:#666;font-size:13px}.workload-inactive{background:#f5f5f5;color:#999}.workload-light{background:#f6ffed;color:#52c41a;border-color:#b7eb8f}.workload-normal{background:#e6f7ff;color:#1890ff;border-color:#91d5ff}.workload-heavy{background:#fff7e6;color:#fa8c16;border-color:#ffd591}.workload-overloaded{background:#fff2f0;color:#ff4d4f;border-color:#ffccc7}.efficiency-excellent{background:#f6ffed;color:#52c41a;border-color:#b7eb8f}.efficiency-good{background:#e6f7ff;color:#1890ff;border-color:#91d5ff}.efficiency-average{background:#fff7e6;color:#fa8c16;border-color:#ffd591}.efficiency-poor{background:#fff2f0;color:#ff4d4f;border-color:#ffccc7}.personnel-analysis .ant-table-tbody>tr{transition:background-color .2s ease}.personnel-analysis .ant-progress-line{transition:all .3s ease}.personnel-analysis .ant-tag,.personnel-analysis .ant-btn{transition:all .2s ease}.personnel-analysis .ant-table-body::-webkit-scrollbar{width:6px;height:6px}.personnel-analysis .ant-table-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.personnel-analysis .ant-table-body::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.personnel-analysis .ant-table-body::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.personnel-table-container{overflow-y:auto;position:relative}.personnel-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--bg-content);border-radius:var(--border-radius-sm);overflow:hidden;box-shadow:none;border:1px solid var(--border-color-light)}.personnel-table th,.personnel-table td{padding:18px 20px;vertical-align:middle;border-bottom:1px solid var(--border-color);text-align:left}.personnel-table thead th{background:#fff;font-size:13px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.8px;border-bottom:2px solid var(--border-color);position:sticky;top:0;z-index:100;box-shadow:0 2px 4px #0000001a}.personnel-table tbody tr{background:var(--bg-content);position:relative;transition:background-color .2s ease}.personnel-table tbody tr:hover{background-color:#f8f9fa}.personnel-table tbody tr:last-child td{border-bottom:none}.personnel-table th:nth-child(1),.personnel-table td:nth-child(1){width:25%}.personnel-table th:nth-child(2),.personnel-table td:nth-child(2){width:15%;text-align:center}.personnel-table th:nth-child(3),.personnel-table td:nth-child(3){width:15%;text-align:center}.personnel-table th:nth-child(4),.personnel-table td:nth-child(4){width:15%;text-align:center}.personnel-table th:nth-child(5),.personnel-table td:nth-child(5){width:15%;text-align:center}.personnel-table th:nth-child(6),.personnel-table td:nth-child(6){width:15%;text-align:center;min-width:80px;padding:18px 10px}.personnel-table-container::-webkit-scrollbar{width:6px;height:6px}.personnel-table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.personnel-table-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.personnel-table-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.personnel-analysis-result{background:#f9f9f9;border-radius:8px;padding:24px;height:auto;overflow:visible;border:1px solid #e8e8e8;box-shadow:0 2px 8px #0000000f}.result-header{margin:0 0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.result-title-section{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:#262626}.result-header .result-icon{color:#1890ff;font-size:18px}.result-period{font-size:14px;font-weight:600;color:#52c41a;background:#f6ffed;padding:4px 12px;border-radius:12px;border:1px solid #b7eb8f}.result-content{min-height:100px}.result-loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl);color:var(--color-text-light)}.loading-icon{font-size:var(--font-size-lg);color:var(--color-primary)}.result-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;color:var(--color-text-light)}.empty-icon{font-size:48px;color:var(--color-border);margin-bottom:var(--spacing-md)}.empty-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm)}.empty-description{font-size:var(--font-size-sm);color:var(--color-text-light);line-height:1.5}.user-analysis-card{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:20px;padding:28px;margin-bottom:24px;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px #00000014;position:relative;overflow:hidden}.user-analysis-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#3b82f6,#06b6d4,#10b981);opacity:0;transition:opacity .4s ease}.user-analysis-card:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(59,130,246,.03) 0%,transparent 70%);opacity:0;transition:opacity .4s ease;pointer-events:none}.user-analysis-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000026;border-color:#3b82f6}.user-analysis-card:hover:before{opacity:1}.user-analysis-card:hover:after{opacity:1}.user-analysis-card:last-child{margin-bottom:0}.user-name{margin:0;font-size:24px;font-weight:700;color:#1e293b;line-height:1.2;background:linear-gradient(135deg,#1e293b,#475569);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.user-role-tag{font-weight:600;border-radius:12px;padding:6px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;border:2px solid;background:linear-gradient(135deg,#3b82f61a,#06b6d41a)}.user-meta{display:flex;flex-direction:column;gap:8px}.period-info{font-size:13px;color:#64748b;background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;font-weight:500}.detail-report-btn{border-radius:12px;font-weight:600;height:44px;padding:0 24px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;box-shadow:0 4px 16px #3b82f640;transition:all .3s ease}.detail-report-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3b82f659;background:linear-gradient(135deg,#1d4ed8,#3b82f6)}.key-metrics{margin-bottom:var(--spacing-lg)}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.metric-card{display:flex;align-items:flex-start;gap:16px;padding:24px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:16px;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;min-height:120px}.metric-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#3b82f6,#06b6d4);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}.metric-card:hover{background:linear-gradient(135deg,#fff,#f0f9ff);border-color:#3b82f6;transform:translateY(-4px);box-shadow:0 12px 32px #3b82f626}.metric-card:hover:before{transform:scaleX(1)}.metric-icon-wrapper{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;flex-shrink:0;box-shadow:0 8px 24px #00000026;transition:all .3s ease}.metric-card:hover .metric-icon-wrapper{transform:scale(1.1);box-shadow:0 12px 32px #0003}.metric-icon-wrapper.project{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.metric-icon-wrapper.task{background:linear-gradient(135deg,#10b981,#047857)}.metric-icon-wrapper.time{background:linear-gradient(135deg,#f59e0b,#d97706)}.metric-icon-wrapper.efficiency{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.metric-info{flex:1;display:flex;flex-direction:column;gap:8px}.metric-value{font-size:28px;font-weight:800;color:#1e293b;line-height:1;background:linear-gradient(135deg,#1e293b,#475569);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.metric-label{font-size:12px;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin:0}.metric-detail{font-size:11px;color:#64748b;background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:6px 10px;border-radius:8px;border:1px solid #e2e8f0;line-height:1.3;font-weight:500}.project-metric:hover:before{background:linear-gradient(90deg,#3b82f6,#1d4ed8)}.task-metric:hover:before{background:linear-gradient(90deg,#10b981,#047857)}.hours-metric:hover:before{background:linear-gradient(90deg,#f59e0b,#d97706)}.efficiency-metric:hover:before{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.project-metric:hover{background:linear-gradient(135deg,#fff,#eff6ff);border-color:#3b82f6}.task-metric:hover{background:linear-gradient(135deg,#fff,#ecfdf5);border-color:#10b981}.hours-metric:hover{background:linear-gradient(135deg,#fff,#fffbeb);border-color:#f59e0b}.efficiency-metric:hover{background:linear-gradient(135deg,#fff,#faf5ff);border-color:#8b5cf6}.detailed-analysis{background:var(--color-bg-card);border-radius:var(--radius-sm);padding:var(--spacing-md);border:1px solid var(--color-border)}.detailed-analysis .analysis-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.detailed-analysis .analysis-item:last-child{border-bottom:none}.detailed-analysis .analysis-label{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-medium);min-width:80px}.detailed-analysis .analysis-content{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;justify-content:flex-end}.efficiency-score{font-size:var(--font-size-sm);color:var(--color-text-light);margin-left:var(--spacing-sm)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);justify-content:flex-end}@media (max-width: 768px){.filters-section,.personnel-analysis-result{border-radius:8px}.metrics-grid{grid-template-columns:repeat(2,1fr)}.result-header{flex-direction:column;align-items:flex-start;gap:12px}.result-title-section{width:100%}.detailed-analysis .analysis-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.detailed-analysis .analysis-content{justify-content:flex-start;width:100%}}@media (max-width: 480px){.metrics-grid{grid-template-columns:1fr}.user-analysis-card,.personnel-analysis-result{padding:var(--spacing-md)}.overview-section .ant-row,.overview-section .ant-col{margin-bottom:8px}.stat-card .ant-statistic-content{font-size:18px!important}.stat-card .ant-statistic-title{font-size:12px}.chart-card>div{height:200px!important}.detail-table .ant-table-thead>tr>th,.detail-table .ant-table-tbody>tr>td{padding:6px 4px;font-size:12px}.section-title{font-size:14px;border-bottom:none!important;padding-bottom:0!important}.user-detail-analysis .user-name{font-size:16px}.task-history-table .ant-table{font-size:10px}.task-history-table .ant-table-thead>tr>th,.task-history-table .ant-table-tbody>tr>td{padding:4px 2px!important}.task-history-table .ant-table-thead>tr>th:nth-child(4),.task-history-table .ant-table-tbody>tr>td:nth-child(4),.task-history-table .ant-table-thead>tr>th:nth-child(5),.task-history-table .ant-table-tbody>tr>td:nth-child(5){display:none}.task-history-table .ant-table-thead>tr>th:nth-child(1),.task-history-table .ant-table-tbody>tr>td:nth-child(1){width:70%!important}.task-history-table .ant-table-thead>tr>th:nth-child(3),.task-history-table .ant-table-tbody>tr>td:nth-child(3){width:30%!important}}.department-management-tab{display:flex;flex-direction:column;height:100%;gap:16px}.btn-add{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--gradient-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #44c4f44d}.btn-add:hover{transform:translateY(-2px);box-shadow:0 4px 12px #44c4f466}.btn-add:active{transform:translateY(0)}.alert{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-radius:12px;font-size:14px;margin-bottom:24px;font-weight:500}.alert-error{background:linear-gradient(135deg,#ef44441a,#ef44440d);color:var(--color-error);border:1px solid rgba(239,68,68,.2)}.alert-success{background:linear-gradient(135deg,#10b9811a,#10b9810d);color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.alert button{background:none;border:none;font-size:20px;cursor:pointer;color:inherit;opacity:.7;transition:opacity .3s ease}.form-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.form-modal-content{background:#fff;border-radius:20px;width:90%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040;border:1px solid var(--color-neutral-200)}.form-header{display:flex;justify-content:space-between;align-items:center;padding:28px 32px;border-bottom:1px solid var(--color-neutral-200)}.form-header h4{font-size:20px;font-weight:700;color:var(--color-neutral-800);margin:0;letter-spacing:-.025em}.btn-close{background:var(--color-neutral-100);border:none;font-size:16px;color:var(--color-neutral-500);cursor:pointer;padding:8px;border-radius:8px;transition:all .3s ease;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.btn-close:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}.department-form{padding:32px}.form-group{margin-bottom:24px}.form-group label{display:block;font-size:14px;font-weight:600;color:var(--color-neutral-700);margin-bottom:8px;letter-spacing:.025em}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:1px solid var(--color-neutral-300);border-radius:12px;font-size:14px;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff;font-weight:400}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-neutral-400);box-shadow:0 0 0 3px #44c4f41a;transform:translateY(-1px)}.form-group textarea{resize:vertical;min-height:100px;font-family:inherit}.form-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:32px;padding-top:24px;border-top:1px solid var(--color-neutral-200)}.btn-cancel,.btn-save{display:flex;align-items:center;gap:8px;padding:12px 20px;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);letter-spacing:.025em}.btn-cancel{background:var(--color-neutral-100);color:var(--color-neutral-600);border:1px solid var(--color-neutral-300)}.btn-cancel:hover{background:var(--color-neutral-200);color:var(--color-neutral-700);transform:translateY(-1px)}.btn-save{background:var(--color-dark-primary);color:#fff}.btn-save:hover{background:var(--color-dark-secondary);transform:translateY(-2px);box-shadow:0 4px 12px #2d37484d}.department-form{padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .3s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group textarea{resize:vertical;min-height:80px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}.btn-cancel,.btn-save{display:flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-cancel{background:#f8fafc;color:#64748b;border:1px solid #d1d5db}.btn-cancel:hover{background:#f1f5f9;color:#1e293b}.btn-save{background:#3b82f6;color:#fff}.btn-save:hover{background:#2563eb}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}.departments-table-container{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d,0 1px 2px #0000001a;border:1px solid var(--color-neutral-200);overflow:hidden;flex:1}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.empty-icon{font-size:64px;background:var(--gradient-secondary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:24px;opacity:.6}.empty-state h4{font-size:20px;font-weight:600;color:var(--color-neutral-700);margin:0 0 12px;letter-spacing:-.025em}.empty-state p{font-size:14px;color:var(--color-neutral-500);margin:0;font-weight:400}.departments-table{width:100%;overflow-x:auto}.departments-table table{width:100%;border-collapse:collapse}.departments-table th{background:#fafafa;padding:16px 20px;text-align:left;font-size:14px;font-weight:600;color:#262626;border-bottom:1px solid #d9d9d9;white-space:nowrap}.departments-table th:nth-child(1),.departments-table td:nth-child(1){text-align:left}.departments-table th:nth-child(4),.departments-table td:nth-child(4){text-align:center}.departments-table th:nth-child(5),.departments-table td:nth-child(5){text-align:center}.departments-table th:nth-child(6),.departments-table td:nth-child(6){text-align:center}.departments-table td{padding:16px 20px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#262626;font-weight:400;vertical-align:middle}.departments-table tr:hover{background:#f5f5f5;transition:background-color .2s ease}.dept-name{display:flex;align-items:center;gap:8px;font-weight:500;font-size:14px}.dept-icon{color:#1890ff;font-size:16px}.dept-description{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8c8c8c;font-weight:400;font-size:14px}.manager-info{display:flex;align-items:center;gap:6px;font-size:14px}.member-count{background:#f6ffed;color:#52c41a;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;border:1px solid #b7eb8f;display:inline-block;text-align:center;min-width:40px}.create-time{color:#8c8c8c;font-size:14px;font-weight:400}.action-buttons{display:flex;gap:8px;justify-content:center}.btn-edit,.btn-delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;font-size:14px}.btn-edit{background:var(--gradient-primary);color:#fff}.btn-delete{background:#fff2f0;color:#ff4d4f;border:1px solid #ffccc7}.btn-delete:hover{background:#ff4d4f;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #ff4d4f4d}@media (max-width: 768px){.tab-header{flex-direction:column;gap:16px;align-items:stretch}.tab-actions{justify-content:space-between}.search-box input{width:150px}.departments-table{font-size:13px}.departments-table th,.departments-table td{padding:12px 16px}.dept-description{max-width:150px}}.project-configuration-tab{display:flex;flex-direction:column;height:100%;gap:16px}.tab-actions{display:flex;align-items:center;gap:16px}.projects-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;border:1px solid #d9d9d9;overflow:hidden;flex:1}.projects-table{width:100%;overflow-x:auto}.projects-table table{width:100%;border-collapse:collapse;min-width:1250px;table-layout:fixed}.projects-table th:nth-child(1),.projects-table td:nth-child(1){width:6%!important;text-align:center}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:22%!important;text-align:left}.projects-table th:nth-child(3),.projects-table td:nth-child(3){width:25%!important}.projects-table th:nth-child(4),.projects-table td:nth-child(4){width:10%!important}.projects-table th:nth-child(5),.projects-table td:nth-child(5){width:8%!important}.projects-table th:nth-child(6),.projects-table td:nth-child(6){width:19%!important}.projects-table th:nth-child(7),.projects-table td:nth-child(7){width:10%!important}.sequence-number{text-align:center!important;font-weight:500;color:#666;font-size:14px}.project-name-cell{text-align:left!important}.project-name-cell .project-name-simple{text-align:left}.project-name-cell .project-name-simple .name{text-align:left;font-weight:500;color:#1a1a1a}.projects-table th{background:#fafafa;padding:16px 20px;text-align:left;font-size:14px;font-weight:600;color:#262626;border-bottom:1px solid #d9d9d9;white-space:nowrap}.projects-table th:nth-child(4),.projects-table td:nth-child(4){text-align:center}.projects-table th:nth-child(6),.projects-table td:nth-child(6){text-align:center}.projects-table td{padding:16px 20px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#262626;vertical-align:middle;font-weight:400}.projects-table tr:hover{background:#f5f5f5;transition:background-color .2s ease}.project-name{display:flex;align-items:flex-start;gap:12px}.project-icon{background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:18px;margin-top:2px;flex-shrink:0}.project-name .name{font-weight:600;color:var(--color-neutral-800);margin-bottom:6px;letter-spacing:-.025em}.project-name .description{font-size:12px;color:var(--color-neutral-500);line-height:1.4;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.project-name-simple{width:100%}.project-name-simple .name{font-weight:600;color:var(--color-neutral-800);letter-spacing:-.025em;line-height:1.4;word-wrap:break-word;word-break:break-all;font-size:14px}.customer{color:var(--color-neutral-600);font-weight:500;word-wrap:break-word;word-break:break-all;line-height:1.4}.manager-info{display:inline-flex;align-items:center;gap:6px}.manager-icon{color:#52c41a;font-size:14px}.manager-selector{display:flex;align-items:center;gap:8px}.manager-selector .manager-icon{color:#52c41a;font-size:14px;flex-shrink:0}.manager-select{flex:1;padding:6px 8px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px;background:#fff;color:#262626;min-width:120px;outline:none;transition:border-color .2s}.manager-select:focus{border-color:#40e0d0;box-shadow:0 0 0 2px #40e0d01a}.manager-select:hover{border-color:#40e0d0}.status-badge{padding:6px 12px;border-radius:16px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.025em}.status-进行中{background:linear-gradient(135deg,#34e0a126,#34e0a10d);color:var(--color-success)}.status-已完成{background:linear-gradient(135deg,#10b98126,#10b9810d);color:var(--color-success)}.status-暂停{background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);color:var(--color-warning)}.status-已关闭{background:linear-gradient(135deg,#73737326,#7373730d);color:var(--color-neutral-500)}.departments-list{min-width:200px}.departments-display{display:flex;flex-wrap:wrap;gap:6px}.department-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#667eea1a,#764ba21a);color:var(--color-dark-accent);border-radius:16px;font-size:12px;font-weight:600;letter-spacing:.025em}.dept-icon{font-size:12px;background:var(--gradient-secondary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.no-departments{color:var(--color-neutral-400);font-style:italic;font-size:13px;font-weight:400}.department-selector{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px;min-width:250px}.department-options{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;max-height:150px;overflow-y:auto}.department-option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 0;font-size:13px;position:relative}.department-option input[type=checkbox]{opacity:0;position:absolute;width:0;height:0}.department-option input:checked+.checkmark{background:#3b82f6;border-color:#3b82f6}.department-option input:checked+.checkmark:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.department-option:hover .checkmark{border-color:#3b82f6}@media (max-width: 1024px){.projects-table table{min-width:700px}.project-name .description{max-width:150px}.department-selector{min-width:200px}}@media (max-width: 768px){.projects-table table{min-width:600px}.projects-table th,.projects-table td{padding:12px 16px}.project-name .description{max-width:120px}.customer{max-width:100px}.department-selector{min-width:180px;padding:10px}.department-options{max-height:120px}}@media (max-width: 480px){.projects-table-container{overflow-x:auto}.projects-table table{min-width:500px}.projects-table th,.projects-table td{padding:10px 12px;font-size:13px}.project-name{gap:6px}.project-name .name{font-size:13px}.project-name .description{font-size:11px;max-width:100px}}.personnel-configuration-tab{display:flex;flex-direction:column;height:100%;gap:16px}.tab-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;flex-wrap:wrap}.tab-title{display:flex;align-items:center;gap:12px;flex-shrink:0}.tab-title .tab-icon{font-size:24px;color:#667eea}.tab-title h3{margin:0;font-size:20px;font-weight:600;color:#1a202c}.tab-title .count-badge{background:#667eea;color:#fff;padding:4px 12px;border-radius:12px;font-size:14px;font-weight:600;min-width:30px;text-align:center}.tab-title .department-badge{background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;padding:6px 16px;border-radius:12px;font-size:14px;font-weight:500;display:flex;align-items:center;box-shadow:0 2px 8px #44c4f44d;animation:fadeInScale .3s ease}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.tab-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.search-box{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:#8c8c8c;font-size:14px;z-index:1}.search-box input{padding:8px 12px 8px 36px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;width:200px;transition:all .2s ease}.search-box input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.filter-box{position:relative;display:flex;align-items:center}.department-filter-select{padding:8px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;background:#fff;min-width:150px;cursor:pointer;transition:all .2s ease}.department-filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.filter-box .department-filter-select:not([value=all]){background:linear-gradient(135deg,#3b82f61a,#3b82f60d);border-color:#3b82f6;color:#1d4ed8}.users-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000f;border:1px solid #d9d9d9;overflow:hidden;flex:1}.users-table{width:100%;overflow-x:auto}.users-table table{width:100%;border-collapse:collapse;min-width:1000px;table-layout:fixed}.users-table th{background:#fafafa;padding:16px 20px;text-align:left;font-size:14px;font-weight:600;color:#262626;border-bottom:1px solid #d9d9d9;white-space:nowrap}.users-table th:nth-child(1){width:20%}.users-table th:nth-child(2){width:20%}.users-table th:nth-child(3){width:20%}.users-table th:nth-child(4){width:20%}.users-table th:nth-child(5){width:20%}.users-table th:nth-child(2),.users-table td:nth-child(2){text-align:center}.users-table th:nth-child(4),.users-table td:nth-child(4){text-align:center}.users-table th:nth-child(5),.users-table td:nth-child(5){text-align:center}.users-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#262626;vertical-align:middle;font-weight:400;word-wrap:break-word;overflow:hidden}.users-table tr:hover{background:#f5f5f5;transition:background-color .2s ease}.user-info{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:500;flex-shrink:0}.user-details{display:flex;flex-direction:column;gap:2px}.username{font-weight:500;color:#262626;font-size:14px}.email{font-size:12px;color:#8c8c8c;font-weight:400}.role-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.025em}.role-admin{background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);color:var(--color-warning)}.role-department_manager{background:linear-gradient(135deg,#3b82f626,#3b82f60d);color:#3b82f6}.role-user{background:linear-gradient(135deg,#2d374826,#2d37480d);color:var(--color-dark-primary)}.role-icon{font-size:10px}.department-display{display:inline-flex;align-items:center;gap:6px;color:#374151}.dept-icon{color:#3b82f6;font-size:14px}.department-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;background:#fff;min-width:120px}.department-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.projects-list{min-width:250px;max-width:350px}.projects-display{display:flex;flex-direction:column;gap:6px}.project-tag{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(135deg,#f093fb1a,#f5576c1a);border-radius:12px;font-size:12px;border:1px solid rgba(240,147,251,.2);margin-bottom:4px}.project-icon{background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:14px;flex-shrink:0}.project-name{font-weight:600;color:var(--color-neutral-800);letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:inline-block}.project-role{color:var(--color-neutral-500);font-size:11px;font-weight:500}.no-projects{color:var(--color-neutral-400);font-style:italic;font-size:13px;font-weight:400}.projects-display-simple{display:flex;flex-direction:column;gap:3px;font-size:11px;line-height:1.3}.project-item-simple{display:flex;flex-direction:column;padding:2px 0}.project-name-simple{font-weight:500;color:var(--color-neutral-700);font-size:11px;line-height:1.2;margin-bottom:1px}.project-role-simple{color:var(--color-neutral-500);font-size:10px;font-weight:400;line-height:1.1}.no-projects-simple{color:var(--color-neutral-400);font-style:italic;font-size:11px;font-weight:400}.project-selector{padding:12px;min-width:300px;max-width:400px}.project-options{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;max-height:200px;overflow-y:auto}.project-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #f1f5f9;min-width:0;width:100%}.project-option:last-child{border-bottom:none}.project-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;flex:1;font-size:13px;min-width:0;overflow:hidden}.project-checkbox input[type=checkbox]{opacity:0;position:absolute;width:0;height:0}.checkmark{width:16px;height:16px;border:2px solid #d1d5db;border-radius:3px;position:relative;transition:all .3s ease;flex-shrink:0}.project-checkbox input:checked+.checkmark{background:#3b82f6;border-color:#3b82f6}.project-checkbox input:checked+.checkmark:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.project-checkbox:hover .checkmark{border-color:#3b82f6}.role-select{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:11px;background:#fff;min-width:70px}.role-select:focus{outline:none;border-color:#3b82f6}.selector-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:8px;border-top:1px solid #e2e8f0}.btn-save-small,.btn-cancel-small{display:flex;align-items:center;gap:4px;padding:6px 12px;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-save-small{background:var(--gradient-primary);color:#fff}.btn-save-small:hover{transform:translateY(-1px);box-shadow:0 4px 12px #44c4f466}.btn-cancel-small:hover{background:#e6f7ff;color:#1890ff;border-color:#91d5ff}.action-buttons{display:flex;align-items:center;gap:8px;justify-content:center}.btn-edit{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--gradient-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .3s ease;font-size:14px}.btn-edit:hover{transform:translateY(-2px);box-shadow:0 4px 12px #44c4f466}.editing-indicator{color:#1890ff;font-size:12px;font-style:italic;font-weight:500}@media (max-width: 1200px){.tab-header{gap:16px}.tab-title h3{font-size:18px}.tab-title .tab-icon{font-size:22px}.users-table table{min-width:800px}.projects-list{max-width:300px}.project-selector{min-width:250px;max-width:350px}}@media (max-width: 768px){.tab-header{flex-direction:column;align-items:flex-start;gap:12px}.tab-actions{width:100%;justify-content:space-between}.search-box input{width:150px}.tab-title h3{font-size:16px}.tab-title .tab-icon{font-size:20px}.btn-add-user{padding:6px 12px;font-size:13px}.users-table table{min-width:700px}.users-table th,.users-table td{padding:12px 16px}.user-info{gap:8px}.user-avatar{width:32px;height:32px;font-size:14px}.projects-list{min-width:200px;max-width:250px}.project-selector{min-width:200px;max-width:300px;padding:10px}.project-options{max-height:150px}}@media (max-width: 480px){.tab-title{flex-wrap:wrap;gap:8px}.tab-title h3{font-size:14px}.tab-title .tab-icon{font-size:18px}.tab-title .count-badge{padding:2px 8px;font-size:12px}.tab-actions{flex-direction:column;width:100%;align-items:stretch}.search-box,.filter-box,.btn-add-user,.search-box input,.department-filter-select{width:100%}.users-table-container{overflow-x:auto}.users-table table{min-width:600px}.users-table th,.users-table td{padding:10px 12px;font-size:13px}.user-info{gap:6px}.user-avatar{width:28px;height:28px;font-size:12px}.username{font-size:13px}.email{font-size:11px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.project-modal-container{background:#fff;border-radius:16px;width:90%;max-width:1000px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 25px 50px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0;background:#fafbfc;border-radius:16px 16px 0 0}.modal-header h3{margin:0;font-size:16px;font-weight:600;color:#1a202c}.modal-close{background:none;border:none;font-size:18px;color:#718096;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:#e2e8f0;color:#2d3748}.modal-content{flex:1;padding:20px 24px;overflow-y:auto;background:#fff}.project-selection-grid{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:8px}.project-row:hover{background:#edf2f7;border-color:#cbd5e0}.project-checkbox-modal{display:flex;align-items:center;justify-content:center;cursor:pointer}.project-checkbox-modal input[type=checkbox]{opacity:0;position:absolute;width:0;height:0}.checkmark-modal{width:18px;height:18px;border:2px solid #cbd5e0;border-radius:4px;position:relative;transition:all .3s ease;background:#fff}.project-checkbox-modal input:checked+.checkmark-modal{background:var(--gradient-primary);border-color:#3b82f6}.project-checkbox-modal input:checked+.checkmark-modal:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.project-checkbox-modal:hover .checkmark-modal{border-color:#3b82f6}.project-name-modal{font-size:14px;font-weight:500;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-select-modal{padding:8px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:13px;background:#fff;color:#2d3748;transition:all .2s ease;cursor:pointer}.role-select-modal:disabled{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.role-select-modal:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e2e8f0;background:#fafbfc;border-radius:0 0 16px 16px}.btn-save-modal,.btn-cancel-modal{display:flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-save-modal{background:var(--gradient-primary);color:#fff}.btn-save-modal:hover{transform:translateY(-1px);box-shadow:0 4px 12px #44c4f466}.btn-cancel-modal{background:#f7fafc;color:#718096;border:1px solid #e2e8f0}.btn-cancel-modal:hover{background:#edf2f7;color:#4a5568;border-color:#cbd5e0}@media (max-width: 768px){.project-modal-container{width:95%;max-width:none;margin:10px}.project-row{grid-template-columns:30px 1fr 100px;gap:8px;padding:8px 12px}.project-name-modal{font-size:12px}.role-select-modal{font-size:11px;padding:6px 8px}.modal-header h3{font-size:14px}.btn-save-modal,.btn-cancel-modal{font-size:12px;padding:8px 16px}}.role-select-inline,.department-select-inline,.project-role-select,.add-project-select{background:#fff;border:1px solid #d9d9d9;border-radius:4px;padding:4px 8px;font-size:12px;color:#262626;cursor:pointer;transition:all .2s ease;min-width:80px}.role-select-inline:hover,.department-select-inline:hover,.project-role-select:hover,.add-project-select:hover{border-color:#44c4f4;box-shadow:0 0 0 2px #44c4f41a}.role-select-inline:focus,.department-select-inline:focus,.project-role-select:focus,.add-project-select:focus{outline:none;border-color:#44c4f4;box-shadow:0 0 0 2px #44c4f433}.projects-list-inline{display:flex;flex-direction:column;gap:8px;min-width:200px}.user-projects{display:flex;flex-direction:column;gap:4px}.project-item-inline{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#f8f9fa;border-radius:4px;border:1px solid #e9ecef}.project-name-inline{font-size:12px;color:#262626;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-role-select{min-width:60px;font-size:11px;padding:2px 4px}.btn-remove-project{background:#ff4d4f;color:#fff;border:none;border-radius:3px;padding:2px 4px;cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-remove-project:hover{background:#ff7875;transform:scale(1.1)}.add-project{margin-top:4px}.add-project-select{width:100%;font-size:11px;padding:4px 6px;color:#666}.add-project-select:focus{color:#262626}.projects-list-optimized{display:flex;flex-direction:column;gap:6px;max-width:100%;align-items:flex-start}.project-selector-wrapper{margin-bottom:6px}.project-selector-dropdown{width:100%;background:#fff;border:1px solid #d9d9d9;border-radius:4px;padding:4px 6px;font-size:11px;color:#262626;cursor:pointer;transition:all .2s ease;text-align:left}.project-selector-dropdown:hover{border-color:#44c4f4;box-shadow:0 0 0 2px #44c4f41a}.project-selector-dropdown:focus{outline:none;border-color:#44c4f4;box-shadow:0 0 0 2px #44c4f433}.assigned-projects-list{display:flex;flex-direction:column;gap:3px;max-height:120px;overflow-y:auto;align-items:flex-start;width:100%}.assigned-project-item{display:flex;align-items:center;gap:6px;padding:2px 6px;background:transparent;border-radius:3px;border:none;min-height:20px;line-height:1.2}.project-status-dot{width:6px;height:6px;background:#22c55e;border-radius:50%;flex-shrink:0;margin-top:0;align-self:center}.assigned-project-item .project-name{font-size:11px;color:#262626;flex:1;line-height:1.2;display:flex;align-items:center;word-wrap:break-word}.no-projects-text{font-size:11px;color:#999;font-style:italic;padding:4px 6px;text-align:center}.btn-add-user{background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:6px;transition:all .2s ease}.btn-add-user:hover{transform:translateY(-1px);box-shadow:0 4px 12px #44c4f44d}.action-buttons{display:flex;gap:6px;justify-content:center;align-items:center}.btn-save-small,.btn-cancel-small,.btn-edit,.btn-delete{border:none;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;min-width:32px;height:32px}.btn-save-small{background:#52c41a;color:#fff}.btn-save-small:hover{background:#73d13d;transform:translateY(-1px);box-shadow:0 2px 8px #52c41a4d}.btn-cancel-small{background:#f5f5f5;color:#8c8c8c;border:1px solid #d9d9d9}.btn-cancel-small:hover{background:#e6f7ff;color:#1890ff;border-color:#91d5ff;transform:translateY(-1px)}.btn-edit{background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff}.btn-edit:hover{transform:translateY(-1px);box-shadow:0 2px 8px #44c4f44d}.btn-delete{background:#ff4d4f;color:#fff}.btn-delete:hover{background:#ff7875;transform:translateY(-1px);box-shadow:0 2px 8px #ff4d4f4d}.add-user-modal{background:#fff;border-radius:8px;width:450px;max-width:90vw;box-shadow:0 4px 20px #0000001f}.add-user-modal .modal-header{padding:14px 16px;border-bottom:1px solid #e8e8e8;background:#fafbfc;border-radius:8px 8px 0 0}.add-user-modal .modal-header h3{color:#262626;font-size:14px;font-weight:600;margin:0}.add-user-modal .modal-close{color:#8c8c8c;font-size:16px}.add-user-modal .modal-close:hover{background:#e8e8e8;color:#262626}.add-user-modal .modal-body{padding:16px;max-height:60vh;overflow-y:auto}.add-user-modal .form-row{display:flex;gap:10px;margin-bottom:12px}.add-user-modal .form-row:last-child{margin-bottom:0}.add-user-modal .form-row .form-group{flex:1;margin-bottom:0}.add-user-modal .form-group label{display:block;margin-bottom:4px;font-size:12px;font-weight:500;color:#262626}.add-user-modal .form-group input,.add-user-modal .form-group select{width:100%;padding:6px 9px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px;transition:all .2s ease;background:#fff}.add-user-modal .form-group input:hover,.add-user-modal .form-group select:hover{border-color:#40a9ff}.add-user-modal .form-group input:focus,.add-user-modal .form-group select:focus{outline:none;border-color:#40a9ff;box-shadow:0 0 0 2px #1890ff1a}.add-user-modal .form-group input::placeholder{color:#bfbfbf;font-size:12px}.add-user-modal .modal-footer{padding:12px 16px;border-top:1px solid #e8e8e8;background:#fafbfc;border-radius:0 0 8px 8px;display:flex;justify-content:flex-end;gap:8px}.add-user-modal .btn-save-modal{background:#1890ff;color:#fff;padding:6px 16px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .2s ease}.add-user-modal .btn-save-modal:hover{background:#40a9ff}.add-user-modal .btn-cancel-modal{background:#fff;color:#595959;padding:6px 16px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-user-modal .btn-cancel-modal:hover{color:#262626;border-color:#40a9ff}@media (max-width: 768px){.add-user-modal{width:90vw}.add-user-modal .modal-body{padding:14px 16px}.add-user-modal .form-row{gap:10px;margin-bottom:10px}}@media (max-width: 580px){.add-user-modal{width:95vw}.add-user-modal .form-row{flex-direction:column;gap:10px}.add-user-modal .modal-footer{flex-direction:column-reverse;gap:8px}.add-user-modal .btn-save-modal,.add-user-modal .btn-cancel-modal{width:100%;justify-content:center}}.alert{padding:12px 16px;border-radius:6px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;font-size:14px;line-height:1.5}.alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.alert button{background:none;border:none;font-size:18px;cursor:pointer;color:inherit;padding:0;margin-left:12px;line-height:1;opacity:.7;transition:opacity .2s}.alert button:hover{opacity:1}.add-user-modal .modal-body .alert{margin-bottom:16px;padding:12px 16px;border-radius:4px}.add-user-modal .modal-body .alert-error{background:#fee;color:#c33;border:1px solid #fcc}.add-user-modal .modal-body .alert-success{background:#efe;color:#3c3;border:1px solid #cfc}.add-user-modal .modal-body .alert strong{margin-right:8px}.add-user-modal .modal-body .alert button{float:right;background:none;border:none;font-size:18px;cursor:pointer;color:inherit;padding:0;margin-left:auto;line-height:1;opacity:.7}.add-user-modal .modal-body .alert button:hover{opacity:1}:root{--ranking-primary: #1890ff;--ranking-success: #52c41a;--ranking-warning: #faad14;--ranking-error: #ff4d4f;--ranking-info: #722ed1;--ranking-neutral: #595959;--ranking-text: #262626;--ranking-text-secondary: #8c8c8c;--ranking-border: #d9d9d9;--ranking-bg: #fafafa;--gradient-primary: linear-gradient(135deg, #44C4F4 0%, #34E0A1 100%);--gradient-secondary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-accent: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-warm: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #e8e8e8;--color-neutral-300: #d9d9d9;--color-neutral-400: #8c8c8c;--color-neutral-500: #595959;--color-neutral-600: #434343;--color-neutral-700: #262626;--color-neutral-800: #1a1a1a;--color-neutral-900: #000000}.config-tabs-container{display:flex;flex-direction:column;height:100%;background:var(--ranking-bg)}.config-header{background:#fff;border-bottom:1px solid #e8e8e8;padding:16px 24px;box-shadow:0 2px 8px #0000001a;flex-shrink:0}.config-header-content{max-width:none;margin:0}.config-title{margin-bottom:8px}.config-title h2{font-size:32px;font-weight:700;color:#1a1a1a;margin:0;letter-spacing:-.02em}.config-title h2:before{content:"⚙️";color:#1890ff;margin-right:8px}.config-subtitle{font-size:16px;color:#666;margin:0;font-weight:400}.config-tabs-nav{display:flex;background:#fff;border-bottom:1px solid var(--ranking-border);padding:0 32px;overflow-x:auto}.config-tab-btn{display:flex;align-items:center;padding:16px 24px;background:none;border:none;cursor:pointer;position:relative;transition:all .2s ease;border-bottom:3px solid transparent;min-width:200px}.config-tab-btn:hover{background:#f5f5f5}.config-tab-btn.active{background:#fff;border-bottom-color:var(--ranking-info)}.config-tab-btn.active:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:3px;background:var(--ranking-info);border-radius:2px 2px 0 0}.tab-btn-content{display:flex;align-items:center;gap:12px;text-align:left}.tab-icon{font-size:18px;color:var(--ranking-text-secondary);transition:all .2s ease}.config-tab-btn:hover .tab-icon{color:var(--ranking-primary)}.config-tab-btn.active .tab-icon{color:var(--ranking-info)}.tab-text{display:flex;flex-direction:column;gap:2px}.tab-label{font-size:14px;font-weight:600;color:var(--ranking-text);transition:color .2s ease}.config-tab-btn:hover .tab-label{color:var(--ranking-primary)}.config-tab-btn.active .tab-label{color:var(--ranking-info)}.tab-description{font-size:12px;color:var(--ranking-text-secondary);line-height:1.3;font-weight:400}.config-tab-content{flex:1;padding:16px 24px;overflow-y:auto;background:var(--ranking-bg);position:relative}.tab-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;gap:20px}.tab-loading .loading-spinner{width:48px;height:48px;border:3px solid var(--color-neutral-200);border-top:3px solid transparent;border-radius:50%;animation:spin 1s linear infinite;background:conic-gradient(from 0deg,transparent,var(--gradient-primary));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),white 0);mask:radial-gradient(farthest-side,transparent calc(100% - 3px),white 0)}.tab-loading p{color:var(--color-neutral-500);font-size:14px;margin:0;font-weight:500}.config-tab-content .tab-header{display:flex;justify-content:space-between;align-items:center;background:transparent;padding:0;border-radius:0;box-shadow:none;border:none;margin-bottom:24px}.config-tab-content .tab-title{display:flex;align-items:center;gap:12px}.config-tab-content .tab-title .tab-icon{font-size:18px;color:#1890ff;opacity:.7}.config-tab-content .tab-title h3{font-size:18px;font-weight:700;color:#1a1a1a;margin:0;letter-spacing:-.02em}.config-tab-content .count-badge{background:#f0f9ff;color:#262626;padding:6px 12px;border-radius:16px;font-size:14px;font-weight:600;border:1px solid #e0f2fe}.config-tab-content .tab-actions{display:flex;align-items:center;gap:20px}.config-tab-content .search-box{position:relative;display:flex;align-items:center}.config-tab-content .search-icon{position:absolute;left:16px;color:var(--color-neutral-400);font-size:16px;z-index:1}.config-tab-content .search-box input{padding:12px 16px 12px 44px;border:1px solid var(--color-neutral-300);border-radius:12px;font-size:14px;width:240px;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff;font-weight:400}.config-tab-content .search-box input:focus{outline:none;border-color:var(--color-neutral-400);box-shadow:0 0 0 3px #44c4f41a;transform:translateY(-1px)}.config-tab-content .search-box input::placeholder{color:var(--color-neutral-400);font-weight:400}.config-tab-content .alert{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:16px}.config-tab-content .alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.config-tab-content .alert-success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.config-tab-content .alert button{background:none;border:none;font-size:18px;cursor:pointer;color:inherit;opacity:.7}.config-tab-content .alert button:hover{opacity:1}.config-tab-content .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:16px}.config-tab-content .loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}.config-tab-content .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.config-tab-content .empty-icon{font-size:48px;color:#d1d5db;margin-bottom:16px}.config-tab-content .empty-state h4{font-size:18px;color:#374151;margin:0 0 8px}.config-tab-content .empty-state p{font-size:14px;color:#6b7280;margin:0}@media (max-width: 768px){.config-header{padding:16px 20px}.config-tabs-nav{padding:0 20px}.config-tab-btn{min-width:160px;padding:12px 16px}.tab-btn-content{gap:8px}.tab-icon{font-size:18px}.tab-label{font-size:14px}.tab-description{font-size:11px}.config-tab-content{padding:20px}}@media (max-width: 480px){.config-tabs-nav{flex-direction:column;padding:0}.config-tab-btn{min-width:auto;width:100%;border-bottom:1px solid #e2e8f0;border-right:none}.config-tab-btn.active{border-bottom-color:#e2e8f0;border-left:3px solid #3b82f6}}.rich-text-editor{position:relative;border:2px solid #e5e7eb;border-radius:16px;background:#fff;transition:all .3s ease}.upload-progress-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fffffff2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;border-radius:16px}.upload-progress-container{background:#fff;padding:24px;border-radius:12px;box-shadow:0 10px 25px #00000026;text-align:center;min-width:300px}.upload-progress-header{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px;font-size:16px;font-weight:600;color:#374151}.upload-spinner{animation:spin 1s linear infinite;color:#667eea}.upload-progress-bar{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:12px}.upload-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .3s ease}.upload-progress-text{font-size:14px;color:#6b7280;font-weight:500}.rich-text-editor:focus-within{border-color:#667eea;box-shadow:0 0 0 4px #667eea26}.rich-text-editor .editor-toolbar{display:flex;align-items:center;gap:4px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-radius:16px 16px 0 0}.rich-text-editor .toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:#4b5563;transition:all .2s ease;font-size:14px}.rich-text-editor .toolbar-btn:hover{background:#e2e8f0;color:#1f2937}.rich-text-editor .toolbar-btn:active,.rich-text-editor .toolbar-btn.active{background:#667eea;color:#fff}.rich-text-editor .toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.rich-text-editor .toolbar-separator{width:1px;height:20px;background:#d1d5db;margin:0 4px}.rich-text-editor .editor-content{padding:16px 20px;min-height:120px;color:#1f2937;font-size:14px;line-height:1.6;font-family:inherit;outline:none;border-radius:0 0 16px 16px}.rich-text-editor .editor-content:empty:before{content:attr(data-placeholder);color:#9ca3af;font-style:normal;pointer-events:none}.rich-text-editor .editor-content[contenteditable=false]{background:#f9fafb;color:#6b7280;cursor:not-allowed}.rich-text-editor .editor-content strong,.rich-text-editor .editor-content b{font-weight:600}.rich-text-editor .editor-content em,.rich-text-editor .editor-content i{font-style:italic}.rich-text-editor .editor-content u{text-decoration:underline}.rich-text-editor .editor-content ul,.rich-text-editor .editor-content ol{padding-left:24px;margin:8px 0}.rich-text-editor .editor-content ul{list-style-type:disc}.rich-text-editor .editor-content ol{list-style-type:decimal}.rich-text-editor .editor-content li{margin-bottom:4px}.rich-text-editor .editor-content a{color:#667eea;text-decoration:underline}.rich-text-editor .editor-content a:hover{color:#5a67d8}.rich-text-editor .editor-content img{max-width:60%;max-height:300px;width:auto;height:auto;border-radius:8px;margin:8px auto;display:block;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:transform .2s ease}.rich-text-editor .editor-content img:hover{transform:scale(1.02);cursor:pointer}.rich-text-editor .toolbar-btn[title=上传Word文档]{color:#2b6cb0}.rich-text-editor .toolbar-btn[title=上传Word文档]:hover{background:#e6f3ff;color:#1a5490}.rich-text-editor .toolbar-btn[title=导出为Word文档]{color:#059669}.rich-text-editor .toolbar-btn[title=导出为Word文档]:hover{background:#d1fae5;color:#047857}.rich-text-editor .editor-content blockquote{border-left:4px solid #667eea;margin:16px 0;color:#6b7280;font-style:italic;background:#f8fafc;padding:12px 16px;border-radius:0 8px 8px 0}.rich-text-editor .editor-content code{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:.9em;color:#e11d48}@media (max-width: 768px){.rich-text-editor .editor-toolbar{padding:8px 12px;gap:2px}.rich-text-editor .toolbar-btn{width:28px;height:28px;font-size:12px}.rich-text-editor .editor-content{padding:12px 16px;font-size:16px;min-height:100px}.rich-text-editor .toolbar-separator{margin:0 2px}}@media (max-width: 480px){.rich-text-editor .editor-toolbar{padding:6px 10px;gap:1px}.rich-text-editor .toolbar-btn{width:26px;height:26px;font-size:11px}.rich-text-editor .editor-content{padding:10px 14px;min-height:80px;font-size:16px}.rich-text-editor .editor-content img{max-width:80%;max-height:250px}}.image-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000;display:flex;align-items:center;justify-content:center;z-index:99999;padding:20px;opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.image-preview-overlay.show{background:#000c;opacity:1;visibility:visible}.image-preview-container{position:relative;max-width:90vw;max-height:90vh;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px #0000004d;transform:scale(.8) translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1)}.image-preview-overlay.show .image-preview-container{transform:scale(1) translateY(0)}.image-preview-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:#0009;color:#fff;border-radius:50%;cursor:pointer;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:10000;transition:background .2s ease}.image-preview-close:hover{background:#000c}.image-preview-img{max-width:100%;max-height:80vh;width:auto;height:auto;display:block;margin:0 auto;opacity:0;transform:scale(.9);transition:all .4s cubic-bezier(.4,0,.2,1)}.image-preview-overlay.show .image-preview-img{opacity:1;transform:scale(1)}.image-preview-info{padding:12px 16px;background:#f8fafc;color:#4b5563;font-size:14px;text-align:center;border-top:1px solid #e5e7eb;opacity:0;transform:translateY(10px);transition:all .3s cubic-bezier(.4,0,.2,1) .1s}.image-preview-overlay.show .image-preview-info{opacity:1;transform:translateY(0)}@media (max-width: 768px){.image-preview-overlay{padding:10px}.image-preview-container{max-width:95vw;max-height:95vh}.image-preview-img{max-height:75vh}.image-preview-close{width:28px;height:28px;font-size:16px}}@media (max-width: 480px){.image-preview-overlay{padding:5px}.image-preview-container{max-width:98vw;max-height:98vh}.image-preview-img{max-height:70vh}.image-preview-close{width:24px;height:24px;font-size:14px}}.rich-text-editor .editor-content h1,.rich-text-editor .editor-content h2,.rich-text-editor .editor-content h3,.rich-text-editor .editor-content h4,.rich-text-editor .editor-content h5,.rich-text-editor .editor-content h6,.rich-text-editor .editor-content .generated-heading{display:block;font-weight:700;line-height:1.4;margin:20px 0 12px;color:#2563eb;border-bottom:2px solid #e5e7eb;padding-bottom:8px;text-align:left}.rich-text-editor .editor-content h1{font-size:24px}.rich-text-editor .editor-content h2{font-size:20px}.rich-text-editor .editor-content h3,.rich-text-editor .editor-content .generated-heading{font-size:18px}.rich-text-editor .editor-content h4{font-size:16px}.rich-text-editor .editor-content h5{font-size:15px}.rich-text-editor .editor-content h6{font-size:14px}.rich-text-editor .editor-content li.generated-heading{list-style:none;padding-left:0;margin-left:0}.rich-text-editor .editor-content ol li:not(.generated-heading){list-style-type:decimal}.rich-text-editor .editor-content ul li:not(.generated-heading){list-style-type:disc}@media (max-width: 768px){.rich-text-editor .editor-content h1,.rich-text-editor .editor-content h2,.rich-text-editor .editor-content h3,.rich-text-editor .editor-content h4,.rich-text-editor .editor-content h5,.rich-text-editor .editor-content h6,.rich-text-editor .editor-content .generated-heading{margin:16px 0 10px;border-bottom-width:1px}.rich-text-editor .editor-content h1{font-size:22px}.rich-text-editor .editor-content h2{font-size:18px}.rich-text-editor .editor-content h3,.rich-text-editor .editor-content .generated-heading{font-size:16px}}.employee-report-modal{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.employee-report-modal .draggable-modal-content{padding:0;overflow:scroll}.title-text{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.employee-name{font-weight:600;color:#262626}.week-info{display:flex;align-items:center;gap:4px;color:#666;font-size:13px;font-weight:400}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#666}.loading-content .loading-spinner{font-size:24px;color:#1890ff;margin-bottom:16px;animation:spin 1s linear infinite}.report-detail-content{padding:32px;background:#fafafa;min-height:0;height:calc(90vh - 120px)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#8c8c8c}.report-detail-content{display:flex;flex-direction:column;gap:32px;max-width:100%;min-height:100%}.report-meta{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:#fff;border-radius:12px;border:1px solid #e8e8e8;box-shadow:0 2px 8px #0000000a}.meta-item{display:flex;align-items:center;gap:8px;color:#595959;font-size:14px}.meta-item svg{font-size:14px;color:#8c8c8c}.status-indicator{display:flex;align-items:center;gap:6px;padding:4px 12px;background:#fff;border-radius:16px;border:1px solid #e0e0e0;font-weight:500}.report-sections{display:flex;flex-direction:column;gap:24px}.report-section{background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 2px 8px #0000000a}.report-section h4{margin:0;padding:18px 24px;background:transparent;color:#1890ff;font-size:18px;font-weight:600;border-bottom:none}.section-content{padding:28px;color:#595959;line-height:1.7;font-size:15px;white-space:pre-wrap;min-height:100px;background:#fff}.section-content.rich-content{white-space:normal}.section-content.rich-content div{line-height:1.7;font-size:14px}.section-content.rich-content h1,.section-content.rich-content h2,.section-content.rich-content h3,.section-content.rich-content h4,.section-content.rich-content h5,.section-content.rich-content h6{margin:16px 0 12px;font-weight:600;color:#262626}.section-content.rich-content h1{font-size:24px}.section-content.rich-content h2{font-size:20px}.section-content.rich-content h3{font-size:18px}.section-content.rich-content h4{font-size:16px}.section-content.rich-content h5{font-size:14px}.section-content.rich-content h6{font-size:13px}.section-content.rich-content p{margin:8px 0;line-height:1.7}.section-content.rich-content ul,.section-content.rich-content ol{margin:12px 0;padding-left:24px}.section-content.rich-content li{margin:4px 0;line-height:1.6}.section-content.rich-content blockquote{margin:16px 0;padding:12px 16px;border-left:4px solid #667eea;background:#f8f9ff;color:#595959;font-style:italic}.section-content.rich-content a{color:#667eea;text-decoration:none}.section-content.rich-content a:hover{text-decoration:underline}.section-content.rich-content strong{font-weight:600;color:#262626}.section-content.rich-content em{font-style:italic}.section-content.rich-content code{background:#f5f5f5;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:13px}.section-content.rich-content pre{background:#f5f5f5;padding:12px;border-radius:6px;overflow-x:auto;margin:12px 0}.section-content.rich-content pre code{background:none;padding:0}.section-content.rich-content img{max-width:100%;height:auto;border-radius:6px;margin:12px 0}.section-content.rich-content table{width:100%;border-collapse:collapse;margin:16px 0}.section-content.rich-content th,.section-content.rich-content td{border:1px solid #e8e8e8;padding:8px 12px;text-align:left}.section-content.rich-content th{background:#f8f9fa;font-weight:600}.section-content.rich-content hr{border:none;border-top:1px solid #e8e8e8;margin:20px 0}.report-timestamps{display:flex;flex-direction:column;gap:12px;padding:20px 24px;background:#fff;border-radius:12px;border:1px solid #e8e8e8;box-shadow:0 2px 8px #0000000a}.timestamp-row{display:flex;gap:24px;align-items:center}.timestamp-item{display:flex;align-items:center;gap:8px;font-size:13px}.timestamp-item .label{color:#8c8c8c;font-weight:600}.timestamp-item .value{color:#262626;font-weight:500}.no-report-container{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#bfbfbf;font-size:16px}@media (max-width: 1200px){.employee-report-detail-modal{max-width:95vw;width:95vw}}@media (max-width: 768px){.employee-report-detail-overlay{padding:10px}.employee-report-detail-modal{max-height:95vh;max-width:98vw;width:98vw}.modal-header{padding:16px 20px}.header-info{gap:12px}.employee-avatar{width:40px;height:40px;font-size:16px}.header-text h3{font-size:16px}.modal-content{padding:20px}.report-meta{flex-direction:column;align-items:flex-start;gap:12px;padding:12px 16px}.report-section h4{padding:12px 16px;font-size:15px}.section-content{padding:16px;font-size:13px}.report-timestamps{padding:12px 16px}}@media (max-width: 480px){.employee-report-detail-overlay{padding:5px}.modal-header{padding:12px 16px}.header-text h3{font-size:15px}.week-info{font-size:13px}.modal-content{padding:16px}.report-detail-content,.report-sections{gap:16px}}.report-section .readonly-editor .editor-content{border:none;border-radius:0;background:transparent;color:#595959;font-size:15px;line-height:1.7;padding:0;min-height:auto}.report-section .section-content{padding:28px;background:#fff}.report-section.no-header .section-content{padding:0;background:transparent}.project-report-modal{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.project-report-modal .draggable-modal-content{padding:0;overflow:scroll}.modal-title-content{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.title-icon{color:#1890ff;font-size:16px}.week-info{display:flex;align-items:center;gap:4px;margin-left:auto;color:#666;font-size:13px;font-weight:400}.week-icon{color:#52c41a;font-size:12px}.export-btn{background:none;border:none;padding:8px;border-radius:4px;cursor:pointer;color:#666;transition:all .3s;display:flex;align-items:center;justify-content:center}.export-btn:hover{background-color:#e6f7ff;color:#1890ff}.report-content{padding:0 32px;flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;position:relative}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:16px}.loading-spinner{font-size:24px;color:#1890ff;animation:spin 1s linear infinite}.error-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:16px}.retry-btn{padding:8px 16px;background-color:#1890ff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.report-sections{width:100%;display:flex;flex-direction:column;gap:28px;padding:0;max-width:100%}.report-section{border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000000d;transition:box-shadow .3s ease}.report-section:hover{box-shadow:0 4px 8px #0000001a}.report-section h4{margin:0;padding:16px 20px;background:transparent;color:#1890ff;font-size:16px;font-weight:600;border-bottom:none;position:relative}.report-section h4:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff4d}.content-display{padding:28px;background-color:#fff;min-height:120px;max-height:none}.content-display .rich-text-display{font-size:15px;line-height:1.8}.content-display .rich-text-display .empty-content{background-color:#f8f9fa;border:2px dashed #dee2e6;border-radius:6px;padding:24px;text-align:center;color:#6c757d;font-style:italic;margin:0}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:16px;padding:40px}.loading-spinner{font-size:32px;color:#1890ff;animation:spin 1s linear infinite}.loading-content p{color:#666;font-size:16px;margin:0}.error-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:16px;padding:40px}.error-icon{font-size:48px;color:#ff4d4f}.error-content p{color:#ff4d4f;font-size:16px;margin:0;text-align:center}.retry-btn{padding:10px 20px;background-color:#1890ff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .3s}.retry-btn:hover{background-color:#40a9ff}.no-report-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;gap:20px;padding:40px}.no-report-icon{font-size:80px;color:#d9d9d9}.no-report-content h4{margin:0;color:#666;font-size:20px;font-weight:600}.no-report-content p{margin:0;color:#999;font-size:16px;line-height:1.5}.project-info{margin-top:20px;padding:20px;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;text-align:left;max-width:400px}.project-info p{margin:8px 0;color:#666;font-size:14px}.project-info strong{color:#333;font-weight:600}@media (max-width: 768px){.project-report-modal{margin:10px}.modal-title-content{flex-direction:column;align-items:flex-start;gap:8px}.week-info{margin-left:0}.report-content{padding:16px}.report-section h4{padding:12px 16px;font-size:14px}.content-display{padding:16px}.no-report-content{padding:20px;min-height:200px}.no-report-icon{font-size:60px}.no-report-content h4{font-size:18px}.no-report-content p{font-size:14px}}@media (max-width: 480px){.report-content,.content-display{padding:12px}.report-section h4{padding:10px 12px;font-size:13px}}.report-section .readonly-editor{border:none;border-radius:0;background:transparent}.report-section .readonly-editor .editor-toolbar{display:none}.report-section .readonly-editor .editor-content{border:none;border-radius:0;background:transparent;color:#333;font-size:14px;line-height:1.6;padding:0;min-height:auto}.report-section .readonly-editor .editor-content:focus{outline:none;box-shadow:none}.report-section .readonly-editor .editor-content[data-placeholder]:empty:before{content:attr(data-placeholder);color:#999;font-style:italic}.report-section .content-display{padding:20px;background:#fff}.report-section .unified-report{border:none;background:transparent}.report-section .unified-report .editor-content{padding:0;background:transparent;min-height:500px}.report-section .unified-report .editor-content h3{font-size:16px!important;font-weight:600!important;margin:24px 0 12px!important;padding-bottom:8px!important;background:transparent!important;border:none!important;border-bottom:1px solid #f0f0f0!important}.report-section .unified-report .editor-content h3:nth-of-type(1){color:#1890ff!important;border-bottom-color:#1890ff33!important}.report-section .unified-report .editor-content h3:nth-of-type(2){color:#52c41a!important;border-bottom-color:#52c41a33!important}.report-section .unified-report .editor-content h3:nth-of-type(3){color:#fa8c16!important;border-bottom-color:#fa8c1633!important}.report-section .unified-report .editor-content h3:nth-of-type(4){color:#722ed1!important;border-bottom-color:#722ed133!important}.report-section .unified-report .editor-content h3:first-child{margin-top:0!important}.report-section.no-header{border:none;background:transparent;box-shadow:none}.report-section.no-header .content-display{padding:0;background:transparent}.department-card{background:#fff;border-radius:12px;border:1px solid #e8e8e8;box-shadow:0 2px 8px #0000000f;padding:20px;margin-bottom:20px;transition:all .3s ease;min-height:400px;display:flex;flex-direction:column}.department-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.department-card.loading{min-height:200px;justify-content:center;align-items:center}.department-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.department-header h3{margin:0;color:#262626;font-size:18px;font-weight:600}.member-count{background:#f0f9ff;color:#0369a1;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500}.loading-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:#666}.loading-spinner{font-size:24px;animation:spin 1s linear infinite}.stats-section{margin-bottom:24px}.stats-title{text-align:center;font-size:16px;font-weight:600;color:#262626;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #e9ecef}.department-stats{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:20px;padding:0 16px 8px}.stat-item{flex:0 1 auto;width:100px;background:#fff;border-radius:6px;padding:12px 8px;text-align:center;border:2px solid transparent;transition:all .2s ease;box-shadow:0 2px 8px #0000000a;cursor:pointer;margin-bottom:4px}.stat-item.total,.stat-item.submitted,.stat-item.draft,.stat-item.not-submitted{border-color:#d9d9d9}.stat-value{font-size:20px;font-weight:700;line-height:1;margin-bottom:6px;display:block}.stat-label{font-size:11px;color:#8c8c8c;font-weight:500;text-align:center;white-space:nowrap;line-height:1.2}.department-content{flex:1;overflow-y:auto}.employee-cards-grid,.project-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:16px}.employee-card,.project-card{background:#fff;border-radius:8px;padding:20px;border:1px solid #f0f0f0;transition:all .2s ease;cursor:pointer;position:relative;text-align:center;min-height:140px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 1px 3px #0000000d}.employee-name,.project-name{font-size:14px;font-weight:600;color:#262626;margin-bottom:8px;line-height:1.4}.employee-department,.project-manager{font-size:12px;color:#8c8c8c;margin-bottom:8px;line-height:1.3}.status-text{font-size:12px;font-weight:500;padding:4px 8px;border-radius:4px;text-align:center;margin-top:8px;margin-bottom:4px}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#666;text-align:center}.no-data-icon{font-size:32px;color:#d9d9d9;margin-bottom:12px}@media (max-width: 768px){.department-card{padding:16px;min-height:300px}.department-header h3{font-size:16px}.member-count{font-size:11px;padding:3px 8px}.department-stats{gap:8px;padding:0 8px 8px}.stat-item{padding:8px;min-width:50px;margin-bottom:4px}.stat-value{font-size:16px}.stat-label{font-size:10px}.employee-cards-grid,.project-cards-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.employee-card,.project-card{padding:12px;min-height:100px}.employee-name,.project-name{font-size:13px}.employee-department,.project-manager{font-size:11px}.status-text{font-size:10px;padding:2px 4px}}@media (max-width: 480px){.department-stats{flex-direction:column;gap:6px;padding:0 8px 8px}.stat-item{flex-direction:row;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:4px}.stat-icon{margin-bottom:0;margin-right:8px}.employee-cards-grid,.project-cards-grid{grid-template-columns:repeat(2,1fr)}}.week-selector{display:flex;align-items:center;justify-content:flex-end}.week-navigation-controls{display:flex;align-items:center;gap:4px;background:linear-gradient(135deg,#44c4f4,#34e0a1);border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:6px 8px;box-shadow:0 2px 8px #44c4f440;height:32px}.week-nav-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid rgba(255,255,255,.3);background:#fdfdfd26;color:#fff;border-radius:3px;cursor:pointer;transition:all .3s ease;font-size:10px;font-weight:500}.week-nav-btn:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.week-nav-btn:active{transform:translateY(0)}.week-display-text{display:flex;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap;min-width:65px;justify-content:center;letter-spacing:-.025em;text-shadow:0 1px 2px rgba(0,0,0,.2)}.week-selector .calendar-icon{color:#fff!important;font-size:11px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}@media (max-width: 768px){.week-navigation-controls{gap:3px;padding:4px 6px;height:28px}.week-nav-btn{width:18px;height:18px;font-size:8px}.week-display-text{padding:0 6px;font-size:10px;min-width:55px}.week-selector .calendar-icon{color:#fff!important;font-size:9px}}@media (max-width: 480px){.week-navigation-controls{gap:2px;padding:2px 3px;height:24px}.week-nav-btn{width:14px;height:14px;font-size:6px;border-radius:2px}.week-display-text{padding:0 4px;font-size:8px;min-width:42px}.week-selector .calendar-icon{color:#fff!important;font-size:7px}}.department-horizontal-layout{padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.layout-header{text-align:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.layout-header h2{margin:0 0 8px;color:#262626;font-size:20px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px}.header-icon{color:#1890ff}.layout-description{margin:0;color:#666;font-size:14px}.department-layout-loading,.department-layout-error,.department-layout-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#666}.error-icon,.empty-icon{font-size:48px;color:#d9d9d9;margin-bottom:16px}.department-layout-error h3,.department-layout-empty h3{margin:0 0 8px;color:#262626;font-size:18px}.department-layout-error p,.department-layout-empty p{margin:0 0 16px;color:#666}.department-tabs-layout{padding:0;background:transparent;border-radius:0;box-shadow:none}.department-tabs-header{text-align:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.department-tabs-header h2{margin:0 0 8px;color:#262626;font-size:20px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px}.department-tabs-header .header-icon{color:#1890ff}.department-tabs-header .layout-description{margin:0;color:#666;font-size:14px}.department-tabs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:16px;padding-bottom:8px}.department-tabs-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;flex:1}.department-tab-icon{font-size:12px}.department-tab-name{font-weight:500}.department-tab-count{background:#fff3;padding:2px 6px;border-radius:10px;font-size:11px;margin-left:4px}.department-tab.active .department-tab-count{background:#ffffff4d}.department-week-selector{flex-shrink:0}.department-content{min-height:200px}.departments-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px}@media (max-width: 768px){.department-horizontal-layout,.department-tabs-layout{padding:16px}.layout-header h2,.department-tabs-header h2{font-size:18px}.layout-description{font-size:13px}.departments-grid{grid-template-columns:1fr;gap:16px}.department-tabs-header{flex-direction:column;align-items:stretch;gap:12px}.department-tabs-nav{gap:6px}.department-tab{padding:6px 12px;font-size:13px}.department-tab-count{font-size:10px;padding:1px 4px}}@media (max-width: 480px){.department-tabs-nav{flex-direction:column;gap:8px}.department-tab{justify-content:center}}.weekly-reports-admin{display:flex;flex-direction:column;gap:12px;height:100%;background:transparent;padding:16px}.weekly-reports-admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:#666}.loading-spinner{font-size:24px;animation:spin 1s linear infinite;margin-bottom:12px;color:#1890ff}.stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:8px}.stat-card{background:#fff;color:#262626;padding:20px;border-radius:12px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #0000001a;border:1px solid #e8e8e8;transition:all .3s ease;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#722ed1}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.stat-card:nth-child(1):before{background:#722ed1}.stat-card:nth-child(1) .stat-icon{background:#f9f0ff;color:#722ed1}.stat-card:nth-child(2):before{background:#52c41a}.stat-card:nth-child(2) .stat-icon{background:#f6ffed;color:#52c41a}.stat-card:nth-child(3):before{background:#faad14}.stat-card:nth-child(3) .stat-icon{background:#e8e6ff;color:#faad14}.stat-card:nth-child(4):before{background:#2756e5}.stat-card:nth-child(4) .stat-icon{background:#fdffe6;color:#faad14}.stat-icon{font-size:20px;padding:12px;border-radius:8px;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;transition:all .3s ease}.stat-value{font-size:24px;font-weight:700;margin-bottom:4px;color:#262626}.stat-label{font-size:14px;color:#8c8c8c;font-weight:500}.tabs-container{margin-bottom:8px}.tabs-nav{display:flex;background:#fff;border-bottom:1px solid #d9d9d9;padding:0;overflow-x:auto}.tab-button{display:flex;align-items:center;padding:16px 24px;background:none;border:none;cursor:pointer;position:relative;transition:all .2s ease;border-bottom:3px solid transparent;color:#8c8c8c;font-size:14px;font-weight:500;gap:8px;min-width:120px;justify-content:center}.tab-button:hover{background:#f5f5f5;color:#722ed1}.tab-button.active{background:#fff;color:#722ed1;border-bottom-color:#722ed1}.tab-button.active:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:3px;background:#722ed1;border-radius:2px 2px 0 0}.tab-icon{font-size:16px;transition:color .2s ease}.tab-button:hover .tab-icon,.tab-button.active .tab-icon{color:#722ed1}.tab-content{flex:1;background:transparent;padding:0;border:none;box-shadow:none}.overview-content{display:flex;flex-direction:column;gap:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;align-items:stretch}@media (min-width: 1200px){.stats-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 768px) and (max-width: 1199px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stats-card.submission-stats{background:#fff;border:none}.stats-card.submission-stats:after{background:#faad14}.stats-card.submission-stats h3{color:#262626;font-weight:600}.stats-card.activity-stats{background:#fff;border:none}.stats-card.activity-stats:after{background:#ff4d4f}.stats-card.activity-stats h3{color:#262626;font-weight:600}.period-info{padding:16px;background:#fafafa;border-radius:8px;border:none}.period-info h4{margin:0 0 8px;color:#262626;font-size:16px;font-weight:600}.period-info p{margin:0;color:#8c8c8c;font-size:14px}.stats-card{background:#fff;padding:24px;border-radius:12px;border:none;box-shadow:0 1px 3px #0000001a;transition:all .3s ease;position:relative;display:flex;flex-direction:column;min-height:320px}.user-reports-container{display:flex;gap:20px}.user-list-sidebar{width:240px;flex-shrink:0;background-color:#f8f9fa;padding:15px;border-radius:8px;border:1px solid #dee2e6;height:600px;display:flex;flex-direction:column}.user-list-sidebar h4{margin-top:0;margin-bottom:15px;font-size:16px;color:#343a40}.user-list-sidebar select{width:100%;padding:8px 12px;border:1px solid #d9d9d9;border-radius:6px;background-color:#fff;font-size:14px;color:#333;margin-bottom:10px;transition:border-color .3s ease,box-shadow .3s ease}.user-list-sidebar select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.user-list-sidebar select:hover{border-color:#007bff}.user-list-sidebar ul{list-style:none;padding:0;margin:0;flex:1;overflow-y:auto;max-height:calc(100% - 80px)}.user-list-sidebar ul::-webkit-scrollbar{width:6px}.user-list-sidebar ul::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.user-list-sidebar ul::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.user-list-sidebar ul::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.search-results-count{font-size:12px;color:#6c757d;margin-bottom:8px;padding:4px 8px;background-color:#e9ecef;border-radius:4px;text-align:center}.user-list-sidebar li{padding:10px 12px;cursor:pointer;border-radius:6px;margin-bottom:5px;transition:background-color .2s ease,color .2s ease}.user-list-sidebar li:hover{background-color:#e9ecef}.user-list-sidebar li.active{background-color:#007bff;color:#fff;font-weight:700}.user-list-sidebar li>div{display:flex;flex-direction:column;gap:2px}.user-list-sidebar li>div>div:first-child{font-weight:500;font-size:14px}.user-list-sidebar li>div>small{font-size:12px;opacity:.8}.user-list-sidebar li.active>div>small{color:#fffc}.reports-content-main{flex-grow:1}.reports-header-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.reports-header-controls h3{margin:0}.stats-card:nth-child(1):after{background:#722ed1}.stats-card:nth-child(2):after{background:#52c41a}.stats-card:nth-child(3):after{background:#faad14}.stats-card:nth-child(4):after{background:#ff4d4f}.stats-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.stats-card h3{margin:0 0 20px;color:#262626;font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.stats-items{display:flex;flex-direction:column;gap:0;flex:1;justify-content:space-evenly}.stats-item{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #f0f0f0;min-height:56px}.stats-item:last-child{border-bottom:none}.stats-item .label{color:#666;font-weight:500;font-size:14px;flex:1;text-align:left}.stats-item .value{font-weight:700;font-size:18px;text-align:right;min-width:60px;margin-left:16px}.stats-item .value.submitted{color:#3b82f6;background:#eff6ff;padding:4px 8px;border-radius:4px;font-size:14px}.stats-item .value.reviewed,.stats-item .value.approved{color:#059669;background:#ecfdf5;padding:4px 8px;border-radius:4px;font-size:14px}.stats-item .value.draft{color:#64748b;background:#f8fafc;padding:4px 8px;border-radius:4px;font-size:14px}.stats-item .value.not-submitted{color:#f59e0b;background:#fffbeb;padding:4px 8px;border-radius:4px;font-size:14px}.stats-item .value.rate{color:#0ea5e9;font-weight:700;background:#f0f9ff;padding:4px 8px;border-radius:4px}.stats-item .value.rate.overall{color:#059669;background:#ecfdf5;font-size:18px;padding:6px 12px}.stats-item .value.overdue{color:#dc2626;background:#fef2f2;padding:4px 8px;border-radius:4px;font-weight:700}.stats-item .value.new{color:#1890ff;background:#e6f7ff;padding:4px 8px;border-radius:4px;font-weight:700}.stats-item .value.total{color:#722ed1;background:#f9f0ff;padding:4px 8px;border-radius:4px;font-weight:600}.stats-item .value.activity{color:#ff4d4f;background:#fff1f0;padding:4px 8px;border-radius:4px;font-weight:700}.stats-item .value.activity.overall{font-size:18px;padding:6px 12px}.stats-item .value.participants{color:#fa541c;background:#fff2e8;padding:4px 8px;border-radius:4px;font-weight:700}.reports-content h3{margin:0 0 16px;color:#262626;font-size:18px;font-weight:600}.reports-list{display:flex;flex-direction:column;gap:12px;max-height:500px;overflow-y:auto;padding-right:8px}.reports-list::-webkit-scrollbar{width:8px}.reports-list::-webkit-scrollbar-track{background:#f8f9fa;border-radius:4px}.reports-list::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:4px}.reports-list::-webkit-scrollbar-thumb:hover{background:#adb5bd}.report-item{background:#fafafa;padding:16px;border-radius:8px;border:1px solid #e8e8e8;transition:all .3s}.report-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.report-week{font-weight:600;color:#262626;font-size:14px}.report-user,.report-project,.report-manager{font-size:12px;color:#666}.report-project{font-weight:500;color:#1890ff}.report-status{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.report-dates{display:flex;gap:16px;font-size:12px;color:#999}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#999;text-align:center}.no-data-icon{font-size:32px;margin-bottom:12px;color:#d9d9d9}.no-data p{margin:0;font-size:14px}@media (max-width: 768px){.stats-summary{grid-template-columns:1fr}.stat-card{padding:16px}.stat-value{font-size:18px}.stats-grid{grid-template-columns:1fr}.report-header{flex-direction:column;align-items:flex-start;gap:8px}.report-dates{flex-direction:column;gap:4px}.tabs-nav{flex-direction:column}.tab-button{justify-content:flex-start}}.view-report-btn{padding:4px 8px!important;height:auto!important;font-size:12px;color:#1890ff!important;border:1px solid #d9d9d9;border-radius:4px;background:#fff;transition:all .2s ease}.view-report-btn:hover{color:#40a9ff!important;border-color:#40a9ff;background:#f0f8ff}.report-detail-modal .ant-modal-body{padding:24px}.report-detail-content{max-height:600px;overflow-y:auto}.report-content-text{white-space:pre-wrap;line-height:1.6;color:#262626;background:#fafafa;padding:12px;border-radius:6px;border:1px solid #f0f0f0;min-height:60px}.report-detail-modal .ant-descriptions-item-label{font-weight:600;color:#262626;width:120px;min-width:120px;white-space:nowrap;vertical-align:middle;text-align:center;padding-right:16px;background-color:#fafafa;border-right:1px solid #f0f0f0}.report-detail-modal .ant-descriptions-item-content{color:#595959;word-wrap:break-word;word-break:break-all;vertical-align:middle;padding-left:16px}.report-detail-modal .ant-descriptions-item{padding-bottom:12px;border-bottom:1px solid #f0f0f0;margin-bottom:8px}.report-detail-modal .ant-descriptions-item:last-child{border-bottom:none;margin-bottom:0}.report-detail-modal .ant-descriptions-row{margin-bottom:0}.report-detail-modal .ant-tag{margin:0;padding:4px 12px;border-radius:16px;font-weight:500}.report-detail-modal .ant-descriptions-item-label,.report-detail-modal .ant-descriptions-item-content{display:table-cell;vertical-align:middle}.report-detail-modal .ant-descriptions-item{display:table;width:100%;table-layout:fixed}.report-detail-modal .ant-descriptions-item-content pre{white-space:pre-wrap;word-wrap:break-word;font-family:inherit;margin:0}.report-detail-modal .ant-descriptions-item-content .ant-tag{vertical-align:middle}.stat-card.clickable{cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.stat-card.clickable:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026;border-color:#1890ff}.stat-card.clickable:hover .stat-icon{color:#1890ff;transform:scale(1.1)}.stat-card.clickable .stat-hint{font-size:12px;color:#8c8c8c;margin-top:4px;transition:color .3s ease}.stat-card.clickable:hover .stat-hint{color:#1890ff}.submission-detail-modal .ant-modal-content{border-radius:12px}.submission-detail-content{max-height:70vh;overflow-y:auto}.submission-section{margin-bottom:24px}.submission-section:last-child{margin-bottom:0}.section-title{display:flex;align-items:center;font-size:16px;font-weight:600;color:#262626;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #f0f0f0}.status-summary{display:flex;gap:24px;margin-bottom:20px;justify-content:center}.summary-item{display:flex;flex-direction:column;align-items:center;padding:16px 24px;border-radius:8px;min-width:100px}.summary-item.submitted{background:linear-gradient(135deg,#f6ffed,#d9f7be);border:1px solid #b7eb8f}.summary-item.not-submitted{background:linear-gradient(135deg,#fff2e8,#ffd8bf);border:1px solid #ffbb96}.summary-item .count{font-size:28px;font-weight:700;line-height:1;margin-bottom:4px}.summary-item.submitted .count{color:#52c41a}.summary-item.not-submitted .count{color:#fa8c16}.summary-item .label{font-size:14px;color:#595959}.detail-lists{display:flex;gap:20px}.detail-list{flex:1;background:#fafafa;border-radius:8px;padding:16px}.detail-list.submitted{border-left:4px solid #52c41a}.detail-list.not-submitted{border-left:4px solid #fa8c16}.list-title{font-size:14px;font-weight:600;margin-bottom:12px;color:#262626}.user-list,.project-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto}.user-item,.project-item{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:#fff;border-radius:6px;border:1px solid #e8e8e8;font-size:13px}.user-name,.project-name{font-weight:600;color:#262626}.user-department,.project-manager{color:#8c8c8c;font-size:12px}.submit-time{color:#52c41a;font-size:12px;font-weight:500}.empty-message{text-align:center;color:#8c8c8c;font-style:italic;padding:20px}.stats-item.clickable-stat{cursor:pointer;transition:all .3s ease;border-radius:6px;padding:8px 12px;position:relative;background:transparent}.stats-item.clickable-stat:hover{background:#f0f9ff;transform:translateY(-1px);box-shadow:0 2px 8px #1890ff26}.stats-item.clickable-stat .click-hint{font-size:11px;color:#8c8c8c;display:block;margin-top:2px;opacity:0;transition:opacity .3s ease}.stats-item.clickable-stat:hover .click-hint{opacity:1;color:#1890ff}.stats-item.clickable-stat:hover .value{color:#1890ff!important}.status-detail-section{padding:16px 0}.detail-item{background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;padding:16px;margin-bottom:12px;transition:all .3s ease}.detail-item:hover{border-color:#1890ff;box-shadow:0 2px 8px #1890ff26}.item-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.item-name{font-weight:600;color:#262626;font-size:14px}.item-department,.item-manager{color:#8c8c8c;font-size:12px}.item-details{display:flex;gap:16px;margin-bottom:8px;flex-wrap:wrap}.detail-time{font-size:12px;color:#52c41a;background:#f6ffed;padding:2px 8px;border-radius:4px;border:1px solid #d9f7be}.item-summary{margin-top:8px;padding-top:8px;border-top:1px solid #e8e8e8}.summary-label{font-size:12px;color:#8c8c8c;margin-right:8px}.summary-text{font-size:13px;color:#595959;line-height:1.4}.list-container{max-height:60vh;overflow-y:auto;padding-right:8px}.list-container::-webkit-scrollbar{width:6px}.list-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.list-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.list-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.report-detail-modal .rich-text-editor{margin-top:8px}.report-detail-modal .rich-text-editor .editor-toolbar{background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:8px 12px}.report-detail-modal .rich-text-editor .editor-content{padding:12px 16px;min-height:120px;border:1px solid #e5e7eb;border-top:none;border-radius:0 0 8px 8px}.report-detail-modal .ant-descriptions-item-label{font-weight:600;color:#374151;width:120px}.report-detail-modal .ant-descriptions-item-content{padding:8px 0}.report-content-text{white-space:pre-wrap;word-break:break-word;line-height:1.6;color:#333;background:#f8f9fa;padding:12px;border-radius:6px;border:1px solid #e9ecef;min-height:60px}.department-overview-content{display:flex;flex-direction:column;gap:24px}.overall-stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.overall-stat-card{background:#fff;color:#262626;padding:20px;border-radius:12px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #0000001a;border:1px solid #e8e8e8;transition:all .3s ease;position:relative;overflow:hidden}.overall-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#722ed1}.overall-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.overall-stat-card:nth-child(1):before{background:#722ed1}.overall-stat-card:nth-child(1) .stat-icon{background:#f9f0ff;color:#722ed1}.overall-stat-card:nth-child(2):before{background:#1890ff}.overall-stat-card:nth-child(2) .stat-icon{background:#e6f7ff;color:#1890ff}.overall-stat-card:nth-child(3):before{background:#52c41a}.overall-stat-card:nth-child(3) .stat-icon{background:#f6ffed;color:#52c41a}.overall-stat-card:nth-child(4):before{background:#faad14}.overall-stat-card:nth-child(4) .stat-icon{background:#fffbe6;color:#faad14}.overall-stat-card .stat-hint{font-size:12px;color:#8c8c8c;margin-top:4px}.department-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px;align-items:stretch}@media (min-width: 1200px){.department-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px) and (max-width: 1199px){.department-stats-grid{grid-template-columns:1fr}}.department-stat-card{background:#fff;padding:24px;border-radius:12px;border:none;box-shadow:0 1px 3px #0000001a;transition:all .3s ease;position:relative;display:flex;flex-direction:column;min-height:400px}.department-stat-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.department-stat-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:#722ed1;border-radius:0 0 12px 12px}.department-header{margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.department-name{margin:0 0 8px;color:#262626;font-size:20px;font-weight:700;display:flex;align-items:center;gap:8px}.department-manager{font-size:14px;color:#8c8c8c;font-weight:500}.department-stats-content{display:flex;flex-direction:column;gap:20px;flex:1}.stat-section{background:#fafafa;padding:16px;border-radius:8px;border:1px solid #f0f0f0}.stat-section-title{margin:0 0 16px;color:#262626;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid #e8e8e8}.section-icon{font-size:16px;color:#722ed1}.stat-items{display:flex;flex-direction:column;gap:8px}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f0f0f0;min-height:32px}.stat-item:last-child{border-bottom:none}.stat-item.submission-rate{background:#f0f9ff;padding:8px 12px;border-radius:6px;border:1px solid #bae6fd;margin-top:8px;font-weight:600}.stat-item .label{color:#666;font-weight:500;font-size:14px;flex:1;text-align:left}.stat-item .value{font-weight:700;font-size:16px;text-align:right;min-width:50px;margin-left:16px}.stat-item .value.total{color:#722ed1;background:#f9f0ff;padding:4px 8px;border-radius:4px;font-size:14px}.stat-item .value.submitted{color:#3b82f6;background:#eff6ff;padding:4px 8px;border-radius:4px;font-size:14px}.stat-item .value.reviewed,.stat-item .value.approved{color:#059669;background:#ecfdf5;padding:4px 8px;border-radius:4px;font-size:14px}.stat-item .value.draft{color:#64748b;background:#f8fafc;padding:4px 8px;border-radius:4px;font-size:14px}.stat-item .value.not-submitted{color:#f59e0b;background:#fffbeb;padding:4px 8px;border-radius:4px;font-size:14px}.stat-item .value.rate{color:#0ea5e9;font-weight:700;background:#f0f9ff;padding:4px 8px;border-radius:4px;font-size:16px}@media (max-width: 768px){.overall-stats-summary,.department-stats-grid{grid-template-columns:1fr}.department-stat-card{padding:16px;min-height:350px}.department-name{font-size:18px}.stat-section{padding:12px}.stat-item .value{font-size:14px}}.my-projects-page .projects-table thead th,.projects-table thead th{background:#f1f5f9!important;height:48px!important;padding:16px 20px!important;color:#475569!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:1px!important;border-bottom:2px solid #e2e8f0!important;position:sticky!important;top:0!important;z-index:100!important;box-shadow:0 2px 8px #00000014!important}:root{--color-primary: #36c3f6;--color-primary-light: #e6f7ff;--color-primary-dark: #2ba9dc;--color-success: #2ecc71;--color-warning: #f59e0b;--color-danger: #ef4444;--gradient-main: linear-gradient(135deg, #36c3f6 0%, #2ecc71 100%);--gradient-main-hover: linear-gradient(135deg, #2ecc71 0%, #36c3f6 100%);--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-text-tertiary: #94a3b8;--bg-body: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);--bg-content: #ffffff;--bg-content-secondary: #fafbfc;--bg-hover: #f7f8fa;--bg-glass: rgba(255, 255, 255, .85);--bg-overlay: rgba(255, 255, 255, .95);--border-color: #e2e8f0;--border-color-light: #f1f5f9;--border-radius: 16px;--border-radius-lg: 20px;--border-radius-sm: 12px;--radius-full: 9999px;--font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .08), 0 4px 6px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1), 0 8px 10px rgba(0, 0, 0, .06);--shadow-card: 0 4px 12px rgba(0, 0, 0, .05), 0 2px 6px rgba(0, 0, 0, .08);--shadow-card-hover: 0 8px 25px rgba(0, 0, 0, .1), 0 4px 10px rgba(0, 0, 0, .08);--shadow-glass: 0 8px 32px rgba(31, 38, 135, .15);--spacing-sm: 8px;--color-bg-dark: #f3f4f6;--transition-normal: .4s}body:has(.loading-overlay-fullscreen){overflow:hidden!important}.loading-overlay-fullscreen{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;background:#fff!important;z-index:99999!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important;box-sizing:border-box!important}.loading-overlay-fullscreen .loading-content{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding:20px!important;margin:0!important;background:transparent!important}.my-projects-page.loading-state{display:none!important}.loading-spinner-enhanced{position:relative;width:60px;height:60px;margin-bottom:24px;will-change:transform;transform:translateZ(0)}.spinner-ring{position:absolute;top:0;left:0;width:100%;height:100%;border:3px solid transparent;border-radius:50%;animation:spin 2s linear infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.spinner-ring:nth-child(1){border-top-color:var(--color-primary);animation-delay:0s}.spinner-ring:nth-child(2){border-right-color:var(--color-success);animation-delay:-.67s;width:80%;height:80%;top:10%;left:10%}.spinner-ring:nth-child(3){border-bottom-color:var(--color-warning);animation-delay:-1.33s;width:60%;height:60%;top:20%;left:20%}@keyframes spin{0%{transform:rotate(0) translateZ(0)}to{transform:rotate(360deg) translateZ(0)}}.loading-text{font-size:16px;color:var(--color-text-secondary);margin:0 0 20px;font-weight:500;text-align:center;opacity:.8}.loading-progress{width:200px;height:4px;background:#36c3f61a;border-radius:2px;overflow:hidden;position:relative;will-change:contents;transform:translateZ(0)}.progress-bar-loading{height:100%;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-success) 50%,var(--color-primary) 100%);border-radius:2px;animation:loading-progress 2.5s ease-in-out infinite;width:40%;will-change:transform;transform:translateZ(0);backface-visibility:hidden}@keyframes loading-progress{0%{transform:translate(-100%) translateZ(0)}50%{transform:translate(250%) translateZ(0)}to{transform:translate(-100%) translateZ(0)}}html,body{height:100%;margin:0;overflow-x:hidden;overflow-y:auto}body{font-family:var(--font-family);background:var(--bg-body);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;line-height:1.6;background-attachment:fixed;position:relative}*{box-sizing:border-box}.my-projects-page{display:flex;flex-direction:column;min-height:100vh;padding:32px;background:transparent;gap:32px;max-width:1900px;margin:0 auto;position:relative}.my-projects-page.sidebar-layout{display:flex;flex-direction:row;padding:0;gap:0;max-width:100%;margin:0}.sidebar-navigation{width:280px;min-height:100vh;background:linear-gradient(135deg,#44c4f4,#34e0a1);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:100;box-shadow:var(--shadow-lg)}.sidebar-header{display:none}.sidebar-title{font-size:20px;font-weight:700;color:#fff;margin:0;text-align:center;letter-spacing:-.3px}.sidebar-nav{flex:1;padding:80px 0 24px;display:flex;flex-direction:column;gap:8px}.nav-item{display:flex;align-items:center;gap:16px;padding:16px 24px;background:transparent;border:none;color:#ffffffb3;font-size:15px;font-weight:500;cursor:pointer;position:relative;text-align:left;width:100%;border-radius:0}.nav-item:hover{background:#ffffff26;color:#fff}.nav-item.active{background:#fff3;color:#fff;font-weight:600;box-shadow:inset 4px 0 #fff}.nav-icon{font-size:18px;width:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-label{flex:1;white-space:nowrap}.nav-indicator{position:absolute;right:0;top:50%;transform:translateY(-50%);width:4px;height:24px;background:var(--color-primary);border-radius:2px 0 0 2px}.main-content-area{flex:1;margin-left:280px;min-height:100vh;background:#fff;padding:0;overflow-x:hidden}.content-panel{background:#fff;border:none;position:relative;overflow:hidden;width:100%;margin:0;padding:0;height:100%;box-sizing:border-box}.panel-header{padding:32px 32px 24px;border-bottom:2px solid var(--border-color);background:linear-gradient(135deg,#36c3f605,#2ecc7105);position:relative}.panel-header:after{content:"";position:absolute;bottom:-2px;left:32px;width:80px;height:2px;background:var(--gradient-main);border-radius:1px}.panel-title{font-size:24px;font-weight:700;margin:0 0 8px;color:var(--color-text-primary);letter-spacing:-.3px;display:flex;align-items:center;gap:16px}.panel-icon{color:#34e0a1;font-size:22px;filter:drop-shadow(0 2px 4px rgba(52,224,161,.2))}.panel-subtitle{font-size:16px;color:var(--color-text-secondary);margin:0;font-weight:400;line-height:1.5}.panel-count{font-size:16px;color:var(--color-text-secondary);font-weight:500;background:#36c3f61a;padding:4px 12px;border-radius:16px;margin-left:12px}.panel-content{padding:0 32px;min-height:400px}.dashboard-panel .stats-grid{margin-bottom:32px}.dashboard-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.overview-section{background:linear-gradient(135deg,#36c3f60d,#2ecc710d);border-radius:var(--border-radius);padding:24px;border:1px solid rgba(54,195,246,.1)}.overview-title{font-size:18px;font-weight:700;color:var(--color-text-primary);margin:0 0 20px;display:flex;align-items:center;gap:12px}.overview-icon{color:#34e0a1;font-size:16px}.error-panel .panel-content{display:flex;align-items:center;justify-content:center;min-height:500px}.error-container{text-align:center;max-width:500px;margin:0 auto}.error-message-box{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fecaca;border-radius:12px;padding:24px;margin-bottom:32px}.error-message{color:#dc2626;font-size:16px;margin:0;line-height:1.6}.error-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.retry-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;border:none;min-width:120px;justify-content:center}.retry-btn.primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 4px 12px #3b82f64d}.retry-btn.primary:hover{background:linear-gradient(135deg,#2563eb,#1e40af);transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.retry-btn.secondary{background:#f8fafc;color:#64748b;border:1px solid #e2e8f0}.retry-btn.secondary:hover{background:#f1f5f9;color:#475569;border-color:#cbd5e1;transform:translateY(-1px)}.nav-item:disabled{opacity:.6;cursor:not-allowed}.nav-item:disabled:hover{background:transparent;transform:none}.page-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:24px 24px 0}.page-header h1{display:flex;align-items:center;gap:16px;font-size:28px;font-weight:700;margin:0;color:var(--color-text-primary)}.page-subtitle{font-size:16px;color:var(--color-text-secondary);margin:8px 0 0;font-weight:400}.my-projects-page .stats-grid{display:grid!important;grid-template-columns:repeat(4,1fr);gap:28px;margin-bottom:40px;flex-shrink:0;width:100%;padding:0 32px}.my-projects-page .stat-card{background:linear-gradient(135deg,#fffffffa,#f8fafcf2);border-radius:var(--border-radius-lg);padding:32px 24px;border:1px solid rgba(226,232,240,.4);text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:160px;box-shadow:0 6px 24px #0000000f;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.my-projects-page .stat-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#36c3f605,#2ecc7105);pointer-events:none;z-index:0}.my-projects-page .stat-card>*{position:relative;z-index:1}.my-projects-page .stat-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 8px 30px #44c4f433;border-color:#44c4f466;background:linear-gradient(135deg,#fff,#f8fafcf2)}.my-projects-page .stat-content p{font-size:14px;color:var(--color-text-secondary);margin:0;text-transform:uppercase;letter-spacing:.8px;font-weight:600}.my-projects-page .stat-content h3{font-size:36px;font-weight:700;margin:0;line-height:1;letter-spacing:-.5px}.my-projects-page .stat-card:nth-child(1) .stat-content h3{color:var(--color-text-primary)}.my-projects-page .stat-card:nth-child(2) .stat-content h3{color:var(--color-success)}.my-projects-page .stat-card:nth-child(3) .stat-content h3{color:var(--color-primary)}.my-projects-page .stat-card:nth-child(4) .stat-content h3{color:var(--color-warning)}.my-projects-page .stat-card:nth-child(5) .stat-content h3{color:var(--color-danger)}.redesigned-main-content{display:grid;grid-template-columns:1fr;gap:24px;flex-grow:1;min-height:600px;align-items:start;width:100%}.primary-content-area{display:flex;flex-direction:column;gap:24px;width:100%}.secondary-content-area{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;width:100%;margin-top:24px}.primary-section{background:#fff;border-radius:12px;border:none;padding:24px;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden;width:100%}.primary-section:hover{box-shadow:0 4px 12px #0000001a}.secondary-section{background:#fff;border-radius:12px;border:none;padding:20px;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000000d;position:relative;min-height:200px;width:100%}.secondary-section:hover{box-shadow:0 4px 12px #0000001a}.content-section,.sidebar-card{background:#fff;border-radius:12px;border:none;padding:24px;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden;width:100%}.section-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--border-color);flex-shrink:0;position:relative}.section-header:after{content:"";position:absolute;bottom:-2px;left:0;width:60px;height:2px;background:var(--gradient-main);border-radius:1px}.section-title{font-size:20px;font-weight:700;margin:0;color:var(--color-text-primary);letter-spacing:-.3px;display:flex;align-items:center;gap:12px}.secondary-section .section-title{font-size:16px;margin-bottom:0}.section-icon{color:#34e0a1;font-size:18px;filter:drop-shadow(0 2px 4px rgba(52,224,161,.2))}.secondary-section .section-icon{font-size:14px;color:#34e0a1}.section-count{font-size:14px;color:var(--color-text-secondary);font-weight:500;background:#36c3f61a;padding:2px 8px;border-radius:12px;margin-left:8px}.section-content{flex-grow:1;overflow:visible}.content-section:hover,.sidebar-card:hover{box-shadow:0 4px 12px #0000001a}.content-section{min-height:684px;height:fit-content}.card-header{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border-color-light);flex-shrink:0;position:relative}.card-header:after{content:"";position:absolute;bottom:-1px;left:0;width:60px;height:2px;background:var(--gradient-main);border-radius:1px}.card-header h3{font-size:22px;font-weight:700;margin:0;color:var(--color-text-primary);letter-spacing:-.3px;display:flex;align-items:center;gap:12px}.header-icon{color:#34e0a1;font-size:20px;filter:drop-shadow(0 2px 4px rgba(52,224,161,.2))}.projects-table-container{max-height:800px;overflow-y:auto;overflow-x:auto;padding-right:8px;margin-right:-8px;position:relative;width:100%}.content-section .card-body{max-height:750px!important;overflow-y:auto!important;padding-right:8px;margin-right:-8px;position:relative;width:100%}.projects-table{width:100%;min-width:1200px;max-width:none;border-collapse:separate;border-spacing:0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #0000000f;border:1px solid var(--border-color-light);table-layout:auto}.my-projects-page .projects-table th,.my-projects-page .projects-table td,.projects-table th,.projects-table td{padding:16px 20px!important;vertical-align:middle!important;border-bottom:1px solid rgba(226,232,240,.6)!important;line-height:1.6!important}.projects-table td:first-child{text-align:center!important}.projects-table td:not(:first-child):not(:nth-child(2)){text-align:center!important}.projects-table thead th{background:#f1f5f9!important;font-size:14px!important;font-weight:700!important;color:#475569!important;text-transform:uppercase!important;letter-spacing:1px!important;border-bottom:2px solid #e2e8f0!important;position:sticky!important;top:0!important;z-index:100!important;box-shadow:none!important;height:48px!important;white-space:nowrap!important}.my-projects-page .projects-table tbody tr,.projects-table tbody tr{background:var(--bg-content)!important;position:relative!important;min-height:64px!important}.projects-table tbody tr.clickable:hover{background:linear-gradient(135deg,#f8fafc,#f1f5f9);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.projects-table tbody tr+tr{border-top:1px solid rgba(226,232,240,.3)}.projects-table-container::-webkit-scrollbar{height:8px}.projects-table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.projects-table-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.projects-table-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.project-info__title{font-weight:700;margin-bottom:8px;color:var(--color-text-primary);font-size:16px;line-height:1.4;word-wrap:break-word;overflow-wrap:break-word}.project-info__client{font-size:14px;color:var(--color-text-secondary);font-weight:500;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word}.cell-center{text-align:center!important;vertical-align:middle!important}.projects-table th:nth-child(1),.projects-table td:nth-child(1){width:45px!important;min-width:45px!important;max-width:45px!important;text-align:center}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:28%;min-width:280px;text-align:left}.projects-table th:nth-child(3),.projects-table td:nth-child(3){width:8%;min-width:80px;text-align:center}.projects-table th:nth-child(4),.projects-table td:nth-child(4){width:7%;min-width:70px;text-align:center}.projects-table th:nth-child(5),.projects-table td:nth-child(5){width:7%;min-width:70px;text-align:center}.projects-table th:nth-child(6),.projects-table td:nth-child(6){width:10%;min-width:100px;text-align:center}.projects-table th:nth-child(7),.projects-table td:nth-child(7){width:10%;min-width:100px;text-align:center}.projects-table th:nth-child(8),.projects-table td:nth-child(8){width:10%;min-width:100px;text-align:center}.projects-table th:nth-child(9),.projects-table td:nth-child(9){width:9%;min-width:90px;text-align:center}.projects-table th:nth-child(10),.projects-table td:nth-child(10){width:9%;min-width:90px;text-align:center}.projects-table th:nth-child(11),.projects-table td:nth-child(11){width:9%;min-width:120px;text-align:center;padding:20px 12px}.project-info__title{font-weight:700;margin-bottom:6px;color:var(--color-text-primary);font-size:15px}.project-info__client{font-size:13px;color:var(--color-text-secondary);font-weight:500}.stats-grid-container{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:32px;background-color:#fff;margin-bottom:16px}.stat-card-new{display:flex;align-items:center;justify-content:space-between;padding:28px 24px;border-radius:16px;color:#fff;box-shadow:0 8px 32px #0000001f,0 4px 16px #00000014;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;min-height:140px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat-card-new:nth-child(1){background:linear-gradient(135deg,#8b5cf6,#a78bfa);border:1px solid rgba(139,92,246,.3)}.stat-card-new:nth-child(2){background:linear-gradient(135deg,#06b6d4,#67e8f9);border:1px solid rgba(6,182,212,.3)}.stat-card-new:nth-child(3){background:linear-gradient(135deg,#10b981,#6ee7b7);border:1px solid rgba(16,185,129,.3)}.stat-card-new:nth-child(4){background:linear-gradient(135deg,#f59e0b,#fbbf24);border:1px solid rgba(245,158,11,.3)}.stat-card-new:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 16px 48px #0000002e,0 8px 24px #0000001f}.stat-card-new-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:20px}.stat-card-new-info{display:flex;flex-direction:column;flex:1}.stat-card-new-value{font-size:2.5rem;font-weight:800;line-height:1;margin-bottom:8px;display:flex;align-items:baseline;letter-spacing:-.02em}.stat-card-new-suffix{font-size:1.1rem;font-weight:600;margin-left:8px;opacity:.9}.stat-card-new-label{font-size:1.1rem;font-weight:600;opacity:.95;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.stat-card-new-description{font-size:.9rem;font-weight:400;opacity:.8;line-height:1.4}.stat-card-new-icon{font-size:3rem;opacity:.7;flex-shrink:0;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.filter-section{background:linear-gradient(135deg,#fff,#f9fafb);border-radius:16px;padding:20px 24px;margin:32px;border:1px solid #e5e7eb;box-shadow:0 8px 32px #1118270f;display:flex;justify-content:space-between;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.filter-section:hover{box-shadow:0 12px 32px #11182714;transform:translateY(-2px)}.filter-controls{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:flex-start}.filter-group{display:flex;align-items:center;gap:12px;position:relative}.filter-group label{font-size:14px;font-weight:600;color:#4b5563;white-space:nowrap;display:flex;align-items:center;gap:6px}.filter-type-select,.filter-value-select{min-width:200px;padding:12px 40px 12px 16px;border-radius:10px;border:1px solid #d1d5db;background-color:#fff;font-size:14px;font-weight:500;color:#1f2937;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="%236b7280" class="w-5 h-5"><path fill-rule="evenodd" d="M5.23 7.21a.75.75 0 011.06.02L10 10.94l3.71-3.71a.75.75 0 111.06 1.06l-4.25 4.25a.75.75 0 01-1.06 0L5.23 8.27a.75.75 0 010-1.06z" clip-rule="evenodd" /></svg>');background-repeat:no-repeat;background-position:right 16px center;background-size:20px;box-shadow:0 1px 2px #0000000d}.filter-type-select:hover,.filter-value-select:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a,0 1px 2px #0000000d}.filter-type-select:focus,.filter-value-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f626,0 1px 2px #0000000d}.action-buttons{display:flex;gap:12px;flex-wrap:nowrap;align-items:center}.filter-actions{display:flex;gap:12px;flex-wrap:nowrap;align-items:center;justify-content:flex-start;flex-shrink:0}.btn-action{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:#fff;min-width:120px;text-align:center;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;white-space:nowrap;flex-shrink:0}.btn-action:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 14px #0000001a,0 3px 6px #00000014}.btn-action:active:not(:disabled){transform:translateY(0)}.btn-action:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;box-shadow:none}.filter-reset-btn{background:linear-gradient(135deg,#fb923c,#f97316)}.snapshot-btn{background:linear-gradient(135deg,#22c55e,#16a34a)}.export-btn{background:linear-gradient(135deg,#60a5fa,#3b82f6)}.filter-summary{background:linear-gradient(135deg,#e0f2fe,#b3e5fc);border:1px solid rgba(3,169,244,.2);border-radius:12px;padding:12px 20px;margin-top:16px}.filter-info{color:#0277bd;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.filter-info:before{content:"ℹ️";font-size:16px}@media (max-width: 1400px){.stats-grid-container{grid-template-columns:repeat(4,1fr);gap:20px;padding:28px}.stat-card-new{padding:24px 20px;min-height:130px}.stat-card-new-value{font-size:2.2rem}}@media (max-width: 1200px){.filter-controls{flex-direction:column;align-items:stretch;gap:16px}.filter-actions{display:flex;gap:12px;flex-wrap:nowrap;justify-content:flex-start}.btn-action{min-width:100px;padding:10px 16px;font-size:13px}}@media (max-width: 1400px) and (min-width: 1201px){.filter-controls{justify-content:flex-start;gap:20px}.filter-actions{margin-left:0}}@media (max-width: 768px){.filter-controls{gap:12px}.filter-actions{flex-direction:column;gap:8px}.btn-action{min-width:auto;width:100%;padding:12px 16px}}@media (max-width: 1200px){.stats-grid-container{grid-template-columns:repeat(2,1fr);gap:20px}.my-projects-page{padding:28px;gap:28px}.main-content{padding:0 28px 28px;gap:28px}}@media (max-width: 768px){.stats-grid-container{grid-template-columns:1fr;gap:16px;padding:20px}.stat-card-new{padding:20px 16px;min-height:110px}.stat-card-new-value{font-size:1.8rem}.stat-card-new-icon{font-size:2.2rem}.my-projects-page{padding:20px;gap:20px}.main-content{padding:0 20px 20px;gap:20px}.projects-table th,.projects-table td{padding:16px 8px;font-size:13px}.operations-column{padding:12px 4px!important}.action-buttons-compact{gap:4px;min-width:60px}.action-buttons-compact .btn.btn-compact{padding:4px 6px;font-size:10px;min-width:40px;height:24px}.action-buttons-compact .btn .icon{font-size:10px;width:10px;height:10px}}.progress-cell{display:flex;align-items:center;justify-content:center;width:100%;min-width:120px}.progress-bar-container{position:relative;width:100%;max-width:100px;height:16px;background-color:var(--color-bg-dark, #f3f4f6);border-radius:var(--radius-full, 9999px);overflow:hidden}.progress-bar-fill{height:100%;border-radius:var(--radius-full, 9999px);transition:width var(--transition-normal, .4s) ease}.progress-text-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);z-index:2;pointer-events:none}.action-buttons{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;min-width:140px;padding:4px}.action-buttons .btn{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;padding:10px 18px;border-radius:12px;border:2px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;position:relative;overflow:hidden;min-width:60px}.action-buttons .btn.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea4d;box-shadow:0 4px 12px #667eea40}.action-buttons .btn.btn-primary:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px #667eea59;background:linear-gradient(135deg,#5a67d8,#6b46c1)}.action-buttons .btn.btn-primary:active{transform:translateY(-1px) scale(1.02)}.action-buttons .btn.btn-secondary{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#475569;border-color:#cbd5e1;box-shadow:0 2px 8px #4755691a}.action-buttons .btn.btn-secondary:hover{background:linear-gradient(135deg,#f1f5f9,#cbd5e1);border-color:#94a3b8;color:#334155;transform:translateY(-2px) scale(1.03);box-shadow:0 6px 16px #47556926}.action-buttons .btn.btn-secondary:active{transform:translateY(0) scale(1.01)}.action-buttons .btn.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#10b9814d;box-shadow:0 4px 12px #10b98140}.action-buttons .btn.btn-success:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px #10b98159;background:linear-gradient(135deg,#059669,#047857)}.action-buttons .btn.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:#f59e0b4d;box-shadow:0 4px 12px #f59e0b40}.action-buttons .btn.btn-warning:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px #f59e0b59;background:linear-gradient(135deg,#d97706,#b45309)}.operations-column{padding:16px 8px!important}.action-buttons-compact{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:65px}.action-buttons-compact .btn.btn-compact{display:flex;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;min-width:55px;height:22px}.action-buttons-compact .btn.btn-primary{background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;border-color:#44c4f44d;box-shadow:0 1px 3px #44c4f433;font-size:11px;padding:4px 10px;height:22px;min-width:55px;border-radius:6px}.action-buttons-compact .btn.btn-primary:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 2px 6px #44c4f44d;background:linear-gradient(135deg,#34e0a1,#44c4f4)}.action-buttons-compact .btn.btn-success{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea4d;box-shadow:0 1px 3px #667eea33;font-size:11px;padding:4px 10px;height:22px;min-width:55px;border-radius:6px}.action-buttons-compact .btn.btn-success:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 2px 6px #667eea4d;background:linear-gradient(135deg,#764ba2,#667eea)}.action-buttons-compact .btn .icon{font-size:10px;width:10px;height:10px}.status-badge.进行中{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea4d;box-shadow:0 2px 8px #667eea26}.status-badge.已完成{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#10b9814d;box-shadow:0 2px 8px #10b98126}.status-badge.暂停{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:#f59e0b4d;box-shadow:0 2px 8px #f59e0b26}.status-badge.已关闭{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:#ef44444d;box-shadow:0 2px 8px #ef444426}.my-projects-page .progress-bar-fill{background:linear-gradient(90deg,#667eea,#764ba2,#10b981);box-shadow:0 2px 4px #667eea33}.projects-table tbody tr.clickable:hover{background:linear-gradient(135deg,#f8fafc,#e2e8f0);transform:translateY(-1px);box-shadow:0 4px 16px #667eea14}.content-section:hover,.sidebar-card:hover{box-shadow:0 8px 24px #667eea1f;transform:translateY(-2px)}.content-section .card-body::-webkit-scrollbar-thumb,.workload-chart::-webkit-scrollbar-thumb,.ranking-list::-webkit-scrollbar-thumb,.activity-feed::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:3px}.content-section .card-body::-webkit-scrollbar-thumb:hover,.workload-chart::-webkit-scrollbar-thumb:hover,.ranking-list::-webkit-scrollbar-thumb:hover,.activity-feed::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#5a67d8,#6b46c1)}input[type=text],input[type=number],select,textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s ease;background:linear-gradient(135deg,#fff,#f8fafc)}input[type=text]:focus,input[type=number]:focus,select:focus,textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#fff}.loading-spinner-enhanced .spinner-ring:nth-child(1){border-top-color:#667eea}.loading-spinner-enhanced .spinner-ring:nth-child(2){border-right-color:#10b981}.loading-spinner-enhanced .spinner-ring:nth-child(3){border-bottom-color:#f59e0b}.progress-bar-loading{background:linear-gradient(90deg,#667eea,#10b981,#f59e0b)}.action-buttons .btn .icon{width:14px;height:14px;display:inline-block;background-size:contain;background-repeat:no-repeat;background-position:center}.icon-chart{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='20' x2='18' y2='10'%3E%3C/line%3E%3Cline x1='12' y1='20' x2='12' y2='4'%3E%3C/line%3E%3Cline x1='6' y1='20' x2='6' y2='14'%3E%3C/line%3E%3C/svg%3E")}.icon-clock{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E")}@media (max-width: 768px){.action-buttons{flex-direction:row;gap:4px;justify-content:center}.action-buttons .btn{font-size:11px;padding:4px 6px;min-width:58px;height:24px;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;overflow:hidden;flex-shrink:0}.action-buttons .btn .icon{width:12px;height:12px}}@media (max-width: 480px){.action-buttons .btn{font-size:10px;padding:3px 5px;min-width:50px;height:22px;gap:2px}.action-buttons .btn .icon{width:10px;height:10px}}@media (max-width: 1024px) and (min-width: 769px){.action-buttons .btn{font-size:11px;padding:5px 10px;min-width:70px;height:26px}}.team-metrics-compact{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;padding:16px;background:linear-gradient(135deg,#36c3f60f,#2ecc710f);border-radius:8px;border:1px solid rgba(54,195,246,.1)}.team-metrics-compact .metric-item{text-align:center;padding:4px}.team-metrics-compact .metric-label{font-size:10px;color:var(--color-text-secondary);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.team-metrics-compact .metric-value{font-size:18px;font-weight:700;color:var(--color-text-primary);line-height:1}.workload-chart-compact{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.workload-item-compact{display:flex;align-items:center;gap:8px;padding:8px;background:linear-gradient(135deg,#fafcff,#f8fafc);border-radius:6px;transition:all .2s ease;border:1px solid var(--border-color);min-height:40px}.workload-item-compact:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);transform:translate(2px);border-color:var(--color-primary)}.member-info-compact{display:flex;align-items:center;gap:6px;min-width:80px;flex-shrink:0}.member-avatar-compact{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;border:1px solid white}.member-name-compact{font-size:12px;font-weight:600;color:var(--color-text-primary)}.workload-bar-compact{flex:1;height:4px;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:2px;overflow:hidden;margin:0 8px}.workload-fill-compact{height:100%;border-radius:2px;transition:width .3s ease}.workload-score-compact{font-size:11px;font-weight:600;color:var(--color-text-secondary);min-width:25px;text-align:center}.more-members-indicator{text-align:center;font-size:11px;color:var(--color-text-tertiary);padding:8px;font-style:italic}.activity-scroll-container.compact{height:200px;background:#fafafa;border-radius:6px}.activity-scroll-item.compact{height:80px;padding:.25rem}.activity-scroll-item.compact .activity-item{padding:8px;font-size:12px}.activity-scroll-item.compact .activity-project{font-size:11px;margin:2px 0}.activity-scroll-item.compact .activity-time{font-size:10px}.activity-scroll-container.full{height:500px;background:#fafafa;border-radius:8px;border:1px solid var(--border-color)}.activity-scroll-item.full{height:120px;padding:.5rem}.activity-scroll-item.full .activity-item{padding:16px;font-size:14px;border-radius:8px}.activity-scroll-item.full .activity-project{font-size:13px;margin:6px 0}.activity-scroll-item.full .activity-time{font-size:12px}.full-efficiency-ranking{font-size:16px}.full-efficiency-ranking .ranking-list{max-height:600px}.full-efficiency-ranking .ranking-item{padding:16px;gap:16px;margin-bottom:8px}.full-efficiency-ranking .rank-badge{width:32px;height:32px;font-size:14px}.full-efficiency-ranking .rank-name,.full-efficiency-ranking .rank-efficiency{font-size:16px}.compact-efficiency-ranking{font-size:14px}.compact-efficiency-ranking .ranking-list{max-height:200px}.compact-efficiency-ranking .ranking-item{padding:8px;gap:8px}.compact-efficiency-ranking .rank-badge{width:20px;height:20px;font-size:10px}.compact-efficiency-ranking .rank-name,.compact-efficiency-ranking .rank-efficiency{font-size:12px}.right-sidebar{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:24px;width:100%;margin-top:24px}.sidebar-card{min-height:300px}.workload-distribution{margin-bottom:24px;flex:1;min-height:0}.section-title{font-size:16px;font-weight:700;color:var(--color-text-primary);margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid var(--border-color);letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background-color:#d1d5db;color:#6b7280;font-size:11px;font-weight:600;cursor:help;transition:all .2s ease;position:relative;z-index:1}.help-icon:hover{background-color:#3b82f6;color:#fff;transform:scale(1.1)}.help-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:10px 16px;border-radius:6px;font-size:12px;line-height:1.4;z-index:1000;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;margin-top:6px;min-width:280px;max-width:350px;white-space:normal;text-align:left;box-shadow:0 2px 8px #0003}.help-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-bottom-color:#000000d9}.help-icon:hover .help-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(2px)}.workload-chart{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;margin-right:-8px;border:1px solid #e2e8f0;border-radius:8px;padding:12px;background:#fafcff}.workload-item{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#fafcff,#f8fafc);border-radius:12px;border:1px solid var(--border-color);min-height:60px}.workload-item:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);transform:translate(4px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.ranking-list{display:flex;flex-direction:column;gap:10px;max-height:160px;overflow-y:auto;padding-right:8px;margin-right:-8px}.ranking-item{display:flex;align-items:center;gap:16px;padding:14px;background:linear-gradient(135deg,#fafcff,#f8fafc);border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--border-color)}.ranking-item:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);transform:translate(4px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.activity-feed{list-style:none;padding:16px;margin:0;display:flex;flex-direction:column;gap:18px;max-height:220px;overflow-y:auto;background:linear-gradient(135deg,#fafcff,#f8fafc);border-radius:12px;border:1px solid rgba(226,232,240,.6);box-shadow:0 2px 8px #0000000a}.activity-item{display:flex;align-items:flex-start;gap:20px;padding:20px;border-radius:12px;background:linear-gradient(135deg,#fff,#f8fafc);transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid rgba(226,232,240,.5);min-height:70px;box-shadow:0 2px 4px #00000005}.activity-item:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);transform:translate(6px) translateY(-2px);box-shadow:0 8px 20px #667eea1f;border-color:#667eea4d}.activity-item__content{flex:1;display:flex;flex-direction:column;gap:6px}.activity-item__content p{margin:0;font-size:14px;line-height:1.5;color:var(--color-text-secondary);font-weight:500}@media (max-width: 1024px){.my-projects-page{padding:20px;gap:20px}.my-projects-page .stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.my-projects-page .stat-card{padding:20px 16px;min-height:120px}.my-projects-page.sidebar-layout{flex-direction:column}.sidebar-navigation{position:static;width:100%;min-height:auto;flex-direction:row;overflow-x:auto;background:linear-gradient(90deg,#1e293b,#334155)}.sidebar-header{display:none}.sidebar-nav{flex-direction:row;padding:16px;gap:12px;min-width:max-content}.nav-item{padding:12px 16px;border-radius:8px;white-space:nowrap;min-width:auto;transform:none}.nav-item:hover,.nav-item.active{transform:none}.nav-item.active{box-shadow:none;border:2px solid var(--color-primary)}.nav-indicator{display:none}.main-content-area{margin-left:0;padding:20px}.panel-header{padding:24px 20px 20px}.panel-header:after{left:20px}.panel-content{padding:20px}.main-content{gap:20px}.right-sidebar,.secondary-content-area{grid-template-columns:1fr;gap:20px}}@media (max-width: 768px){.my-projects-page{padding:16px;gap:16px}.sidebar-nav{padding:12px;gap:8px}.nav-item{padding:10px 12px;font-size:14px}.nav-icon{font-size:16px}.main-content-area{padding:16px}.panel-header{padding:20px 16px 16px}.panel-header:after{left:16px}.panel-title{font-size:20px}.panel-content{padding:16px}.content-section,.sidebar-card{padding:24px;border-radius:var(--border-radius)}.my-projects-page .stat-card{padding:24px 20px;min-height:140px;border-radius:var(--border-radius)}.page-header{flex-direction:column;align-items:flex-start;gap:8px}.page-header h1{font-size:24px}.my-projects-page .stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.my-projects-page .stat-card{padding:16px;min-height:100px}.right-sidebar,.secondary-content-area{grid-template-columns:1fr;gap:16px}.content-section,.sidebar-card{padding:20px}.content-section .card-body{max-height:600px!important}.projects-table th,.projects-table td{padding:12px 8px;font-size:14px}.projects-table th:nth-child(11),.projects-table td:nth-child(11){min-width:100px;padding:12px 6px}.team-metrics{padding:16px;gap:12px}.metric-value{font-size:20px}}@media (max-width: 480px){.my-projects-page{padding:12px;gap:12px}.my-projects-page .stats-grid{grid-template-columns:1fr;gap:8px}.my-projects-page .stat-card{padding:12px;min-height:80px}.my-projects-page .stat-content h3{font-size:24px}.projects-table th,.projects-table td{padding:8px 6px;font-size:12px}.projects-table th:nth-child(11),.projects-table td:nth-child(11){min-width:80px;padding:8px 4px}.content-section,.sidebar-card{padding:16px}.content-section .card-body{max-height:500px!important}.team-metrics{grid-template-columns:1fr;padding:12px;gap:8px}.workload-item{padding:12px;gap:10px;min-height:50px}.member-avatar{width:32px;height:32px}}.main-content{display:flex;flex-direction:column;gap:32px;flex-grow:1;min-height:700px;width:100%;padding:0 32px 32px}.content-section,.sidebar-card{background-color:var(--bg-content);border-radius:var(--border-radius);border:1px solid var(--border-color);padding:28px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:box-shadow .3s ease;position:relative}.content-section:hover,.sidebar-card:hover{box-shadow:var(--shadow-md)}.content-section{min-height:684px;height:100%}.card-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--border-color);flex-shrink:0}.card-header h3{font-size:20px;font-weight:700;margin:0;color:var(--color-text-primary);letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.card-body{flex-grow:1;overflow:visible}.content-section .card-body{max-height:1500px!important;overflow-y:auto!important;padding-right:8px;margin-right:-8px}.status-badge{display:inline-flex;align-items:center;padding:8px 16px;border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;border:1px solid transparent;transition:all .2s ease}.status-badge.进行中{background:linear-gradient(135deg,#36c3f626,#36c3f60d);color:var(--color-primary-dark);border-color:#36c3f633}.status-badge.已完成{background:linear-gradient(135deg,#2ecc7126,#2ecc710d);color:#1e7e34;border-color:#2ecc7133}.status-badge.暂停{background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);color:#b45309;border-color:#f59e0b33}.status-badge.已关闭{background:linear-gradient(135deg,#ef44441f,#ef44440a);color:#dc2626;border-color:#ef44442e}.team-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;padding:20px;background:linear-gradient(135deg,#36c3f614,#2ecc7114);border-radius:12px;border:1px solid rgba(54,195,246,.15);flex-shrink:0}.metric-item{text-align:center;padding:8px}.metric-label{font-size:11px;color:var(--color-text-secondary);margin-bottom:8px;font-weight:600;text-transform:uppercase;letter-spacing:.8px}.metric-value{font-size:24px;font-weight:700;color:var(--color-text-primary);line-height:1;letter-spacing:-.5px}.workload-distribution{margin-bottom:32px;flex:1;min-height:0}.section-title{font-size:18px;font-weight:700;color:var(--color-text-primary);margin:0 0 24px;padding-bottom:16px;border-bottom:2px solid var(--border-color);letter-spacing:-.3px;display:flex;align-items:center;gap:12px}.workload-chart{display:flex;flex-direction:column;gap:16px;max-height:450px;overflow-y:auto;padding:20px;border:1px solid rgba(226,232,240,.6);border-radius:12px;background:linear-gradient(135deg,#fafcff,#f8fafc);box-shadow:0 2px 8px #0000000a}.workload-item{display:flex;align-items:center;gap:18px;padding:20px;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid rgba(226,232,240,.5);min-height:70px;box-shadow:0 2px 4px #00000005}.workload-item:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);transform:translate(6px) translateY(-2px);box-shadow:0 8px 20px #667eea1f;border-color:#667eea4d}.member-info{display:flex;align-items:center;gap:12px;min-width:100px;flex-shrink:0}.member-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;background:var(--gradient-main);box-shadow:var(--shadow-sm);border:2px solid white}.member-details{display:flex;flex-direction:column;min-width:0}.member-name{font-size:14px;font-weight:700;color:var(--color-text-primary);margin-bottom:2px}.member-status{font-size:11px;color:var(--color-text-secondary);font-weight:500}.workload-bar{flex:1;height:8px;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:4px;overflow:hidden;margin:0 12px;box-shadow:inset 0 1px 2px #0000001a}.workload-fill{height:100%;border-radius:4px;transition:width .4s cubic-bezier(.4,0,.2,1)}.workload-score{font-size:13px;font-weight:700;color:var(--color-text-secondary);min-width:30px;text-align:center}.efficiency-ranking{flex:1;min-height:0}.ranking-list{display:flex;flex-direction:column;gap:14px;max-height:240px;overflow-y:auto;padding:16px;background:linear-gradient(135deg,#fafcff,#f8fafc);border-radius:12px;border:1px solid rgba(226,232,240,.6);box-shadow:0 2px 8px #0000000a}.ranking-item{display:flex;align-items:center;gap:20px;padding:18px;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid rgba(226,232,240,.5);min-height:65px;box-shadow:0 2px 4px #00000005}.ranking-item:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);transform:translate(6px) translateY(-2px);box-shadow:0 8px 20px #667eea1f;border-color:#667eea4d}.rank-badge{width:28px;height:28px;border-radius:50%;background:var(--gradient-main);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;box-shadow:var(--shadow-sm)}.rank-info{display:flex;justify-content:space-between;align-items:center;flex:1}.rank-name{font-size:14px;font-weight:700;color:var(--color-text-primary)}.rank-efficiency{font-size:14px;font-weight:700;color:var(--color-success)}.activity-feed{list-style:none;padding:0 8px 0 0;margin:0 -8px 0 0;display:flex;flex-direction:column;gap:16px;max-height:180px;overflow-y:auto}.content-section .card-body::-webkit-scrollbar,.workload-chart::-webkit-scrollbar,.ranking-list::-webkit-scrollbar,.activity-feed::-webkit-scrollbar{width:6px}.content-section .card-body::-webkit-scrollbar-track,.workload-chart::-webkit-scrollbar-track,.ranking-list::-webkit-scrollbar-track,.activity-feed::-webkit-scrollbar-track{background:transparent;border-radius:3px}.content-section .card-body::-webkit-scrollbar-thumb,.workload-chart::-webkit-scrollbar-thumb,.ranking-list::-webkit-scrollbar-thumb,.activity-feed::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--color-text-tertiary),var(--color-text-secondary));border-radius:3px;transition:background .2s ease}.content-section .card-body::-webkit-scrollbar-thumb:hover,.workload-chart::-webkit-scrollbar-thumb:hover,.ranking-list::-webkit-scrollbar-thumb:hover,.activity-feed::-webkit-scrollbar-thumb:hover{background:var(--gradient-main)}@media (max-width: 1200px){.my-projects-page{padding:24px;gap:24px}.main-content{gap:24px}.my-projects-page .stat-content h3{font-size:28px}}@media (max-width: 1024px){.my-projects-page{padding:20px;gap:20px}.my-projects-page .stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.my-projects-page .stat-card{padding:20px 16px;min-height:120px}.main-content{grid-template-columns:1fr;gap:20px}.right-sidebar{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}}@media (max-width: 768px){.my-projects-page{padding:16px;gap:16px}.page-header{flex-direction:column;align-items:flex-start;gap:8px}.page-header h1{font-size:24px}.my-projects-page .stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.my-projects-page .stat-card{padding:16px;min-height:100px}.right-sidebar{grid-template-columns:1fr;gap:16px}.content-section,.sidebar-card{padding:20px}.content-section .card-body{max-height:600px!important}.projects-table th,.projects-table td{padding:12px 8px;font-size:14px}.team-metrics{padding:16px;gap:12px}.metric-value{font-size:20px}}@media (max-width: 480px){.my-projects-page{padding:12px;gap:12px}.my-projects-page .stats-grid{grid-template-columns:1fr;gap:8px}.my-projects-page .stat-card{padding:12px;min-height:80px}.my-projects-page .stat-content h3{font-size:24px}.projects-table th,.projects-table td{padding:8px 6px;font-size:12px}.content-section,.sidebar-card{padding:16px}.content-section .card-body{max-height:500px!important}.team-metrics{grid-template-columns:1fr;padding:12px;gap:8px}.workload-item{padding:12px;gap:10px;min-height:50px}.member-avatar{width:24px;height:24px;font-size:10px}.member-name{font-size:12px}.member-status{font-size:10px}.workload-score{font-size:11px}.ranking-item{padding:10px;gap:12px}.rank-badge{width:24px;height:24px;font-size:10px}.rank-name,.rank-efficiency{font-size:12px}.activity-item{padding:12px;gap:12px}.activity-item__content p{font-size:12px}.activity-item__content time{font-size:10px}}.my-projects-page{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.my-projects-page .stat-card{animation:slideInUp .6s cubic-bezier(.4,0,.2,1) forwards;animation-delay:calc(var(--index, 0) * .1s)}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.projects-table tbody tr{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){:root{--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-tertiary: #64748b;--bg-body: #0f172a;--bg-content: #1e293b;--bg-hover: #334155;--border-color: #334155}.my-projects-page .stat-card,.content-section,.sidebar-card{box-shadow:0 4px 6px #0000004d}.my-projects-page .stat-card:hover,.content-section:hover,.sidebar-card:hover{box-shadow:0 10px 15px #0006}.my-projects-page .projects-table thead th,.projects-table thead th{background:#334155!important}.workload-item,.ranking-item,.activity-item{background:linear-gradient(135deg,#1e293b,#334155)}.workload-item:hover,.ranking-item:hover,.activity-item:hover{background:linear-gradient(135deg,#334155,#475569)}}@media print{.my-projects-page{padding:0;gap:20px;color:#000;background:#fff}.my-projects-page .stat-card,.content-section,.sidebar-card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}.right-sidebar{break-before:page}.action-buttons{display:none}.progress-fill:after{display:none}}@media (prefers-contrast: high){:root{--border-color: #000;--color-text-secondary: #333;--bg-hover: #f0f0f0}.my-projects-page .stat-card,.content-section,.sidebar-card{border:2px solid #000}.status-badge{border:1px solid currentColor}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.progress-fill:after{display:none}}.action-buttons .btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}[data-tooltip]{position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#000000e6;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:1000;animation:tooltipFadeIn .2s ease}[data-tooltip]:hover:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(100%);border:4px solid transparent;border-top-color:#000000e6;z-index:1000}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.activity-item{position:relative;display:flex;align-items:flex-start;padding:16px;border-radius:12px;border-left:3px solid transparent;background:linear-gradient(135deg,#fafcff,#f8fafc);transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--border-color);margin-bottom:12px}.activity-item:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);transform:translate(4px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.activity-item.activity-warning{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.activity-item.activity-success{border-left-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.activity-item.activity-info{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.activity-item.activity-error{border-left-color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.activity-item.priority-high{border-left-width:4px;box-shadow:0 2px 8px #f59e0b33}.activity-item.priority-medium{border-left-width:3px}.activity-item__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.activity-item__content p{margin:0;font-size:14px;line-height:1.5;color:var(--color-text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-item__content p a{font-weight:700;color:var(--color-text-primary);text-decoration:none;transition:color .2s ease}.activity-item__content p a:hover{color:var(--color-primary)}.activity-item__content .activity-project{font-size:13px;line-height:1.4;color:var(--color-text-secondary);word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;max-width:100%}.activity-item__content time{font-size:12px;color:var(--color-text-tertiary);font-weight:600}.activity-user{font-weight:600;color:#1f2937}.activity-action{color:#4b5563;margin-left:4px}.activity-project{font-size:.875rem;color:#6b7280;margin:4px 0;line-height:1.4}.activity-time{font-size:.75rem;color:#9ca3af}.activity-priority{position:absolute;top:8px;right:8px}.priority-badge{background:#dc2626;color:#fff;padding:2px 6px;border-radius:10px;font-size:.625rem;font-weight:600}.activity-warning .activity-user{color:#d97706}.activity-success .activity-user{color:#059669}.activity-info .activity-user{color:#2563eb}.card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.scroll-controls{display:flex;align-items:center;gap:.75rem}.scroll-control{background:none;border:none;font-size:1rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease;opacity:.7}.scroll-control:hover{opacity:1;background:#0000000d}.scroll-control.paused{color:#10b981}.scroll-control.playing{color:#f59e0b}.speed-controls{display:flex;gap:.25rem}.speed-btn{background:none;border:none;font-size:.875rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s ease;opacity:.5}.speed-btn:hover{opacity:.8;background:#0000000d}.speed-btn.active{opacity:1;background:#3b82f61a;color:#3b82f6}.activity-scroll-container{height:360px;overflow:hidden;position:relative;background:#fafafa;border-radius:8px}.activity-scroll-content{position:absolute;top:0;left:0;right:0;transition:transform .05s linear}.activity-scroll-item{height:140px;padding:.5rem;border-bottom:1px solid #f3f4f6}.activity-scroll-item:last-child{border-bottom:none}.activity-scroll-item .activity-item{height:100%;display:flex;align-items:flex-start;padding:1rem;border-radius:8px;background:#fff;box-shadow:0 1px 3px #0000001a;transition:all .3s ease}.activity-scroll-item .activity-item:hover{transform:translate(4px);box-shadow:0 2px 8px #00000026}.activity-scroll-container.paused:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#00000005;pointer-events:none;z-index:1}.activity-scroll-item .activity-item.priority-high{border-left:4px solid #dc2626;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.activity-scroll-item .activity-item.priority-high:before{content:"";position:absolute;left:-4px;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#dc2626,#f59e0b);animation:priorityPulse 2s ease-in-out infinite}@keyframes priorityPulse{0%,to{opacity:.8}50%{opacity:1;box-shadow:0 0 8px #dc262680}}.activity-scroll-container:before{content:"";position:absolute;top:0;left:0;right:0;height:20px;background:linear-gradient(180deg,#fafafa,#fafafa00);z-index:2;pointer-events:none}.activity-scroll-container:after{content:"";position:absolute;bottom:0;left:0;right:0;height:20px;background:linear-gradient(0deg,#fafafa,#fafafa00);z-index:2;pointer-events:none}.scroll-indicator{position:absolute;right:4px;top:20px;bottom:20px;width:4px;background:#0000001a;border-radius:2px;z-index:3}.scroll-thumb{position:absolute;right:0;width:4px;background:linear-gradient(180deg,#3b82f6,#1d4ed8);border-radius:2px;transition:all .2s ease;box-shadow:0 0 4px #3b82f680}.scroll-thumb:hover{width:6px;right:-1px;box-shadow:0 0 8px #3b82f6b3}.activity-scroll-container:focus{outline:2px solid #3b82f6;outline-offset:2px}.activity-scroll-container:focus .scroll-thumb{background:linear-gradient(180deg,#1d4ed8,#1e40af);box-shadow:0 0 8px #1d4ed8cc}.scroll-help{position:absolute;bottom:8px;right:16px;display:flex;align-items:center;gap:.25rem;background:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;color:#6b7280;cursor:help;z-index:4;transition:all .2s ease;opacity:.7}.scroll-help:hover{opacity:1;background:#fffffff2;transform:scale(1.05)}.help-icon{font-size:.875rem}.help-text{font-size:.7rem;white-space:nowrap}@media (max-width: 768px){.activity-project{font-size:.8rem}.priority-badge{font-size:.6rem;padding:1px 4px}.scroll-controls{gap:.5rem}.scroll-control{font-size:.875rem}.speed-btn{font-size:.75rem;padding:.2rem}.activity-scroll-container{height:300px}.activity-scroll-item{height:100px;padding:.25rem}.activity-scroll-item .activity-item{padding:.75rem}}.main-tabs{height:100%}.main-tabs .ant-tabs-nav{margin-bottom:16px;background:#fff;border-radius:8px;padding:0 16px;box-shadow:0 2px 8px #0000000f}.main-tabs .ant-tabs-tab{padding:12px 16px;font-size:14px;font-weight:500;color:#666;transition:all .3s ease}.main-tabs .ant-tabs-tab:hover{color:#1890ff}.main-tabs .ant-tabs-tab-active{color:#1890ff;font-weight:600}.main-tabs .ant-tabs-ink-bar{background:#1890ff;height:3px}.main-tabs .ant-tabs-content-holder{height:calc(100% - 60px);overflow:hidden}.main-tabs .ant-tabs-tabpane{height:100%;overflow-y:auto}.tab-content{height:100%;background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #0000000f}.tab-icon{margin-right:6px;font-size:13px}@media (max-width: 768px){.main-tabs .ant-tabs-nav{padding:0 8px}.main-tabs .ant-tabs-tab{padding:8px 12px;font-size:13px}.tab-content{padding:12px}.tab-icon{margin-right:4px;font-size:12px}}.animate-fadeIn{animation:fadeIn .5s cubic-bezier(.4,0,.2,1) forwards}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #3b82f666}50%{transform:scale(1.02);box-shadow:0 0 0 8px #3b82f600}}.animate-pulse{animation:pulse 2s infinite cubic-bezier(.4,0,.2,1)}.projects-table tbody tr,.filter-section,.btn-action,.stats-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.projects-table-container{overflow-x:auto;padding-bottom:16px}.projects-table{width:100%;border-collapse:collapse;border-spacing:0;border:none;background:transparent}.projects-table,.projects-table-container{box-shadow:none;border:none}.projects-table thead th{background:transparent!important;border:none!important;box-shadow:none!important;color:var(--color-text-secondary)!important;font-size:13px!important;text-transform:none!important;letter-spacing:.5px!important;text-align:center!important;padding:10px 20px!important;height:auto!important;border-bottom:1px solid #e2e8f0!important}.projects-table thead th:first-child{padding-left:16px!important;padding-right:2px!important}.projects-table thead th:last-child{padding-right:32px}.projects-table tbody tr.project-row{background:var(--bg-content)!important;transition:background-color .2s ease}.projects-table td{padding:20px!important;border-bottom:1px solid #e2e8f0}.projects-table tbody tr:last-child td{border-bottom:none}.projects-table td:first-child{padding-left:16px!important;padding-right:2px!important;text-align:center!important}.projects-table td:nth-child(2){text-align:left!important}.projects-table td:last-child{padding-right:32px}.projects-table .index-column{font-weight:500;color:#64748b;font-size:13px;padding:16px 4px!important}.projects-table th:nth-child(1){padding:16px 4px!important;font-size:13px!important}.project-info__title{font-size:17px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.project-info__client{font-size:14px;color:var(--color-text-secondary)}.status-badge{padding:6px 14px;font-size:12px;border-radius:var(--radius-full);font-weight:700;letter-spacing:.5px}.financial-cell{font-weight:400;color:var(--color-text-primary);background-color:#f0fff4}.action-buttons-compact{flex-direction:row;gap:10px}.financial-cell.font-normal{font-weight:400!important}.action-buttons-compact .btn-compact{font-size:13px;padding:8px 16px;border-radius:var(--border-radius-sm, 12px);min-width:80px;height:auto}.action-buttons-compact .btn-compact .icon{font-size:14px}.hover-edit-container{position:relative;cursor:pointer}.edit-indicator{position:absolute;top:50%;right:8px;transform:translateY(-50%);background:#fff;border:1px solid var(--border-color);color:var(--color-text-secondary);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;transition:all .2s ease;opacity:0;visibility:hidden;box-shadow:var(--shadow-sm);z-index:5}.hover-edit-container:hover .edit-indicator{opacity:1;visibility:visible;transform:translateY(-50%) scale(1.1)}.edit-indicator:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.hover-edit-container{transition:all .2s ease-in-out;border-radius:8px;padding:6px;margin:-6px;position:relative}.hover-edit-container:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);background-color:#fff;z-index:20}.hover-edit-container.editing{transform:none!important;box-shadow:none!important;background-color:transparent!important;z-index:auto!important}.financial-cell{text-align:center;font-family:Monaco,Menlo,Ubuntu Mono,monospace;letter-spacing:.5px}.edit-container{display:flex;flex-direction:column;align-items:center;gap:4px}.edit-input{width:100%;border:none;border-radius:3px;padding:4px 6px;text-align:center;font-size:14px;outline:none;background:transparent}.edit-input:focus{border:none;box-shadow:none;outline:none}.edit-buttons{display:flex;gap:4px;justify-content:center}.edit-save-btn,.edit-cancel-btn{width:20px;height:20px;border:none;border-radius:50%;cursor:pointer;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.edit-save-btn{background:#28a745;color:#fff}.edit-save-btn:hover{background:#218838;transform:scale(1.1)}.edit-save-btn:disabled{background:#6c757d;cursor:not-allowed;transform:none}.edit-cancel-btn{background:#dc3545;color:#fff}.edit-cancel-btn:hover{background:#c82333;transform:scale(1.1)}.projects-table-container{overflow-x:auto;border-radius:12px;background:#fff;box-shadow:0 4px 16px #0000000f;border:1px solid var(--border-color-light);width:100%;min-width:0}@media (max-width: 1600px){.projects-table{min-width:1100px}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:24%;min-width:240px}}@media (max-width: 1400px){.projects-table{min-width:1000px}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:22%;min-width:220px}.projects-table th:nth-child(6),.projects-table td:nth-child(6),.projects-table th:nth-child(7),.projects-table td:nth-child(7),.projects-table th:nth-child(8),.projects-table td:nth-child(8){min-width:90px}}@media (max-width: 1200px){.projects-table{min-width:900px}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:20%;min-width:200px}.projects-table th:nth-child(3),.projects-table td:nth-child(3){min-width:70px}.projects-table th:nth-child(4),.projects-table td:nth-child(4),.projects-table td:nth-child(5){min-width:60px}.projects-table th:nth-child(6),.projects-table td:nth-child(6),.projects-table th:nth-child(7),.projects-table td:nth-child(7),.projects-table th:nth-child(8),.projects-table td:nth-child(8),.projects-table th:nth-child(9),.projects-table td:nth-child(9),.projects-table th:nth-child(10),.projects-table td:nth-child(10){min-width:80px}.projects-table th:nth-child(11),.projects-table td:nth-child(11){min-width:100px}}@media (max-width: 1024px){.projects-table{min-width:800px}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:18%;min-width:180px}.projects-table th:nth-child(3),.projects-table td:nth-child(3){min-width:60px}.projects-table th:nth-child(4),.projects-table td:nth-child(4),.projects-table td:nth-child(5){min-width:50px}.projects-table th:nth-child(6),.projects-table td:nth-child(6),.projects-table th:nth-child(7),.projects-table td:nth-child(7),.projects-table th:nth-child(8),.projects-table td:nth-child(8),.projects-table th:nth-child(9),.projects-table td:nth-child(9),.projects-table th:nth-child(10),.projects-table td:nth-child(10){min-width:70px}.projects-table th:nth-child(11),.projects-table td:nth-child(11){min-width:90px}}@media (max-width: 768px){.projects-table{min-width:700px}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:16%;min-width:160px}.projects-table th:nth-child(3),.projects-table td:nth-child(3){min-width:50px}.projects-table th:nth-child(4),.projects-table td:nth-child(4),.projects-table td:nth-child(5){min-width:40px}.projects-table th:nth-child(6),.projects-table td:nth-child(6),.projects-table th:nth-child(7),.projects-table td:nth-child(7),.projects-table th:nth-child(8),.projects-table td:nth-child(8),.projects-table th:nth-child(9),.projects-table td:nth-child(9),.projects-table th:nth-child(10),.projects-table td:nth-child(10){min-width:60px}.projects-table th:nth-child(11),.projects-table td:nth-child(11){min-width:80px}}.filter-indicator{display:inline-block;margin-left:8px;padding:2px 8px;background:linear-gradient(135deg,#3b82f61a,#3b82f60d);color:#1d4ed8;border:1px solid rgba(59,130,246,.2);border-radius:12px;font-size:11px;font-weight:500;white-space:nowrap;animation:filterIndicatorFadeIn .3s ease-out}@keyframes filterIndicatorFadeIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.projects-table{min-width:600px}.projects-table th:nth-child(2),.projects-table td:nth-child(2){width:14%;min-width:140px}.projects-table th:nth-child(3),.projects-table td:nth-child(3){min-width:40px}.projects-table th:nth-child(4),.projects-table td:nth-child(4),.projects-table td:nth-child(5){min-width:35px}.projects-table th:nth-child(6),.projects-table td:nth-child(6),.projects-table th:nth-child(7),.projects-table td:nth-child(7),.projects-table th:nth-child(8),.projects-table td:nth-child(8),.projects-table th:nth-child(9),.projects-table td:nth-child(9),.projects-table th:nth-child(10),.projects-table td:nth-child(10){min-width:50px}.projects-table th:nth-child(11),.projects-table td:nth-child(11){min-width:70px}}.user-projects-page{min-height:100vh;background:transparent;padding:20px}.page-container{max-width:1400px;margin:0 auto}.page-header{background:linear-gradient(135deg,#44c4f4,#34e0a1);border-radius:16px;padding:20px;margin-bottom:30px;box-shadow:0 4px 20px #44c4f44d;border:none;text-align:left!important}.page-header .page-title-left{text-align:left!important;margin:0 0 8px!important}.header-content{display:flex;align-items:flex-start;justify-content:flex-start;text-align:left;width:100%}.header-text{width:100%;text-align:left;display:flex;flex-direction:column;align-items:flex-start}.page-header h1,.page-header .page-title-left,.page-header .header-text h1{text-align:left!important;margin-left:0!important}.page-header h1{margin:0 0 8px!important;position:static!important;padding-bottom:0!important}.page-header h1:after{content:none!important;display:none!important}.page-header .header-text h1{font-size:2.2rem!important;color:#fff!important;margin:0 0 8px!important;display:flex!important;align-items:center!important;gap:12px!important;font-weight:600!important;text-align:left!important;justify-content:flex-start!important;padding-bottom:0!important;position:static!important}.page-header .header-text h1:after{display:none!important;content:none!important}.header-icon{color:#fff;font-size:2rem;opacity:.9}.page-header .page-subtitle{color:#ffffffe6!important;font-size:1.1rem!important;margin:0!important;font-weight:400!important;text-align:left!important;align-self:flex-start!important}.stats-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;border-radius:16px;padding:24px 20px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;box-shadow:0 4px 12px #00000014,0 2px 4px #0000000a;border:1px solid #f0f0f0;transition:all .3s ease;text-align:left;min-height:120px}.stat-card:hover{box-shadow:0 8px 24px #0000001f,0 4px 8px #0000000f;transform:translateY(-2px)}.stat-content{width:100%;display:flex;flex-direction:column;gap:8px}.stat-content p{font-size:14px;color:#666;margin:0;font-weight:400;order:1}.stat-content h3{font-size:36px;font-weight:600;margin:0;line-height:1;color:#1a1a1a;order:2}.stat-detail{font-size:12px;color:#999;margin:0;order:3}.animating-number{animation:numberGlow .3s ease-in-out}@keyframes numberGlow{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.stat-card.tasks h3{color:#3498db}.stat-card.projects h3{color:#2ecc71}.stat-card.hours h3{color:#e74c3c}.stat-card.efficiency h3{color:#9b59b6}.main-content{display:grid;grid-template-columns:2fr 1fr;gap:30px;align-items:start}.content-section{background:#fffffff2;border-radius:16px;padding:20px;box-shadow:0 4px 20px #00000014;border:1px solid #e8eaed;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.section-header{margin-bottom:20px;padding-bottom:15px;border-bottom:none}.section-header h3{font-size:1.3rem;color:#2c3e50;margin:0;display:flex;align-items:center;gap:10px}.section-icon{color:#34e0a1;font-size:1.2rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;max-height:600px;overflow-y:auto;padding-right:10px;justify-items:stretch;align-items:start}.projects-grid::-webkit-scrollbar{width:6px}.projects-grid::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.projects-grid::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.projects-grid::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.project-card{background:#fff;border:1px solid #ecf0f1;border-radius:12px;padding:16px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000000d;height:fit-content}.project-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #00000026;border-color:#667eea}.project-name{font-size:1.1rem;font-weight:600;color:#2c3e50;margin:0 10px 0 0;flex:1}.project-role{padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:500;white-space:nowrap}.project-role.manager{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.project-role.member{background:#ecf0f1;color:#7f8c8d}.project-info{margin-bottom:15px}.project-info p{margin:5px 0;font-size:.9rem;color:#7f8c8d}.project-customer{color:#34495e!important}.status{font-weight:500}.status.进行中{color:#27ae60}.status.已完成{color:#2980b9}.status.暂停{color:#e67e22}.status.已关闭{color:#dc2626}.project-progress{margin-top:15px}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.9rem;color:#7f8c8d}.progress-bar{height:8px;background:#ecf0f1;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.task-count{font-size:.8rem;color:#95a5a6;text-align:right}.sidebar{display:flex;flex-direction:column;gap:25px;height:fit-content;position:sticky;top:20px}.sidebar-section{flex:none;background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 20px #00000014;border:1px solid #e8eaed;transition:all .3s ease}.sidebar-section:hover{box-shadow:0 6px 25px #0000001f}.weekly-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px}.weekly-stat-item{text-align:center;padding:20px 16px;background:#f8f9fa;border-radius:12px;transition:all .3s ease}.weekly-stat-item:hover{background:#f1f3f4;transform:translateY(-1px)}.weekly-content{display:flex;flex-direction:column;align-items:center}.weekly-number{font-size:2.2rem;font-weight:700;color:#2c3e50;line-height:1;margin-bottom:8px}.weekly-stat-item:first-child .weekly-number{color:#27ae60}.weekly-stat-item:last-child .weekly-number{color:#3498db}.weekly-label{font-size:.9rem;color:#7f8c8d;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.recent-tasks{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto;padding-right:4px}.recent-tasks::-webkit-scrollbar{width:6px}.recent-tasks::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.recent-tasks::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.recent-tasks::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.task-item{padding:12px;background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:8px;border:1px solid #e8eaed;transition:all .3s ease;position:relative;cursor:pointer}.task-item:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001a;border-color:#667eea;cursor:pointer}.task-item:active{transform:translateY(0);box-shadow:0 2px 8px #0000001a}.task-item:hover .task-status-badge.completed{background:#27ae6026;border-color:#27ae6066}.task-item:hover .task-status-badge.in-progress{background:#f39c1226;border-color:#f39c1266}.task-item:hover .task-status-badge.pending{background:#e74c3c26;border-color:#e74c3c66}.task-project-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.task-project-info{display:flex;align-items:center;gap:6px;flex:1}.task-project{font-weight:600;color:#667eea;font-size:.85rem}.task-progress{font-size:.75rem;font-weight:600;padding:2px 6px;border-radius:4px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;min-width:35px;text-align:center;box-shadow:0 1px 3px #667eea4d;flex-shrink:0}.task-module-line{margin-bottom:4px}.task-module{font-size:.8rem;color:#95a5a6;font-weight:500}.task-name-line{margin-bottom:4px}.task-name{font-weight:600;color:#2c3e50;font-size:.9rem;line-height:1.3}.task-date-line{margin-bottom:0}.task-date{font-size:.75rem;color:#7f8c8d}.task-status-badge{font-size:.7rem;font-weight:500;padding:2px 6px;border-radius:10px;flex-shrink:0;transition:all .3s ease;text-align:center;min-width:45px}.task-status-badge.completed{color:#27ae60;background:#27ae601a;border:1px solid rgba(39,174,96,.3)}.task-status-badge.in-progress{color:#f39c12;background:#f39c121a;border:1px solid rgba(243,156,18,.3)}.task-status-badge.pending{color:#e74c3c;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3)}.empty-state{text-align:center;padding:40px 20px;color:#95a5a6;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:2px dashed #e8eaed}.empty-state.small{padding:24px 16px;font-size:.9rem;border-radius:10px}.empty-state p{margin:0;font-weight:500;color:#7f8c8d}.empty-icon{font-size:2.5rem;margin-bottom:12px;opacity:.6;color:#bdc3c7}.error-container,.loading-container{text-align:center;padding:60px 20px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e8eaed}.error-icon-wrapper{margin-bottom:20px}.error-icon{font-size:4rem;color:#e74c3c}.error-title{font-size:1.5rem;color:#2c3e50;margin-bottom:10px}.error-message{color:#7f8c8d;margin-bottom:20px}.retry-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:1rem;display:inline-flex;align-items:center;gap:8px;transition:transform .2s ease}.retry-btn:hover{transform:translateY(-2px)}.loading-spinner{width:40px;height:40px;border:4px solid #ecf0f1;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.stat-icon,.weekly-icon,.task-icon{vertical-align:middle;text-align:center;object-fit:contain;max-width:100%;max-height:100%}.stat-icon svg,.weekly-icon svg,.task-icon svg{width:100%;height:100%;display:block}@media (min-width: 1201px){.page-header{text-align:left!important}.page-header h1,.page-header .header-text h1,.page-header .page-title-left{text-align:left!important;margin-left:0!important;justify-content:flex-start!important}.stat-card{text-align:left;align-items:flex-start;justify-content:flex-start}.weekly-content{align-items:center}}@media (max-width: 1200px){.main-content{grid-template-columns:1fr;gap:20px}.sidebar{flex-direction:row;position:static}.projects-grid{max-height:none;overflow-y:visible}}@media (max-width: 768px){.user-projects-page{padding:15px}.stats-overview{grid-template-columns:1fr;gap:15px}.projects-grid{grid-template-columns:1fr}.sidebar{flex-direction:column}.sidebar-section{padding:16px}.weekly-stats{grid-template-columns:1fr;gap:16px}.weekly-stat-item{padding:16px 12px}.weekly-number{font-size:1.8rem}.task-item{padding:10px}.task-name{font-size:.85rem}.task-project{font-size:.8rem}.task-module{font-size:.75rem}.task-progress{font-size:.7rem;padding:1px 4px;min-width:30px}.task-project-info{gap:4px}.task-status-badge{font-size:.65rem;padding:1px 4px;min-width:40px}.header-text h1{font-size:1.8rem;color:#fff}.page-subtitle{font-size:1rem;color:#ffffffe6}.page-header{padding:20px;margin-bottom:20px}}.task-table-container{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:auto;border:1px solid var(--color-border);margin-bottom:var(--spacing-lg);max-height:calc(100vh - 300px);position:relative}.task-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm);position:relative;z-index:1}.task-table th,.task-table td{padding:10px 12px;text-align:center!important;vertical-align:middle!important;border-bottom:1px solid var(--color-border);white-space:nowrap;min-width:80px;position:relative;z-index:auto;font-size:var(--font-size-sm)}.task-table th{background-color:#f5f7fa!important;color:#444!important;font-weight:700;position:sticky!important;top:0!important;z-index:100!important;letter-spacing:normal;font-size:var(--font-size-sm);text-align:center;box-shadow:0 2px 4px #0000001a!important}.task-table tbody tr.clickable-row:hover{background-color:#e3f2fd;cursor:pointer}.task-table tbody tr.clickable-row:active{background-color:#bbdefb}.task-table .col-checkbox{width:40px}.task-table input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:16px;height:16px;border:1.5px solid #d1d5db;background:#fff;cursor:pointer;position:relative;outline:none;border-radius:3px;margin:0;padding:0}.task-table input[type=checkbox]:checked{background:#2563eb;border:1.5px solid #2563eb}.task-table input[type=checkbox]:checked:before{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:700;line-height:1}.task-table input[type=checkbox]:hover{border-color:#2563eb}.task-table .col-name{min-width:200px;max-width:300px}.task-table .col-assignee{width:120px;min-width:120px}.task-table .col-importance,.task-table .col-type{min-width:110px;width:110px}.task-table .col-progress{width:180px;min-width:180px}.task-table .col-dates{width:150px;min-width:150px}.task-table .col-actions{width:140px;min-width:140px;text-align:center}.progress-bar-container{flex:1;height:6px;background-color:var(--color-bg-dark);border-radius:var(--radius-full, 9999px);overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,#2ecc71,#a0e9c6);border-radius:var(--radius-full, 9999px);transition:width var(--transition-normal) ease}.progress-text{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-light)}.task-name-cell{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-actions{display:flex;justify-content:center;align-items:center;gap:2px;flex-wrap:nowrap}.task-action-btn{min-width:100px!important;white-space:nowrap;overflow:visible}.table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:0 8px}.action-button{padding:var(--spacing-xs) var(--spacing-sm);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-xs);transition:background-color var(--transition-fast) ease}.action-button:hover{background-color:var(--color-bg-dark)}@media (max-width: 768px){.task-table th,.task-table td{padding:var(--spacing-sm)}.task-table .col-name{min-width:150px}.task-table .col-dates,.task-table .col-assignee{display:none}}.task-table tr.editing{background:#eaf3ff;border-radius:12px;box-shadow:0 2px 8px #36c3f614;border:1.5px solid #36c3f6;transition:background .2s,box-shadow .2s}.task-table tr.editing td{background:transparent;border-bottom:none}.task-table tr.editing input,.task-table tr.editing select{border:1.5px solid #36c3f6;border-radius:8px;background:#fff;transition:border .2s}.task-table tr.editing input:focus,.task-table tr.editing select:focus{border:1.5px solid #2563eb;box-shadow:0 0 0 2px #c7e3ff}input,select,textarea{z-index:200!important;position:relative!important;pointer-events:auto!important}.task-table tr.editing input,.task-table tr.editing select,.task-table tr.editing textarea{pointer-events:auto!important;opacity:1!important;background-color:#f5f5f5!important;border:1px solid #ddd!important;position:relative;z-index:200!important}.btn[variant=icon-add]{background-color:var(--color-primary);color:#fff;border:none;width:2rem;height:2rem;border-radius:var(--radius-full, 9999px);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-size:var(--font-size-md);transition:transform var(--transition-fast) ease,background-color var(--transition-fast) ease}.btn[variant=icon-add]:hover{transform:scale(1.1);background-color:var(--color-primary-dark)}.table-input,.table-select,.table-textarea{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-family:inherit;background-color:var(--color-bg-light);color:var(--color-text);min-width:80px;box-sizing:border-box}.table-input:focus,.table-select:focus,.table-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.table-textarea{min-height:2rem;resize:vertical}.progress-input-wrapper{width:100%;display:flex;align-items:center;gap:8px}.table-range-slider{width:100%;min-width:60px;flex:1;margin:0;padding:0;height:.6rem;background:linear-gradient(90deg,#36c3f6,#2ecc71);border-radius:9999px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.table-range-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.2rem;height:1.2rem;border-radius:50%;background:#36c3f6;border:2px solid #fff;box-shadow:0 2px 8px #36c3f626;cursor:pointer;transition:background .2s}.table-range-slider:focus::-webkit-slider-thumb{background:#2563eb}.table-range-slider::-moz-range-thumb{width:1.2rem;height:1.2rem;border-radius:50%;background:#36c3f6;border:2px solid #fff;box-shadow:0 2px 8px #36c3f626;cursor:pointer;transition:background .2s}.table-range-slider:focus::-moz-range-thumb{background:#2563eb}.progress-number-input{width:3.5rem;text-align:center;font-size:1rem;border-radius:8px;border:1.5px solid #36c3f6;background:#fff}.progress-input-wrapper span{color:#2563eb;font-weight:600;font-size:1rem}.btn[variant=icon],.btn[variant=icon-danger]{background:transparent;border:none;padding:var(--spacing-xs);cursor:pointer;font-size:var(--font-size-md);color:var(--color-primary);border-radius:var(--radius-full, 9999px);display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast) ease,color var(--transition-fast) ease;width:2rem;height:2rem}.btn[variant=icon]:hover{background-color:#2563eb1a;transform:translateY(-.1rem)}.btn[variant=icon-danger]{color:var(--color-danger)}.btn[variant=icon-danger]:hover{background-color:#ef44441a;transform:translateY(-.1rem)}.text-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:inline-block}@media (max-width: 1024px){.task-table th,.task-table td{padding:var(--spacing-xs)}.progress-bar-wrapper{width:100%;margin:0}.progress-bar-text{font-size:var(--font-size-xs)}}@media (max-width: 480px){.task-table th,.task-table td,.task-table input,.task-table select,.task-table textarea{padding:var(--spacing-xs);font-size:var(--font-size-xs)}.progress-bar-wrapper{width:100%}.progress-bar{height:.25rem}.progress-bar-text{font-size:var(--font-size-xs)}.text-truncate{max-width:150px}}.progress-bar-fill{background-color:var(--color-primary);height:100%}.importance-badge.重要功能,.type-badge.新增内容{background-color:#2563eb1a;color:var(--color-primary)}.task-table td{vertical-align:middle;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--font-size-sm)}.task-table tr.editing{background-color:#2563eb0d;box-shadow:inset 0 0 0 1px var(--color-primary-light)}.progress-input-wrapper .table-input{width:4rem;min-width:60px}.progress-input-wrapper span{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.table-input{height:2.5rem;line-height:1.5;text-align:center}.table-select{height:32px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#f5f5f5;padding:4px 24px 4px 8px;text-align:center;text-align-last:center;min-width:100px;border:1px solid #ddd;border-radius:4px;position:relative}.table-select:focus{border-color:#aaa;outline:none;box-shadow:0 0 0 2px #c8c8c840}.table-select option{text-align:left;padding:8px;font-size:var(--font-size-sm)}.task-table.excel-like{border-collapse:collapse;border:1px solid #ccc;width:100%;table-layout:fixed}.task-table.excel-like th,.task-table.excel-like td{border:1px solid #ccc;padding:8px;text-align:center;vertical-align:middle;white-space:normal;word-wrap:break-word}.task-table.excel-like th{background-color:#f5f7fa!important;color:#444!important;font-weight:700;position:sticky!important;top:0!important;z-index:100!important;box-shadow:0 2px 4px #0000001a!important}.task-table.excel-like th:after{content:" ▼";font-size:.7em;opacity:.6;padding-left:4px}.task-table.excel-like tbody tr:nth-child(2n){background-color:#f2f2f2}.task-table.excel-like{transform:none;box-shadow:none;border-radius:0}.task-table.excel-like td{transition:none}.excel-like .table-input,.excel-like .table-select,.excel-like .table-textarea{width:100%;border:1px solid transparent;padding:8px 12px;margin:0;font-family:inherit;font-size:inherit;background-color:transparent;border-radius:0;text-align:center;text-align-last:center;min-width:80px;pointer-events:auto}.task-table.excel-like tr.editing input,.task-table.excel-like tr.editing select,.task-table.excel-like tr.editing textarea{pointer-events:auto!important;opacity:1!important;background-color:#fff!important;border:1px solid #ccc!important;z-index:10;position:relative}.excel-like .table-input:focus,.excel-like .table-select:focus,.excel-like .table-textarea:focus{outline:2px solid #4472C4;border:none;background-color:#fff}.excel-like .table-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232563eb' 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 .5rem center;padding-right:2rem;min-width:100px}.excel-like .table-select option{text-align:left;padding:8px;font-size:var(--font-size-sm)}.excel-like .progress-input-wrapper{display:flex;align-items:center;gap:8px}.excel-like .table-range-slider{flex-grow:1}.excel-like .progress-number-input{width:60px;border:1px solid #ccc;padding:2px 4px}.excel-like .progress-number-input:focus{border:1px solid #4472C4}.excel-like .task-actions .btn{background:none;border:none;color:#d32f2f;font-size:1.2rem}.excel-like .task-actions .btn:hover{color:#f44336}.task-table:not(.excel-like) table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:20px;overflow:hidden}.task-table.excel-like tbody tr.first-row:hover{background-color:#e9eef6}.task-table.excel-like tbody tr:not(.first-row):hover{background-color:transparent}.task-icon-btn{color:#fcfcfc;width:2rem;height:2rem;border-radius:4px;background-color:transparent;transition:all .2s ease-in-out}.task-icon-btn:hover{background-color:transparent;color:#40e0d0}.task-icon-delete{color:#e74c3c}.task-icon-delete:hover{color:#c0392b;background-color:#e74c3c1a}.icon-btn{background:transparent;border:none;cursor:pointer;color:#383434;font-size:16px;padding:4px;border-radius:4px;margin:0 2px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease-in-out}.icon-btn:hover{color:#40e0d0}.actions,.task-actions{display:flex;justify-content:center;gap:8px;flex-wrap:nowrap}.excel-like .table-textarea{resize:vertical;min-height:24px;overflow-y:hidden}.task-table tr.editing .table-input,.task-table tr.editing .table-select{width:100%;min-width:100%;box-sizing:border-box;position:relative;z-index:102;pointer-events:auto}.custom-select-arrow{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:6px 24px 6px 10px;text-align:center;height:32px;font-size:.9rem;color:#444;transition:border .2s;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-arrow:focus{border:1px solid #aaa;box-shadow:0 0 0 2px #c8c8c840}.select-arrow{pointer-events:none;color:#777;font-size:.7rem;right:8px;top:50%;position:absolute;transform:translateY(-50%);z-index:10;background:transparent;height:1em;width:1em;display:flex;align-items:center;justify-content:center}.custom-select-arrow::-ms-expand{display:none}.custom-select-arrow::-webkit-input-placeholder{color:#bbb}.custom-select-arrow:-moz-placeholder{color:#bbb}.custom-select-arrow::-moz-placeholder{color:#bbb}.custom-select-arrow:-ms-input-placeholder{color:#bbb}.select-container{position:relative;width:100%;display:flex;justify-content:center;align-items:center}.select-container div{pointer-events:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#777;font-size:.7rem;z-index:10}.draggable-modal .task-details{height:calc(100% - 60px);overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.task-details,.task-details *,.task-details-header,.task-details-content,.detail-section,.info-item,.task-basic-info{border-left:none!important;border-right:none!important}.task-details:before,.task-details:after,.task-details *:before,.task-details *:after{border-left:none!important;border-right:none!important;background:none!important}.draggable-modal .task-details,.draggable-modal .task-details *,.draggable-modal .task-details-header,.draggable-modal .task-details-content,.draggable-modal .detail-section,.draggable-modal .info-item,.draggable-modal .task-basic-info{border-left:none!important;border-right:none!important}.draggable-modal .task-details:before,.draggable-modal .task-details:after,.draggable-modal .task-details *:before,.draggable-modal .task-details *:after{border-left:none!important;border-right:none!important;background:none!important}.task-details .activity-item,.task-details .warning-item,.task-details .success-item,.task-details .info-item,.task-details .task-completed,.task-details .task-overdue,.task-details .task-due-today{border-left:none!important;border-right:none!important}.task-details{display:flex;flex-direction:column;gap:10px}.task-details-header{border-bottom:1px solid #f6f6f8;padding-bottom:20px}.task-details-header h2{font-size:20px;font-weight:600;color:#585858;margin:0 0 16px}.task-basic-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px 24px}.info-item{display:flex;align-items:center}.info-item .label{font-size:14px;color:#6b7280;min-width:100px}.info-item .value{font-size:14px;font-weight:500;color:#1f2937}.task-details-content{display:flex;flex-direction:column;gap:24px}.detail-section{background:#f9fafb;border-radius:8px;padding:16px}.detail-section h3{font-size:16px;font-weight:600;color:#4b5563;margin:0 0 12px}.detail-text{font-size:14px;color:#1f2937;line-height:1.6;margin:0;white-space:pre-line;min-height:24px}.detail-textarea{width:100%;padding:12px;font-size:14px;border:1px solid #e5e7eb;border-radius:6px;resize:vertical;min-height:100px;color:#1f2937;background:#fff}.detail-textarea:focus{outline:none;border-color:#36c3f6;box-shadow:0 0 0 3px #36c3f61a}.task-details-footer{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid #e5e7eb}.task-details-footer button{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.task-details-footer button:first-child{background:#36c3f6;color:#fff;border:none}.task-details-footer button:first-child:hover{background:#2eaad8}.task-details-footer button:last-child{background:#f3f4f6;color:#4b5563;border:none}.task-details-footer button:last-child:hover{background:#e5e7eb;color:#1f2937}.task-meta-info{margin-top:20px;padding-top:15px;border-top:1px dashed #e0e0e0;font-size:.9em;color:#666}.meta-info-item{margin-bottom:8px;display:flex;align-items:center;flex-wrap:wrap}.meta-label{font-weight:500;margin-right:8px;color:#555}.meta-value{font-weight:600;color:#333}.meta-date{margin-left:8px;color:#888;font-size:.9em}@media (max-width: 768px){.task-basic-info{grid-template-columns:1fr}.info-item .label{min-width:120px}}.task-statistics{background:#fff;padding:20px;border-radius:12px;box-shadow:0 1px 3px #00000014;margin-bottom:20px;border:1px solid #edf2f7;transition:all .3s ease}.task-statistics:hover{box-shadow:0 4px 10px #0000000f}.task-statistics .statistics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #edf2f7}.task-statistics .statistics-header h2{margin:0;font-size:16px;color:#2d3748;font-weight:600;position:relative}.task-statistics .statistics-header h2:before{display:none}.task-statistics .header-right{display:flex;align-items:center;gap:15px}.task-statistics .date-range{color:#718096;font-size:14px;font-weight:400;margin-left:10px;white-space:nowrap}.task-statistics .reset-filter-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;background-color:#ebf8ff;color:#3182ce;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s ease;font-weight:500}.task-statistics .reset-filter-btn:hover{background-color:#bee3f8;transform:translateY(-1px)}.statistics-grid.statistics-grid-5{display:flex;flex-direction:row;gap:16px;flex-wrap:nowrap;width:100%}.stat-card{position:relative;background-color:#fff!important;border-radius:12px;box-shadow:0 1px 3px #00000014;padding:16px;height:200px;display:flex;flex-direction:column;border:1px solid #edf2f7;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;flex:1;min-width:0}.stat-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:transparent}.weekly-stats-card:before{background:linear-gradient(90deg,#4299e1,#63b3ed)!important}.hours-stats-card:before{background:linear-gradient(90deg,#48bb78,#68d391)!important}.progress-stats-card:before{background:linear-gradient(90deg,#805ad5,#9f7aea)!important}.risk-card:before{background:linear-gradient(90deg,#ed8936,#f6ad55)!important}.activity-card:before{background:linear-gradient(90deg,#3182ce,#90cdf4)!important}.stat-card:hover{box-shadow:0 8px 12px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px);background-color:#fff!important}.stat-title{display:flex;align-items:flex-start;gap:8px;font-size:15px;font-weight:600;color:#4a5568;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #edf2f7;height:24px;justify-content:flex-start;text-align:left}.stat-title svg{color:inherit}.stat-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 5px}.weekly-stats-container{display:flex;flex-direction:row;justify-content:center;align-items:center;margin:0;height:60px;flex:1}.weekly-stat-item{display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:6px;border-radius:6px;transition:background-color .2s;flex:1;text-align:center}.weekly-stat-item:hover{background-color:#f7fafc}.weekly-stat-value{font-size:28px;font-weight:700;margin-bottom:8px;line-height:1;height:28px;display:flex;align-items:center;justify-content:center}.weekly-stat-value:first-child{color:#a0aec0}.weekly-stat-item:nth-child(1) .weekly-stat-value{color:#a0aec0}.weekly-stat-item:nth-child(3) .weekly-stat-value{color:#4299e1}.weekly-stat-item:nth-child(5) .weekly-stat-value{color:#48bb78}.weekly-stat-label{font-size:13px;color:#718096;font-weight:500;height:18px;display:flex;align-items:center;justify-content:center;text-align:center}.weekly-stat-divider{width:1px;height:40px;background-color:#edf2f7;margin:0 4px}.hours-display{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;height:60px;flex:1}.hours-stats-card .stat-value{font-size:28px;font-weight:700;color:#4a5568;text-align:center;margin:0;line-height:1;height:28px;display:flex;align-items:center;justify-content:center;gap:4px}.stat-hours-slash{font-size:24px;color:#a0aec0;margin:0 3px}.stat-hours-total{color:#48bb78}.stat-subtitle{font-size:13px;color:#718096;font-weight:500;margin-top:10px;height:18px;display:flex;align-items:center;justify-content:center}.hours-status{color:#ed8936;font-size:13px;font-weight:500}.progress-container{display:flex;flex-direction:row;justify-content:space-around;align-items:center;margin:0;height:60px;flex:1}.progress-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease}.progress-item:hover{background-color:#f7fafc}.progress-value{font-size:28px;font-weight:700;margin-bottom:8px;line-height:1;height:28px;display:flex;align-items:center;justify-content:center}.progress-stats-card .risk-item:first-child .risk-value{color:#805ad5}.progress-stats-card .risk-item:last-child .risk-value{color:#4299e1}.progress-label{font-size:13px;color:#718096;font-weight:500;height:18px;display:flex;align-items:center;justify-content:center}.progress-divider{width:1px;height:40px;background-color:#edf2f7;margin:0 4px}.risk-container{display:flex;justify-content:space-around;align-items:center;margin:0;height:60px;flex:1}.risk-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;cursor:pointer;padding:6px;border-radius:6px;transition:background-color .2s}.risk-item:hover{background-color:#f7fafc}.risk-value{font-size:28px;font-weight:700;margin-bottom:8px;line-height:1;height:28px;display:flex;align-items:center;justify-content:center}.risk-value.delayed{color:#e53e3e}.risk-value.at-risk{color:#ed8936}.risk-label{font-size:13px;color:#718096;font-weight:500;height:18px;display:flex;align-items:center;justify-content:center}.risk-divider{width:1px;height:40px;background-color:#edf2f7;margin:0 4px}.activity-card{text-align:left;cursor:default;height:200px}.activity-card .stat-title{justify-content:flex-start;text-align:left}.recent-activities-container{display:flex;flex-direction:column;gap:1px;overflow:hidden;height:140px;position:relative;padding:0 5px;margin-top:5px}.activity-item{display:flex;flex-direction:column;border-radius:4px;position:relative;transition:transform .3s ease-in-out;padding:3px 0 3px 10px;margin-bottom:4px}.activity-item:hover{transform:translateY(-2px)}.activity-time{font-size:12px;color:#718096;margin-bottom:0;font-weight:500;text-align:left}.activity-content{display:flex;flex-wrap:wrap;gap:2px;font-size:13px;line-height:1.2;color:#2d3748;text-align:left}.activity-user{font-weight:600;color:#2d3748;text-align:left}.activity-action{color:#4a5568;margin:0 2px;text-align:left}.activity-target{color:#3182ce;margin:0 2px;font-weight:500;text-align:left}.activity-id{color:#805ad5;font-weight:500;text-align:left}.activity-detail{color:#4b5563;font-weight:400;text-align:left}.no-activities{display:flex;align-items:center;justify-content:center;height:100px;color:#a0aec0;text-align:center;font-size:14px}.activity-change-detail{color:#4a5568;margin-left:0;font-size:13px}.activity-change-detail .old-value{color:#e53e3e;text-decoration:line-through;background-color:#fed7d74d;padding:0 3px;border-radius:2px}.activity-change-detail .arrow{color:#718096;font-weight:500;margin:0 3px}.activity-change-detail .new-value{color:#38a169;background-color:#c6f6d54d;padding:0 3px;border-radius:2px}.activity-extra-detail{font-size:12px;color:#718096;font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.scrolling-in{animation:fadeIn .5s ease-in-out}.scrolling-out{animation:fadeOut .5s ease-in-out}.view-more{color:#3182ce;font-weight:500;cursor:pointer;text-align:center;display:block;padding:5px 0;font-size:13px;transition:all .2s ease;margin-top:8px}.view-more:hover{color:#2c5282;text-decoration:underline}.stat-footer{margin-top:auto;padding-top:10px;font-size:13px;color:#718096;border-top:1px dashed #edf2f7;text-align:center;height:36px;display:flex;align-items:center;justify-content:center}.filter-status{margin-top:15px;padding:10px;background-color:#ebf8ff;border-radius:8px;font-size:14px;color:#3182ce;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #4299e11f}.filter-status-text{font-weight:600}@media (max-width: 1400px){.statistics-grid.statistics-grid-5{flex-wrap:wrap}.statistics-grid.statistics-grid-5>.stat-card{flex-basis:calc(33.333% - 16px);margin-bottom:16px}}@media (max-width: 992px){.statistics-grid.statistics-grid-5{flex-wrap:wrap}.statistics-grid.statistics-grid-5>.stat-card{flex-basis:calc(50% - 16px);margin-bottom:16px}}@media (max-width: 768px){.statistics-grid.statistics-grid-5{flex-direction:column}.statistics-grid.statistics-grid-5>.stat-card{flex-basis:100%;margin-bottom:16px}.task-statistics .header-right{flex-direction:column;align-items:flex-end;gap:10px}}.weekly-stats-card,.hours-stats-card,.progress-stats-card,.risk-card,.activity-card{background-color:#fff!important}.view-more-button-container{text-align:center;margin-top:10px;padding-top:5px;border-top:1px solid #edf2f7}.view-more-button{background-color:#ebf8ff;color:#3182ce;border:none;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease;font-weight:500}.view-more-button:hover{background-color:#bee3f8;color:#2c5282}.activity-change{color:#e53e3e;font-weight:500;margin-left:4px}.activity-card{cursor:pointer;transition:all .2s}.activity-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.loading-indicator{display:flex;justify-content:center;align-items:center;height:100px;color:#718096;font-size:14px}.activity-item{position:relative;padding:4px 10px 4px 15px;margin-bottom:4px;background-color:#f9fafb80;border-radius:3px;box-shadow:0 1px 2px #0000000d;transition:background-color .2s,transform .2s}.activity-item:hover{background-color:#f3f4f6cc;transform:translate(2px)}.module-recent-activity{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000d;padding:16px 16px 16px 4px;margin-top:16px;border:1px solid #edf2f7}.module-recent-activity .activity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;position:relative}.module-recent-activity .activity-header h3{font-size:16px;font-weight:600;color:#2d3748;margin:0;display:flex;align-items:center;gap:8px}.module-recent-activity .activity-icon{color:#4a5568}.module-recent-activity .activity-actions{display:flex;align-items:center}.module-recent-activity .view-more-btn{background:none;border:none;color:#718096;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:4px;transition:all .2s ease}.module-recent-activity .view-more-btn:hover{background-color:#f7fafc;color:#4a5568}.module-recent-activity .activity-list{display:flex;flex-direction:column}.module-recent-activity .activity-item{display:flex;position:relative;border-bottom:1px solid #f0f4f8}.module-recent-activity .activity-item:last-child{border-bottom:none}.module-recent-activity .activity-time{width:90px;min-width:90px;color:#718096;font-size:13px;padding-right:10px;position:relative;line-height:20px;white-space:nowrap}.module-recent-activity .activity-dot{display:none}.module-recent-activity .activity-content{flex:1;font-size:12px;color:#4a5568;line-height:16px;display:block;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-recent-activity .activity-user{font-weight:500;color:#2d3748}.module-recent-activity .activity-action{display:inline-flex;align-items:center;gap:4px;color:#718096}.module-recent-activity .activity-target{font-weight:500;color:#3182ce}.module-recent-activity .activity-target-id{background-color:#ebf8ff;color:#2c5282;padding:1px 6px;border-radius:4px;font-size:12px}.module-recent-activity .activity-project{color:#718096}.module-recent-activity .no-activities{color:#a0aec0;text-align:left;padding:20px 0;font-size:14px;font-style:italic}.recent-activities-container{display:flex;flex-direction:column;gap:1px;overflow:hidden;max-height:180px;padding:4px 0 4px 2px;position:relative;line-height:1.2}.recent-activities-container .activities-scroll-wrapper{height:100%;overflow:hidden;position:relative}.recent-activities-container .activities-scroll-content{animation:smoothScrollUp 15s linear infinite;animation-play-state:running;display:flex;flex-direction:column}.recent-activities-container .activities-scroll-wrapper:hover .activities-scroll-content{animation-play-state:paused}.recent-activities-container .activities-scroll-content .activity-item{flex-shrink:0}.recent-activities-container .static-activities{display:flex;flex-direction:column;gap:1px}.activity-item{position:relative;margin-bottom:2px;background:transparent;border:none!important;border-left:none!important;border-left-width:0!important;border-left-style:none!important;border-left-color:transparent!important;box-shadow:none;transition:all .2s ease;border-radius:0}.activity-item:hover{background:transparent;transform:none;box-shadow:none}.module-recent-activity .activity-item,.recent-activities-container .activity-item,div.activity-item{border-left:none!important;border-left-width:0!important;border-left-style:none!important;border-left-color:transparent!important}.activity-time{font-size:10px;color:#9ca3af;margin-bottom:0;font-weight:500;letter-spacing:.3px;text-align:left}.activity-content{font-size:12px;color:#374151;line-height:1.2;display:flex;align-items:center;gap:0;text-align:left}.activity-user{font-weight:600;color:#1f2937;margin-right:4px}.activity-action{font-weight:500;color:#6b7280;margin-right:3px}.activity-target{font-weight:600;color:#059669;margin-right:3px}.activity-id{color:#3b82f6;font-weight:500;margin-right:3px}.activity-detail{color:#6b7280;font-style:italic}.activity-action-icon{font-size:14px;margin-right:6px;display:inline-block}.activity-target-name{font-weight:600;color:#1e40af;margin:0 4px}.activity-change-info{color:#059669;font-weight:500;font-size:12px;background:#10b9811a;padding:2px 6px;border-radius:4px;margin-left:4px}.activity-operation-detail{color:#6b7280;font-size:12px;font-style:italic;margin-left:4px}.activity-change-simple{color:#059669;font-weight:500;margin-left:4px}.activity-simple-action{color:#374151;font-weight:500}.activity-operation-simple{color:#6b7280;font-size:12px;margin-left:4px}.activity-creator{color:#059669;font-style:italic;margin-left:4px;font-size:13px}.no-activities{padding:20px 0;text-align:left;color:#9ca3af;font-size:13px;font-style:italic;background:linear-gradient(135deg,#f9fafbcc,#f3f4f6cc);border-radius:8px;border:1px dashed #d1d5db}@keyframes slideUpIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.scrolling-in{animation:slideUpIn .5s ease-out}.scrolling-out{animation:slideUpOut .5s ease-in}.recent-activities-container{transition:all .2s ease}.activity-item{animation:slideUpIn .5s ease-out}.recent-activities-wrapper{height:100%;display:flex;flex-direction:column}.view-more-button-container{text-align:left;margin-top:8px}.view-more-button{padding:4px 12px;background-color:transparent;color:#3182ce;border:1px solid #3182ce;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.view-more-button:hover{background-color:#3182ce;color:#fff}@media (max-width: 640px){.module-recent-activity .activity-time{width:70px;min-width:70px;font-size:12px}.module-recent-activity .activity-content{font-size:12px}}.activities-modal{width:100%;max-width:700px;padding:0}.activities-modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #e2e8f0;background-color:#f8fafc;border-top-left-radius:6px;border-top-right-radius:6px}.activities-modal-title{display:flex;align-items:center;gap:10px}.activities-modal-title h2{margin:0;font-size:18px;font-weight:600;color:#2d3748}.activities-icon{color:#4a5568;font-size:20px}.close-button{background:none;border:none;cursor:pointer;color:#718096;font-size:16px;padding:5px;border-radius:4px;transition:all .2s ease}.close-button:hover{background-color:#e2e8f0;color:#2d3748}.activities-modal-content{padding:20px;max-height:60vh;overflow-y:auto}.activities-list{display:flex;flex-direction:column;gap:12px}.activity-item-full{display:flex;flex-direction:column;border-radius:6px;background-color:#f8fafc;position:relative;padding:12px;box-shadow:0 1px 3px #0000000d}.activity-time-wrapper{display:flex;align-items:center;gap:8px;margin-bottom:6px}.calendar-icon{color:#718096;font-size:14px}.activities-loading,.activities-error{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:30px 0;color:#718096;font-size:16px;text-align:left}.activities-error p{margin-bottom:15px;color:#e53e3e}.activities-modal-footer{padding:15px 20px;display:flex;justify-content:flex-end;border-top:1px solid #e2e8f0;background-color:#f8fafc;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.close-button-footer{background-color:#e2e8f0;border:none;padding:8px 16px;border-radius:4px;color:#4a5568;font-weight:500;cursor:pointer;transition:all .2s ease}.close-button-footer:hover{background-color:#cbd5e0;color:#2d3748}.simple-activities-modal{width:100%;max-width:700px;background-color:#fff}.simple-activities-modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #edf2f7}.simple-activities-modal-header h2{margin:0;font-size:18px;display:flex;align-items:center;gap:10px}.simple-close-button{background:none;border:none;cursor:pointer;font-size:18px;color:#718096}.simple-activities-modal-content{padding:20px;max-height:70vh;overflow-y:auto}.simple-activities-loading,.simple-activities-error,.simple-activities-empty{text-align:left;padding:20px;color:#718096}.simple-activities-list{list-style:none;padding:0;margin:0}.simple-activity-item{padding:12px 0;border-bottom:1px solid #edf2f7;display:flex;justify-content:space-between;align-items:flex-start}.simple-activity-info{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.simple-activity-username,.simple-activity-action{font-weight:500}.simple-activity-target{color:#4a5568}.simple-activity-target-name{color:#718096}.simple-activity-time{color:#a0aec0;font-size:13px;white-space:nowrap}.activity-change-detail{color:#666;margin-left:2px;display:flex}.activity-change-detail .old-value{color:#e53e3e;text-decoration:line-through;margin-right:2px;font-weight:400;display:inline-block}.activity-change-detail .arrow{color:#718096;font-weight:400;margin:0 2px;display:inline-block}.activity-change-detail .new-value{color:#38a169;font-weight:500;display:inline-block}.change-detail-container{display:inline-flex;flex-wrap:wrap;gap:0;align-items:center}.change-item{display:inline-flex;align-items:center;white-space:nowrap;margin-right:4px}.old-value{text-decoration:line-through;color:#999}.arrow{margin:0 4px;color:#666}.new-value{color:#333}.change-item:last-child{margin-right:0}.activity-log-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.activity-action,.activity-target,.activity-id{white-space:nowrap}.excel-progress-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10000}.excel-progress-modal{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:24px;min-width:360px;max-width:420px}.excel-progress-header{margin-bottom:20px}.excel-progress-title{font-size:16px;font-weight:500;color:#333;margin:0}.excel-progress-body{margin-bottom:20px}.excel-progress-container{position:relative}.excel-progress-track{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.excel-progress-fill{height:100%;background:#3b82f6;border-radius:4px;transition:width .2s ease}.excel-progress-text{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.excel-progress-percent{font-size:14px;font-weight:500;color:#333}.excel-progress-status{font-size:13px;color:#666}.excel-progress-footer{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid #e5e7eb}.excel-progress-close-btn{padding:8px 20px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background .2s}.excel-progress-close-btn:hover{background:#2563eb}.excel-progress-close-btn:active{background:#1d4ed8}.confirm-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:2000}.confirm-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;width:90%;max-width:420px;display:flex;flex-direction:column;overflow:hidden}.confirm-dialog-header{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e7eb;background:#fff}.confirm-dialog-title-wrapper{display:flex;align-items:center;gap:12px;flex:1}.confirm-dialog-icon{width:24px;height:24px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.confirm-dialog-icon-warning{background:#fef3c7;color:#f59e0b}.confirm-dialog-icon-danger{background:#fee2e2;color:#ef4444}.confirm-dialog-icon-info{background:#dbeafe;color:#3b82f6}.confirm-dialog-title{margin:0;font-size:16px;font-weight:500;color:#333;line-height:1.4}.confirm-dialog-close{background:none;border:none;font-size:18px;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.confirm-dialog-close:hover{background:#0000000d;color:#374151}.confirm-dialog-content{padding:20px;background:#fff}.confirm-dialog-message{margin:0;font-size:14px;line-height:1.6;color:#666;white-space:pre-line}.confirm-dialog-footer{padding:16px 20px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e5e7eb;background:#fff}.confirm-dialog-btn{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;border:none;min-width:70px}.confirm-dialog-btn-cancel{background:#fff;color:#666;border:1px solid #d1d5db}.confirm-dialog-btn-cancel:hover{background:#f5f5f5;border-color:#999}.confirm-dialog-btn-confirm{color:#fff}.confirm-dialog-btn-warning{background:#f59e0b}.confirm-dialog-btn-warning:hover{background:#d97706}.confirm-dialog-btn-danger{background:#ef4444}.confirm-dialog-btn-danger:hover{background:#dc2626}.confirm-dialog-btn-info{background:#3b82f6}.confirm-dialog-btn-info:hover{background:#2563eb}.confirm-dialog-btn:active{transform:translateY(0)}@media (max-width: 768px){.confirm-dialog{width:95%;max-width:none;margin:20px}.confirm-dialog-header{padding:16px 20px}.confirm-dialog-title{font-size:16px}.confirm-dialog-content{padding:20px}.confirm-dialog-message{font-size:14px}.confirm-dialog-footer{padding:12px 20px;flex-direction:column-reverse}.confirm-dialog-btn{width:100%}}.task-management-page{padding:var(--spacing-xl);max-width:100vw;margin:0 auto;min-height:100vh;background:transparent;display:flex;flex-direction:column;gap:24px}.task-management-header{margin-bottom:var(--spacing-md);display:flex;justify-content:space-between;align-items:center;position:relative;width:100%;padding:0;background:transparent;box-shadow:none;border-radius:0;text-align:center}.header-center h1{margin:0 auto;font-size:1.2rem;color:var(--color-text);font-weight:600;position:relative;display:inline-block;text-align:center;padding-bottom:1rem;max-width:90%;word-wrap:break-word;word-break:break-word;line-height:1.3;white-space:normal;-webkit-hyphens:auto;hyphens:auto}.header-center h1:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60%;height:3px;background:var(--gradient-main);border-radius:var(--radius-full, 9999px)}.task-management-actions{display:flex;gap:12px;flex:1;justify-content:flex-end}.back-button{display:flex;align-items:center;gap:4px;padding:8px 12px;border-radius:4px;background:linear-gradient(90deg,#40e0d0,#36c3f6);color:#fff;border:none;cursor:pointer;font-size:16px;margin-left:0;margin-bottom:0}.back-button:hover{background:linear-gradient(90deg,#33b3a6,#2ba9dc);color:#fff}.excel-button{display:flex;align-items:center;gap:8px;padding:10px 16px;background-color:#fff;border:1px solid #e5e7eb;color:#4b5563;border-radius:8px;transition:all .2s ease;font-size:14px;font-weight:500;cursor:pointer}.excel-button:hover{border-color:#36c3f6;color:#36c3f6;background-color:#e6f7ff}.excel-button i{font-size:16px}.statistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:var(--spacing-xl);width:100%}.stat-card,.task-distribution{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--spacing-lg);text-align:center;box-shadow:var(--shadow-card);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:all var(--transition-normal) ease;border:1px solid var(--color-border);height:auto;min-height:160px}.stat-card:hover{box-shadow:0 1px 3px #0000001a;border-color:#e6e6e6}.stat-card.selected{border:1px solid #36c3f6;box-shadow:0 0 0 2px #36c3f61a}.stat-card.selected:hover{box-shadow:0 0 0 2px #36c3f626}.stat-card:after{content:none}.stat-title{color:#2e2d2d;font-size:26px;font-weight:600;margin-bottom:16px;text-align:center;width:100%}.stat-value{font-size:56px;font-weight:700;color:#333;margin-bottom:4px;line-height:1.1;text-align:center}.stat-label{color:#666;font-size:14px;font-weight:400;margin-top:2px;text-align:center}.stat-week-range{color:#999;font-size:13px;margin-top:10px;text-align:center;width:100%}.stat-rate{color:#999;font-size:13px;margin-top:4px;text-align:center}.stat-card:nth-child(3) .stat-value{font-size:36px}.stat-card:nth-child(3) .stat-rate{font-size:14px;color:#666}.task-distribution{grid-column:4 / 5;background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 2px #00000008;border:1px solid rgba(0,0,0,.05);transition:all .2s ease;height:160px;display:flex;flex-direction:column;align-items:center;overflow:hidden}.task-distribution:hover{box-shadow:0 1px 3px #0000001a;border-color:#e6e6e6}.task-distribution .stat-title{text-align:center;margin-bottom:14px;font-size:14px}.distribution-list{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,auto);gap:8px;width:100%;flex:1;justify-content:center;align-items:center;max-width:none;padding:0 10px}.distribution-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:4px 0;border:none}.item-label{color:#555;font-size:14px;font-weight:500;text-align:left}.item-value{font-weight:600;color:#333;font-size:16px;text-align:right;min-width:30px;background:#f5f9ff;padding:2px 8px;border-radius:12px}.distribution-item:nth-child(1) .item-value{color:#36f;background:#3366ff1a}.distribution-item:nth-child(2) .item-value{color:#0ca25f;background:#0ca25f1a}.distribution-item:nth-child(3) .item-value{color:#f59e0b;background:#f59e0b1a}.distribution-item:nth-child(4) .item-value{color:#8b5cf6;background:#8b5cf61a}.task-controls-container{display:flex;justify-content:flex-start;margin-bottom:16px;margin-top:0;padding-left:0}.add-task-middle-button{display:flex;align-items:center;gap:4px;padding:8px 12px;border-radius:4px;background:linear-gradient(90deg,#40e0d0,#36c3f6);color:#fff;border:none;cursor:pointer;font-size:16px;margin-left:0;margin-bottom:0}.task-table-wrapper{width:100%;max-height:calc(100vh - 300px);overflow-y:auto;overflow-x:auto;position:relative;margin-bottom:var(--spacing-lg)}.task-table{width:100%;max-width:100%;margin:0 auto;background:#fffffff2;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:visible;border:1px solid var(--color-border)}.task-table th{padding:var(--spacing-sm);text-align:center;font-weight:var(--font-weight-semibold);color:#444;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;background:#f5f7fa!important;position:sticky!important;top:0!important;z-index:100!important;box-shadow:0 2px 4px #0000001a!important}.task-table td{padding:var(--spacing-sm);text-align:center;border-bottom:1px solid var(--color-border);vertical-align:middle;color:var(--color-text);font-size:var(--font-size-sm)}.task-table tbody tr{transition:background-color var(--transition-fast) ease}.task-table tbody tr:hover{background-color:var(--color-bg-dark)}.task-actions{display:flex;justify-content:center;gap:8px}.page-header{margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.page-title{font-size:24px;font-weight:600;color:#2c3e50;margin:0}.header-actions{display:flex;gap:12px;align-items:center}.task-content{display:grid;gap:24px;grid-template-columns:1fr}.task-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a}.stat-title{font-size:14px;color:#666;margin-bottom:8px}.stat-value{font-size:36px;font-weight:600;color:#2c3e50}.stat-trend{display:flex;align-items:center;gap:4px;font-size:12px;margin-top:8px}.trend-up{color:#10b981}.trend-down{color:#ef4444}.task-list-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.floating-button{position:fixed;right:2rem;bottom:2rem;z-index:1000;border-radius:50%;width:70px;height:70px;padding:0;box-shadow:0 10px 30px #667eea66;animation:float 3s ease-in-out infinite;background:var(--gradient-main);border:3px solid #fff}.floating-button:hover{animation:none;transform:scale(1.1) rotate(90deg);box-shadow:0 15px 40px #667eea99;background:var(--gradient-main-hover)}.floating-button .icon{width:24px;height:24px;filter:brightness(0) invert(1)}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(180deg)}}.loading{display:flex;justify-content:center;align-items:center;height:300px;font-size:16px;color:#6b7280;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d}.loading:after{content:"";width:30px;height:30px;margin-left:15px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.error-message{padding:20px;background-color:#fee2e2;color:#ef4444;border-radius:12px;text-align:center;font-size:16px;font-weight:500}.error-message:before{content:"⚠️";font-size:2rem;display:block;margin-bottom:.5rem}.success-message{background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;padding:1.5rem 2rem;border-radius:15px;margin:2rem;text-align:center;box-shadow:0 8px 25px #2ecc714d;position:relative;overflow:hidden}.success-message:before{content:"✅";font-size:2rem;display:block;margin-bottom:.5rem}.empty-message{text-align:center;color:#666;padding:4rem 2rem;font-size:1.1rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:20px;margin:2rem}.empty-message:before{content:"📝";font-size:4rem;display:block;margin-bottom:1rem;animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@media (max-width: 1024px){.task-management-page{padding:var(--spacing-lg)}.statistics-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.task-management-page{padding:var(--spacing-md)}.task-management-header{flex-direction:column;align-items:flex-start;gap:16px}.header-center,.task-management-actions{width:100%;justify-content:center}.statistics-grid{grid-template-columns:1fr}}@media (max-width: 480px){.task-management-page{padding:var(--spacing-sm)}.header-center h1{font-size:var(--font-size-xl)}.back-button,.excel-button{padding:8px 12px;font-size:12px}}.table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.table-toolbar .left{flex:1}.table-toolbar .right{flex:1;display:flex;justify-content:flex-end;gap:12px}.pagination{margin-top:12px}.task-controls-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:0 8px}.task-filter-bar{display:flex;gap:16px;align-items:center;background:none;border:none;box-shadow:none;border-radius:0;padding:0}.task-filter-bar label{color:#333;font-weight:400;margin-right:4px;font-size:14px;white-space:nowrap}.task-filter-bar select,.task-filter-bar input[type=date]{border:1px solid #d9d9d9;border-radius:4px;height:32px;font-size:14px;padding:0 8px;background:#fff;color:#222;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;transition:border .2s,box-shadow .2s;outline:none;box-shadow:none;min-width:120px}.task-filter-bar select:focus,.task-filter-bar input[type=date]:focus{border:1px solid #36c3f6;box-shadow:0 0 0 2px #36c3f61a}.task-filter-bar input[type=date]::-webkit-input-placeholder{color:#bbb}.task-filter-bar input[type=date]::-moz-placeholder{color:#bbb}.task-filter-bar input[type=date]:-ms-input-placeholder{color:#bbb}.task-filter-bar input[type=date]::placeholder{color:#bbb}.task-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;width:100%;max-width:100%;min-height:48px}.task-toolbar-card{display:flex;justify-content:space-between;align-items:center;background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--color-border);width:100%;flex-wrap:wrap;gap:16px}.task-toolbar-card .add-task-middle-button{background:linear-gradient(90deg,#40e0d0,#36c3f6);color:#fff;font-size:14px;border:none;border-radius:4px;padding:8px 16px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:background .2s;box-shadow:none;font-weight:400;float:left}.task-toolbar-card .add-task-middle-button:hover{background:linear-gradient(90deg,#33b3a6,#2ba9dc)}.task-toolbar-card .task-filter-bar{display:flex;gap:16px;align-items:center;background:none;border:none;border-radius:0;padding:0}.task-toolbar-card .task-filter-bar label{color:#333;font-weight:400;margin-right:4px;font-size:14px;white-space:nowrap}.task-toolbar-card .task-filter-bar select,.task-toolbar-card .task-filter-bar input[type=date]{border:1px solid #d9d9d9;border-radius:4px;height:32px;font-size:14px;padding:0 8px;background:#fff;color:#222;transition:border .2s;outline:none;box-shadow:none;min-width:120px}.task-toolbar-card .task-filter-bar select:focus,.task-toolbar-card .task-filter-bar input[type=date]:focus{border:1px solid #36c3f6;box-shadow:0 0 0 2px #36c3f61a}.pagination-bar{display:flex;justify-content:center;align-items:center;gap:16px;margin:24px 0 0}.pagination-btn{background:var(--gradient-main, linear-gradient(90deg, #30c9f3, #2ecc71));color:#fff;border:none;border-radius:4px;padding:8px 20px;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .2s,box-shadow .2s;box-shadow:0 1px 2px #0000000a}.pagination-btn:disabled{background:#e0e0e0;color:#aaa;cursor:not-allowed;box-shadow:none}.pagination-info{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:500}.active-filter-indicator{margin:0 0 16px;display:flex;justify-content:flex-end}.filter-badge{background-color:#e3f2fd;color:#1976d2;border-radius:4px;padding:6px 12px;display:flex;align-items:center;gap:8px;font-size:14px;box-shadow:0 1px 3px #0000001a}.filter-badge svg{font-size:12px}.clear-filter-btn{background:none;border:none;color:#777;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:50%;width:20px;height:20px;margin-left:8px}.clear-filter-btn:hover{background-color:#0000001a;color:#333}.task-filter-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:16px;margin-bottom:24px;border:1px solid #eaeaea}.filter-header{display:flex;justify-content:flex-start;align-items:center;margin-bottom:16px}.task-filter-section h3{margin-top:0;margin-bottom:0;font-size:16px;color:#333;display:flex;align-items:center;gap:8px}.filter-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:16px}.add-task-button{flex-shrink:0}.filter-options{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-start;flex:1}.filter-label{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:500;color:#333;white-space:nowrap;padding-right:16px;border-right:1px solid #eaeaea;text-align:left}.filter-group{display:flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;justify-content:flex-start}.filter-group label{margin-right:8px;font-size:14px;color:#666;white-space:nowrap;text-align:left}.filter-group select,.filter-group input[type=date]{flex:1;min-width:120px;max-width:140px;border:1px solid #ddd;border-radius:4px;padding:6px 8px;font-size:14px;color:#333;background-color:#fff}.filter-group select:focus,.filter-group input[type=date]:focus{border-color:#40e0d0;outline:none;box-shadow:0 0 0 2px #40e0d01a}.date-range-inputs{display:flex;align-items:center;gap:8px}.reset-button{margin-left:auto;display:flex;align-items:center;gap:4px;background-color:#f5f5f5;border:1px solid #ddd;color:#666;padding:6px 12px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s ease}.reset-button:hover{background-color:#eaeaea;color:#333}@media (max-width: 992px){.filter-row{flex-direction:column;align-items:flex-start}.filter-options{width:100%;justify-content:flex-start;margin-top:12px}.filter-label{border-right:none;border-bottom:1px solid #eaeaea;padding-bottom:8px;margin-bottom:8px;width:100%}.add-task-button{margin-bottom:8px}}.empty-table-message button{margin-top:16px}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:12px 16px;background-color:#f9f9f9;border-radius:8px;border:1px solid #eaeaea}.pagination-info{font-size:14px;color:#666}.pagination-buttons{display:flex;align-items:center;gap:8px}.page-number{font-size:14px;font-weight:500;color:#333;padding:0 12px}@media (max-width: 768px){.pagination-controls{flex-direction:column;gap:12px}.pagination-buttons{width:100%;justify-content:center}}.task-statistics-container{margin-bottom:20px}.add-task-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.add-task-button{min-width:100px}.batch-add-button{min-width:100px;background-color:#f59e0b;border-color:#f59e0b;color:#fff}.batch-add-button:hover{background-color:#d97706;border-color:#d97706}.batch-count-selector{display:flex;align-items:center;gap:5px;margin-left:10px}.batch-count-selector label{font-size:14px;color:#374151;white-space:nowrap}.batch-count-selector select{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;background-color:#fff}.save-batch-button{min-width:120px;background-color:#10b981;border-color:#10b981;color:#fff}.save-batch-button:hover{background-color:#059669;border-color:#059669}.cancel-batch-button{min-width:120px;background-color:#ef4444;border-color:#ef4444;color:#fff}.cancel-batch-button:hover{background-color:#dc2626;border-color:#dc2626}.batch-mode-indicator{display:flex;align-items:center;margin-left:15px;padding:8px 12px;background-color:#fef3c7;border:1px solid #f59e0b;border-radius:6px;color:#92400e;font-size:14px;font-weight:500}.task-table tbody tr[data-task-id^=batch-new-]{background-color:#fef3c7;border-left:4px solid #f59e0b}.task-table tbody tr[data-task-id^=batch-new-]:hover{background-color:#fde68a}.module-statistics{background:#fff;padding:20px;border-radius:12px;box-shadow:0 1px 3px #00000014;margin-bottom:20px;border:1px solid #edf2f7}.module-statistics .statistics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #edf2f7}.module-statistics .statistics-header h2{margin:0;font-size:16px;color:#2d3748;font-weight:600;position:relative}.module-statistics .statistics-header h2:before{display:none}.module-statistics .header-right{display:flex;align-items:center;gap:15px}.module-statistics .date-range{color:#718096;font-size:14px}.module-statistics .reset-filter-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;background-color:#ebf8ff;color:#3182ce;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s ease}.module-statistics .reset-filter-btn:hover{background-color:#bee3f8}.module-statistics .statistics-grid{display:flex;flex-direction:row;gap:16px}.module-statistics .stat-card{position:relative;background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:16px;height:200px;display:flex;flex-direction:column;border:1px solid #edf2f7;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;flex:1}.module-statistics .stat-card>*:not(.stat-title):not(.stat-footer){flex:1;display:flex;align-items:center;justify-content:center}.module-statistics .stat-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:transparent}.module-statistics .project-status-card:before{background:linear-gradient(90deg,#4299e1,#63b3ed)}.module-statistics .delivery-card:before{background:linear-gradient(90deg,#48bb78,#68d391)}.module-statistics .progress-stats-card:before{background:linear-gradient(90deg,#805ad5,#9f7aea)}.module-statistics .risk-card:before{background:linear-gradient(90deg,#ed8936,#f6ad55)}.module-statistics .activity-card:before{background:linear-gradient(90deg,#3182ce,#90cdf4)}.module-statistics .stat-card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.module-statistics .stat-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#4a5568;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #edf2f7;height:24px;justify-content:flex-start;text-align:left;flex-shrink:0}.module-statistics .stat-title svg{color:inherit}.module-statistics .project-status-container{display:flex;justify-content:space-between;align-items:center}.module-statistics .status-item{display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:6px;border-radius:6px;transition:background-color .2s;flex:1;text-align:center}.module-statistics .status-item:hover{background-color:#f7fafc}.module-statistics .status-value{font-size:28px;font-weight:700;margin-bottom:8px;line-height:1;height:28px;display:flex;align-items:center;justify-content:center}.module-statistics .status-value.not-started{color:#a0aec0}.module-statistics .status-value.in-progress{color:#4299e1}.module-statistics .status-value.completed{color:#48bb78}.module-statistics .status-label{font-size:13px;color:#718096;font-weight:500;height:18px;display:flex;align-items:center;justify-content:center;text-align:center}.module-statistics .status-divider{width:1px;height:40px;background-color:#edf2f7;margin:0 4px}.module-statistics .risk-container{display:flex;justify-content:space-around;align-items:center}.module-statistics .risk-item{display:flex;flex-direction:column;align-items:center;flex:1;cursor:pointer;padding:6px;border-radius:6px;transition:background-color .2s;text-align:center}.module-statistics .risk-item:hover{background-color:#f7fafc}.module-statistics .risk-value{font-size:28px;font-weight:700;margin-bottom:8px;line-height:1;height:28px;display:flex;align-items:center;justify-content:center}.module-statistics .risk-value.delayed{color:#e53e3e}.module-statistics .risk-value.at-risk{color:#ed8936}.module-statistics .risk-label{font-size:13px;color:#718096;font-weight:500;height:18px;display:flex;align-items:center;justify-content:center;text-align:center}.module-statistics .risk-divider{width:1px;height:40px;background-color:#edf2f7;margin:0 4px}.module-statistics .hours-container{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;height:60px;flex:1}.module-statistics .progress-percentage{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:0;height:60px;flex:1}.module-statistics .progress-text{font-size:13px;color:#718096;font-weight:500;margin-top:10px;height:18px;display:flex;align-items:center;justify-content:center}.module-statistics .plan-vs-actual{text-align:center;margin:8px 0;font-size:14px;font-weight:500}.module-statistics .plan-vs-actual .ahead{color:#48bb78;background-color:#48bb781a;padding:3px 8px;border-radius:12px}.module-statistics .plan-vs-actual .behind{color:#e53e3e;background-color:#e53e3e1a;padding:3px 8px;border-radius:12px}.module-statistics .delivery-card .stat-value{color:#4a5568;gap:2px}.module-statistics .delivery-card .stat-value span:first-child{color:#718096}.module-statistics .delivery-card .stat-value span:last-child{color:#48bb78}.module-statistics .stat-subtitle{color:#718096;font-size:14px;font-weight:500;margin-top:8px}.module-statistics .stat-footer{margin-top:auto;padding-top:10px;font-size:13px;color:#718096;border-top:1px dashed #edf2f7;text-align:center;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.module-statistics .stat-footer .ahead,.module-statistics .stat-footer .behind{padding:4px 10px;border-radius:8px;font-weight:500;display:inline-block;font-size:12px}.module-statistics .stat-footer .ahead{color:#48bb78;background-color:#48bb781a}.module-statistics .stat-footer .behind{color:#e53e3e;background-color:#e53e3e1a}.module-statistics .highlight-text{font-weight:600;display:inline-block}.module-statistics .highlight-text.positive{color:#48bb78}.module-statistics .highlight-text.negative{color:#e53e3e}.module-statistics .highlight-text.warning{color:#ed8936}.module-statistics .highlight-text.info{color:#4299e1}.module-statistics .filter-status{margin-top:15px;padding:10px;background-color:#ebf8ff;border-radius:8px;font-size:14px;color:#3182ce;display:flex;align-items:center;justify-content:center}.module-statistics .filter-status-text{font-weight:600}.module-statistics .activity-card{cursor:pointer;text-align:left}.module-statistics .direct-activities-container{display:flex;flex-direction:column;margin:5px 0;padding:0 8px;height:140px;overflow:hidden;position:relative}.module-statistics .activities-scroll-wrapper{height:100%;overflow:hidden;position:relative}.module-statistics .activities-scroll-content{animation:smoothScrollUp 15s linear infinite;animation-play-state:running;display:flex;flex-direction:column}.module-statistics .activities-scroll-wrapper:hover .activities-scroll-content{animation-play-state:paused}.module-statistics .activities-scroll-content .direct-activity-item{flex-shrink:0}.module-statistics .direct-activity-item{margin-bottom:4px;padding:2px 0}.module-statistics .direct-activity-time{font-size:10px;color:#9ca3af;margin-bottom:0;font-weight:500;text-align:left}.module-statistics .direct-activity-content{font-size:12px;color:#4a5568;line-height:14px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-statistics .static-activities{display:flex;flex-direction:column;gap:4px}.module-statistics .no-activities{color:#a0aec0;font-size:12px;text-align:center;padding:20px 0;display:flex;align-items:center;justify-content:center;height:100%}.module-statistics .activities-scroll{position:relative;animation:smoothScrollUp 10s linear infinite;animation-play-state:running}.module-statistics .activities-scroll:hover{animation-play-state:paused}@keyframes smoothScrollUp{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.module-statistics .recent-activities-container{display:flex;flex-direction:column;margin:5px 0;padding:0 15px;height:140px;overflow:hidden;position:relative}.module-statistics .activity-item{display:flex;flex-direction:column;align-items:flex-start;position:relative;padding-left:10px;border-left:2px solid #e2e8f0;margin-bottom:18px}.module-statistics .activity-time{font-size:12px;color:#4a5568;font-weight:500;margin-bottom:2px}.module-statistics .activity-content{font-size:12px;line-height:1.3;color:#2d3748;white-space:normal;overflow:hidden;text-overflow:ellipsis;width:100%}.module-statistics .activity-user{font-weight:600;color:#2d3748}.module-statistics .activity-action,.module-statistics .activity-target{color:#4a5568;margin:0 4px}.module-statistics .activity-id{color:#4a5568;font-weight:500}.module-statistics .view-more{color:#3182ce;font-weight:500;cursor:pointer;text-align:center;display:block;padding:4px 0;font-size:12px}@keyframes scrollUp{0%{transform:translateY(40px)}to{transform:translateY(-140px)}}@media (max-width: 1400px){.module-statistics .statistics-grid{flex-wrap:wrap}.module-statistics .stat-card{flex-basis:calc(33.333% - 16px);margin-bottom:16px}}@media (max-width: 992px){.module-statistics .statistics-grid{flex-wrap:wrap}.module-statistics .stat-card{flex-basis:calc(50% - 16px);margin-bottom:16px}}@media (max-width: 768px){.module-statistics .statistics-grid{flex-direction:column}.module-statistics .stat-card{flex-basis:100%;margin-bottom:16px}.module-statistics .header-right{flex-direction:column;align-items:flex-end;gap:8px}}.module-statistics .progress-value{font-size:28px;font-weight:700;color:#805ad5;line-height:1;margin-bottom:8px;height:28px;display:flex;align-items:center;justify-content:center}.module-statistics .progress-text{font-size:13px;color:#718096;font-weight:500;margin-top:15px;height:18px;display:flex;align-items:center;justify-content:center}.module-statistics .stat-value{font-size:28px;font-weight:700;color:#4a5568;margin-bottom:8px;line-height:1;height:28px;display:flex;align-items:center;justify-content:center;gap:2px}.module-statistics .stat-subtitle{color:#718096;font-size:13px;font-weight:500;margin-top:0;height:18px;display:flex;align-items:center;justify-content:center}.module-statistics .project-status-container,.module-statistics .risk-container{display:flex;justify-content:space-between;align-items:center;margin:0;height:60px;flex:1}.module-statistics .status-divider,.module-statistics .risk-divider{width:1px;height:40px;background-color:#edf2f7;margin:0 4px;display:block;flex-shrink:0}.module-statistics .hours-separator{font-size:24px;margin:0 2px;color:#a0aec0}.module-statistics .delivery-card,.module-statistics .progress-stats-card{background-color:#fff!important;background:#fff!important;background-image:none!important;border:1px solid #e2e8f0!important;box-shadow:0 2px 4px #0000000a!important}.module-statistics .delivery-card *:not(button):not(.hours-separator):not(.stat-footer span),.module-statistics .progress-stats-card *:not(button):not(.hours-separator):not(.stat-footer span){background-color:transparent!important;background:transparent!important}.module-statistics .delivery-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,#48bb78,#68d391);z-index:2}.module-statistics .progress-stats-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,#805ad5,#9f7aea);z-index:2}.module-statistics .progress-stats-grid,.module-statistics .progress-stat-item{display:none}.module-statistics .progress-value{font-size:22px;font-weight:700;color:#805ad5;line-height:1;margin-bottom:4px;height:22px;display:flex;align-items:center;justify-content:center}.module-statistics .progress-text{font-size:12px;color:#718096;font-weight:500;margin-top:4px;height:16px;display:flex;align-items:center;justify-content:center}.module-statistics .activity-detail{color:#2d3748;font-weight:500}.module-statistics .activity-target{color:#4a5568;margin:0 4px;font-weight:500}.module-statistics .activity-operation{color:#718096;font-size:11px;font-style:italic}.module-statistics .activity-content,.module-statistics .activity-item,.module-statistics .activities-scroll{text-align:left!important;align-items:flex-start!important}.message-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;transition:opacity .3s ease;pointer-events:none}.message-overlay.message-visible{opacity:1;pointer-events:all}.message{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90%;max-width:420px;display:flex;align-items:center;gap:16px;padding:20px 24px;animation:messageSlideIn .3s cubic-bezier(.34,1.56,.64,1);border-left:4px solid;position:relative}@keyframes messageSlideIn{0%{transform:translateY(-30px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.message-success{border-left-color:#10b981;background:linear-gradient(135deg,#ecfdf5,#f0fdf4)}.message-error{border-left-color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.message-warning{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.message-info{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.message-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.message-icon-success{background:#10b981;color:#fff}.message-icon-error{background:#ef4444;color:#fff}.message-icon-warning{background:#f59e0b;color:#fff}.message-icon-info{background:#3b82f6;color:#fff}.message-content{flex:1;min-width:0}.message-text{margin:0;font-size:15px;line-height:1.5;color:#1f2937;font-weight:500;white-space:pre-line;word-break:break-word}.message-close{background:none;border:none;font-size:16px;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.message-close:hover{background:#0000000d;color:#374151}@media (max-width: 768px){.message{width:95%;max-width:none;margin:20px;padding:16px 20px}.message-icon{width:28px;height:28px;font-size:16px}.message-text{font-size:14px}}.module-list-page{padding:var(--spacing-xl, 24px);max-width:100%;margin:0 auto;min-height:100vh;background:var(--color-bg, #f9fafb);display:flex;flex-direction:column;gap:16px}.task-management-header{margin-bottom:var(--spacing-md, 16px);display:flex;justify-content:space-between;align-items:center;position:relative;width:100%;padding:0;background:transparent;box-shadow:none;border-radius:0}.header-left{display:flex;align-items:center;flex:1}.header-center{display:flex;align-items:center;justify-content:center;flex:2;text-align:center}.header-actions{display:flex;justify-content:flex-end;flex:1}.back-button{display:flex;align-items:center;gap:8px;padding:10px 16px;background-color:#f3f4f6;border:none;color:#4b5563;border-radius:8px;transition:all .2s ease;font-size:14px;font-weight:500;cursor:pointer}.back-button:hover{background-color:#e5e7eb;color:#1f2937}.header-title h1,.header-center h1{margin:0 auto;font-size:1.2rem;color:var(--color-text);font-weight:600;position:relative;display:inline-block;text-align:center;padding-bottom:1rem;max-width:90%;word-wrap:break-word;word-break:break-word;line-height:1.3;white-space:normal;-webkit-hyphens:auto;hyphens:auto}.header-title h1:after,.header-center h1:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60%;height:3px;background:var(--gradient-main, linear-gradient(90deg, #36c3f6 0%, #2ecc71 100%));border-radius:var(--radius-full, 9999px)}.module-list-container{margin-top:20px;width:100%}.module-list{background-color:var(--color-bg-card, #ffffff);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-card, 0 2px 8px rgba(0, 0, 0, .05));overflow:hidden;border:1px solid var(--color-border, #e5e7eb);max-width:100%}.module-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm);table-layout:fixed;white-space:nowrap}.module-table thead{border-bottom:2px solid #e5e7eb}.module-table thead tr{height:auto}.module-table th,.module-table td{padding:14px 20px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--color-border, #e5e7eb);font-size:var(--font-size-sm)}.module-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50;font-size:var(--font-size-sm);padding:14px 20px;text-align:center;border-bottom:1px solid #e9ecef;text-transform:none;letter-spacing:normal;position:sticky;top:0;z-index:1}.module-table tr:last-child td{border-bottom:none}.module-table tbody tr:hover{background-color:var(--color-bg)}.module-table tr.module-row.clickable{transition:all .2s ease}.module-table tr.module-row.clickable:hover{background-color:#e8f4fd;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.module-table tr.module-row.clickable:active{transform:translateY(0);box-shadow:0 1px 4px #0000001a}.module-table tr.editing{background-color:#eaf3ff!important;box-shadow:0 2px 8px #36c3f614;border:1.5px solid #36c3f6}.module-table tr.editing td{background-color:transparent;border-bottom:none}.module-table tr.editing:hover{background-color:#eaf3ff}.editable-input,.editable-select{width:100%;padding:8px 12px;border:1.5px solid #36c3f6;border-radius:8px;background-color:#fff;font-size:var(--font-size-sm, .875rem);transition:all .2s ease}.editable-input:focus,.editable-select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #c7e3ff;outline:none}.date-input-container{position:relative;width:100%}.date-input{min-width:140px;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px;padding-right:30px!important}.date-input::-webkit-calendar-picker-indicator{opacity:0;width:100%;height:100%;position:absolute;top:0;left:0;cursor:pointer}.number-input{min-width:60px;text-align:right;padding-right:24px}.col-id{width:50px}.col-name{width:150px}.col-description{width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-description .description-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}.col-manager{width:100px}.col-priority{width:80px}.col-progress{width:120px}.col-date{width:110px}.col-created-by{width:100px}.col-created-by{width:90px}.col-actions{width:120px}.priority-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-align:center;min-width:60px}.priority-高{background-color:#fee2e2;color:#ef4444}.priority-中{background-color:#fef3c7;color:#f59e0b}.priority-低{background-color:#e0f2fe;color:#0ea5e9}.progress-edit-container{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;gap:8px}.auto-progress-note{font-size:12px;color:#6b7280;font-style:italic;padding:8px;text-align:center;width:100%;background-color:#f3f4f6;border-radius:4px;display:flex;flex-direction:column;gap:4px}.current-progress{font-weight:500;color:#4b5563;margin-top:4px}.new-module-note{color:#9ca3af;margin-top:4px}.auto-progress-indicator{font-size:10px;margin-left:4px;opacity:.8;cursor:help;display:inline-block}.progress-container{position:relative;width:100%;height:24px;background-color:#f3f4f6;border-radius:12px;overflow:hidden;box-shadow:inset 0 1px 2px #0000000d}.progress-bar{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:12px;transition:width .4s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:13px;font-weight:600;color:#1e3a8a;display:flex;align-items:center;text-shadow:0 1px 1px rgba(255,255,255,.8)}.progress-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.progress-bar-container{position:relative;flex:1;height:20px;background-color:var(--color-bg-dark);border-radius:var(--radius-full, 9999px);overflow:hidden}.progress-bar-fill{height:100%;border-radius:var(--radius-full, 9999px);transition:width var(--transition-normal) ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;color:#32353b;text-shadow:0 1px 2px rgba(0,0,0,.2);z-index:1;pointer-events:none;font-weight:500;white-space:nowrap;line-height:1}.module-actions{display:flex;gap:1rem;justify-content:center;width:100%}.module-list .action-btn,.task-actions .action-btn{background:none!important;border:none!important;padding:0!important;margin:0!important;min-width:auto!important;height:auto!important;box-shadow:none!important;display:inline-flex;align-items:center;justify-content:center;color:#333;transition:all .2s ease-in-out;flex:1;max-width:30px}.module-list .action-btn:hover,.task-actions .action-btn:hover{background-color:transparent!important;transform:scale(1.1);color:var(--color-primary)!important}.view-btn:hover,.edit-btn:hover,.save-btn:hover{color:var(--color-primary)!important}.delete-btn:hover{color:var(--color-danger)!important}.cancel-btn:hover{color:#ef4444!important}.view-btn,.edit-btn,.delete-btn,.save-btn,.cancel-btn{color:#444}.view-btn:hover,.edit-btn:hover,.delete-btn:hover,.save-btn:hover,.cancel-btn:hover{color:#40e0d0!important}.progress-mode-selector{width:100%;margin-bottom:5px}.progress-mode-select{width:100%;padding:6px 10px;border-radius:4px;border:1px solid #e5e7eb;background-color:#f9fafb;font-size:12px;color:#4b5563}.manual-progress-input{position:relative;display:flex;align-items:center;width:100%}.progress-unit{position:absolute;right:10px;color:#6b7280;font-size:12px}.edit-actions,.view-actions{display:flex;gap:8px;justify-content:center;width:100%}.empty-message{padding:3rem;text-align:center;color:#6b7280;background-color:#f9fafb;border-radius:8px;display:flex;flex-direction:column;align-items:center;font-size:16px;height:200px;justify-content:center}.error-message{background-color:#ef44441a;color:#ef4444;padding:1rem;margin-bottom:1rem;border-radius:8px}.loading{padding:2rem;text-align:center;color:#6b7280}@media (max-width: 1200px){.module-table{min-width:auto;width:100%}.module-list{overflow-x:auto}}@media (max-width: 768px){.module-list-page{padding:var(--spacing-md)}.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-actions{align-self:flex-end}}.view-actions{display:flex;gap:8px;justify-content:center}.empty-table-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px;text-align:center;background-color:#f9f9f9;border-radius:8px;margin:20px 0}.empty-table-message p{font-size:16px;color:#666;margin:10px 0}.empty-icon{margin-bottom:16px;color:#ccc}.module-filter{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:15px;margin:8px 0;box-shadow:0 1px 3px #0000000d}.filter-row{display:flex;flex-wrap:wrap;gap:15px;align-items:center;justify-content:flex-start}.filter-icon-group{display:flex;align-items:center;gap:8px;color:#6b7280;font-weight:500;margin-right:10px;text-align:left}.filter-icon{font-size:14px;color:#333}.filter-label-text{font-size:14px;color:#374151;white-space:nowrap}.reset-filter-btn{margin-left:10px;height:32px;padding:6px 12px;font-size:12px;border-radius:6px;background:#f3f4f6;color:#6b7280;border:1px solid #d1d5db;transition:all .2s ease}.reset-filter-btn:hover{background:#e5e7eb;color:#374151;border-color:#9ca3af}.add-module-btn{display:flex;align-items:center}.add-task-button{background:linear-gradient(90deg,#12c2e9,#21d190);border:none;padding:8px 16px;border-radius:25px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:5px;min-width:120px}.add-task-button:hover{background:linear-gradient(90deg,#0fb8df,#1dc384)}.plus-icon{margin-right:8px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}.filter-group{display:flex;align-items:center;gap:8px;justify-content:flex-start}.filter-group label{font-weight:500;color:#4b5563;white-space:nowrap;text-align:left}.search-group{flex:1;min-width:200px}.search-input-container{position:relative;width:100%}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9ca3af}.search-input{width:100%;padding:8px 10px 8px 35px;border:1px solid #d1d5db;border-radius:4px;font-size:14px}.filter-select{padding:8px 10px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;font-size:14px;min-width:120px}.filter-actions{margin-left:0}@media (max-width: 768px){.filter-row{flex-direction:column;align-items:stretch}.add-module-btn{margin-bottom:10px;width:100%}.add-module-btn button,.filter-group{width:100%}.filter-actions{margin-left:0;width:100%}.filter-actions button{width:100%}}.settings-page-container,.profile-page-container{max-width:1200px;margin:2rem auto;padding:0 1rem}.settings-page,.profile-page{display:flex;flex-direction:column;gap:1.5rem;padding:0}.settings-card{background-color:var(--color-bg-light, #ffffff);border-radius:var(--radius-lg, .75rem);padding:2rem;box-shadow:none;border:1px solid var(--color-border, #e2e8f0)}.settings-card h2{font-size:1.125rem;font-weight:var(--font-weight-semibold, 600);color:var(--color-text, #1e293b);margin-top:0;margin-bottom:2rem;padding-bottom:0;border-bottom:none}.settings-section{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.875rem;font-weight:var(--font-weight-medium, 500);color:var(--color-text-light, #64748b);margin-bottom:.5rem}.form-group input{padding:.75rem 1rem;border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-md, .5rem);font-size:1rem;color:var(--color-text, #111827);background-color:var(--color-bg-light)}.form-group input::placeholder{color:var(--color-text-lighter)}.form-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group input:disabled{background-color:var(--color-bg, #f1f5f9);color:var(--color-text-light, #6b7280);cursor:not-allowed}.avatar-setting{display:flex;align-items:center;gap:1.5rem}.avatar-preview{width:80px;height:80px;border-radius:50%;background-color:#2dd4bf;color:#fff;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700}.avatar-actions{display:flex;align-items:center;gap:1rem}.avatar-actions .btn-primary{background:var(--color-success)}.avatar-actions .btn-secondary{background:#fff;color:var(--color-text);border:1px solid var(--color-border)}.settings-footer{display:flex;justify-content:flex-end;margin-top:1rem}.settings-footer .btn-primary{background-color:var(--color-success)}.settings-footer .btn-primary:hover{background-color:#059669}.notification-item,.general-setting-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid #f3f4f6}.notification-item:last-child,.general-setting-item:last-child{border-bottom:none}.notification-info h3{font-size:1rem;font-weight:500;margin:0 0 .25rem}.notification-info p{font-size:.875rem;color:#6b7280;margin:0}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:34px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:#2dd4bf}input:checked+.toggle-slider:before{transform:translate(20px)}.danger-zone{border-color:#ef4444}.danger-zone-content{display:flex;justify-content:space-between;align-items:center}.danger-zone-info h3{color:#b91c1c;font-size:1rem;font-weight:600;margin:0 0 .25rem}.danger-zone-info p{font-size:.875rem;color:#6b7280;margin:0}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover{background-color:#dc2626}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-container{background-color:#fff;border-radius:8px;box-shadow:0 5px 20px #0003;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eaecef;position:relative}.modal-header h2{margin:0;font-size:18px;color:#333}.modal-username{color:#666;font-size:14px;margin-left:10px;flex-grow:1;text-align:right;padding-right:40px}.modal-close-button{background:none;border:none;font-size:24px;color:#999;cursor:pointer;position:absolute;top:10px;right:16px;transition:color .2s}.modal-close-button:hover{color:#333}.modal-body{padding:20px;overflow-y:auto;max-height:calc(80vh - 130px)}.modal-footer{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid #eaecef;gap:12px}.modal-error{padding:12px;background-color:#fff1f0;border:1px solid #ffccc7;border-radius:4px;color:#f5222d;margin-bottom:16px;display:flex;align-items:center}.modal-success{padding:12px;background-color:#f6ffed;border:1px solid #b7eb8f;border-radius:4px;color:#52c41a;margin-bottom:16px;display:flex;align-items:center}.error-icon,.success-icon{font-weight:700;margin-right:8px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:14px}.error-icon{background-color:#f5222d;color:#fff}.success-icon{background-color:#52c41a;color:#fff}.modal-loading{text-align:center;padding:20px;color:#666}.no-projects-message{text-align:center;padding:30px;color:#999}.permission-modal{width:90%;max-width:800px}.permissions-container{overflow-x:auto}.permissions-table{width:100%;border-collapse:collapse;margin-top:10px}.permissions-table th,.permissions-table td{padding:12px 15px;border-bottom:1px solid #eaecef;text-align:left}.permissions-table th{background-color:#f7f9fc;font-weight:500;color:#666}.permissions-table tr:hover{background-color:#f7f9fc}.project-name{font-weight:500;color:#333;margin-bottom:4px}.project-status{display:flex;align-items:center}.status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;color:#fff}.status-进行中{background-color:#1890ff}.status-已完成{background-color:#52c41a}.status-暂停{background-color:#faad14}.status-已关闭{background-color:#dc2626}.toggle-switch{position:relative;display:inline-block;width:46px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background:linear-gradient(135deg,#44c4f4,#34e0a1)}input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}input:checked+.toggle-slider:before{transform:translate(22px)}.dashboard-container{width:100%;background-color:var(--color-bg, #f8f9fa);display:flex;flex-direction:column}.dashboard-header{background-color:var(--color-primary, #3b82f6);color:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a}.dashboard-header h1{margin:0;font-size:1.5rem;font-weight:600}.user-info{display:flex;align-items:center;gap:16px}.logout-btn{background-color:transparent;border:1px solid white;color:#fff;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.875rem;transition:background-color .2s}.logout-btn:hover{background-color:#ffffff1a}.dashboard-content{display:flex;flex:1;height:calc(100vh - 64px)}.dashboard-sidebar{width:240px;background-color:#fff;border-right:1px solid #e5e7eb;padding:16px 0}.menu-list{list-style:none;padding:0;margin:0}.menu-item{padding:0}.menu-item a,.menu-item button{display:block;padding:12px 16px;color:var(--color-text, #111827);text-decoration:none;font-size:1rem;cursor:pointer;width:100%;text-align:left;background:none;border:none;transition:background-color .2s}.menu-item a:hover,.menu-item button:hover{background-color:#f3f4f6;color:var(--color-primary, #3b82f6)}.dashboard-main{flex:1;padding:24px;overflow-y:auto}.dashboard-welcome{background-color:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.dashboard-welcome h2{margin-top:0;color:var(--color-text, #111827);font-weight:600}.admin-tips,.user-tips{margin-top:24px;padding:16px;border-radius:8px;background-color:#f0f9ff;border-left:4px solid var(--color-primary, #3b82f6)}.admin-tips h3,.user-tips h3{margin-top:0;color:var(--color-primary, #3b82f6);font-size:1.125rem}.admin-tips ul{padding-left:24px;margin-bottom:16px}.admin-tips li{margin-bottom:8px}.btn-primary{background-color:var(--color-primary, #3b82f6);color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.btn-primary:hover{background-color:#2563eb}.btn-secondary{background-color:#fff;color:var(--color-text, #111827);border:1px solid #d1d5db;padding:7px 15px;border-radius:4px;cursor:pointer;font-size:1rem;transition:all .2s}.btn-secondary:hover{background-color:#f3f4f6;border-color:#9ca3af}.dashboard{padding:24px;max-width:1400px;margin:0 auto;background-color:#f5f7fa;min-height:100vh}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dashboard-header h1{font-size:28px;font-weight:600;color:#1f2937;margin:0}.period-filter{width:160px}.period-select{width:100%;padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;background-color:#fff;font-size:14px;color:#4b5563}.dashboard-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;padding:24px;margin-bottom:24px}.dashboard-section h2{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 20px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}.stat-card{background:#f9fafb;border-radius:12px;padding:20px;display:flex;align-items:center;transition:all .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.stat-card.total{border-left:4px solid #36c3f6}.stat-card.completed{border-left:4px solid #10b981}.stat-card.pending{border-left:4px solid #f59e0b}.stat-card.overdue{border-left:4px solid #ef4444}.stat-card.project-total{border-left:4px solid #8b5cf6}.stat-card.project-progress{border-left:4px solid #3b82f6}.stat-card.project-completed{border-left:4px solid #10b981}.stat-card.project-paused{border-left:4px solid #f97316}.stat-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-right:16px;color:#fff}.stat-card.total .stat-icon{background:linear-gradient(135deg,#36c3f6,#2eaad8)}.stat-card.completed .stat-icon{background:linear-gradient(135deg,#10b981,#059669)}.stat-card.pending .stat-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-card.overdue .stat-icon{background:linear-gradient(135deg,#ef4444,#dc2626)}.stat-card.project-total .stat-icon{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.stat-card.project-progress .stat-icon{background:linear-gradient(135deg,#3b82f6,#2563eb)}.stat-card.project-completed .stat-icon{background:linear-gradient(135deg,#10b981,#059669)}.stat-card.project-paused .stat-icon{background:linear-gradient(135deg,#f97316,#ea580c)}.stat-content{flex:1}.stat-value{font-size:24px;font-weight:700;color:#1f2937;line-height:1;margin-bottom:4px}.stat-label{font-size:14px;color:#6b7280}.progress-container{background:#f9fafb;border-radius:12px;padding:20px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-title{font-size:16px;font-weight:500;color:#4b5563}.progress-percentage{font-size:16px;font-weight:600;color:#36c3f6}.progress-bar-container{height:10px;background:#e5e7eb;border-radius:5px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#36c3f6,#2eaad8);border-radius:5px;transition:width .3s ease}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.view-all-button{padding:8px 16px;background:#f3f4f6;color:#4b5563;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.view-all-button:hover{background:#e5e7eb;color:#1f2937}.task-table,.project-table{width:100%;border-collapse:separate;border-spacing:0}.header-cell.status-col,.header-cell.progress-col,.header-cell.actions-col,.table-cell.status-col,.table-cell.progress-col,.table-cell.actions-col{display:flex;align-items:center;justify-content:center;height:48px;min-width:80px;box-sizing:border-box}.progress-container,.action-links,.status-badge{display:flex;align-items:center;justify-content:center;height:100%}.task-table th,.project-table th{padding:12px 16px;text-align:left;font-size:14px;font-weight:500;color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb}.task-table td,.project-table td{padding:12px 16px;font-size:14px;color:#1f2937;border-bottom:1px solid #f3f4f6}.task-table tr:last-child td,.project-table tr:last-child td{border-bottom:none}.task-table tbody tr,.project-table tbody tr{cursor:pointer;transition:background-color .2s ease}.task-table tbody tr:hover,.project-table tbody tr:hover{background-color:#f9fafb}.mini-progress{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden;margin-bottom:4px}.mini-progress-fill{height:100%;background:linear-gradient(90deg,#36c3f6,#2eaad8);border-radius:3px}.mini-progress-text{font-size:12px;color:#6b7280}.task-status,.project-status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.task-status.completed{background:#d1fae5;color:#059669}.task-status.pending,.project-status.进行中{background:#e0f2fe;color:#0284c7}.project-status.已完成{background:#d1fae5;color:#059669}.project-status.暂停{background:#fef3c7;color:#d97706}.project-status.已关闭{background:#fee2e2;color:#dc2626}.no-data{text-align:center;color:#6b7280;padding:24px}.dashboard-loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:16px;color:#6b7280}.dashboard-error{max-width:600px;margin:100px auto;padding:24px;background:#fee2e2;color:#ef4444;border-radius:12px;text-align:center;font-size:16px;font-weight:500}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dashboard{padding:16px}.dashboard-header{flex-direction:column;align-items:flex-start;gap:16px}.period-filter{width:100%}.stats-grid{grid-template-columns:1fr}.dashboard-section{padding:16px}}:root{--primary-gradient: linear-gradient(135deg, #44C4F4, #34E0A1);--primary-green: #34E0A1;--primary-blue: #44C4F4;--bg-color: #F7F9FC;--text-primary: #333333;--text-secondary: #666666;--text-tertiary: #999999;--border-color: #EAECEF;--card-bg-color: #FFFFFF;--border-radius-lg: 12px}body,html{font-family:Noto Sans SC,sans-serif;background-color:var(--bg-color);margin:0;padding:0;height:100%}#root{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-container{display:flex;width:100%;max-width:960px;min-height:600px;background-color:var(--card-bg-color);border-radius:var(--border-radius-lg);box-shadow:0 10px 40px #0000001a;overflow:hidden}.login-visual{flex:1;background:var(--primary-gradient);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;text-align:center}.login-visual .illustration{width:80%;max-width:150px;margin-bottom:2rem}.login-visual .illustration-large{width:80%;max-width:260px;margin-bottom:1.5rem}.login-visual h1{font-size:1.8rem;font-weight:700;margin:0 0 .5rem;color:#fff;border-bottom:none!important;text-decoration:none!important}.login-visual h1:after,.login-visual h1:before{content:none!important;display:none!important;visibility:hidden!important;opacity:0!important;height:0!important;width:0!important;border:none!important;background:none!important;background-image:none!important}.login-visual .white-text{color:#fff}.login-visual .white-text:after,.login-visual .white-text:before{content:none!important;display:none!important}.login-visual p{font-size:1rem;opacity:.9;max-width:80%;color:#fff}.login-form-wrapper{flex:1;display:flex;justify-content:center;align-items:center;padding:2rem;position:relative}.login-form-container{width:100%;max-width:350px}.form-tabs{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:2rem}.tab-btn{flex:1;padding:1rem 0;background:none;border:none;font-size:1.1rem;font-weight:500;color:var(--text-tertiary);cursor:pointer;position:relative;transition:color .3s ease}.tab-btn.active{color:var(--text-primary);font-weight:700}.tab-btn:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:3px;background:var(--primary-gradient);transform:scaleX(0);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.tab-btn.active:after{transform:scaleX(1)}.form-content{display:none}.form-content.active{display:block;animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.input-group{position:relative;margin-bottom:1.5rem;display:flex;flex-direction:column}.input-icon{float:left;margin:12px 0 -32px 9px;left:18px;top:50%;display:flex;align-items:center;pointer-events:none;z-index:201}.input-icon .icon{width:20px;height:20px;color:#bdbdbd;display:block}.password-toggle{float:right;margin:-34px 0 9px 318px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;cursor:pointer;color:#999;z-index:202;transition:color .2s ease}.password-toggle:hover{color:var(--primary-blue)}.password-toggle svg{width:20px;height:20px}.form-input{width:100%;height:2.6rem;padding:.8rem 1rem .8rem 3.2rem;border:1px solid #EAECEF;border-radius:8px;font-size:1rem;color:#333;background-color:#f7f9fc;box-sizing:border-box;position:relative;z-index:1}.form-input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #44c4f433}.form-input.error{border-color:#ff4d4f!important;background:#fff1f0!important;color:#ff4d4f}.form-content.active input.form-input[name=usernameOrPhone]{padding-left:2.8rem;padding-right:3.2rem;width:100%;height:2.6rem;background-color:#f7f9fc;border:1px solid #EAECEF;border-radius:8px}.form-content.active input.form-input[name=usernameOrPhone]:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #44c4f433}.form-content.active input.form-input[name=username]{padding-left:2.8rem;padding-right:3.2rem;width:100%;height:2.6rem;background-color:#f7f9fc;border:1px solid #EAECEF;border-radius:8px}.form-content.active input.form-input[name=username]:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #44c4f433}.form-content.active input.form-input[name=email]:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #44c4f433}.form-content.active input.form-input[name=phone]:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #44c4f433}.form-content.active input.form-input[name=confirmPassword]:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #44c4f433}.input-error-message{color:#ff4d4f;font-size:.92rem;display:flex;align-items:center;gap:6px;margin-top:6px;margin-bottom:12px;white-space:normal;line-height:1.4}.input-error-message svg{flex-shrink:0;color:#ff4d4f;margin-right:2px}.input-error-message span{flex:1;word-break:break-word}.form-options{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;margin-bottom:1.5rem}.form-options .checkbox-group{display:flex!important;flex-direction:row!important;align-items:center!important;gap:.5rem!important;white-space:nowrap!important}.form-options .checkbox-group input[type=checkbox]{margin:0 4px 0 0!important;vertical-align:middle!important}.form-options .checkbox-group span{display:inline-block!important;vertical-align:middle!important}.form-options a{color:var(--primary-blue);text-decoration:none;transition:color .2s}.form-options a:hover{text-decoration:underline}.terms-group{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.95rem;color:var(--text-secondary, #666);margin-bottom:1.5rem}.terms-checkbox{display:flex!important;align-items:center!important;gap:.5rem!important;white-space:nowrap!important}.terms-checkbox input[type=checkbox]{margin:0 4px 0 0!important;vertical-align:middle!important}.terms-checkbox span{display:inline-block!important;vertical-align:middle!important}.terms-checkbox a{color:var(--primary-blue, #44C4F4);text-decoration:none;margin-left:4px}.terms-checkbox a:hover{text-decoration:underline}.btn-submit{width:100%;padding:.9rem;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;background:var(--primary-gradient);color:#fff;text-align:center}.btn-submit:hover{background:var(--primary-gradient)!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 6px 15px #34e0a166}.btn-submit:disabled{opacity:.7;transform:none;cursor:not-allowed}.error-message{display:none!important}.success-message{color:#52c41a;margin-bottom:1rem;font-size:.9rem}.forgot-link{color:var(--primary-blue);text-decoration:none}@media (max-width: 768px){.login-visual{display:none}.login-container{flex-direction:column;min-height:auto;margin:2rem}.login-form-wrapper{padding:2rem 1.5rem}}.btn-submit,.btn-submit:hover,.btn-submit:focus,.btn-submit:active,button.btn-submit,input[type=submit].btn-submit{background:linear-gradient(135deg,#44c4f4,#34e0a1)!important;background-color:linear-gradient(135deg,#44C4F4 0%,#34E0A1 100%)!important;color:#fff!important;border:none!important;outline:none!important;box-shadow:0 6px 15px #34e0a166;position:relative;overflow:hidden;transition:all .2s}.btn-submit:before,.btn-submit:after,button.btn-submit:before,button.btn-submit:after,input[type=submit].btn-submit:before,input[type=submit].btn-submit:after{content:none!important;display:none!important;background:none!important}.btn-submit:focus-visible,.btn-submit:active,button.btn-submit:focus-visible,button.btn-submit:active{background:linear-gradient(135deg,#44c4f4,#34e0a1)!important;background-color:linear-gradient(135deg,#44C4F4 0%,#34E0A1 100%)!important;color:#fff!important;outline:none!important;box-shadow:0 6px 15px #34e0a166}.btn-submit:disabled,button.btn-submit:disabled,input[type=submit].btn-submit:disabled{background:var(--primary-gradient)!important;background-color:var(--primary-gradient)!important;color:#fff!important;opacity:.7;cursor:not-allowed;box-shadow:none}.login-form-wrapper-inner{position:relative}.login-form-wrapper-inner .input-error-message{position:relative;top:auto;right:auto;line-height:normal;padding-right:0}.global-tip{position:fixed;top:32px;left:50%;transform:translate(-50%);z-index:2000;min-width:240px;max-width:80%;padding:12px 32px;border-radius:8px;font-size:1.08rem;font-weight:600;text-align:center;box-shadow:0 2px 12px #00000014;background:#fff}.success-tip{color:#52c41a;border:none}.error-tip{color:#ff4d4f;border:none}.logs-page{padding:20px;background-color:#f5f5f5;min-height:calc(100vh - 60px)}.logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.logs-header h1{font-size:24px;color:#333;margin:0}.back-button{padding:8px 16px;background-color:#4a6bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.back-button:hover{background-color:#3a51c6}.filters-container{background-color:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.filters-container h2{margin-top:0;margin-bottom:15px;font-size:18px;color:#333}.filters-form{display:flex;flex-direction:column;gap:15px}.filters-row{display:flex;flex-wrap:wrap;gap:15px}.filter-field{flex:1;min-width:200px}.filter-field label{display:block;margin-bottom:5px;font-size:14px;color:#555}.filter-field input,.filter-field select{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.filters-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.apply-button,.reset-button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px}.apply-button{background-color:#4a6bff;color:#fff}.apply-button:hover{background-color:#3a51c6}.reset-button{background-color:#f2f2f2;color:#333}.reset-button:hover{background-color:#e6e6e6}.logs-content{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:15px;overflow-x:auto}.loading{text-align:center;padding:20px;color:#666}.error-message{text-align:center;padding:20px;color:#e53e3e}.empty-message{text-align:center;padding:20px;color:#666}.logs-table{width:100%;border-collapse:collapse}.logs-table th,.logs-table td{padding:10px;text-align:left;border-bottom:1px solid #eee;font-size:14px}.logs-table th{background-color:#f9f9f9;font-weight:600;color:#333}.logs-table tbody tr:hover{background-color:#f5f8ff}.log-create{background-color:#48bb781a}.log-update{background-color:#4299e11a}.log-delete{background-color:#e53e3e1a}.old-value{color:#e53e3e;text-decoration:line-through;margin-right:5px}.arrow{color:#777}.new-value{color:#38a169;margin-left:5px}@media (max-width: 768px){.filter-field{min-width:100%}.logs-table th,.logs-table td{font-size:12px;padding:8px 5px}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.diagnosis-report{box-shadow:0 4px 20px #00000014;border-radius:12px;border:1px solid #e8f4fd;background:linear-gradient(135deg,#fff,#f8f9fa);transition:all .3s ease;margin:16px 0}.diagnosis-report:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.diagnosis-report .ant-card-head{background:linear-gradient(135deg,#1890ff,#40a9ff);border-bottom:none;border-radius:12px 12px 0 0;color:#fff}.diagnosis-report .ant-card-head-title{color:#fff!important;font-weight:600;text-align:center;font-size:18px}.diagnosis-report .ant-card-head-title .ant-tag{margin-left:8px;background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff}.diagnosis-report-header{display:flex;justify-content:space-between;align-items:center;width:100%}.diagnosis-report-actions{display:flex;gap:8px}.pdf-download-btn{background:#fff3!important;border:1px solid rgba(255,255,255,.3)!important;color:#fff!important;border-radius:6px;transition:all .3s ease}.pdf-download-btn:hover{background:#ffffff4d!important;transform:translateY(-1px)}.diagnosis-content{max-height:600px;overflow-y:auto;padding:8px 0}.diagnosis-content::-webkit-scrollbar{width:6px}.diagnosis-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.diagnosis-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.diagnosis-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.diagnosis-content h1,.diagnosis-content h2,.diagnosis-content h3,.diagnosis-content h4,.diagnosis-content h5,.diagnosis-content h6{font-weight:600}.diagnosis-content h1{text-align:center!important;color:#333!important;font-size:24px!important;margin:24px 0 20px!important;padding:16px 0;position:relative}.diagnosis-content h2{color:#2c3e50!important;margin:20px 0 12px;font-weight:600}.diagnosis-content h3{color:#495057!important;margin:16px 0 8px;font-weight:600}.diagnosis-content ul{list-style:none!important;padding-left:0;margin-left:0;margin-bottom:16px}.diagnosis-content ul li{margin-bottom:8px;line-height:1.6;position:relative;padding-left:20px;text-align:left;list-style:none!important}.diagnosis-content ul li:before{content:"•";position:absolute;left:-3px;top:0;color:#6c757d;font-weight:700;line-height:1.6;font-size:1em;height:1.6em;display:flex;align-items:center}.diagnosis-content ul ul{margin-top:8px;margin-bottom:8px;padding-left:0;list-style:none!important}.diagnosis-content ul ul li{padding-left:20px;list-style:none!important}.diagnosis-content ul ul li:before{content:"◦";left:6px;font-size:.9em}.diagnosis-content ol{list-style:decimal!important;list-style-position:outside!important;padding-left:24px;margin-bottom:16px;counter-reset:item}.diagnosis-content ol li{margin-bottom:8px;line-height:1.6;padding-left:8px;text-align:left;list-style:inherit!important}.diagnosis-content ol li::marker{color:#6c757d;font-weight:700}.diagnosis-content ol ol{margin-top:8px;margin-bottom:8px;padding-left:20px;list-style:lower-alpha!important}.diagnosis-content ol ol li{list-style:inherit!important}.diagnosis-content strong{color:#1890ff;font-weight:600}.diagnosis-content pre{position:relative;margin:16px 0}.diagnosis-content pre:before{content:"CODE";position:absolute;top:8px;right:12px;font-size:10px;color:#999;background:#fff;padding:2px 6px;border-radius:3px;border:1px solid #e9ecef}.diagnosis-content table{border:1px solid #e8e8e8;border-radius:4px;overflow:hidden;margin:16px 0}.diagnosis-content table th{background:#f0f0f0;color:#000;font-weight:700;font-size:14px;border-bottom:2px solid #e8e8e8}.diagnosis-content table tr:nth-child(2n){background-color:#fafafa}.diagnosis-content table tr:hover{background-color:#f0f0f0}.diagnosis-content blockquote{position:relative;font-style:italic}.diagnosis-content blockquote:before{content:'"';position:absolute;left:-8px;top:-8px;font-size:32px;color:#1890ff;opacity:.3}.diagnosis-content .ant-divider{border-color:#e8e8e8;margin:24px 0}@media (max-width: 768px){.diagnosis-content{max-height:400px}.diagnosis-content h1,.diagnosis-content h2,.diagnosis-content h3,.diagnosis-content h4{padding-left:12px}.diagnosis-content h1:before,.diagnosis-content h2:before,.diagnosis-content h3:before,.diagnosis-content h4:before{width:3px;height:16px}}.pdf-export-mode{padding:10mm 15mm 20mm;background:#fff;font-family:Microsoft YaHei,PingFang SC,Helvetica Neue,Arial,sans-serif;line-height:1.8;color:#333}.pdf-export-mode .diagnosis-content{max-height:none;overflow:visible;padding:0}.pdf-export-mode h1{page-break-after:avoid;margin-bottom:40px;margin-top:0;color:#333!important;border-bottom:none!important}.pdf-export-mode h2{page-break-after:avoid;margin-top:30px;margin-bottom:15px}.pdf-export-mode h3{page-break-after:avoid;margin-top:20px;margin-bottom:10px}.pdf-export-mode ul,.pdf-export-mode ol{page-break-inside:avoid;margin-bottom:15px}.pdf-export-mode ul li{margin-bottom:6px;line-height:1.8;padding-left:20px}.pdf-export-mode ul li:before{left:6px;line-height:1.8;height:1.8em}.pdf-export-mode ol li{margin-bottom:6px;line-height:1.8;padding-left:8px}.pdf-export-mode table th{background:#f0f0f0!important;color:#000!important;font-weight:700!important;font-size:14px!important;border:1px solid #d9d9d9!important;padding:12px 16px!important}@media print{.diagnosis-report{box-shadow:none;border:1px solid #ddd}.diagnosis-report .ant-card-head{background:#f5f5f5!important;color:#333!important}.diagnosis-content{max-height:none;overflow:visible}}.unified-report-editor{position:relative}.unified-editor{border:2px solid #e2e8f0!important;border-radius:16px!important;box-shadow:0 4px 20px #00000014!important;transition:all .3s ease!important;background:#fff!important}.unified-editor .editor-content{background:#fff!important}.unified-editor:focus-within{border-color:#667eea!important;box-shadow:0 0 0 4px #667eea26,0 4px 20px #00000014!important}.unified-editor .editor-content h3{font-weight:600!important;margin:24px 0 16px!important;padding-bottom:8px!important;border-bottom:1px solid transparent!important;font-size:18px!important}.unified-editor .editor-content h3:nth-of-type(1){color:#1890ff!important;border-bottom-color:#1890ff33!important}.unified-editor .editor-content h3:nth-of-type(2){color:#52c41a!important;border-bottom-color:#52c41a33!important}.unified-editor .editor-content h3:nth-of-type(3){color:#fa8c16!important;border-bottom-color:#fa8c1633!important}.unified-editor .editor-content h3:nth-of-type(4){color:#722ed1!important;border-bottom-color:#722ed133!important}.unified-editor .editor-content h3:first-child{margin-top:16px!important}.unified-editor .editor-content p[style*="color: rgb(156, 163, 175)"]{background:#f9fafb!important;padding:8px 12px!important;border-radius:6px!important;border-left:3px solid #d1d5db!important;margin:8px 0 16px!important}@media (max-width: 768px){.unified-editor .editor-content h3{font-size:16px!important;margin:20px 0 12px!important}}@media (max-width: 480px){.unified-editor .editor-content h3{font-size:15px!important;margin:16px 0 10px!important}}.historical-reports-header{background:linear-gradient(135deg,#44c4f4,#34e0a1);padding:20px 24px;color:#fff;text-align:center;position:relative}.header-title{display:flex;align-items:center;justify-content:center;gap:8px}.report-week{display:flex;align-items:center;gap:8px;color:#374151;font-weight:500;font-size:14px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}@media (max-width: 768px){.historical-reports-header{padding:16px 20px}.header-title h3{font-size:16px}.reports-list{padding:12px}.report-item{padding:12px;margin-bottom:8px}.report-content{gap:12px}.report-actions{gap:1px;min-width:44px}.report-actions .action-btn{width:20px;height:20px;font-size:9px}}@media (max-width: 480px){.historical-reports-header{padding:12px 16px}.header-title h3{font-size:15px}.reports-list{padding:8px}.report-item{padding:10px;flex-direction:column;align-items:stretch;gap:12px}.report-content{justify-content:space-between}.report-actions{justify-content:center}.report-actions{gap:1px;min-width:40px}.report-actions .action-btn{width:18px;height:18px;font-size:8px}}.user-report-container{display:block;width:100%;padding:0;min-height:calc(100vh - 120px)}.project-selection-header{background:#fff;border-radius:16px;padding:20px 24px;margin-bottom:24px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.project-selector{display:flex;align-items:center;gap:16px;white-space:nowrap;padding:8px 0}.project-selector label{font-weight:700;color:#1f2937;font-size:16px;white-space:nowrap;letter-spacing:-.025em;text-shadow:0 1px 2px rgba(0,0,0,.05)}.project-select{padding:14px 20px;border:2px solid #e2e8f0;border-radius:14px;font-size:14px;width:-webkit-fill-available;background:linear-gradient(135deg,#fff,#f8fafc);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;font-weight:600;color:#374151;box-shadow:0 3px 6px #00000014;position:relative}.project-select:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0000001f;transform:translateY(-1px);background:linear-gradient(135deg,#fff,#f1f5f9)}.project-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea26,0 6px 20px #667eea40;transform:translateY(-2px);background:#fff}.project-select option{padding:10px 16px;font-weight:600;color:#374151;background:#fff}.member-reports-toggle{margin-bottom:20px;display:flex;justify-content:flex-end}.toggle-member-reports-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.toggle-member-reports-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.toggle-member-reports-btn.active{background:linear-gradient(135deg,#764ba2,#667eea)}.member-reports-container{margin-bottom:24px}.project-member-reports{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.member-reports-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #e2e8f0}.member-reports-header h3{margin:0;font-size:18px;font-weight:700;color:#1f2937;display:flex;align-items:center;gap:10px}.member-reports-stats{display:flex;gap:16px;align-items:center}.member-reports-stats .stat-item{font-size:14px;color:#6b7280;display:flex;align-items:center;gap:4px}.member-reports-stats .stat-item strong{color:#1f2937;font-weight:700}.member-reports-stats .stat-item.submitted strong{color:#10b981}.member-reports-stats .stat-item.draft strong{color:#f59e0b}.member-reports-stats .stat-item.missing strong{color:#ef4444}.member-reports-list{display:flex;flex-direction:column;gap:12px}.member-report-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:all .3s ease}.member-report-card:hover{box-shadow:0 4px 12px #0000001a;border-color:#cbd5e1}.member-report-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;transition:background .2s ease}.member-report-header:hover{background:#f1f5f9}.member-info{display:flex;align-items:center;gap:12px;flex:1}.member-name{font-weight:700;font-size:16px;color:#1f2937}.member-department{font-size:13px;color:#6b7280;padding:4px 10px;background:#e5e7eb;border-radius:6px}.member-status{display:flex;align-items:center;gap:8px;margin-right:12px}.status-icon{font-size:16px}.status-icon.submitted{color:#10b981}.status-icon.draft{color:#f59e0b}.status-icon.missing{color:#ef4444}.status-text{font-size:14px;font-weight:600;color:#374151}.report-date{font-size:12px;color:#9ca3af;margin-left:8px}.expand-icon{color:#6b7280;transition:transform .2s ease}.member-report-content{padding:20px;background:#fff;border-top:1px solid #e2e8f0}.report-section{margin-bottom:20px}.report-section:last-child{margin-bottom:0}.report-section h4{margin:0 0 12px;font-size:15px;font-weight:700;color:#1f2937;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.report-content{font-size:14px;line-height:1.8;color:#374151;padding:12px;background:#f9fafb;border-radius:8px}.report-content p{margin:0 0 8px}.report-content p:last-child{margin-bottom:0}.report-meta{display:flex;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb;font-size:12px;color:#6b7280}.no-report-message{text-align:center;padding:40px 20px;color:#9ca3af}.no-report-message svg{font-size:48px;margin-bottom:12px;opacity:.5}.no-report-message p{margin:0;font-size:14px}.member-reports-loading,.member-reports-error,.member-reports-empty{text-align:center;padding:40px 20px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.member-reports-loading .loading-spinner{font-size:32px;color:#667eea;animation:spin 1s linear infinite}.member-reports-error{color:#ef4444}.member-reports-error svg{font-size:32px;margin-bottom:12px}.retry-btn{margin-top:16px;padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.retry-btn:hover{background:#5568d3;transform:translateY(-1px)}.member-reports-empty{color:#9ca3af}.member-reports-empty svg{font-size:48px;margin-bottom:12px;opacity:.5}.no-project-selected{display:flex;align-items:center;justify-content:center;min-height:400px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.no-project-content{text-align:center;color:#6b7280}.no-project-content h3{margin:0 0 16px;font-size:18px;font-weight:600;color:#374151}.no-project-content p{margin:0 0 8px;font-size:14px}.report-layout{display:flex;gap:24px;height:100%;min-height:calc(100vh - 120px)}.report-editor-section{flex:1;display:flex;flex-direction:column;min-width:0}.report-layout{display:flex;gap:24px;align-items:flex-start}.report-editor-section{flex:1;min-width:0;display:flex;flex-direction:column}.historical-reports-section>div{flex:1;min-height:300px;max-height:calc(50vh - 40px);overflow:hidden}.member-reports-container{flex:1;min-height:400px;max-height:calc(50vh - 10px);overflow:hidden;display:flex;flex-direction:column}.project-historical-reports-container{flex:1;min-height:300px;max-height:calc(50vh - 10px);overflow:hidden;display:flex;flex-direction:column}.form-fields-area{flex:1;margin-bottom:24px;min-height:0}.report-form-actions{display:flex;justify-content:center;gap:12px;padding:20px 0;flex-wrap:wrap;margin-top:20px}.report-form-actions .action-btn{padding:12px 24px;border-radius:10px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;transition:all .2s ease;min-height:44px;min-width:140px;white-space:nowrap;text-decoration:none;box-shadow:0 2px 8px #0000001a}.report-form-actions .action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.report-form-actions .submit-btn{background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;font-weight:600;border-color:#44c4f4;box-shadow:0 3px 12px #44c4f44d}.report-form-actions .submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #44c4f466;background:linear-gradient(135deg,#3bb3e3,#2dd190)}.report-form-actions .draft-btn{background:#fff;color:#6b7280;border-color:#d1d5db;box-shadow:0 2px 8px #0000000f}.report-form-actions .draft-btn:hover:not(:disabled){background:#f8fafc;border-color:#9ca3af;color:#4b5563;transform:translateY(-1px);box-shadow:0 3px 12px #0000001a}.report-form-actions .delete-btn{background:#fff;color:#dc2626;border-color:#fca5a5;box-shadow:0 2px 8px #dc26261f}.report-form-actions .delete-btn:hover:not(:disabled){background:#fef2f2;border-color:#f87171;color:#b91c1c;transform:translateY(-1px);box-shadow:0 3px 12px #dc262633}.report-form-actions .spinning{animation:spin 1s linear infinite}.week-selector-control input[type=date]{padding:12px 16px;border:2px solid #e2e8f0;border-radius:12px;font-size:14px;min-width:200px;background:#fff;transition:all .2s ease}.week-selector-control input[type=date]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.report-form-content{background:#fff;border-radius:16px;padding:32px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0}.form-field-section{margin-bottom:32px}.form-field-section:last-child{margin-bottom:0}.form-field-section label{display:block;font-weight:600;color:#374151;margin-bottom:12px;font-size:16px}.form-field-section textarea{width:100%;min-height:120px;padding:16px 20px;border:2px solid #e2e8f0;border-radius:12px;font-size:14px;line-height:1.6;resize:vertical;transition:all .2s ease;font-family:inherit}.form-field-section textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.status-display{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-weight:500;font-size:14px}.status-display.draft{background:#fef3c7;color:#92400e}.status-display.submitted{background:#d1fae5;color:#065f46}.status-display.reviewed{background:#e0e7ff;color:#3730a3}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:32px;padding-top:24px;border-top:1px solid #e2e8f0}.form-actions button{padding:12px 24px;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.save-btn{background:#667eea;color:#fff}.save-btn:hover{background:#5a67d8;transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.submit-btn{background:#10b981;color:#fff}.submit-btn:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.delete-btn{background:#ef4444;color:#fff}.delete-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.weekly-report-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#6b7280}@media (max-width: 768px){.user-report-container{padding:16px}.report-form-header{flex-direction:column;gap:16px;align-items:stretch}.week-selector-control{justify-content:center}.report-form-content{padding:24px}.form-field-section textarea{min-height:100px;padding:14px 18px}.form-actions{flex-direction:column}.form-actions button{justify-content:center}}@media (max-width: 480px){.user-report-container{padding:12px}.report-form-content{padding:20px}.form-field-section{margin-bottom:24px}.form-field-section label{font-size:15px;margin-bottom:10px}.form-field-section textarea{min-height:80px;padding:12px 16px;font-size:16px}}.action-btn{border-radius:10px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;transition:all .2s ease;white-space:nowrap;text-decoration:none;box-shadow:0 2px 8px #0000001a}.action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.submit-btn{background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;font-weight:600;border-color:#44c4f4;box-shadow:0 3px 12px #44c4f44d}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #44c4f466;background:linear-gradient(135deg,#3bb3e3,#2dd190)}.draft-btn{background:#fff;color:#6b7280;border-color:#d1d5db;box-shadow:0 2px 8px #0000000f}.draft-btn:hover:not(:disabled){background:#f8fafc;border-color:#9ca3af;color:#4b5563;transform:translateY(-1px);box-shadow:0 3px 12px #0000001a}.delete-btn{background:#fff;color:#dc2626;border-color:#fca5a5;box-shadow:0 2px 8px #dc26261f}.delete-btn:hover:not(:disabled){background:#fef2f2;border-color:#f87171;color:#b91c1c;transform:translateY(-1px);box-shadow:0 3px 12px #dc262633}.spinning{animation:spin 1s linear infinite}.historical-reports-section{display:flex;flex-direction:column;gap:20px;width:380px;min-width:380px;flex-shrink:0}.historical-reports-section>div{flex:1;min-height:300px;max-height:calc(50vh - 40px)}@media (max-width: 1200px){.historical-reports-section{width:350px}}@media (max-width: 1024px){.report-layout{flex-direction:column;gap:20px}.historical-reports-section{width:100%;max-height:none}.historical-reports-section>div{max-height:400px}.report-form-actions{flex-direction:row;justify-content:center}}@media (max-width: 768px){.report-layout{gap:16px}.report-form-actions{flex-direction:column;gap:12px;padding:20px 0}.report-form-actions .action-btn{min-width:120px;padding:10px 20px;font-size:13px;min-height:40px}}@media (max-width: 480px){.report-layout{gap:12px}.report-form-actions .action-btn{min-width:110px;padding:8px 16px;font-size:12px;min-height:36px;gap:6px}}.historical-reports{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;overflow:hidden;height:100%;display:flex;flex-direction:column}.historical-reports-header{background:linear-gradient(135deg,#44c4f4,#34e0a1);padding:20px 24px;color:#fff;text-align:center;position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px}.header-title{display:flex;align-items:center;justify-content:center;gap:8px;flex:1}.refresh-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.refresh-btn:hover:not(:disabled){background:#ffffff4d;border-color:#fff6;transform:translateY(-1px)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.refresh-btn .spinning{animation:spin 1s linear infinite}.header-title h3{margin:0;font-size:18px;font-weight:600;color:#fff;display:flex;align-items:center;gap:8px}.reports-count{background:#fff3;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.reports-list{flex:1;padding:16px;overflow-y:auto}.report-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;margin-bottom:4px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 1px 2px #0000000a;transition:all .2s ease;min-height:36px}.report-item:hover{border-color:#d1d5db;box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.report-item:last-child{margin-bottom:0}.report-content{display:flex;align-items:center;gap:8px;flex:1;min-width:0;margin-right:4px;overflow:hidden}.report-content.clickable-content{transition:all .2s ease;border-radius:4px;padding:2px}.report-content.clickable-content:hover{background-color:#f8fafc;transform:translate(2px)}.report-week{display:flex;align-items:center;gap:8px;color:#374151;font-weight:500;font-size:14px;white-space:nowrap;flex-shrink:0}.week-icon{color:#6b7280;font-size:14px}.week-text{white-space:nowrap}.report-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.report-status{padding:2px 4px;border-radius:6px;font-size:9px;font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:1px}.status-submitted{background:#10b981;color:#fff}.status-draft{background:#f59e0b;color:#fff}.status-reviewed{background:#3b82f6;color:#fff}.status-unknown{background:#6b7280;color:#fff}.report-actions{display:flex;gap:1px;flex-shrink:0;align-items:center;min-width:50px}.report-actions .action-btn{border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;width:24px;height:24px;transition:all .2s ease;box-shadow:0 1px 2px #00000014;flex-shrink:0}.report-actions .action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.report-actions .edit-btn{background:#e0f2fe;color:#0277bd;margin-right:1px}.report-actions .edit-btn:hover{background:#bae6fd;color:#0369a1;transform:translateY(-1px)}.report-actions .delete-btn{background:#fef2f2;color:#dc2626}.report-actions .delete-btn:hover{background:#fee2e2;color:#b91c1c;transform:translateY(-1px)}.report-actions .delete-btn.disabled,.report-actions .delete-btn:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#6b7280}.loading-spinner{font-size:24px;margin-bottom:16px;animation:spin 1s linear infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#6b7280;text-align:center}.empty-icon{font-size:48px;margin-bottom:16px;color:#d1d5db}.empty-state p{margin:0;font-size:14px}.member-reports{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e2e8f0;overflow:hidden;height:100%;display:flex;flex-direction:column}.week-range{font-size:12px;font-weight:400;opacity:.9;margin-left:8px}.member-cards-list{display:grid!important;grid-template-columns:repeat(3,1fr)!important;grid-auto-flow:row!important;grid-auto-rows:min-content!important;align-items:start!important;gap:8px;padding:12px;width:100%;flex:1!important;overflow-y:auto!important;overflow-x:hidden!important;min-height:0!important}@media (max-width: 768px){.member-cards-list{grid-template-columns:repeat(2,1fr)!important}}@media (max-width: 480px){.member-cards-list{grid-template-columns:repeat(2,1fr)!important;grid-auto-rows:min-content!important;align-items:start!important}}.member-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:8px;box-shadow:0 1px 4px #0000000a;transition:all .2s ease;display:flex;flex-direction:column;gap:6px;min-width:0;width:100%;height:fit-content;align-self:start}.member-card:hover{border-color:#44c4f4;box-shadow:0 2px 8px #44c4f426;transform:translateY(-1px)}.member-card-header{display:flex;flex-direction:column;align-items:center;gap:4px}.member-name{font-size:13px;font-weight:600;color:#374151;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;line-height:1.3}.member-status-tag{flex-shrink:0;font-size:10px;padding:1px 6px;margin:0;line-height:1.2}.member-card-footer{margin-top:auto}.view-detail-btn{width:100%;padding:5px 8px;border:none;border-radius:4px;background:#44c4f4;color:#fff;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.2}.view-detail-btn:hover:not(:disabled){background:#34e0a1;transform:translateY(-1px);box-shadow:0 2px 6px #34e0a14d}.view-detail-btn:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;transform:none}.view-detail-btn svg{font-size:10px}.member-report-detail-modal .member-report-detail-content{padding:0}.member-report-detail-modal .readonly-editor{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.member-report-detail-modal .readonly-editor .editor-content{background:#fff}.no-report-content{text-align:center;padding:60px 20px;color:#9ca3af}.no-report-content svg{font-size:48px;margin-bottom:16px;opacity:.5}.no-report-content p{margin:0;font-size:14px}@media (max-width: 768px){.historical-reports-header{padding:16px;margin-top:0}.header-title h3{font-size:16px}.reports-list{padding:12px}.report-item{padding:12px;margin-bottom:8px}.report-content{gap:12px}.report-actions{gap:1px;min-width:44px}.report-actions .action-btn{width:20px;height:20px;font-size:9px}.member-cards-list{grid-template-columns:repeat(2,1fr)!important;grid-auto-rows:min-content!important;align-items:start!important;gap:8px;padding:10px}.member-card{padding:6px;gap:5px;height:fit-content;align-self:start}.member-card-header{gap:3px}.member-name{font-size:12px;line-height:1.2}.view-detail-btn{padding:4px 6px;font-size:10px;line-height:1.1}}@media (max-width: 480px){.historical-reports-header{padding:12px;margin-top:0}.header-title h3{font-size:14px}.reports-count{font-size:10px;padding:2px 8px}.reports-list{padding:8px}.report-item{padding:10px;flex-direction:column;align-items:stretch;gap:12px}.report-content{justify-content:space-between}.report-actions{justify-content:center;gap:1px;min-width:40px}.report-actions .action-btn{width:18px;height:18px;font-size:8px}}.department-weekly-reports{padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.department-reports-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#666}.loading-spinner{font-size:24px;animation:spin 1s linear infinite;margin-bottom:16px}.department-reports-tabs{display:flex;margin-bottom:24px;border-bottom:1px solid #f0f0f0}.sub-tab{display:flex;align-items:center;gap:8px;padding:12px 20px;border:none;background:none;color:#666;font-size:14px;cursor:pointer;border-bottom:2px solid transparent;transition:all .3s ease}.sub-tab:hover{color:#1890ff;background:#f6f8ff}.sub-tab.active{color:#1890ff;border-bottom-color:#1890ff;background:#f6f8ff}.sub-tab svg{font-size:16px}.department-reports-content{min-height:400px}.reports-list{display:flex;flex-direction:column;gap:16px}.report-item{padding:20px;border:1px solid #e8e8e8;border-radius:8px;background:#fff;transition:all .3s ease}.report-item:hover{border-color:#1890ff;box-shadow:0 2px 8px #1890ff1a}.report-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.report-info{display:flex;flex-direction:column;gap:4px}.report-user,.report-project{font-size:16px;font-weight:600;color:#333}.report-department,.report-manager{font-size:14px;color:#666}.report-actions{display:flex;align-items:center;gap:12px}.report-status{display:flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500}.report-status svg{font-size:12px}.view-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #1890ff;border-radius:4px;background:#fff;color:#1890ff;font-size:12px;cursor:pointer;transition:all .3s ease}.view-btn:hover{background:#1890ff;color:#fff}.report-dates{display:flex;gap:16px;margin-bottom:12px;font-size:12px;color:#999}.report-preview{padding:12px;background:#f8f9fa;border-radius:4px;border-left:3px solid #1890ff}.report-preview p{margin:0;color:#666;font-size:14px;line-height:1.5}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#999}.no-data-icon{font-size:48px;margin-bottom:16px;opacity:.5}.no-data p{margin:0;font-size:16px}.section-header{display:flex;flex-direction:column;align-items:center;margin-bottom:24px;padding:20px;background:#fff;border-radius:12px;border:1px solid #e8e8e8;box-shadow:0 2px 8px #0000000f}.section-header h3{margin:0 0 16px;color:#262626;font-size:18px;font-weight:600;text-align:center}.compact-stats{display:flex;gap:20px;align-items:center;justify-content:center;flex-wrap:nowrap}.stat-item{display:flex;flex-direction:column;align-items:center;min-width:70px;padding:12px 14px;background:#fafafa;border-radius:8px;border:1px solid #f0f0f0;transition:all .2s ease;flex-shrink:0}.stat-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.stat-value{font-size:24px;font-weight:700;line-height:1;margin-bottom:4px}.stat-value.total{color:#1890ff}.stat-value.submitted{color:#52c41a}.stat-value.draft{color:#fa8c16}.stat-value.not-submitted{color:#ff4d4f}.stat-label{font-size:12px;color:#8c8c8c;font-weight:500;text-align:center;white-space:nowrap;line-height:1.2}.employee-cards-grid,.project-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-top:16px}.employee-card,.project-card{background:#fff;border-radius:8px;padding:16px;border:1px solid #f0f0f0;transition:all .2s ease;cursor:pointer;position:relative;text-align:center;min-height:120px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 1px 3px #0000000d}.employee-card:hover,.project-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:#e0e0e0}.card-header{display:none}.card-content{flex:1;display:flex;flex-direction:column;justify-content:space-between}.employee-name,.project-name{font-size:14px;font-weight:600;color:#262626;margin-bottom:4px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.employee-department,.project-manager{font-size:12px;color:#8c8c8c;margin-bottom:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.status-text{font-size:12px;font-weight:600;margin-top:8px;margin-bottom:0;text-align:center;padding:4px 8px;border-radius:4px;background:#fafafa}.employee-card.已提交 .status-text,.employee-card.已审阅 .status-text,.employee-card.已批准 .status-text,.project-card.已提交 .status-text,.project-card.已审阅 .status-text,.project-card.已批准 .status-text{color:#52c41a;background:#f6ffed}.employee-card.草稿 .status-text,.project-card.草稿 .status-text{color:#fa8c16;background:#fff7e6}.employee-card.未提交 .status-text,.employee-card.not_submitted .status-text,.project-card.未提交 .status-text,.project-card.not_submitted .status-text{color:#ff4d4f;background:#fff2f0}.submit-time{font-size:10px;color:#bfbfbf;font-weight:400}@media (max-width: 1200px){.employee-cards-grid,.project-cards-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}}@media (max-width: 1024px){.employee-cards-grid,.project-cards-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.employee-card,.project-card{padding:14px;min-height:110px}.compact-stats{gap:16px;flex-wrap:nowrap}.stat-item{min-width:55px;padding:10px 12px}.stat-value{font-size:16px}}@media (max-width: 768px){.department-weekly-reports{padding:16px}.employee-cards-grid,.project-cards-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.employee-card,.project-card{padding:12px;min-height:100px}.employee-avatar,.project-icon{width:28px;height:28px;font-size:12px}.employee-name,.project-name{font-size:13px}.employee-department,.project-manager{font-size:11px}.status-text{font-size:11px;margin-top:6px;padding:3px 6px}.submit-time{font-size:9px}.section-header{padding:16px 20px}.section-header h3{font-size:16px;margin-bottom:12px}.compact-stats{gap:14px;flex-wrap:nowrap}.stat-item{min-width:50px;padding:10px 12px}.stat-value{font-size:20px}.stat-value{font-size:14px}.stat-label{font-size:10px}.department-reports-tabs{flex-wrap:wrap;gap:8px}.sub-tab{flex:1;min-width:120px;justify-content:center;font-size:13px;padding:10px 16px}}@media (max-width: 480px){.employee-cards-grid,.project-cards-grid{grid-template-columns:repeat(3,1fr);gap:8px}.employee-card,.project-card{padding:10px;min-height:90px}.card-header{margin-bottom:8px}.employee-avatar,.project-icon{width:24px;height:24px;font-size:10px}.employee-name,.project-name{font-size:12px;margin-bottom:4px}.employee-department,.project-manager{font-size:10px;margin-bottom:6px}.status-text{font-size:10px;margin-top:4px;margin-bottom:0;padding:2px 4px}.submit-time{font-size:8px}.department-reports-tabs{flex-direction:column}.sub-tab{width:100%;min-width:auto}.section-header{padding:12px 16px}.section-header h3{font-size:15px;margin-bottom:10px}.compact-stats{gap:10px;flex-wrap:nowrap}.stat-item{min-width:45px;padding:8px 10px}.stat-value{font-size:16px}.stat-label{font-size:10px;white-space:nowrap}}@media (max-width: 360px){.employee-cards-grid,.project-cards-grid{grid-template-columns:repeat(2,1fr)}}:root{--reports-bg-color: #f8fafc;--reports-card-bg: #ffffff;--reports-border-color: #e2e8f0;--reports-text-primary: #1a202c;--reports-text-secondary: #4a5568;--reports-primary-color: #667eea;--reports-card-shadow: 0 4px 20px rgba(0, 0, 0, .08);--reports-gradient-primary: linear-gradient(135deg, #44C4F4 0%, #34E0A1 100%);--reports-gradient-secondary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--reports-success-color: #22c55e;--reports-warning-color: #f59e0b;--reports-error-color: #ef4444;--reports-info-color: #3b82f6;--reports-hover-bg: #f7fafc;--reports-active-bg: #edf2f7}.reports-page-container .page-header{background:linear-gradient(135deg,#44c4f4,#34e0a1);border-radius:16px;padding:20px;margin-bottom:30px;box-shadow:0 4px 20px #44c4f44d;border:none;text-align:left!important}.reports-page-container .page-header .page-title-left{text-align:left!important;margin:0 0 8px!important}.reports-page-container .header-content{display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%;min-height:80px}.reports-page-container .header-text{width:100%;text-align:left;display:flex;flex-direction:column;align-items:flex-start}.reports-page-container .page-header h1,.reports-page-container .page-header .page-title-left,.reports-page-container .page-header .header-text h1{text-align:left!important;margin-left:0!important}.reports-page-container .page-header h1{margin:0 0 8px!important;position:static!important;padding-bottom:0!important}.reports-page-container .page-header h1:after{content:none!important;display:none!important}.reports-page-container .page-header .header-text h1{font-size:2.2rem!important;color:#fff!important;margin:0 0 8px!important;display:flex!important;align-items:center!important;gap:12px!important;font-weight:600!important;text-align:left!important;justify-content:flex-start!important;padding-bottom:0!important;position:static!important}.reports-page-container .page-header .header-text h1:after{display:none!important;content:none!important}.reports-page-container .header-icon{color:#fff;font-size:2rem;opacity:.9}.reports-page-container .page-header .page-subtitle{color:#ffffffe6!important;font-size:1.1rem!important;margin:0!important;font-weight:400!important;text-align:left!important;align-self:flex-start!important}.reports-page-container .header-right{display:flex;align-items:center;z-index:1;position:relative}.reports-page-container .header-right .week-navigation-controls{display:flex;align-items:center;gap:8px;background:#fff3;border-radius:20px;padding:8px 16px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #0000001a}.reports-page-container .weekly-reports-time-picker{padding:8px 16px!important;border-radius:20px!important;min-height:44px!important}.reports-page-container .weekly-reports-nav-btn{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:12px}.reports-page-container .weekly-reports-nav-btn:hover{background:#ffffff4d;transform:scale(1.05)}.reports-page-container .week-display-text{display:flex;align-items:center;gap:6px;color:#fff;font-weight:600;font-size:14px;white-space:nowrap;padding:0 12px}.reports-page-container .weekly-reports-week-display{min-width:140px;justify-content:center}.reports-page-container{min-height:100vh;padding:20px;display:flex;flex-direction:column;position:relative}.main-content-wrapper{width:100%;max-width:none;margin:0;flex:1;display:flex;flex-direction:column;position:relative;z-index:1}.reports-header-card{background:var(--reports-gradient-primary);border-radius:24px;padding:28px 36px;margin-bottom:28px;box-shadow:0 12px 40px #44c4f44d,0 4px 16px #0003;display:flex;justify-content:space-between;align-items:center;color:#fff;border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden}.reports-header-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 60%),linear-gradient(45deg,transparent 30%,rgba(255,255,255,.05) 50%,transparent 70%);pointer-events:none}.reports-header-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%)}.header-card-left{display:flex;align-items:center;gap:16px;color:#fffffff2;z-index:1;position:relative}.header-card-left h1{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.025em}.header-card-icon{font-size:2.25rem;color:#fff;opacity:.95;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.header-card-right{z-index:1;position:relative}.header-card-right .week-navigation-controls{display:flex;align-items:center;gap:12px;background:#fff3;border-radius:24px;padding:12px 20px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #0000001a}.weekly-reports-time-picker{padding:16px 24px!important;border-radius:28px!important;min-height:56px!important}.weekly-reports-nav-btn{min-width:48px!important;height:34px!important;padding:12px 16px!important;border-radius:16px!important;font-size:1.1rem!important}.weekly-reports-week-display{font-size:1.2rem!important;padding:0 20px!important;font-weight:700!important}.week-navigation-controls button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);cursor:pointer;font-size:1rem;color:#fff;padding:8px 12px;border-radius:12px;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:40px;height:24px}.week-navigation-controls button:hover{background:#ffffff40;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.week-display-text{display:flex;align-items:center;gap:8px;padding:0 16px;font-weight:600;color:#fff;font-size:1.1rem;letter-spacing:-.025em}.reports-body-area{position:relative;flex:1;display:flex;flex-direction:column;min-height:0}.reports-tabs-nav{margin-bottom:-1px;position:relative;z-index:2;display:flex;gap:4px;padding:0 4px}.tab-link{padding:16px 28px;background:var(--reports-card-bg);border:1px solid var(--reports-border-color);border-bottom:none;border-radius:16px 16px 0 0;cursor:pointer;font-size:1rem;color:var(--reports-text-secondary);display:inline-flex;align-items:center;gap:10px;margin-right:0;transition:all .3s ease;font-weight:500;position:relative;box-shadow:0 -2px 8px #0000000d}.tab-link:hover{background:var(--reports-hover-bg);transform:translateY(-1px);box-shadow:0 -4px 16px #0000001a;color:var(--reports-primary-color)}.tab-link.active{color:var(--reports-primary-color);background:var(--reports-card-bg);border-bottom:1px solid var(--reports-card-bg);font-weight:600;box-shadow:0 -4px 20px #667eea26}.tab-link.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--reports-primary-color);border-radius:2px 2px 0 0}.reports-content-card{background:var(--reports-card-bg);border-radius:16px;box-shadow:var(--reports-card-shadow);border:1px solid var(--reports-border-color);padding:32px;flex:1;min-height:0;position:relative}@media (max-width: 1600px){.main-content-wrapper{padding:0 20px}}@media (max-width: 1440px){.main-content-wrapper{padding:0 16px}.reports-header-card{padding:24px 28px}.reports-content-card{padding:28px}}@media (max-width: 1200px){.reports-page-container{padding:14px 18px}.reports-header{padding:16px 0;margin-bottom:20px}.header-left h1{font-size:1.4rem}.reports-content-card{padding:24px}.tab-link{padding:14px 24px;font-size:.95rem}}@media (max-width: 1024px){.reports-page-container{padding:12px 16px}.reports-header-card{padding:18px 22px;margin-bottom:20px}.header-card-left h1{font-size:1.5rem}.header-card-icon{font-size:2rem}.week-navigation-controls{padding:10px 18px!important;gap:10px!important}.week-navigation-controls button{min-width:38px!important;height:38px!important;padding:8px 12px!important}.week-display-text{font-size:1rem!important;padding:0 14px!important}.weekly-reports-time-picker{padding:14px 20px!important;min-height:50px!important}.weekly-reports-nav-btn{min-width:44px!important;height:44px!important;padding:10px 14px!important;font-size:1rem!important}.weekly-reports-week-display{font-size:1.1rem!important;padding:0 18px!important}.reports-content-card{padding:22px}.tab-link{padding:12px 20px;font-size:.95rem}}@media (max-width: 768px){.reports-page-container{padding:10px 14px}.reports-header{flex-direction:column;gap:16px;align-items:stretch;padding:16px 0;margin-bottom:18px}.header-left{text-align:center}.header-left h1{font-size:1.3rem}.header-right{align-self:center}.week-navigation{justify-content:center;padding:6px 12px;gap:8px}.week-navigation button{min-width:30px;height:30px}.week-display{font-size:.9rem;padding:0 10px}.reports-content-card{padding:18px;border-radius:18px}.tab-link{padding:12px 18px;font-size:.9rem;gap:8px;border-radius:18px 18px 0 0}.reports-tabs-nav{padding:0 3px;gap:3px}}@media (max-width: 640px){.reports-page-container{padding:8px 12px}.reports-header-card{padding:16px;margin-bottom:16px;gap:16px}.header-card-left h1{font-size:1.3rem}.header-card-icon{font-size:1.8rem}.week-navigation-controls{padding:6px 14px!important;gap:6px!important}.week-navigation-controls button{min-width:34px!important;height:34px!important;font-size:.9rem}.week-display-text{font-size:.9rem!important;padding:0 10px!important}.weekly-reports-time-picker{padding:12px 16px!important;min-height:46px!important}.weekly-reports-nav-btn{min-width:40px!important;height:40px!important;padding:8px 12px!important;font-size:.95rem!important}.weekly-reports-week-display{font-size:1rem!important;padding:0 16px!important}.reports-content-card{padding:16px;border-radius:16px}.tab-link{padding:10px 16px;font-size:.85rem;gap:6px}}@media (max-width: 480px){.reports-page-container{padding:6px 10px}.reports-header-card{padding:14px;margin-bottom:14px;gap:14px}.header-card-left h1{font-size:1.2rem}.header-card-icon{font-size:1.7rem}.week-navigation-controls{padding:6px 12px!important;gap:4px!important;flex-wrap:wrap}.week-navigation-controls button{min-width:32px!important;height:32px!important;font-size:.85rem}.week-display-text{font-size:.85rem!important;padding:0 8px!important;text-align:center}.weekly-reports-time-picker{padding:10px 14px!important;min-height:42px!important}.weekly-reports-nav-btn{min-width:36px!important;height:36px!important;padding:6px 10px!important;font-size:.9rem!important}.weekly-reports-week-display{font-size:.95rem!important;padding:0 14px!important}.reports-content-card{padding:14px;border-radius:14px}.tab-link{padding:8px 12px;font-size:.8rem;gap:4px;border-radius:14px 14px 0 0}.reports-tabs-nav{padding:0 1px;gap:1px;flex-wrap:wrap;justify-content:center}}@media (max-width: 360px){.reports-page-container{padding:4px 8px}.reports-header-card{padding:12px;margin-bottom:12px}.header-card-left h1{font-size:1.1rem}.header-card-icon{font-size:1.6rem}.week-display-text{font-size:.8rem!important}.reports-content-card{padding:12px}.tab-link{padding:6px 10px;font-size:.75rem}}:root{--personnel-bg-color: #f8fafc;--personnel-card-bg: #ffffff;--personnel-border-color: #e2e8f0;--personnel-text-primary: #1a202c;--personnel-text-secondary: #4a5568;--personnel-primary-color: #667eea;--personnel-card-shadow: 0 4px 20px rgba(0, 0, 0, .08);--personnel-gradient-primary: linear-gradient(135deg, #44C4F4 0%, #34E0A1 100%);--personnel-gradient-secondary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--personnel-success-color: #22c55e;--personnel-warning-color: #f59e0b;--personnel-error-color: #ef4444;--personnel-info-color: #3b82f6;--personnel-hover-bg: #f7fafc;--personnel-active-bg: #edf2f7}.personnel-page-container{min-height:100vh;padding:20px;display:flex;flex-direction:column;position:relative}.personnel-page-container .main-content-wrapper{width:100%;max-width:none;margin:0;flex:1;display:flex;flex-direction:column;position:relative;z-index:1}.personnel-page-container .page-header{background:linear-gradient(135deg,#44c4f4,#34e0a1);border-radius:16px;padding:20px;margin-bottom:30px;box-shadow:0 4px 20px #44c4f44d;border:none;text-align:left!important}.personnel-page-container .page-header .page-title-left{text-align:left!important;margin:0 0 8px!important}.personnel-page-container .header-content{display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%;min-height:80px}.personnel-page-container .header-text{width:100%;text-align:left;display:flex;flex-direction:column;align-items:flex-start}.personnel-page-container .page-header h1,.personnel-page-container .page-header .page-title-left,.personnel-page-container .page-header .header-text h1{text-align:left!important;margin-left:0!important}.personnel-page-container .page-header h1{margin:0 0 8px!important;position:static!important;padding-bottom:0!important}.personnel-page-container .page-header h1:after{content:none!important;display:none!important}.personnel-page-container .page-header .header-text h1{font-size:2.2rem!important;color:#fff!important;margin:0 0 8px!important;display:flex!important;align-items:center!important;gap:12px!important;font-weight:600!important;text-align:left!important;justify-content:flex-start!important;padding-bottom:0!important;position:static!important}.personnel-page-container .page-header .header-text h1:after{display:none!important;content:none!important}.personnel-page-container .header-icon{color:#fff;font-size:2rem;opacity:.9}.personnel-page-container .page-header .page-subtitle{color:#ffffffe6!important;font-size:1.1rem!important;margin:0!important;font-weight:400!important;text-align:left!important;align-self:flex-start!important}.personnel-body-area{position:relative;flex:1;display:flex;flex-direction:column;min-height:0}.personnel-content-card{background:var(--personnel-card-bg);border-radius:16px;box-shadow:var(--personnel-card-shadow);border:1px solid var(--personnel-border-color);padding:32px;flex:1;min-height:0;position:relative}@media (max-width: 1600px){.personnel-page-container .main-content-wrapper{padding:0 20px}}@media (max-width: 1440px){.personnel-page-container .main-content-wrapper{padding:0 16px}.personnel-content-card{padding:28px}}@media (max-width: 1200px){.personnel-page-container{padding:14px 18px}.personnel-page-container .page-header{padding:16px 0;margin-bottom:20px}.personnel-content-card{padding:24px}}@media (max-width: 1024px){.personnel-page-container{padding:12px 16px}.personnel-page-container .page-header{padding:18px 22px;margin-bottom:20px}.personnel-page-container .page-header .header-text h1{font-size:1.8rem!important}.personnel-page-container .header-icon{font-size:1.8rem}.personnel-content-card{padding:22px}}@media (max-width: 768px){.personnel-page-container{padding:10px 14px}.personnel-page-container .page-header{padding:16px;margin-bottom:18px}.personnel-page-container .page-header .header-text h1{font-size:1.6rem!important}.personnel-page-container .header-icon{font-size:1.6rem}.personnel-page-container .page-header .page-subtitle{font-size:1rem!important}.personnel-content-card{padding:18px;border-radius:18px}}@media (max-width: 640px){.personnel-page-container{padding:8px 12px}.personnel-page-container .page-header{padding:16px;margin-bottom:16px}.personnel-page-container .page-header .header-text h1{font-size:1.4rem!important}.personnel-page-container .header-icon{font-size:1.5rem}.personnel-page-container .page-header .page-subtitle{font-size:.95rem!important}.personnel-content-card{padding:16px;border-radius:16px}}@media (max-width: 480px){.personnel-page-container{padding:6px 10px}.personnel-page-container .page-header{padding:14px;margin-bottom:14px}.personnel-page-container .page-header .header-text h1{font-size:1.2rem!important}.personnel-page-container .header-icon{font-size:1.4rem}.personnel-page-container .page-header .page-subtitle{font-size:.9rem!important}.personnel-content-card{padding:14px;border-radius:14px}}@media (max-width: 360px){.personnel-page-container{padding:4px 8px}.personnel-page-container .page-header{padding:12px;margin-bottom:12px}.personnel-page-container .page-header .header-text h1{font-size:1.1rem!important}.personnel-page-container .header-icon{font-size:1.3rem}.personnel-page-container .page-header .page-subtitle{font-size:.85rem!important}.personnel-content-card{padding:12px}}.word-image-test{padding:20px;max-width:1200px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.test-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.test-header h2{margin:0;color:#333;font-size:24px}.test-actions{display:flex;gap:10px}.test-btn{padding:8px 16px;border:1px solid #ddd;border-radius:6px;background:#fff;color:#333;cursor:pointer;font-size:14px;transition:all .2s ease}.test-btn:hover{background:#f5f5f5;border-color:#999}.test-btn.clear-btn{background:#ff6b6b;color:#fff;border-color:#ff6b6b}.test-btn.clear-btn:hover{background:#ff5252}.test-content{display:grid;grid-template-columns:1fr 400px;gap:30px;margin-bottom:30px}.editor-section h3,.results-section h3{margin:0 0 15px;color:#333;font-size:18px}.test-instructions{margin-bottom:15px;padding:12px;background:#f8f9fa;border-left:4px solid #007bff;color:#666;font-size:14px;line-height:1.5}.results-section{background:#f8f9fa;padding:20px;border-radius:8px;border:1px solid #e0e0e0}.test-results{max-height:400px;overflow-y:auto}.no-results{color:#999;font-style:italic;text-align:center;padding:20px}.test-result{padding:10px;margin-bottom:8px;border-radius:6px;border-left:4px solid;font-size:14px;line-height:1.4}.test-result.info{background:#e3f2fd;border-color:#2196f3;color:#1565c0}.test-result.success{background:#e8f5e8;border-color:#4caf50;color:#2e7d32}.test-result.error{background:#ffebee;border-color:#f44336;color:#c62828}.timestamp{display:inline-block;font-weight:700;margin-right:10px;font-size:12px;opacity:.8}.message{word-break:break-word}.debug-info{background:#f5f5f5;padding:20px;border-radius:8px;border:1px solid #ddd}.debug-info h3{margin:0 0 15px;color:#333;font-size:16px}.debug-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.debug-content p{margin:0;padding:8px;background:#fff;border-radius:4px;font-size:13px;font-family:Courier New,monospace}.debug-content strong{color:#666}@media (max-width: 768px){.test-content{grid-template-columns:1fr}.test-header{flex-direction:column;gap:15px;align-items:stretch}.test-actions{justify-content:center}.debug-content{grid-template-columns:1fr}.db-debug-actions{flex-direction:column;align-items:stretch}.report-select{min-width:auto;max-width:none}}.database-debug{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:20px;margin-bottom:20px}.database-debug h3{margin:0 0 15px;color:#856404;font-size:16px}.db-debug-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.report-select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;background:#fff;font-size:14px;min-width:200px;max-width:300px}.report-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.route-test-container{max-width:800px;margin:0 auto;padding:20px;font-family:Arial,sans-serif}.route-test-container h1{color:#333;text-align:center;margin-bottom:10px}.route-test-container p{text-align:center;color:#666;margin-bottom:30px}.test-links{margin-bottom:30px}.test-links h2{color:#333;border-bottom:2px solid #007bff;padding-bottom:5px;margin-bottom:20px}.link-group{margin-bottom:25px}.link-group h3{color:#555;margin-bottom:10px}.link-group ul{list-style:none;padding:0}.link-group li{margin-bottom:8px}.test-link{display:inline-block;padding:8px 15px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;transition:background-color .3s}.test-link:hover{background-color:#0056b3;text-decoration:none;color:#fff}.test-instructions{background-color:#f8f9fa;padding:20px;border-radius:5px;margin-bottom:20px}.test-instructions h2{color:#333;margin-bottom:15px}.test-instructions ol{color:#555;line-height:1.6}.current-location{background-color:#e9ecef;padding:15px;border-radius:5px;border-left:4px solid #28a745}.current-location h3{color:#333;margin-bottom:10px}.current-location code{background-color:#f8f9fa;padding:5px 10px;border-radius:3px;font-family:Courier New,monospace;color:#d63384}.dept-project-test-container{max-width:1200px;margin:0 auto;padding:20px;font-family:Arial,sans-serif}.dept-project-test-container h1{color:#333;text-align:center;margin-bottom:20px;border-bottom:2px solid #1890ff;padding-bottom:10px}.test-info{background-color:#f0f8ff;padding:15px;border-radius:6px;margin-bottom:20px;border-left:4px solid #1890ff}.test-results{background-color:#fafafa;border-radius:8px;padding:20px;margin-bottom:20px}.test-results h2{color:#333;margin-top:0;border-bottom:1px solid #d9d9d9;padding-bottom:10px}.stats-section{margin-bottom:25px}.stats-section h3{color:#333;margin-bottom:15px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px}.stat-item{background-color:#fff;padding:12px;border-radius:6px;border:1px solid #e8e8e8;display:flex;justify-content:space-between;align-items:center}.stat-item label{font-weight:500;color:#666}.stat-item span{font-weight:700;color:#333;font-size:14px}.projects-section{margin-bottom:25px}.projects-section h3{color:#333;margin-bottom:15px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.project-card{background-color:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:15px;transition:box-shadow .3s}.project-card:hover{box-shadow:0 2px 8px #0000001a}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.project-header h4{margin:0;color:#333;font-size:16px}.project-details p{margin:5px 0;color:#666;font-size:14px}.raw-data-section{margin-top:25px}.raw-data-section h3{color:#333;margin-bottom:10px}.raw-data-section details{background-color:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:10px}.raw-data-section summary{cursor:pointer;font-weight:500;color:#1890ff;padding:5px}.raw-data-section summary:hover{background-color:#f0f8ff;border-radius:4px}.raw-data{background-color:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px;padding:15px;margin-top:10px;overflow-x:auto;font-family:Courier New,monospace;font-size:12px;line-height:1.4;color:#333}.embedded-component-test{margin-top:30px;padding:20px;border:2px solid #e6f7ff;border-radius:8px;background-color:#fafafa}.embedded-component-test h2{color:#1890ff;margin-top:0;margin-bottom:10px}.embedded-component-test p{color:#666;margin-bottom:20px}.component-container{background-color:#fff;border-radius:6px;padding:20px;box-shadow:0 2px 8px #0000001a}.simple-test-container{max-width:1200px;margin:0 auto;padding:20px;font-family:Arial,sans-serif}.simple-test-container h1{color:#333;text-align:center;margin-bottom:30px;border-bottom:2px solid #1890ff;padding-bottom:10px}.user-info-section{background-color:#f0f8ff;padding:15px;border-radius:6px;margin-bottom:20px;border-left:4px solid #1890ff}.user-info-section h3{margin-top:0;color:#1890ff}.user-info p{margin:5px 0;color:#333}.test-info{background-color:#f6ffed;padding:15px;border-radius:6px;margin-bottom:20px;border-left:4px solid #52c41a}.test-info p{margin:5px 0;color:#333}.test-actions{display:flex;gap:15px;margin-bottom:20px;align-items:center}.test-actions button{padding:10px 20px;background-color:#1890ff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.test-actions button:hover:not(:disabled){background-color:#40a9ff}.test-actions button:disabled{background-color:#d9d9d9;cursor:not-allowed}.nav-link{padding:10px 20px;background-color:#52c41a;color:#fff;text-decoration:none;border-radius:4px;transition:background-color .3s}.nav-link:hover{background-color:#73d13d;text-decoration:none;color:#fff}.error-message{background-color:#fff2f0;border:1px solid #ffccc7;border-radius:6px;padding:15px;margin-bottom:20px}.error-message h3{color:#ff4d4f;margin:0 0 10px}.error-message p{color:#ff4d4f;margin:0}.loading-message{background-color:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;padding:15px;margin-bottom:20px;text-align:center}.loading-message p{color:#52c41a;margin:0}.api-results{background-color:#fafafa;border-radius:8px;padding:20px;margin-bottom:20px}.api-results h2{color:#333;margin-top:0;border-bottom:1px solid #d9d9d9;padding-bottom:10px}.stats-summary{margin-bottom:25px}.stats-summary h3{color:#333;margin-bottom:15px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.stat-card{background-color:#fff;padding:15px;border-radius:6px;border:1px solid #e8e8e8}.stat-card h4{margin:0 0 10px;color:#333}.stat-card p{margin:5px 0;color:#666}.projects-list{margin-bottom:25px}.projects-list h3{color:#333;margin-bottom:15px}.projects-table{overflow-x:auto}.projects-table table{width:100%;border-collapse:collapse;background-color:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.projects-table th,.projects-table td{padding:12px;text-align:left;border-bottom:1px solid #e8e8e8}.projects-table th{background-color:#f5f5f5;font-weight:600;color:#333}.projects-table tr:hover{background-color:#f9f9f9}.status-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status-badge.not_submitted{background-color:#fff2f0;color:#ff4d4f}.status-badge.草稿{background-color:#fff7e6;color:#fa8c16}.status-badge.已提交{background-color:#e6f7ff;color:#1890ff}.status-badge.已批准{background-color:#f6ffed;color:#52c41a}.test-btn{padding:6px 12px;background-color:#722ed1;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .3s}.test-btn:hover{background-color:#9254de}.no-data{text-align:center;color:#999;font-style:italic;padding:20px}.raw-data{margin-top:25px}.raw-data details{background-color:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:10px}.raw-data summary{cursor:pointer;font-weight:500;color:#1890ff;padding:5px}.raw-data summary:hover{background-color:#f0f8ff;border-radius:4px}.raw-data pre{background-color:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px;padding:15px;margin-top:10px;overflow-x:auto;font-family:Courier New,monospace;font-size:12px;line-height:1.4;color:#333}.test-instructions{background-color:#e6f7ff;border:1px solid #91d5ff;border-radius:6px;padding:20px;margin-top:20px}.test-instructions h2{color:#1890ff;margin-top:0;margin-bottom:15px}.test-instructions ol{color:#333;line-height:1.6}.test-instructions li{margin-bottom:8px}.test-instructions strong{color:#1890ff}.rich-text-display{line-height:1.6;color:#333;font-size:14px;word-wrap:break-word;overflow-wrap:break-word}.rich-text-display p{margin:0 0 12px;line-height:1.6}.rich-text-display p:last-child{margin-bottom:0}.rich-text-display h1,.rich-text-display h2,.rich-text-display h3,.rich-text-display h4,.rich-text-display h5,.rich-text-display h6{margin:16px 0 8px;font-weight:600;line-height:1.4;color:#262626}.rich-text-display h1{font-size:20px}.rich-text-display h2{font-size:18px}.rich-text-display h3{font-size:16px}.rich-text-display h4{font-size:15px}.rich-text-display h5{font-size:14px}.rich-text-display h6{font-size:13px}.rich-text-display h1:first-child,.rich-text-display h2:first-child,.rich-text-display h3:first-child,.rich-text-display h4:first-child,.rich-text-display h5:first-child,.rich-text-display h6:first-child{margin-top:0}.rich-text-display strong,.rich-text-display b{font-weight:600;color:#262626}.rich-text-display em,.rich-text-display i{font-style:italic}.rich-text-display u{text-decoration:underline}.rich-text-display strike,.rich-text-display del{text-decoration:line-through;color:#999}.rich-text-display ul,.rich-text-display ol{margin:8px 0 12px;padding-left:20px}.rich-text-display ul{list-style-type:disc}.rich-text-display ol{list-style-type:decimal}.rich-text-display li{margin:4px 0;line-height:1.6}.rich-text-display ul ul,.rich-text-display ol ol,.rich-text-display ul ol,.rich-text-display ol ul{margin:4px 0}.rich-text-display blockquote{margin:12px 0;padding:8px 12px;border-left:4px solid #1890ff;background-color:#f0f8ff;color:#666;font-style:italic}.rich-text-display blockquote p{margin:0}.rich-text-display code{background-color:#f5f5f5;border:1px solid #e8e8e8;border-radius:3px;padding:2px 4px;font-family:Courier New,Consolas,Monaco,monospace;font-size:12px;color:#d63384}.rich-text-display pre{background-color:#f5f5f5;border:1px solid #e8e8e8;border-radius:4px;padding:12px;margin:12px 0;overflow-x:auto;font-family:Courier New,Consolas,Monaco,monospace;font-size:12px;line-height:1.4}.rich-text-display pre code{background:none;border:none;padding:0;color:#333}.rich-text-display a{color:#1890ff;text-decoration:none;transition:color .3s}.rich-text-display a:hover{color:#40a9ff;text-decoration:underline}.rich-text-display a:visited{color:#722ed1}.rich-text-display img{max-width:100%;height:auto;border-radius:4px;margin:8px 0;box-shadow:0 2px 8px #0000001a}.rich-text-display table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}.rich-text-display th,.rich-text-display td{border:1px solid #e8e8e8;padding:8px 12px;text-align:left}.rich-text-display th{background-color:#f5f5f5;font-weight:600;color:#262626}.rich-text-display tr:nth-child(2n){background-color:#fafafa}.rich-text-display hr{border:none;border-top:1px solid #e8e8e8;margin:16px 0}.rich-text-display .empty-content{color:#999;font-style:italic;text-align:center;padding:20px;background-color:#fafafa;border-radius:4px;border:1px dashed #d9d9d9;margin:0}@media (max-width: 768px){.rich-text-display{font-size:13px}.rich-text-display h1{font-size:18px}.rich-text-display h2{font-size:16px}.rich-text-display h3{font-size:15px}.rich-text-display h4{font-size:14px}.rich-text-display h5{font-size:13px}.rich-text-display h6,.rich-text-display table{font-size:12px}.rich-text-display th,.rich-text-display td{padding:6px 8px}}.project-report-detail-test{max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.project-report-detail-test h1{color:#333;text-align:center;margin-bottom:30px;font-size:28px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.test-description{background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:20px;border-radius:12px;margin-bottom:30px;border:1px solid #dee2e6}.test-description h2{color:#333;margin-top:0;margin-bottom:15px;font-size:20px}.test-description ul{margin:0;padding-left:20px}.test-description li{margin-bottom:8px;line-height:1.6;color:#495057}.test-description strong{color:#1890ff;font-weight:600}.test-mode-switch{margin-top:20px;padding:15px;background-color:#f0f8ff;border-radius:8px;border:1px solid #91d5ff}.test-mode-switch label{display:flex;align-items:center;gap:8px;font-weight:500;color:#1890ff;cursor:pointer}.test-mode-switch input[type=checkbox]{width:16px;height:16px;accent-color:#1890ff}.test-projects{margin-bottom:40px}.test-projects h2{color:#333;margin-bottom:10px;font-size:22px;font-weight:600}.test-projects p{color:#666;margin-bottom:20px;font-size:16px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.project-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:20px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #0000000d}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026;border-color:#1890ff}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.project-header h3{margin:0 10px 0 0;color:#333;font-size:18px;font-weight:600;flex:1}.status-badge{padding:6px 12px;border-radius:16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.project-details{margin-bottom:15px}.project-details p{margin:8px 0;color:#666;font-size:14px}.project-details strong{color:#333;font-weight:600}.project-actions{text-align:center}.view-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .3s ease;width:100%}.view-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.test-features{margin-bottom:40px}.test-features h2{color:#333;margin-bottom:20px;font-size:22px;font-weight:600}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.feature-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000d;transition:all .3s ease}.feature-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.feature-card h3{margin:0 0 15px;color:#333;font-size:18px;font-weight:600}.feature-card ul{margin:0;padding-left:20px}.feature-card li{margin-bottom:8px;color:#666;line-height:1.5}.test-instructions{background:linear-gradient(135deg,#e6f7ff,#f0f8ff);padding:20px;border-radius:12px;margin-bottom:30px;border:1px solid #91d5ff}.test-instructions h2{color:#1890ff;margin-top:0;margin-bottom:15px;font-size:20px}.test-instructions ol{margin:0;padding-left:20px}.test-instructions li{margin-bottom:12px;line-height:1.6;color:#333}.test-instructions strong{color:#1890ff;font-weight:600}.navigation-links{background:linear-gradient(135deg,#f6ffed,#f0f9ff);padding:20px;border-radius:12px;border:1px solid #b7eb8f}.navigation-links h2{color:#52c41a;margin-top:0;margin-bottom:15px;font-size:20px}.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.nav-link{display:block;padding:12px 20px;background:linear-gradient(135deg,#52c41a,#73d13d);color:#fff;text-decoration:none;border-radius:8px;text-align:center;font-weight:600;transition:all .3s ease}.nav-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px #52c41a66;text-decoration:none;color:#fff}@media (max-width: 768px){.project-report-detail-test{padding:15px}.project-report-detail-test h1{font-size:24px}.projects-grid,.features-grid,.links-grid{grid-template-columns:1fr}.project-header{flex-direction:column;align-items:flex-start;gap:10px}.project-header h3{margin-right:0}}@media (max-width: 480px){.test-description,.test-instructions,.navigation-links,.project-card,.feature-card{padding:15px}}.test-page-container{padding:20px;max-width:1200px;margin:0 auto;background:#f5f5f5;min-height:100vh}.test-page-header{background:#fff;padding:24px;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;text-align:center}.test-page-header h1{margin:0 0 8px;color:#262626;font-size:24px;font-weight:600}.test-description{margin:0;color:#666;font-size:14px}.test-controls{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}.control-group{display:flex;align-items:center;gap:8px}.control-group label{font-weight:500;color:#262626;white-space:nowrap}.control-group input,.control-group select{padding:6px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px}.week-display{color:#666;font-size:12px;font-style:italic}.test-content{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.test-navigation{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-top:20px}.test-navigation h3{margin:0 0 16px;color:#262626;font-size:18px;font-weight:600}.nav-links{display:flex;gap:12px;flex-wrap:wrap}.nav-link{display:inline-block;padding:8px 16px;background:#1890ff;color:#fff;text-decoration:none;border-radius:4px;font-size:14px;transition:background-color .2s ease}.nav-link:hover{background:#40a9ff;color:#fff}.loading-content,.error-content,.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#666}.loading-spinner{font-size:24px;animation:spin 1s linear infinite;margin-bottom:16px;color:#1890ff}.error-icon,.no-data-icon{font-size:48px;color:#d9d9d9;margin-bottom:16px}.error-content h3,.no-data h3{margin:0 0 8px;color:#262626;font-size:18px}.error-content p,.no-data p{margin:0 0 16px;color:#666}.retry-button{background:#1890ff;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;transition:background-color .2s ease}.retry-button:hover{background:#40a9ff}.department-tabs{display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;padding:16px;border-bottom:1px solid #f0f0f0}.department-tab{background:#fff;border:1px solid #d9d9d9;border-radius:6px;padding:8px 16px;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:6px;font-size:14px;color:#666}.department-tab:hover{border-color:#40a9ff;color:#40a9ff}.department-tab.active{background:#1890ff;border-color:#1890ff;color:#fff}.tab-icon{font-size:12px}.member-count{background:#fff3;padding:2px 6px;border-radius:10px;font-size:11px;margin-left:4px}.department-tab.active .member-count{background:#ffffff4d}.active-department-info{padding:16px;background:#f9f9f9;border-radius:6px;margin:16px}.active-department-info h4{margin:0 0 12px;color:#262626;font-size:16px;font-weight:600}.department-details p{margin:4px 0;color:#666;font-size:14px}.debug-info{padding:16px;background:#f0f0f0;border-top:1px solid #e8e8e8}.debug-info h4{margin:0 0 12px;color:#262626;font-size:14px;font-weight:600}.debug-info pre{background:#fff;padding:12px;border-radius:4px;border:1px solid #d9d9d9;font-size:12px;color:#666;overflow-x:auto;max-height:300px;overflow-y:auto}@media (max-width: 768px){.test-page-container{padding:16px}.test-controls{flex-direction:column;align-items:stretch;gap:12px}.control-group{justify-content:space-between}.nav-links,.department-tabs{flex-direction:column;gap:8px}.department-tab{justify-content:center}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:64px;background-color:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:1000}.logo-container{display:flex;align-items:center;text-decoration:none;color:inherit;white-space:nowrap;margin:0;height:100%}.logo-img{height:36px;margin-right:12px;display:block;object-fit:contain}.system-title{font-size:1.25rem;font-weight:600;white-space:nowrap;margin:0;line-height:64px;height:64px;display:inline-flex;align-items:center;vertical-align:middle}.header-left{display:flex;align-items:center;gap:2rem;height:100%}.header-nav{display:flex;gap:2.5rem}.header-nav-link{position:relative;text-decoration:none;color:#374151;font-size:1rem;font-weight:500;padding:.5rem .25rem;border-radius:4px;transition:color .2s ease-in-out}.header-nav-link:hover{color:#111827}.header-nav-link:after{content:"";position:absolute;left:50%;bottom:-5px;width:0;height:2px;background:linear-gradient(135deg,#44c4f4,#34e0a1);transition:all .3s ease;transform:translate(-50%)}.header-nav-link:hover:after,.header-nav-link.active:after{width:80%}.header-nav-link.active{color:#1f2937;font-weight:600}.resource-menu-container{position:relative;display:inline-block}.resource-link{cursor:pointer;display:flex;align-items:center;gap:4px}.dropdown-arrow{font-size:10px;margin-left:2px;margin-top:2px}.resource-dropdown-menu{position:absolute;top:100%;left:-10px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:140px;z-index:1000;overflow:hidden;margin-top:5px;animation:fadeIn .2s ease-out}.resource-menu-item{display:block;padding:10px 16px;color:#374151;text-decoration:none;transition:all .2s;font-size:14px;text-align:left}.resource-menu-item:hover{background:#f3f4f6;color:#111827}.header-nav-link:not(.resource-link):after{content:"";position:absolute;left:50%;bottom:-5px;width:0;height:2px;background:linear-gradient(135deg,#44c4f4,#34e0a1);transition:all .3s ease;transform:translate(-50%)}.header-nav-link:not(.resource-link):hover:after,.header-nav-link:not(.resource-link).active:after{width:80%}.resource-link:after{content:"";position:absolute;left:50%;bottom:-5px;width:0;height:2px;background:linear-gradient(135deg,#44c4f4,#34e0a1);transition:all .3s ease;transform:translate(-50%)}.resource-link:hover:after{width:80%}.header-login-status{display:flex;align-items:center}.header-user-area{display:flex;align-items:center;position:relative;gap:8px}.header-username{font-weight:500;color:#2563eb}.header-username-value{font-weight:700;color:#2563eb;margin-right:8px}.header-avatar{width:36px;height:36px;background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;cursor:pointer;box-shadow:0 2px 8px #44c4f41a;transition:box-shadow .2s,background .2s;margin-left:8px;line-height:1;text-align:center;-webkit-user-select:none;user-select:none}.header-avatar:hover{box-shadow:0 4px 16px #36c3f62e,0 1.5px 6px #00000014;background:linear-gradient(135deg,#36c3f6,#2ecc71)}.header-user-menu{position:absolute;top:48px;right:0;min-width:200px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #36c3f62e,0 1.5px 6px #00000014;padding:0;z-index:2000;overflow:hidden;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.header-user-menu-top{display:flex;align-items:center;gap:12px;padding:18px 20px 10px;border-bottom:1px solid #f0f0f0;background:#f8fafc}.header-avatar-big{width:48px;height:48px;background:linear-gradient(135deg,#44c4f4,#34e0a1);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700}.header-user-info{display:flex;flex-direction:column;gap:2px}.header-user-name{font-weight:700;font-size:1.1rem;color:#222}.header-user-role{font-size:.95rem;color:#888}.header-user-menu-item{padding:14px 20px;cursor:pointer;font-size:1rem;color:#333;display:flex;align-items:center;gap:8px;border-bottom:1px solid #f0f0f0;transition:background .15s}.header-user-menu-item:last-child{border-bottom:none}.header-user-menu-item:hover{background:#f5faff}.header-user-menu-item.logout{color:#ef4444;font-weight:700;border-top:1px solid #f0f0f0;border-bottom:none}.header-user-menu-item.logout:hover{background:#fff1f0;color:#d32f2f}.header-nav-link[href="/ai-diagnosis"]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff!important;border-radius:6px;padding:8px 16px;font-weight:600;position:relative;overflow:hidden}.header-nav-link[href="/ai-diagnosis"]:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.header-nav-link[href="/ai-diagnosis"]:after{display:none}.header-nav-link[href="/ai-diagnosis"]:before{content:"🤖";margin-right:6px;font-size:14px}:root{--color-primary: #36c3f6;--color-primary-end: #2ecc71;--color-success: #2ecc71;--color-warning: #e67e22;--color-danger: #e74c3c;--color-text: #222;--color-text-secondary: #666;--color-border: #e0e0e0;--color-background: #f6fcff;--gradient-main: linear-gradient(135deg, #36c3f6 0%, #2ecc71 100%);--gradient-main-hover: linear-gradient(135deg, #2ecc71 0%, #36c3f6 100%);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 10px;--spacing-xl: 10px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 20px;--font-size-xl: 28px;--border-radius-sm: 8px;--border-radius-md: 16px;--border-radius-lg: 24px;--shadow-sm: 0 1px 3px rgba(54, 195, 246, .08);--shadow-md: 0 4px 12px rgba(54, 195, 246, .12);--shadow-lg: 0 10px 24px rgba(54, 195, 246, .15);--breakpoint-mobile: 768px;--breakpoint-tablet: 1024px}:root{--color-primary: #2563eb;--color-primary-light: #3b82f6;--color-primary-dark: #1d4ed8;--color-secondary: #0ea5e9;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #6366f1;--gradient-primary: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);--gradient-secondary: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-info: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);--color-text: #1e293b;--color-text-light: #64748b;--color-text-lighter: #94a3b8;--color-bg: #f1f5f9;--color-bg-light: #ffffff;--color-bg-dark: #e2e8f0;--color-bg-card: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-card: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .05);--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--transition-fast: .15s;--transition-normal: .3s}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-size-md);line-height:1.5;color:var(--color-text);background:linear-gradient(135deg,#f8fafc,#e2e8f0);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 25% 25%,rgba(54,195,246,.03) 0%,transparent 50%),radial-gradient(circle at 75% 75%,rgba(46,204,113,.03) 0%,transparent 50%);pointer-events:none;z-index:-1}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%}.app-container.sidebar-page{padding:0;margin:0}.app-content{flex:1;max-width:100vw;margin:0 auto;width:100%}.main-content-card{background:#fffffff2;padding:var(--spacing-lg);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0 auto;position:relative;text-align:center;padding-bottom:1.5rem}h2{font-size:var(--font-size-xl);color:var(--color-text)}h3{font-size:var(--font-size-lg);color:var(--color-text)}::-webkit-scrollbar{width:.3rem;height:.5rem}::-webkit-scrollbar-track{background:var(--color-bg-dark);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:#a8a8a8;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}h1,h2,h3,h4,h5,h6{margin-bottom:var(--spacing-md);font-weight:var(--font-weight-bold);color:var(--color-text);letter-spacing:-.025em}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block}.card,.modal,.project-info{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--color-border);transition:all var(--transition-normal) ease}.card:hover{transform:translateY(-.25rem);box-shadow:var(--shadow-lg)}.project-list,.task-table{background:transparent;box-shadow:none;border:none;padding:0}table{width:100%;border-collapse:separate;border-spacing:0;margin-bottom:var(--spacing-lg);background:var(--color-bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);border:1px solid var(--color-border)}thead{background:var(--color-primary);position:sticky;top:0;z-index:10}th{padding:var(--spacing-md) var(--spacing-md);text-align:left;font-weight:var(--font-weight-semibold);color:#fff;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}td{padding:var(--spacing-md);border-bottom:1px solid var(--color-border);vertical-align:middle;color:var(--color-text);font-size:var(--font-size-sm)}tbody tr:nth-child(2n){background-color:var(--color-bg-light)}tbody tr:hover{background-color:var(--color-bg-dark)}tbody tr:last-child td{border-bottom:none}.form-group{margin-bottom:var(--spacing-lg)}label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-size:var(--font-size-sm)}input,select,textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);transition:all var(--transition-fast) ease;background:var(--color-bg-light);color:var(--color-text)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}input.error,select.error,textarea.error{border-color:var(--color-danger);box-shadow:0 0 0 3px #ef44441a}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full, 9999px);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;min-width:6rem}.status-badge.进行中{background-color:#3b82f61a;color:var(--color-primary);border:1px solid rgba(59,130,246,.2)}.status-badge.已完成{background-color:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.status-badge.暂停{background-color:#f59e0b1a;color:var(--color-warning);border:1px solid rgba(245,158,11,.2)}.status-badge.已关闭{background-color:#ef444414;color:#dc2626;border:1px solid rgba(239,68,68,.15)}.loading{display:inline-block;position:relative;width:80px;height:80px;margin:var(--spacing-xl) auto;display:flex;justify-content:center}.loading:after{content:" ";display:block;width:40px;height:40px;margin:8px;border-radius:50%;border:6px solid var(--color-primary);border-color:var(--color-primary) transparent var(--color-primary) transparent;animation:spin 1.2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message{background-color:#ef44441a;color:var(--color-danger);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:4px solid var(--color-danger);font-size:var(--font-size-sm)}.success-message{background-color:#10b9811a;color:var(--color-success);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:4px solid var(--color-success);font-size:var(--font-size-sm)}.empty-message{text-align:center;padding:var(--spacing-xl);color:var(--color-text-light);font-size:var(--font-size-md)}.empty-message:before{content:"📋";font-size:var(--font-size-3xl);display:block;margin-bottom:var(--spacing-md)}@media (max-width: 768px){.app-content{padding:var(--spacing-md)}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}.card,.project-list,.task-table,.modal,.project-info{padding:var(--spacing-md)}table{font-size:var(--font-size-xs)}th,td{padding:var(--spacing-sm)}}button,.btn,.floating-button{cursor:pointer;font-weight:var(--font-weight-medium);transition:all var(--transition-fast) ease;border:none;font-family:inherit;display:inline-flex;align-items:center;justify-content:center}.btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--font-size-sm);background-color:var(--color-primary);transition:all var(--transition-fast) ease;text-align:center;text-decoration:none;line-height:1.5;box-shadow:var(--shadow-sm)}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-secondary{background-color:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}.btn-secondary:hover{background-color:#2563eb0d}.input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition-fast) ease}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase}.badge-success{background-color:#10b9811a;color:var(--color-success)}.badge-warning{background-color:#f59e0b1a;color:var(--color-warning)}.badge-danger{background-color:#ef44441a;color:var(--color-danger)}@media (max-width: 768px){:root{--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem}.card{padding:var(--spacing-md)}}@media (max-width: 480px){:root{--font-size-md: .875rem;--font-size-lg: 1rem}.btn{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-xs)}}.task-distribution:hover{box-shadow:0 4px 16px #36c3f62e,0 1.5px 6px #00000014;border-color:#36c3f6;background:#fafdff;transition:box-shadow .2s,border-color .2s,background .2s;cursor:pointer}.system-title:after{content:none!important;display:none!important;width:0!important;height:0!important;background:none!important;border:none!important;margin:0!important;padding:0!important}.input.error,input.error,.form-input.error{border-color:var(--color-danger)!important;background:#ef444414!important;color:var(--color-danger)}.input-error-message,.form-error-message{color:var(--color-danger);font-size:var(--font-size-xs);margin-top:.25rem;margin-left:.25rem;display:flex;align-items:center;gap:.25rem}.ant-tooltip,.draggable-modal .ant-tooltip,.ant-modal .ant-tooltip,.ant-drawer .ant-tooltip,.ant-popover,.draggable-modal .ant-popover,.ant-modal .ant-popover,.ant-drawer .ant-popover,.ant-select-dropdown,.draggable-modal .ant-select-dropdown,.ant-modal .ant-select-dropdown,.ant-picker-dropdown,.draggable-modal .ant-picker-dropdown,.ant-modal .ant-picker-dropdown{z-index:10100!important}
