.landing-sidebar{width:260px;min-width:260px;background:var(--bg);border-right:1px solid var(--border-subtle-new);display:flex;flex-direction:column;overflow-y:auto;transition:width var(--transition-base),min-width var(--transition-base);position:relative;z-index:1}.landing-sidebar.collapsed{width:48px;min-width:48px;overflow:hidden}.sidebar-toggle{display:flex;align-items:center;justify-content:center;padding:var(--sp-3);cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-fast);background:none;border:none;width:100%}.sidebar-toggle:hover{color:var(--text-primary)}.sidebar-section{padding:var(--sp-1) 0;border-bottom:1px solid var(--border-subtle-new)}.sidebar-section:last-child{border-bottom:none}.section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4) var(--sp-1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);gap:6px}.section-header span{flex:1}.section-action{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.section-action:hover{color:var(--text-primary);background:var(--bg-muted)}.sidebar-item{display:flex;align-items:center;gap:var(--sp-2);width:calc(100% - var(--sp-4));padding:var(--sp-2) var(--sp-4);border:none;border-radius:var(--radius-sm);background:none;color:var(--text-secondary);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);text-align:left;margin:1px var(--sp-2)}.sidebar-item:hover{background:var(--bg-muted);color:var(--text-primary)}.sidebar-item.active{background:var(--blue);color:var(--text-primary)}.sidebar-item.compact{padding:5px var(--sp-4);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item.my-tasks{font-weight:600}.overdue-badge{background:var(--danger);color:var(--text-primary);border-radius:var(--radius-full);min-width:20px;height:20px;font-size:var(--fs-xs);font-weight:700;display:flex;align-items:center;justify-content:center;margin-left:auto;padding:0 var(--sp-1)}.program-node,.program-item{position:relative}.program-color-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.program-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.program-expand-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;display:flex;align-items:center;margin-left:auto;flex-shrink:0}.program-expand-btn:hover{color:var(--text-primary)}.program-stats{display:flex;gap:var(--sp-2);padding:2px var(--sp-4) 6px var(--sp-10);font-size:var(--fs-xs);color:var(--text-tertiary)}.program-delayed{color:var(--warning)}.sidebar-empty{display:block;padding:var(--sp-1) var(--sp-4);font-size:var(--fs-xs);color:var(--text-tertiary);font-style:italic}.favorite-icon{color:var(--warning);flex-shrink:0}.program-node.drag-over{background:var(--blue-subtle-new);border-radius:var(--radius-sm)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--border-subtle-new);padding-top:var(--sp-2)}.sidebar-item.recycle-bin{color:var(--text-tertiary)}.recycle-badge{background:var(--text-tertiary);color:var(--bg);border-radius:var(--radius-full);min-width:20px;height:20px;font-size:var(--fs-xs);font-weight:700;display:flex;align-items:center;justify-content:center;margin-left:auto;padding:0 var(--sp-1)}@media(max-width:768px){.landing-sidebar{display:none}}.landing-project-card{position:relative;padding:var(--sp-5);cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1)}.landing-project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-default-new)}.card-favorite{position:absolute;top:var(--sp-3);right:var(--sp-3);background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--sp-1);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast);z-index:1}.card-favorite:hover,.card-favorite.favorited{color:var(--warning)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--sp-3);padding-right:var(--sp-6)}.card-name{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);line-height:1.3;margin:0}.card-progress{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.card-progress-bar{flex:1;height:6px;background:var(--bg-muted);border-radius:3px;overflow:hidden}.card-progress-fill{height:100%;background:var(--blue);border-radius:3px;transition:width var(--transition-slow)}.card-progress-pct{font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary);min-width:30px;text-align:right}.card-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px var(--sp-3)}.card-meta-item{display:flex;flex-direction:column;gap:1px}.card-meta-label{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px}.card-meta-value{font-size:var(--fs-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landing-project-card[draggable=true]{cursor:grab}.landing-project-card:active{cursor:grabbing}.landing-project-card.card-selected{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue),var(--shadow-glow-blue)}.landing-project-card:focus-visible{box-shadow:0 0 0 2px var(--blue);outline:none}.date-input-wrapper{position:relative;display:inline-flex;align-items:center}.date-input-wrapper>input[type=text]{padding-right:28px;width:100%}.date-input-hidden{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.date-input-calendar-btn{position:absolute;right:6px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;opacity:.6}.date-input-calendar-btn:hover{opacity:1;color:var(--text-primary)}.phone-input-wrapper{display:flex;gap:4px;align-items:center}.phone-code-select{width:90px;flex-shrink:0;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;padding:6px 4px;color:var(--text-primary);font-size:12px;font-family:var(--font)}.phone-code-select:focus{border-color:var(--blue)}.phone-number-input{flex:1;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;padding:6px 8px;color:var(--text-primary);font-size:13px;font-family:var(--font)}.phone-number-input:focus{border-color:var(--blue)}.wizard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center}.wizard-modal{width:700px;max-height:80vh;overflow-y:auto;padding:var(--sp-6);box-shadow:var(--shadow-lg)}.wizard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-5)}.wizard-header h2{font-size:var(--fs-base);font-weight:700;color:var(--text-primary)}.wizard-close{background:none;border:none;color:var(--text-tertiary);font-size:22px;cursor:pointer;padding:var(--sp-1) var(--sp-2);line-height:1;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.wizard-close:hover{color:var(--text-primary)}.wizard-step{min-height:300px}.wizard-step h3{font-size:var(--fs-sm);font-weight:700;margin-bottom:var(--sp-4);color:var(--text-primary)}.step-hint{color:var(--text-tertiary);font-size:var(--fs-sm);margin-bottom:var(--sp-4)}.wizard-step label{display:block;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-1);margin-top:var(--sp-3)}.wizard-step>input,.wizard-step>textarea,.wizard-step>select{width:100%;background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);color:var(--text-primary);font-size:var(--fs-sm);font-family:var(--font)}.wizard-step>textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.form-grid label{display:block;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-1);margin-top:0}.form-grid input,.form-grid select{width:100%;background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);color:var(--text-primary);font-size:var(--fs-sm);font-family:var(--font)}.editable-table{width:100%;border-collapse:collapse;margin:var(--sp-2) 0}.editable-table th{text-align:left;padding:var(--sp-2) var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle-new);font-weight:600;text-transform:none;letter-spacing:normal;background:transparent}.editable-table td{padding:var(--sp-1);border-bottom:none;height:auto}.editable-table input{width:100%;background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:6px var(--sp-2);color:var(--text-primary);font-size:var(--fs-sm);font-family:var(--font)}.editable-table input:focus{border-color:var(--blue)}.editable-table tr:hover td{background:transparent}.list-row{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-1);align-items:center}.list-row input{flex:1;background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);color:var(--text-primary);font-size:var(--fs-sm);font-family:var(--font)}.list-row input:focus{border-color:var(--blue)}.row-number{color:var(--text-tertiary);font-weight:500;min-width:24px;font-size:var(--fs-sm)}.remove-btn{background:none;border:none;color:var(--text-tertiary);font-size:var(--fs-md);cursor:pointer;padding:var(--sp-1) 6px;line-height:1;flex-shrink:0}.remove-btn:hover{color:var(--danger)}.add-row-btn{color:var(--blue);background:none;border:none;cursor:pointer;font-size:var(--fs-sm);padding:var(--sp-1) 0;font-family:var(--font)}.add-row-btn:hover{text-decoration:underline}.wizard-footer{display:flex;justify-content:space-between;align-items:center;padding-top:var(--sp-4);border-top:1px solid var(--border-subtle-new);margin-top:var(--sp-6)}.step-indicators{display:flex;gap:var(--sp-2)}.step-indicators span{width:28px;height:28px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--bg-muted);color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:600}.step-indicators span.active{background:var(--blue);color:var(--text-primary)}.wizard-buttons{display:flex;gap:var(--sp-2)}.wizard-buttons .btn-primary{background:var(--blue);color:var(--text-primary);padding:var(--sp-2) var(--sp-5);border-radius:var(--radius-full);border:none;cursor:pointer;font-size:var(--fs-sm);font-weight:600;font-family:var(--font);transition:all var(--transition-base)}.wizard-buttons .btn-primary:hover{box-shadow:0 4px 12px #0080ff4d;transform:translateY(-1px)}.wizard-buttons .btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.wizard-buttons .btn-secondary{background:var(--bg-muted);color:var(--text-secondary);padding:var(--sp-2) var(--sp-5);border-radius:var(--radius-full);border:1px solid var(--border-subtle-new);cursor:pointer;font-size:var(--fs-sm);font-weight:600;font-family:var(--font);transition:all var(--transition-base)}.wizard-buttons .btn-secondary:hover{background:var(--bg);color:var(--text-primary)}.my-tasks-panel{padding:var(--sp-6)}.my-tasks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4)}.my-tasks-header h2{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);margin:0}.my-tasks-header select{background:var(--bg-muted);color:var(--text-primary);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:6px var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer}.task-group{margin-bottom:var(--sp-5)}.group-header{font-size:var(--fs-sm);color:var(--text-secondary);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle-new);margin-bottom:var(--sp-2);font-weight:600}.group-header.group-overdue{color:var(--danger)}.task-row{display:grid;grid-template-columns:1fr 150px 80px 60px 100px 20px;gap:var(--sp-2);padding:10px var(--sp-3);border-radius:var(--radius-sm);cursor:pointer;align-items:center;transition:background var(--transition-fast)}.task-row:hover{background:var(--bg-muted)}.task-row:focus-visible{box-shadow:0 0 0 2px var(--blue);outline:none}.task-name{font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-project{color:var(--text-tertiary);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-progress{font-size:var(--fs-xs);color:var(--text-secondary);text-align:right}.task-due{font-size:var(--fs-xs);color:var(--text-tertiary);text-align:right}.priority-indicator{color:var(--warning);font-weight:700;font-size:var(--fs-sm)}.my-tasks-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-16) var(--sp-6);text-align:center}.my-tasks-empty-icon{color:var(--text-tertiary);margin-bottom:var(--sp-4);opacity:.5}.my-tasks-empty-title{font-size:var(--fs-md);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-2)}.my-tasks-empty-desc{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:360px;line-height:1.5}.project-filters{display:flex;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--border-subtle-new);align-items:center}.project-filters select,.project-filters input[type=date]{background:var(--bg-muted);color:var(--text-primary);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:6px var(--sp-3);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer}.project-filters input[type=date]{cursor:text;min-width:130px}.project-filters input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.clear-filters{color:var(--blue);background:transparent;border:none;cursor:pointer;font-size:var(--fs-sm);font-family:var(--font);padding:6px var(--sp-3);font-weight:600}.clear-filters:hover{color:var(--blue);text-decoration:underline}@media(max-width:768px){.project-filters{flex-direction:column;padding:var(--sp-3) var(--sp-4)}.project-filters select,.project-filters input[type=date]{width:100%}}.landing-page{display:flex;height:100vh;background:var(--bg-subtle);position:relative}.landing-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.landing-content{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column}.portfolio-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);padding:var(--sp-6) var(--sp-6) 0}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-6);background:var(--bg);border-bottom:1px solid var(--border-subtle-new);flex-shrink:0}.landing-header-left{display:flex;align-items:center;gap:var(--sp-3)}.landing-title{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);margin:0;line-height:1.2}.landing-subtitle{font-size:var(--fs-xs);color:var(--text-tertiary)}.landing-controls{display:flex;align-items:center;gap:var(--sp-2)}.landing-search-wrapper{position:relative;display:flex;align-items:center}.landing-search-icon{position:absolute;left:10px;color:var(--text-tertiary);pointer-events:none}.landing-search{background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font);font-size:var(--fs-sm);padding:6px 12px 6px 30px;width:200px;outline:none;transition:border-color var(--transition-fast)}.landing-search:focus{border-color:var(--blue)}.landing-search::placeholder{color:var(--text-tertiary)}.view-toggle{display:flex;gap:2px;background:var(--bg-muted);border-radius:var(--radius-sm);padding:2px}.view-toggle button{padding:6px 10px;border-radius:4px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.view-toggle button:hover{color:var(--text-secondary)}.view-toggle button.active{background:var(--blue);color:var(--text-primary)}.landing-user{display:flex;align-items:center;gap:6px;margin-left:var(--sp-1)}.landing-avatar{width:28px;height:28px;border-radius:var(--radius-full)}.landing-create-form{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);background:var(--bg-card-glass);border-bottom:1px solid var(--border-subtle-new)}.landing-create-form input{flex:1;max-width:400px}.project-grid{padding:var(--sp-6)}.project-grid.view-card{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-4)}.project-grid.view-list{display:flex;flex-direction:column;gap:var(--sp-1)}.project-grid.view-table{display:block;overflow-x:auto}.project-list-row{display:flex;align-items:center;gap:var(--sp-4);padding:10px var(--sp-4);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.project-list-row:hover{background:var(--bg-muted)}.list-name{flex:1;font-weight:600;font-size:var(--fs-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-progress{display:flex;align-items:center;gap:6px;width:120px}.list-tasks{font-size:var(--fs-xs);color:var(--text-tertiary);min-width:60px}.list-meta{font-size:var(--fs-xs);color:var(--text-tertiary);min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-tasks-placeholder{padding:var(--sp-6)}.my-tasks-placeholder h2{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-2)}.my-task-item{display:flex;align-items:center;gap:var(--sp-4);padding:10px var(--sp-4);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-subtle-new)}.my-task-item:hover{background:var(--bg-muted)}.my-task-name{flex:1;font-size:var(--fs-sm);font-weight:500;color:var(--text-primary)}.my-task-project,.my-task-date{font-size:var(--fs-xs);color:var(--text-tertiary)}.modal-content.small{width:400px;min-width:auto}.modal-buttons{display:flex;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-4)}.landing-context-menu{background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-default-new);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;padding:var(--sp-1) 0}.landing-ctx-header{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle-new);letter-spacing:.5px;font-weight:600}.landing-ctx-item{display:block;width:100%;text-align:left;padding:var(--sp-2) var(--sp-3);background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:var(--fs-sm);font-family:var(--font);transition:background var(--transition-fast)}.landing-ctx-item:hover,.landing-ctx-item:focus-visible{background:var(--bg-muted)}.landing-ctx-empty{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);color:var(--text-tertiary)}.landing-ctx-divider{height:1px;background:var(--border-subtle-new);margin:var(--sp-1) 0}.landing-ctx-danger{color:var(--danger)!important}.landing-ctx-danger:hover{background:#ef44441a}.landing-ctx-parent{position:relative}.landing-ctx-has-sub{display:flex;justify-content:space-between;align-items:center}.landing-ctx-arrow{font-size:10px;color:var(--text-tertiary);margin-left:var(--sp-2)}.landing-ctx-submenu{position:absolute;left:100%;top:-4px;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-default-new);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;padding:var(--sp-1) 0;z-index:var(--z-dropdown)}.project-list-row.selected{border-color:var(--blue);background:var(--blue-subtle-new)}.view-table tr.selected td{background:var(--blue-subtle-new)}.recycle-bin-view{padding:var(--sp-2) 0}.recycle-bin-view h3{font-size:var(--fs-base);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-1)}.recycle-hint{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:var(--sp-4)}.recycle-list{display:flex;flex-direction:column;gap:var(--sp-2)}.recycle-item{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:var(--radius-sm)}.recycle-item-info{display:flex;flex-direction:column;gap:2px}.recycle-item-name{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary)}.recycle-item-meta{font-size:var(--fs-xs);color:var(--text-tertiary)}.landing-admin-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-fast),background var(--transition-fast)}.landing-admin-btn:hover{color:var(--blue);background:var(--bg-muted)}@media(max-width:768px){.portfolio-kpis{grid-template-columns:repeat(2,1fr)}.landing-controls{flex-wrap:wrap;gap:var(--sp-2)}.landing-search-wrapper{flex:1;min-width:150px}.landing-search{width:100%}.project-grid.view-card{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.landing-sidebar{display:none}}@media(max-width:480px){.portfolio-kpis{grid-template-columns:1fr;padding:var(--sp-4) var(--sp-4) 0}.project-grid.view-card{grid-template-columns:1fr}.project-grid{padding:var(--sp-4)}.landing-header{flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4)}.landing-controls{width:100%}}.sidebar{width:230px;min-width:230px;background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border-subtle-new);display:flex;flex-direction:column;transition:width var(--transition-base),min-width var(--transition-base);z-index:var(--z-overlay);height:100vh;position:sticky;top:0;overflow:hidden}.sidebar-collapsed{width:58px;min-width:58px}.sidebar-collapsed .nav-label,.sidebar-collapsed .sidebar-project-name,.sidebar-collapsed .sidebar-user-info span,.sidebar-collapsed .sidebar-footer-text{display:none}.sidebar-collapsed .sidebar-nav-item{justify-content:center;padding:10px}.sidebar-collapsed .sidebar-nav-item.active{padding-left:7px}.sidebar-collapsed .sidebar-toggle-btn{justify-content:center}.sidebar-collapsed .sidebar-user{justify-content:center;padding:6px 0}.sidebar-header{padding:12px;border-bottom:1px solid var(--border-subtle-new);display:flex;align-items:center;justify-content:space-between}.sidebar-logo{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px;border-radius:var(--radius-sm);background:transparent;border:none;color:inherit}.sidebar-logo:hover{background:var(--bg-muted)}.sidebar-title{font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:1px}.sidebar-project-name{padding:8px 16px;font-size:11px;font-weight:600;color:var(--blue);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle-new);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav{flex:1;padding:8px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar-section-divider{height:1px;background:var(--border-subtle-new);margin:4px 8px}.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-family:var(--font);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;width:100%;text-align:left}.sidebar-nav-item:hover{background:var(--bg-muted);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--blue-subtle-new);color:var(--blue)}.sidebar-back-item{color:var(--text-tertiary)!important;font-size:12px!important}.sidebar-back-item:hover{color:var(--text-primary)!important}.sidebar-more-toggle{color:var(--text-tertiary)!important;font-size:12px!important}.sidebar-more-toggle:hover{color:var(--text-secondary)!important}.sidebar-toggle-btn{color:var(--text-tertiary)!important}.sidebar-toggle-btn:hover{color:var(--text-primary)!important;background:var(--bg-muted)}.sidebar-footer{padding:8px;border-top:1px solid var(--border-subtle-new);display:flex;flex-direction:column;gap:2px}.sidebar-user{display:flex;align-items:center;gap:8px;padding:6px 8px}.sidebar-avatar{width:28px;height:28px;border-radius:50%}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-wip-badge{font-size:9px;font-weight:600;color:var(--warning);background:#f59e0b26;padding:1px 4px;border-radius:3px;margin-left:4px;line-height:1.2;flex-shrink:0}.sidebar-overlay{display:none}@media(max-width:768px){.sidebar{width:58px;min-width:58px}.sidebar .nav-label,.sidebar .sidebar-project-name,.sidebar .sidebar-user-info span,.sidebar .sidebar-footer-text{display:none}.sidebar .sidebar-nav-item{justify-content:center;padding:10px}.sidebar.sidebar-mobile-open{width:230px;min-width:230px;position:fixed;left:0;top:0;bottom:0}.sidebar.sidebar-mobile-open .nav-label,.sidebar.sidebar-mobile-open .sidebar-project-name,.sidebar.sidebar-mobile-open .sidebar-user-info span,.sidebar.sidebar-mobile-open .sidebar-footer-text{display:unset}.sidebar.sidebar-mobile-open .sidebar-nav-item{justify-content:flex-start;padding:8px 12px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:calc(var(--z-overlay) - 1)}.sidebar-overlay.visible{display:block}}@media(max-width:480px){.sidebar{position:fixed;left:-230px;width:230px;min-width:230px;z-index:var(--z-overlay);transition:left var(--transition-base)}.sidebar .nav-label,.sidebar .sidebar-project-name,.sidebar .sidebar-user-info span{display:unset}.sidebar .sidebar-nav-item{justify-content:flex-start}.sidebar.sidebar-mobile-open{left:0}}.topbar{background:var(--bg);border-bottom:1px solid var(--border-subtle-new);padding:0 var(--sp-4);display:flex;align-items:center;justify-content:space-between;height:48px;gap:var(--sp-3);position:sticky;top:0;z-index:var(--z-sticky)}.topbar-left{display:flex;align-items:center;gap:10px}.topbar-breadcrumb{display:flex;align-items:center;gap:8px}.breadcrumb-link{font-size:13px;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition-fast);background:transparent;border:none;font-family:var(--font);padding:0}.breadcrumb-link:hover{color:var(--text-primary)}.breadcrumb-sep{font-size:13px;color:var(--text-tertiary);opacity:.5}.topbar-project-name{font-size:15px;font-weight:700;color:var(--text-primary)}.topbar-tabs{display:flex;gap:2px;background:var(--bg-muted);padding:2px;border-radius:var(--radius-full)}.topbar-tab{padding:6px 12px;border-radius:var(--radius-full);font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:transparent;border:none;font-family:var(--font)}.topbar-tab:hover{background:var(--bg-muted);color:var(--text-primary)}.topbar-tab.active{background:var(--blue-subtle-new);color:var(--blue)}.topbar-right{display:flex;align-items:center;gap:12px}.topbar-finish{font-size:12px;color:var(--text-tertiary)}.topbar-menu-wrapper{position:relative}.topbar-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dropdown)}.topbar-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden}.topbar-dropdown-item{display:block;width:100%;padding:9px 14px;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font);font-size:12px;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.topbar-dropdown-item:hover{background:var(--bg-muted);color:var(--text-primary)}.notif-bell{position:relative}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:var(--danger);color:var(--text-primary);font-size:9px;font-weight:700;border-radius:var(--radius-full);padding:0 4px;line-height:1}.notif-dropdown{min-width:280px;max-height:400px;overflow-y:auto;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown)}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border-subtle-new);font-size:12px;font-weight:600;color:var(--text-primary)}.notif-empty{padding:24px 12px;text-align:center;font-size:12px;color:var(--text-tertiary)}.notif-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 12px;border:none;background:transparent;text-align:left;cursor:pointer;font-family:var(--font);border-bottom:1px solid var(--border-subtle-new);transition:background var(--transition-fast)}.notif-item:hover{background:var(--bg-muted)}.notif-item.unread{background:#0080ff0f;border-left:3px solid var(--blue)}.notif-item-title{font-size:12px;font-weight:500;color:var(--text-primary)}.notif-item-body{font-size:11px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-item-time{font-size:10px;color:var(--text-tertiary)}.status-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);text-transform:capitalize}.topbar-hamburger{display:none;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--sp-2);align-items:center;justify-content:center}.topbar-overflow-menu{display:none;position:relative}.topbar-overflow-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--sp-1) var(--sp-2);font-size:18px;font-family:var(--font);line-height:1;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.topbar-overflow-btn:hover{background:var(--bg-muted);color:var(--text-primary)}@media(max-width:768px){.topbar{padding:0 var(--sp-3);gap:var(--sp-2)}.topbar-breadcrumb,.topbar-tabs{display:none}.topbar-overflow-menu,.topbar-hamburger{display:flex}.topbar .topbar-finish{display:none}}@media(min-width:769px){.topbar-overflow-menu,.topbar-hamburger{display:none}}.datepicker-wrapper{position:relative;display:inline-block;width:100%}.datepicker-trigger{cursor:pointer;width:100%;display:inline-block}.datepicker-dropdown{position:absolute;top:100%;left:-8px;z-index:var(--z-sticky);background:var(--bg-card-glass);border:1px solid var(--border-default-new);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:8px;width:252px;-webkit-user-select:none;user-select:none}.datepicker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.datepicker-header-label{font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer}.datepicker-header-label:hover{color:var(--blue)}.datepicker-nav{background:none;border:none;color:var(--text-tertiary);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.datepicker-nav:hover{background:var(--blue-subtle-new);color:var(--text-primary)}.datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:2px}.datepicker-weekday{font-size:10px;font-weight:600;text-align:center;padding:2px 0;color:var(--text-tertiary);text-transform:uppercase}.datepicker-weekday.non-working{color:var(--danger);opacity:.6}.datepicker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;outline:none}.datepicker-day{font-size:12px;text-align:center;padding:5px 0;border-radius:4px;cursor:pointer;color:var(--text-secondary);position:relative;line-height:1}.datepicker-day:hover{background:var(--blue-subtle-new);color:var(--text-primary)}.datepicker-day.other-month{color:var(--text-tertiary);opacity:.3}.datepicker-day.today{outline:1px solid var(--blue);outline-offset:-1px}.datepicker-day.selected{background:var(--blue);color:var(--text-primary);font-weight:600}.datepicker-day.focused{outline:2px solid var(--blue);outline-offset:-2px}.datepicker-day.non-working{color:var(--text-tertiary);opacity:.45;background:repeating-linear-gradient(135deg,transparent,transparent 3px,rgba(255,255,255,.03) 3px,rgba(255,255,255,.03) 4px)}.datepicker-day.non-working:hover{opacity:.7;background:var(--blue-subtle-new)}.datepicker-day.holiday{color:var(--danger);opacity:.6}.datepicker-day.holiday:after{content:"";position:absolute;bottom:1px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--danger)}.datepicker-day.holiday:hover{opacity:.9}.datepicker-footer{display:flex;align-items:center;gap:4px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-default-new)}.datepicker-footer-btn{background:none;border:none;font-size:11px;font-weight:600;cursor:pointer;padding:3px 8px;border-radius:4px;color:var(--text-tertiary)}.datepicker-footer-btn:hover{background:var(--blue-subtle-new);color:var(--text-primary)}.datepicker-footer-btn.ok-btn{background:var(--blue);color:var(--text-primary);font-weight:700;padding:3px 8px;border-radius:4px}.datepicker-footer-btn.ok-btn:hover{background:var(--blue);opacity:.9;color:var(--text-primary)}.datepicker-footer-btn.today-btn{color:var(--blue)}.datepicker-months{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px 0}.datepicker-month{font-size:12px;text-align:center;padding:8px 0;border-radius:4px;cursor:pointer;color:var(--text-secondary)}.datepicker-month:hover{background:var(--blue-subtle-new);color:var(--text-primary)}.datepicker-month.current{outline:1px solid var(--blue);outline-offset:-1px}.datepicker-month.selected{background:var(--blue);color:var(--text-primary);font-weight:600}.datepicker-input{flex:1;min-width:0;background:var(--bg-muted);border:1px solid var(--border-default-new);border-radius:4px;color:var(--text-secondary);font-size:11px;padding:3px 6px;outline:none;font-family:inherit}.datepicker-input:focus{border-color:var(--blue)}.datepicker-input.invalid{border-color:var(--danger);animation:datepicker-shake var(--transition-slow)}@keyframes datepicker-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.datepicker-tooltip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--bg-muted);color:var(--text-secondary);font-size:10px;padding:3px 6px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:var(--z-sticky);box-shadow:var(--shadow-md)}.task-table-container{overflow-y:auto;overflow-x:auto;outline:none}.date-placeholder{color:var(--text-tertiary);opacity:.5;font-style:italic;min-width:60px;display:inline-block;cursor:pointer}.date-placeholder:hover{opacity:.8;color:var(--blue)}.task-table{border-collapse:collapse;table-layout:fixed;min-width:100%}.task-table th{position:sticky;top:0;z-index:var(--z-sticky);background:var(--bg-muted);text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:11px;padding:0 8px;height:44px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle-new)}.task-table th.sortable-header{cursor:pointer}.task-table th.sortable-header:hover{background:var(--blue-subtle-new)}.col-resize-handle{position:absolute;top:0;right:-2px;width:5px;height:100%;cursor:col-resize;z-index:3}.col-resize-handle:hover,.col-resize-handle:active{background:var(--blue);opacity:.6}.task-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;padding:0 8px;height:var(--gantt-row-height);vertical-align:middle;text-align:center}.task-table tr td{color:var(--text-primary)}.task-table tr{cursor:pointer}.task-table tr:hover td{background:var(--bg-card-glass)}.task-table tr.selected td{background:var(--blue-subtle-new)}.task-table tr.level-phase td{font-weight:700}.task-table tr.level-milestone td{font-weight:600}.task-table tr.level-task td,.task-table tr.level-subtask td,.task-table tr.level-minitask td{font-weight:400}.group-header-row{cursor:pointer!important}.group-header-row:hover .group-header-cell{background:var(--blue-subtle-new)!important}.group-header-cell{background:var(--bg-card-glass)!important;border-bottom:1px solid var(--border-subtle-new);border-top:1px solid var(--border-subtle-new);padding:6px 12px!important;text-align:left!important;font-size:12px!important;font-weight:600;display:flex;align-items:center;gap:8px;height:auto!important}.group-collapse-icon{font-size:9px;color:var(--text-tertiary);width:12px}.group-color-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.group-label{color:var(--text-primary)}.group-count{color:var(--text-tertiary);font-weight:400;font-size:11px;margin-left:4px}.task-name-cell{text-align:left}.task-name{cursor:text;display:inline-block;overflow:hidden;text-overflow:ellipsis}.summary-name{font-weight:700}.level-phase{font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.5px}.level-milestone{font-weight:600;font-style:italic}.level-task{font-weight:400}.level-subtask{font-weight:400;color:var(--text-secondary)}.level-minitask{font-weight:400;color:var(--text-tertiary);font-size:11px}.level-icon{font-size:10px;flex-shrink:0;width:12px;text-align:center}.level-badge{font-size:10px;font-weight:600;white-space:nowrap}.milestone-icon{color:var(--gantt-bar-milestone);font-size:10px}.collapse-btn{font-size:8px!important;padding:2px 4px!important;color:var(--text-tertiary);min-width:16px}.inline-edit{width:100%;background:var(--bg-muted);border:1px solid var(--blue);border-radius:3px;color:var(--text-primary);font-family:var(--font);font-size:12px;padding:2px 6px;outline:none}.inline-edit-narrow{width:50px}.inline-edit-narrow::-webkit-inner-spin-button,.inline-edit-narrow::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.inline-edit-narrow[type=number]{-moz-appearance:textfield}.inline-edit[type=date]{width:100%;color-scheme:dark}.task-table td.cell-editing{overflow:visible;position:relative;z-index:5}.task-indicator{display:inline-block;font-size:9px;font-weight:600;padding:0 4px;border-radius:2px;line-height:16px;flex-shrink:0;letter-spacing:.3px}.task-indicator-constraint{background:#f59e0b33;color:var(--warning)}.task-indicator-type{background:var(--purple-subtle);color:var(--purple)}.inline-status-select{background:transparent;border:none;color:inherit;font-family:var(--font);font-size:11px;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;text-align-last:center;width:100%}.inline-status-select:hover{background:var(--blue-subtle-new)}.inline-status-select:focus{background:var(--bg-muted);border:1px solid var(--blue)}.inline-status-select option{background:var(--bg-card-glass);color:var(--text-secondary)}.priority-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.column-picker-header{position:relative}.column-picker-dropdown{position:absolute;right:0;top:100%;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:8px;min-width:160px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown)}.column-picker-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.column-picker-item:hover{color:var(--text-primary)}.column-picker-item input[type=checkbox]{accent-color:var(--blue)}.context-menu{position:fixed;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:4px 0;min-width:160px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown)}.ctx-item{padding:6px 16px;font-size:12px;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.ctx-item:hover{background:var(--bg-muted);color:var(--text-primary)}.ctx-disabled{opacity:.4;cursor:not-allowed}.ctx-disabled:hover{background:transparent}.ctx-go-parent{opacity:.5;cursor:pointer}.ctx-go-parent:hover{opacity:.8;background:var(--bg-muted)}.ctx-danger{color:var(--danger)}.ctx-danger:hover{background:#ef444426;color:var(--danger)}.ctx-submenu-label{padding:4px 16px 2px;font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.ctx-separator{height:1px;background:var(--border-default-new);margin:4px 0}.index-cell{position:relative}.drag-handle{display:none;cursor:grab;color:var(--text-tertiary);font-size:14px;line-height:1;-webkit-user-select:none;user-select:none;position:absolute;left:2px;top:50%;transform:translateY(-50%)}.drag-handle:active{cursor:grabbing}.row-checkbox{display:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);width:14px;height:14px;accent-color:var(--blue);cursor:pointer;margin:0}.index-cell:hover .row-checkbox,.task-table tr.selected .row-checkbox,.index-cell:hover .drag-handle{display:inline-block}.index-cell:hover .index-number,.task-table tr.selected .index-number{visibility:hidden}.header-checkbox{width:14px;height:14px;accent-color:var(--blue);cursor:pointer;margin:0}.task-table tr.dragging td{opacity:.35;background:var(--blue-subtle-new)}.task-table tr.drop-above td{box-shadow:inset 0 2px 0 0 var(--blue)}.task-table tr.add-row{cursor:default}.task-table tr.add-row td{background:transparent;border-top:1px dashed var(--border-default-new);height:var(--gantt-row-height)}.task-table tr.add-row:hover td{background:var(--blue-subtle-new)}.add-row-index{font-size:14px!important;font-weight:600;color:var(--text-tertiary)!important;text-align:center}.inline-add-input{background:transparent!important;border:none!important;border-bottom:1px dashed var(--text-tertiary)!important;border-radius:0!important;color:var(--text-secondary);font-style:italic;flex:1}.inline-add-input:focus{border-bottom-color:var(--blue)!important;background:var(--bg-muted)!important;color:var(--text-primary);font-style:normal;border-radius:3px!important;border:1px solid var(--blue)!important}.inline-add-input::placeholder{color:var(--text-tertiary);font-style:italic}.task-activity-icon{display:inline-flex;align-items:center;gap:2px;font-size:11px;color:var(--text-tertiary);cursor:pointer;padding:1px 4px;border-radius:3px;margin-left:4px;transition:color var(--transition-fast),background var(--transition-fast)}.task-activity-icon:hover{color:var(--blue);background:var(--blue-subtle-new)}.task-activity-icon.activity-muted{opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}tr:hover .task-activity-icon.activity-muted{opacity:.5}.task-activity-icon.activity-muted:hover{opacity:1}.task-activity-icon .activity-count{font-size:10px;font-weight:600}.task-table-wrap td{white-space:normal;word-wrap:break-word}.task-table-wrap .task-name{white-space:normal;overflow:visible;text-overflow:unset}.task-filter-bar{padding:6px 12px;background:var(--bg);border-bottom:1px solid var(--border-subtle)}.filter-row-main{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.filter-row-main select{height:28px;font-size:11px;padding:0 6px;min-width:100px}.filter-search{height:28px;font-size:12px;padding:0 10px;width:180px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-family:var(--font)}.filter-search::placeholder{color:var(--text-muted)}.filter-search:focus{outline:none;border-color:var(--blue)}.filter-toggle.active{color:var(--blue)}.filter-clear{color:var(--text-muted);font-size:11px}.filter-row-advanced{display:flex;align-items:center;gap:12px;margin-top:6px;flex-wrap:wrap}.filter-row-advanced label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary)}.filter-row-advanced select{height:26px;font-size:11px;padding:0 4px;min-width:90px}.filter-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.multi-select-wrapper{position:relative}.multi-select-btn{height:28px;font-size:11px;padding:0 8px;min-width:100px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:4px;font-family:var(--font);white-space:nowrap}.multi-select-btn:hover{border-color:var(--blue)}.multi-select-btn.has-selection{border-color:var(--blue);color:var(--text-primary)}.multi-select-caret{font-size:8px;margin-left:auto;opacity:.6}.multi-select-dropdown{position:absolute;top:100%;left:0;margin-top:2px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-lg);z-index:var(--z-sticky);min-width:150px;padding:4px 0}.multi-select-option{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:11px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.multi-select-option:hover{background:var(--bg-hover)}.multi-select-option input[type=checkbox]{accent-color:var(--blue);width:13px;height:13px;cursor:pointer;pointer-events:none}.task-group-header{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-input);border-bottom:1px solid var(--border-subtle);font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer}.task-group-header:hover{background:var(--bg-hover)}.task-group-count{font-size:10px;font-weight:500;color:var(--text-muted);background:var(--bg);padding:1px 6px;border-radius:8px}.task-detail-panel{width:340px;min-width:300px;max-width:400px;height:100%;display:flex;flex-direction:column;background:var(--bg-card-glass);border-left:1px solid var(--border-subtle-new);overflow:hidden}.panel-back-btn{display:none}.tdp-header{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-subtle-new);gap:8px}.tdp-header-info{display:flex;flex-direction:column;gap:4px;min-width:0}.tdp-task-name{font-weight:600;font-size:14px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tdp-task-meta{display:flex;gap:6px;align-items:center}.tdp-wbs{font-size:11px;color:var(--text-tertiary);font-family:monospace}.tdp-badge{display:inline-block;font-size:10px;padding:1px 6px;border-radius:3px;background:var(--bg-muted);color:var(--text-secondary)}.tdp-badge-level{background:var(--purple-subtle);color:var(--purple)}.tdp-badge-critical{background:#ef444433;color:var(--danger)}.tdp-tabs{display:flex;border-bottom:1px solid var(--border-subtle-new);background:var(--bg)}.tdp-tab{flex:1;padding:8px 4px;font-size:11px;color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);text-align:center;white-space:nowrap}.tdp-tab:hover{color:var(--text-secondary)}.tdp-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.tdp-body{flex:1;overflow-y:auto;padding:12px}.tdp-section{display:flex;flex-direction:column;gap:12px}.tdp-field-group{display:flex;flex-direction:column;gap:4px}.tdp-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.tdp-select{background:var(--bg-muted);border:1px solid var(--border-default-new);border-radius:4px;color:var(--text-primary);font-size:12px;padding:6px 8px;outline:none}.tdp-select:focus{border-color:var(--blue)}.tdp-select-grow{flex:1;min-width:0}.tdp-input{background:var(--bg-muted);border:1px solid var(--border-default-new);border-radius:4px;color:var(--text-primary);font-size:12px;padding:6px 8px;outline:none}.tdp-input:focus{border-color:var(--blue)}.tdp-hint{font-size:11px;color:var(--text-tertiary);line-height:1.4}.tdp-color-row{display:flex;align-items:center;gap:8px}.tdp-color-row input[type=color]{width:32px;height:28px;padding:0;border:1px solid var(--border-default-new);border-radius:4px;cursor:pointer;background:none}.tdp-info-grid{border-top:1px solid var(--border-subtle-new);padding-top:8px;margin-top:4px}.tdp-info-row{display:flex;justify-content:space-between;font-size:11px;padding:2px 0}.tdp-info-row span:first-child{color:var(--text-tertiary)}.tdp-info-row span:last-child{color:var(--text-secondary);font-family:monospace}.tdp-empty{text-align:center;color:var(--text-tertiary);font-size:12px;padding:16px 0}.tdp-list-item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:var(--bg-muted);border-radius:4px;gap:8px}.tdp-list-item-info{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.tdp-list-item-name{font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tdp-remove-btn{color:var(--text-tertiary)!important;font-size:16px!important;padding:0 4px!important;flex-shrink:0}.tdp-remove-btn:hover{color:var(--danger)!important}.tdp-add-row{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--border-subtle-new);margin-top:4px}.tdp-textarea{width:100%;min-height:120px;background:var(--bg-muted);border:1px solid var(--border-default-new);border-radius:4px;color:var(--text-primary);font-size:12px;font-family:inherit;padding:8px;outline:none;resize:vertical;line-height:1.5}.tdp-textarea:focus{border-color:var(--blue)}.task-comments{display:flex;flex-direction:column;height:100%;min-height:300px}.task-comments-list{flex:1;overflow-y:auto;padding:8px 0;display:flex;flex-direction:column;gap:12px}.comment-item{padding:0 4px}.comment-avatar{width:20px;height:20px;border-radius:50%}.comment-author{font-size:11px;font-weight:600;color:var(--text-primary)}.comment-time{font-size:10px;color:var(--text-tertiary);flex:1}.comment-delete{opacity:0;font-size:14px!important;padding:0 4px!important;color:var(--text-tertiary)!important}.comment-item:hover .comment-delete{opacity:1}.comment-delete:hover{color:var(--danger)!important}.comment-text{font-size:12px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;word-break:break-word}.comment-reply{margin-left:20px;margin-top:8px;padding-left:8px;border-left:2px solid var(--border-subtle-new)}.comment-input-area{display:flex;gap:8px;align-items:flex-end;padding:8px 0;border-top:1px solid var(--border-subtle-new);margin-top:auto}.comment-input{flex:1;background:var(--bg-muted);border:1px solid var(--border-default-new);border-radius:4px;color:var(--text-primary);font-size:12px;font-family:inherit;padding:6px 8px;outline:none;resize:none;line-height:1.4}.comment-input:focus{border-color:var(--blue)}.task-attachments{display:flex;flex-direction:column;gap:12px;height:100%}.attachment-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px;border:2px dashed var(--border-default-new);border-radius:6px;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.attachment-dropzone:hover,.attachment-dropzone.dragover{border-color:var(--blue);background:var(--blue-subtle-new)}.attachment-dropzone-icon{font-size:20px;color:var(--text-tertiary);line-height:1}.attachment-dropzone-text{font-size:12px;color:var(--text-secondary)}.attachment-dropzone-hint{font-size:10px;color:var(--text-tertiary)}.attachment-list{display:flex;flex-direction:column;gap:6px}.attachment-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-muted);border-radius:4px}.attachment-item-icon{font-size:18px;flex-shrink:0;width:24px;text-align:center}.attachment-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.attachment-item-name{font-size:12px;color:var(--blue);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-item-name:hover{text-decoration:underline}.attachment-item-meta{font-size:10px;color:var(--text-tertiary)}.attachment-delete{opacity:0;font-size:16px!important;padding:0 4px!important;color:var(--text-tertiary)!important;flex-shrink:0}.attachment-item:hover .attachment-delete{opacity:1}.attachment-delete:hover{color:var(--danger)!important}.custom-field-label-row{display:flex;align-items:center;justify-content:space-between}.custom-field-delete{opacity:0;font-size:14px!important;padding:0 4px!important;color:var(--text-tertiary)!important}.tdp-field-group:hover .custom-field-delete{opacity:1}.custom-field-delete:hover{color:var(--danger)!important}.custom-field-checkbox{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);cursor:pointer}.custom-field-checkbox input[type=checkbox]{width:14px;height:14px;cursor:pointer}.custom-field-add-form{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-muted);border-radius:4px;border:1px solid var(--border-default-new)}@media(max-width:768px){.task-detail-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;min-width:0;z-index:var(--z-modal);background:var(--bg);overflow-y:auto;border-left:none}.tdp-header{position:sticky;top:0;background:var(--bg);z-index:1;border-bottom:1px solid var(--border-subtle-new);padding:var(--sp-4);display:flex;align-items:center;gap:var(--sp-3)}.panel-back-btn{display:flex}}@media(min-width:769px){.panel-back-btn{display:none}}.conversation-comments{display:flex;flex-direction:column;height:100%}.comments-list{flex:1;overflow-y:auto;padding-bottom:8px}.comment-item{padding:8px 0;border-bottom:1px solid var(--border-subtle-new)}.comment-item:last-child{border-bottom:none}.comment-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.comment-avatar{width:24px;height:24px;border-radius:50%;background:var(--blue);color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;flex-shrink:0;object-fit:cover}img.comment-avatar{background:none}.comment-name{font-weight:600;font-size:12px;color:var(--text-primary)}.comment-time{font-size:11px;color:var(--text-tertiary)}.comment-edited{font-size:10px;color:var(--text-tertiary);font-style:italic}.comment-text{font-size:13px;line-height:1.5;word-break:break-word;color:var(--text-secondary)}.mention-pill{background:var(--blue-subtle-new);color:var(--blue);padding:1px 4px;border-radius:3px;font-weight:500;cursor:pointer}.comment-actions{display:flex;gap:8px;margin-top:4px;opacity:.5;transition:opacity var(--transition-fast)}.comment-item:hover .comment-actions,.comment-actions:focus-within{opacity:1}.comment-actions button{font-size:11px;color:var(--text-tertiary);background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:3px;padding:0}.comment-actions button:hover{color:var(--text-primary)}.comment-delete-confirm{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-tertiary)}.comment-replies{padding-left:24px;border-left:2px solid var(--border-subtle-new);margin-left:12px}.comment-replies .comment-item{padding:6px 0;border-bottom:none}.comment-input-area{border-top:1px solid var(--border-subtle-new);padding-top:8px;display:flex;flex-direction:column}.reply-indicator{font-size:11px;color:var(--text-tertiary);display:flex;align-items:center;gap:4px;margin-bottom:4px}.comment-edit-area{margin:4px 0}.comment-edit-input{width:100%;background:var(--bg-muted);color:var(--text-primary);border:1px solid var(--border-default-new);border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit;resize:vertical;outline:none}.comment-edit-input:focus{border-color:var(--blue)}.comment-edit-actions{display:flex;gap:6px;margin-top:4px}.comment-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction-badge{font-size:12px;padding:2px 6px;border-radius:12px;background:var(--bg-muted);border:1px solid var(--border-subtle-new);cursor:pointer;color:var(--text-secondary);display:inline-flex;align-items:center;gap:3px;transition:background var(--transition-fast),border-color var(--transition-fast)}.reaction-badge:hover{background:var(--bg-muted)}.reaction-badge.active{background:var(--blue-subtle-new);border-color:var(--blue)}.reaction-badge.reaction-add{padding:2px 5px;color:var(--text-tertiary)}.reaction-badge.reaction-add:hover{color:var(--text-primary)}.emoji-picker{position:absolute;bottom:100%;left:0;background:var(--bg-card-glass);border:1px solid var(--border-default-new);border-radius:var(--radius-sm);padding:8px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin-bottom:4px}.emoji-picker-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:none;border:none;border-radius:4px;font-size:16px;transition:transform var(--transition-fast)}.emoji-picker-btn:hover{transform:scale(1.2);background:var(--bg-muted)}.mention-input-wrapper{position:relative}.mention-textarea{width:100%;min-height:60px;max-height:160px;background:var(--bg-muted);color:var(--text-primary);border:1px solid var(--border-default-new);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit;resize:none;outline:none;overflow-y:auto}.mention-textarea:focus{border-color:var(--blue)}.mention-dropdown{position:absolute;bottom:100%;left:0;right:0;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:6px;max-height:160px;overflow-y:auto;z-index:var(--z-dropdown);box-shadow:var(--shadow-lg);margin-bottom:4px}.mention-item{padding:6px 10px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text-secondary)}.mention-item:hover,.mention-item.active{background:var(--bg-muted);color:var(--text-primary)}.comments-skeleton{display:flex;flex-direction:column;gap:16px;padding:12px 0}.comment-skeleton{display:flex;gap:10px;align-items:flex-start}.skeleton{background:var(--bg-muted);border-radius:4px;animation:skeleton-pulse 1.5s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.conversation-files{display:flex;flex-direction:column;height:100%}.files-drop-zone{border:2px dashed var(--border-default-new);border-radius:var(--radius-sm);padding:20px;text-align:center;margin-bottom:12px;transition:border-color var(--transition-fast),background var(--transition-fast);cursor:pointer}.files-drop-zone:hover{border-color:var(--text-tertiary)}.files-drop-zone.drag-over{border-color:var(--blue);background:var(--blue-subtle-new)}.files-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;gap:10px;padding:8px;background:var(--bg-muted);border-radius:6px}.file-thumbnail{width:48px;height:36px;object-fit:cover;border-radius:4px;flex-shrink:0}.file-icon{width:48px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.file-info{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:2px}.file-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.file-meta{font-size:11px;color:var(--text-tertiary)}.file-actions{display:flex;gap:4px;flex-shrink:0;align-items:center}.file-actions button,.file-actions a{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:3px;transition:color var(--transition-fast)}.file-actions button:hover,.file-actions a:hover{color:var(--text-primary)}.file-delete-confirm{display:inline-flex;align-items:center;gap:4px}.files-skeleton{display:flex;flex-direction:column;gap:10px;padding:8px 0}.file-skeleton{display:flex;gap:10px;align-items:center}.conversation-panel{width:380px;min-width:340px;max-width:420px;height:100%;display:flex;flex-direction:column;background:var(--bg-card-glass);border-left:1px solid var(--border-subtle-new);overflow:hidden;z-index:var(--z-dropdown)}.conversation-panel .panel-back-btn{display:none}.conversation-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle-new);gap:8px}.conversation-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.conversation-header .btn-icon{flex-shrink:0;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.conversation-header .btn-icon:hover{background:var(--bg-muted);color:var(--text-primary)}.conversation-tabs{display:flex;border-bottom:1px solid var(--border-subtle-new)}.conversation-tabs button{flex:1;padding:8px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;transition:color var(--transition-fast),border-color var(--transition-fast)}.conversation-tabs button:hover{color:var(--text-secondary)}.conversation-tabs button.active{color:var(--text-primary);border-bottom-color:var(--blue)}.conversation-body{flex:1;overflow-y:auto;padding:12px}.conversation-placeholder{color:var(--text-tertiary);text-align:center;padding:40px 20px;font-size:13px}.conversation-notes{display:flex;flex-direction:column;gap:8px}.notes-rendered{font-size:13px;line-height:1.6;color:var(--text-primary)}.notes-rendered h1,.notes-rendered h2,.notes-rendered h3{margin:12px 0 6px;color:var(--text-primary)}.notes-rendered h1{font-size:18px}.notes-rendered h2{font-size:16px}.notes-rendered h3{font-size:14px}.notes-rendered p{margin:0 0 8px}.notes-rendered ul,.notes-rendered ol{margin:0 0 8px;padding-left:20px}.notes-rendered li{margin:2px 0}.notes-rendered a{color:var(--blue);text-decoration:none}.notes-rendered a:hover{text-decoration:underline}.notes-rendered code{background:var(--bg-muted);padding:1px 4px;border-radius:3px;font-size:12px;font-family:Cascadia Code,Fira Code,monospace}.notes-rendered pre{background:var(--bg-muted);padding:8px 12px;border-radius:4px;overflow-x:auto;margin:0 0 8px}.notes-rendered pre code{background:none;padding:0}.notes-rendered blockquote{border-left:3px solid var(--border-default-new);padding-left:12px;margin:0 0 8px;color:var(--text-secondary)}.notes-editor textarea{width:100%;min-height:200px;background:var(--bg-muted);color:var(--text-primary);border:1px solid var(--border-default-new);border-radius:4px;padding:8px;font-family:Cascadia Code,Fira Code,monospace;font-size:13px;resize:vertical;outline:none}.notes-editor textarea:focus{border-color:var(--blue)}.notes-actions{display:flex;gap:8px;justify-content:flex-end}@media(max-width:768px){.conversation-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;min-width:0;z-index:var(--z-modal);background:var(--bg);overflow-y:auto;border-left:none}.conversation-header{position:sticky;top:0;background:var(--bg);z-index:1;border-bottom:1px solid var(--border-subtle-new);padding:var(--sp-4);display:flex;align-items:center;gap:var(--sp-3)}.conversation-panel .panel-back-btn{display:flex}}@media(min-width:769px){.conversation-panel .panel-back-btn{display:none}}.command-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;z-index:var(--z-command)}.command-palette{background:var(--bg);border:1px solid var(--border-subtle-new);border-radius:var(--radius-lg);width:480px;max-height:400px;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden}.command-palette-input{width:100%;padding:14px 16px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle-new);color:var(--text-primary);font-size:var(--fs-sm);font-family:var(--font);outline:none}.command-palette-input::placeholder{color:var(--text-tertiary)}.command-palette-results{overflow-y:auto;max-height:340px;padding:4px 0}.command-palette-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;font-size:var(--fs-sm);color:var(--text-secondary)}.command-palette-item.selected{background:var(--blue-subtle-new);color:var(--text-primary)}.command-palette-item:hover{background:var(--blue-subtle-new)}.command-palette-wbs{color:var(--text-tertiary);font-size:var(--fs-xs);min-width:40px;font-family:monospace}.command-palette-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-palette-badge{font-size:9px;font-weight:600;padding:1px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}.command-palette-badge.critical{background:#ef444433;color:var(--danger)}.command-palette-badge.milestone{background:#f59e0b33;color:var(--warning)}.command-palette-empty{padding:16px;text-align:center;color:var(--text-tertiary);font-size:var(--fs-sm)}.gantt-view{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.gantt-toolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg);border-bottom:1px solid var(--border-subtle);min-height:38px;gap:12px}.gantt-toolbar-left,.gantt-toolbar-center,.gantt-toolbar-right{display:flex;align-items:center;gap:6px}.zoom-controls{display:flex;gap:2px;background:var(--bg-input);padding:2px;border-radius:4px}.toolbar-sep{width:1px;height:20px;background:var(--border-subtle);margin:0 4px;flex-shrink:0}.toolbar-split-btn{display:flex;align-items:stretch}.toolbar-split-btn>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-split-dropdown-wrapper{position:relative}.toolbar-split-arrow{border-top-left-radius:0!important;border-bottom-left-radius:0!important;padding:4px 5px!important;border-left:1px solid var(--border-glass)!important;font-size:9px!important}.toolbar-split-dropdown{position:absolute;top:100%;left:0;z-index:var(--z-dropdown);background:var(--bg-card);border:1px solid var(--border);border-radius:6px;min-width:140px;box-shadow:var(--shadow-md);overflow:hidden;margin-top:2px}.gantt-bulk-bar{display:flex;align-items:center;justify-content:space-between;padding:5px 12px;background:var(--blue-subtle-new);border-bottom:1px solid var(--border-subtle)}.bulk-bar-actions{display:flex;align-items:center;gap:6px}.bulk-bar-label{font-size:11px;font-weight:600;color:var(--blue);white-space:nowrap;margin-right:4px}.bulk-bar-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid var(--border-subtle);border-radius:4px;background:transparent;color:var(--text-secondary);font-family:var(--font);font-size:11px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.bulk-bar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.bulk-bar-btn:disabled{opacity:.35;cursor:not-allowed}.bulk-bar-btn:disabled:hover{background:transparent;color:var(--text-secondary)}.bulk-bar-btn-danger{color:var(--danger);border-color:#ef44444d}.bulk-bar-btn-danger:hover{background:#ef444426;color:var(--danger)}.bulk-bar-btn-clear{color:var(--text-muted);border-color:transparent}.bulk-bar-btn-clear:hover{color:var(--text-secondary);background:var(--bg-hover)}.bulk-bar-sep{width:1px;height:18px;background:var(--border-subtle);flex-shrink:0}.bulk-bar-select{padding:4px 22px 4px 8px;border:1px solid var(--border-subtle);border-radius:4px;background:transparent;color:var(--text-secondary);font-family:var(--font);font-size:11px;font-weight:500;cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.bulk-bar-select:hover{border-color:var(--text-muted)}.bulk-bar-select:focus{border-color:var(--blue)}.bulk-bar-select option{background:var(--bg-card);color:var(--text-secondary)}.bulk-assign-wrapper{position:relative;display:inline-block}.bulk-assign-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);min-width:260px;max-height:320px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;box-shadow:var(--shadow-lg);overflow:hidden}.bulk-assign-search{padding:8px;border-bottom:1px solid var(--border-subtle)}.bulk-assign-search input{width:100%;padding:6px 10px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-main);color:var(--text);font-size:12px;outline:none}.bulk-assign-search input:focus{border-color:var(--blue)}.bulk-assign-list{max-height:240px;overflow-y:auto;padding:4px 0}.bulk-assign-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:12px;color:var(--text-secondary);transition:background var(--transition-fast)}.bulk-assign-item:hover{background:var(--bg-hover);color:var(--text-primary)}.bulk-assign-avatar{width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.bulk-assign-name{flex:1;font-weight:500}.bulk-assign-role{font-size:10px;color:var(--text-muted);text-transform:capitalize;padding:1px 6px;border:1px solid var(--border-subtle);border-radius:3px}.bulk-assign-empty{padding:16px 12px;text-align:center;font-size:12px;color:var(--text-muted)}.gantt-new-task{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.gantt-new-task input{flex:1;max-width:400px}.quick-add-level{background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:4px;color:var(--text-primary);font-size:12px;font-weight:600;padding:4px 8px;outline:none;cursor:pointer}.quick-add-level:focus{border-color:var(--blue)}.quick-add-parent{font-size:10px;color:var(--text-muted);background:var(--purple-subtle);padding:2px 6px;border-radius:3px;display:flex;align-items:center;gap:4px;white-space:nowrap}.gantt-split-pane{flex:1;display:flex;overflow:hidden;min-height:0}.gantt-table-pane{min-width:200px;border-right:1px solid var(--border-subtle)}.gantt-divider{width:4px;cursor:col-resize;background:var(--border-subtle);transition:background var(--transition-fast);flex-shrink:0}.gantt-divider:hover{background:var(--blue)}.shortcuts-list{display:flex;flex-direction:column;gap:4px}.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.shortcut-key{display:inline-block;background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:4px;padding:2px 8px;font-size:11px;font-family:monospace;color:var(--text-primary);min-width:60px;text-align:center}.shortcut-desc{font-size:12px;color:var(--text-secondary)}.density-picker{position:relative}.density-dropdown{position:absolute;top:100%;right:0;z-index:var(--z-dropdown);background:var(--bg-card);border:1px solid var(--border-default-new);border-radius:6px;padding:4px;min-width:140px;box-shadow:var(--shadow-md);margin-top:4px}.density-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:none;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;border-radius:4px}.density-option:hover{background:var(--bg-hover);color:var(--text-primary)}.density-option.active{background:var(--blue-subtle-new);color:var(--blue);font-weight:600}.import-menu-wrapper{position:relative}.import-dropdown{position:absolute;top:100%;right:0;z-index:var(--z-dropdown);background:var(--bg-card);border:1px solid var(--border-default-new);border-radius:8px;padding:6px;min-width:220px;box-shadow:var(--shadow-lg);margin-top:4px}.import-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;border-radius:6px;text-align:left}.import-dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.import-dropdown-icon{flex-shrink:0;width:20px;display:flex;align-items:center;justify-content:center}.import-dropdown-label{display:block;font-weight:600;color:var(--text-primary);font-size:12px}.import-dropdown-hint{display:block;font-size:10px;color:var(--text-muted);margin-top:1px}.import-dropdown-sep{height:1px;background:var(--border-default-new);margin:4px 6px}.import-dropdown-hint-block{padding:8px 10px;font-size:11px;color:var(--text-muted);line-height:1.4}.kanban-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.kanban-toolbar{display:flex;align-items:center;justify-content:flex-end;padding:6px 12px;background:var(--bg);border-bottom:1px solid var(--border-subtle);min-height:34px}.kanban-board{flex:1;display:flex;gap:10px;padding:12px;overflow-x:auto;overflow-y:hidden}.kanban-column{min-width:260px;max-width:300px;flex:1;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden}.kanban-column-unassigned{background:var(--bg-subtle);border-style:dashed}.kanban-column-dragover{border-color:var(--blue);background:#3b82f60d}.kanban-column-limit{border-color:var(--warning)}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:3px solid var(--border-subtle);background:var(--bg-card)}.kanban-column-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.kanban-column-count{font-size:11px;color:var(--text-muted)}.kanban-column-body{flex:1;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:6px}.kanban-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--blue);border-radius:6px;padding:10px;cursor:grab;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.kanban-card:hover{border-color:var(--border-default-new);box-shadow:0 2px 8px #0000004d}.kanban-card-dragging{opacity:.5;transform:rotate(2deg)}.kanban-card-critical{border-left-color:var(--danger)}.kanban-card-header{display:flex;align-items:flex-start;gap:6px;margin-bottom:6px}.kanban-card-name{font-size:12px;font-weight:600;line-height:1.4;flex:1}.milestone-icon-sm{color:var(--gantt-bar-milestone);font-size:10px}.kanban-card-footer{display:flex;align-items:center;gap:8px}.kanban-card-priority{font-size:10px;font-weight:600;text-transform:capitalize}.kanban-card-progress{display:flex;align-items:center;gap:4px}.kanban-card-assignees{display:flex;gap:4px;margin-top:6px}.kanban-card-assignee{width:22px;height:22px;border-radius:50%;background:var(--blue-dark);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.kanban-add-task-btn{background:none;border:1px dashed var(--border-subtle);border-radius:6px;color:var(--text-muted);font-size:12px;padding:8px;cursor:pointer;text-align:center;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast);font-family:var(--font);width:100%;margin-top:2px}.kanban-add-task-btn:hover{color:var(--blue);border-color:var(--blue);background:#3b82f60d}.kanban-add-task-form{margin-top:2px}.kanban-add-task-input{width:100%;background:var(--bg-input);border:1px solid var(--blue);border-radius:6px;color:var(--text-primary);font-size:12px;padding:8px;font-family:var(--font);outline:none}.kanban-add-task-input::placeholder{color:var(--text-muted)}@media(max-width:768px){.kanban-board{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.kanban-column{min-width:280px;scroll-snap-align:start}}.resource-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.resource-toolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg);border-bottom:1px solid var(--border-subtle);min-height:38px}.resource-create-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.resource-create-row input,.resource-create-row select{max-width:200px}.resource-table-wrap{flex:1;overflow:auto}.resource-table{border-collapse:collapse;width:100%;min-width:800px}.resource-table th{position:sticky;top:0;z-index:2;background:var(--bg-card);text-align:left;white-space:nowrap}.resource-table td{white-space:nowrap;font-size:12px;padding:0 10px;height:38px;vertical-align:middle}.resource-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.resource-type-badge{font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:3px}.type-work{background:#3b82f626;color:var(--blue)}.type-material{background:#fbbf2426;color:var(--warning)}.type-cost{background:#4ade8026;color:var(--green)}.utilization-bar-wrap{display:flex;align-items:center;gap:8px}@media(max-width:768px){.resource-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}.calendar-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg);border-bottom:1px solid var(--border-subtle);min-height:38px}.calendar-toolbar-left,.calendar-toolbar-right{display:flex;align-items:center;gap:6px}.calendar-title{font-size:14px;font-weight:700;margin-left:8px}.calendar-month{flex:1;display:flex;flex-direction:column;overflow:hidden}.calendar-day-headers{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day-header{padding:6px;text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.calendar-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;overflow-y:auto}.calendar-cell{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:4px;min-height:80px;overflow:hidden}.calendar-cell-outside{background:var(--bg-subtle);opacity:.5}.calendar-cell-today{background:#3b82f614}.calendar-cell-date{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:2px}.calendar-cell-today .calendar-cell-date{color:var(--blue)}.calendar-cell-tasks{display:flex;flex-direction:column;gap:2px}.calendar-task-chip{font-size:10px;padding:2px 4px;border-radius:3px;background:var(--blue-subtle);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.calendar-task-chip:hover{background:var(--bg-selected)}.calendar-task-critical{background:#ef444426;color:var(--danger)}.calendar-task-more{font-size:10px;color:var(--text-muted);padding:1px 4px}.calendar-week{flex:1;display:grid;grid-template-columns:repeat(7,1fr);overflow-y:auto}.calendar-week-day{border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;min-height:0}.calendar-week-day-header{display:flex;justify-content:space-between;padding:8px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle);font-size:12px;font-weight:600}.calendar-week-day-tasks{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:4px}.calendar-task-chip-lg{padding:6px 8px;font-size:11px;display:flex;justify-content:space-between;align-items:center}.calendar-task-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}@media(max-width:768px){.calendar-grid{font-size:var(--fs-xs)}.calendar-cell{min-height:60px}}.calendar-editor{display:flex;height:100%;overflow:hidden}.calendar-editor-sidebar{width:200px;border-right:1px solid var(--border-subtle);padding:12px;overflow-y:auto}.calendar-editor-title{font-size:13px;font-weight:700;margin-bottom:10px}.calendar-editor-item{display:block;width:100%;text-align:left;padding:8px 10px;border:none;background:none;color:var(--text-secondary);font-size:12px;font-family:var(--font);border-radius:4px;cursor:pointer;margin-bottom:2px}.calendar-editor-item:hover{background:var(--bg-hover)}.calendar-editor-item.active{background:var(--bg-selected);color:var(--text-primary)}.calendar-editor-main{flex:1;padding:16px 20px;overflow-y:auto}.calendar-editor-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.working-days-grid{display:flex;gap:6px;flex-wrap:wrap}.working-day-toggle{padding:8px 14px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-input);color:var(--text-muted);font-family:var(--font);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.working-day-toggle.active{background:var(--blue);color:var(--text-primary);border-color:var(--blue)}.working-day-toggle:hover{border-color:var(--blue-hover)}.exception-form{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.exception-form input[type=date],.exception-form input[type=text]{max-width:180px}.exception-list{display:flex;flex-direction:column;gap:4px}.exception-item{display:flex;gap:12px;padding:6px 8px;font-size:12px;border-radius:4px}.exception-item:hover{background:var(--bg-hover)}.exception-holiday{color:var(--danger)}.pending-exceptions{margin-bottom:10px;padding:8px;border:1px dashed var(--warning);border-radius:6px;background:#ffaa000a}.pending-exception-item{position:relative}.pending-exception-remove{margin-left:auto;font-size:14px;padding:0 4px;color:var(--text-muted);opacity:0;transition:opacity var(--transition-fast)}.pending-exception-item:hover .pending-exception-remove{opacity:1}.calendar-save-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-top:8px;border-radius:6px;background:var(--bg-input);border:1px solid var(--border-subtle)}.calendar-save-hint{flex:1;font-size:12px;color:var(--warning)}.dashboard-page{position:relative;padding:var(--sp-6);overflow-y:auto;height:100%}.dashboard-content{position:relative;z-index:1;max-width:1200px;margin:0 auto}.dashboard-title{font-size:var(--fs-xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-6)}.dashboard-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-bottom:var(--sp-6)}.dashboard-charts,.dashboard-bottom{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);margin-bottom:var(--sp-4)}.dashboard-bottom.single-col{grid-template-columns:1fr}.dashboard-progress-section{margin-bottom:var(--sp-4)}.dashboard-progress-row{display:flex;align-items:center;gap:var(--sp-3)}.dashboard-progress-bar{flex:1;height:10px;background:var(--bg-muted);border-radius:var(--radius-full);overflow:hidden}.dashboard-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--blue));border-radius:var(--radius-full);transition:width var(--transition-slow)}.dashboard-progress-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);min-width:48px;text-align:right}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-16) var(--sp-6);color:var(--text-tertiary);text-align:center}.dashboard-empty svg{margin-bottom:var(--sp-4);opacity:.5}.dashboard-empty-title{font-size:var(--fs-lg);font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-2)}.dashboard-empty-desc{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:320px}@media(max-width:768px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-charts,.dashboard-bottom{grid-template-columns:1fr}.dashboard-page{padding:var(--sp-4)}}@media(max-width:480px){.dashboard-kpis{grid-template-columns:1fr}.dashboard-title{font-size:var(--fs-lg)}}.network-diagram{display:flex;flex-direction:column;height:100%}.network-toolbar{display:flex;align-items:center;gap:16px;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--border-subtle)}.network-legend{display:flex;gap:12px;margin-left:auto}.network-legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted)}.legend-dot{width:8px;height:8px;border-radius:2px}.network-canvas-container{flex:1;overflow:hidden;cursor:grab;background:var(--bg-subtle);background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);background-size:20px 20px}.network-canvas-container canvas{display:block}.baseline-view{padding:16px 20px;height:100%;overflow-y:auto}.baseline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.baseline-save-form{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px}.baseline-save-form input{flex:1}.baseline-list{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.baseline-card{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;padding:10px 14px;cursor:pointer;transition:border-color var(--transition-fast)}.baseline-card:hover,.baseline-card.active{border-color:var(--blue)}.baseline-card.active{background:var(--blue-subtle)}.baseline-card-name{font-size:13px;font-weight:600}.baseline-card-meta{font-size:11px;color:var(--text-muted);margin-top:2px}.baseline-comparison{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:14px;overflow-x:auto}.baseline-comparison h3{margin-bottom:10px}.variance-late{color:var(--danger);font-weight:600}.variance-early{color:var(--green);font-weight:600}.variance-on-time{color:var(--text-muted)}@media(max-width:768px){.baseline-comparison{overflow-x:auto;-webkit-overflow-scrolling:touch}}.evm-view{padding:16px 20px;height:100%;overflow-y:auto}.evm-loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted)}.evm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.evm-progress-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.evm-progress-item{background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;padding:10px 14px}.evm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:16px}.evm-cards-sm{display:grid;grid-template-columns:1fr 1fr;gap:10px}.evm-card{background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;padding:12px 14px}.evm-card-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.evm-card-value{font-size:18px;font-weight:700;margin-bottom:2px}.evm-card-value-lg{font-size:28px;font-weight:800;margin-bottom:2px}.evm-card-sub{font-size:11px;color:var(--text-muted)}.evm-index-bar{position:relative;height:4px;background:var(--bg-input);border-radius:2px;margin-top:8px}.evm-index-fill{height:100%;border-radius:2px;transition:width var(--transition-slow)}.evm-index-target{position:absolute;left:50%;top:-2px;width:2px;height:8px;background:var(--text-muted)}.evm-section-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.evm-section{margin-bottom:16px}.evm-section-title{font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.evm-bar-chart{background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;padding:14px}.evm-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.evm-bar-row:last-child{margin-bottom:0}.evm-bar-label{width:30px;font-size:11px;font-weight:700;color:var(--text-muted)}.evm-bar-track{flex:1;height:20px;background:var(--bg-input);border-radius:4px;overflow:hidden}.evm-bar-fill{height:100%;border-radius:4px;transition:width var(--transition-slow)}.evm-bar-value{width:90px;text-align:right;font-size:12px;font-weight:600;color:var(--text-secondary)}@media(max-width:768px){.evm-cards{grid-template-columns:repeat(2,1fr)}.evm-section-row,.evm-progress-row{grid-template-columns:1fr}}@media(max-width:480px){.evm-cards{grid-template-columns:1fr}}.util-view{padding:16px 20px;height:100%;overflow-y:auto}.util-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.util-alerts{background:#f8717114;border:1px solid rgba(248,113,113,.2);border-radius:var(--radius);padding:12px;margin-bottom:16px}.util-alerts-title{font-size:12px;font-weight:700;color:var(--danger);margin-bottom:8px}.util-alert{display:flex;align-items:center;gap:12px;padding:4px 0;font-size:12px;border-bottom:1px solid rgba(248,113,113,.1)}.util-alert:last-child{border-bottom:none}.util-alert-name{font-weight:600;color:var(--text-primary);min-width:120px}.util-alert-date{color:var(--text-muted);min-width:90px}.util-alert-units{color:var(--danger);font-weight:600;min-width:110px}.util-alert-tasks{color:var(--text-muted)}.util-resource{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:12px;margin-bottom:10px}.util-resource-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.util-resource-name{font-size:13px;font-weight:600}.util-color-dot{width:10px;height:10px;border-radius:50%}.util-histogram{position:relative;display:flex;align-items:flex-end;height:60px;gap:1px}.util-bar-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;position:relative}.util-bar{border-radius:1px 1px 0 0;min-height:1px;transition:height var(--transition-base)}.util-bar-over{position:absolute;bottom:0;left:0;right:0;background:#f871714d;border-radius:1px 1px 0 0}.util-max-line{position:absolute;bottom:100%;left:0;right:0;height:1px;background:#f8717166}.template-view{padding:16px 20px;height:100%;overflow-y:auto}.template-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.template-form,.template-category{margin-bottom:16px}.template-category-title{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.template-card{background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;padding:14px}.template-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.template-card-name{font-size:13px;font-weight:600}.template-card-cat{font-size:10px;font-weight:600;color:var(--blue);background:var(--blue-subtle);padding:1px 6px;border-radius:3px}.template-card-desc{font-size:12px;color:var(--text-muted);margin-bottom:6px;line-height:1.4}.template-card-meta{font-size:11px;color:var(--text-muted);margin-bottom:10px}.template-card-actions{display:flex;gap:6px}.audit-view{padding:16px 20px;height:100%;overflow-y:auto}.audit-timeline{position:relative;padding-left:20px}.audit-timeline:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:2px;background:var(--border-subtle)}.audit-entry{position:relative;padding-bottom:12px}.audit-entry-dot{position:absolute;left:-20px;top:4px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-subtle)}.audit-entry-content{background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;padding:10px 14px}.audit-entry-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.audit-entry-action{font-size:12px;font-weight:700;text-transform:uppercase}.audit-entry-entity{font-size:12px;color:var(--text-secondary);font-weight:600}.audit-entry-date{font-size:11px;color:var(--text-muted);margin-left:auto}.audit-entry-user{font-size:11px;color:var(--text-muted);margin-bottom:4px}.audit-entry-changes{background:var(--bg-card);border-radius:4px;padding:6px 8px;margin-top:6px}.audit-change{font-size:11px;margin-bottom:2px}.audit-change:last-child{margin-bottom:0}.audit-change-key{color:var(--text-muted);margin-right:4px}.audit-change-val{color:var(--text-secondary);font-family:monospace;font-size:10px}.timesheet-view{display:flex;flex-direction:column;gap:20px;padding:20px;height:100%;overflow-y:auto}.timesheet-header{display:flex;align-items:center;justify-content:space-between}.timesheet-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.timesheet-nav{display:flex;align-items:center;gap:8px}.timesheet-week-label{font-size:13px;color:var(--text-secondary);min-width:180px;text-align:center}.timesheet-loading{text-align:center;color:var(--text-muted);padding:40px 0}.timesheet-grid-wrapper{overflow-x:auto}.timesheet-grid{width:100%;border-collapse:collapse;font-size:12px}.timesheet-grid th{padding:6px 8px;text-align:center;font-weight:600;color:var(--text-muted);text-transform:uppercase;font-size:10px;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle)}.ts-task-col{text-align:left!important;min-width:200px}.ts-day-col{width:70px}.ts-day-date{font-size:12px;color:var(--text-secondary);font-weight:400;margin-top:2px}.ts-total-col{width:70px}.timesheet-grid td{padding:8px;border-bottom:1px solid var(--border-subtle)}.ts-task-name{color:var(--text-primary);font-size:12px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-cell{text-align:center;color:var(--text-secondary)}.ts-hours{color:var(--blue);font-weight:500}.ts-hours-empty{color:var(--text-muted);opacity:.5}.ts-total{font-weight:600;color:var(--text-primary)!important}.ts-grand-total-row{background:var(--bg-input)}.ts-empty{text-align:center;color:var(--text-muted);padding:24px 0!important}.timesheet-add-section h3,.timesheet-summary h3{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.timesheet-add-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timesheet-summary{max-width:500px}.ts-summary-total{font-size:13px;color:var(--text-secondary);margin-bottom:12px}.ts-summary-tasks{display:flex;flex-direction:column;gap:6px}.ts-summary-task-row{display:flex;align-items:center;gap:8px}.ts-summary-task-name{font-size:12px;color:var(--text-secondary);width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.ts-summary-bar-wrap{flex:1;height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}.ts-summary-bar{height:100%;background:var(--blue);border-radius:4px;transition:width var(--transition-slow)}.ts-summary-hours{font-size:11px;color:var(--text-muted);width:50px;text-align:right;flex-shrink:0}.scenario-view{display:flex;flex-direction:column;gap:20px;padding:20px;height:100%;overflow-y:auto}.scenario-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.scenario-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.scenario-create-row{display:flex;gap:8px;align-items:center}.scenario-loading,.scenario-empty{text-align:center;color:var(--text-muted);font-size:13px;padding:30px 0}.scenario-list{display:flex;flex-direction:column;gap:8px}.scenario-card{padding:12px 14px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;transition:border-color var(--transition-fast)}.scenario-card.active{border-color:var(--blue)}.scenario-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.scenario-card-name{font-size:14px;font-weight:600;color:var(--text-primary)}.scenario-card-actions{display:flex;gap:4px}.scenario-card-stats{display:flex;gap:12px;margin-top:6px;font-size:11px;color:var(--text-muted)}.scenario-compare h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.scenario-compare-wrapper{overflow-x:auto}.scenario-compare-table{width:100%;border-collapse:collapse;font-size:11px}.scenario-compare-table th{padding:6px 8px;text-align:left;font-weight:600;color:var(--text-muted);text-transform:uppercase;font-size:10px;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle)}.scenario-compare-table td{padding:5px 8px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.compare-task-name{color:var(--text-primary)!important;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-delta{font-weight:600;font-family:monospace}tr.delta-late .compare-delta{color:var(--danger)}tr.delta-early .compare-delta{color:var(--green)}.skills-view{padding:24px;max-width:1200px}.skills-header h2{margin:0 0 4px;font-size:1.25rem}.skills-subtitle{color:var(--text-secondary);font-size:.85rem;margin:0 0 20px}.skills-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:0}.skills-tab{background:none;border:none;padding:8px 16px;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;font-size:.85rem;margin-bottom:-1px}.skills-tab:hover{color:var(--text-primary)}.skills-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.skills-section{background:var(--bg-secondary);border-radius:8px;padding:20px;border:1px solid var(--border-color)}.skills-add-row{display:flex;gap:8px;margin-bottom:16px}.skills-input{flex:1;max-width:300px;padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.85rem}.skills-list{display:flex;flex-wrap:wrap;gap:8px}.skill-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;font-size:.85rem}.skill-chip-delete{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1rem;line-height:1;padding:0}.skill-chip-delete:hover{color:var(--red)}.skills-empty{color:var(--text-secondary);font-size:.85rem;text-align:center;padding:24px}.skills-loading{color:var(--text-secondary);padding:24px;text-align:center}.skills-matrix{overflow-x:auto}.skills-matrix table{width:100%;border-collapse:collapse;font-size:.85rem}.skills-matrix th,.skills-matrix td{padding:8px 12px;border-bottom:1px solid var(--border-color);text-align:center}.skills-matrix th{color:var(--text-secondary);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.resource-name-cell{text-align:left!important;font-weight:500;white-space:nowrap}.prof-select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);padding:4px 8px;font-size:.8rem;cursor:pointer;width:52px}.match-controls{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.match-controls label{font-size:.85rem;color:var(--text-secondary)}.match-task-select{padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.85rem;min-width:200px}.match-results{display:flex;flex-direction:column;gap:8px}.match-result-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-primary);border-radius:6px}.match-name{min-width:150px;font-weight:500;font-size:.85rem}.match-bar-container{flex:1;height:8px;background:var(--bg-tertiary, rgba(255,255,255,.05));border-radius:4px;overflow:hidden}.match-bar{height:100%;border-radius:4px;transition:width var(--transition-slow)}.match-score{min-width:48px;text-align:right;font-weight:600;font-size:.85rem}.cr-view{padding:24px;max-width:900px}.cr-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.cr-header h2{margin:0 0 4px;font-size:1.25rem}.cr-subtitle{color:var(--text-secondary);font-size:.85rem;margin:0}.cr-loading{color:var(--text-secondary);padding:24px;text-align:center}.cr-form{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:10px}.cr-input,.cr-textarea{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.85rem;font-family:inherit}.cr-textarea{resize:vertical}.cr-stats{display:flex;gap:16px;margin-bottom:20px}.cr-stat{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:12px 20px;text-align:center;flex:1}.cr-stat-value{display:block;font-size:1.5rem;font-weight:700}.cr-stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.cr-empty{color:var(--text-secondary);text-align:center;padding:40px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.cr-list{display:flex;flex-direction:column;gap:8px}.cr-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;cursor:pointer;transition:border-color var(--transition-fast)}.cr-card:hover{border-color:var(--blue)}.cr-card-header{display:flex;justify-content:space-between;align-items:center}.cr-card-title-row{display:flex;align-items:center;gap:10px}.cr-status-badge{font-size:.7rem;padding:2px 8px;border-radius:10px;color:var(--text-primary);text-transform:uppercase;font-weight:600;letter-spacing:.05em;white-space:nowrap}.cr-card-title{font-weight:500;font-size:.9rem}.cr-card-meta{display:flex;gap:12px;font-size:.75rem;color:var(--text-secondary)}.cr-card-body{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.cr-description{font-size:.85rem;color:var(--text-secondary);margin:0 0 8px}.cr-impact{font-size:.85rem;margin-bottom:8px;padding:8px;background:#ffa5001a;border-radius:4px}.cr-reviewed{font-size:.8rem;color:var(--text-secondary);margin-bottom:8px}.cr-actions{display:flex;gap:8px;margin-top:8px}.xdep-view{padding:24px;max-width:1100px}.xdep-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.xdep-header h2{margin:0 0 4px;font-size:1.25rem}.xdep-subtitle{color:var(--text-secondary);font-size:.85rem;margin:0}.xdep-loading{color:var(--text-secondary);padding:24px;text-align:center}.xdep-form{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:10px}.xdep-form-row{display:flex;flex-direction:column;gap:4px}.xdep-form-row label{font-size:.8rem;color:var(--text-secondary)}.xdep-form-row.xdep-inline{flex-direction:row;align-items:flex-end;gap:12px}.xdep-select,.xdep-input{padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.85rem}.xdep-sm{width:80px}.xdep-empty{color:var(--text-secondary);text-align:center;padding:40px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.xdep-table-wrap{overflow-x:auto}.xdep-table{width:100%;border-collapse:collapse;font-size:.85rem;background:var(--bg-secondary);border-radius:8px;overflow:hidden}.xdep-table th{padding:10px 12px;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:500;text-align:left;border-bottom:1px solid var(--border-color)}.xdep-table td{padding:10px 12px;border-bottom:1px solid var(--border-color)}.xdep-proj-badge{font-size:.8rem;padding:2px 8px;border-radius:4px;background:#ffffff0d}.xdep-proj-badge.xdep-this{background:#3b82f626;color:var(--blue);font-weight:500}.xdep-link-cell{display:flex;align-items:center;gap:6px}.xdep-link-badge{font-size:.75rem;font-weight:600;padding:1px 6px;background:#ffa50026;color:var(--orange);border-radius:3px}.xdep-arrow{color:var(--text-secondary)}.xdep-outgoing{border-left:3px solid var(--blue)}.xdep-incoming{border-left:3px solid var(--green)}.ai-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center}.ai-modal{background:var(--bg-subtle);border:1px solid var(--border-default-new);border-radius:10px;width:720px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.ai-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border-subtle)}.ai-modal-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.ai-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.ai-modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.ai-steps{display:flex;gap:2px;padding:12px 20px;border-bottom:1px solid var(--border-subtle)}.ai-step{flex:1;height:3px;border-radius:2px;background:var(--border-subtle);transition:background var(--transition-base)}.ai-step.active{background:var(--blue)}.ai-step.done{background:var(--green)}.ai-modal-body{flex:1;overflow-y:auto;padding:16px 20px;min-height:300px}.ai-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border-subtle)}.ai-modal-footer-right{display:flex;gap:8px}.ai-field{margin-bottom:14px}.ai-field-label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:5px}.ai-field-label .required-star{color:var(--danger);margin-left:2px}.ai-field-help{font-size:10px;color:var(--text-muted);margin-top:3px}.ai-field input[type=text],.ai-field input[type=date],.ai-field textarea,.ai-field select{width:100%;background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:6px;color:var(--text-primary);font-size:13px;padding:8px 10px;font-family:var(--font);outline:none;transition:border-color var(--transition-fast)}.ai-field input:focus,.ai-field textarea:focus,.ai-field select:focus{border-color:var(--blue)}.ai-field textarea{resize:vertical;min-height:70px}.ai-field select option{background:var(--bg-card)}.ai-categories{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ai-category-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);font-size:12px;color:var(--text-secondary)}.ai-category-item:hover{border-color:var(--border-default-new);background:var(--bg-hover)}.ai-category-item.selected{border-color:var(--blue);background:#3b82f61a;color:var(--text-primary)}.ai-category-item input[type=checkbox]{accent-color:var(--blue)}.ai-detail-levels{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.ai-detail-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.ai-detail-card:hover:not(.disabled){border-color:var(--border-default-new)}.ai-detail-card.selected{border-color:var(--blue);background:#3b82f61a}.ai-detail-card.disabled{opacity:.4;cursor:not-allowed}.ai-detail-card input[type=radio]{accent-color:var(--blue)}.ai-detail-name{font-size:13px;font-weight:500;color:var(--text-primary)}.ai-detail-desc{font-size:11px;color:var(--text-muted)}.ai-model-row{display:flex;gap:8px;margin-bottom:16px}.ai-model-card{flex:1;padding:12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast)}.ai-model-card:hover{border-color:var(--border-default-new)}.ai-model-card.selected{border-color:var(--blue);background:#3b82f61a}.ai-model-name{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.ai-model-info{font-size:10px;color:var(--text-muted)}.ai-pdf-zone{border:2px dashed var(--border-default-new);border-radius:8px;padding:16px;text-align:center;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);margin-bottom:8px}.ai-pdf-zone:hover{border-color:var(--blue);background:#3b82f60d}.ai-pdf-zone-text{font-size:12px;color:var(--text-muted)}.ai-pdf-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.ai-pdf-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-input);border-radius:5px;font-size:12px;color:var(--text-secondary)}.ai-pdf-item button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;border-radius:3px}.ai-pdf-item button:hover{color:var(--danger)}.ai-pdf-privacy{font-size:10px;color:var(--text-muted);font-style:italic;margin-top:6px}.ai-stream-status{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:12px;color:var(--text-secondary)}.ai-spinner{width:14px;height:14px;border:2px solid var(--border-default-new);border-top-color:var(--blue);border-radius:50%;animation:ai-spin .8s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-stream-raw{background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;padding:10px 12px;font-family:Consolas,Fira Code,monospace;font-size:11px;color:var(--text-muted);max-height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;margin-bottom:12px}.ai-preview-table-wrap{max-height:350px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:6px}.ai-preview-table{width:100%;border-collapse:collapse;font-size:12px}.ai-preview-table th{background:var(--bg-card);color:var(--text-muted);font-weight:500;padding:6px 8px;text-align:left;position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border-default-new)}.ai-preview-table td{padding:5px 8px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.ai-preview-table tr:hover td{background:var(--bg-hover)}.ai-preview-table .depth-0{font-weight:600;color:var(--text-primary)}.ai-preview-table .depth-1{padding-left:20px}.ai-preview-table .depth-2{padding-left:36px}.ai-preview-table .depth-3{padding-left:52px}.ai-preview-table .depth-4{padding-left:68px}.ai-preview-table .task-name-cell{min-width:200px;max-width:320px}.ai-preview-table .task-name-input{background:transparent;border:none;color:inherit;font:inherit;font-weight:inherit;width:100%;padding:0;outline:none}.ai-preview-table .task-name-input:focus{background:var(--bg-input);border-radius:3px;padding:1px 4px;margin:-1px -4px}.ai-warnings{background:#fbbf2414;border:1px solid rgba(251,191,36,.25);border-radius:6px;padding:8px 12px;margin-top:10px;max-height:100px;overflow-y:auto}.ai-warnings-title{font-size:11px;font-weight:600;color:var(--warning);margin-bottom:4px}.ai-warnings-item{font-size:11px;color:var(--warning);padding:2px 0}.ai-stats{display:flex;gap:16px;margin-bottom:12px}.ai-stat{font-size:12px;color:var(--text-muted)}.ai-stat strong{color:var(--text-primary)}.ai-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:12px;color:var(--danger);font-size:13px;text-align:center}.ai-required-note{font-size:10px;color:var(--text-muted);margin-top:8px}.ai-multi-select{display:flex;flex-wrap:wrap;gap:6px}.ai-multi-select label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary);cursor:pointer;padding:4px 8px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:5px}.ai-multi-select label:hover{border-color:var(--border-default-new)}.ai-multi-select input[type=checkbox]{accent-color:var(--blue)}.ai-other-input{margin-top:6px}.ai-draft-banner{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px;font-size:12px;color:var(--text-secondary)}.ai-draft-banner div{display:flex;gap:6px}.ai-date-input{display:flex;align-items:center;position:relative}.ai-date-input input[type=text]{flex:1;padding-right:30px}.ai-date-hidden{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ai-date-calendar-btn{position:absolute;right:6px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center}.ai-date-calendar-btn:hover{color:var(--blue)}.project-info-view{padding:24px;max-width:900px;overflow-y:auto;height:100%}.info-header h2{font-size:18px;font-weight:700;margin-bottom:16px}.info-loading{color:var(--text-muted);font-size:14px;padding:48px 0;text-align:center}.info-tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:2px solid var(--border-subtle);margin-bottom:24px}.info-tabs button{padding:10px 16px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:13px;font-weight:600;font-family:var(--font);transition:color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.info-tabs button:hover{color:var(--text-secondary)}.info-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.metadata-section{padding-bottom:24px}.contract-doc-attach{margin-top:6px}.contract-doc-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.contract-doc-name{font-size:12px;color:var(--blue);text-decoration:none;font-weight:500;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-doc-name:hover{color:var(--blue-hover);text-decoration:underline}.contract-doc-meta{font-size:11px;color:var(--text-muted);display:flex;gap:4px;align-items:center}.contract-doc-version{background:#60a5fa26;color:var(--info);font-size:10px;font-weight:700;padding:1px 5px;border-radius:3px}.contract-doc-upload-btn,.contract-doc-update-btn{display:inline-flex;align-items:center;font-size:11px;color:var(--blue);cursor:pointer;font-weight:600;font-family:var(--font);background:none;border:none;padding:0}.contract-doc-upload-btn:hover,.contract-doc-update-btn:hover{color:var(--blue-hover)}.contract-doc-upload-btn input[type=file],.contract-doc-update-btn input[type=file]{display:none}.metadata-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.metadata-section-header h3{font-size:15px;font-weight:700}.metadata-edit-actions{display:flex;gap:8px}.metadata-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.metadata-field{display:flex;flex-direction:column;gap:4px}.metadata-field .field-label,.metadata-list-section .field-label{font-size:12px;color:var(--text-muted);margin-bottom:2px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.metadata-field .field-value{font-size:14px;color:var(--text-primary)}.metadata-field input,.metadata-field select{width:100%;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;padding:8px 12px;color:var(--text-primary);font-size:14px;font-family:var(--font)}.metadata-field input:focus,.metadata-field select:focus{border-color:var(--blue)}.metadata-list-section{margin-top:16px;margin-bottom:8px}.metadata-list-section .list-row{display:flex;gap:8px;margin-bottom:4px;align-items:center}.metadata-list-section .list-row input{flex:1;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;padding:8px 12px;color:var(--text-primary);font-size:14px;font-family:var(--font)}.metadata-list-section .list-row input:focus{border-color:var(--blue)}.metadata-list-section .row-number{color:var(--text-muted);font-weight:500;min-width:24px;font-size:14px}.metadata-list-section .remove-btn{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 6px;line-height:1;flex-shrink:0}.metadata-list-section .remove-btn:hover{color:var(--danger)}.metadata-list-section .add-row-btn{color:var(--blue);background:none;border:none;cursor:pointer;font-size:13px;padding:4px 0;font-family:var(--font)}.metadata-list-section .add-row-btn:hover{color:var(--blue-hover)}.metadata-table{width:100%;border-collapse:collapse;margin:8px 0}.metadata-table th{text-align:left;padding:8px 10px;font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);font-weight:600;text-transform:uppercase;letter-spacing:.3px;background:var(--bg-card)}.metadata-table td{padding:8px 10px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);height:auto}.metadata-table tr:hover td{background:var(--bg-card)}.metadata-objectives{list-style-position:inside;padding:0;margin:4px 0}.metadata-objectives li{font-size:14px;color:var(--text-primary);padding:4px 0;line-height:1.5}.metadata-section .editable-table{width:100%;border-collapse:collapse;margin:8px 0}.metadata-section .editable-table th{text-align:left;padding:8px 4px;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);font-weight:600;text-transform:none;letter-spacing:normal;background:transparent}.metadata-section .editable-table td{padding:4px;border-bottom:none;height:auto}.metadata-section .editable-table input{width:100%;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;padding:6px 8px;color:var(--text-primary);font-size:13px;font-family:var(--font)}.metadata-section .editable-table input:focus{border-color:var(--blue)}.metadata-section .editable-table tr:hover td{background:transparent}.documents-section{padding-bottom:24px}.doc-category{margin-bottom:24px}.doc-category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.doc-category-header h4{font-size:14px;font-weight:600;color:var(--text-primary)}.doc-upload-label{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--blue);cursor:pointer;font-weight:600}.doc-upload-label:hover{color:var(--blue-hover)}.doc-upload-label input[type=file]{display:none}.doc-list{display:flex;flex-direction:column;gap:4px}.doc-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px}.doc-item-info{display:flex;flex-direction:column;gap:2px}.doc-item-name{font-size:13px;font-weight:500;color:var(--text-primary)}.doc-item-meta{font-size:11px;color:var(--text-muted);display:flex;gap:8px}.doc-item-actions{display:flex;gap:8px;align-items:center}.doc-item-actions a{color:var(--blue);text-decoration:none;font-size:12px;font-weight:600}.doc-item-actions a:hover{color:var(--blue-hover)}.doc-versions-toggle{background:none;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;padding:2px 0;font-family:var(--font)}.doc-versions-toggle:hover{color:var(--text-secondary)}.doc-version-item{opacity:.6;margin-left:16px}.doc-empty{font-size:12px;color:var(--text-muted);padding:4px 0}.extensions-section{padding-bottom:24px}.extensions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.extensions-header h3{font-size:15px;font-weight:700}.ext-form{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.ext-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ext-form-field{display:flex;flex-direction:column;gap:4px}.ext-form-field label{font-size:12px;color:var(--text-muted);font-weight:600}.ext-form-field input,.ext-form-field select,.ext-form-field textarea{width:100%;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;padding:8px 12px;color:var(--text-primary);font-size:13px;font-family:var(--font)}.ext-form-field textarea{resize:vertical;min-height:60px}.ext-form-actions{display:flex;gap:8px;justify-content:flex-end}.ext-timeline{display:flex;flex-direction:column;gap:12px}.ext-entry{display:flex;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.ext-type-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px;text-transform:uppercase;white-space:nowrap;height:fit-content}.ext-type-badge.time{background:#60a5fa26;color:var(--info)}.ext-type-badge.budget{background:#4ade8026;color:var(--green)}.ext-type-badge.scope{background:#fbbf2426;color:var(--warning)}.ext-entry-content{flex:1}.ext-entry-date{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.ext-entry-amount{font-size:13px;color:var(--text-secondary)}.ext-entry-desc{font-size:13px;color:var(--text-secondary);margin-top:4px}.ext-entry-meta{font-size:11px;color:var(--text-muted);margin-top:4px}.ext-empty{color:var(--text-muted);font-size:13px;padding:24px 0;text-align:center}.change-history{padding-bottom:24px}.change-history h3{font-size:15px;font-weight:700;margin-bottom:16px}.change-summary{width:100%;border-collapse:collapse;margin-bottom:24px}.change-summary th{text-align:left;padding:8px 10px;font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);font-weight:600;text-transform:uppercase;letter-spacing:.3px;background:var(--bg-card)}.change-summary td{padding:8px 10px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);height:auto}.change-summary tr:hover td{background:var(--bg-card)}.change-timeline{margin-top:24px}.change-timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.change-timeline-header h4{font-size:14px;font-weight:600;margin:0}.change-filter{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;padding:6px 10px;color:var(--text-primary);font-size:12px;font-family:var(--font)}.change-filter:focus{border-color:var(--blue)}.timeline-entry{display:flex;gap:12px;padding:8px 0;position:relative}.timeline-entry:before{content:"";position:absolute;left:5px;top:24px;bottom:-8px;width:2px;background:var(--border-subtle)}.timeline-entry:last-child:before{display:none}.timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:4px}.timeline-content{flex:1}.timeline-field{font-size:13px;font-weight:600;color:var(--text-primary)}.timeline-change{font-size:13px;color:var(--text-secondary);margin-top:2px}.timeline-meta{font-size:11px;color:var(--text-muted);margin-top:2px}.linked-extension{color:var(--warning);font-style:italic}.change-empty{color:var(--text-muted);font-size:13px;padding:24px 0;text-align:center}.project-settings{display:flex;flex-direction:column;height:100%;background:var(--bg-subtle)}.settings-tab-bar{display:flex;flex-direction:row;gap:0;border-bottom:1px solid var(--border-default-new);background:var(--bg);padding:0 16px;flex-shrink:0}.settings-tab{padding:10px 20px;cursor:pointer;border:none;border-bottom:2px solid transparent;background:none;color:var(--text-muted);font-size:14px;font-family:var(--font);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.settings-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.settings-tab.active{color:var(--text-primary);border-bottom-color:var(--blue)}.settings-content{padding:24px;flex:1;overflow-y:auto}.settings-placeholder{text-align:center;color:var(--text-muted);padding:40px;font-size:14px}@media(max-width:768px){.settings-tab-bar{overflow-x:auto;-webkit-overflow-scrolling:touch}.settings-tab{padding:8px 14px;font-size:13px}.settings-content{padding:16px}.settings-form-grid{grid-template-columns:1fr}}.settings-form-section{margin-bottom:24px}.settings-form-section h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.settings-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.settings-field{display:flex;flex-direction:column;gap:4px}.settings-field label{font-size:12px;color:var(--text-muted);font-weight:500}.settings-field input,.settings-field select,.settings-field textarea{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:8px 10px;color:var(--text-primary);font-size:13px;font-family:var(--font)}.settings-field input:focus,.settings-field select:focus,.settings-field textarea:focus{border-color:var(--blue);outline:none}.settings-field input:disabled,.settings-field select:disabled{opacity:.5;cursor:not-allowed}.settings-actions{display:flex;gap:8px;margin-top:16px}.team-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.team-header h3{font-size:15px;font-weight:600;color:var(--text-primary)}.team-search-wrapper{position:relative;margin-bottom:16px}.team-search-input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:8px 10px;color:var(--text-primary);font-size:13px;font-family:var(--font);width:100%;max-width:360px}.team-search-input:focus{border-color:var(--blue);outline:none}.team-search-results{position:absolute;top:100%;left:0;right:0;max-width:360px;background:var(--bg-card);border:1px solid var(--border-default-new);border-radius:var(--radius);max-height:200px;overflow-y:auto;z-index:var(--z-dropdown);margin-top:4px}.team-search-item{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text-primary)}.team-search-item:hover{background:var(--bg-hover)}.team-search-item .search-email{color:var(--text-muted);font-size:12px}.team-search-avatar{width:28px;height:28px;border-radius:50%;background:var(--bg-hover);flex-shrink:0;object-fit:cover}.team-table{width:100%;border-collapse:collapse;font-size:13px}.team-table th{text-align:left;padding:8px 12px;color:var(--text-muted);font-weight:500;font-size:12px;border-bottom:1px solid var(--border-default-new);background:var(--bg)}.team-table td{padding:8px 12px;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.team-table tr:hover td{background:var(--bg-hover)}.team-member-name{display:flex;align-items:center;gap:10px}.team-avatar{width:30px;height:30px;border-radius:50%;background:var(--bg-hover);flex-shrink:0;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted)}.team-role-select{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;padding:4px 8px;color:var(--text-primary);font-size:12px;font-family:var(--font);cursor:pointer}.team-role-select:focus{border-color:var(--blue);outline:none}.team-remove-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px}.team-remove-btn:hover{color:var(--danger);background:#f871711a}.team-expand-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 8px}.team-expand-btn:hover{color:var(--text-primary)}.team-permissions-row td{background:var(--bg);padding:16px 12px}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.permission-category h4{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.permission-item{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px;color:var(--text-primary)}.permission-item input[type=checkbox]{accent-color:var(--blue)}.permission-item .perm-label{flex:1}.permissions-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.workflow-section{margin-bottom:32px}.workflow-section h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.status-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.status-card .status-name{font-size:13px;color:var(--text-primary)}.status-card .status-note{font-size:10px;color:var(--text-muted);margin-top:4px}.status-toggle{position:relative;width:36px;height:20px;flex-shrink:0}.status-toggle input{opacity:0;width:0;height:0}.status-toggle .slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--bg-hover);border-radius:10px;transition:background var(--transition-base)}.status-toggle .slider:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background:var(--text-muted);border-radius:50%;transition:transform var(--transition-base),background var(--transition-base)}.status-toggle input:checked+.slider{background:var(--blue)}.status-toggle input:checked+.slider:before{transform:translate(16px);background:#fff}.approval-toggle{display:flex;align-items:flex-start;gap:10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:16px;margin-bottom:16px}.approval-toggle input[type=checkbox]{accent-color:var(--blue);margin-top:2px}.approval-toggle .approval-text{flex:1}.approval-toggle .approval-label{font-size:13px;color:var(--text-primary);font-weight:500}.approval-toggle .approval-desc{font-size:12px;color:var(--text-muted);margin-top:4px}.transition-matrix{margin-top:16px}.transition-role-section{margin-bottom:20px}.transition-role-section h4{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.transition-table{width:100%;border-collapse:collapse;font-size:12px}.transition-table th{padding:6px 8px;color:var(--text-muted);font-weight:500;font-size:11px;border-bottom:1px solid var(--border-default-new);text-align:center;background:var(--bg)}.transition-table th:first-child{text-align:left}.transition-table td{padding:6px 8px;border-bottom:1px solid var(--border-subtle);text-align:center}.transition-table td:first-child{text-align:left;color:var(--text-secondary);font-weight:500}.transition-table td input[type=checkbox]{accent-color:var(--blue)}.transition-table tr:hover td{background:var(--bg-hover)}.kanban-config-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}.kanban-column-card{position:relative;width:170px;min-height:180px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;display:flex;flex-direction:column;align-items:center;padding:0 12px 12px;cursor:default;transition:opacity var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);overflow:visible}.kanban-column-card:hover{border-color:var(--border-default-new)}.kanban-column-card.dragging{opacity:.4;border-color:var(--blue)}.kanban-column-card.drop-left{box-shadow:-3px 0 0 0 var(--blue)}.kanban-column-card.drop-right{box-shadow:3px 0 0 0 var(--blue)}.kanban-column-color{width:100%;height:5px;border-radius:8px 8px 0 0;margin:0 -12px;width:calc(100% + 24px);cursor:pointer;transition:filter var(--transition-fast)}.kanban-column-color:hover{filter:brightness(1.3)}.kanban-color-picker{position:absolute;top:10px;left:50%;transform:translate(-50%);background:var(--bg);border:1px solid var(--border-default-new);border-radius:8px;padding:8px;display:flex;flex-wrap:wrap;gap:6px;z-index:var(--z-dropdown);box-shadow:0 8px 24px #0006;width:140px}.kanban-color-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast);padding:0}.kanban-color-swatch:hover{transform:scale(1.2);border-color:var(--text-primary)}.kanban-color-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--text-primary)}.kanban-column-drag-handle{color:var(--text-muted);margin-top:10px;cursor:grab;padding:2px;border-radius:4px;transition:color var(--transition-fast),background var(--transition-fast)}.kanban-column-drag-handle:hover{color:var(--text-secondary);background:var(--bg-hover)}.kanban-column-name{width:100%;text-align:center;margin-top:8px}.kanban-column-name-text{font-size:13px;font-weight:700;color:var(--text-primary);cursor:pointer;padding:2px 6px;border-radius:4px;transition:background var(--transition-fast);display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kanban-column-name-text:hover{background:var(--bg-hover)}.kanban-column-name-input{width:100%;background:var(--bg-input);border:1px solid var(--blue);border-radius:4px;color:var(--text-primary);font-size:13px;font-weight:700;text-align:center;padding:2px 6px;font-family:var(--font);outline:none}.kanban-column-wip{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:10px}.kanban-column-wip label{font-size:10px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.kanban-column-wip input{width:60px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-size:13px;text-align:center;padding:3px 6px;font-family:var(--font)}.kanban-column-wip input:focus{border-color:var(--blue);outline:none}.kanban-column-delete{margin-top:auto;background:none;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;padding:4px 12px;border-radius:4px;font-family:var(--font);transition:color var(--transition-fast),background var(--transition-fast)}.kanban-column-delete:hover{color:var(--danger);background:#f871711a}.kanban-column-card-add{border-style:dashed;border-color:var(--border-subtle);cursor:pointer;justify-content:center;gap:8px;transition:border-color var(--transition-fast),background var(--transition-fast)}.kanban-column-card-add:hover{border-color:var(--blue);background:#3b82f60d}.kanban-add-icon{font-size:24px;color:var(--text-muted);line-height:1}.kanban-column-card-add:hover .kanban-add-icon{color:var(--blue)}.kanban-add-label{font-size:12px;color:var(--text-muted);font-weight:500}.kanban-column-card-add:hover .kanban-add-label{color:var(--text-secondary)}.general-tab-header{margin-bottom:20px}.general-tab-header h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.general-tab-subtitle{font-size:13px;color:var(--text-muted);margin:0;line-height:1.4}.general-role-section{margin-bottom:4px;border:1px solid var(--border-subtle);border-radius:var(--radius, 6px);overflow:hidden}.general-role-header{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:var(--bg-card);border:none;cursor:pointer;text-align:left;font-family:var(--font);transition:background var(--transition-fast)}.general-role-header:hover{background:var(--bg-hover)}.general-role-chevron{font-size:11px;color:var(--text-muted);width:14px;flex-shrink:0}.general-role-name{font-size:14px;font-weight:600;color:var(--text-primary)}.general-role-subtitle{font-size:12px;font-weight:400;color:var(--text-muted);margin-left:8px}.general-role-body{padding:16px;background:var(--bg);border-top:1px solid var(--border-subtle)}.general-tab-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end}.fb-section-title{font-size:13px;font-weight:600;color:var(--text-primary);margin:16px 0 8px}.fb-section-title:first-child{margin-top:0}.fb-list{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.fb-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;font-size:12px;color:var(--text-secondary)}.fb-item.inactive{opacity:.4}.fb-item-label{flex:1;font-weight:500}.fb-item-badge{font-size:9px;font-weight:600;padding:2px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}.fb-item-badge.type{background:#3b82f626;color:var(--blue)}.fb-item-badge.required{background:#ef444426;color:var(--danger)}.fb-item-actions{display:flex;gap:4px}.fb-item-actions button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:3px;border-radius:3px;font-size:11px}.fb-item-actions button:hover{color:var(--text-primary);background:var(--bg-hover)}.fb-add-btn{display:flex;align-items:center;gap:5px;background:none;border:1px dashed var(--border-default-new);color:var(--text-muted);padding:8px 12px;border-radius:6px;cursor:pointer;font-size:12px;width:100%;justify-content:center;transition:border-color var(--transition-fast),color var(--transition-fast)}.fb-add-btn:hover{border-color:var(--blue);color:var(--blue)}.fb-edit-field{margin-bottom:10px}.fb-edit-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:3px;font-weight:500}.fb-edit-field input[type=text],.fb-edit-field textarea,.fb-edit-field select{width:100%;background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:5px;color:var(--text-primary);font-size:12px;padding:6px 8px;font-family:var(--font);outline:none}.fb-edit-field input:focus,.fb-edit-field textarea:focus,.fb-edit-field select:focus{border-color:var(--blue)}.admin-sidebar{width:220px;min-width:220px;background:var(--bg);border-right:1px solid var(--border-subtle-new);display:flex;flex-direction:column;min-height:100vh}.admin-sidebar-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-3);border-bottom:1px solid var(--border-subtle-new)}.admin-sidebar-back{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--sp-1);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.admin-sidebar-back:hover{color:var(--text-primary);background:var(--bg-muted)}.admin-sidebar-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary)}.admin-sidebar-nav{flex:1;padding:var(--sp-2) 0;overflow-y:auto}.admin-sidebar-group{margin-bottom:var(--sp-1)}.admin-sidebar-group-label{font-size:10px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;padding:var(--sp-3) var(--sp-4) var(--sp-1)}.admin-sidebar-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-4);background:none;border:none;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);text-align:left}.admin-sidebar-item:hover{background:var(--bg-muted);color:var(--text-primary)}.admin-sidebar-item.active{background:#0080ff1f;color:var(--blue)}@media(max-width:768px){.admin-sidebar{width:100%;min-width:unset;min-height:unset;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border-subtle-new);padding:var(--sp-2);gap:var(--sp-1)}.admin-sidebar-header{display:none}.admin-sidebar-nav{display:flex;flex-direction:row;padding:0;overflow-x:auto;overflow-y:hidden;gap:var(--sp-1)}.admin-sidebar-group{display:flex;flex-direction:row;margin-bottom:0;gap:var(--sp-1)}.admin-sidebar-group-label{display:none}.admin-sidebar-item{white-space:nowrap;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm)}}.admin-users-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-pre-register-form{background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.admin-pre-register-fields{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}@media(max-width:768px){.admin-pre-register-fields{grid-template-columns:1fr}}.admin-users-filters{display:flex;gap:10px;margin-bottom:12px}.admin-users-search{flex:1;background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:6px;color:var(--text-primary);padding:6px 10px;font-size:13px}.admin-users-search::placeholder{color:var(--text-muted)}.admin-users-role-filter{background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:6px;color:var(--text-primary);padding:6px 10px;font-size:13px;min-width:140px}.admin-bulk-bar{display:flex;align-items:center;gap:8px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:var(--radius);padding:8px 12px;margin-bottom:12px;position:sticky;top:0;z-index:var(--z-sticky)}.admin-bulk-count{font-size:12px;font-weight:600;color:var(--blue);margin-right:4px}.admin-bulk-role-dropdown{position:absolute;top:100%;left:0;background:var(--bg);border:1px solid var(--border-default-new);border-radius:6px;padding:4px 0;z-index:var(--z-dropdown);min-width:120px;box-shadow:0 4px 12px #0006}.admin-bulk-role-dropdown button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text-secondary);padding:6px 12px;font-size:12px;cursor:pointer}.admin-bulk-role-dropdown button:hover{background:var(--bg-input);color:var(--text-primary)}.admin-row-expanded{background:#3b82f60a}.admin-expand-row td{background:var(--bg-input);border-top:none}.admin-expand-content{padding:14px 16px}.admin-perm-section{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border-subtle)}.admin-perm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.admin-perm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media(max-width:600px){.admin-perm-grid{grid-template-columns:repeat(2,1fr)}}.admin-perm-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);cursor:pointer;padding:4px 6px;border-radius:4px}.admin-perm-toggle:hover{background:#ffffff08}.admin-user-projects-table{width:100%;font-size:12px}.admin-user-projects-table th{font-size:11px;color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.3px}.admin-user-projects-table td{font-size:12px;color:var(--text-secondary)}.admin-row-inactive td{opacity:.45}.admin-programs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-show-archived-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);cursor:pointer}.program-form{background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.program-form-fields{display:flex;flex-direction:column;gap:12px}.program-color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:middle;flex-shrink:0}.program-status-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}.program-status-active{color:var(--green);background:#4ade801f}.program-status-archived{color:var(--text-muted);background:#94a3b81f}.oversight-section{overflow:hidden}.oversight-summary{display:flex;gap:12px;margin-bottom:16px}.oversight-summary-card{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px 12px;border-radius:var(--radius);cursor:pointer;border:2px solid transparent;min-width:140px;transition:border-color var(--transition-fast),opacity var(--transition-fast);font-family:inherit}.oversight-summary-card:hover{opacity:.85}.oversight-summary-card.active{border-color:var(--text-primary)}.oversight-summary-card.on-track{background:#4ade8026;color:var(--green)}.oversight-summary-card.at-risk{background:#fbbf2426;color:var(--warning)}.oversight-summary-card.delayed{background:#f8717126;color:var(--danger)}.oversight-summary-count{font-size:28px;font-weight:800;line-height:1;margin-bottom:4px}.oversight-summary-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.oversight-filter-bar{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.oversight-filter-bar select,.oversight-filter-bar input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);padding:6px 10px;font-size:12px;min-width:140px}.oversight-filter-bar input{flex:1;min-width:180px}.oversight-table-container{overflow-x:auto}.oversight-table{width:100%;border-collapse:collapse}.oversight-table thead th{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap}.oversight-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.oversight-table thead th.sortable:hover{color:var(--text-secondary)}.oversight-group-header{cursor:pointer;background:#ffffff08}.oversight-group-header:hover{background:#ffffff0f}.oversight-group-header td{padding:10px;border-bottom:1px solid var(--border-subtle)}.oversight-group-header-content{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px;color:var(--text-primary)}.oversight-group-chevron{font-size:10px;color:var(--text-muted);width:14px}.oversight-group-name{flex:1}.oversight-group-count,.oversight-group-progress{font-size:11px;color:var(--text-muted);font-weight:400}.oversight-project-row{cursor:pointer;transition:background var(--transition-fast)}.oversight-project-row:hover{background:#3b82f60f}.oversight-project-row td{padding:8px 10px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.oversight-project-name{font-weight:600;color:var(--text-primary)!important}.oversight-health-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.oversight-health-badge.on-track{background:#4ade8026;color:var(--green)}.oversight-health-badge.at-risk{background:#fbbf2426;color:var(--warning)}.oversight-health-badge.delayed{background:#f8717126;color:var(--danger)}.oversight-progress-cell{display:flex;align-items:center;gap:8px}.oversight-progress-bar{flex:1;height:4px;background:var(--bg-input);border-radius:2px;overflow:hidden;min-width:60px}.oversight-progress-fill{height:100%;border-radius:2px;background:var(--blue);transition:width var(--transition-slow)}.oversight-progress-text{font-size:11px;color:var(--text-muted);min-width:32px;text-align:right}.oversight-empty{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:13px}.audit-log-section{overflow:hidden}.audit-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.audit-export-btn{white-space:nowrap}.audit-categories{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border-subtle);padding-bottom:0}.audit-category-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:12px;font-weight:500;padding:8px 14px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.audit-category-btn:hover{color:var(--text-secondary)}.audit-category-btn.active{border-bottom-color:var(--blue);color:var(--text-primary);font-weight:600}.audit-filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.audit-filter-bar select,.audit-filter-bar input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);padding:6px 10px;font-size:12px;min-width:140px}.audit-table-container{overflow-x:auto}.audit-table{width:100%;border-collapse:collapse}.audit-table thead th{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap}.audit-entry-row{cursor:pointer;transition:background var(--transition-fast)}.audit-entry-row:hover{background:#ffffff08}.audit-entry-row.expanded{background:#3b82f60a}.audit-entry-row td{padding:8px 10px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.audit-expand-indicator{font-size:10px;color:var(--text-muted)}.audit-expand-row td{padding:0;border-bottom:1px solid var(--border-subtle)}.audit-expand-content{background:#ffffff05;padding:12px 16px;border-top:1px solid var(--border-subtle)}.audit-changes-table{width:100%;border-collapse:collapse}.audit-changes-table th{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;padding:4px 8px;text-align:left;border-bottom:1px solid var(--border-subtle)}.audit-changes-table td{padding:4px 8px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.03)}.audit-old-value{color:var(--danger)!important}.audit-new-value{color:var(--green)!important}.audit-pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:16px;flex-wrap:wrap}.audit-page-btn{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);padding:4px 10px;font-size:12px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.audit-page-btn:hover:not(:disabled){background:var(--border-subtle)}.audit-page-btn:disabled{opacity:.4;cursor:default}.audit-page-btn.active{background:var(--blue);border-color:var(--blue);color:var(--text-primary);font-weight:600}.audit-page-ellipsis{padding:4px 6px;font-size:12px;color:var(--text-muted)}.audit-page-info{margin-left:12px;font-size:11px;color:var(--text-muted)}.audit-per-page{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;color:var(--text-muted)}.audit-per-page select{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);padding:3px 6px;font-size:11px;cursor:pointer}.settings-tabs{display:flex;border-bottom:1px solid var(--border-subtle);margin-bottom:20px;gap:0}.settings-tab{padding:8px 18px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.settings-tab:hover{color:var(--text-secondary)}.settings-tab.active{border-bottom-color:var(--blue);color:var(--text-primary)}.settings-form{max-width:600px}.settings-field{margin-bottom:16px}.settings-field>label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:4px}.settings-field select,.settings-field input[type=number]{width:100%;max-width:300px;background:var(--bg-input);border:1px solid var(--border-default-new);border-radius:6px;color:var(--text-primary);padding:6px 10px;font-size:13px}.settings-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;color:var(--text-secondary)}.settings-toggle input[type=checkbox]{accent-color:var(--blue);width:16px;height:16px;cursor:pointer}.settings-save-btn{margin-top:24px}.settings-hint{display:block;font-size:11px;color:var(--text-muted);font-style:italic;margin-top:4px}.settings-updated{margin-top:16px;font-size:11px;color:var(--text-muted)}.settings-section-divider{border-top:1px solid var(--border-subtle-new);margin:var(--sp-6) 0 var(--sp-4)}.settings-subsection-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-2)}.level-color-grid{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-4)}.level-color-row{display:flex;align-items:center;gap:var(--sp-3)}.level-color-label{width:80px;font-size:var(--fs-sm);color:var(--text-secondary);font-weight:500}.level-color-input{width:36px;height:36px;border:2px solid var(--border-subtle-new);border-radius:var(--radius-sm);cursor:pointer;background:transparent;padding:2px}.level-color-input::-webkit-color-swatch-wrapper{padding:0}.level-color-input::-webkit-color-swatch{border:none;border-radius:4px}.level-color-actions{display:flex;gap:var(--sp-3);justify-content:flex-end;margin-bottom:var(--sp-4)}.stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stats-header .section-title{margin:0}.stats-period-toggle{display:flex;gap:2px;background:var(--bg-input);border-radius:6px;padding:2px}.stats-period-btn{background:none;border:none;color:var(--text-muted);font-size:12px;padding:4px 12px;border-radius:4px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.stats-period-btn:hover{color:var(--text-secondary)}.stats-period-btn.active{background:var(--blue);color:var(--text-primary)}.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stats-card{background:var(--bg);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:4px}.stats-card-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1.1}.stats-card-label{font-size:12px;color:var(--text-muted);margin-bottom:6px}.stats-breakdowns{display:flex;flex-direction:column;gap:8px}.stats-breakdown{background:var(--bg);border-radius:8px;overflow:hidden}.stats-breakdown-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:none;border:none;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.stats-breakdown-header:hover{background:var(--bg-hover)}.stats-chevron{font-size:10px;color:var(--text-muted)}.stats-breakdown-content{padding:0 16px 16px}.stats-role-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:1px;margin-bottom:8px}.stats-bar-segment{height:8px;border-radius:4px}.stats-role-legend{display:flex;gap:16px;flex-wrap:wrap}.stats-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);text-transform:capitalize}.stats-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.stats-badges-group{display:flex;flex-direction:column;gap:6px}.stats-badge-label{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase}.stats-badges{display:flex;gap:8px;flex-wrap:wrap}.stats-health-badge{font-size:12px;font-weight:500;text-transform:capitalize}.stats-model-badge{font-size:12px;color:var(--text-secondary);background:var(--bg-input);padding:3px 8px;border-radius:4px}.stats-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.stats-table th{text-align:left;font-size:11px;color:var(--text-muted);font-weight:600;padding:4px 8px;border-bottom:1px solid var(--border-subtle)}.stats-table td{padding:6px 8px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.stats-usage-bar{width:80px;height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden}.stats-usage-fill{height:100%;background:var(--blue);border-radius:3px;transition:width var(--transition-slow)}.stats-empty-text{font-size:12px;color:var(--text-muted);text-align:center;padding:12px 0;margin:0}.admin-layout{display:flex;min-height:100vh;background:var(--bg-subtle)}.admin-main{flex:1;padding:var(--sp-6);overflow-y:auto;max-width:1100px}.admin-loading{display:flex;align-items:center;justify-content:center;height:300px;color:var(--text-tertiary)}.admin-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:var(--text-tertiary)}.admin-placeholder h2{font-size:var(--fs-md);font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-2)}.admin-placeholder p{font-size:var(--fs-sm)}.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-6)}.admin-stat-card{background:var(--bg);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:var(--sp-4);text-align:center}.admin-stat-value{font-size:var(--fs-2xl);font-weight:800;color:var(--text-primary);margin-bottom:var(--sp-1)}.admin-stat-label{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.admin-section{background:var(--bg);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:var(--sp-4)}.admin-section h2{margin-bottom:var(--sp-3)}.admin-badge{font-size:10px;font-weight:700;color:var(--warning);background:#f59e0b26;padding:2px 6px;border-radius:3px}.llm-settings-grid{display:flex;flex-direction:column;gap:10px}.llm-setting-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.llm-setting-label{font-size:var(--fs-sm);color:var(--text-secondary)}@media(max-width:768px){.admin-layout{flex-direction:column}.admin-main{padding:var(--sp-4);max-width:100%}}.program-view{min-height:100vh;display:flex;flex-direction:column}.program-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 24px;background:var(--bg);border-bottom:1px solid var(--border-subtle)}.program-list{padding:12px 24px;display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.program-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:border-color var(--transition-fast)}.program-row:hover{border-color:var(--blue)}.program-row-name{font-size:13px;font-weight:600;flex:1}.program-row-meta{display:flex;gap:8px;font-size:11px;color:var(--text-muted)}.program-gantt{flex:1;min-height:200px;overflow:hidden;background:var(--bg-subtle)}.program-gantt canvas{display:block}:root{--bg: #171717;--bg-subtle: #121212;--bg-muted: #1E1E1E;--bg-card-glass: rgba(38,38,38,.7);--glass-bg: rgba(38,38,38,.55);--glass-strong: rgba(38,38,38,.8);--glass-blur: 16px;--border-glass: rgba(255,255,255,.08);--green: #22C55E;--blue: #0080FF;--purple: #8B00FF;--green-subtle: rgba(34,197,94,.15);--blue-subtle-new: rgba(0,128,255,.15);--purple-subtle: rgba(139,0,255,.15);--success: #22C55E;--warning: #F59E0B;--danger: #EF4444;--info: #0080FF;--text-primary: #FFFFFF;--text-secondary: #A0A0A0;--text-tertiary: #666666;--border-subtle-new: #2A2A2A;--border-default-new: #3A3A3A;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 6px rgba(0,0,0,.4);--shadow-lg: 0 10px 25px rgba(0,0,0,.5);--shadow-glow-green: 0 0 30px rgba(34,197,94,.2);--shadow-glow-blue: 0 0 30px rgba(0,128,255,.2);--shadow-glow-purple: 0 0 30px rgba(139,0,255,.2);--shadow-glow-red: 0 0 30px rgba(239,68,68,.2);--shadow-glow-amber: 0 0 30px rgba(245,158,11,.2);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-xs: 12px;--fs-sm: 14px;--fs-base: 16px;--fs-md: 18px;--fs-lg: 20px;--fs-xl: 24px;--fs-2xl: 32px;--fs-3xl: 40px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--z-command: 600;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--level-phase: #A78BFA;--level-phase-rgb: 167,139,250;--level-milestone: #FB923C;--level-milestone-rgb: 251,146,60;--level-task: #60A5FA;--level-task-rgb: 96,165,250;--level-subtask: #67E8F9;--level-subtask-rgb: 103,232,249;--level-minitask: #9CA3AF;--level-minitask-rgb: 156,163,175;--bg-dark: var(--bg);--bg-card: var(--bg-card-glass);--bg-input: var(--bg-muted);--bg-hover: var(--bg-muted);--bg-selected: var(--blue-subtle-new);--blue-primary: var(--blue);--blue-dark: #1e3a5f;--blue-hover: #60a5fa;--blue-subtle: var(--blue-subtle-new);--text-white: var(--text-primary);--text-light: var(--text-secondary);--text-muted: var(--text-tertiary);--status-green: var(--green);--status-red: var(--danger);--status-amber: var(--warning);--status-blue: var(--info);--border-subtle: var(--border-subtle-new);--border-default: var(--border-default-new);--radius: var(--radius-sm);--text-xs: 10px;--text-sm: var(--fs-xs);--text-base: 13px;--text-md: var(--fs-sm);--text-lg: var(--fs-md);--text-xl: var(--fs-xl);--text-2xl: 28px;--space-1: var(--sp-1);--space-2: var(--sp-2);--space-3: var(--sp-3);--space-4: var(--sp-4);--space-5: var(--sp-5);--space-6: var(--sp-6);--space-8: var(--sp-8);--space-10: var(--sp-10);--gantt-bar-normal: var(--blue);--gantt-bar-critical: var(--danger);--gantt-bar-summary: var(--level-phase);--gantt-bar-milestone: var(--warning);--gantt-bar-progress: rgba(255,255,255,.25);--gantt-grid-line: rgba(255,255,255,.04);--gantt-today-line: var(--warning);--gantt-dependency-line: #64748b;--gantt-row-alt: rgba(255,255,255,.02);--gantt-row-height: 34px}html{scroll-behavior:smooth}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg-subtle);color:var(--text-primary);min-height:100vh;font-size:14px;-webkit-font-smoothing:antialiased;line-height:1.5}#root{min-height:100vh}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;overflow:hidden;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-default)}*{scrollbar-width:thin;scrollbar-color:var(--bg-hover) transparent}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--blue)}input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:none;border-color:var(--blue)}.card{background:var(--bg);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:var(--sp-4)}.card-glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:22px;transition:all .25s cubic-bezier(.16,1,.3,1)}.glass-strong{background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.page-title{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin-bottom:4px}.page-subtitle{font-size:var(--fs-xs);color:var(--text-tertiary);font-weight:400;margin-bottom:16px}.section-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);margin-bottom:6px}.label{font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary);margin-bottom:4px}.text-muted{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:var(--radius-full);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.btn-primary{background:var(--blue);color:var(--text-primary)}.btn-primary:hover{background:color-mix(in srgb,var(--blue) 85%,black);box-shadow:0 4px 12px #0080ff4d;transform:translateY(-1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border-subtle-new)}.btn-secondary:hover{background:var(--bg-muted);border-color:var(--text-tertiary)}.btn-ghost{background:transparent;color:var(--text-tertiary);padding:6px 10px}.btn-ghost:hover{background:var(--bg-muted);color:var(--text-primary)}.btn-danger{background:transparent;color:var(--danger);border:1px solid transparent}.btn-danger:hover{background:#ef44441a;border-color:#ef44444d}.btn-sm{padding:6px 12px;font-size:12px}.btn-md{padding:8px 16px;font-size:13px}.btn-lg{padding:10px 20px;font-size:14px}input,select,textarea{font-family:var(--font);font-size:14px;color:var(--text-primary);background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:8px 12px;outline:none;transition:border-color var(--transition-fast)}input:focus,select:focus,textarea:focus{border-color:var(--blue)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}select{cursor:pointer}select option{background:var(--bg-card-glass);color:var(--text-primary)}table{width:100%;border-collapse:collapse}th{background:var(--bg-muted);color:var(--text-tertiary);font-size:11px;font-weight:600;padding:8px 10px;text-align:left;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle-new);position:sticky;top:0;z-index:var(--z-sticky)}td{padding:0 10px;height:var(--gantt-row-height);border-bottom:1px solid var(--border-subtle-new);font-size:13px}tr:hover td{background:#ffffff05}tr.selected td{background:var(--blue-subtle-new)}.status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:capitalize}.priority-critical{color:var(--danger);font-weight:600}.priority-high{color:var(--warning);font-weight:600}.priority-medium{color:var(--text-secondary);font-weight:600}.priority-low{color:var(--green);font-weight:600}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;white-space:nowrap}.badge-success{background:var(--green-subtle);color:var(--green)}.badge-info{background:var(--blue-subtle-new);color:var(--blue)}.badge-warning{background:#f59e0b1a;color:var(--warning)}.badge-danger{background:#ef44441a;color:var(--danger)}.badge-purple{background:var(--purple-subtle);color:var(--purple)}.badge-level-phase{background:rgba(var(--level-phase-rgb),.15);color:var(--level-phase)}.badge-level-milestone{background:rgba(var(--level-milestone-rgb),.15);color:var(--level-milestone)}.badge-level-task{background:rgba(var(--level-task-rgb),.15);color:var(--level-task)}.badge-level-subtask{background:rgba(var(--level-subtask-rgb),.15);color:var(--level-subtask)}.badge-level-minitask{background:rgba(var(--level-minitask-rgb),.15);color:var(--level-minitask)}.progress-bar-container{width:100%;height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--blue);border-radius:3px;transition:width var(--transition-slow)}.toast{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;animation:toastSlideIn .2s ease;background:var(--glass-strong);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);color:var(--text-primary);position:relative;overflow:hidden}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.toast-success:before{background:var(--green)}.toast-error:before{background:var(--danger)}.toast-info:before{background:var(--blue)}.toast-warning:before{background:var(--warning)}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-action{background:#ffffff26;border:none;color:inherit;font-size:11px;font-weight:700;padding:3px 10px;border-radius:4px;cursor:pointer;white-space:nowrap}.toast-action:hover{background:#ffffff40}.toast-success,.toast-error,.toast-info,.toast-warning{background:var(--glass-strong);color:var(--text-primary)}.toast-clickable{cursor:pointer}.toast-clickable:hover{filter:brightness(1.15);transition:filter var(--transition-fast)}.toast-progress{position:absolute;bottom:0;left:0;height:3px;width:40%;background:currentColor;opacity:.5;border-radius:0 2px 2px 0;animation:toast-progress-slide 1.5s ease-in-out infinite}@keyframes slideIn{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes toast-progress-slide{0%{left:-40%}to{left:100%}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.modal-content{background:var(--bg-subtle);border:1px solid var(--border-default-new);border-radius:var(--radius-sm);padding:20px;min-width:380px;max-width:500px;box-shadow:0 8px 32px #00000080}.modal-content h3{font-size:14px;font-weight:700;margin-bottom:14px}.context-menu{position:fixed;background:var(--bg-card-glass);border:1px solid var(--border-default-new);border-radius:6px;padding:4px 0;z-index:var(--z-dropdown);min-width:180px;box-shadow:0 4px 16px #0006}.ctx-item{padding:7px 14px;cursor:pointer;font-size:12px;color:var(--text-primary);transition:background var(--transition-fast);display:flex;align-items:center;gap:8px}.ctx-item:hover{background:var(--blue-subtle-new)}.ctx-sep{height:1px;background:var(--border-subtle-new);margin:3px 0}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-spin{animation:icon-spin 1s linear infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-16) var(--sp-8);text-align:center;gap:var(--sp-4)}.empty-state svg{width:48px;height:48px;color:var(--text-tertiary);stroke-width:1.5}.empty-state .empty-title{font-size:var(--fs-md);font-weight:600;color:var(--text-secondary)}.empty-state .empty-text{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:320px}.empty-state-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);margin-bottom:4px}.empty-state-desc{font-size:var(--fs-xs);color:var(--text-tertiary);max-width:320px;line-height:1.5}.skeleton{background:linear-gradient(90deg,var(--bg-muted) 25%,rgba(255,255,255,.05) 50%,var(--bg-muted) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-pulse{background:linear-gradient(90deg,var(--bg-hover) 25%,var(--bg-card) 50%,var(--bg-hover) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.flex{display:flex}.flex-col{flex-direction:column}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.items-center{align-items:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.w-full{width:100%}.input-error{border-color:var(--danger)!important}.input-valid{border-color:var(--green)!important}.field-error{color:var(--danger);font-size:var(--fs-xs);margin-top:var(--sp-1);display:block}.login-page{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-subtle);z-index:1}.login-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:var(--sp-8)}.login-logo{margin-bottom:var(--sp-4)}.login-title{font-size:var(--fs-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--sp-1)}.login-subtitle{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-8)}.login-btn{width:100%;justify-content:center;padding:12px 20px;font-size:var(--fs-sm);margin-bottom:var(--sp-4);border-radius:var(--radius-full);background:var(--blue);color:var(--text-primary);border:none;cursor:pointer;font-weight:600;font-family:var(--font);display:inline-flex;align-items:center;gap:8px;transition:all var(--transition-base)}.login-btn:hover{background:color-mix(in srgb,var(--blue) 85%,black);box-shadow:0 4px 12px #0080ff4d;transform:translateY(-1px)}.login-btn:focus-visible{box-shadow:0 0 0 2px var(--blue)}.login-footer{font-size:11px;color:var(--text-tertiary)}.login-error{color:var(--danger);background:#ef44441a;padding:var(--sp-3);border-radius:var(--radius-sm);font-size:var(--fs-sm);margin-bottom:var(--sp-4);width:100%;text-align:center}.login-redirecting{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-secondary);font-size:var(--fs-sm);margin-bottom:var(--sp-4)}.login-spinner{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:480px){.login-card{margin:var(--sp-4);max-width:100%}}.text-light{color:var(--text-secondary)}.project-list-page{min-height:100vh;display:flex;flex-direction:column}.project-list-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg);border-bottom:1px solid var(--border-subtle-new)}.project-list-header-left{display:flex;align-items:center;gap:10px}.project-list-header-left h1{font-size:18px;font-weight:700}.project-list-header-right{display:flex;align-items:center}.project-list-content{flex:1;max-width:960px;width:100%;margin:0 auto;padding:24px}.project-list-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.project-list-toolbar h2{font-size:18px;font-weight:600}.project-create-form{display:flex;flex-direction:column;gap:10px;background:var(--bg-card-glass);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:16px;margin-bottom:20px}.form-field-group{display:flex;flex-direction:column;gap:4px}.form-field-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.project-card{background:var(--bg);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);padding:16px;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.project-card:hover{border-color:var(--blue);background:var(--bg-card-glass);box-shadow:0 2px 8px #0080ff1f;transform:translateY(-1px)}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.project-card-name{font-size:14px;font-weight:600}.project-card-status{font-size:11px;font-weight:600;text-transform:capitalize}.project-card-desc{font-size:12px;color:var(--text-tertiary);margin-bottom:12px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.project-card-stats{margin-bottom:10px}.project-card-progress-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.project-card-progress-bar{flex:1;height:5px;background:var(--bg-input);border-radius:3px;overflow:hidden}.project-card-progress-fill{height:100%;background:var(--blue);border-radius:3px;transition:width var(--transition-slow)}.project-card-progress-pct{font-size:11px;font-weight:600;color:var(--text-secondary);min-width:30px;text-align:right}.project-card-meta{display:flex;gap:12px;font-size:11px;color:var(--text-tertiary)}.project-card-footer{display:flex;gap:16px;font-size:11px}.portfolio-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:20px}.portfolio-card{background:var(--bg);border:1px solid var(--border-subtle-new);border-left:3px solid var(--blue);border-radius:var(--radius-sm);padding:14px 16px}.portfolio-card-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:4px}.portfolio-card-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.project-search{background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font);font-size:13px;padding:6px 12px;width:200px;outline:none;transition:border-color var(--transition-fast)}.project-search:focus{border-color:var(--blue)}.project-search::placeholder{color:var(--text-tertiary)}.workspace{display:flex;min-height:100vh;height:100vh;overflow:hidden}.workspace-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.workspace-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.status-active{background:#22c55e26;color:var(--green)}.status-on_hold{background:#f59e0b26;color:var(--warning)}.status-completed{background:#0080ff26;color:var(--blue)}.status-archived{background:var(--bg-muted);color:var(--text-tertiary)}.assignee-cell{position:relative;display:flex;align-items:center;gap:2px;cursor:pointer;min-height:28px;padding:2px 4px}.assignee-cell .avatar-stack{display:flex;align-items:center}.assignee-cell .unassigned-circle{width:24px;height:24px;border-radius:50%;border:2px dashed var(--text-secondary);display:flex;align-items:center;justify-content:center}.assignee-cell .plus-badge{width:24px;height:24px;border-radius:50%;background:var(--bg-muted);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;border:1px solid var(--border-subtle-new);box-sizing:content-box}.assignee-dropdown{z-index:var(--z-dropdown);background:var(--bg-card-glass);border:1px solid var(--border-default-new);border-radius:6px;box-shadow:0 8px 24px #0006;min-width:220px;max-height:280px;overflow:hidden;display:flex;flex-direction:column}.assignee-dropdown .assignee-search{padding:8px;border-bottom:1px solid var(--border-subtle-new)}.assignee-dropdown .assignee-search input{width:100%;background:var(--bg-muted);border:1px solid var(--border-subtle-new);border-radius:4px;padding:6px 8px;color:var(--text-primary);font-size:12px;outline:none;box-sizing:border-box}.assignee-dropdown .assignee-search input:focus{border-color:var(--blue)}.assignee-dropdown .assignee-list{overflow-y:auto;max-height:240px;padding:4px 0}.assignee-dropdown .assignee-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;color:var(--text-primary)}.assignee-dropdown .assignee-item:hover{background:var(--bg-muted)}.assignee-dropdown .assignee-item .role-badge{font-size:10px;color:var(--text-secondary);margin-left:auto}.assignee-dropdown .assignee-item .remove-btn{margin-left:4px;color:var(--text-secondary);cursor:pointer;padding:2px 4px;border-radius:3px;background:none;border:none;font-size:16px;line-height:1}.assignee-dropdown .assignee-item .remove-btn:hover{color:var(--danger);background:#ef44441a}.assignee-dropdown .assignee-item.assigned{opacity:.7}.kpi-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:22px;transition:all .25s cubic-bezier(.16,1,.3,1);cursor:pointer;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg);opacity:0;transition:opacity .3s}.kpi-card:hover:before{opacity:1}.kpi-card:hover{transform:translateY(-3px)}.kpi-accent-green:before{background:linear-gradient(135deg,rgba(34,197,94,.08),transparent 60%)}.kpi-accent-green:hover{box-shadow:var(--shadow-glow-green)}.kpi-accent-blue:before{background:linear-gradient(135deg,rgba(0,128,255,.08),transparent 60%)}.kpi-accent-blue:hover{box-shadow:var(--shadow-glow-blue)}.kpi-accent-purple:before{background:linear-gradient(135deg,rgba(139,0,255,.08),transparent 60%)}.kpi-accent-purple:hover{box-shadow:var(--shadow-glow-purple)}.kpi-accent-red:before{background:linear-gradient(135deg,rgba(239,68,68,.08),transparent 60%)}.kpi-accent-red:hover{box-shadow:var(--shadow-glow-red)}.kpi-accent-amber:before{background:linear-gradient(135deg,rgba(245,158,11,.08),transparent 60%)}.kpi-accent-amber:hover{box-shadow:var(--shadow-glow-amber)}.kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.kpi-label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.kpi-ico{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.kpi-ico svg{width:18px;height:18px}.kpi-ico.green{background:var(--green-subtle);color:var(--green)}.kpi-ico.blue{background:var(--blue-subtle-new);color:var(--blue)}.kpi-ico.purple{background:var(--purple-subtle);color:var(--purple)}.kpi-ico.red{background:#ef44441a;color:var(--danger)}.kpi-ico.amber{background:#f59e0b1a;color:var(--warning)}.kpi-val{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1.2}.kpi-change{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:var(--sp-1)}.kpi-change.up{color:var(--green)}.kpi-change.down{color:var(--danger)}.panel{background:var(--bg);border:1px solid var(--border-subtle-new);border-radius:var(--radius-lg);padding:var(--sp-6)}.panel-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-4)}.gradient-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.orb{position:absolute;border-radius:50%;filter:blur(90px)}.orb-green{width:500px;height:500px;background:radial-gradient(circle,rgba(34,197,94,.12) 0%,transparent 70%);top:-120px;right:-80px;animation:drift 10s ease-in-out infinite}.orb-blue{width:600px;height:600px;background:radial-gradient(circle,rgba(0,128,255,.1) 0%,transparent 70%);bottom:-200px;left:0;animation:drift 14s ease-in-out infinite reverse}.orb-purple{width:400px;height:400px;background:radial-gradient(circle,rgba(139,0,255,.08) 0%,transparent 70%);top:50%;right:15%;animation:drift 12s ease-in-out infinite}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(25px,-15px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.orb{animation:none!important}}
