*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5;color:#1a1a1a;background:#f5f5f5}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:#fff;border-bottom:1px solid #e5e7eb;padding:0 1.5rem;display:flex;align-items:center;gap:2rem;min-height:56px}.header a{color:#374151;text-decoration:none;font-size:.9rem}.header a:hover{color:#1a1a1a}.logo{font-size:1.1rem;color:#1a1a1a}.header nav{display:flex;gap:.25rem}.header nav a{padding:.5rem .75rem;border-radius:6px}.header nav a:hover{background:#f3f4f6}.api-status{margin-left:auto;color:#22c55e;font-size:.65rem}.main{flex:1;display:flex;flex-direction:column;min-height:0;padding:1rem;background:#f8fafc}@media(min-width:768px){.main{padding:1.25rem 1.5rem}}@media(min-width:1024px){.main{padding:1.5rem 2rem}}.error{color:#c00;padding:1rem;background:#fff0f0;border-radius:6px}.success{color:#0a5;padding:1rem;background:#f0fff0;border-radius:6px}.card{background:#fff;border-radius:8px;padding:1.5rem;max-width:640px;box-shadow:0 1px 3px #00000014}.page-header{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.page-header h2{margin:0}.page-header .actions{margin-left:auto;display:flex;gap:.5rem}.btn{display:inline-block;padding:.5rem 1rem;border-radius:6px;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:.9rem;text-decoration:none;color:inherit}.btn:hover{background:#f0f0f0}.btn-primary{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.btn-primary:hover{background:#333}.btn-danger{border-color:#c00;color:#c00}.btn-danger:hover{background:#fff0f0}.form label{display:block;margin-bottom:1rem}.form label input,.form label textarea,.form label select{display:block;width:100%;margin-top:.25rem;padding:.5rem;border:1px solid #ccc;border-radius:4px}.form-actions{display:flex;gap:.5rem;margin-top:1rem}.form-inline{display:flex;gap:.5rem;margin-bottom:1rem}.form-inline input{flex:1;padding:.5rem;border:1px solid #ccc;border-radius:4px}.project-list{list-style:none;padding:0;margin:0}.project-item{margin-bottom:.5rem}.project-link{display:block;padding:.75rem;background:#fff;border-radius:8px;text-decoration:none;color:inherit;box-shadow:0 1px 2px #0000000f}.project-link:hover{background:#f8f8f8}.task-list{list-style:none;padding:0;margin:0}.task-list li{padding:.5rem 0;border-bottom:1px solid #eee;display:flex;align-items:center;gap:.5rem}.badge-sm{font-size:.7rem}.tasks-section{margin-top:1.5rem}.tasks-section h3{margin:0 0 1rem;font-size:1rem}.card h2{margin:0 0 1rem;font-size:1.1rem}.card p{margin:.5rem 0}.card+.card{margin-top:1.5rem}.projects-card .project-list{list-style:none;padding:0;margin:.5rem 0 0}.projects-card .project-list li{padding:.5rem 0;border-bottom:1px solid #eee;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.projects-card .project-list li:last-child{border-bottom:0}.badge{font-size:.75rem;padding:.2rem .5rem;background:#e0e0e0;border-radius:4px}.desc{font-size:.9rem;color:#555;width:100%}.muted{color:#666;font-size:.9rem}code{background:#eee;padding:.1rem .3rem;border-radius:4px;font-size:.85em}.cockpit-page{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;max-width:100%;padding:0 0 1rem}.cockpit-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e5e5;flex-shrink:0}@media(min-width:768px){.cockpit-header{gap:1rem 1.5rem;margin-bottom:1.5rem;padding-bottom:1.25rem}}.cockpit-header-main{display:flex;align-items:center;gap:.75rem}.cockpit-header-name{font-size:1.25rem;color:#1a1a1a}.cockpit-header-badge{font-size:.75rem;padding:.2rem .5rem;background:#e8e8e8;color:#555;border-radius:4px}.cockpit-header-meta{display:flex;gap:1.25rem;font-size:.875rem;color:#666}.cockpit-header-actions{margin-left:auto;display:flex;gap:.5rem}.btn-ghost{background:transparent;border:1px solid #ddd;color:#444}.btn-ghost:hover{background:#f5f5f5}.btn-ghost.active{background:#e8e8e8}.btn-ghost-sm{padding:.35rem .65rem;font-size:.8rem;background:transparent;border:1px solid #ddd;color:#555;border-radius:4px;cursor:pointer}.btn-ghost-sm:hover{background:#f0f0f0}.btn-icon{width:1.75rem;height:1.75rem;padding:0;border:none;background:transparent;cursor:pointer;border-radius:4px;font-size:1rem;line-height:1;color:#555}.btn-icon:hover{background:#eee;color:#1a1a1a}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem;flex-shrink:0}@media(min-width:480px){.kpis{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}}@media(min-width:640px){.kpis{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:1.5rem}}.kpis-committee{grid-template-columns:repeat(3,1fr);max-width:400px}.kpi{background:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:1rem;text-align:center}.kpi-main .kpi-value{font-size:1.5rem;color:#1a1a1a}.kpi-value{display:block;font-size:1.125rem;color:#333}.kpi-label{display:block;font-size:.75rem;color:#666;margin-top:.25rem}.kpi-alert .kpi-value{color:#b91c1c}.cockpit-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;flex-shrink:0}.plan-diagnostics{margin-bottom:1rem;padding:.75rem 1rem}.plan-diagnostics-title{margin:0 0 .5rem;font-size:.9rem;font-weight:600;color:#374151}.plan-diagnostics-list{margin:0;padding-left:1.25rem;font-size:.85rem;color:#4b5563}.plan-diagnostics-list li+li{margin-top:.25rem}.plan-diagnostics-warnings{margin:.5rem 0 0;font-size:.8rem;color:#92400e}.view-switcher{display:flex;gap:0;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden}.view-switcher-btn{padding:.4rem .6rem;font-size:.8rem;border:none;background:#fff;color:#555;cursor:pointer;border-right:1px solid #e0e0e0;white-space:nowrap}@media(min-width:640px){.view-switcher-btn{padding:.5rem 1rem;font-size:.875rem}}.view-switcher-btn:last-child{border-right:none}.view-switcher-btn:hover{background:#f5f5f5}.view-switcher-btn.active{background:#e8e8e8;color:#1a1a1a}.cockpit-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem;flex-shrink:0}.org-toggle{display:flex;align-items:center;gap:.5rem}.org-label{font-size:.875rem;color:#64748b}.org-toggle .btn-sm.active{background:#e5e7eb;color:#1a1a1a}.search-input,.filter-select{padding:.5rem .75rem;font-size:.875rem;border:1px solid #ddd;border-radius:6px;background:#fff}.search-input{min-width:200px}.cockpit-main{flex:1;display:flex;flex-direction:column;min-height:0;background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:.75rem;overflow:auto}@media(min-width:768px){.cockpit-main{padding:1rem}}.task-tree-toolbar{margin-bottom:.75rem;display:flex;gap:.5rem}.task-tree-table-wrap{overflow:auto}.task-tree-by-milestones .milestone-sections{display:flex;flex-direction:column;gap:.5rem}.milestone-section{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.milestone-section-header{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fafafa;border:none;font-size:.875rem;color:#1a1a1a;text-align:left;cursor:pointer}.milestone-section-header:hover{background:#f1f5f9}.milestone-section-toggle{color:#64748b;font-size:.7rem}.milestone-section-title{flex:0 0 auto}.milestone-section-meta{color:#64748b;font-size:.8rem}.milestone-section-body{padding:0 1rem 1rem}.milestone-section-body .wbs-table{margin-top:.5rem}.milestone-section-none .milestone-section-header{background:#f8fafc}.milestone-section-header-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.milestone-section-header-wrap .milestone-section-header{flex:1;min-width:0}.milestone-section-actions{display:flex;gap:.25rem;padding-right:.75rem}.milestone-drawer{width:400px}.milestone-drawer-kpis{margin-top:1rem}.milestone-drawer-task-list{margin:.5rem 0 0;padding-left:1.25rem;font-size:.8rem;color:#475569}.milestone-upload-zone{border:2px dashed #e5e7eb;border-radius:8px;padding:1.5rem;text-align:center;font-size:.875rem;color:#64748b;position:relative;margin-bottom:1rem}.milestone-upload-zone:hover,.milestone-upload-zone.drag-over{border-color:#94a3b8;background:#f8fafc}.milestone-upload-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.milestone-attachment-list{list-style:none;margin:0;padding:0}.milestone-attachment-item{padding:.5rem 0;border-bottom:1px solid #f1f5f9;font-size:.85rem}.milestone-attachment-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.milestone-attachment-meta{font-size:.75rem;color:#64748b}.timeline-graph-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex-shrink:0}@media(min-width:640px){.timeline-graph-toolbar{gap:.75rem}}.timeline-graph-hint{font-size:.8rem;color:#64748b}.timeline-graph-zoom .btn-ghost-sm.active{background:#e5e7eb;color:#1a1a1a}.timeline-graph-view{flex:1;display:flex;flex-direction:column;gap:.5rem;min-height:0;min-width:0}@media(min-width:768px){.timeline-graph-view{gap:.75rem}}.timeline-graph-split{flex:1;min-height:320px;overflow:auto;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc}.timeline-graph-two-cols{display:grid;grid-template-columns:1fr;min-height:320px}@media(min-width:900px){.timeline-graph-two-cols{grid-template-columns:minmax(260px,340px) minmax(400px,1fr);min-height:400px}}@media(min-width:1200px){.timeline-graph-two-cols{grid-template-columns:340px minmax(800px,1fr);width:max(100%,1140px);min-width:1140px}}.timeline-graph-col-left{display:flex;flex-direction:column;border-right:1px solid #e5e7eb;background:#fff;overflow:hidden}.timeline-graph-col-left .timeline-graph-header{flex-shrink:0;height:auto;min-height:56px}.timeline-graph-col-left .timeline-graph-header-left{border-right:none}.timeline-graph-col-right{overflow:auto;background:#e2e8f0;min-width:0}@media(min-width:1200px){.timeline-graph-col-right{min-width:800px}}.timeline-graph-right-inner{position:relative;min-height:320px;flex-shrink:0}@media(min-width:900px){.timeline-graph-right-inner{min-height:400px}}.timeline-graph-col-right .timeline-graph-header-right{border-left:1px solid #e2e8f0}.timeline-graph-today-vertical{position:absolute;top:0;bottom:0;width:2px;background:#22c55e;z-index:2;pointer-events:none}.timeline-graph-daterange{font-size:.85rem;font-weight:600;color:#334155;padding:.25rem .5rem;background:#f1f5f9;border-radius:6px}.timeline-graph-header{display:flex;height:44px;border-bottom:1px solid #e5e7eb;background:#fafafa;flex-shrink:0;position:sticky;top:0;z-index:1}.timeline-graph-header-dates{height:auto;min-height:56px}.timeline-graph-header-left-only{height:44px;min-height:44px}.timeline-graph-header-left-only .timeline-graph-header-cols{align-items:center}.timeline-graph-header-dates .timeline-graph-header-left{align-items:flex-start;padding-top:.5rem}.timeline-graph-header-dates .timeline-graph-header-right{flex-direction:column;min-height:56px}.timeline-graph-header-row{position:relative;height:26px;flex-shrink:0}.timeline-graph-header-months{border-bottom:1px solid #e5e7eb}.timeline-graph-header-left{flex-shrink:0;padding:0 .5rem;display:flex;align-items:center;font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em;border-right:1px solid #e5e7eb}.timeline-graph-header-cols{display:grid;grid-template-columns:20px 1fr 70px 56px;gap:0 .35rem;width:100%}@media(min-width:900px){.timeline-graph-header-cols{grid-template-columns:24px 1fr 82px 70px;gap:0 .5rem}}.timeline-graph-col-task,.timeline-graph-col-assigned,.timeline-graph-col-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-graph-header-right{position:relative;flex:1;min-width:500px;background:linear-gradient(to right,#f1f5f9,#e2e8f0);border-left:1px solid #e2e8f0}.timeline-graph-tick{position:absolute;top:0;bottom:0;padding:0 .35rem;font-size:.7rem;color:#64748b;border-left:1px solid #e5e7eb;display:flex;align-items:center}.timeline-graph-tick-month{font-size:.75rem;font-weight:600;color:#334155}.timeline-graph-tick-day{font-size:.65rem;color:#64748b}.timeline-graph-row{display:flex;align-items:center;border-bottom:1px solid #f1f5f9;cursor:pointer;background:#fff}.timeline-graph-row:hover{background:#f8fafc}.timeline-graph-row.selected{background:#f1f5f9}.timeline-graph-row-left{flex-shrink:0;position:sticky;left:0;z-index:1;background:inherit;padding:0 .5rem;height:100%;display:flex;align-items:center;gap:.35rem;border-right:1px solid #e5e7eb}.timeline-graph-row-cols{display:grid;grid-template-columns:20px 1fr 70px 56px;gap:0 .35rem;width:100%;align-items:center}@media(min-width:900px){.timeline-graph-row-cols{grid-template-columns:24px 1fr 82px 70px;gap:0 .5rem}}.timeline-graph-row.selected .timeline-graph-row-left,.timeline-graph-row:hover .timeline-graph-row-left{background:inherit}.timeline-graph-toggle{flex-shrink:0;font-size:.65rem;color:#64748b;cursor:pointer}.timeline-graph-col-task-content{min-width:0;overflow:hidden}.timeline-graph-title{font-size:.8rem;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-graph-col-assigned-content{display:flex;align-items:center;gap:.35rem;min-width:0;overflow:hidden}.timeline-graph-avatar{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#3b82f6;color:#fff;font-size:.6rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.timeline-graph-owner-label{font-size:.7rem;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-graph-unassigned{font-size:.7rem;color:#94a3b8;font-style:italic}.timeline-graph-col-status-content{display:flex;align-items:center;gap:.35rem}.timeline-status-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%}.timeline-status-dot-todo{background:#94a3b8}.timeline-status-dot-doing{background:#f59e0b}.timeline-status-dot-done{background:#22c55e}.timeline-status-dot-blocked{background:#ef4444}.timeline-status-dot-cancelled{background:#94a3b8}.timeline-graph-status-label{font-size:.7rem;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-graph-row-right{position:relative;flex-shrink:0;height:100%;min-height:48px;min-width:500px;background:#fff;box-shadow:inset 1px 0 #e2e8f0}.timeline-graph-bar{position:absolute;top:50%;transform:translateY(-50%);height:24px;border-radius:4px;background:#cbd5e1;overflow:visible;display:flex;align-items:center;padding:0 6px;gap:6px}.timeline-graph-bar.summary{height:14px;background:#94a3b8}.timeline-graph-bar.overdue{background:#fca5a5}.timeline-graph-bar-progress{position:absolute;left:0;top:0;bottom:0;background:#64748b;border-radius:4px;max-width:100%;pointer-events:none}.timeline-graph-bar-avatar{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#3b82f6;color:#fff;font-size:.55rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;z-index:1}.timeline-graph-bar-dates{font-size:.65rem;color:#1e293b;white-space:nowrap;z-index:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.timeline-graph-diamond{position:absolute;top:50%;width:12px;height:12px;margin-top:-6px;background:#94a3b8;transform:rotate(45deg);border:1px solid #64748b;display:flex;align-items:center;justify-content:center}.timeline-graph-milestone-dates{position:absolute;top:50%;transform:translateY(-50%);font-size:.65rem;color:#475569;white-space:nowrap;z-index:1;cursor:pointer}.timeline-graph-diamond.overdue{background:#fca5a5;border-color:#dc2626}.timeline-graph-diamond.critical{border-width:2px;border-color:#1a1a1a}.resources-view{flex:1;display:flex;flex-direction:column;gap:.5rem;min-height:0;min-width:0}.resources-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.resources-daterange{font-size:.85rem;font-weight:600;color:#334155;padding:.25rem .5rem;background:#f1f5f9;border-radius:6px}.resources-hint{font-size:.8rem;color:#64748b}.resources-zoom .btn-ghost-sm.active{background:#e5e7eb;color:#1a1a1a}.resources-split{flex:1;min-height:320px;overflow:auto;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafc}.resources-content{position:relative;min-height:400px;display:flex;flex-direction:column}.resources-list-container{flex:1;min-height:400px}.resources-today-vertical{position:absolute;top:0;bottom:0;width:2px;background:#22c55e;z-index:2;pointer-events:none}.resources-header{display:flex;height:44px;border-bottom:1px solid #e5e7eb;background:#fafafa;flex-shrink:0;position:sticky;top:0;z-index:1}.resources-header-dates{height:auto;min-height:56px}.resources-header-left{flex-shrink:0;padding:0 .75rem;display:flex;align-items:center;font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em;border-right:1px solid #e5e7eb}.resources-header-dates .resources-header-left{align-items:flex-start;padding-top:.5rem}.resources-header-right{position:relative;flex:1;min-width:500px;background:linear-gradient(to right,#f1f5f9,#e2e8f0);border-left:1px solid #e2e8f0;flex-direction:column;min-height:56px}.resources-header-row{position:relative;height:26px;flex-shrink:0}.resources-header-months{border-bottom:1px solid #e5e7eb}.resources-tick{position:absolute;top:0;bottom:0;padding:0 .35rem;font-size:.7rem;color:#64748b;border-left:1px solid #e5e7eb;display:flex;align-items:center}.resources-tick-month{font-size:.75rem;font-weight:600;color:#334155}.resources-tick-day{font-size:.65rem;color:#64748b}.resources-row{display:flex;align-items:center;border-bottom:1px solid #f1f5f9;cursor:pointer;background:#fff}.resources-row-header{background:linear-gradient(to right,#f1f5f9,#e2e8f0);font-weight:600;border-bottom:2px solid #cbd5e1;position:sticky;top:56px;z-index:1;cursor:pointer}.resources-row-header:hover{background:linear-gradient(to right,#e2e8f0,#cbd5e1)}.resources-row:hover{background:#f8fafc}.resources-row.selected{background:#f1f5f9}.resources-row-left{flex-shrink:0;position:sticky;left:0;z-index:1;background:inherit;padding:0 .75rem;height:100%;display:flex;align-items:center;gap:.75rem;border-right:1px solid #e5e7eb}.resources-avatar-large{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:#3b82f6;color:#fff;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.resources-owner-name{font-size:.9rem;color:#1a1a1a;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resources-task-count{font-size:.75rem;color:#64748b}.resources-task-title{font-size:.8rem;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resources-row-right{position:relative;flex-shrink:0;height:100%;min-height:48px;min-width:500px;background:#fff;box-shadow:inset 1px 0 #e2e8f0}.resources-bar{position:absolute;top:50%;transform:translateY(-50%);height:20px;border-radius:4px;background:#cbd5e1;overflow:visible;display:flex;align-items:center;padding:0 6px;gap:6px}.resources-bar.summary{height:14px;background:#94a3b8}.resources-bar.overdue{background:#fca5a5}.resources-bar-progress{position:absolute;left:0;top:0;bottom:0;background:#64748b;border-radius:4px;max-width:100%;pointer-events:none}.resources-bar-dates{font-size:.65rem;color:#1e293b;white-space:nowrap;z-index:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.resources-diamond{position:absolute;top:50%;width:12px;height:12px;margin-top:-6px;background:#94a3b8;transform:rotate(45deg);border:1px solid #64748b}.resources-diamond.overdue{background:#fca5a5;border-color:#dc2626}.resources-diamond.critical{border-width:2px;border-color:#1a1a1a}.workload-view{flex:1;display:flex;flex-direction:column;gap:.75rem;min-height:0}.workload-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;flex-shrink:0}.workload-hint{font-size:.85rem;color:#64748b;font-weight:500}.workload-table-wrap{flex:1;overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.workload-table{width:100%;border-collapse:collapse;font-size:.875rem}.workload-table thead{background:#f8fafc;position:sticky;top:0;z-index:1}.workload-table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e5e7eb}.workload-th-name{min-width:300px}.workload-th-planned,.workload-th-actual,.workload-th-diff{text-align:right;min-width:120px}.workload-table tbody tr{cursor:pointer;border-bottom:1px solid #f1f5f9}.workload-table tbody tr:hover{background:#f8fafc}.workload-row-resource{background:#fafafa;font-weight:600}.workload-row-resource:hover{background:#f1f5f9}.workload-row-task{background:#fff}.workload-row-task.selected{background:#eff6ff}.workload-cell-name{padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem}.workload-cell-task{padding-left:3rem}.workload-toggle{width:1.25rem;font-size:.7rem;color:#64748b;cursor:pointer;flex-shrink:0}.workload-avatar{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:#3b82f6;color:#fff;font-size:.7rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.workload-resource-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workload-task-id{font-family:monospace;font-size:.8rem;color:#64748b;margin-right:.5rem}.workload-task-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workload-cell-planned,.workload-cell-actual,.workload-cell-diff{padding:.75rem 1rem;text-align:right;font-family:monospace;font-size:.875rem}.workload-cell-diff.positive{color:#22c55e;font-weight:600}.workload-cell-diff.negative{color:#ef4444;font-weight:600}.wbs-table{width:100%;border-collapse:collapse;font-size:.875rem}.wbs-table th{text-align:left;padding:.6rem 1rem;color:#64748b;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #e5e7eb;background:#fafafa}.wbs-table td{padding:.5rem 1rem;border-bottom:1px solid #f0f0f0;vertical-align:middle}.wbs-table-row{cursor:pointer}.wbs-table-row:hover{background:#f8fafc}.wbs-table-row.selected{background:#eef2f7}.wbs-table-row.late{border-left:3px solid #b91c1c}.wbs-th-name{min-width:280px}.wbs-th-priority{width:100px}.wbs-th-progress{width:120px}.wbs-th-due{width:140px}.wbs-th-actions{width:44px}.wbs-cell-name{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.wbs-toggle{width:1rem;cursor:pointer;color:#64748b;font-size:.65rem}.wbs-code{font-size:.8rem;color:#64748b;min-width:2.5rem}.wbs-title{font-size:.9rem;color:#1a1a1a}.wbs-pill{font-size:.7rem;padding:.2rem .45rem;border-radius:6px}.wbs-pill-milestone{background:#e0e7ff;color:#4338ca}.wbs-pill-priority{display:inline-block}.wbs-priority-high{background:#fee2e2;color:#b91c1c}.wbs-priority-medium{background:#dbeafe;color:#1d4ed8}.wbs-priority-low{background:#dcfce7;color:#166534}.wbs-priority-none{background:#f1f5f9;color:#64748b}.wbs-cell-progress{min-width:100px}.wbs-progress-inline{display:flex;align-items:center;gap:.5rem}.wbs-progress-bar{width:64px;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.wbs-progress-fill{height:100%;background:#8b5cf6;border-radius:4px;transition:width .2s ease}.wbs-progress-pct,.wbs-cell-due{font-size:.8rem;color:#64748b}.wbs-cell-actions{text-align:right}.task-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0003;z-index:100;display:flex;justify-content:flex-end}.task-drawer{width:33.333%;min-width:400px;max-width:600px;background:#fff;box-shadow:-2px 0 12px #0000001a;display:flex;flex-direction:column}.task-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid #eee}.task-drawer-title{font-size:1rem;color:#1a1a1a}.task-drawer-body{padding:1rem;overflow:auto}.task-drawer-dl{margin:0 0 1rem;font-size:.875rem}.task-drawer-dl dt{color:#666;margin-top:.5rem}.task-drawer-dl dd{margin:.15rem 0 0;color:#1a1a1a}.task-drawer-tabs{display:flex;border-bottom:1px solid #e5e7eb;padding:0 1rem;gap:.25rem}.task-drawer-tab{padding:.6rem .75rem;font-size:.8rem;color:#64748b;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px}.task-drawer-tab:hover{color:#1a1a1a}.task-drawer-tab.active{color:#1a1a1a;border-bottom-color:#1a1a1a}.task-drawer-form{display:flex;flex-direction:column;gap:1rem}.task-drawer-label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:#64748b}.task-drawer-input,.task-drawer-select{padding:.5rem .6rem;font-size:.875rem;border:1px solid #e5e7eb;border-radius:6px}.task-drawer-textarea{padding:.5rem .6rem;font-size:.875rem;border:1px solid #e5e7eb;border-radius:6px;resize:vertical;font-family:inherit}.task-drawer-progress-row{display:flex;align-items:center;gap:.75rem}.task-drawer-slider{flex:1;accent-color:#475569}.task-drawer-progress-pct{font-size:.875rem;color:#1a1a1a;min-width:2.5rem}.task-drawer-progress-presets{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.task-drawer-meta{font-size:.75rem;color:#64748b;margin:0}.task-drawer-saving{font-size:.8rem;color:#64748b;margin:0 0 .75rem}.task-drawer-toast{font-size:.8rem;color:#22c55e;margin:0 0 .75rem;padding:.5rem;background:#f0fdf4;border-radius:4px}.task-drawer-auto-progress-hint{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;padding:.5rem;background:#eff6ff;border-radius:4px}.task-drawer-progress-actions{margin-top:.5rem}.task-drawer-section-title{font-size:.9rem;font-weight:600;color:#1a1a1a;margin:0 0 .75rem}.task-drawer-dependencies-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.task-drawer-dependencies-list{list-style:none;padding:0;margin:0 0 1rem}.task-drawer-dependency-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border-radius:4px;margin-bottom:.5rem}.task-drawer-dependency-task{flex:1;font-size:.875rem}.task-drawer-dependency-type{font-size:.75rem;color:#64748b;text-transform:uppercase}.task-drawer-add-dependency{margin-top:1rem}.task-drawer-files-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.task-drawer-files-list{list-style:none;padding:0;margin:0}.task-drawer-file-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f8fafc;border-radius:4px;margin-bottom:.5rem}.task-drawer-file-link{color:#3b82f6;text-decoration:none;font-size:.875rem}.task-drawer-file-link:hover{text-decoration:underline}.task-drawer-file-size{font-size:.75rem;color:#64748b}.task-drawer-ai-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.task-drawer-enriched-section{margin-top:1.5rem;padding:1rem;background:#f8fafc;border-radius:8px;border:1px solid #e5e7eb}.task-drawer-enriched-section h4.task-drawer-section-title{font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem}.task-drawer-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1rem}.task-drawer-stat{display:flex;flex-direction:column;gap:.25rem}.task-drawer-stat-label{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.task-drawer-stat-value{font-size:1rem;font-weight:600;color:#1a1a1a}.task-drawer-stat-value.positive{color:#059669}.task-drawer-stat-value.negative{color:#dc2626}.task-drawer-dates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.task-drawer-date-item{display:flex;flex-direction:column;gap:.25rem}.task-drawer-date-label{font-size:.75rem;color:#64748b}.task-drawer-date-value{font-size:.875rem;font-weight:500;color:#1a1a1a}.task-drawer-cost-variance{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#fff;border-radius:4px;border:1px solid #e5e7eb;margin-top:.75rem}.task-drawer-assignments-list{display:flex;flex-direction:column;gap:.75rem}.task-drawer-assignment-item{padding:.75rem;background:#f8f9fa;border-radius:6px;border:1px solid #e8e8e8}.task-drawer-assignment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.task-drawer-assignment-resource{font-weight:600;color:#1a1a1a;font-size:.9rem}.task-drawer-assignment-progress{font-size:.85rem;color:#2563eb;font-weight:500}.task-drawer-assignment-details{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.85rem;color:#666}.task-drawer-assignment-work,.task-drawer-assignment-cost{display:inline-block}.resource-drawer-task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.resource-drawer-task-link{text-align:left;width:100%;padding:.4rem .5rem;border-radius:4px}.resource-drawer-task-link:hover{background:var(--bg-hover, #f0f0f0)}.ai-analysis-view{flex:1;display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;overflow-y:auto}.ai-analysis-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.ai-analysis-title{font-size:1.5rem;font-weight:700;color:#1a1a1a;margin:0 0 .25rem}.ai-analysis-subtitle{font-size:.875rem;color:#64748b;margin:0}.ai-analysis-error{padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.ai-analysis-content{display:flex;flex-direction:column;gap:2rem}.ai-analysis-section{display:flex;flex-direction:column;gap:1rem}.ai-analysis-section-title{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;color:#1a1a1a;margin:0}.ai-analysis-icon{font-size:1.5rem}.ai-analysis-risks,.ai-analysis-improvements{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.ai-analysis-risk-card,.ai-analysis-improvement-card{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;gap:.75rem}.ai-analysis-risk-header,.ai-analysis-improvement-header{display:flex;align-items:flex-start;gap:.75rem}.ai-analysis-severity-badge,.ai-analysis-priority-badge{padding:.25rem .75rem;border-radius:6px;color:#fff;font-size:.7rem;font-weight:600;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.ai-analysis-risk-title,.ai-analysis-improvement-title{font-size:1rem;font-weight:600;color:#1a1a1a;margin:0;flex:1}.ai-analysis-risk-description,.ai-analysis-improvement-description{font-size:.875rem;color:#4b5563;line-height:1.6;margin:0}.ai-analysis-recommendation,.ai-analysis-impact{padding:.75rem;background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:4px;font-size:.875rem;color:#1e40af}.ai-analysis-suggestions{display:flex;flex-direction:column;gap:1.5rem}.ai-analysis-suggestion-group{padding:1rem;background:#f9fafb;border-radius:8px}.ai-analysis-suggestion-category{font-size:1rem;font-weight:600;color:#1a1a1a;margin:0 0 .75rem}.ai-analysis-suggestion-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.ai-analysis-suggestion-item{padding:.75rem;background:#fff;border-radius:6px;font-size:.875rem;color:#4b5563;line-height:1.6}.ai-analysis-empty{padding:3rem;text-align:center;color:#64748b}.task-ai-suggestions{margin-top:1rem;padding:1rem;background:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px}.task-ai-suggestions-collapsed{margin-top:1rem}.task-ai-suggestions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.task-ai-suggestions-title{font-size:.875rem;font-weight:600;color:#1e40af}.task-ai-suggestions-content{display:flex;flex-direction:column;gap:.75rem}.task-ai-suggestions-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.task-ai-suggestion-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem;background:#fff;border-radius:6px;font-size:.875rem;color:#4b5563;line-height:1.5}.task-ai-suggestion-item span{flex:1}.risques-view{flex:1;display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;overflow-y:auto}.risques-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.risques-title{font-size:1.5rem;font-weight:700;color:#1a1a1a;margin:0 0 .25rem}.risques-subtitle{font-size:.875rem;color:#64748b;margin:0}.risques-error{padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.risques-list{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.risque-card{padding:1.25rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;gap:.75rem}.risque-header{display:flex;align-items:flex-start;gap:.75rem}.risque-severity{padding:.25rem .75rem;border-radius:6px;color:#fff;font-size:.7rem;font-weight:600;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.risque-title{font-size:1rem;font-weight:600;color:#1a1a1a;margin:0;flex:1}.risque-description{font-size:.875rem;color:#4b5563;line-height:1.6;margin:0}.risque-recommendation{padding:.75rem;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px;font-size:.875rem;color:#92400e}.risques-empty{padding:3rem;text-align:center;color:#64748b}.wbs-progress-clickable .wbs-progress-menu-wrap{position:relative;display:inline-block}.wbs-progress-pct-btn{background:none;border:none;padding:.2rem .4rem;font-size:inherit;color:inherit;cursor:pointer;border-radius:4px}.wbs-progress-pct-btn:hover{background:#f1f5f9}.wbs-progress-dropdown{position:absolute;top:100%;left:0;margin-top:2px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:10;min-width:5rem}.wbs-progress-dropdown-item{display:block;width:100%;padding:.4rem .75rem;font-size:.8rem;text-align:left;border:none;background:none;cursor:pointer}.wbs-progress-dropdown-item:hover{background:#f8fafc}.toast{position:fixed;bottom:1.5rem;right:1.5rem;padding:.6rem 1rem;border-radius:8px;font-size:.875rem;z-index:200;animation:toast-in .2s ease}.toast.success{background:#22c55e;color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.timeline-mature{padding:0 0 1.5rem}.timeline-calendar-header{display:flex;align-items:stretch;border-bottom:1px solid #e5e7eb;background:#fafafa;border-radius:8px 8px 0 0}.timeline-calendar-label{width:180px;min-width:180px;padding:.5rem .75rem;font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.timeline-calendar-days{display:flex;flex:1}.timeline-calendar-day{flex:1;min-width:28px;padding:.35rem 0;text-align:center;font-size:.7rem;color:#64748b;display:flex;flex-direction:column;gap:.1rem}.timeline-calendar-day-name{font-size:.65rem;text-transform:uppercase}.timeline-ruler{position:relative;height:2px;background:#e5e7eb;margin:0 0 0 180px}.timeline-today-line{position:absolute;top:-8px;width:2px;height:20px;background:#1a1a1a;border-radius:1px;z-index:2}.timeline-bars-container{margin-top:.5rem}.timeline-bar-row{display:flex;align-items:center;gap:.75rem;margin-bottom:6px;min-height:28px}.timeline-bar-row.late .timeline-bar-fill{outline:1px solid #b91c1c}.timeline-bar-label{width:180px;min-width:180px;font-size:.8rem;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-bar-track{flex:1;position:relative;height:24px;background:#f1f5f9;border-radius:6px;overflow:visible}.timeline-bar-fill{position:absolute;top:2px;height:20px;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center}.timeline-bar-progress{position:absolute;left:0;top:0;bottom:0;background:#00000026;border-radius:4px 0 0 4px}.timeline-bar-row.milestone .timeline-bar-fill{height:14px;top:5px}.timeline-bar-diamond{font-size:.65rem;color:#ffffffe6;z-index:1}.milestones-view{padding:.5rem 0}.milestones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.milestone-card{background:#f8f9fa;border:1px solid #e8e8e8;border-radius:6px;padding:1rem}.milestone-card.late{border-left:3px solid #b91c1c}.milestone-card-title{display:block;font-size:.95rem;color:#1a1a1a}.milestone-card-date,.milestone-card-status{display:block;font-size:.8rem;color:#666;margin-top:.35rem}.milestone-card-impact{display:inline-block;font-size:.75rem;color:#b91c1c;margin-top:.5rem}.gantt-placeholder,.risques-placeholder{padding:2rem;text-align:center}.form-edit{margin-bottom:2rem}.initiatives-page{max-width:1200px;margin:0 auto}.initiatives-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.initiatives-title{font-size:1.25rem;color:#1a1a1a}.initiatives-actions{display:flex;gap:.75rem}.initiatives-empty{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:3rem;text-align:center}.initiatives-table-wrap{background:#fff;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden}.initiatives-table{width:100%;border-collapse:collapse;font-size:.875rem}.initiatives-table th{text-align:left;padding:.75rem 1rem;color:#64748b;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid #e5e7eb;background:#fafafa}.initiatives-table td{padding:.875rem 1rem;border-bottom:1px solid #f0f0f0;vertical-align:middle}.initiatives-table tbody tr:hover{background:#fafafa}.initiatives-project-cell{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;color:inherit}.initiatives-project-cell:hover{color:#2563eb}.initiatives-project-icon{width:28px;height:28px;border-radius:6px;background:#e0e7ff;color:#4338ca;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;margin-bottom:.25rem}.initiatives-project-icon[data-letter]:after{content:attr(data-letter)}.initiatives-project-name{font-size:.95rem;color:#1a1a1a}.initiatives-project-desc{font-size:.8rem;color:#64748b}.initiatives-status{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:#475569}.initiatives-status-dot{width:8px;height:8px;border-radius:50%}.initiatives-status-green .initiatives-status-dot{background:#22c55e}.initiatives-status-orange .initiatives-status-dot{background:#f59e0b}.initiatives-status-red .initiatives-status-dot{background:#b91c1c}.initiatives-status-grey .initiatives-status-dot{background:#94a3b8}.initiatives-progress{display:flex;align-items:center;gap:.5rem;min-width:100px}.initiatives-progress-bar{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;max-width:80px}.initiatives-progress-fill{height:100%;background:#22c55e;border-radius:4px;transition:width .2s ease}.initiatives-progress-pct{font-size:.8rem;color:#64748b;min-width:2.5rem}.initiatives-dates{font-size:.85rem;color:#64748b}.initiatives-priority{font-size:.75rem;padding:.2rem .5rem;border-radius:6px;background:#f1f5f9;color:#64748b}.initiatives-priority-medium{background:#dbeafe;color:#1d4ed8}.initiatives-priority-high{background:#fee2e2;color:#b91c1c}.initiatives-priority-low{background:#fef9c3;color:#854d0e}.initiatives-owner{width:28px;height:28px;border-radius:50%;background:#e2e8f0;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;color:#64748b}
