:root{--color-start: #6554c0;--color-m0: var(--color-state-2);--color-m1: #ffab00;--color-m2: #36b37e;--color-m3: #0f766e;--color-m4: #0d9488;--color-m5: #7c3aed;--color-state-0: #c1c7d0;--color-state-1: #6554c0;--color-state-2: #0891b2;--color-state-3: #ffab00;--color-state-4: #36b37e;--color-state-5: #0065ff;--color-state-6: #0d9488;--color-state-7: #004cbf;--color-dependency-inbound: #3498db;--color-dependency-outbound: #e67e22;--color-risk: #de350b;--color-border: #dfe1e6;--color-bg-white: #ffffff;--color-bg-page: #f4f5f7;--color-bg-secondary: #fafbfc;--color-text-dark: #172b4d;--color-text-light: #6b778c;--color-today: #de350b;--row-height: 36px}.dark,[data-theme=dark]{--color-border: #3d4f5f;--color-bg-white: #1a2332;--color-bg-page: #0d1117;--color-bg-secondary: #161b22;--color-text-dark: #e6edf3;--color-text-light: #8b949e;--color-start: #a78bfa;--color-m0: var(--color-state-2);--color-m1: #fbbf24;--color-m2: #34d399;--color-m3: #10b981;--color-m4: #2dd4bf;--color-m5: #a78bfa;--color-state-0: #475569;--color-state-1: #818cf8;--color-state-2: #22d3ee;--color-state-3: #fbbf24;--color-state-4: #34d399;--color-state-5: #60a5fa;--color-state-6: #2dd4bf;--color-state-7: #3b82f6;--color-dependency-inbound: #38bdf8;--color-dependency-outbound: #fb923c;--color-risk: #f87171;--color-today: #f87171}.summary-dashboard{padding:24px 32px;background:linear-gradient(135deg,#fafbfc,#f4f5f7);border-bottom:1px solid var(--color-border)}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.summary-title{font-size:18px;font-weight:700;color:var(--color-text-dark)}.summary-title-note{font-size:12px;font-weight:400;color:var(--color-text-light);margin-left:12px}.header-right{display:flex;align-items:center;gap:12px}.risk-summary{display:flex;align-items:center;gap:6px;background:#de350b1a;padding:6px 12px;border-radius:6px;border:1px solid rgba(222,53,11,.3)}.risk-summary.clickable{cursor:pointer;transition:all .2s ease}.risk-summary.clickable:hover{background:#de350b33;border-color:#de350b80}.risk-summary.clickable.active{background:#de350b40;border-color:var(--color-risk);box-shadow:0 0 0 2px #de350b33}.risk-summary.disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.risk-summary-icon{color:var(--color-risk);font-size:14px}.risk-summary-text{font-size:12px;font-weight:600;color:var(--color-risk)}.descoped-summary{display:flex;align-items:center;gap:6px;background:#8080801f;padding:6px 12px;border-radius:6px;border:1px solid rgba(128,128,128,.35)}.descoped-summary.clickable{cursor:pointer;transition:all .2s ease}.descoped-summary.clickable:hover{background:#80808033;border-color:#80808080}.descoped-summary.clickable.active{background:#80808040;border-color:#666;box-shadow:0 0 0 2px #80808033}.descoped-summary.disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.descoped-summary-text{font-size:12px;font-weight:600;color:#666}.today-date-container{display:flex;align-items:center;gap:10px;background:#fff;padding:8px 16px;border-radius:6px;border:1px solid var(--color-border)}.today-date-label{font-size:12px;color:var(--color-text-light);font-weight:500}.today-date-value{font-size:14px;color:var(--color-text-dark);font-weight:700}.kpi-section{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:20px}.kpi-card{background:#fff;border-radius:8px;padding:14px;border:1px solid var(--color-border);text-align:center;transition:transform .2s ease,box-shadow .2s ease}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.kpi-card.clickable{cursor:pointer}.kpi-card.active{transform:translateY(-2px);box-shadow:0 0 0 3px #0065ff,0 4px 12px #00000026}.kpi-card.total{background:linear-gradient(135deg,#172b4d,#344563);color:#fff}.kpi-card.state-0{border-left:4px solid var(--color-state-0)}.kpi-card.state-1{border-left:4px solid var(--color-state-1)}.kpi-card.state-2{border-left:4px solid var(--color-state-2)}.kpi-card.state-3{border-left:4px solid var(--color-state-3)}.kpi-card.state-4{border-left:4px solid var(--color-state-4)}.kpi-card.state-5{border-left:4px solid var(--color-state-5)}.kpi-card.state-6{border-left:4px solid var(--color-state-6)}.kpi-card.state-7{border-left:4px solid var(--color-state-7)}.kpi-value{font-size:28px;font-weight:700;line-height:1;margin-bottom:4px}.kpi-card.state-0 .kpi-value{color:var(--color-state-0)}.kpi-card.state-1 .kpi-value{color:var(--color-state-1)}.kpi-card.state-2 .kpi-value{color:var(--color-state-2)}.kpi-card.state-3 .kpi-value{color:var(--color-state-3)}.kpi-card.state-4 .kpi-value{color:var(--color-state-4)}.kpi-card.state-5 .kpi-value{color:var(--color-state-5)}.kpi-card.state-6 .kpi-value{color:var(--color-state-6)}.kpi-card.state-7 .kpi-value{color:var(--color-state-7)}.kpi-card.total .kpi-value{color:#fff}.kpi-label{font-size:10px;font-weight:600;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px}.kpi-card.total .kpi-label{color:#fffc}.kpi-sublabel{font-size:9px;color:var(--color-text-light);margin-top:2px}.kpi-card.total .kpi-sublabel{color:#fff9}.kpi-breakdown{font-size:8px;color:var(--color-text-light);margin-top:4px;padding-top:4px;border-top:1px dashed var(--color-border)}.kpi-card.total .kpi-breakdown{color:#ffffff80;border-top-color:#fff3}.progress-section{background:#fff;border-radius:8px;padding:16px 20px;border:1px solid var(--color-border)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.progress-title{font-size:13px;font-weight:600;color:var(--color-text-dark)}.progress-percentage{font-size:14px;font-weight:700;color:var(--color-m3)}.progress-bar-container{height:24px;background:#f4f5f7;border-radius:12px;overflow:hidden;display:flex}.progress-segment{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;transition:width .5s ease}.progress-segment.state-0{background:var(--color-state-0);color:#172b4d}.progress-segment.state-1{background:var(--color-state-1)}.progress-segment.state-2{background:var(--color-state-2)}.progress-segment.state-3{background:var(--color-state-3);color:#172b4d}.progress-segment.state-4{background:var(--color-state-4)}.progress-segment.state-5{background:var(--color-state-5)}.progress-segment.state-6{background:var(--color-state-6)}.progress-segment.state-7{background:var(--color-state-7)}.progress-legend{display:flex;justify-content:center;gap:16px;margin-top:10px;flex-wrap:wrap}.progress-legend-item{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--color-text-light)}.progress-legend-dot{width:10px;height:10px;border-radius:50%}.progress-legend-dot.state-0{background:var(--color-state-0)}.progress-legend-dot.state-1{background:var(--color-state-1)}.progress-legend-dot.state-2{background:var(--color-state-2)}.progress-legend-dot.state-3{background:var(--color-state-3)}.progress-legend-dot.state-4{background:var(--color-state-4)}.progress-legend-dot.state-5{background:var(--color-state-5)}.progress-legend-dot.state-6{background:var(--color-state-6)}.progress-legend-dot.state-7{background:var(--color-state-7)}.state-legend{background:#f8f9fa;padding:10px 32px;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}.state-legend-items{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.state-legend-item{display:flex;align-items:center;gap:6px;font-size:11px}.state-legend-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;flex-shrink:0}.state-legend-badge.state-0{background:var(--color-state-0);color:#172b4d}.state-legend-badge.state-1{background:var(--color-state-1);color:#fff}.state-legend-badge.state-2{background:var(--color-state-2);color:#fff}.state-legend-badge.state-3{background:var(--color-state-3);color:#172b4d}.state-legend-badge.state-4{background:var(--color-state-4);color:#fff}.state-legend-badge.state-5{background:var(--color-state-5);color:#fff}.state-legend-badge.state-6{background:var(--color-state-6);color:#fff}.state-legend-badge.state-7{background:var(--color-state-7);color:#fff}.state-legend-badge.m4{background:var(--color-m4);color:#fff}.state-legend-badge.m5{background:var(--color-m5);color:#fff}.state-legend-label{color:var(--color-text-dark);font-weight:500}.state-legend-info{font-size:11px;color:var(--color-text-light);background:#fff;padding:4px 10px;border-radius:4px;border:1px solid var(--color-border)}.state-legend-info-count{font-weight:700;color:var(--color-text-dark)}.data-source-row{display:grid;grid-template-columns:250px 1fr;margin-bottom:2px;border-radius:4px;overflow:hidden}.data-source-row.at-risk{box-shadow:0 0 0 2px #de350b4d}.data-source-row.descoped .source-name-text{text-decoration:line-through;opacity:.6}.data-source-row.descoped .timeline-track,.data-source-row.descoped .gantt-bar,.data-source-row.descoped .milestone-marker,.data-source-row.descoped .milestone-date,.data-source-row.descoped .month-grid-line,.data-source-row.descoped .today-guide-line{opacity:.25}.data-source-row.descoped .status-indicator{display:none}.data-source-row.dependency-dimmed{opacity:.3;transition:opacity .2s ease}.data-source-row.dependency-highlight{opacity:1;box-shadow:0 0 0 2px #3498db66;border-radius:4px;z-index:4;position:relative}.data-source-row.dependency-active{opacity:1;box-shadow:0 0 0 3px #3498db;border-radius:4px;z-index:5;position:relative}.source-name{padding:6px 10px;min-height:var(--row-height);display:flex;align-items:center;gap:6px;border:1px solid var(--color-border);border-right:none;border-radius:4px 0 0 4px}.source-name.state-0{background:linear-gradient(90deg,#c1c7d026,#fafbfc)}.source-name.state-1{background:linear-gradient(90deg,#6554c01f,#fafbfc)}.source-name.state-2{background:linear-gradient(90deg,#0891b21f,#fafbfc)}.source-name.state-3{background:linear-gradient(90deg,#ffab0026,#fafbfc)}.source-name.state-4{background:linear-gradient(90deg,#36b37e26,#fafbfc)}.source-name.state-5{background:linear-gradient(90deg,#0065ff26,#fafbfc)}.source-name.state-6{background:linear-gradient(90deg,#0d94881f,#fafbfc)}.source-name.state-7{background:linear-gradient(90deg,#004cbf1f,#fafbfc)}.source-name-text{font-weight:600;font-size:11px;color:var(--color-text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;line-height:1.3}.status-indicator{font-size:8px;font-weight:700;padding:2px 5px;border-radius:3px;flex-shrink:0}.status-indicator.state-0{background:var(--color-state-0);color:#172b4d}.status-indicator.state-1{background:var(--color-state-1);color:#fff}.status-indicator.state-2{background:var(--color-state-2);color:#fff}.status-indicator.state-3{background:var(--color-state-3);color:#172b4d}.status-indicator.state-4{background:var(--color-state-4);color:#fff}.status-indicator.state-5{background:var(--color-state-5);color:#fff}.status-indicator.state-6{background:var(--color-state-6);color:#fff}.status-indicator.state-7{background:var(--color-state-7);color:#fff}.risk-indicator{color:var(--color-risk);flex-shrink:0;display:flex;align-items:center}.risk-indicator svg{width:14px;height:14px}.info-link{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:#0065ff;opacity:.8;cursor:pointer;padding:2px;border-radius:4px;text-decoration:none;transition:opacity .2s ease}.info-link:hover{opacity:1}.info-link svg{width:14px;height:14px}.group-header{display:grid;grid-template-columns:250px 1fr;margin-bottom:2px;margin-top:8px;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;border:none;text-align:left}.group-header:first-child{margin-top:0}.group-header-name{padding:8px 10px;background:linear-gradient(135deg,#344563,#505f79);color:#fff;font-weight:700;font-size:11px;display:flex;align-items:center;gap:8px;border-radius:4px 0 0 4px;transition:background .2s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-header-name:hover{background:linear-gradient(135deg,#3d5170,#5a6a87)}.group-chevron{width:12px;height:12px;transition:transform .2s ease;flex-shrink:0}.group-chevron.collapsed{transform:rotate(-90deg)}.group-stats{font-size:10px;font-weight:400;opacity:.8;margin-left:auto}.group-stats-risk{color:#ffab00}.group-header-track{background:#505f79;border-radius:0 4px 4px 0}.group-item .source-name{padding-left:24px}.group-controls{display:flex;gap:8px;margin-left:12px}.group-control-btn{padding:4px 8px;font-size:10px;font-weight:600;border:1px solid var(--color-border);border-radius:4px;background:#fff;color:var(--color-text-light);cursor:pointer;transition:all .2s ease}.group-control-btn:hover{background:#f4f5f7;color:var(--color-text-dark)}.zoom-controls{display:flex;gap:4px;margin-left:12px}.zoom-btn{padding:4px 10px;font-size:11px;font-weight:600;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-white);color:var(--color-text-light);cursor:pointer;transition:all .2s ease}.zoom-btn:hover{border-color:#0065ff;color:var(--color-text-dark)}.zoom-btn.active{background:#0065ff;border-color:#0065ff;color:#fff}.dependency-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;cursor:pointer;flex-shrink:0;transition:all .15s ease}.dependency-icon:hover{transform:scale(1.1)}.dependency-icon svg{width:12px;height:12px}.dependency-icon.inbound{background:#3498db26;color:#3498db}.dependency-icon.outbound{background:#e67e2226;color:#e67e22}.dependency-icon.both{background:linear-gradient(135deg,#3498db26,#e67e2226);color:#8e44ad}.dependency-icon.active{box-shadow:0 0 0 2px currentColor}.dependency-icon.inbound{color:var(--color-dependency-inbound)}.dependency-icon.outbound{color:var(--color-dependency-outbound)}[data-theme=monochrome] .dependency-icon.inbound{background:#00000012;color:var(--color-dependency-inbound)}[data-theme=monochrome] .dependency-icon.outbound{background:#0000001c;color:var(--color-dependency-outbound)}[data-theme=monochrome] .dependency-icon.both{background:linear-gradient(135deg,#00000012,#00000024);color:#0a0a0a}[data-theme=monochrome] .source-name.state-0{background:linear-gradient(90deg,#f5f5f5,#fff)}[data-theme=monochrome] .source-name.state-1{background:linear-gradient(90deg,#ebebeb,#fff)}[data-theme=monochrome] .source-name.state-2{background:linear-gradient(90deg,#e1e1e1,#fff)}[data-theme=monochrome] .source-name.state-3{background:linear-gradient(90deg,#d6d6d6,#fff)}[data-theme=monochrome] .source-name.state-4{background:linear-gradient(90deg,#ccc,#fff)}[data-theme=monochrome] .source-name.state-5{background:linear-gradient(90deg,#c1c1c1,#fff)}[data-theme=monochrome] .source-name.state-6{background:linear-gradient(90deg,#b6b6b6,#fff)}[data-theme=monochrome] .source-name.state-7{background:linear-gradient(90deg,#acacac,#fff)}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-0{background:#f1f1f1}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-1{background:#eaeaea}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-2{background:#e3e3e3}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-3{background:#dbdbdb}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-4{background:#d3d3d3}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-5{background:#ccc}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-6{background:#c4c4c4}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .source-name.state-7{background:#bdbdbd}[data-theme=monochrome] .data-source-row:nth-of-type(2n) .timeline-track{background:#eee}[data-theme=monochrome] .data-source-row:nth-of-type(odd) .timeline-track{background:#f7f7f7}[data-theme=monochrome] .data-source-row.dependency-highlight{box-shadow:0 0 0 2px #0003}[data-theme=monochrome] .data-source-row.dependency-active{box-shadow:0 0 0 3px #404040}[data-theme=monochrome] .info-link{color:#404040}[data-theme=monochrome] .info-link:hover{color:#0a0a0a}[data-theme=monochrome] .group-header-name{background:linear-gradient(135deg,#2a2a2a,#404040);color:#fafafa}[data-theme=monochrome] .group-header-name:hover{background:linear-gradient(135deg,#404040,#525252)}[data-theme=monochrome] .group-header-track{background:#525252}[data-theme=monochrome] .group-stats-risk{color:var(--color-risk)}[data-theme=monochrome] .zoom-btn:hover{border-color:#525252}[data-theme=monochrome] .zoom-btn.active{background:#262626;border-color:#262626;color:#fff}[data-theme=monochrome] .state-legend{background:var(--color-bg-secondary)}[data-theme=monochrome] .status-indicator.state-0,[data-theme=monochrome] .status-indicator.state-3,[data-theme=monochrome] .progress-segment.state-0,[data-theme=monochrome] .progress-segment.state-3,[data-theme=monochrome] .state-legend-badge.state-0,[data-theme=monochrome] .state-legend-badge.state-3{color:#0a0a0a}[data-theme=monochrome] .milestone-marker.m1,[data-theme=monochrome] .milestone-card-icon.m1{color:#fff}[data-theme=monochrome] .month-column{background:var(--color-bg-secondary)}[data-theme=monochrome] .timeline-track{background:#f5f5f5}[data-theme=monochrome] .timeline-label{background:var(--color-bg-secondary)}[data-theme=papallona] .source-name.state-0{background:linear-gradient(90deg,#d4dae3,#fff)}[data-theme=papallona] .source-name.state-1{background:linear-gradient(90deg,#b5bbc3,#fff)}[data-theme=papallona] .source-name.state-2{background:linear-gradient(90deg,#9ed4cf,#fff)}[data-theme=papallona] .source-name.state-3{background:linear-gradient(90deg,#9fc8c5,#fff)}[data-theme=papallona] .source-name.state-4{background:linear-gradient(90deg,#a1ccb1,#fff)}[data-theme=papallona] .source-name.state-5{background:linear-gradient(90deg,#9ac3d9,#fff)}[data-theme=papallona] .source-name.state-6{background:linear-gradient(90deg,#a5b8ef,#fff)}[data-theme=papallona] .source-name.state-7{background:linear-gradient(90deg,#a5b0be,#fff)}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-0{background:#d5dbe4}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-1{background:#bfc5ce}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-2{background:#afd7d6}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-3{background:#b0cfcf}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-4{background:#b1d1c1}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-5{background:#accbdd}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-6{background:#b3c3ed}[data-theme=papallona] .data-source-row:nth-of-type(2n) .source-name.state-7{background:#b4beca}[data-theme=papallona] .data-source-row:nth-of-type(2n) .timeline-track{background:#e8ecf1}[data-theme=papallona] .data-source-row:nth-of-type(odd) .timeline-track{background:#f2f4f7}[data-theme=papallona] .data-source-row.dependency-highlight{box-shadow:0 0 0 2px #0d948859}[data-theme=papallona] .data-source-row.dependency-active{box-shadow:0 0 0 3px #0f766e}[data-theme=papallona] .info-link{color:#0d9488}[data-theme=papallona] .info-link:hover{color:#0f766e}[data-theme=papallona] .group-header-name{background:linear-gradient(135deg,#1e3a5c,#274a6e);color:#f8fafc}[data-theme=papallona] .group-header-name:hover{background:linear-gradient(135deg,#274a6e,#335978)}[data-theme=papallona] .group-header-track{background:#335978}[data-theme=papallona] .group-stats-risk{color:var(--color-risk)}[data-theme=papallona] .zoom-btn:hover{border-color:#0d9488}[data-theme=papallona] .zoom-btn.active{background:#0f766e;border-color:#0f766e;color:#fff}[data-theme=papallona] .state-legend{background:var(--color-bg-secondary)}[data-theme=papallona] .kpi-card.active{box-shadow:0 0 0 3px #0d948866,0 4px 12px #16263314}[data-theme=papallona] .month-column{background:var(--color-bg-secondary)}[data-theme=papallona] .timeline-track{background:#f2f4f7}[data-theme=papallona] .timeline-label{background:var(--color-bg-secondary)}.timeline-view{width:100%;min-width:900px}.timeline-track{position:relative;min-height:var(--row-height);background:#f9fafb;border:1px solid var(--color-border);border-radius:0 4px 4px 0;display:flex;align-items:center}.gantt-bar{position:absolute;top:50%;transform:translateY(-50%);height:8px;border-radius:4px;opacity:.8;z-index:1}.gantt-bar.gantt-future{opacity:.3}.gantt-bar.segment-start{background:var(--color-start)}.gantt-bar.segment-m0{background:var(--color-m0)}.gantt-bar.segment-m1{background:var(--color-m1)}.gantt-bar.segment-m2{background:var(--color-m2)}.gantt-bar.segment-m3{background:var(--color-m3)}.gantt-bar.segment-m4{background:var(--color-m4)}.gantt-bar.segment-m5{background:var(--color-m5)}.month-grid-line{position:absolute;top:0;bottom:0;width:1px;background:var(--color-border)}.today-guide-line{position:absolute;top:0;bottom:0;width:2px;background:var(--color-today);opacity:.2;z-index:1}.milestone-marker{position:absolute;top:50%;transform:translate(-50%,-50%);min-width:22px;height:16px;padding:0 4px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;color:#fff;z-index:2;border:1.5px solid white;box-shadow:0 1px 3px #0003}.milestone-marker.start{background:var(--color-start)}.milestone-marker.m0{background:var(--color-m0)}.milestone-marker.m1{background:var(--color-m1);color:#172b4d}.milestone-marker.m2{background:var(--color-m2)}.milestone-marker.m3{background:var(--color-m3)}.milestone-marker.m4{background:var(--color-m4)}.milestone-marker.m5{background:var(--color-m5)}.milestone-date{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);font-size:7px;font-weight:700;white-space:nowrap;color:var(--color-text-dark)}.key-milestones{display:grid;grid-template-columns:repeat(var(--km-count, 4),minmax(0,1fr));gap:12px;margin-top:16px;width:100%}.milestone-card{background:var(--color-bg-white);border-radius:8px;padding:12px 14px;border:1px solid var(--color-border);min-width:0}.milestone-card-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.milestone-card-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}.milestone-card-icon.start{background:var(--color-start)}.milestone-card-icon.m0{background:var(--color-m0)}.milestone-card-icon.m1{background:var(--color-m1);color:#172b4d}.milestone-card-icon.m2{background:var(--color-m2)}.milestone-card-icon.m3{background:var(--color-m3)}.milestone-card-icon.m4{background:var(--color-m4)}.milestone-card-icon.m5{background:var(--color-m5)}.milestone-card-title{font-size:12px;font-weight:600;color:var(--color-text-dark)}.milestone-card-subtitle{font-size:10px;color:var(--color-text-light)}.milestone-card-content{font-size:11px;color:var(--color-text-light);overflow-wrap:anywhere}.milestone-card-date{font-weight:700;color:var(--color-text-dark)}.milestone-card-source{color:var(--color-text-dark)}[data-theme=dark] .summary-dashboard,.dark .summary-dashboard{background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-white) 100%)}[data-theme=dark] .kpi-card,.dark .kpi-card{background:var(--color-bg-secondary)}[data-theme=dark] .kpi-card.total,.dark .kpi-card.total{background:linear-gradient(135deg,#2d333b,#3d4f5f)}[data-theme=dark] .progress-section,.dark .progress-section{background:var(--color-bg-secondary)}[data-theme=dark] .progress-bar-container,.dark .progress-bar-container{background:#2d333b}[data-theme=dark] .source-name.state-0,.dark .source-name.state-0{background:#212832;box-shadow:inset 4px 0 0 0 var(--color-state-0)}[data-theme=dark] .source-name.state-1,.dark .source-name.state-1{background:#2e3451;box-shadow:inset 4px 0 0 0 var(--color-state-1)}[data-theme=dark] .source-name.state-2,.dark .source-name.state-2{background:#19434f;box-shadow:inset 4px 0 0 0 var(--color-state-2)}[data-theme=dark] .source-name.state-3,.dark .source-name.state-3{background:#483f22;box-shadow:inset 4px 0 0 0 var(--color-state-3)}[data-theme=dark] .source-name.state-4,.dark .source-name.state-4{background:#1d433c;box-shadow:inset 4px 0 0 0 var(--color-state-4)}[data-theme=dark] .source-name.state-5,.dark .source-name.state-5{background:#263952;box-shadow:inset 4px 0 0 0 var(--color-state-5)}[data-theme=dark] .source-name.state-6,.dark .source-name.state-6{background:#1b4445;box-shadow:inset 4px 0 0 0 var(--color-state-6)}[data-theme=dark] .source-name.state-7,.dark .source-name.state-7{background:#1e3251;box-shadow:inset 4px 0 0 0 var(--color-state-7)}[data-theme=dark] .timeline-track,.dark .timeline-track{background:var(--color-bg-secondary)}[data-theme=dark] .today-date-container,.dark .today-date-container{background:var(--color-bg-secondary);border-color:var(--color-border)}[data-theme=dark] .group-control-btn,.dark .group-control-btn{background:var(--color-bg-secondary);color:var(--color-text-light)}[data-theme=dark] .state-legend,.dark .state-legend{background:var(--color-bg-secondary)}[data-theme=dark] .state-legend-info,.dark .state-legend-info{background:var(--color-bg-white)}[data-theme=dark] .zoom-btn,.dark .zoom-btn,[data-theme=dark] .milestone-card,.dark .milestone-card,.dark .month-column,[data-theme=dark] .month-column{background:var(--color-bg-secondary)}[data-theme=dark] .timeline-header,.dark .timeline-header{background:var(--color-bg-page);border-radius:4px 4px 0 0}[data-theme=dark] .timeline-label,.dark .timeline-label{background:var(--color-bg-secondary);color:var(--color-text-light);border-radius:4px 0 0}[data-theme=dark] .timeline-months,.dark .timeline-months{background:var(--color-bg-secondary)}[data-theme=dark] .group-header-name,.dark .group-header-name{background:linear-gradient(135deg,#2d3a4f,#3d4f5f);color:#f0f6fc}[data-theme=dark] .group-header-name:hover,.dark .group-header-name:hover{background:linear-gradient(135deg,#3d4f5f,#4d5f6f)}[data-theme=dark] .group-header-track,.dark .group-header-track{background:#3d4f5f}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-0,.dark .data-source-row:nth-of-type(2n) .source-name.state-0{background:#242e3e}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-1,.dark .data-source-row:nth-of-type(2n) .source-name.state-1{background:#313a5e}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-2,.dark .data-source-row:nth-of-type(2n) .source-name.state-2{background:#1c4a5b}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-3,.dark .data-source-row:nth-of-type(2n) .source-name.state-3{background:#4c452f}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-4,.dark .data-source-row:nth-of-type(2n) .source-name.state-4{background:#204a49}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-5,.dark .data-source-row:nth-of-type(2n) .source-name.state-5{background:#29405e}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-6,.dark .data-source-row:nth-of-type(2n) .source-name.state-6{background:#1e4a51}[data-theme=dark] .data-source-row:nth-of-type(2n) .source-name.state-7,.dark .data-source-row:nth-of-type(2n) .source-name.state-7{background:#21385d}[data-theme=dark] .data-source-row:nth-of-type(2n) .timeline-track,.dark .data-source-row:nth-of-type(2n) .timeline-track{background:var(--color-bg-white)}[data-theme=dark] .data-source-row:nth-of-type(odd) .timeline-track,.dark .data-source-row:nth-of-type(odd) .timeline-track{background:var(--color-bg-secondary)}[data-theme=dark] .month-grid-line,.dark .month-grid-line{background:#8b949e47}[data-theme=dark] .info-link,.dark .info-link{color:var(--color-state-5)}[data-theme=dark] .info-link:hover,.dark .info-link:hover{color:var(--color-m3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--color-bg-page);color:var(--color-text-dark);line-height:1.4;padding:20px}[data-theme=professional]{--color-bg-page: #f1f5f9;--color-bg-white: #ffffff;--color-bg-secondary: #f8fafc;--color-border: #cbd5e1;--color-text-dark: #1e293b;--color-text-light: #64748b;--color-start: #475569;--color-m0: var(--color-state-2);--color-m1: #b45309;--color-m2: #0d9488;--color-m3: #0f766e;--color-m4: #0f766e;--color-m5: #5b21b6;--color-state-0: #94a3b8;--color-state-1: #475569;--color-state-2: #0e7490;--color-state-3: #b45309;--color-state-4: #0d9488;--color-state-5: #0369a1;--color-state-6: #0f766e;--color-state-7: #1d4ed8;--color-dependency-inbound: #0284c7;--color-dependency-outbound: #c2410c;--color-risk: #b91c1c;--color-today: #b91c1c}[data-theme=colorful]{--color-bg-page: #fcfcfc;--color-bg-white: #ffffff;--color-bg-secondary: #fffbeb;--color-border: #f59e0b;--color-text-dark: #1f2937;--color-text-light: #6b7280;--color-start: #7c3aed;--color-m0: var(--color-state-2);--color-m1: #d97706;--color-m2: #059669;--color-m3: #14b8a6;--color-m4: #0d9488;--color-m5: #9333ea;--color-state-0: #9ca3af;--color-state-1: #7c3aed;--color-state-2: #0891b2;--color-state-3: #ea580c;--color-state-4: #16a34a;--color-state-5: #2563eb;--color-state-6: #0d9488;--color-state-7: #4f46e5;--color-dependency-inbound: #0284c7;--color-dependency-outbound: #ea580c;--color-risk: #dc2626;--color-today: #dc2626}[data-theme=blank]{--color-bg-page: #fafafa;--color-bg-white: #ffffff;--color-bg-secondary: #f5f5f5;--color-border: #e5e5e5;--color-text-dark: #404040;--color-text-light: #737373;--color-start: #a5b4fc;--color-m0: var(--color-state-2);--color-m1: #fde68a;--color-m2: #86efac;--color-m3: #6ee7b7;--color-m4: #5eead4;--color-m5: #c4b5fd;--color-state-0: #e5e5e5;--color-state-1: #c4b5fd;--color-state-2: #67e8f9;--color-state-3: #fde68a;--color-state-4: #86efac;--color-state-5: #93c5fd;--color-state-6: #5eead4;--color-state-7: #818cf8;--color-dependency-inbound: #7dd3fc;--color-dependency-outbound: #fdba74;--color-risk: #fca5a5;--color-today: #fca5a5}[data-theme=monochrome]{--color-bg-page: #ffffff;--color-bg-white: #ffffff;--color-bg-secondary: #f5f5f5;--color-border: #d4d4d4;--color-text-dark: #0a0a0a;--color-text-light: #525252;--color-start: #404040;--color-m0: #6b6b6b;--color-m1: #525252;--color-m2: #737373;--color-m3: #5c5c5c;--color-m4: #474747;--color-m5: #3a3a3a;--color-state-0: #e8e8e8;--color-state-1: #d0d0d0;--color-state-2: #b8b8b8;--color-state-3: #9e9e9e;--color-state-4: #858585;--color-state-5: #6b6b6b;--color-state-6: #525252;--color-state-7: #3a3a3a;--color-dependency-inbound: #404040;--color-dependency-outbound: #262626;--color-risk: #b91c1c;--color-today: #262626}[data-theme=papallona]{--color-bg-page: #f7f6f4;--color-bg-white: #ffffff;--color-bg-secondary: #eef1f5;--color-border: #d1d9e0;--color-text-dark: #162633;--color-text-light: #5a6778;--color-start: #1e3a5c;--color-m0: #0f766e;--color-m1: #0d9488;--color-m2: #14b8a6;--color-m3: #10b981;--color-m4: #15803d;--color-m5: #0e7490;--color-state-0: #94a3b8;--color-state-1: #475569;--color-state-2: #0d9488;--color-state-3: #0f766e;--color-state-4: #15803d;--color-state-5: #0369a1;--color-state-6: #1d4ed8;--color-state-7: #1e3a5c;--color-dependency-inbound: #0284c7;--color-dependency-outbound: #c2410c;--color-risk: #b91c1c;--color-today: #c2410c}[data-theme=papallona] .summary-dashboard{background:linear-gradient(135deg,#faf9f7,#eef1f5)}[data-theme=papallona] .kpi-card.total{background:linear-gradient(135deg,#1e3a5c,#0f766e);color:#fff}[data-theme=papallona] .kpi-card.active{box-shadow:0 0 0 3px #0d948873,0 4px 12px #1626331a}[data-theme=papallona] .filter-select:focus,[data-theme=papallona] .filter-input:focus{border-color:#0d9488;box-shadow:0 0 0 2px #0d948833}[data-theme=papallona] .theme-toggle:hover{border-color:#0d9488;background:#0d94880f}[data-theme=papallona] .export-btn{background:linear-gradient(135deg,#1e3a5c,#0f766e);color:#fff}[data-theme=papallona] .export-btn:hover{box-shadow:0 4px 14px #1e3a5c59}[data-theme=papallona] .export-btn.secondary{background:linear-gradient(135deg,#475569,#64748b)}[data-theme=monochrome] .summary-dashboard{background:linear-gradient(135deg,#fff,#f0f0f0)}[data-theme=monochrome] .kpi-card.total{background:linear-gradient(135deg,#262626,#404040);color:#fff}[data-theme=monochrome] .kpi-card.active{box-shadow:0 0 0 3px #737373,0 4px 12px #0000001f}[data-theme=monochrome] .filter-select:focus,[data-theme=monochrome] .filter-input:focus{border-color:#525252;box-shadow:0 0 0 2px #00000014}[data-theme=monochrome] .theme-toggle:hover{border-color:#525252;background:#0000000a}[data-theme=monochrome] .export-btn{background:linear-gradient(135deg,#262626,#404040);color:#fff}[data-theme=monochrome] .export-btn:hover{box-shadow:0 4px 12px #0003}[data-theme=monochrome] .export-btn.secondary{background:linear-gradient(135deg,#6b6b6b,#525252)}[data-theme=dark] body{background:var(--color-bg-page)}[data-theme=dark] .roadmap-container{background:var(--color-bg-white)}[data-theme=dark] .filter-bar{background:var(--color-bg-white);box-shadow:0 2px 8px #0006}[data-theme=dark] .filter-select,[data-theme=dark] .filter-input,[data-theme=dark] .filter-toggle{background:var(--color-bg-secondary);color:var(--color-text-dark)}[data-theme=dark] .filter-clear{background:var(--color-bg-secondary)}.filter-bar{max-width:1400px;margin:0 auto 12px;background:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 2px 8px #00000026;display:flex;gap:12px;align-items:center;flex-wrap:wrap;position:sticky;top:10px;z-index:100}.filter-group{display:flex;align-items:center;gap:6px}.filter-label{font-size:11px;font-weight:600;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px}.filter-select,.filter-input{padding:6px 10px;font-size:12px;border:1px solid var(--color-border);border-radius:4px;background:#fff;color:var(--color-text-dark);cursor:pointer}.filter-select:focus,.filter-input:focus{outline:none;border-color:#0065ff;box-shadow:0 0 0 2px #0065ff1a}.filter-input{width:160px}.filter-input::placeholder{color:var(--color-text-light)}.filter-toggle{display:flex;align-items:center;gap:4px;padding:6px 10px;font-size:12px;border:1px solid var(--color-border);border-radius:4px;background:#fff;color:var(--color-text-dark);cursor:pointer;transition:all .2s ease}.filter-toggle:hover{border-color:var(--color-risk)}.filter-toggle.active{background:#de350b1a;border-color:var(--color-risk);color:var(--color-risk)}.filter-toggle svg{width:14px;height:14px}.filter-clear{padding:6px 12px;font-size:11px;font-weight:600;border:none;border-radius:4px;background:#f4f5f7;color:var(--color-text-light);cursor:pointer;transition:all .2s ease}.filter-clear:hover{background:#e4e6e8;color:var(--color-text-dark)}.filter-results{margin-left:auto;font-size:11px;color:var(--color-text-light)}.filter-results strong{color:var(--color-text-dark)}.theme-toggle{padding:8px 12px;font-size:12px;font-weight:600;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-white);color:var(--color-text-dark);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.theme-toggle:hover{border-color:#0065ff;background:#0065ff0d}.theme-toggle svg{width:16px;height:16px}.export-controls{max-width:1400px;margin:0 auto 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.export-btn{background:linear-gradient(135deg,#0052cc,#0065ff);color:#fff;border:none;padding:10px 20px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:transform .2s ease,box-shadow .2s ease}.export-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0052cc66}.export-btn:active{transform:translateY(0)}.export-btn.secondary{background:linear-gradient(135deg,#505f79,#6b778c)}.export-btn svg{width:16px;height:16px}.export-note{font-size:12px;color:var(--color-text-light);margin-left:auto}.roadmap-container{max-width:1400px;margin:0 auto;background:var(--color-bg-white);border-radius:8px;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014;overflow:hidden}.roadmap-content{padding:16px 32px 24px;overflow-x:auto}.roadmap-grid{min-width:900px}.timeline-header{display:grid;grid-template-columns:250px 1fr;margin-bottom:4px}.timeline-label{font-weight:600;font-size:10px;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.5px;padding:6px 10px}.timeline-months{display:flex;position:relative}.month-column{flex:1;text-align:center;font-weight:600;font-size:11px;color:var(--color-text-dark);padding:6px 0;border-left:1px solid var(--color-border);background:#fafbfc}.month-column:last-child{border-right:1px solid var(--color-border)}.today-pointer{position:absolute;top:100%;transform:translate(-50%);z-index:10}.today-pointer-arrow{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--color-today);margin:0 auto}.gantt-tooltip-overlay{position:absolute;inset:0;pointer-events:auto}.page-footer{max-width:1400px;margin:24px auto 0;padding:16px;text-align:center;font-size:11px;color:var(--color-text-light)}.page-footer a{color:var(--color-text-light);text-decoration:none}.page-footer a:hover{color:var(--color-text-dark);text-decoration:underline}.build-version{text-align:center;font-size:11px;color:var(--color-text-light);padding:8px 16px;margin-top:16px}@media print{body{background:#fff;padding:0}.export-controls{display:none}.roadmap-container{box-shadow:none}}
