*{margin:0;padding:0;box-sizing:border-box}:root{--topbar-min-h: 60px}html,body{height:100vh;width:100vw;margin:0;padding:0;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;color:#333}#root{height:100%;width:100%;display:flex}.app{display:flex;height:100%;width:100%}.sidebar{width:200px;background:linear-gradient(180deg,#fff,#f8f5ff);color:#333;display:flex;flex-direction:column;position:fixed;left:0;top:0;height:100vh;z-index:100;transition:width .3s ease}.sidebar.sidebar-collapsed{width:0;overflow:hidden}.sidebar-expand-btn{display:flex;align-items:center;justify-content:center;width:24px;height:20px;flex-shrink:0;background:transparent;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;transition:all .2s;padding:0}.sidebar-expand-btn:hover{background:#f3f4f6;color:#7c3aed}.sidebar-collapse-btn{margin-left:auto;width:24px;height:20px;border-radius:6px;background:transparent;border:none;color:#9ca3af;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s;padding:0}.sidebar-collapse-btn:hover{color:#7c3aed;background:#f3f0ff}.sidebar-collapsed .sidebar-header{padding:12px 0}.sidebar-collapsed .sidebar-collapse-btn{margin-left:22px}.sidebar-header{padding:12px 20px;min-height:var(--topbar-min-h, 96px);display:flex;align-items:center;gap:12px;flex-shrink:0}.sidebar-logo-block{display:flex;align-items:center;gap:8px;min-width:0}.sidebar-logo-img{width:26px;height:26px;border-radius:7px;display:block;flex-shrink:0;cursor:pointer}.sidebar-logo{cursor:pointer;font-size:20px;line-height:26px;font-weight:700;color:#1f2937;white-space:nowrap;transition:color .2s}.sidebar-logo:hover{color:#7c3aed}.header-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.header-title{font-size:15px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:12px}.header-title.has-tooltip{overflow:visible}.new-chat-header-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;background-color:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.new-chat-header-btn:hover{background-color:#7c3aed}.ai-header-actions{display:flex;align-items:center;gap:8px;margin-left:auto;position:relative;overflow:visible}.sidebar-collapsed .header-title{display:none}.menu-list{flex-shrink:0;padding:10px 12px}.sidebar .menu-list .menu-item{display:flex;flex-direction:row;align-items:center;gap:12px;padding:12px;border-radius:8px;cursor:pointer;transition:all .2s;font-size:14px;color:#4b5563;text-decoration:none}.sidebar .menu-list .menu-item:hover{background-color:#f3f4f6}.sidebar .menu-list .menu-item.active{background-color:#ede9fe;color:#7c3aed}.sidebar .menu-list .menu-item-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.sidebar .menu-list .menu-item-label{white-space:nowrap;display:flex;align-items:center}.sidebar.sidebar-collapsed .menu-list .menu-item-label{display:none}.sidebar.sidebar-collapsed .menu-list .menu-item{justify-content:center}.sidebar-footer{padding:16px;background:linear-gradient(180deg,#f8f5ff80,#e8e4ff4d);border-top:1px solid #e9e5ff}.user-profile{position:relative;display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;transition:background-color .2s;cursor:pointer}.user-profile:hover{background-color:#7c3aed14}.user-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid #fff;box-shadow:0 2px 8px #0000001a}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-info{flex:1;min-width:0}.user-name-row{display:flex;align-items:center;gap:6px}.user-name{font-size:13px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-level{padding:1px 6px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:10px;font-weight:600;border-radius:10px;flex-shrink:0}.user-motto{display:block;font-size:11px;color:#9ca3af;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-arrow{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#9ca3af;transition:all .2s;flex-shrink:0}.user-arrow:hover{background-color:#f3f4f6;color:#6b7280}.user-arrow svg{transition:transform .2s}.user-arrow.open svg{transform:rotate(180deg)}.member-actions-menu.sidebar-user-menu{top:auto;left:auto;right:0;bottom:calc(100% + 6px);min-width:120px}.sidebar-collapsed .sidebar-footer{display:none}.sidebar-projects{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px 12px 4px;border-top:1px solid #f1f5f9}.sidebar-projects-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;color:#9ca3af;padding:4px 8px 6px 12px;flex-shrink:0}.sidebar-projects-add{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;transition:color .15s,background-color .15s;padding:0;flex-shrink:0}.sidebar-projects-add:hover{color:#7c3aed;background-color:#ede9fe}.sidebar-projects-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sidebar-projects-list::-webkit-scrollbar{width:4px}.sidebar-projects-list::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:2px}.sidebar-projects-empty{font-size:12px;color:#c4c9d4;padding:4px 8px}.sidebar-project-item{position:relative;display:flex;align-items:center;border-radius:6px;padding:0 4px 0 12px;height:30px;flex-shrink:0}.sidebar-project-item:hover{background-color:#f3f4f6}.sidebar-project-item.active{background-color:#ede9fe}.sidebar-project-name{flex:1;min-width:0;background:none;border:none;text-align:left;font-size:13px;color:#4b5563;cursor:pointer;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-project-name:hover{color:#7c3aed}.sidebar-project-name.active{color:#7c3aed;font-weight:600}.sidebar-project-more{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;opacity:0;transition:opacity .15s,color .15s;padding:0}.sidebar-project-item:hover .sidebar-project-more,.sidebar-project-item.menu-open .sidebar-project-more{opacity:1}.sidebar-project-more:hover{color:#7c3aed;background-color:#ede9fe}.sidebar-project-menu{top:calc(100% + 2px);min-width:110px}.sidebar-project-rename-input{flex:1;min-width:0;height:24px;padding:0 6px;font-size:13px;color:#1f2937;border:1px solid #7c3aed;border-radius:4px;outline:none;background:#fff}.sidebar-collapsed .sidebar-projects{display:none}.content{flex:1;margin-left:200px;width:calc(100% - 200px);height:100vh;display:flex;flex-direction:column;transition:margin-left .3s ease,width .3s ease}.sidebar-collapsed~.content{margin-left:0;width:100%}.content.content-full-width{margin-left:0;width:100%}.content-header{padding:0 12px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;min-height:var(--topbar-min-h, 60px)}.content-header:has(.sidebar-expand-btn){justify-content:flex-start;gap:12px}.header-title>.sidebar-expand-btn,.content-header>.sidebar-expand-btn{align-self:center}.content-header h2{font-size:16px;font-weight:600;color:#2d3748;margin:0}.header-title-desc{font-size:12px;line-height:16px;color:#6b7280;margin-top:2px}.header-title-block{display:flex;flex-direction:column;min-width:0}.content-header .header-greeting h1{font-size:20px;font-weight:700;color:#1f2937;margin-bottom:4px}.content-header .header-greeting p{font-size:14px;color:#6b7280;margin:0}.content-header .header-actions{display:flex;align-items:center;gap:8px}.content-header .action-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;font-size:13px;color:#4b5563;transition:all .2s;white-space:nowrap}.content-header .action-btn svg{width:16px;height:16px;flex-shrink:0}.content-header .action-btn.focus-btn{padding:12px 24px;height:44px;min-width:100px}.content-header .action-btn.notification-btn,.content-header .action-btn.settings-btn{padding:10px;min-width:40px;height:40px}.content-header .action-btn:hover{background-color:#f3f4f6;border-color:#d1d5db}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;font-size:13px;color:#4b5563;transition:all .2s;white-space:nowrap;height:40px;box-sizing:border-box}.icon-btn:hover{background-color:#f3f4f6;border-color:#d1d5db}.icon-btn svg{width:16px;height:16px;flex-shrink:0}.icon-btn-icon{display:flex;align-items:center;justify-content:center}.icon-btn-text{display:inline-block}.icon-btn.icon-only{padding:10px;min-width:40px}.icon-btn-wrapper{position:relative;display:inline-flex}.icon-btn-with-tooltip{position:relative}.icon-btn-tooltip{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);padding:6px 12px;background-color:#374151;color:#fff;font-size:12px;border-radius:6px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility .2s;z-index:9999}.icon-btn-tooltip.visible{opacity:1;visibility:visible}.icon-btn-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:#374151}.header-title{display:flex;align-items:center;gap:6px;flex-shrink:0}.editable-project-title{font-size:inherit;font-weight:inherit;color:inherit;background:#fff;border:1px solid #7c3aed;border-radius:6px;padding:2px 8px;outline:none;width:300px;max-width:100%}.editable-project-title-display{cursor:pointer;padding:2px 8px;border-radius:6px;transition:background .2s;margin:0}.editable-project-title-display:hover{background:#7c3aed14}.project-plan-stats{display:flex;flex-wrap:wrap;align-items:center;gap:4px 28px;margin-top:6px;font-size:12px;font-weight:400;color:#6b7280;line-height:1.4}.project-plan-stats span{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.project-plan-stats strong{font-weight:600;color:#374151;font-variant-numeric:tabular-nums}.header-center{position:absolute;left:50%;transform:translate(-50%);display:flex;justify-content:center}.nav-buttons{display:flex;align-items:center;gap:8px;flex-shrink:0}.total-hours{font-size:13px;color:#4f46e5;background:linear-gradient(135deg,#eef2ff,#e0e7ff);padding:4px 12px;border-radius:6px;font-weight:500}.home-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;transition:background-color .2s;display:flex;align-items:center;justify-content:center;color:#4b5563}.home-btn:hover{background-color:#f3f4f6}.team-count-btn{padding:6px 12px;background-color:#f3f4f6;color:#374151;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.team-count-btn:hover{background-color:#e5e7eb;border-color:#d1d5db}.header-actions{display:flex;gap:12px;align-items:center}.stepper-wrapper{display:flex;align-items:center;justify-content:center;gap:24px}.stepper{display:flex;align-items:center;justify-content:center;gap:0}.stepper-item{display:flex;align-items:center}.stepper-step{display:flex;align-items:center;gap:8px;padding:8px 16px;border:none;background:none;color:#9ca3af;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border-radius:6px}.stepper-step:hover:not(.disabled){color:#4f46e5}.stepper-step.active{color:#4f46e5}.stepper-step.disabled{cursor:not-allowed;opacity:.6}.step-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background-color:#e5e7eb;color:#6b7280;font-size:12px;font-weight:600;transition:all .2s}.stepper-step.active .step-number{background-color:#4f46e5;color:#fff}.step-label{white-space:nowrap}.stepper-line{width:40px;height:2px;background-color:#e5e7eb;margin:0 4px;transition:background-color .2s}.stepper-line.completed{background-color:#4f46e5}.stepper-nav-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #e5e7eb;background-color:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s}.stepper-nav-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#d1d5db}.stepper-nav-btn:disabled{opacity:.5;cursor:not-allowed}.stepper-nav-btn.next{background-color:#4f46e5;color:#fff;border-color:#4f46e5}.stepper-nav-btn.next:hover:not(:disabled){background-color:#4338ca;border-color:#4338ca}.content-body{flex:1;padding:0;overflow-y:auto;width:100%}.content-body.ai-chat-body{padding:0;overflow:hidden}.dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:30px}.card{background-color:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.card-title{font-size:14px;color:#718096;margin-bottom:8px}.card-value{font-size:28px;font-weight:700;color:#2d3748}.card-subtitle{font-size:12px;color:#48bb78;margin-top:4px}.table-container{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}table{width:100%;border-collapse:collapse}thead{background-color:#f7fafc}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid #e2e8f0;font-size:14px}th{font-weight:600;color:#4a5568}td{color:#2d3748}tbody tr:hover{background-color:#f7fafc}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s}.btn-primary{background-color:#3182ce;color:#fff}.btn-primary:hover{background-color:#2c5282}.btn-secondary{background-color:#e2e8f0;color:#4a5568}.btn-secondary:hover{background-color:#cbd5e0}.btn-success{background-color:#48bb78;color:#fff}.btn-success:hover{background-color:#38a169}.btn-danger{background-color:#fc8181;color:#fff}.btn-danger:hover{background-color:#f56565}.task-form{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;color:#4a5568;margin-bottom:8px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:4px;font-size:14px;color:#2d3748;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3182ce}.form-group textarea{min-height:100px;resize:vertical}.form-actions{display:flex;gap:12px;margin-top:24px}.progress-bar{height:6px;background-color:#e2e8f0;border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;transition:width .3s}.progress-fill.completed{background-color:#48bb78}.progress-fill.in-progress{background-color:#3182ce}.progress-fill.pending{background-color:#ecc94b}.status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.status-badge.completed{background-color:#c6f6d5;color:#22543d}.status-badge.in-progress{background-color:#bee3f8;color:#1e3a5f}.status-badge.pending{background-color:#fef5e7;color:#744210}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;padding:24px;width:90%;max-width:500px;box-shadow:0 10px 25px #00000026}.modal-content.small-modal{max-width:360px}.member-list .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent;display:block;z-index:1000;cursor:default}.member-list .modal-overlay.centered-modal-overlay{background-color:#00000080;display:flex;align-items:center;justify-content:center}.member-list .modal-content.centered-modal-content{position:static;transform:none;margin-left:0;width:90%;max-width:400px}.member-list .modal-content{position:fixed;left:280px;top:50%;transform:translateY(-50%);margin-left:8px;width:320px;max-width:none}.member-list-toast{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#1f2937;color:#fff;padding:10px 24px;border-radius:8px;font-size:13px;z-index:10001;box-shadow:0 4px 12px #00000026;animation:member-list-toast-in .25s ease}@keyframes member-list-toast-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-title{font-size:16px;font-weight:600;color:#1e293b}.modal-close{width:28px;height:28px;border:none;background-color:transparent;color:#94a3b8;font-size:20px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background-color:#f1f5f9}.modal-body{padding:8px 0}.confirm-head{display:flex;align-items:center;gap:8px}.confirm-head .confirm-icon{flex-shrink:0}.confirm-desc{margin-top:10px;font-size:14px;color:#475569;line-height:1.6}.confirm-desc p{margin:0}.modal-input{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s}.modal-input:focus{border-color:#3b82f6}.modal-footer{display:flex;gap:12px;margin-top:20px;justify-content:flex-end}.form-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px}.form-label{font-weight:500;color:#64748b;white-space:nowrap}.form-value{color:#1e293b;flex:1}.role-search-wrapper{position:relative;flex:1}.role-search-trigger{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:13px;min-height:36px;transition:border-color .2s}.role-search-trigger:hover{border-color:#cbd5e0}.role-search-trigger .placeholder{color:#a0aec0}.role-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:1001;overflow:hidden}.role-search-input{width:100%;padding:8px 12px;border:none;border-bottom:1px solid #e2e8f0;font-size:13px;outline:none;box-sizing:border-box}.role-list{max-height:200px;overflow-y:auto}.role-option{padding:8px 12px;font-size:13px;cursor:pointer;transition:background .15s}.role-option:hover{background:#f7fafc}.role-option.selected{background:#ebf8ff;color:#3182ce}.role-option.create-option{border-top:1px solid #e2e8f0}.role-option.create-option .create-label{color:#a0aec0}.role-option.create-option .create-name{color:#1a202c;font-weight:600;margin-left:4px}.btn-cancel{padding:8px 16px;background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.btn-cancel:hover{background-color:#e5e7eb}.btn-save{padding:8px 16px;background-color:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.btn-save:hover{background-color:#2563eb}.btn-delete{padding:8px 16px;background-color:#ef4444;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s}.delete-task-list{max-height:200px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:6px;margin:12px 0}.delete-task-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #f1f5f9;font-size:13px}.delete-task-item:last-child{border-bottom:none}.delete-task-code{color:#3182ce;font-weight:500;min-width:50px}.delete-task-name{color:#1e293b;flex:1}.delete-task-hours{color:#64748b;white-space:nowrap}.delete-reassign-label{margin-top:12px;margin-bottom:8px;font-size:13px;color:#64748b}.reassign-radio-group{display:flex;flex-direction:column;gap:8px;margin-top:12px}.reassign-radio-item{display:flex;align-items:center;gap:8px;font-size:14px;color:#1e293b;cursor:pointer}.reassign-radio-item input[type=radio]{cursor:pointer}.reassign-select-wrapper{margin-left:24px;margin-top:4px}.modal-content h3{font-size:18px;font-weight:600;margin-bottom:20px}.modal-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-close{font-size:24px;background:none;border:none;cursor:pointer;color:#6b7280;padding:0;line-height:1}.modal-close:hover{color:#374151}.team-modal{max-width:700px}.add-form{background-color:#f9fafb;padding:16px;border-radius:8px;margin-bottom:16px}.form-row{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.modal-content.small-modal .modal-body>.form-row{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important}.form-row.form-row-time-rule{margin-bottom:0!important}.time-rule-controls{display:flex;align-items:center;gap:12px}.time-rule-messages{margin-left:118px;margin-top:4px}.form-row label{font-size:13px;font-weight:500;color:#374151}.form-row input{padding:8px 12px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.team-table-container{overflow-x:auto}.team-table{width:100%;border-collapse:collapse;font-size:14px}.team-table th,.team-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.team-table th{background-color:#f9fafb;font-weight:600;color:#374151}.team-table tbody tr:hover{background-color:#f9fafb}.team-table .edit-input{padding:4px 8px;border:1px solid #3B82F6;border-radius:4px;font-size:14px;width:100%;box-sizing:border-box}.member-info{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.avatar.empty-avatar{background:#e5e7eb;color:#9ca3af}.member-name{font-weight:500;color:#374151}.member-name.empty-name{color:#9ca3af;font-style:italic}.action-buttons{display:flex;gap:8px}.btn{padding:6px 12px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover{background-color:#2563eb}.btn-secondary{background-color:#e5e7eb;color:#374151}.btn-secondary:hover{background-color:#d1d5db}.btn-sm{padding:4px 8px;font-size:12px}.btn-edit{background-color:#f59e0b;color:#fff}.btn-edit:hover{background-color:#d97706}.btn-delete{background-color:#ef4444;color:#fff}.btn-delete:hover{background-color:#dc2626}.resources-container{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.resource-item{display:flex;align-items:center;gap:8px;padding:3px 10px;background-color:#f3f4f6;border-radius:6px}.resource-item .avatar{width:24px;height:24px;font-size:11px}.resource-item .avatar.empty-avatar{background:#e5e7eb;color:#9ca3af}.resource-name{font-size:12px;font-weight:500;color:#374151;margin-right:4px}.resource-name.empty-name{color:#9ca3af;font-style:italic}.resource-hours{font-size:11px;color:#6b7280;background-color:#fff;padding:2px 8px;border-radius:4px;border:1px solid #e5e7eb}.add-resource-btn{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;background-color:#f3f4f6;color:#6b7280;border-radius:4px;cursor:pointer;transition:all .2s;flex-shrink:0;min-width:24px;height:22px;border:none;outline:none}.add-resource-btn svg{width:12px;height:12px}.add-resource-btn:hover{background-color:#e5e7eb;color:#4b5563}.more-badge{font-size:11px;color:#6b7280;background-color:#f3f4f6;padding:2px 6px;border-radius:4px}.more-resources{background:none;padding:0}.more-resources.add-resource-btn{background-color:#f3f4f6;padding:2px 6px}.expanded-resource-row td{padding:6px 4px!important;vertical-align:middle;background-color:#f9fafb}.expanded-resource-row:hover td{background-color:#f3f4f6}.expanded-resource-row .resource-item{margin:0 8px;padding:3px 10px}.expanded-resource-row .resource-hours{display:inline-flex;margin:0 8px;padding:2px 8px}.expanded-resource-row .duration-days{margin:0 8px}.expanded-delete-btn{position:static!important;opacity:1!important;width:28px;height:28px;border:none;background:none;cursor:pointer;padding:0;color:#9ca3af;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.expanded-resource-row .expanded-delete-td{padding:12px 16px!important}.expanded-delete-btn:hover{color:#ef4444;background-color:#fef2f2}.resource-modal{max-width:600px;padding:0}.resource-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f3f4f6;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0}.resource-modal-title{font-size:16px;font-weight:600;color:#1f2937}.resource-modal-close{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;line-height:1}.resource-modal-body{padding:16px}.task-info-section{display:flex;gap:24px;padding:12px;background-color:#f9fafb;border-radius:6px;margin-bottom:16px}.task-info-item{display:flex;align-items:center;gap:8px}.task-info-label{font-size:13px;color:#6b7280}.task-info-value{font-size:13px;font-weight:500;color:#1f2937}.resource-table-section{border:1px solid #e5e7eb;border-radius:6px;overflow:visible;position:relative;z-index:10}.resource-table-body{overflow:visible}.resource-table-header{display:flex;padding:10px 12px;background-color:#f3f4f6;border-bottom:1px solid #e5e7eb;font-size:13px;font-weight:600;color:#374151;gap:16px}.resource-table-row{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid #e5e7eb;gap:16px}.resource-table-row:last-child{border-bottom:none}.col-role{flex:2;display:flex;align-items:center;gap:8px}.col-hours{flex:1.5;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.col-action{width:40px;display:flex;justify-content:center}.role-select{padding:6px 8px;font-size:12px;border:1px solid #d1d5db;border-radius:4px;background:#fff;min-width:120px}.resource-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2)}.resource-avatar.empty{background:#e5e7eb;color:#9ca3af}.member-badge{font-size:12px;color:#374151;padding:2px 8px;background-color:#e0e7ff;border-radius:4px}.member-badge.unassigned{background-color:#f3f4f6;color:#9ca3af;font-style:italic}.hours-input,.minutes-input{width:50px;padding:6px 8px;font-size:12px;border:1px solid #d1d5db;border-radius:4px;text-align:center}.time-separator{font-size:12px;color:#6b7280}.row-error{font-size:12px;color:#dc2626;margin-left:8px;white-space:nowrap;width:100%;padding-top:4px}.row-delete-btn{background:#fee2e2;border:none;color:#dc2626;width:24px;height:24px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.add-row-btn{width:100%;padding:10px;border:none;border-top:1px dashed #d1d5db;background:#fff;color:#6366f1;font-size:13px;cursor:pointer}.add-row-btn:hover{background-color:#f9fafb}.resource-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #e5e7eb;background-color:#f9fafb;border-radius:0 0 8px 8px}.resource-modal-footer .btn-cancel{padding:8px 20px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:13px;cursor:pointer}.resource-modal-footer .btn-save{padding:8px 20px;border:none;border-radius:6px;background:#6366f1;color:#fff;font-size:13px;cursor:pointer}.predecessor-edit-popup-container{position:fixed;z-index:1000}.predecessor-edit-popup{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;box-shadow:0 4px 16px #0000001f;min-width:200px}.predecessor-edit-header{margin-bottom:12px}.predecessor-edit-title{font-size:14px;font-weight:600;color:#2d3748}.predecessor-edit-body{margin-bottom:12px}.predecessor-edit-input{width:100%;padding:8px 10px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;outline:none;box-sizing:border-box}.predecessor-edit-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.predecessor-edit-input.error{border-color:#e53e3e}.predecessor-edit-error{display:block;margin-top:4px;font-size:11px;color:#e53e3e}.predecessor-edit-actions{display:flex;justify-content:flex-end;gap:8px}.predecessor-edit-actions .btn-save{padding:6px 12px;background-color:#4f46e5;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.predecessor-edit-actions .btn-save:hover{background-color:#4338ca}.predecessor-edit-actions .btn-cancel{padding:6px 12px;background-color:#f3f4f6;color:#374151;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.predecessor-edit-actions .btn-cancel:hover{background-color:#e5e7eb}.predecessor-dropdown{max-height:200px;overflow-y:auto;margin-top:8px}.predecessor-dropdown-item{display:flex;align-items:center;padding:6px 10px;cursor:pointer;border-bottom:1px solid #f3f4f6;transition:background-color .15s;font-size:13px}.predecessor-dropdown-item:last-child{border-bottom:none}.predecessor-dropdown-item:hover,.predecessor-dropdown-item.predecessor-item-available.highlighted{background-color:#f0f9ff}.predecessor-item-selected{background-color:#e6f7ff;cursor:pointer}.predecessor-item-selected:hover{background-color:#bae7ff}.predecessor-item-disabled{cursor:not-allowed;opacity:.5;background-color:#fafafa}.predecessor-item-disabled:hover{background-color:#fafafa}.predecessor-item-available{cursor:pointer}.predecessor-task-code{color:#4a5568;margin-right:8px;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}.predecessor-task-name{flex:1;color:#2d3748;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.predecessor-state-label{font-size:11px;color:#a0aec8;margin-left:8px}.predecessor-item-selected .predecessor-task-name{color:#1890ff}.predecessor-no-results{padding:12px;text-align:center;color:#a0aec8;font-size:13px}.custom-select-container{position:relative;width:100%}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;background:#fff;cursor:pointer;min-width:180px}.custom-select-trigger:hover{border-color:#9ca3af}.custom-select-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);margin-right:8px}.custom-select-avatar.empty{background:#e5e7eb;color:#9ca3af}.custom-select-text{flex:1;font-size:12px;color:#374151;text-align:left}.custom-select-placeholder{flex:1;font-size:12px;color:#9ca3af;text-align:left}.custom-select-arrow{font-size:10px;color:#6b7280;margin-left:8px}.custom-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;border:1px solid #e5e7eb;border-radius:4px;background:#fff;box-shadow:0 4px 12px #0000001a;z-index:100;max-height:200px;overflow-y:auto}.custom-select-option{display:flex;align-items:center;padding:8px 12px;cursor:pointer}.custom-select-option:hover{background-color:#f3f4f6}.custom-select-option.selected{background-color:#e0e7ff}.custom-select-option-text{font-size:12px;color:#374151;margin-left:8px}.custom-select-search{width:calc(100% - 16px);margin:8px;padding:6px 8px;border:1px solid #e5e7eb;border-radius:4px;font-size:12px;box-sizing:border-box}.custom-select-search:focus{outline:none;border-color:#6366f1}.custom-select-clear{background:none;border:none;font-size:16px;color:#9ca3af;cursor:pointer;padding:0;line-height:1;margin-left:4px}.custom-select-clear:hover{color:#dc2626}.custom-select-no-results{padding:12px;text-align:center;font-size:12px;color:#9ca3af}.custom-select-option.disabled{opacity:.5;cursor:not-allowed}.custom-select-option.disabled:hover{background-color:transparent}.custom-select-option.highlighted{background-color:#f3f4f6}.custom-select-option.is-selected{background-color:#e0e7ff}.custom-select-option.is-selected:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background-color:#3b82f6;margin-right:8px}.custom-select-check{margin-left:auto;color:#3b82f6}.custom-select-create-role{padding:4px 8px}.create-role-btn{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;border:none;background-color:#f3f4f6;color:#3b82f6;font-size:12px;cursor:pointer;border-radius:4px;transition:background-color .2s;justify-content:flex-start}.create-role-btn:hover{background-color:#e5e7eb}.custom-select-avatar.disabled{background:#d1d5db!important;color:#9ca3af!important}.custom-select-option-text.disabled{color:#9ca3af}.simple-dropdown{position:relative;flex-shrink:0}.simple-dropdown-trigger{display:flex;align-items:center;gap:3px;padding:4px 8px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:12px;color:#6366f1;font-weight:500;height:28px;line-height:1;transition:border-color .15s,box-shadow .15s}.simple-dropdown-trigger:hover{border-color:#a5b4fc}.simple-dropdown-trigger:focus,.simple-dropdown.open .simple-dropdown-trigger{border-color:#6366f1;box-shadow:0 0 0 2px #6366f11f;outline:none}.simple-dropdown-trigger:disabled{opacity:.5;cursor:not-allowed}.simple-dropdown-value{white-space:nowrap}.simple-dropdown-arrow{transition:transform .2s;flex-shrink:0;color:#9ca3af}.simple-dropdown-arrow.open{transform:rotate(180deg)}.simple-dropdown-menu{min-width:70px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f;padding:4px;max-height:200px;overflow-y:auto;animation:simpleDropdownFadeIn .12s ease}@keyframes simpleDropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.simple-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:5px;font-size:12px;color:#374151;cursor:pointer;transition:background .1s;white-space:nowrap}.simple-dropdown-item:hover{background:#f3f4f6}.simple-dropdown-item.selected{background:#eef2ff;color:#6366f1;font-weight:500}.simple-dropdown-check{color:#6366f1;flex-shrink:0}.resource-errors{padding:8px 12px;background-color:#fef2f2;border-top:1px solid #fee2e2}.error-item{font-size:12px;color:#dc2626;margin-bottom:4px}.error-item:last-child{margin-bottom:0}.team-members-header{display:flex;gap:16px;align-items:center;padding:8px 16px;background-color:#f9fafb;border-radius:8px}.team-member-item{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:#fff;border-radius:6px;border:1px solid #e5e7eb}.team-member-item .avatar{width:28px;height:28px;font-size:12px}.team-member-item .avatar.empty-avatar{background:#e5e7eb;color:#9ca3af}.team-member-item .member-details{display:flex;flex-direction:column;gap:2px}.team-member-item .member-name{font-size:13px;font-weight:500;color:#374151}.team-member-item .member-name.empty-name{color:#9ca3af;font-style:italic}.team-member-item .member-role{font-size:11px;color:#6b7280}.search-bar{display:flex;gap:12px;margin-bottom:20px}.search-bar input{flex:1;padding:10px 12px;border:1px solid #e2e8f0;border-radius:4px;font-size:14px}.kanban-board{display:flex;gap:24px;width:100%}.kanban-column{flex:1;min-width:300px;max-width:500px;background-color:#ebf4f8;border-radius:8px;padding:16px 0 16px 16px}.kanban-column-title{font-size:16px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.kanban-column-title span{background-color:#fff;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:500}.kanban-card{background-color:#fff;border-radius:6px;padding:16px;margin-bottom:12px;box-shadow:0 1px 3px #00000014;cursor:pointer;transition:transform .2s,box-shadow .2s}.kanban-card:hover{transform:translateY(-2px);box-shadow:0 3px 8px #0000001f}.kanban-card-title{font-size:14px;font-weight:500;margin-bottom:8px}.kanban-card-meta{font-size:12px;color:#718096}.kanban-card-meta span{margin-right:12px}.page-container{height:100%;display:flex;flex-direction:column;padding:0;margin:0}.clear-data-btn{margin-left:auto;padding:4px 12px;font-size:12px;color:#e53e3e;background-color:#fff5f5;border:1px solid #feb2b2;border-radius:4px;cursor:pointer;transition:all .2s}.clear-data-btn:hover{background-color:#fed7d7;border-color:#fc8181}.time-rule-btn{padding:6px 12px;font-size:13px;color:#4a5568;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:background-color .2s;box-shadow:0 1px 2px #0000000d}.time-rule-btn:hover{background-color:#f7fafc}.time-rule-btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.time-rule-popover{position:absolute;z-index:1000;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:12px;width:max-content}.time-rule-popover-content{display:flex;flex-direction:column;gap:8px}.time-rule-popover-row{display:flex;align-items:center;gap:12px}.time-rule-popover-row>*{flex-shrink:0}.time-rule-confirm-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background-color:#4f46e5;color:#fff;border:none;border-radius:4px;cursor:pointer;flex-shrink:0}.time-rule-confirm-btn:hover{background-color:#4338ca}.icon-cancel-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background-color:#f3f4f6;color:#4b5563;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;flex-shrink:0;transition:all .2s}.icon-cancel-btn:hover{background-color:#e5e7eb}.time-rule-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0006;z-index:2000;display:flex;align-items:center;justify-content:center}.time-rule-confirm-modal{background-color:#fff;border-radius:8px;box-shadow:0 8px 24px #00000029;padding:24px;width:360px;max-width:calc(100vw - 32px)}.about-modal{background-color:#fff;border-radius:8px;box-shadow:0 8px 24px #00000029;padding:24px;width:400px;max-width:calc(100vw - 32px);text-align:center}.about-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:10px}.about-desc{margin:0 0 16px;font-size:13px;line-height:1.7;color:#6b7280}.about-desc a{color:#2563eb;text-decoration:none}.about-desc a:hover{text-decoration:underline}.about-qr-row{display:flex;justify-content:center;gap:28px;margin-bottom:12px}.about-qr-item{display:flex;flex-direction:column;align-items:center;gap:8px}.about-qr-item img{width:140px;height:140px;border:1px solid #e5e7eb;border-radius:8px;padding:6px;background:#fff}.about-qr-item span{font-size:12px;color:#374151}.about-tip{margin:0 0 16px;font-size:12px;color:#9ca3af}.time-rule-confirm-text{margin:0 0 20px;font-size:14px;line-height:1.6;color:#2d3748}.time-rule-confirm-actions{display:flex;justify-content:flex-end;gap:12px}.project-period-modal{width:420px}.period-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:transparent}.period-popover{position:fixed;z-index:2100;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #00000029;padding:16px;width:380px;max-width:calc(100vw - 24px)}.project-period-mode-tabs{display:flex;gap:8px;margin-bottom:14px}.project-period-mode-btn{flex:1;padding:8px 12px;font-size:13px;color:#4a5568;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s}.project-period-mode-btn:hover{background-color:#f7fafc}.project-period-mode-btn.active{background-color:#eef2ff;border-color:#818cf8;color:#4f46e5;font-weight:500}.schedule-btn-group{display:flex;align-items:center;gap:8px}.schedule-mode-btn{padding:4px 12px;font-size:12px;color:#4a5568;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s;white-space:nowrap}.schedule-mode-btn:hover{background-color:#f7fafc}.schedule-mode-btn.active{background-color:#eef2ff;border-color:#818cf8;color:#4f46e5;font-weight:500}.project-period-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0}.project-period-label{font-size:13px;color:#4a5568;flex-shrink:0}.project-period-text{font-size:13px;color:#2d3748;font-weight:500}.project-period-holiday-row{display:flex;align-items:center;padding:6px 0}.project-period-summary{display:flex;align-items:center;background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;margin:8px 0 12px;font-size:13px;color:#718096}.project-period-summary strong{font-weight:600;color:#2d3748;margin-left:4px}.project-period-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:12px;border-top:1px solid #eef2f7}.project-cycle-btn{white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.schedule-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0006;z-index:2200;display:flex;align-items:center;justify-content:center}.schedule-modal{background-color:#fff;border-radius:12px;box-shadow:0 8px 24px #00000029;padding:20px 24px;width:420px;max-width:calc(100vw - 32px)}.schedule-modal-title{margin:0 0 8px;font-size:15px;font-weight:600;color:#2d3748}.schedule-modal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.schedule-modal-row+.schedule-modal-row{border-top:none}.schedule-modal-label{font-size:13px;color:#4a5568;flex-shrink:0}.schedule-link-options{display:flex;align-items:center;gap:16px}.schedule-link-option{display:flex;align-items:center;gap:6px;font-size:13px;color:#2d3748;cursor:pointer;-webkit-user-select:none;user-select:none}.schedule-link-option input[type=radio]{accent-color:#4f46e5;cursor:pointer}.schedule-help{position:relative;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background-color:#e2e8f0;color:#718096;font-size:11px;line-height:1;cursor:default;flex-shrink:0}.schedule-help-tip{display:none;position:absolute;bottom:calc(100% + 8px);right:-6px;width:230px;padding:8px 10px;background-color:#2d3748;color:#fff;font-size:12px;line-height:1.6;border-radius:6px;text-align:left;z-index:10;cursor:default}.schedule-help:hover .schedule-help-tip,.schedule-help:focus .schedule-help-tip{display:block}.schedule-modal .btn-save:disabled{opacity:.5;cursor:not-allowed}.schedule-help-tip-short{width:auto;white-space:nowrap;right:-4px}.schedule-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:12px}.schedule-date-group{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end}.schedule-date-field{display:flex;align-items:center;gap:6px;font-size:12px;color:#718096;flex-shrink:0}.schedule-date-input{padding:4px 6px;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;color:#2d3748;background-color:#fff;width:118px}.schedule-date-input:focus{outline:none;border-color:#4f46e5}.schedule-date-input:disabled{background-color:#f7fafc;color:#a0aec0;cursor:not-allowed}.schedule-modal-hint{margin:0;padding:0;font-size:12px;color:#e53e3e;text-align:right}.schedule-modal-summary{flex-direction:column;align-items:flex-start;gap:2px;margin:0 0 4px;line-height:1.6}.schedule-modal .datepicker-dropdown{z-index:30}.schedule-period-range{display:flex;align-items:center;gap:8px}.schedule-period-text{font-size:13px;color:#2d3748;font-weight:500;white-space:nowrap}.schedule-period-sep{font-size:12px;color:#a0aec0;flex-shrink:0}.clear-data-btn{margin-left:0}.time-rule-input-row{display:flex;align-items:center;gap:12px}.number-stepper{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:4px;overflow:hidden}.stepper-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background-color:#f3f4f6;color:#374151;font-size:16px;cursor:pointer;transition:background-color .2s}.stepper-btn:hover{background-color:#e5e7eb}.stepper-btn:disabled{opacity:.4;cursor:not-allowed}.stepper-btn:disabled:hover{background-color:#f3f4f6}.stepper-input{width:60px;height:32px;text-align:center;border:none;border-left:1px solid #d1d5db;border-right:1px solid #d1d5db;font-size:14px;outline:none;-moz-appearance:textfield}.stepper-input::-webkit-outer-spin-button,.stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.time-unit-wrapper{position:relative}.time-unit-trigger{display:flex;align-items:center;gap:4px;height:34px;padding:0 10px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;color:#374151;background-color:#fff;cursor:pointer;transition:border-color .2s;white-space:nowrap}.time-unit-trigger:hover{border-color:#9ca3af}.time-unit-dropdown{position:absolute;top:100%;left:0;margin-top:4px;min-width:80px;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 16px #0000001a;z-index:1000;overflow:hidden}.time-unit-option{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:14px;color:#374151;cursor:pointer;white-space:nowrap;transition:background-color .2s}.time-unit-option:hover{background-color:#f7fafc}.time-unit-option.selected{color:#3182ce;background-color:#ebf8ff}.time-rule-error{margin-top:0;margin-bottom:0;font-size:12px;color:#e53e3e;line-height:1.4}.time-rule-hint{margin-top:0;margin-bottom:0;font-size:12px;color:#718096;line-height:1.4}.stepper-input.input-error{border-color:#e53e3e}.gantt-toolbar{display:flex;align-items:center;gap:12px;padding:8px 12px;position:sticky;top:0;left:0;z-index:10;background:#fff;width:max-content;min-width:100%}.gantt-toolbar-right{display:flex;align-items:center;gap:8px}.gantt-quick-btns{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.gantt-quick-item{position:relative}.gantt-quick-btn{border:1px solid #e2e8f0;background:#fff;font-size:12px;color:#475569;padding:5px 14px;border-radius:6px;cursor:pointer;font-weight:500;line-height:1;white-space:nowrap;transition:all .15s}.gantt-quick-btn:hover{border-color:#93c5fd;color:#2563eb;background:#f0f7ff}.gantt-quick-btn.active{background:#2563eb;color:#fff;border-color:#2563eb}.gantt-quick-tip{position:fixed;background:#fff;color:#334155;font-size:12px;font-weight:400;line-height:1.6;padding:8px 12px;border-radius:6px;width:max-content;max-width:280px;white-space:normal;z-index:9999;box-shadow:0 4px 16px #0000001f,0 0 0 1px #e2e8f0;pointer-events:none;border:1px solid #e2e8f0}.gantt-settings-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid #e2e8f0;background:#fff;font-size:12px;color:#475569;padding:5px 10px;border-radius:6px;cursor:pointer;font-weight:500;line-height:1;white-space:nowrap;transition:all .15s}.gantt-settings-btn:hover{border-color:#cbd5e1;background:#f8fafc}.gantt-filter-item{position:relative;display:flex;align-items:center;gap:6px;flex-shrink:0}.gantt-filter-item+.gantt-filter-item{margin-left:12px}.gantt-filter-label{color:#6b7280;font-size:12px;white-space:nowrap;flex-shrink:0}.gantt-filter-trigger{display:inline-flex;align-items:center;gap:6px;border:1px solid #e2e8f0;background:#fff;font-size:12px;color:#475569;padding:5px 12px;border-radius:6px;cursor:pointer;font-weight:500;line-height:1;white-space:nowrap;transition:all .15s;height:28px;box-sizing:border-box}.gantt-filter-trigger:hover{border-color:#93c5fd;color:#2563eb;background:#f0f7ff}.gantt-filter-value{color:#1f2937}.gantt-filter-clear{display:none;color:#9ca3af;cursor:pointer;font-size:14px;line-height:1}.gantt-filter-clear:hover{color:#ef4444}.gantt-filter-icon{position:relative;width:14px;height:12px;flex-shrink:0}.gantt-filter-icon .gantt-filter-arrow{position:absolute;top:0;left:0;width:14px;height:12px;display:flex;align-items:center;justify-content:center}.gantt-filter-icon .gantt-filter-clear{position:absolute;top:0;left:0;width:14px;height:12px;align-items:center;justify-content:center}.gantt-filter-trigger.has-filter:hover .gantt-filter-arrow{display:none}.gantt-filter-trigger.has-filter:hover .gantt-filter-clear{display:flex}.gantt-filter-dropdown{position:fixed;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #0000001a;min-width:180px;z-index:10000;padding:4px 0}.gantt-filter-option{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:#374151;cursor:pointer;transition:background .15s}.gantt-filter-option:hover{background:#f3f4f6}.gantt-filter-option.selected{color:#2563eb;background:#eff6ff}.gantt-filter-option input[type=radio],.gantt-filter-option input[type=checkbox]{margin:0;accent-color:#2563eb}.gantt-filter-divider{height:1px;background:#e5e7eb;margin:4px 0}.member-multi-select-trigger{display:flex;align-items:center;gap:6px;border:1px solid #e2e8f0;background:#fff;font-size:12px;color:#475569;padding:4px 8px;border-radius:6px;cursor:pointer;font-weight:500;line-height:1;transition:all .15s;height:28px;box-sizing:border-box;flex:1;min-width:0;max-width:320px}.member-multi-select-trigger:hover{border-color:#93c5fd}.member-multi-select-tags{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0;max-height:26px;overflow:hidden;position:relative}.member-multi-select-placeholder{color:#9ca3af;line-height:22px}.member-multi-tag-item{position:relative;flex-shrink:0}.member-multi-tag-item .avatar{width:20px;height:20px;font-size:9px}.member-multi-tag-item .resource-name{font-size:12px;margin-right:0;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-multi-tag-item .delete-resource-btn{opacity:0;transition:opacity .2s}.member-multi-tag-item:hover .delete-resource-btn{opacity:1}.member-multi-overflow{display:inline-flex;align-items:center;background:#e5e7eb;color:#6b7280;padding:2px 8px;border-radius:4px;font-size:11px;white-space:nowrap;flex-shrink:0}.member-multi-select-arrow{color:#9ca3af;font-size:10px;flex-shrink:0}.gantt-filter-item.member-filter-item{flex:1;min-width:150px;max-width:400px}.member-multi-dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 4px 12px #0000001a;max-height:320px;overflow-y:auto;padding:4px 0}.member-multi-all{padding-left:12px;justify-content:flex-start}.member-multi-all .custom-select-option-text{margin-left:8px}.gantt-date-range-dropdown{min-width:320px;padding:12px}.gantt-date-range-quick-btns{display:flex;gap:8px;margin-bottom:12px}.gantt-date-range-quick-btn{padding:6px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:12px;color:#475569;cursor:pointer;transition:all .15s}.gantt-date-range-quick-btn:hover{border-color:#93c5fd;color:#2563eb;background:#f0f7ff}.gantt-date-range-quick-btn.active{background:#2563eb;color:#fff;border-color:#2563eb}.gantt-date-range-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:12px}.gantt-date-range-calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.gantt-date-range-calendar-header span{text-align:center;font-size:11px;color:#9ca3af;padding:4px 0}.date-range-filter-dropdown{min-width:320px;padding:12px}.date-range-filter-quick-btns{display:flex;gap:8px;margin-bottom:12px}.date-range-filter-quick-btn{padding:6px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:12px;color:#475569;cursor:pointer;transition:all .15s}.date-range-filter-quick-btn:hover{border-color:#93c5fd;color:#2563eb;background:#f0f7ff}.date-range-filter-pickers{display:flex;flex-direction:column;gap:12px}.date-range-filter-row{display:flex;align-items:center;gap:12px}.date-range-filter-label{font-size:12px;color:#6b7280;white-space:nowrap;min-width:60px}.date-range-filter-footer{display:flex;justify-content:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.date-range-filter-confirm{padding:6px 16px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:all .15s}.date-range-filter-confirm:hover{background:#1d4ed8}.date-range-filter-confirm:disabled{background:#9ca3af;cursor:not-allowed}.date-range-calendar-dropdown{padding:12px;min-width:280px}.date-range-calendar-quick-btns{display:flex;gap:8px;margin-bottom:12px}.date-range-calendar-quick-btn{padding:6px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:12px;color:#475569;cursor:pointer;transition:all .15s}.date-range-calendar-quick-btn:hover{border-color:#93c5fd;color:#2563eb;background:#f0f7ff}.date-range-calendar-hint{margin-top:12px;padding-top:8px;border-top:1px solid #e5e7eb;font-size:12px;color:#6b7280;text-align:center}.datepicker-days .datepicker-day.in-range{background:#eff6ff;border-radius:0}.gantt-date-calendar-day{text-align:center;padding:6px 4px;font-size:12px;border-radius:4px;cursor:pointer;color:#374151;transition:all .15s}.gantt-date-calendar-day:hover{background:#f3f4f6}.gantt-date-calendar-day.other-month{color:#d1d5db}.gantt-date-calendar-day.in-range{background:#eff6ff}.gantt-date-calendar-day.range-start{background:#2563eb;color:#fff;border-radius:4px 0 0 4px}.gantt-date-calendar-day.range-end{background:#2563eb;color:#fff;border-radius:0 4px 4px 0}.gantt-date-calendar-day.today{border:1px solid #2563eb}.gantt-date-calendar-day.disabled{color:#d1d5db;cursor:not-allowed;background:#f9fafb}.gantt-date-calendar-day.disabled:hover{background:#f9fafb}.gantt-date-range-footer{display:flex;justify-content:space-between;align-items:center}.gantt-date-range-display{font-size:12px;color:#6b7280}.gantt-date-range-confirm{padding:6px 16px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer}.gantt-date-range-confirm:hover{background:#1d4ed8}.network-top-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;flex-shrink:0}.member-filter-select-wrap{display:inline-flex;align-items:center}.member-filter-select-wrap .custom-select-container{min-width:auto}.member-filter-select-wrap .custom-select-dropdown{left:0;right:auto;min-width:240px}.member-filter-select-wrap .custom-select-trigger{border:1px solid #e2e8f0;padding:5px 10px;background:#fff;border-radius:6px;min-width:0;gap:4px;font-size:12px;font-weight:500;line-height:1;color:#475569;cursor:pointer;transition:all .15s}.member-filter-select-wrap .custom-select-trigger:hover{border-color:#cbd5e1;background:#f8fafc}.member-filter-trigger{display:inline-flex;align-items:center;gap:4px}.member-filter-trigger svg{flex-shrink:0}.member-filter-label{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-filter-clear{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;color:#94a3b8;opacity:0;transition:opacity .15s;flex-shrink:0;margin-left:2px}.member-filter-clear:hover{color:#475569;background:#e2e8f0}.member-filter-select-wrap:hover .member-filter-clear{opacity:1}.member-avatar-placeholder{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e2e8f0;color:#94a3b8;font-size:10px;font-weight:600;flex-shrink:0}.member-avatar-small{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:600;flex-shrink:0}.member-role-tag{font-size:11px;color:#94a3b8;margin-left:auto}.wbs-keyboard-hints{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background-color:#fff}.wbs-keyboard-hints .hint{font-size:12px;color:#718096;background-color:#f7fafc;padding:4px 10px;border-radius:4px}.wbs-content{display:flex;flex:1;overflow:hidden}.wbs-left{width:280px;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden;background-color:#fff}.wbs-right{flex:1;overflow:auto;display:flex;flex-direction:column}.wbs-right>.wbs-keyboard-hints{flex-shrink:0;padding:8px 12px}.wbs-table-container{flex:1;overflow-y:auto;background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.wbs-table{width:100%;border-collapse:collapse}.wbs-table thead{position:sticky;top:0;background-color:#f7fafc;z-index:10}.wbs-table th,.wbs-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e2e8f0;font-size:14px}.wbs-table th{font-weight:600;color:#4a5568}.wbs-row{cursor:pointer;transition:background-color .15s}.wbs-row:hover{background-color:#f7fafc}.wbs-row.selected{background-color:#ebf8ff}.wbs-row:focus{outline:none}.wbs-row.locked{background-color:#f8fafb}.wbs-row.locked .task-name{cursor:default;pointer-events:none;color:#94a3b8}.wbs-row .milestone-btn,.wbs-row .action-btn.description-edit-btn,.wbs-row .connect-btn{opacity:0;pointer-events:none;transition:opacity .15s}.wbs-row:hover:not(.locked) .milestone-btn,.wbs-row:hover:not(.locked) .action-btn.description-edit-btn,.wbs-row:hover:not(.locked) .connect-btn{opacity:1;pointer-events:auto}.wbs-row.locked .milestone-btn,.wbs-row.locked .action-btn,.wbs-row.locked .connect-btn,.wbs-row.locked .predecessor-tag,.wbs-row.locked .predecessor-tag .delete-resource-btn,.wbs-row.locked .more-resources.add-resource-btn,.wbs-row.locked .resource-item.clickable-resource,.wbs-row.locked .resource-hours,.wbs-row.locked .delete-resource-btn,.wbs-row.locked .expanded-delete-btn,.wbs-row.locked .duration-days,.wbs-row.locked .deliverable-chip-remove,.wbs-row.locked .deliverable-add-btn,.wbs-row.locked .delete-btn{pointer-events:none;opacity:.4;cursor:not-allowed}.wbs-row.locked .milestone-btn,.wbs-row.locked .action-btn.description-edit-btn,.wbs-row.locked .connect-btn{opacity:0;pointer-events:none}.wbs-row .milestone-btn.milestone-active{opacity:1;pointer-events:auto}.wbs-row.locked .milestone-btn.milestone-active{opacity:1;pointer-events:none;cursor:default}.wbs-row.locked .collapse-placeholder.completed-dot{flex-shrink:0}.wbs-cell-content{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative;min-height:32px}.collapse-btn{background:none;border:none;cursor:pointer;font-size:12px;color:#718096;padding:2px;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.collapse-btn:hover{background-color:#e2e8f0;border-radius:4px}.collapse-placeholder{width:20px;text-align:center;color:#a0aec0;font-size:10px}.gantt-task-info .collapse-placeholder{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.gantt-task-info .collapse-placeholder.completed-dot,.gantt-task-info .collapse-placeholder.status-dot{flex-shrink:0;transform:scale(.65)}.wbs-row .collapse-placeholder.status-dot{flex-shrink:0}.gantt-task-info .task-code{display:inline-block;min-width:32px;text-align:left}.task-container{display:flex;flex-wrap:wrap;align-items:center;position:relative;padding:4px 8px;border-radius:4px;transition:all .15s;flex:1;min-width:0}.task-content{flex:1 1 100%;min-width:0;display:flex;align-items:center;gap:4px}.task-content .task-name{flex:0 1 auto;min-width:0;color:#2d3748}.task-code{font-weight:600;color:#3182ce;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:13px;min-width:50px;display:inline-block}.anchor-dot{width:8px;height:8px;border-radius:50%;background-color:#90cdf4;cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);transition:all .15s;border:none;outline:none}.anchor-dot:hover{background-color:#3182ce;transform:translateY(-50%) scale(1.2)}.anchor-dot.connecting{background-color:#48bb78;animation:pulse 1s infinite}.anchor-dot.in{left:-15px}.anchor-dot.out{right:-15px}@keyframes pulse{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.3)}}.wbs-edit-input{flex:1;min-width:100px;padding:4px 8px;border:1px solid #cbd5e0;border-radius:4px;font-size:14px;outline:none;background:#fff;color:#2d3748;transition:border-color .15s}.wbs-edit-input:focus{border-color:#90cdf4;box-shadow:0 0 0 3px #90cdf433}.wbs-edit-input.error{color:#e53e3e}.wbs-edit-input.error:focus{color:#e53e3e}.edit-container{display:flex;flex-direction:column;gap:4px}.error-hint{font-size:12px;color:#e53e3e}.dependency-anchors{display:flex;gap:4px}.task-actions{display:flex;align-items:center;gap:4px;opacity:0;visibility:hidden;transition:all .2s;margin-left:8px}.task-actions.visible{opacity:1;visibility:visible}.action-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#718096;transition:all .15s;display:flex;align-items:center;justify-content:center}.action-btn:hover{background-color:#ebf8ff;color:#3182ce}.action-btn.edit-btn:hover{color:#38a169;background-color:#f0fff4}.action-btn.delete-btn:hover{color:#e53e3e;background-color:#fff5f5}.action-btn.connect-btn:hover{color:#d69e2e;background-color:#fffaf0}.detail-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:1000;display:flex;justify-content:flex-end}.detail-panel{width:400px;background-color:#fff;height:100%;box-shadow:-4px 0 12px #0000001a;display:flex;flex-direction:column}.detail-panel-header{padding:16px 20px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.detail-panel-header h3{margin:0;font-size:16px;font-weight:600;color:#2d3748}.detail-panel-close{background:none;border:none;cursor:pointer;color:#718096;padding:4px;border-radius:4px;transition:all .15s}.detail-panel-close:hover{background-color:#f7fafc;color:#2d3748}.detail-panel-body{flex:1;padding:20px;overflow-y:auto}.detail-section{margin-bottom:20px}.detail-section label{display:block;font-size:13px;font-weight:500;color:#4a5568;margin-bottom:8px}.detail-textarea{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;resize:vertical;font-family:inherit;transition:border-color .15s}.detail-textarea:focus{outline:none;border-color:#90cdf4}.detail-select{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;background-color:#fff;cursor:pointer;transition:border-color .15s}.detail-select:focus{outline:none;border-color:#90cdf4}.detail-value{display:inline-block;padding:6px 12px;background-color:#f7fafc;border-radius:4px;font-size:14px;color:#2d3748}.detail-predecessors{display:flex;flex-wrap:wrap;gap:8px}.anchor{width:24px;height:24px;border-radius:50%;border:2px solid #a0aec0;background-color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:#a0aec0;transition:all .15s}.anchor:hover{border-color:#3182ce;color:#3182ce;background-color:#ebf8ff}.anchor.connecting{border-color:#48bb78;color:#48bb78;background-color:#c6f6d5}.dependencies-list{display:flex;gap:6px;margin-left:8px}.dependency-tag{display:flex;align-items:center;gap:4px;background-color:#e6fffa;color:#319795;padding:2px 8px;border-radius:4px;font-size:12px}.status-select{padding:4px 8px;border:1px solid #e2e8f0;border-radius:4px;font-size:12px;background-color:#fff;cursor:pointer;outline:none}.status-select:focus{border-color:#3182ce}.task-type-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.task-type-executing{background-color:#e6f4ea;color:#2b8a3e;border:1px solid #c6e6cf}.task-type-waiting{background-color:#fff4e6;color:#c05621;border:1px solid #f5d6ae}.task-type-following{background-color:#e7f1fb;color:#2b6cb0;border:1px solid #c3d9f0}.task-type-milestone{background-color:#fef3c7;color:#b45309;border:1px solid #fcd34d}.cell-task-type{text-align:center}.description-edit-btn{flex-shrink:0;padding:2px;color:#a0aec0;background:transparent;border:none;cursor:pointer;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;margin-left:4px}.description-edit-btn:hover{color:#3182ce;background:#edf2f7}.task-description-preview{flex-basis:100%;width:100%;margin-top:2px;font-size:12px;color:#718096;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word}.char-counter{margin-top:2px;font-size:11px;color:#a0aec0;text-align:right}.detail-char-counter{margin-top:4px}.description-edit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1100;display:flex;align-items:center;justify-content:center}.description-edit-modal{width:640px;max-width:90vw;max-height:80vh;background:#fff;border-radius:8px;box-shadow:0 12px 32px #0003;display:flex;flex-direction:column;overflow:hidden}.description-edit-header{padding:16px 20px;display:flex;flex-direction:column;gap:2px}.description-edit-header h3{margin:0;font-size:16px;color:#1a202c}.description-edit-task-name{font-size:12px;color:#718096}.description-edit-body{padding:16px 20px;flex:1;overflow-y:auto}.description-edit-textarea{width:100%;box-sizing:border-box;border:none;border-top:1px solid #e2e8f0;padding:8px 10px;font-size:13px;line-height:1.5;resize:vertical;min-height:160px;background:#fff;outline:none;font-family:inherit;color:#2d3748}.description-edit-counter{margin-top:6px}.description-edit-actions{padding:12px 20px;display:flex;justify-content:flex-end;gap:8px}.cell-deliverables{padding:6px 8px}.deliverables-container{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.deliverable-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 8px;background:#e6f0fa;color:#2b6cb0;border-radius:10px;font-size:12px;line-height:1.4}.deliverable-chip-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deliverable-chip-remove{border:none;background:transparent;color:#2b6cb0;cursor:pointer;font-size:14px;line-height:1;padding:0;width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.deliverable-chip-remove:hover{background:#c9dcfa}.deliverable-add-btn{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;background-color:#f3f4f6;color:#6b7280;border-radius:4px;cursor:pointer;transition:all .2s;flex-shrink:0;min-width:24px;height:22px;border:none;outline:none}.deliverable-add-btn svg{width:12px;height:12px}.deliverable-add-btn:hover{background-color:#e5e7eb;color:#4b5563}.deliverables-picker{width:240px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:1001;overflow:hidden}.deliverables-picker-search input{width:100%;padding:8px 12px;border:none;border-bottom:1px solid #e2e8f0;font-size:13px;outline:none;box-sizing:border-box}.deliverables-picker-list{max-height:200px;overflow-y:auto}.deliverables-picker-option{padding:8px 12px;font-size:13px;color:#2d3748;cursor:pointer;transition:background .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deliverables-picker-option:hover{background:#f7fafc}.deliverables-picker-option.create-option{border-top:1px solid #e2e8f0}.deliverables-picker-option.create-option .create-label{color:#a0aec0}.deliverables-picker-option.create-option .create-name{color:#1a202c;font-weight:600;margin-left:4px}.deliverables-picker-empty{padding:12px;text-align:center;color:#a0aec0;font-size:13px}.detail-deliverable-input{flex:1;min-width:0;padding:4px 8px;border:1px solid #e2e8f0;border-radius:4px;font-size:12px;outline:none}.detail-deliverable-input:focus{border-color:#3182ce}.btn-add-deliverable{padding:4px 10px;border:none;background:#3182ce;color:#fff;font-size:12px;border-radius:4px;cursor:pointer;white-space:nowrap}.btn-add-deliverable:hover{background:#2c5282}.deliverables-empty-hint{font-size:12px;color:#a0aec0;padding:2px 0}.deliverable-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 6px 2px 8px;background:#e6f0fa;color:#2b6cb0;border-radius:12px;font-size:12px;line-height:1.4}.tag-remove-btn{border:none;background:transparent;color:#2b6cb0;cursor:pointer;font-size:14px;line-height:1;padding:0;width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.tag-remove-btn:hover{background:#c9dcfa}.detail-deliverables-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.detail-deliverables-add-row{display:flex;gap:6px;align-items:center}.delete-btn{width:28px;height:28px;border:none;border-radius:4px;background-color:#fff;color:#a0aec0;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.delete-btn:hover{background-color:#fed7d7;color:#c53030}.connection-hint{position:fixed;bottom:24px;left:calc(50% - 260px);transform:translate(-50%);background-color:#2d3748;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;box-shadow:0 4px 12px #0003;z-index:1000}.predecessors-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.predecessor-tag{position:relative;display:inline-flex;align-items:center;gap:4px;background-color:#fef5e7;color:#d35400;padding:2px 8px;border-radius:4px;font-size:12px;border:1px solid #fcd34d;cursor:pointer}.predecessor-tag:hover{background-color:#fde8c8}.no-predecessors{color:#a0aec0;font-size:14px}.wbs-row{cursor:grab;position:relative}.wbs-row.dragging{opacity:.5;cursor:grabbing}.wbs-row.drag-over{background-color:#3182ce0d}.drag-indicator{position:absolute;left:0;right:0;height:4px;background-color:#3182ce;z-index:10;transition:all .15s ease;border-radius:2px;box-shadow:0 0 4px #3182ce80}.drag-indicator.top{top:0}.drag-indicator.bottom{bottom:0}.drag-indicator.child{bottom:0;background-color:#38a169;box-shadow:0 0 4px #38a16980}.drag-indicator-wrapper{position:relative;background-color:#3182ce1a;border-radius:4px}.network-diagram-btn{padding:8px 16px;background-color:#3182ce;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.network-diagram-btn:hover{background-color:#2c5282}.team-members-btn{padding:8px 16px;background-color:#38a169;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-left:8px}.team-members-btn:hover{background-color:#2f855a}.schedule-btn{padding:8px 16px;background-color:#9333ea;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-left:8px}.schedule-btn:hover{background-color:#7e22ce}.schedule-reschedule-btn{padding:8px 16px;background-color:#64748b;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-left:12px}.schedule-reschedule-btn:hover{background-color:#475569}.gantt-settings-popover{position:absolute;z-index:1000;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 14px #0000001f;padding:14px;min-width:280px}.gantt-settings-title{font-size:13px;font-weight:600;color:#1e293b;margin-bottom:12px}.gantt-settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.gantt-settings-row:last-child{margin-bottom:0}.gantt-settings-label{font-size:13px;color:#475569;white-space:nowrap}.gantt-level-select{position:relative}.gantt-level-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:100px;padding:6px 10px;font-size:13px;color:#334155;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.gantt-level-trigger:hover{border-color:#94a3b8}.gantt-level-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:1001;min-width:100%;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 14px #0000001f;padding:4px;max-height:240px;overflow-y:auto}.gantt-level-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 10px;font-size:13px;color:#334155;border-radius:4px;cursor:pointer;white-space:nowrap}.gantt-level-option:hover{background-color:#f1f5f9}.gantt-level-option.selected{color:#2563eb;font-weight:500}.network-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.network-modal{background-color:#fff;border-radius:8px;width:90%;max-width:1200px;max-height:90vh;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column}.network-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #e2e8f0}.network-modal-header h3{font-size:18px;font-weight:600;color:#2d3748}.network-modal-close{width:32px;height:32px;border:none;border-radius:4px;background-color:#f7fafc;color:#4a5568;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.network-modal-close:hover{background-color:#fed7d7;color:#c53030}.network-modal-content{flex:1;padding:24px;overflow:auto}.network-svg{display:block;margin:0 auto;background-color:#f7fafc;border-radius:8px}.reactflow-wrapper{position:relative;width:100%;height:calc(100vh - 120px);background-color:#f7fafc;border-radius:8px}.page-content{flex:1;overflow-y:auto;background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.relayout-btn{padding:6px 12px;background-color:#f3f4f6;color:#374151;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.relayout-btn:hover{background-color:#e5e7eb;border-color:#d1d5db}.duration-edit-container{display:flex;align-items:center;gap:4px}.duration-edit-container input{width:40px;min-width:unset;height:28px;box-sizing:border-box;text-align:center;border:1px solid #d1d5db;border-radius:4px;outline:none;background:#fff;font-size:14px;padding:0 6px;line-height:26px;transition:all .2s ease}.duration-edit-container input:focus{border-color:#3b82f6;box-shadow:inset 0 0 0 1px #3b82f6}.duration-edit-container input::-webkit-outer-spin-button,.duration-edit-container input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.duration-edit-container input[type=number]{-moz-appearance:textfield}.duration-separator{font-size:12px;color:#6b7280}.duration-tag{display:inline-block;font-size:13px;font-weight:500;color:#374151}.duration-tag.parent{color:#6366f1;color:#4338ca;font-weight:500}.duration-days{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;padding:3px 10px;border-radius:6px;transition:all .2s;background-color:#f3f4f6}.duration-days:hover{background-color:#e5e7eb}.duration-days-text{font-size:13px;color:#6b7280}.duration-custom-badge{display:inline-block;margin-left:4px;font-size:11px;color:#9ca3af;font-weight:400}.duration-edit-popup{position:fixed;z-index:1000}.duration-edit-content{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;box-shadow:0 4px 16px #0000001f;min-width:200px}.duration-edit-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.duration-edit-title{font-size:14px;font-weight:600;color:#2d3748}.duration-auto-calc-text{padding:0;background:none;border:none;font-size:13px;color:#2563eb;cursor:pointer;transition:color .2s}.duration-auto-calc-text:hover{color:#1d4ed8;text-decoration:underline}.duration-edit-body{display:flex;align-items:center;gap:8px;margin-bottom:12px}.duration-edit-input{flex:1;padding:8px 10px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;outline:none}.duration-edit-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.duration-edit-unit{font-size:14px;color:#6b7280}.end-rule-trigger{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 0;background:none;border:none;cursor:pointer;font-size:14px;color:#1f2937;border-radius:6px}.end-rule-trigger:hover{color:#2563eb}.end-rule-arrow{color:#9ca3af;transition:transform .15s ease}.end-rule-trigger:hover .end-rule-arrow{color:#2563eb}.end-rule-trigger.is-open .end-rule-arrow{transform:rotate(180deg)}.end-rule-dropdown{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:4px;box-shadow:0 4px 16px #0000001f;min-width:210px}.end-rule-option{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer}.end-rule-option:hover{background-color:#f3f4f6}.end-rule-option-value{font-size:13px;font-weight:600;color:#1f2937;white-space:nowrap}.end-rule-option-desc{font-size:11px;color:#9ca3af;margin-left:auto;white-space:nowrap}.end-rule-option-active .end-rule-option-desc{color:#2563eb}.end-rule-option-check{color:#2563eb;flex-shrink:0}.duration-edit-actions{display:flex;justify-content:flex-end;gap:8px}.duration-edit-footer .time-rule-confirm-btn{width:28px;height:28px;padding:0}.duration-edit-actions .btn-save{padding:6px 12px;background-color:#4f46e5;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.duration-edit-actions .btn-save:hover{background-color:#4338ca}.duration-edit-actions .btn-cancel{padding:6px 12px;background-color:#f3f4f6;color:#374151;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.duration-edit-actions .btn-cancel:hover{background-color:#e5e7eb}.duration-edit-actions .time-rule-confirm-btn{width:28px;height:28px;padding:0}.network-legend{display:flex;justify-content:center;gap:16px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-line{width:24px;height:2px;border-radius:1px}.legend-line.hierarchy{background-color:#d1d5db}.legend-line.dependency{background-color:#ef4444}.legend-color{width:16px;height:16px;border-radius:4px}.project-schedule{height:100%;display:flex;flex-direction:column;background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.date-selector{display:flex;align-items:center;gap:12px}.date-selector label{font-size:14px;font-weight:500;color:#475569}.date-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#1e293b}.date-input:focus{outline:none;border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a}.holiday-switch{display:flex;align-items:center;gap:8px;cursor:pointer}.holiday-switch input{display:none}.switch-slider{width:36px;height:20px;background-color:#cbd5e1;border-radius:10px;position:relative;transition:background-color .3s}.switch-slider:before{content:"";position:absolute;width:16px;height:16px;background-color:#fff;border-radius:50%;top:2px;left:2px;transition:transform .3s;box-shadow:0 1px 3px #0003}.holiday-switch input:checked+.switch-slider{background-color:#3b82f6}.holiday-switch input:checked+.switch-slider:before{transform:translate(16px)}.switch-label{font-size:13px;color:#475569;font-weight:500}.date-info{display:flex;gap:24px}.info-item{font-size:14px;color:#64748b}.info-item strong{color:#1e293b;font-weight:600}.page-content.schedule-content{overflow-y:hidden}.schedule-content{flex:1;display:flex;overflow:hidden;min-height:0}.schedule-left{width:280px;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.left-header{display:flex;padding:12px 16px;background-color:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase}.col-role{width:80px}.col-member{flex:1;display:flex;align-items:center}.col-tasks{width:50px;text-align:center}.col-hours{width:60px;text-align:right}.col-status{width:50px;text-align:center}.member-list{flex:1;overflow-y:auto;padding:8px 0;position:relative}.member-list-header{position:sticky;top:0;background-color:#fff;z-index:10;padding:8px 12px;display:flex;align-items:center;gap:8px}.add-role-btn{display:flex;align-items:center;justify-content:center;gap:4px;flex:1;min-width:0;padding:5px 8px;background-color:#f3f4f6;color:#374151;border:1px dashed #d1d5db;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.add-role-btn:hover{background-color:#e5e7eb}.member-collapse-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background-color:#f3f4f6;color:#64748b;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s}.member-collapse-btn:hover{background-color:#e5e7eb;color:#334155}.role-group{margin-bottom:0}.role-header{display:flex;align-items:center;padding:10px 16px;font-size:13px;font-weight:600;color:#334155;justify-content:space-between;background-color:#f4f6f9}.role-title{display:flex;align-items:center;gap:4px}.role-header-left{display:flex;align-items:center;gap:8px}.role-actions{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .2s}.role-header:hover .role-actions{opacity:1}.action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background-color:transparent;color:#94a3b8;cursor:pointer;border-radius:4px;transition:all .2s}.action-btn:hover{background-color:#e2e8f0;color:#334155}.more-actions{position:relative}.more-actions-menu{position:absolute;right:0;top:100%;margin-top:4px;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;padding:4px 0;min-width:100px;z-index:100}.menu-item{display:block;width:100%;padding:6px 12px;text-align:left;border:none;background-color:transparent;color:#334155;font-size:13px;cursor:pointer;transition:background-color .2s}.menu-item:hover{background-color:#f1f5f9}.menu-item.delete-item{color:#ef4444}.menu-item.delete-item:hover{background-color:#fef2f2}.role-count{font-size:12px;font-weight:400;color:#94a3b8}.member-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid #f1f5f9;transition:background-color .2s}.member-row:hover{background-color:#f8fafc}.member-row.conflict{background-color:#fef2f2}.member-items{list-style:none;padding:0;margin:0}.member-item-wrapper{padding:0;margin:0}.member-item{display:flex;flex-direction:column;padding:10px 16px;border-bottom:1px solid #f1f5f9;transition:background-color .2s;position:relative;cursor:pointer}.member-item:hover{background-color:#f8fafc}.member-item.selected{background-color:#eff6ff}.member-item-top{display:flex;align-items:flex-start;gap:12px;width:100%}.member-info{flex:1;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.member-info .member-name{font-size:14px;font-weight:600;color:#1e293b}.member-meta{display:flex;gap:16px}.meta-text{font-size:12px;color:#64748b}.status-tag{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:500}.status-tag.normal{background-color:#dcfce7;color:#16a34a}.status-tag.conflict{background-color:#fee2e2;color:#dc2626}.member-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;margin-right:10px}.member-avatar.empty{background:#e2e8f0;color:#94a3b8}.member-name{font-size:13px;color:#334155}.status-conflict{font-size:11px;padding:2px 6px;background-color:#fee2e2;color:#dc2626;border-radius:4px;font-weight:500}.status-ok{font-size:11px;padding:2px 6px;background-color:#dcfce7;color:#16a34a;border-radius:4px;font-weight:500}.member-name-row{display:flex;align-items:center;gap:8px}.member-actions{position:absolute;top:8px;right:8px;display:flex;align-items:center;opacity:0;transition:opacity .2s}.member-item:hover .member-actions{opacity:1}.member-actions-menu{position:absolute;right:0;top:100%;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:100;min-width:100px}.member-actions-menu .menu-item{display:block;width:100%;padding:8px 12px;text-align:left;font-size:13px;color:#374151;background:none;border:none;cursor:pointer;transition:background-color .15s}.member-actions-menu .menu-item:hover{background-color:#f3f4f6}.member-actions-menu .menu-item.delete-item{color:#dc2626}.schedule-right{flex:1;overflow:auto;height:100%;min-height:0}.gantt-granularity-select{display:none}.gantt-granularity-dropdown{position:relative;display:inline-block;margin-left:10px}.gantt-granularity-trigger{display:inline-flex;align-items:center;gap:4px;border:1px solid #e2e8f0;background:#fff;font-size:12px;color:#334155;padding:5px 10px;border-radius:6px;cursor:pointer;font-weight:500;line-height:1;outline:none;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #0000000a}.gantt-granularity-trigger:hover{border-color:#a5b4fc;box-shadow:0 1px 4px #6366f11a}.gantt-granularity-trigger:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.gantt-granularity-trigger svg{color:#6366f1;flex-shrink:0}.gantt-granularity-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:80px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f;z-index:100;padding:4px;animation:dropdownFadeIn .12s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.gantt-granularity-option{padding:6px 12px;font-size:12px;font-weight:500;color:#475569;border-radius:5px;cursor:pointer;transition:background .1s,color .1s}.gantt-granularity-option:hover{background:#f1f5f9;color:#1e293b}.gantt-granularity-option.active{background:#eef2ff;color:#6366f1}.gantt-container{display:flex;width:max-content;min-width:100%}.gantt-frozen-column{width:216px;min-width:216px;flex-shrink:0;background-color:#fff;border-right:1px solid #e2e8f0;position:sticky;left:0;z-index:10;padding:0}.gantt-frozen-resizer{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;z-index:11;background:transparent}.gantt-frozen-resizer:hover{background:#6366f12e}.gantt-scroll-wrapper{flex:1;min-width:max-content}.gantt-scroll-area{position:relative}.gantt-header-left{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 0;box-sizing:border-box;border-bottom:2px solid #e2e8f0;background:#fff;flex-shrink:0;position:sticky;left:0;z-index:12}.gantt-header-right{height:52px;background:#fff;min-width:max-content;border-bottom:2px solid #e2e8f0;flex:1}.gantt-header-row{display:flex;position:sticky;top:0;z-index:11;background:#fff;width:max-content;min-width:100%}.gantt-row{height:36px;border-bottom:1px solid #f1f5f9}.gantt-row.hovered{background-color:#f8fafc}.gantt-row.member-highlight{background-color:#eff6ff}.gantt-task-info{width:100%;height:36px;display:flex;align-items:center;gap:8px;padding-right:16px;box-sizing:border-box;border-bottom:1px solid #f1f5f9}.gantt-task-info.hovered{background-color:#f8fafc}.gantt-task-info.member-highlight{background-color:#eff6ff}.gantt-bars{position:relative;height:36px}.gantt-date-label{font-size:12px;font-weight:600;color:#475569;height:20px;line-height:20px}.gantt-header-right{height:52px;background:#fff;min-width:max-content;border-bottom:2px solid #e2e8f0;flex:1;overflow:hidden}.gantt-months-overlay{display:flex;position:absolute;top:0;left:216px}.gantt-cell.holiday:not(.hovered-col):not(.hovered-row){background-color:#f8fafc;cursor:not-allowed}.gantt-cell{position:relative}.gantt-body-week .gantt-cell.week-end,.gantt-body-week .gantt-space-cell.week-end-pad{border-right:1px solid #f1f5f9}.gantt-month-overlay-item{height:16px;display:flex;align-items:center;justify-content:center;overflow:visible;box-sizing:border-box}.gantt-month-overlay-item.bar-hovered{background-color:#e0f2fe}.gantt-month-overlay-item.year-anchor{justify-content:flex-start;align-items:flex-start}.gantt-month-overlay-item.year-anchor .gantt-month-tooltip{color:#64748b;font-size:11px}.gantt-month-tooltip{font-size:10px;overflow:visible;color:#9ca3af;font-weight:500;white-space:nowrap}.gantt-header-dates{display:flex;height:52px;align-items:flex-start}.gantt-day{width:40px;min-width:40px;height:52px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#64748b;font-weight:500}.gantt-day.bar-hovered{background-color:#e0f2fe}.gantt-hour-day{height:52px;display:flex;align-items:stretch;border-right:1px solid #f1f5f9}.gantt-hour-day.bar-hovered{background-color:#e0f2fe}.gantt-hour-cell{height:52px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#64748b;font-weight:500;border-right:1px solid #edf2f7;box-sizing:border-box}.gantt-week{height:52px;min-width:44px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#64748b;font-weight:500;border-right:1px solid #f1f5f9;box-sizing:border-box}.gantt-week-range{white-space:nowrap}.gantt-week.bar-hovered{background-color:#e0f2fe}.gantt-month{height:52px;min-width:44px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#64748b;font-weight:500;border-right:1px solid #f1f5f9;box-sizing:border-box}.gantt-month.bar-hovered,.gantt-month.hovered-col{background-color:#e0f2fe}.gantt-body-week .gantt-cell,.gantt-body-month .gantt-cell{border-right:none}.gantt-body-month .gantt-cell.month-end,.gantt-body-month .gantt-space-cell.month-end-pad{border-right:1px solid #e2e8f0}.gantt-space-cell.hovered-row{background-color:#f0f9ff}.gantt-space-cell.hovered-col{background-color:#e0f2fe}.gantt-space-cell.hovered-col.hovered-row{background-color:#bae6fd}.gantt-month-overlay-item{height:16px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.gantt-body{display:flex;flex-direction:column}.gantt-row{display:flex;align-items:center;height:36px;border-bottom:1px solid #f1f5f9;width:100%}.gantt-task-info{width:100%;height:36px;display:flex;align-items:center;gap:8px;padding-right:16px;box-sizing:border-box}.task-code{font-size:12px;font-weight:500;color:#64748b}.task-name{font-size:13px;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-name-row{display:flex;align-items:center;gap:4px;min-width:0;flex:1}.task-name-row .task-name{flex:1;min-width:0}.gantt-task-info .task-name{cursor:pointer}.gantt-task-info .task-name:hover{color:#2563eb}.gantt-task-info.gantt-group-info .task-code,.gantt-task-info.gantt-group-info .task-name{color:#1e293b}.gantt-task-info.gantt-group-info{background-color:#f8fafc}.gantt-group-name{font-weight:600}.gantt-task-info.gantt-group-info .task-name:hover{color:#2563eb}.gantt-summary-bar{position:absolute;top:50%;transform:translateY(-50%);height:16px;background:linear-gradient(180deg,var(--sb-color-m, rgba(99,102,241,.16)),var(--sb-color-l, rgba(99,102,241,.08)));border-top:2px solid var(--sb-color-s, rgba(99,102,241,.5));border-bottom:none;border-left:2px solid var(--sb-color-s, rgba(99,102,241,.5));border-right:2px solid var(--sb-color-s, rgba(99,102,241,.5));border-radius:3px 3px 0 0;pointer-events:none;display:flex;align-items:center;justify-content:center}.gantt-summary-label{font-size:10px;font-weight:600;white-space:nowrap;pointer-events:none;line-height:1}.conflict-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background-color:#ef4444;color:#fff;font-size:11px;font-weight:700;line-height:1;cursor:default;flex-shrink:0;position:relative}.conflict-popover{display:none;position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%);z-index:80;min-width:220px;max-width:340px;padding:12px 14px;background-color:#fff;color:#334155;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 14px #0000002e}.conflict-badge:hover .conflict-popover{display:block}.conflict-popover-block+.conflict-popover-block{margin-top:10px;padding-top:10px;border-top:1px solid #f1f5f9}.conflict-popover-head{font-size:12px;color:#334155;font-weight:500;line-height:1.7;margin-bottom:6px}.conflict-popover-tasks{display:flex;flex-direction:column;gap:5px}.conflict-popover-task{font-size:12px;color:#64748b;line-height:1.7}.gantt-task-info.conflict .task-code,.gantt-task-info.conflict .task-name{color:#dc2626}.gantt-task-bar.conflict{box-shadow:0 0 0 2px #ef444480}.gantt-task-bar.conflict.selected{box-shadow:0 0 0 3px #ef4444}.gantt-bars{display:flex;flex:1;position:relative;height:36px;border-bottom:1px solid #f1f5f9}.gantt-space-cell{flex-shrink:0;width:0}.gantt-task-bar{position:absolute;top:50%;transform:translateY(-50%);height:20px;background:#f5f7fa;border:1px solid #e2e8f0;border-radius:4px;transition:all .2s;cursor:grab;-webkit-user-select:none;user-select:none}.gantt-task-bar:hover{opacity:.85}.gantt-task-bar.dragging{cursor:grabbing;transition:none;z-index:5}.gantt-drag-guide{position:absolute;top:0;bottom:0;pointer-events:none;z-index:6;border-left:2px dashed rgba(239,68,68,.7)}.gantt-drag-guide-label{position:absolute;top:2px;left:6px;padding:1px 6px;font-size:11px;line-height:16px;color:#ef4444;background:#fff;border:1px solid rgba(239,68,68,.4);border-radius:4px;white-space:nowrap}.gantt-task-bar.member-highlight{box-shadow:none}.gantt-task-bar.selected{box-shadow:0 0 0 2px #3b82f64d}.gantt-task-bar.wave-bar{overflow:hidden;border:none}.gantt-milestone-diamond{transition:transform .15s ease,box-shadow .15s ease}.gantt-milestone-diamond:hover{transform:translateY(-50%) rotate(45deg) scale(1.2);box-shadow:0 2px 8px #f59e0b66}.gantt-milestone-diamond.selected{box-shadow:0 0 0 3px #f59e0b66}.gantt-bar-holiday-seg{position:absolute;top:0;bottom:0;width:40px;pointer-events:none;background-image:repeating-linear-gradient(-45deg,#64748b26,#64748b26 3px,#fff0 3px,#fff0 6px);opacity:1}.gantt-cell{width:40px;min-width:40px;height:36px;border-right:1px solid #f1f5f9}.gantt-cell.hovered-col{background-color:#e0f2fe}.gantt-cell.hovered-row{background-color:#f0f9ff}.gantt-cell.hovered-col.hovered-row{background-color:#bae6fd}.gantt-cell.scheduled{background:#f5f7fa;border-radius:4px;margin:0 1px;border:1px solid #e2e8f0}.gantt-cell.task-start{border-top-left-radius:4px;border-bottom-left-radius:4px}.team-member-button-wrapper{position:relative;display:inline-flex;align-items:center}.team-member-btn-group{display:flex;align-items:center;background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.team-count-btn{padding:6px 12px;background:none;border:none;cursor:pointer;font-size:13px;color:#4a5568;text-align:left;transition:background-color .2s}.team-count-btn:hover{background-color:#f7fafc}.expand-btn{padding:6px 8px;background:none;border:none;border-left:1px solid #e2e8f0;cursor:pointer;color:#718096;transition:all .2s;display:flex;align-items:center;justify-content:center}.expand-btn:hover{background-color:#f7fafc;color:#4a5568}.expand-tooltip{position:absolute;top:100%;left:0;margin-top:4px;padding:4px 8px;background-color:#2d3748;color:#fff;font-size:12px;border-radius:4px;white-space:nowrap;z-index:1000;box-shadow:0 2px 8px #00000026}.expand-tooltip:after{content:"";position:absolute;top:-4px;left:8px;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid #2d3748}.network-node-tooltip{position:fixed;padding:8px 12px;background-color:#fff;color:#1f2937;font-size:12px;border-radius:6px;white-space:nowrap;z-index:9999;box-shadow:0 4px 16px #00000026;border:1px solid #E5E7EB;pointer-events:none;line-height:1.5}.network-node-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #fff}.hover-panel{position:absolute;top:100%;left:0;margin-top:4px;width:280px;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px #0000001a;z-index:1000;overflow:hidden}.panel-header{display:flex;align-items:center;gap:6px;padding:10px 12px;background-color:#f7fafc;border-bottom:1px solid #e2e8f0}.panel-title{font-size:13px;font-weight:600;color:#2d3748}.panel-count{font-size:12px;color:#718096}.panel-content{max-height:300px;overflow-y:auto}.panel-role-group{padding:8px 0}.panel-role-header{display:flex;align-items:center;gap:4px;padding:4px 12px;font-size:11px;color:#a0aec0;text-transform:uppercase;letter-spacing:.5px}.panel-role-name{font-weight:500}.panel-role-count{font-size:10px}.panel-member-items{list-style:none;margin:0;padding:0}.panel-member-item{display:flex;align-items:center;gap:8px;padding:6px 12px;transition:background-color .15s}.panel-member-item:hover{background-color:#f7fafc}.panel-member-avatar{width:24px;height:24px;border-radius:50%;background-color:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:#4a5568}.panel-member-avatar.empty{background-color:#f7fafc;color:#a0aec0}.panel-member-name{font-size:12px;color:#2d3748}.hours-edit-popup{position:fixed;z-index:1000}.hours-edit-content{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;box-shadow:0 4px 16px #0000001f;min-width:200px}.hours-edit-inputs{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.hours-edit-inputs .input-group{display:flex;flex-direction:column;align-items:center;gap:4px}.hours-edit-inputs .hours-input,.hours-edit-inputs .minutes-input{width:60px;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;text-align:center;outline:none}.hours-edit-inputs .hours-input:focus,.hours-edit-inputs .minutes-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.hours-edit-inputs .input-label{font-size:11px;color:#6b7280}.hours-edit-inputs .time-separator{font-size:16px;font-weight:600;color:#9ca3af}.hours-edit-unit-text{font-size:14px;color:#4a5568}.hours-edit-actions{display:flex;justify-content:flex-end;gap:8px}.hours-edit-actions .btn-save{padding:6px 12px;background-color:#4f46e5;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.hours-edit-actions .btn-save:hover{background-color:#4338ca}.hours-edit-actions .btn-cancel{padding:6px 12px;background-color:#f3f4f6;color:#374151;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.hours-edit-actions .btn-cancel:hover{background-color:#e5e7eb}.hours-edit-actions .time-rule-confirm-btn{width:28px;height:28px;padding:0}.resource-hours{cursor:pointer;transition:background-color .2s}.resource-hours:hover{background-color:#e5e7eb}.hours-edit-error{display:block;font-size:12px;color:#dc2626;text-align:center;margin-bottom:8px}.clickable-avatar{cursor:pointer}.clickable-avatar:hover{opacity:.8}.clickable-name{cursor:pointer}.clickable-name:hover{color:#3b82f6}.resource-select-popup{position:fixed;z-index:1000;margin-top:4px;box-shadow:0 4px 16px #0000001f;border-radius:8px;overflow:visible;min-width:220px;background:#fff;border:1px solid #e5e7eb}.clickable-resource{cursor:pointer;position:relative}.clickable-resource:hover{background-color:#e5e7eb}.delete-resource-btn{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border:none;background-color:#9ca3af;color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;padding:0;z-index:1}.clickable-resource:hover .delete-resource-btn{opacity:1}.delete-resource-btn:hover{background-color:#6b7280}.resource-select-popup .custom-select-container{position:static}.resource-select-popup .custom-select-trigger{border:none;padding:8px 12px;border-radius:8px 8px 0 0}.resource-select-popup .custom-select-dropdown{position:static;border:none;border-radius:0 0 8px 8px;box-shadow:none;max-height:260px;overflow-y:auto;top:auto;left:auto;right:auto}.datepicker-wrapper{position:relative;display:inline-block}.datepicker-trigger{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;background-color:#fff;cursor:pointer;font-size:14px;color:#1e293b;min-width:180px;transition:all .2s}.datepicker-trigger:hover{border-color:#9ca3af;background-color:#f9fafb}.datepicker-value{flex:1;text-align:left}.datepicker-hour{font-size:12px;font-weight:500;color:#6366f1;margin-left:2px;white-space:nowrap}.datepicker-icon{flex-shrink:0;color:#6b7280}.datepicker-dropdown{position:absolute;top:calc(100% + 4px);left:0;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:8px;z-index:1000;min-width:280px}.datepicker-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0;margin-bottom:8px;border-bottom:1px solid #f3f4f6}.datepicker-nav-btn{width:32px;height:32px;border:none;background-color:transparent;cursor:pointer;font-size:20px;color:#6b7280;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s}.datepicker-nav-btn:hover{background-color:#f3f4f6;color:#374151}.datepicker-title{font-size:15px;font-weight:600;color:#1f2937}.datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.datepicker-weekday{text-align:center;font-size:12px;color:#9ca3af;font-weight:500;padding:6px 0}.datepicker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:0}.datepicker-empty-cell{height:36px}.datepicker-day{height:36px;border:none;background-color:transparent;border-radius:6px;cursor:pointer;font-size:14px;color:#374151;transition:all .15s;display:flex;align-items:center;justify-content:center}.datepicker-day:hover{background-color:#e0e7ff;color:#4338ca}.datepicker-day.today{background-color:transparent;color:#1d4ed8;font-weight:600}.datepicker-day.today:hover{background-color:#e0e7ff;color:#1d4ed8}.datepicker-day.selected-lite{background-color:#dbeafe;color:#1d4ed8;font-weight:600}.datepicker-day.selected-lite:hover{background-color:#bfdbfe;color:#1d4ed8}.datepicker-day.selected{background-color:#3b82f6;color:#fff;font-weight:600}.datepicker-day.selected:hover{background-color:#2563eb}.datepicker-day.disabled{color:#cbd5e1;cursor:not-allowed}.datepicker-day.disabled:hover{background-color:transparent;color:#cbd5e1}.datepicker-range-hint{padding:6px 8px;font-size:12px;color:#6b7280;text-align:center;border-top:1px solid #f3f4f6}.daterange-dual-wrapper{display:flex;align-items:center;gap:6px;width:100%}.daterange-dual-wrapper .datepicker-trigger{min-width:0;flex:1;padding:8px 10px}.daterange-dual-wrapper .datepicker-value{font-size:13px}.daterange-dual-sep{color:#9ca3af;font-size:14px;flex-shrink:0}.description-text{display:block;cursor:default}.clickable-description{cursor:pointer;border-radius:6px;padding:3px 6px;margin-left:-6px;transition:background-color .2s}.clickable-description:hover{background-color:#f3f4f6}.desc-expand-toggle{display:inline-flex;align-items:center;gap:3px;margin-top:4px;font-size:13px;color:#6b7280;cursor:pointer;-webkit-user-select:none;user-select:none}.desc-expand-toggle:hover{color:#2563eb}.gantt-context-menu{position:fixed;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 20px #00000026;padding:4px 0;min-width:160px;z-index:1000}.context-menu-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:14px;color:#374151;cursor:pointer;transition:background-color .15s;border-radius:4px}.context-menu-item:hover{background-color:#f3f4f6}.context-menu-label{flex-shrink:0}.context-menu-stepper{margin:0 8px}.context-menu-unit{font-size:13px;color:#6b7280}.dashboard-container{padding:0;height:100%}.stats-row{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:16px;padding:10px;border:1px solid #e2e8f0;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.stat-card{display:flex;align-items:flex-start;gap:12px;position:relative;flex:1;padding:8px 20px;border-right:1px solid #e2e8f0;min-height:70px}.stat-card:last-child{border-right:none}.stat-icon-wrapper{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon-wrapper.focus{background:linear-gradient(135deg,#ede9fe,#ddd6fe)}.stat-icon-wrapper.tasks{background:linear-gradient(135deg,#fee2e2,#fecaca)}.stat-icon-wrapper.study{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.stat-icon-wrapper.exercise{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.stat-icon-wrapper.reading{background:linear-gradient(135deg,#fef3c7,#fde68a)}.stat-icon{width:22px;height:22px}.stat-content{flex:1;display:flex;flex-direction:column;gap:3px}.stat-label{font-size:12px;color:#6b7280;font-weight:500}.stat-value{font-size:22px;font-weight:700;color:#1f2937}.stat-target{font-size:11px;color:#9ca3af}.stat-progress{position:absolute;right:16px;top:50%;transform:translateY(-50%)}.progress-ring{position:relative;width:44px;height:44px}.progress-ring svg{width:44px;height:44px}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:700;color:#7c3aed}.stat-chart{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:60px;height:40px}.stat-chart svg{width:100%;height:100%}.stat-trend{display:none}.main-content{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;grid-auto-rows:minmax(min-content,max-content)}.left-column{grid-column:1;display:flex;flex-direction:column;gap:10px}.center-column{grid-column:2;display:flex;flex-direction:column;gap:10px}.right-column{grid-column:3;display:flex;flex-direction:column;gap:10px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-header h2{font-size:16px;font-weight:600;color:#1f2937}.card-action{display:flex;align-items:center;gap:6px;padding:6px 12px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#6b7280;transition:background-color .2s}.card-action:hover{background-color:#f3f4f6}.timeline-card,.focus-card,.ai-insight-card,.ai-chat-card,.favorites-card,.audio-card{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:16px;padding:20px;border:1px solid #e2e8f0}.timeline-card{flex:1}.timeline{display:flex;flex-direction:column}.timeline-item{display:flex;gap:12px;align-items:flex-start;padding:4px 0}.timeline-time{font-size:13px;font-weight:600;color:#6b7280;width:40px;flex-shrink:0;text-align:right;padding-right:8px;padding-top:11px}.timeline{position:relative}.timeline-vertical-line{position:absolute;left:56px;top:20px;bottom:80px;width:2px;background:linear-gradient(to bottom,#d1d5db,#e5e7eb,#f3f4f6);z-index:1}.timeline-connector{display:flex;flex-direction:column;align-items:center;width:10px;flex-shrink:0;padding-top:13px}.connector-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;z-index:2;position:relative}.connector-dot.purple{background-color:#8b5cf6}.connector-dot.blue{background-color:#3b82f6}.connector-dot.orange{background-color:#f59e0b}.connector-dot.green{background-color:#10b981}.timeline-content-wrapper{flex:1;display:flex;align-items:flex-start;gap:12px}.timeline-content{flex:1;padding:10px;border-radius:10px;position:relative;background-color:#f3f4f6}.timeline-content.completed{background-color:#f5f3ff}.timeline-content.pending{background-color:#f9fafb}.timeline-content.orange-bg{background-color:#fffbeb}.timeline-content.green-bg{background-color:#ecfdf5}.timeline-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;margin-right:8px;display:inline-block}.timeline-badge.research{color:#8b5cf6;background-color:#ede9fe}.timeline-badge.rest{color:#d97706;background-color:#fef3c7}.timeline-badge.exercise{color:#059669;background-color:#d1fae5}.timeline-badge.life{color:#d97706;background-color:#fef3c7}.timeline-badge.study{color:#8b5cf6;background-color:#ede9fe}.timeline-title{font-size:13px;font-weight:500;color:#1f2937;margin-bottom:4px;line-height:1.4}.timeline-meta{display:flex;align-items:center;gap:12px}.timeline-duration{font-size:12px;color:#9ca3af}.timeline-checkbox{width:20px;height:20px;border-radius:50%;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all .2s}.timeline-checkbox.completed{background-color:#8b5cf6;border-color:#8b5cf6}.timeline-checkbox svg{width:12px;height:12px;color:#fff}.timeline-checkbox.pending svg{display:none}.timeline-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:nowrap;margin-top:12px;padding:0 4px}.progress-bar-wrapper{flex:1;display:flex;align-items:center;height:20px}.progress-bar{width:100%;height:6px;background-color:#e5e7eb;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(to right,#8b5cf6,#a78bfa);border-radius:3px;transition:width .3s ease}.completed-count{font-size:12px;color:#6b7280;line-height:1;display:flex;align-items:center;height:20px;flex-shrink:0}.card-action-group{display:flex;align-items:center;gap:8px}.focus-mode-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:#6b7280}.toggle-label{font-weight:500}.toggle-switch{width:36px;height:20px;background-color:#e5e7eb;border-radius:10px;position:relative;cursor:pointer}.toggle-switch:after{content:"";position:absolute;width:16px;height:16px;background-color:#fff;border-radius:50%;top:2px;left:2px;transition:left .2s;box-shadow:0 1px 3px #0000001a}.connector-line{flex:1;width:2px;background-color:#e5e7eb;margin:4px 0}.timeline-content{flex:1;padding:10px;border-radius:8px}.timeline-title{font-size:13px;font-weight:500;color:#1f2937;margin-bottom:4px}.timeline-duration{font-size:12px;color:#6b7280}.view-all-timeline{padding:0 8px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#3b82f6;text-align:left;transition:background-color .2s;line-height:1;display:flex;align-items:center;height:20px;flex-shrink:0}.view-all-timeline:hover{background-color:#eff6ff}.focus-card{flex:1}.ai-insight-card{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:16px;padding:20px;border:1px solid #e2e8f0}.ai-insight-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-header-left{display:flex;align-items:center;gap:10px}.ai-insight-icon{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#a78bfa);display:flex;align-items:center;justify-content:center;color:#fff}.ai-insight-card .card-header h2{font-size:16px;font-weight:600;color:#1f2937}.card-action.refresh{display:flex;align-items:center;gap:4px;padding:6px 12px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#6b7280;transition:background-color .2s}.card-action.refresh:hover{background-color:#f3f4f6}.insight-greeting{display:flex;align-items:center;gap:10px}.insight-avatar-img{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#fbbf24,#f59e0b);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:600;flex-shrink:0}.insight-greeting p{font-size:13px;color:#4b5563;margin:0;line-height:1.5}.insight-suggestions-card{background-color:#f8f9fc;border-radius:12px;padding:16px}.insight-suggestions-card h3{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:12px}.suggestion-list{list-style:none;padding:0;margin:0 0 12px}.suggestion-list li{position:relative;padding-left:14px;font-size:13px;color:#4b5563;line-height:1.6;margin-bottom:8px}.suggestion-list li:last-child{margin-bottom:0}.suggestion-list li:before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background-color:#9ca3af}.insight-detail-btn{padding:8px 20px;background:linear-gradient(135deg,#8b5cf6,#a78bfa);color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:13px;font-weight:500;transition:opacity .2s}.insight-detail-btn:hover{opacity:.9}.project-updates h3{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:12px}.project-update-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #f3f4f6}.project-update-item:last-child{border-bottom:none}.project-update-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.project-update-icon.active{background-color:#dcfce7;color:#16a34a}.project-update-content{flex:1;min-width:0}.project-update-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.project-update-title{font-size:13px;font-weight:500;color:#1f2937}.project-update-time{font-size:12px;color:#9ca3af;flex-shrink:0}.project-update-desc{font-size:12px;color:#6b7280;margin:0;line-height:1.5}.view-all-projects-link{display:inline-flex;align-items:center;gap:4px;padding:0;background:none;border:none;cursor:pointer;font-size:13px;color:#8b5cf6;transition:color .2s}.view-all-projects-link:hover{color:#7c3aed}.chat-quick-actions{display:flex;gap:8px;padding:12px 0;margin-bottom:12px;flex-wrap:wrap}.quick-action-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;background:none;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:12px;color:#4b5563;transition:all .2s}.quick-action-btn svg{width:16px;height:16px;flex-shrink:0}.quick-action-btn:hover{background-color:#f9fafb;border-color:#d1d5db}.chat-input-wrapper{display:flex;flex-direction:column;background-color:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:12px}.chat-textarea{flex:1;width:100%;min-height:60px;padding:10px;border:none;border-radius:8px;background-color:#fff;font-size:13px;color:#374151;resize:none;outline:none;box-sizing:border-box}.chat-textarea::placeholder{color:#9ca3af}.chat-action-bar{display:flex;justify-content:space-between;align-items:center;padding-top:10px}.chat-action-left,.chat-action-right{display:flex;gap:8px}.action-icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:50%;cursor:pointer;transition:all .2s}.action-icon-btn.send-btn{width:36px;height:36px;background-color:#d1d5db;border-radius:50%;padding:0}.action-icon-btn.send-btn:hover{background-color:#d1d5db}.action-icon-btn.send-btn.active,.action-icon-btn.send-btn.active:hover{background-color:#e9d5ff}.action-icon-btn.voice-btn:hover{background-color:#d1d5db}.favorites-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.favorites-tabs .tab{padding:6px 10px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#6b7280;transition:all .2s}.favorites-tabs .tab.active{background-color:#8b5cf6;color:#fff}.favorites-tabs .tab:hover:not(.active){background-color:#f3f4f6}.action-badge{display:flex;align-items:center;gap:6px;padding:6px 10px;background-color:#fef3c7;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#d97706}.badge-count{background-color:#ef4444;color:#fff;font-size:10px;padding:1px 5px;border-radius:10px}.favorites-list{display:flex;flex-direction:column;gap:12px}.favorite-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;transition:background-color .2s}.favorite-thumbnail{width:48px;height:32px;border-radius:6px;flex-shrink:0}.favorite-title{display:block;font-size:13px;color:#1f2937;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favorite-meta{font-size:11px;color:#9ca3af}.favorite-more{padding:4px;background:none;border:none;border-radius:4px;cursor:pointer;color:#9ca3af;transition:all .2s}.favorite-more:hover{background-color:#f3f4f6;color:#6b7280}.view-all-favorites{width:100%;padding:10px;background:none;border:none;border-radius:8px;cursor:pointer;font-size:12px;color:#3b82f6;margin-top:8px;transition:background-color .2s}.audio-list{margin-top:12px}.audio-item{display:flex;align-items:center;gap:12px;padding:10px;background-color:#f9fafb;border-radius:10px}.audio-item.active{background-color:#ecfdf5}.audio-cover{width:56px;height:48px;border-radius:6px;flex-shrink:0}.audio-info{flex:1;min-width:0}.audio-title{display:block;font-size:13px;font-weight:500;color:#1f2937;margin-bottom:2px}.audio-tags{font-size:11px;color:#9ca3af}.audio-play{padding:8px;background-color:#10b981;border:none;border-radius:50%;cursor:pointer;color:#fff;transition:background-color .2s}.audio-play:hover{background-color:#059669}.audio-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.control-btn{padding:8px;background:none;border:none;border-radius:50%;cursor:pointer;color:#6b7280;transition:all .2s}.control-btn:hover{background-color:#f3f4f6}.volume-control{display:flex;align-items:center;gap:8px}.volume-bar{width:60px;height:4px;background-color:#e5e7eb;border-radius:2px}.volume-fill{height:100%;background-color:#10b981;border-radius:2px}.focus-tabs{display:flex;gap:4px}.focus-tabs .tab{padding:4px 12px;background:none;border:none;border-radius:4px;cursor:pointer;font-size:12px;color:#6b7280;transition:all .2s}.focus-tabs .tab.active{background-color:#8b5cf6;color:#fff}.focus-timer{display:flex;flex-direction:column;align-items:center;gap:16px}.timer-ring{position:relative;width:120px;height:120px}.timer-ring svg{transform:rotate(-90deg)}.timer-display{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.timer-time{display:block;font-size:24px;font-weight:700;color:#1f2937}.timer-label{font-size:12px;color:#6b7280}.focus-start-btn{padding:10px 32px;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:#fff;transition:opacity .2s}.focus-start-btn:hover{opacity:.9}.focus-audio{width:100%}.audio-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background-color:#f9fafb;border-radius:8px;cursor:pointer;transition:background-color .2s}.audio-item:hover{background-color:#f3f4f6}.audio-item span{font-size:13px;color:#374151}.audio-duration{margin-left:auto;color:#9ca3af!important}.ai-insight-card{flex:1}.insight-content{display:flex;flex-direction:column;gap:16px}.insight-intro{font-size:13px;color:#6b7280;line-height:1.5}.project-status,.action-suggestions{display:flex;flex-direction:column;gap:12px}.project-status h3,.action-suggestions h3{font-size:13px;font-weight:600;color:#374151}.project-item{display:flex;flex-direction:column;gap:8px;padding:12px;background-color:#f9fafb;border-radius:8px}.project-info{display:flex;justify-content:space-between;align-items:center}.project-title{font-size:13px;font-weight:500;color:#1f2937}.project-status-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}.project-status-badge.in-progress{background-color:#dbeafe;color:#2563eb}.project-status-badge.pending{background-color:#fef3c7;color:#d97706}.project-progress{display:flex;align-items:center;gap:8px}.project-progress .progress-bar{flex:1;height:6px;background-color:#e5e7eb;border-radius:3px;overflow:hidden}.project-progress .progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:3px}.progress-text{font-size:12px;font-weight:500;color:#6b7280}.project-date{font-size:12px;color:#9ca3af}.suggestion-item{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background-color:#f9fafb;border-radius:8px}.suggestion-item span{font-size:13px;color:#4b5563;line-height:1.4}.view-all-insights{padding:8px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#3b82f6;text-align:left;transition:background-color .2s}.view-all-insights:hover{background-color:#eff6ff}.ai-chat-card{flex-shrink:0}.chat-content{display:flex;flex-direction:column;gap:16px}.chat-message{display:flex;gap:12px}.ai-message{background-color:#f9fafb;padding:12px 16px;border-radius:0 12px 12px}.message-content{font-size:13px;color:#374151;line-height:1.6;white-space:pre-wrap}.chat-suggestions{display:flex;flex-wrap:wrap;gap:8px}.suggestion-btn{padding:6px 12px;background:none;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:12px;color:#4b5563;transition:all .2s}.suggestion-btn:hover{background-color:#f3f4f6;border-color:#d1d5db}.chat-input{display:flex;gap:8px;margin-top:12px;padding-top:16px;border-top:1px solid #e5e7eb}.chat-input input{flex:1;padding:10px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;outline:none;transition:border-color .2s}.chat-input input:focus{border-color:#3b82f6}.send-btn{padding:10px 14px;background-color:#3b82f6;border:none;border-radius:8px;cursor:pointer;color:#fff;transition:background-color .2s}.send-btn:hover{background-color:#2563eb}.favorites-card{flex:1}.favorites-tabs{display:flex;gap:4px}.favorites-tabs .tab{padding:4px 10px;background:none;border:none;border-radius:4px;cursor:pointer;font-size:12px;color:#6b7280;transition:all .2s}.favorites-tabs .tab.active{background-color:#e0e7ff;color:#6366f1}.favorites-list{display:flex;flex-direction:column;gap:8px}.favorite-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;cursor:pointer;transition:background-color .2s}.favorite-item:hover{background-color:#f9fafb}.favorite-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background-color:#f3f4f6;border-radius:6px}.favorite-content{flex:1;min-width:0}.favorite-title{display:block;font-size:13px;font-weight:500;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-meta{font-size:12px;color:#9ca3af}.view-all-favorites{padding:8px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#3b82f6;text-align:left;transition:background-color .2s}.view-all-favorites:hover{background-color:#eff6ff}.stats-card{flex:1}.stats-period{padding:4px 8px;border:1px solid #e5e7eb;border-radius:4px;font-size:12px;color:#4b5563;background-color:#fff;cursor:pointer}.stats-chart{display:flex;flex-direction:column;gap:16px}.chart-item{display:flex;flex-direction:column;gap:12px}.chart-header{display:flex;justify-content:space-between;align-items:center}.chart-label{font-size:13px;color:#6b7280}.chart-value{font-size:18px;font-weight:700;color:#1f2937}.chart-trend{font-size:11px;color:#10b981;font-weight:500}.chart-bars{display:flex;justify-content:space-between;align-items:flex-end;height:60px;padding-bottom:8px}.chart-bar-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.chart-bar{width:24px;background:linear-gradient(180deg,#8b5cf6,#6366f1);border-radius:4px 4px 0 0;transition:height .3s}.chart-bar.secondary{background:linear-gradient(180deg,#3b82f6,#1d4ed8)}.bar-label{font-size:10px;color:#9ca3af}.stats-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-value{font-size:20px;font-weight:700;color:#1f2937}.summary-label{font-size:12px;color:#6b7280}.summary-trend{font-size:11px;color:#10b981}.ai-chat-container{display:flex;height:100%;background-color:#f9fafb}.ai-chat-sidebar-wrapper{width:220px;flex-shrink:0;position:relative;transition:width .3s ease-in-out}.ai-chat-sidebar-wrapper.collapsed{width:0;overflow:hidden}.ai-chat-sidebar{width:220px;background-color:#fff;display:flex;flex-direction:column;position:absolute;top:0;left:0;bottom:0}.ai-chat-main.new-chat{display:flex;align-items:center;justify-content:center;padding:10px 100px}.new-chat-content{width:100%;max-width:none;display:flex;flex-direction:column;align-items:stretch;gap:30px;transform:translateY(-100px)}.new-chat-header{text-align:center;align-self:center}.new-chat-title{font-size:24px;font-weight:600;color:#1f2937}.chat-list{flex:1;overflow-y:auto;padding:8px}.chat-list-item{padding:12px;border-radius:8px;cursor:pointer;transition:background-color .2s;border:1px solid transparent}.chat-list-item:hover{background-color:#f3f4f6}.chat-list-item.active{background-color:#f4f3f4}.chat-list-title{font-size:14px;font-weight:500;color:#1f2937}.ai-chat-main{background-color:#fff;padding:10px 100px;flex:1;display:flex;flex-direction:column;min-width:0}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.chat-message{display:flex;flex-direction:column}.chat-message.user{align-items:flex-end}.message-content{display:flex;flex-direction:column;gap:4px}.chat-message.ai .message-content{width:100%}.chat-message.user .message-content{max-width:70%}.message-bubble{padding:12px 16px;border-radius:16px;background-color:#fff}.chat-message.user .message-bubble{background-color:#8b5cf6}.message-bubble p{margin:0;font-size:14px;line-height:1.6;color:#1f2937;white-space:pre-wrap}.chat-message.user .message-bubble p{color:#fff}.message-time{padding-left:16px;font-size:12px;color:#9ca3af}.project-home{position:relative;padding-left:12px;height:100%;display:flex;flex-direction:column}.project-stats-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #eef2f7;flex-shrink:0}.project-stat{display:flex;align-items:center;gap:8px;min-width:0}.project-stat-divider{width:1px;height:16px;background:#e8edf3;flex-shrink:0}.project-stat-label{font-size:12px;color:#94a3b8;white-space:nowrap}.project-stat-value{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:#334155;white-space:nowrap}.project-stat-progress{display:inline-flex;align-items:center;gap:8px}.project-stat-track{position:relative;display:inline-block;width:96px;height:6px;border-radius:3px;background:#eef2f7;overflow:hidden}.project-stat-fill{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width .3s ease}.project-stat-pct{font-size:12.5px;font-weight:700;color:#4f46e5;font-variant-numeric:tabular-nums}.project-stat-version{font-size:12px;font-weight:700;color:#7c3aed;white-space:nowrap}.project-stat .icon-btn{height:20px;padding:0 5px;gap:3px;border:none;border-radius:6px;background:transparent;font-size:12px;color:#64748b}.project-stat .icon-btn:hover{background:#f1f5f9;border:none;color:#334155}.project-stat .icon-btn svg{width:13px;height:13px}.header-title.header-title-project{flex:1;min-width:0;align-items:flex-end;overflow:visible;white-space:normal}.header-title-project .home-btn{align-self:flex-start}.header-title-project .header-title-block{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px}.header-title-project .project-stats-bar{width:100%;padding:0 0 0 8px;border-bottom:none;gap:12px 14px}.header-title-project .project-stats-bar .icon-btn{height:22px;padding:0 8px;gap:4px;border-radius:6px;font-size:12px}.header-title-project .project-stats-bar .icon-btn svg{width:12px;height:12px}.header-title-project .project-stats-bar .icon-btn-text{font-size:12px}.header-title-project .project-stats-bar .project-stat-divider{height:12px}.header-title-project .editable-project-title-display{padding-top:0;padding-bottom:0}.header-title.header-title-planning{flex:1;min-width:0;overflow:visible;white-space:normal}.header-title-planning .home-btn{align-self:flex-start}.header-title-planning .header-title-block{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.planning-header-stats{width:100%;padding:0 0 0 8px;border-bottom:none;gap:8px 10px}.planning-stat-btn{background:none;border:none;cursor:pointer;padding:2px 4px;margin:0;border-radius:6px;transition:background .15s;font-family:inherit;gap:6px}.planning-stat-btn:hover:not(:disabled){background:#f1f5f9}.planning-stat-btn .stat-edit-caret{color:#94a3b8;flex-shrink:0}.planning-stat-btn:disabled{cursor:default}.planning-stat-wrap{position:relative;display:inline-flex}.project-description-section{margin-bottom:24px}.project-content{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project-section{background-color:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.section-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:#1f2937;margin-bottom:16px}.project-description{font-size:14px;line-height:1.6;color:#4b5563;margin:0;padding:12px;background-color:#f9fafb;border-radius:8px}.member-card{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#f9fafb;border-radius:8px}.member-avatar{width:32px;height:32px;border-radius:50%;background-color:#8b5cf6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.member-info{display:flex;flex-direction:column}.member-name{font-size:14px;font-weight:500;color:#1f2937}.member-role{font-size:12px;color:#6b7280}.task-list{display:flex;flex-direction:column;gap:8px}.task-item{display:flex;align-items:center;gap:12px;padding:12px;background-color:#f9fafb;border-radius:8px;transition:background-color .2s}.task-item:hover{background-color:#f3f4f6}.task-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.task-info{flex:1;display:flex;flex-direction:column;gap:2px}.task-name{font-size:14px;font-weight:500;color:#1f2937}.task-status-label{font-size:12px;color:#6b7280}.task-meta{display:flex;gap:8px}.task-priority{font-size:12px;padding:2px 8px;border-radius:4px;background-color:#e5e7eb;color:#4b5563}.empty-state{font-size:14px;color:#9ca3af;margin:0;padding:60px 20px;text-align:center;background-color:#f9fafb;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state-text{font-size:18px;font-weight:500;color:#374151;margin-bottom:8px}.empty-state-detail{font-size:14px;color:#6b7280;margin-bottom:24px}.empty-state-button{padding:10px 24px;background-color:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.empty-state-button:hover{background-color:#7c3aed}.project-tabs{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;border-bottom:1px solid #e5e7eb;padding-bottom:0;flex-shrink:0}.project-tabs-left{display:flex;gap:2px;background:#f1f3f5;border-radius:8px;padding:3px}.project-tabs-team-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:none;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;color:#6b7280;font-size:13px;transition:all .2s;margin-right:4px}.project-tabs-team-btn:hover{background:#f3f4f6;color:#374151;border-color:#d1d5db}.team-btn-count{background:#e5e7eb;color:#374151;font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;line-height:1.4}.project-home-body,.project-home-main{flex:1;min-height:0;display:flex}.project-home-right{flex:1;min-width:0;display:flex;flex-direction:column}.project-home-member-sidebar{width:280px;border-right:1px solid #e2e8f0;overflow-y:auto;flex-shrink:0;background:#fff}.project-tab{padding:5px 14px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:#6b7280;transition:all .15s;white-space:nowrap}.project-tab:hover{color:#374151}.project-tab.active{background:#fff;color:#8b5cf6;box-shadow:0 1px 3px #0000001a}.project-tab-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.project-schedule-wrapper{flex:1;min-height:0;overflow:hidden}.project-members-tab{padding:0;flex:1;overflow-y:auto}.members-filter-bar{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid #e5e7eb;background:#fff}.members-filter-item{display:flex;align-items:center;gap:8px}.members-filter-item label{font-size:13px;color:#6b7280;white-space:nowrap}.members-filter-item select,.members-filter-item input{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;outline:none;min-width:140px}.members-filter-item select:focus,.members-filter-item input:focus{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf626}.members-table-wrapper{overflow-x:auto}.members-table{width:100%;border-collapse:collapse;font-size:14px}.members-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.members-table th{padding:10px 16px;text-align:left;font-weight:500;color:#6b7280;font-size:13px;white-space:nowrap}.members-table td{padding:10px 16px;border-bottom:1px solid #f3f4f6;color:#1f2937}.members-table tbody tr:hover{background:#f9fafb}.members-table-user{display:flex;align-items:center;gap:10px}.members-table-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.members-table-avatar.empty-avatar{background:#e5e7eb;color:#9ca3af}.members-table-name{font-weight:500;color:#1f2937}.members-table-action{padding:4px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#6b7280;font-size:12px;cursor:pointer;transition:all .15s}.members-table-action:hover{border-color:#8b5cf6;color:#8b5cf6;background:#f5f3ff}.project-knowledge-tab{padding:0}.kanban-board{flex:1;display:flex;gap:16px;padding:0;overflow-x:auto;overflow-y:hidden}.kanban-column{min-width:280px;max-width:320px;flex-shrink:0;background:#f7fafc;border-radius:8px;display:flex;flex-direction:column;border:1px solid #e2e8f0}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;border-radius:8px 8px 0 0}.kanban-column-title{font-weight:600;font-size:14px;color:#2d3748}.kanban-column-header .kanban-column-title{margin-bottom:0}.kanban-column-count{font-size:13px;color:#718096;font-weight:500}.kanban-column-header-left{display:flex;align-items:center;gap:8px;min-width:0}.kanban-column-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.kanban-column-action{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;color:#718096}.kanban-column-body{flex:1;overflow-y:auto;padding:8px 16px 8px 0;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:transparent transparent;scrollbar-gutter:stable}.kanban-column-body::-webkit-scrollbar{width:6px}.kanban-column-body::-webkit-scrollbar-track{background:transparent}.kanban-column-body::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}.kanban-column-body:hover{scrollbar-color:rgba(100,116,139,.45) transparent}.kanban-column-body:hover::-webkit-scrollbar-thumb{background:#64748b73}.project-home .kanban-card{background:#fff;border:1px solid #e8edf3;border-radius:10px;padding:14px 16px;cursor:default;box-shadow:none;transition:box-shadow .15s,border-color .15s}.project-home .kanban-card:hover{box-shadow:0 4px 12px #0f172a14;border-color:#dbe3ec}.kanban-card-header{display:flex;align-items:center;justify-content:space-between;min-height:18px}.kanban-card-name{font-size:14px;color:#1e293b;font-weight:600;margin:6px 0 0;line-height:1.5;word-break:break-word}.kanban-card-stats{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}.kanban-card-stat{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;color:#475569;background:#f8fafc;border:1px solid #eef2f7;border-radius:6px;padding:3px 8px;white-space:nowrap}.kanban-card-stat svg{flex-shrink:0;color:#94a3b8}.kanban-card-status{display:flex;align-items:center;gap:8px;margin-top:12px}.kanban-card-progress{font-size:11.5px;font-weight:600;color:#64748b}.kanban-card-footer{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:10px;border-top:1px solid #f1f5f9}.kanban-card-footer svg{flex-shrink:0;color:#94a3b8}.kanban-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.kanban-card-resources{display:flex;align-items:center}.kanban-card-resources .avatar-sm{width:22px;height:22px;font-size:10px;margin-right:-4px;border:2px solid #fff}.kanban-card-more{font-size:11px;color:#718096;margin-left:6px}.kanban-card-hours{font-size:11px;color:#4a5568;font-weight:500;margin-left:8px;white-space:nowrap}.kanban-card-dates{font-size:11px;color:#718096;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card-date{font-size:11px;color:#718096}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav-btn{background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 6px;cursor:pointer;display:flex;align-items:center;color:#4a5568;transition:all .15s}.calendar-nav-btn:hover{background:#f7fafc;border-color:#cbd5e0}.calendar-nav-label{font-weight:600;font-size:15px;color:#2d3748;min-width:100px;text-align:center}.calendar-today-btn{background:none;border:1px solid #e2e8f0;border-radius:6px;padding:4px 12px;cursor:pointer;font-size:13px;color:#4a5568;transition:all .15s}.calendar-today-btn:hover{background:#f7fafc;border-color:#cbd5e0}.calendar-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.calendar-header-row{display:grid;grid-template-columns:repeat(7,1fr);background:#f7fafc;border-bottom:1px solid #e2e8f0}.calendar-header-cell{padding:8px 0;text-align:center;font-weight:600;font-size:13px;color:#4a5568}.calendar-grid{flex:1;display:flex;flex-direction:column;overflow-y:auto}.calendar-week-row{position:relative;flex:1;display:grid;grid-template-columns:repeat(7,1fr)}.calendar-task-bar{position:absolute;height:18px;display:flex;align-items:center;gap:4px;padding:0 6px;border-radius:4px;font-size:11px;overflow:hidden;white-space:nowrap;z-index:2;cursor:pointer;box-sizing:border-box}.calendar-task-bar .calendar-task-name{overflow:hidden;text-overflow:ellipsis}.calendar-task-bar:hover{filter:brightness(.96)}.calendar-cell{border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:4px;min-height:90px;overflow:hidden}.calendar-cell:nth-child(7n){border-right:none}.calendar-cell-empty{background:#fafafa}.calendar-cell-today{background:#ebf8ff}.calendar-cell-holiday{background:#f9fafb}.calendar-cell-holiday .calendar-cell-day{color:#a0aec0}.calendar-cell-day{font-size:13px;font-weight:500;color:#4a5568;padding:2px 6px;margin-bottom:4px}.calendar-day-today{background:#3182ce;color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px}.calendar-cell-tasks{display:flex;flex-direction:column;gap:2px}.gantt-today-line{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed #f97316;z-index:3;pointer-events:none}.gantt-day.today,.gantt-hour-day.today{background:#fff7ed}.gantt-day.today,.gantt-day.today .gantt-day-num,.gantt-hour-day.today .gantt-day-num{color:#ea580c;font-weight:700}.calendar-task-chip{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;font-size:11px;overflow:hidden;cursor:default}.calendar-task-chip:hover{filter:brightness(.95)}.calendar-milestone-chip{position:absolute;background:#fffbeb;border-left:3px solid #f59e0b;color:#b45309;max-width:calc(100% / 7 - 4px);white-space:nowrap;z-index:1}.calendar-task-name{color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-more-tasks{font-size:11px;color:#718096;padding:2px 6px}.project-header-actions{display:flex;align-items:center;gap:8px;margin-left:10px;overflow:visible;position:relative;z-index:10}.download-dropdown-wrapper{position:relative}.download-trigger-btn{white-space:nowrap}.download-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001f;min-width:340px;z-index:1000;padding:6px}.download-dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:background .12s}.download-dropdown-item:hover{background:#f9fafb}.download-dropdown-text{display:flex;flex-direction:column;gap:2px}.download-dropdown-label{font-size:13px;font-weight:500;color:#1f2937}.download-dropdown-desc{font-size:11px;color:#9ca3af;line-height:1.3;white-space:nowrap}.download-dropdown-hint{display:flex;align-items:center;gap:6px;padding:8px 12px;margin-top:4px;border-top:1px solid #f3f4f6;font-size:12px;color:#9ca3af}.wbs-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;min-height:400px}.empty-icon{margin-bottom:20px;opacity:.5}.empty-text{font-size:16px;color:#6b7280;margin-bottom:24px}.add-task-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;font-size:14px}.wbs-loading{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#6b7280}.ai-assistant-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.ai-assistant-btn:hover{background:linear-gradient(135deg,#7c3aed,#4f46e5)}.header-title-row{display:flex;align-items:center;gap:8px;min-width:0}.ai-assistant-btn.ai-assistant-inline{height:24px;padding:0 10px;gap:4px;font-size:12px;border-radius:999px;flex-shrink:0;box-shadow:0 2px 8px #8b5cf64d}.ai-assistant-btn.ai-assistant-inline svg{width:13px;height:13px}.ai-assistant-btn svg{flex-shrink:0}.ai-assistant-overlay{position:fixed;top:0;right:0;bottom:0;z-index:1050;display:flex;justify-content:flex-end}.ai-assistant-sidebar{width:420px;max-width:100vw;height:100%;background:#fff;box-shadow:-4px 0 20px #0000001f;display:flex;flex-direction:column}.ai-assistant-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.ai-assistant-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#1f2937}.ai-assistant-title svg{color:#8b5cf6}.ai-assistant-close{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#6b7280;display:flex;align-items:center;justify-content:center}.ai-assistant-close:hover{background:#f3f4f6;color:#374151}.ai-assistant-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ai-msg{display:flex;max-width:90%}.ai-msg.user{align-self:flex-end}.ai-msg.ai{align-self:flex-start}.ai-msg-content{display:flex;flex-direction:column;gap:4px}.ai-msg.user .ai-msg-content{align-items:flex-end}.ai-msg-text{padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.ai-msg.user .ai-msg-text{background:#8b5cf6;color:#fff;border-bottom-right-radius:4px}.ai-msg.ai .ai-msg-text{background:#f3f4f6;color:#1f2937;border-bottom-left-radius:4px}.ai-typing{display:flex;gap:4px;padding:12px 16px;background:#f3f4f6;border-radius:12px 12px 12px 4px}.ai-typing span{width:6px;height:6px;background:#9ca3af;border-radius:50%;animation:aiTyping 1.2s infinite}.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}@keyframes aiTyping{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.ai-typing-text{align-self:center;margin-left:8px;font-size:13px;color:#6b7280;white-space:nowrap}.wbs-preview{margin-top:8px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.wbs-preview-header{padding:8px 12px;font-size:12px;font-weight:600;color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb}.wbs-preview-item{padding:6px 12px;font-size:12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #f3f4f6}.wbs-preview-item:last-child{border-bottom:none}.wbs-preview-name{color:#374151}.wbs-preview-hours{color:#9ca3af;font-size:11px;margin-left:auto}.ai-apply-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#f0fdf4;border-top:1px solid #bbf7d0;border-bottom:1px solid #bbf7d0;flex-shrink:0}.ai-apply-hint{font-size:12px;color:#166534}.ai-apply-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#22c55e;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.ai-apply-btn:hover{background:#16a34a}.ai-assistant-input{padding:12px 16px;border-top:1px solid #e5e7eb;flex-shrink:0}.ai-input-box{position:relative}.ai-input-textarea{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;padding:10px 48px 34px 12px;font-size:13px;line-height:1.5;resize:none;font-family:inherit;color:#1f2937;outline:none;min-height:72px}.ai-input-textarea:focus{border-color:#8b5cf6}.ai-input-textarea:disabled{background:#f9fafb;color:#9ca3af}.ai-input-actions{position:absolute;right:8px;bottom:8px;display:flex}.ai-send-btn{background:transparent;color:#c3c8d0;border:none;border-radius:6px;padding:4px;cursor:not-allowed;display:flex;align-items:center;justify-content:center;transition:all .15s}.ai-send-btn.active{background:transparent;color:#8b5cf6;cursor:pointer}.ai-send-btn.active:hover{color:#7c3aed;background:#f3f0ff}.milestone-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:#94a3b8;cursor:pointer;transition:all .15s;flex-shrink:0;margin-left:4px}.milestone-btn:hover{background:#f1f5f9;color:#f59e0b}.milestone-btn.milestone-active{color:#f59e0b}.milestone-btn.milestone-active:hover{background:#fef3c7}.milestone-disabled{opacity:.4;cursor:not-allowed!important;pointer-events:none}.milestone-dash{display:block;text-align:center;color:#94a3b8;font-size:14px;line-height:1.5}.save-modal{max-width:520px;width:90%}.save-modal-header{text-align:center;padding:24px 24px 16px}.save-modal-header svg{margin-bottom:12px}.save-modal-header h3{margin:0 0 8px;font-size:18px;color:#1e293b}.save-modal-header p{margin:0;font-size:14px;color:#64748b;line-height:1.5;text-align:left}.save-modal-body{padding:0 24px}.save-modal-section{margin-bottom:16px}.save-modal-section-title{font-size:13px;font-weight:600;color:#475569;margin-bottom:12px;text-align:left}.save-modal-section-desc{display:none}.save-modal-btns{display:flex;flex-direction:column;gap:8px}.save-modal-btns-row{display:flex;gap:8px}.save-modal-btns-row .save-modal-btn{flex:1;min-width:0;padding:8px 10px;font-size:13px;justify-content:center;gap:6px}.save-modal-btn-tooltip{position:relative}.save-modal-btn-tooltip svg{flex-shrink:0}.save-modal-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:14px;color:#334155;cursor:pointer;transition:all .15s;text-align:left;position:relative}.save-modal-btn:hover{border-color:#cbd5e1;background:#f8fafc}.save-modal-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:100;box-shadow:0 4px 12px #00000026;pointer-events:none}.save-modal-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1e293b}.save-modal-btn-tooltip:hover .save-modal-tooltip{display:block}.save-modal-btn-text{display:flex;flex-direction:column;gap:2px;min-width:0}.save-modal-btn-label{font-size:14px;font-weight:500;color:inherit}.save-modal-btn-desc{font-size:12px;color:#94a3b8;line-height:1.4}.save-modal-btn.excel{color:#16a34a;border-color:#bbf7d0}.save-modal-btn.excel:hover{background:#f0fdf4}.save-modal-btn.word{color:#2563eb;border-color:#bfdbfe}.save-modal-btn.word:hover{background:#eff6ff}.save-modal-btn.html{color:#ea580c;border-color:#fed7aa}.save-modal-btn.html:hover{background:#fff7ed}.save-modal-btn.publish-local{color:#0d9488;border-color:#99f6e4}.save-modal-btn.publish-local:hover{background:#f0fdfa}.save-modal-btn.publish-cloud{color:#7c3aed;border-color:#ddd6fe}.save-modal-btn.publish-cloud:hover{background:#f5f3ff}.save-modal-footer{padding:16px 24px 20px;display:flex;justify-content:flex-end}.save-modal-close{padding:8px 20px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;font-size:14px;color:#475569;cursor:pointer;transition:all .15s}.save-modal-close:hover{background:#f1f5f9}.publish-success-modal{max-width:420px;width:90%;text-align:center}.publish-success-header{padding:28px 24px 16px}.publish-success-header svg{margin-bottom:12px}.publish-success-header h3{margin:0 0 8px;font-size:18px;color:#1e293b}.publish-success-header p{margin:0;font-size:14px;color:#64748b;line-height:1.5}.publish-success-hint{margin-top:10px!important;font-size:13px!important;color:#22c55e!important;font-weight:600}.publish-success-footer{padding:8px 24px 24px;display:flex;justify-content:center}.publish-success-btn{padding:10px 28px;border:none;border-radius:6px;background:#22c55e;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.publish-success-btn:hover{background:#16a34a}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.progress-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:3px;outline:none}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--thumb-color, #2563EB);border:2px solid #fff;box-shadow:0 1px 3px #00000040;cursor:pointer}.progress-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--thumb-color, #2563EB);border:2px solid #fff;box-shadow:0 1px 3px #00000040;cursor:pointer}.progress-slider:disabled::-webkit-slider-thumb,.progress-slider:disabled::-moz-range-thumb{cursor:default;box-shadow:none}.progress-number-input::-webkit-outer-spin-button,.progress-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.progress-number-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.project-list-page{padding:10px 10px 24px}.pl-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.pl-search{flex:1;max-width:360px;display:flex;align-items:center;gap:8px;padding:0 12px;height:38px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;color:#9ca3af;transition:border-color .2s,box-shadow .2s}.pl-search:focus-within{border-color:#a78bfa;box-shadow:0 0 0 3px #8b5cf61f}.pl-search input{flex:1;min-width:0;border:none;outline:none;background:none;font-size:13px;color:#1f2937}.pl-search input::placeholder{color:#9ca3af}.pl-search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:50%;background:#f3f4f6;color:#6b7280;cursor:pointer;flex-shrink:0;padding:0}.pl-search-clear:hover{background:#e5e7eb}.pl-create-btn{display:flex;align-items:center;gap:6px;margin-left:auto;height:38px;padding:0 18px;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #7c3aed4d;transition:all .2s}.pl-create-btn:hover{box-shadow:0 4px 12px #7c3aed66;transform:translateY(-1px)}.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.pl-card{background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:16px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;min-width:0}.pl-card:hover{border-color:#c4b5fd;box-shadow:0 6px 20px #7c3aed1f;transform:translateY(-2px)}.pl-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.pl-card-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pl-card-type{font-size:11px;font-weight:600;padding:3px 10px;border-radius:10px;white-space:nowrap}.pl-card-name{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-card-stats{display:flex;align-items:center;gap:14px;margin-bottom:12px}.pl-card-stat{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:#4b5563}.pl-card-bottom{display:flex;align-items:center;gap:8px}.pl-card-time{font-size:11px;color:#9ca3af}.pl-card-period{display:flex;align-items:center;gap:5px;font-size:11px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-card-enter{margin-left:auto;display:flex;align-items:center;gap:2px;font-size:12px;font-weight:500;color:#8b5cf6;opacity:0;transform:translate(-4px);transition:all .2s}.pl-card:hover .pl-card-enter{opacity:1;transform:translate(0)}.pl-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:80px 20px;background:#fff;border:1px dashed #e5e7eb;border-radius:12px}.pl-empty-text{font-size:13px;color:#9ca3af}.description-markdown{white-space:normal!important;word-break:break-word;cursor:inherit}.description-markdown>*:first-child{margin-top:0}.description-markdown>*:last-child{margin-bottom:0}.description-markdown p{margin:4px 0}.description-markdown h1,.description-markdown h2,.description-markdown h3,.description-markdown h4,.description-markdown h5,.description-markdown h6{margin:10px 0 4px;font-weight:600;line-height:1.4}.description-markdown h1{font-size:18px}.description-markdown h2{font-size:16px}.description-markdown h3{font-size:15px}.description-markdown h4,.description-markdown h5,.description-markdown h6{font-size:14px}.description-markdown ul,.description-markdown ol{margin:4px 0;padding-left:20px}.description-markdown li{margin:2px 0}.description-markdown code{background:#f3f4f6;border:1px solid #E5E7EB;border-radius:4px;padding:1px 5px;font-size:13px;font-family:SF Mono,Menlo,Consolas,monospace;color:#c2410c}.description-markdown pre{background:#f8fafc;border:1px solid #E5E7EB;border-radius:6px;padding:10px 12px;margin:6px 0;overflow-x:auto}.description-markdown pre code{background:none;border:none;padding:0;color:#1f2937;font-size:13px}.description-markdown blockquote{margin:6px 0;padding:4px 12px;border-left:3px solid #D1D5DB;color:#6b7280}.description-markdown a{color:#2563eb;text-decoration:underline}.description-markdown strong{font-weight:600}.description-markdown hr{border:none;border-top:1px solid #E5E7EB;margin:10px 0}.description-markdown table{border-collapse:collapse;margin:6px 0;font-size:13px}.description-markdown th,.description-markdown td{border:1px solid #E5E7EB;padding:4px 10px;text-align:left}.description-markdown th{background:#f9fafb;font-weight:600}.description-markdown img{max-width:100%;border-radius:6px}.description-edit-body-vditor{padding:0 20px}.description-edit-body-vditor .vditor-editor-host{border:1px solid #E2E8F0;border-radius:6px;overflow:hidden}.vditor-editor-host .vditor-toolbar{display:none!important}.description-edit-body-vditor .char-counter{text-align:right;margin:4px 0 0}.char-counter-over{color:#e53e3e;font-weight:600}.task-description-preview.description-markdown{white-space:normal!important}.task-description-preview.description-markdown p{margin:0;display:inline}.task-description-preview.description-markdown h1,.task-description-preview.description-markdown h2,.task-description-preview.description-markdown h3,.task-description-preview.description-markdown h4,.task-description-preview.description-markdown h5,.task-description-preview.description-markdown h6{display:inline;font-size:12px;margin:0;font-weight:600}.task-description-preview.description-markdown ul,.task-description-preview.description-markdown ol,.task-description-preview.description-markdown blockquote,.task-description-preview.description-markdown pre,.task-description-preview.description-markdown table,.task-description-preview.description-markdown hr{margin:0}.task-description-preview.description-markdown ul,.task-description-preview.description-markdown ol{padding-left:16px;display:inline}.task-description-preview.description-markdown li{display:inline;margin:0}.task-description-preview.description-markdown li::marker{content:"• "}.task-description-preview.description-markdown pre{display:inline;padding:0;background:none;border:none}.md-editor{width:100%;border:1px solid #d9d9d9;border-radius:8px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.md-editor>div{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.md-editor:focus-within{border-color:#8b5cf6}.md-editor .md-editor-content{flex:1;min-height:0;overflow-y:auto;padding:10px 14px;outline:none;font-size:14px;line-height:1.7;color:#333;white-space:pre-wrap;word-break:break-word}.md-editor .md-editor-content p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:#bfbfbf;pointer-events:none}.md-editor .md-editor-content p{margin:0 0 4px}.md-editor .md-editor-content h1,.md-editor .md-editor-content h2,.md-editor .md-editor-content h3,.md-editor .md-editor-content h4,.md-editor .md-editor-content h5,.md-editor .md-editor-content h6{margin:8px 0 4px;font-weight:600}.md-editor .md-editor-content h1{font-size:1.5em}.md-editor .md-editor-content h2{font-size:1.3em}.md-editor .md-editor-content h3{font-size:1.15em}.md-editor .md-editor-content h4,.md-editor .md-editor-content h5,.md-editor .md-editor-content h6{font-size:1em}.md-editor .md-editor-content ul,.md-editor .md-editor-content ol{margin:0 0 4px;padding-left:1.4em}.md-editor .md-editor-content blockquote{margin:4px 0;padding:2px 10px;border-left:3px solid #d9d9d9;color:#666}.md-editor .md-editor-content code{background:#f5f5f5;border-radius:3px;padding:1px 4px;font-family:Menlo,Consolas,monospace;font-size:.9em}.md-editor .md-editor-content pre{background:#f5f5f5;border-radius:6px;padding:8px 10px;overflow-x:auto}.md-editor .md-editor-content pre code{background:none;padding:0}.md-editor .md-editor-content hr{border:none;border-top:1px solid #e5e5e5;margin:8px 0}.md-editor .md-editor-content a{color:#8b5cf6}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}
