:root{--bg-primary:#0f1117;--bg-secondary:#1a1d27;--bg-tertiary:#242836;--bg-hover:#2a2f3e;--border-color:#2e3345;--text-primary:#e4e6ed;--text-secondary:#9499ad;--text-muted:#6b7089;--accent-primary:#4f46e5;--accent-hover:#6366f1;--warning:#d97706;--danger:#dc2626;--success:#059669;--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--row-height:36px;--header-height:56px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.4}.app-layout{flex-direction:column;height:100vh;display:flex;overflow:hidden}.project-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);height:var(--header-height);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.project-title-area{align-items:center;gap:10px;display:flex}.project-title-area h1{color:var(--text-primary);font-size:16px;font-weight:600}.project-role-badge{background:var(--bg-tertiary);color:var(--text-secondary);text-transform:capitalize;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.lock-badge{color:var(--warning);background:#d9770626;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.btn{font-family:var(--font-family);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;padding:6px 14px;font-size:12px;font-weight:500;transition:all .15s}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-warning{color:var(--warning);background:#d9770626;border-color:#d977064d}.btn-warning:hover{background:#d9770640}.btn-ghost{color:var(--text-secondary);border-color:var(--border-color);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:3px 10px;font-size:11px}.view-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);gap:0;padding:0 20px;display:flex}.view-tab{font-family:var(--font-family);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 20px;font-size:13px;font-weight:500;transition:all .15s}.view-tab:hover{color:var(--text-primary)}.view-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.main-content{flex:1;overflow:auto}.placeholder{height:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:15px;display:flex}.data-table-container{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1200px}.data-table thead{z-index:10;position:sticky;top:0}.data-table th{background:var(--bg-tertiary);text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-color);white-space:normal;height:calc(var(--row-height) * 1.5);vertical-align:middle;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:11px;font-weight:600;line-height:1.4}.data-table td{border-bottom:1px solid var(--border-color);height:var(--row-height);vertical-align:middle;padding:0}.activity-row{cursor:pointer}.activity-row:hover td{background:var(--bg-hover)}.activity-row td{background:var(--bg-secondary);padding:8px 12px;font-size:13px;font-weight:600}.activity-name-cell{align-items:center;gap:8px;display:flex;position:relative}.activity-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.activity-color-dot.clickable{cursor:pointer;border:2px solid #0000;width:14px;height:14px;transition:border-color .15s,transform .15s}.activity-color-dot.clickable:hover{border-color:#fff6;transform:scale(1.3)}.color-picker-overlay{z-index:100;position:fixed;inset:0}.color-picker-popup{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);z-index:101;padding:8px;position:fixed;box-shadow:0 8px 24px #0006}.color-picker-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.color-picker-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;transition:transform .1s,border-color .1s}.color-picker-swatch:hover{border-color:#fff6;transform:scale(1.2)}.color-picker-swatch.active{box-shadow:0 0 0 2px var(--accent-primary);border-color:#fff}.expand-icon{color:var(--text-muted);text-align:center;flex-shrink:0;width:16px;font-size:10px;transition:transform .15s}.expand-icon.expanded{transform:rotate(90deg)}.sub-activity-row td{background:var(--bg-primary)}.sub-activity-row:hover td{background:var(--bg-hover)}.sub-activity-name-cell{padding-left:38px!important}.cell-content{height:var(--row-height);align-items:center;width:100%;min-width:0;padding:0 12px;display:flex}.cell-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cell-editable{cursor:text;border-radius:var(--radius-sm)}.cell-editable:hover{background:#4f46e514}.cell-readonly{color:var(--text-secondary)}.cell-computed{color:var(--text-muted);font-style:italic}.cell-input{font-family:var(--font-family);width:100%;height:calc(var(--row-height) - 4px);background:var(--bg-tertiary);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;padding:0 8px;font-size:13px}.cell-input:focus{box-shadow:0 0 0 2px #4f46e540}.status-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.status-completed{color:var(--success);background:#05966926}.status-in-process{color:var(--warning);background:#d9770626}.status-not-started{color:var(--text-muted);background:#6b708926}.dep-chips{flex-wrap:wrap;gap:3px;padding:2px 0;display:flex}.dep-chip{background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;border-radius:3px;max-width:120px;padding:1px 6px;font-size:10px;overflow:hidden}.add-row-btn{color:var(--text-muted);font-family:var(--font-family);cursor:pointer;height:var(--row-height);background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px 6px 38px;font-size:12px;display:inline-flex}.add-row-btn:hover{color:var(--accent-primary)}.add-activity-row{border-bottom:1px solid var(--border-color);padding:8px 20px}.add-activity-row button{border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--font-family);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.add-activity-row button:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.validation-error{background:var(--danger);color:#fff;border-radius:var(--radius-sm);white-space:nowrap;z-index:100;margin-top:2px;padding:4px 8px;font-size:11px;position:absolute;top:100%;left:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-color)}.badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.role-badge{text-transform:capitalize}.role-badge-creator{color:var(--accent-primary);background:#4f46e526}.role-badge-editor{color:var(--success);background:#05966926}.role-badge-viewer{color:#eab308;background:#eab30826}.gantt-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.gantt-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;padding:10px 20px;display:flex}.gantt-toolbar label{color:var(--text-muted);font-size:11px}.gantt-toggle{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color);display:flex;overflow:hidden}.gantt-toggle button{font-family:var(--font-family);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 12px;font-size:11px;font-weight:500;transition:all .15s}.gantt-toggle button.active{background:var(--accent-primary);color:#fff}.gantt-body{flex:1;grid-template-rows:auto auto 1fr;grid-template-columns:240px 1fr;display:grid;overflow:auto}.gantt-label-header{background:var(--bg-tertiary);border-right:1px solid var(--border-color);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;z-index:5;grid-column:1;align-items:center;padding:0 12px;font-size:11px;font-weight:600;display:flex;position:sticky;left:0}.gantt-label-header-month,.gantt-label-header-day{border-bottom:1px solid var(--border-color)}.gantt-month-row{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);grid-column:2;display:flex}.gantt-month-cell{color:var(--text-secondary);text-align:center;border-right:1px solid var(--border-color);padding:2px 0;font-size:10px;font-weight:600}.gantt-day-row{background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);grid-column:2;display:flex}.gantt-day-cell{color:var(--text-muted);text-align:center;border-right:1px solid #2e334580;flex-direction:column;justify-content:center;align-items:center;font-size:9px;line-height:1.2;display:flex}.gantt-day-cell.weekend{color:#6b708980;background:#2e33454d}.gantt-day-cell.today{color:var(--accent-primary);background:#4f46e526;font-weight:600}.gantt-labels-col{border-right:1px solid var(--border-color);background:var(--bg-primary);z-index:5;grid-column:1;position:sticky;left:0}.gantt-label-row{border-bottom:1px solid var(--border-color);white-space:nowrap;text-overflow:ellipsis;align-items:center;height:32px;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.gantt-label-activity{background:var(--bg-secondary);cursor:pointer;gap:6px;font-weight:600}.gantt-label-activity:hover{background:var(--bg-hover)}.gantt-label-sub{color:var(--text-secondary);gap:6px;padding-left:28px}.gantt-label-serial{color:var(--text-muted);flex-shrink:0;min-width:24px;font-size:10px}.gantt-label-color{border-radius:50%;flex-shrink:0;width:8px;height:8px}.gantt-label-expand{color:var(--text-muted);text-align:center;flex-shrink:0;width:14px;font-size:9px;transition:transform .15s}.gantt-label-expand.expanded{transform:rotate(90deg)}.gantt-timeline-col{grid-column:2;position:relative}.gantt-row{border-bottom:1px solid var(--border-color);height:32px;position:relative;overflow:hidden}.gantt-row-activity{background:var(--bg-secondary)}.gantt-row-sub{background:var(--bg-primary)}.gantt-row-grid{pointer-events:none;display:flex;position:absolute;top:0;bottom:0;left:0}.gantt-row-grid-cell{border-right:1px solid #2e33454d;flex-shrink:0;height:100%}.gantt-row-grid-cell.weekend{background:#2e334526}.gantt-bar{cursor:default;z-index:2;border-radius:3px;height:20px;position:absolute;top:6px}.gantt-bar-actual{opacity:.9}.gantt-bar-planned{z-index:3;background:0 0;border:1.5px solid #ffffff80;border-radius:3px}.gantt-bar-activity{opacity:.6;border-radius:2px;height:12px;top:10px}.gantt-bar-inprocess{background-image:repeating-linear-gradient(45deg,#0000,#0000 3px,#ffffff26 3px 6px)}.gantt-bar-tooltip{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);white-space:nowrap;z-index:20;pointer-events:none;color:var(--text-primary);padding:6px 10px;font-size:11px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.gantt-bar-tooltip .tt-name{margin-bottom:2px;font-weight:600}.gantt-bar-tooltip .tt-dates{color:var(--text-secondary)}.gantt-today-line{background:var(--accent-primary);z-index:4;opacity:.7;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.project-actions{align-items:center;gap:8px;display:flex}.role-switcher{align-items:center;gap:6px;display:flex}.role-switcher label{color:var(--text-muted);font-size:11px}.role-switcher select,.role-switcher input{font-family:var(--font-family);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;padding:3px 6px;font-size:11px}.view-tabs{align-items:center}.view-tabs-spacer{flex:1}.view-tabs-completion{align-items:center;gap:20px;padding-right:4px;display:flex}.view-tabs-completion-item{align-items:center;gap:6px;display:flex}.view-tabs-completion-label{color:var(--text-muted);font-size:11px}.view-tabs-completion-date{font-size:12px;font-weight:600}.view-tabs-completion-date.on-track{color:var(--success)}.view-tabs-completion-date.delayed{color:var(--danger)}.btn-back{padding:4px 10px;font-size:12px}.data-table th.center{text-align:center}.cell-center{text-align:center;justify-content:center}.cell-input.center{text-align:center}.cell-input.error{border-color:var(--danger);box-shadow:0 0 0 2px #dc262640}.cell-error-msg{background:var(--danger);color:#fff;border-radius:var(--radius-sm);white-space:nowrap;z-index:100;pointer-events:none;margin-top:2px;padding:3px 8px;font-size:11px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.cell-wrapper{position:relative}.serial-num{color:var(--text-muted);flex-shrink:0;min-width:28px;font-size:11px;font-weight:500}.name-cell-inner{align-items:center;gap:4px;width:100%;padding-left:38px;display:flex;overflow:hidden}.name-cell-inner span:not(.serial-num):not(.delete-btn){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.delete-btn{opacity:0;color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px;transition:opacity .15s}.sub-activity-row:hover .delete-btn{opacity:1}.dep-cell-clickable{cursor:pointer;border-radius:var(--radius-sm)}.dep-cell-clickable:hover{background:#4f46e514}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;min-width:380px;max-width:500px;max-height:70vh;padding:20px;overflow-y:auto}.modal-title{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.modal-close:hover{color:var(--text-primary)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.dep-list-item{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}.dep-list-item:hover{background:var(--bg-hover)}.dep-list-item input[type=checkbox]{accent-color:var(--accent-primary);cursor:pointer}.dep-list-item .dep-serial{color:var(--accent-primary);min-width:32px;font-size:12px;font-weight:600}.dep-list-item .dep-name{color:var(--text-primary);font-size:12px}.dep-list-item.disabled{opacity:.4;cursor:not-allowed}.dep-section-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:8px 8px 4px;font-size:11px;font-weight:600}.dep-empty{color:var(--text-muted);padding:8px;font-size:12px}.prompt-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.prompt-box{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;min-width:340px;padding:20px}.prompt-box h3{margin-bottom:12px;font-size:14px;font-weight:600}.prompt-box input{font-family:var(--font-family);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);outline:none;margin-bottom:12px;padding:8px 10px;font-size:13px}.prompt-box input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #4f46e540}.prompt-actions{justify-content:flex-end;gap:8px;display:flex}.dashboard-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:24px 32px 16px;display:flex}.dashboard-title{font-size:20px;font-weight:600}.dashboard-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:24px 32px;display:grid}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;padding:16px 20px;transition:all .15s}.project-card:hover{border-color:var(--accent-primary);background:var(--bg-hover)}.project-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.project-card-name{font-size:14px;font-weight:600}.project-card-meta{color:var(--text-secondary);gap:6px;margin-bottom:12px;font-size:12px;display:flex}.project-card-footer{border-top:1px solid var(--border-color);padding-top:8px}.project-card-updated{color:var(--text-muted);font-size:11px}.dashboard-empty{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:60px 20px}.form-field{margin-bottom:16px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.form-input{font-family:var(--font-family);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);outline:none;padding:8px 10px;font-size:13px}.form-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #4f46e540}.form-textarea{resize:vertical;min-height:60px}.btn:disabled{opacity:.5;cursor:not-allowed}.loading-container{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{color:#f87171;background:#dc26261a;border-bottom:1px solid #dc26264d;justify-content:space-between;align-items:center;padding:12px 32px;font-size:13px;display:flex}.error-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.error-container h2{color:var(--text-primary);font-size:18px}.error-container p{color:var(--text-muted);max-width:400px;font-size:13px}.auth-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:32px}.auth-header{text-align:center;margin-bottom:24px}.auth-title{color:var(--text-primary);margin-bottom:6px;font-size:20px;font-weight:600}.auth-subtitle{color:var(--text-secondary);font-size:13px;line-height:1.5}.auth-form{flex-direction:column;gap:4px;display:flex}.auth-error{border-radius:var(--radius-sm);color:#f87171;background:#dc26261a;border:1px solid #dc26264d;margin-bottom:8px;padding:10px 12px;font-size:13px;line-height:1.4}.auth-submit{width:100%;margin-top:8px;padding:10px 16px;font-size:14px}.auth-footer{text-align:center;border-top:1px solid var(--border-color);color:var(--text-muted);justify-content:center;align-items:center;gap:6px;margin-top:20px;padding-top:16px;font-size:13px;display:flex}.auth-link{color:var(--accent-primary);font-weight:500;text-decoration:none}.auth-link:hover{color:var(--accent-hover);text-decoration:underline}.form-hint{color:var(--text-muted);margin-top:4px;font-size:11px;display:block}.team-panel{flex:1;padding:24px 32px;overflow-y:auto}.team-panel-inner{max-width:640px;margin:0 auto}.team-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.team-title{color:var(--text-primary);font-size:16px;font-weight:600}.team-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.team-invite-form{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:20px;padding:16px}.team-invite-row{align-items:center;gap:8px;display:flex}.team-invite-email-wrap{flex:1}.team-invite-role-select{flex-shrink:0;width:110px}.team-invite-error{border-radius:var(--radius-sm);color:#f87171;background:#dc26261a;border:1px solid #dc26264d;margin-top:8px;padding:8px 10px;font-size:12px;line-height:1.4}.team-invite-success{border-radius:var(--radius-sm);color:var(--success);background:#0596691a;border:1px solid #0596694d;margin-top:8px;padding:8px 10px;font-size:12px}.team-invite-hint{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:1.4}.team-list{flex-direction:column;gap:2px;margin-bottom:24px;display:flex}.team-member{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:12px;padding:10px 12px;transition:background .15s;display:flex}.team-member:hover{background:var(--bg-hover)}.team-member-avatar{background:var(--bg-tertiary);width:36px;height:36px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.team-member-info{flex:1;min-width:0}.team-member-name{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.team-member-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.team-creator-badge{color:var(--accent-primary);background:#4f46e526;border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500}.team-member-role{flex-shrink:0}.team-role-badge{text-transform:capitalize;border-radius:10px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-block}.team-role-creator{color:var(--accent-primary);background:#4f46e526}.team-role-editor{color:var(--success);background:#05966926}.team-role-viewer{color:#eab308;background:#eab30826}.team-role-select{font-family:var(--font-family);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:10px;outline:none;padding:3px 8px;font-size:11px;font-weight:500}.team-role-select:hover{border-color:var(--accent-primary)}.team-role-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #4f46e540}.team-member-actions{flex-shrink:0}.team-btn-remove{color:var(--text-muted);border-color:var(--border-color);background:0 0}.team-btn-remove:hover{color:var(--danger);background:#dc262614;border-color:#dc26264d}.team-confirm-remove{align-items:center;gap:6px;display:flex}.team-confirm-text{color:var(--danger);font-size:11px;font-weight:500}.team-btn-confirm-yes{background:var(--danger);color:#fff;border-color:var(--danger)}.team-btn-confirm-yes:hover{background:#ef4444}.team-legend{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px}.team-legend-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:12px;font-weight:600}.team-legend-grid{flex-direction:column;gap:8px;display:flex}.team-legend-item{color:var(--text-secondary);align-items:center;gap:10px;font-size:12px;line-height:1.4;display:flex}.team-legend-item .team-role-badge{text-align:center;min-width:56px}.invitation-popup{width:90vw;max-width:460px}.invitation-popup-subtitle{color:var(--text-secondary);margin-bottom:16px;font-size:13px}.invitation-popup-list{flex-direction:column;gap:10px;max-height:320px;display:flex;overflow-y:auto}.invitation-popup-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.invitation-popup-item-info{flex:1;min-width:0}.invitation-popup-project-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.invitation-popup-role{color:var(--text-secondary);margin-top:2px;font-size:12px}.invitation-popup-actions{flex-shrink:0;gap:6px;display:flex}.invitation-popup-processing{color:var(--text-muted);font-size:12px;font-style:italic}.invitation-banner{border-radius:var(--radius-md);cursor:pointer;background:#4f46e51a;border:1px solid #4f46e540;justify-content:space-between;align-items:center;margin:0 24px 16px;padding:10px 16px;transition:background .15s;display:flex}.invitation-banner:hover{background:#4f46e526}.invitation-banner span{color:var(--text-primary);font-size:13px}.team-member-status{flex-shrink:0}.team-status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.team-status-pending{color:var(--warning);background:#d9770626}.team-status-declined{color:#f87171;background:#dc26261f}.team-btn-resend{color:var(--accent-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #4f46e54d;padding:2px 10px;font-size:11px;transition:all .15s}.team-btn-resend:hover{border-color:var(--accent-primary);background:#4f46e51a}.team-invitation-row{opacity:.75}.team-invitation-row .team-member-avatar{background:var(--bg-tertiary);border:1px dashed var(--border-color)}.presence-container{align-items:center;gap:8px;display:flex}.presence-label{color:var(--text-muted);font-size:11px;font-weight:500}.presence-avatars{align-items:center;display:flex}.presence-avatar{color:#fff;border:2px solid var(--bg-secondary);cursor:default;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-left:-6px;font-size:11px;font-weight:600;display:flex;position:relative}.presence-avatar:first-child{margin-left:0}.presence-avatar-tooltip{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);white-space:nowrap;z-index:50;pointer-events:none;color:var(--text-primary);padding:4px 8px;font-size:11px;font-weight:400;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.presence-overflow{background:var(--bg-tertiary);border:2px solid var(--bg-secondary);width:28px;height:28px;color:var(--text-secondary);cursor:default;border-radius:50%;justify-content:center;align-items:center;margin-left:-6px;font-size:10px;font-weight:600;display:flex}.cell-locked{position:relative;cursor:not-allowed!important}.cell-locked .cell-content{cursor:not-allowed}.cell-locked:after{content:"";border-radius:var(--radius-sm);pointer-events:none;background:#d977060f;border:1px solid #d9770640;position:absolute;inset:0}.cell-lock-tooltip{border:1px solid var(--border-color);border-radius:var(--radius-sm);white-space:nowrap;z-index:50;pointer-events:none;color:var(--accent-primary);background:#000;padding:3px 8px;font-size:10px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0009}.history-panel-overlay{z-index:1000;background:#0006;position:fixed;inset:0}.history-panel{background:var(--bg-secondary);border-left:1px solid var(--border-color);flex-direction:column;width:400px;max-width:90vw;animation:.2s ease-out slideInRight;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #0000004d}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.history-panel-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:16px 20px;display:flex}.history-panel-title{color:var(--text-primary);font-size:15px;font-weight:600}.history-panel-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px}.history-filters{border-bottom:1px solid var(--border-color);flex-wrap:wrap;flex-shrink:0;gap:6px;padding:12px 20px;display:flex}.history-filter-chip{font-family:var(--font-family);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:12px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .15s}.history-filter-chip:hover{border-color:var(--accent-primary);color:var(--text-primary)}.history-filter-chip.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.history-panel-body{flex:1;padding:16px 20px;overflow-y:auto}.history-panel-loading{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 0;display:flex}.history-panel-error{border-radius:var(--radius-md);color:#f87171;background:#dc26261a;border:1px solid #dc26264d;padding:12px;font-size:13px}.history-panel-empty{text-align:center;color:var(--text-muted);padding:40px 0;font-size:13px}.history-timeline{flex-direction:column;gap:0;display:flex;position:relative}.history-timeline:before{content:"";background:var(--border-color);width:2px;position:absolute;top:8px;bottom:8px;left:7px}.history-event{gap:14px;padding:12px 0;display:flex;position:relative}.history-event:first-child{padding-top:0}.history-event-dot{background:var(--bg-tertiary);border:2px solid var(--accent-primary);z-index:1;border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-top:2px}.history-event-content{flex:1;min-width:0}.history-event-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.history-event-user{color:var(--text-primary);font-size:13px;font-weight:600}.history-event-time{color:var(--text-muted);white-space:nowrap;font-size:11px}.history-event-type{color:var(--text-secondary);margin-bottom:6px;font-size:12px}.history-changes{flex-direction:column;gap:6px;margin-top:6px;display:flex}.history-change-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:6px 10px;font-size:12px}.history-change-field{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;font-size:11px;font-weight:600;display:block}.history-change-values{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.history-change-old{color:#f87171;text-decoration:line-through}.history-change-arrow{color:var(--text-muted);font-size:11px}.history-change-new{color:var(--success);font-weight:500}.history-btn{opacity:0;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:14px;transition:opacity .15s,color .15s}.sub-activity-row:hover .history-btn{opacity:1}.history-btn:hover{color:var(--accent-primary)}
