/* DCCC Project Schedule & Duration Report — production UI v1 */
.sch-page{background:#f5f7f9;color:#111;min-height:100vh;overflow-x:hidden}.sch-page *{box-sizing:border-box}.sch-page a{color:inherit}.sch-current-nav{color:#e71925!important;position:relative}.sch-current-nav:after{content:"";position:absolute;left:8px;right:8px;bottom:-12px;height:3px;background:#e71925}.sch-loading{padding:80px 20px;text-align:center;font-weight:700}.sch-hero{position:relative;min-height:375px;background:#111;overflow:hidden}.sch-carousel{position:absolute;inset:0;overflow:hidden}.sch-slide{position:absolute;inset:0;opacity:0;transition:opacity .85s ease}.sch-slide.is-active{opacity:1}.sch-slide img{width:100%;height:100%;object-fit:cover;display:block}.sch-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,10,14,.95) 0%,rgba(5,10,14,.77) 44%,rgba(5,10,14,.26) 77%,rgba(5,10,14,.08) 100%)}.sch-hero-copy{position:relative;z-index:3;max-width:1450px;margin:auto;padding:26px 48px 118px;color:#fff}.sch-breadcrumb{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;margin-bottom:25px}.sch-breadcrumb a{text-decoration:none;opacity:.9}.sch-breadcrumb a:hover{text-decoration:underline}.sch-eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;margin:0 0 8px;color:#f1f1f1}.sch-hero h1{font-size:46px;line-height:1.02;margin:0;max-width:980px;letter-spacing:-.035em}.sch-hero h1 em{font-style:normal;color:#e71925}.sch-hero-copy>p:last-child{max-width:760px;font-size:17px;line-height:1.45;margin:12px 0 0;color:#f4f4f4}.sch-capabilities{position:absolute;z-index:4;left:48px;right:48px;bottom:24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:1400px;margin:auto}.sch-capabilities>div{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid rgba(255,255,255,.34);background:rgba(8,13,17,.57);backdrop-filter:blur(8px);color:#fff;min-height:64px}.sch-capabilities i{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.58);border-radius:7px;font-style:normal;font-size:18px}.sch-capabilities span{display:flex;flex-direction:column;min-width:0}.sch-capabilities b{font-size:11px}.sch-capabilities small{font-size:10px;color:#d9dde0;margin-top:2px}.sch-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:38px;height:48px;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:29px;cursor:pointer}.sch-arrow.prev{left:8px}.sch-arrow.next{right:8px}.sch-dots{position:absolute;z-index:6;right:20px;bottom:18px;display:flex;gap:6px}.sch-dots button{width:8px;height:8px;border-radius:50%;border:1px solid #fff;background:transparent;padding:0}.sch-dots button.is-active{background:#fff}.sch-shell{max-width:1480px;margin:auto;padding:18px 36px 28px}.sch-projectbar,.sch-report-head,.sch-kpis,.sch-controls,.sch-table-box,.sch-gantt-box,.sch-toolbar,.sch-doc-control,.sch-links{background:#fff;border:1px solid #dfe3e7;box-shadow:0 1px 3px rgba(0,0,0,.03)}.sch-projectbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 14px;margin-bottom:10px}.sch-projectbar div{display:flex;flex-direction:column}.sch-projectbar b{font-size:12px}.sch-projectbar small{font-size:9px;color:#6f7780;margin-top:2px}.sch-projectbar select{min-width:300px;height:36px;border:1px solid #d9dee2;background:#fff;padding:0 10px}.sch-report-head{padding:14px 16px}.sch-report-title{display:flex;align-items:center;gap:11px;margin-bottom:12px}.sch-report-title i{width:38px;height:38px;display:grid;place-items:center;background:#eef1f4;border-radius:7px;font-style:normal;font-size:20px}.sch-report-title h2{font-size:22px;margin:0}.sch-report-title p{margin:2px 0 0;font-size:12px;color:#59616a}.sch-meta{display:grid;grid-template-columns:1.45fr 1fr .65fr .8fr .75fr;gap:8px}.sch-meta>div,.sch-meta-extra>div{padding:10px 12px;border:1px solid #e4e7ea;background:#fafbfc;min-width:0}.sch-meta small,.sch-meta-extra small{display:block;font-size:9px;color:#69717a;text-transform:uppercase;letter-spacing:.05em}.sch-meta b,.sch-meta-extra b{display:block;margin-top:3px;font-size:12px;overflow:hidden;text-overflow:ellipsis}.sch-meta-extra{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px}.sch-status{display:inline-flex!important;width:auto;padding:3px 7px;border-radius:20px;background:#eef2f4}.sch-status.status-final,.sch-status.status-approved{background:#dff7e8;color:#146b37}.sch-status.status-draft,.sch-status.status-under-review,.sch-status.status-in-review{background:#fff2d9;color:#8b5b00}.sch-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:10px}.sch-kpi{padding:15px;border-right:1px solid #e5e8eb;display:grid;grid-template-columns:45px 1fr;gap:10px;align-items:center;min-height:104px}.sch-kpi:last-child{border-right:0}.sch-kpi i{width:45px;height:45px;border-radius:7px;background:#fff0f1;color:#e71925;display:grid;place-items:center;font-style:normal;font-size:21px}.sch-kpi small{display:block;color:#5d6670;font-size:9px;text-transform:uppercase}.sch-kpi b{display:block;font-size:20px;margin-top:2px}.sch-kpi span{display:block;font-size:9px;color:#7a828a;margin-top:2px}.sch-progress-bar{height:7px;border-radius:10px;background:#e6e9ec;margin-top:5px;overflow:hidden}.sch-progress-bar>span{display:block;height:100%;background:#16a34a}.sch-controls{margin-top:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sch-tabs{display:flex;gap:8px}.sch-tabs button,.sch-filter-buttons button{height:36px;border:1px solid #dce1e5;background:#fff;padding:0 15px;font-size:10px;font-weight:700;cursor:pointer;border-radius:4px}.sch-tabs button.is-active,.sch-filter-buttons button.is-active{background:#e71925;color:#fff;border-color:#e71925}.sch-timeline-control{display:flex;align-items:center;gap:7px;margin-left:auto}.sch-timeline-control label{font-size:10px;font-weight:700}.sch-timeline-control select{height:36px;border:1px solid #dce1e5;background:#fff;padding:0 9px}.sch-legend{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.sch-legend span{display:flex;align-items:center;gap:4px;font-size:9px}.sch-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}.sch-legend .completed i{background:#16a34a}.sch-legend .in-progress i{background:#3182ce}.sch-legend .planned i{background:#f4c20d}.sch-legend .delayed i{background:#ef4444}.sch-legend .not-started i{background:#8a9198}.sch-filters{width:100%;display:flex;align-items:center;gap:8px;border-top:1px solid #eef0f2;padding-top:9px}.sch-filter-group{display:flex;align-items:center;gap:5px;min-width:0}.sch-filter-group>b{font-size:9px;white-space:nowrap}.sch-filter-buttons{display:flex;gap:5px;overflow:auto}.sch-filter-buttons button{height:30px;padding:0 10px;white-space:nowrap}.sch-workspace{display:grid;grid-template-columns:minmax(540px,1.05fr) minmax(0,1.2fr);gap:10px;margin-top:10px}.sch-workspace.gantt-focus{grid-template-columns:1fr}.sch-workspace.gantt-focus .sch-table-box{display:none}.sch-section-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #dfe3e7}.sch-section-head h3{margin:0;font-size:16px}.sch-section-head small{color:#747c84;font-size:9px}.sch-table-wrap{overflow:auto;max-width:100%}.sch-table{width:100%;border-collapse:collapse;min-width:900px;font-size:9.5px}.sch-table th{background:#26313d;color:#fff;padding:8px 7px;text-align:center;white-space:nowrap}.sch-table th:nth-child(2){text-align:left}.sch-table td{padding:7px;border-bottom:1px solid #e7eaed;border-right:1px solid #eef0f2;text-align:center;vertical-align:top}.sch-table td:nth-child(2){text-align:left}.sch-table tbody tr:nth-child(even){background:#fafbfc}.sch-table td b{display:block}.sch-table td small{display:block;color:#707982;margin-top:2px}.sch-table .status-pill{display:inline-flex;padding:2px 6px;border-radius:12px;font-weight:700;font-size:8.5px}.status-pill.completed{background:#dcfce7;color:#166534}.status-pill.in-progress{background:#dbeafe;color:#1d4ed8}.status-pill.planned{background:#fff7cc;color:#7a5a00}.status-pill.delayed{background:#fee2e2;color:#b91c1c}.status-pill.not-started{background:#eef0f2;color:#4b5563}.status-pill.on-hold,.status-pill.at-risk{background:#ffedd5;color:#9a3412}.status-pill.cancelled{background:#f3f4f6;color:#6b7280}.sch-empty-row{padding:30px!important;text-align:center!important;color:#69717a}.sch-mobile-cards{display:none}.sch-gantt-box{min-width:0;overflow:hidden}.sch-gantt-scroll{overflow:auto;max-width:100%;position:relative}.sch-gantt{position:relative;min-width:760px;background:#fff}.sch-gantt-head{height:54px;position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid #dfe3e7}.sch-gantt-title-row,.sch-gantt-tick-row{display:flex;height:27px}.sch-gantt-title-row span,.sch-gantt-tick-row span{display:flex;align-items:center;justify-content:center;border-right:1px solid #eef0f2;font-size:8px;white-space:nowrap;overflow:hidden}.sch-gantt-title-row span{font-weight:800;background:#f6f8fa}.sch-gantt-body{position:relative}.sch-gantt-row{position:relative;height:34px;border-bottom:1px solid #eef0f2;background-image:linear-gradient(to right,#f3f4f6 1px,transparent 1px);background-size:calc(100% / var(--ticks,12)) 100%}.sch-gantt-row:nth-child(even){background-color:#fafbfc}.sch-gantt-bar{position:absolute;height:13px;top:10px;border-radius:3px;min-width:3px;z-index:3}.sch-gantt-bar.completed{background:#16a34a}.sch-gantt-bar.in-progress{background:#3182ce}.sch-gantt-bar.planned{background:#f4c20d}.sch-gantt-bar.delayed{background:#ef4444}.sch-gantt-bar.not-started{background:#8a9198}.sch-gantt-bar.on-hold,.sch-gantt-bar.at-risk{background:#f97316}.sch-gantt-bar.cancelled{background:#6b7280}.sch-gantt-bar.critical{box-shadow:0 0 0 2px rgba(239,68,68,.26)}.sch-gantt-milestone{position:absolute;width:12px;height:12px;top:10px;transform:rotate(45deg);z-index:4;background:#111}.sch-gantt-label{position:absolute;top:8px;font-size:8px;white-space:nowrap;z-index:4;pointer-events:none;transform:translateX(4px)}.sch-gantt-svg{position:absolute;inset:54px 0 0 0;z-index:2;pointer-events:none;overflow:visible}.sch-data-date{position:absolute;top:54px;bottom:0;width:2px;background:#e71925;z-index:4;pointer-events:none}.sch-data-date:before{content:attr(data-label);position:absolute;top:2px;left:4px;background:#e71925;color:#fff;font-size:8px;padding:2px 4px;border-radius:2px;white-space:nowrap}.sch-gantt-empty{padding:60px 24px;text-align:center;color:#727a82;font-size:11px}.sch-toolbar{margin-top:10px;padding:11px;display:flex;gap:10px;align-items:end;justify-content:space-between;flex-wrap:wrap}.sch-toolbar label{display:flex;flex-direction:column;gap:5px;font-size:9px;color:#6d757d}.sch-toolbar select{height:36px;border:1px solid #d9dee2;padding:0 10px;background:#fff;min-width:260px}.sch-actions{display:flex;gap:7px;flex-wrap:wrap}.sch-actions button{min-height:36px;padding:0 13px;border:1px solid #d9dee2;background:#fff;font-size:10px;font-weight:700;cursor:pointer}.sch-actions button:hover:not(:disabled){border-color:#e71925;color:#e71925}.sch-actions button.is-active{background:#e71925;color:#fff;border-color:#e71925}.sch-actions button:disabled{opacity:.48;cursor:not-allowed}.sch-notice{flex-basis:100%;font-size:10px;color:#4c5964;min-height:14px}.sch-doc-control{margin-top:10px;padding:10px;display:grid;grid-template-columns:1.45fr 1fr .8fr 1.15fr;gap:8px}.sch-doc-control>div{padding:10px;background:#fafbfc;border:1px solid #e3e6e9;min-width:0}.sch-doc-control h4{margin:0 0 7px;font-size:11px}.sch-doc-control small{display:block;font-size:8px;text-transform:uppercase;color:#6f7780;margin-top:5px}.sch-doc-control b{display:block;margin-top:2px;font-size:10px;overflow:hidden;text-overflow:ellipsis}.sch-verify-box button{margin-top:8px;border:1px solid #d9dee2;background:#fff;height:32px;padding:0 10px;font-size:9px;font-weight:700;cursor:pointer}.sch-verify-result{font-size:9px;margin-top:6px;min-height:13px}.sch-links{margin-top:10px;padding:10px;display:flex;gap:7px;flex-wrap:wrap}.sch-links a{font-size:10px;text-decoration:none;border:1px solid #dfe3e7;background:#fff;padding:8px 10px}.sch-links a:hover{border-color:#e71925;color:#e71925}.sch-banner{position:relative;min-height:210px;overflow:hidden;margin-top:12px;background:#111}.sch-banner>.sch-carousel{position:absolute}.sch-banner-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.34))}.sch-banner-copy{position:relative;z-index:3;max-width:800px;padding:35px;color:#fff}.sch-banner-copy h2{margin:0 0 7px;font-size:29px}.sch-banner-copy p{margin:0 0 16px;font-size:13px}.sch-banner-copy button,.sch-banner-copy a{display:inline-block;background:#e71925;color:#fff;text-decoration:none;border:0;padding:11px 16px;font-weight:800;font-size:11px;cursor:pointer}.sch-banner.global .sch-banner-copy a{background:#f5c400;color:#111}.sch-banner.global .sch-banner-copy h2{font-size:32px}.sch-footer{background:#111820;color:#fff;text-align:center;padding:20px 12px;font-size:12px;font-weight:700}.sch-empty-state{padding:42px 24px;text-align:center;background:#fff;border:1px solid #dfe3e7;margin-top:10px}.sch-empty-state h3{margin:0 0 8px;font-size:20px}.sch-empty-state p{margin:0 auto;color:#626a73;font-size:12px;max-width:760px}.sch-modal{position:fixed;z-index:9999;inset:0;background:rgba(0,0,0,.72);padding:24px;overflow:auto}.sch-modal-card{max-width:1320px;margin:auto;background:#f3f4f6;box-shadow:0 8px 40px rgba(0,0,0,.35)}.sch-modal-head{position:sticky;top:0;z-index:4;background:#111820;color:#fff;padding:11px 14px;display:flex;justify-content:space-between;align-items:center}.sch-modal-head button{width:34px;height:34px;border:0;background:#fff;color:#111;font-size:20px;cursor:pointer}.sch-modal-pages{padding:18px}.sch-preview-page{background:#fff;min-height:720px;margin:0 auto 18px;padding:24px;max-width:1180px;box-shadow:0 2px 12px rgba(0,0,0,.08)}.sch-preview-page header{display:flex;justify-content:space-between;gap:14px;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:12px}.sch-preview-page header strong{font-size:18px}.sch-preview-page table{width:100%;border-collapse:collapse;font-size:8px}.sch-preview-page th,.sch-preview-page td{border:1px solid #c7cbd0;padding:4px}.sch-preview-page th{background:#26313d;color:#fff}.sch-preview-page footer{margin-top:12px;border-top:1px solid #bbb;padding-top:8px;font-size:9px;font-weight:700;display:flex;justify-content:space-between}.sch-preview-gantt{position:relative;height:360px;border:1px solid #cfd4d9;overflow:hidden;background:repeating-linear-gradient(90deg,#fff 0,#fff 58px,#eef0f2 59px)}.sch-preview-gantt div{position:absolute;height:12px;border-radius:2px;background:#667085}.sch-preview-gantt .completed{background:#16a34a}.sch-preview-gantt .in-progress{background:#3182ce}.sch-preview-gantt .planned{background:#f4c20d}.sch-preview-gantt .delayed{background:#ef4444}.sch-preview-gantt .not-started{background:#8a9198}
@media(max-width:1180px){.sch-hero{min-height:430px}.sch-hero-copy{padding-left:28px;padding-right:28px}.sch-capabilities{left:28px;right:28px;grid-template-columns:repeat(2,1fr)}.sch-meta{grid-template-columns:repeat(3,1fr)}.sch-meta-extra{grid-template-columns:repeat(3,1fr)}.sch-kpis{grid-template-columns:repeat(3,1fr)}.sch-kpi{border-bottom:1px solid #e5e8eb}.sch-workspace{grid-template-columns:1fr}.sch-table-box,.sch-gantt-box{min-width:0}.sch-doc-control{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sch-current-nav:after{bottom:-5px}.sch-hero{min-height:520px}.sch-hero-copy{padding:20px 18px 198px}.sch-hero h1{font-size:32px}.sch-hero-copy>p:last-child{font-size:14px}.sch-capabilities{left:18px;right:18px;bottom:17px;grid-template-columns:1fr 1fr}.sch-capabilities>div{min-height:72px;padding:8px}.sch-capabilities small{font-size:8.5px}.sch-shell{padding:12px}.sch-projectbar{align-items:stretch;flex-direction:column}.sch-projectbar select{width:100%;min-width:0}.sch-meta,.sch-meta-extra{grid-template-columns:1fr 1fr}.sch-kpis{grid-template-columns:1fr 1fr}.sch-kpi{min-height:95px;padding:12px;grid-template-columns:40px 1fr}.sch-kpi i{width:40px;height:40px}.sch-kpi b{font-size:17px}.sch-controls{align-items:stretch}.sch-tabs{width:100%}.sch-tabs button{flex:1}.sch-timeline-control{margin-left:0;width:100%;justify-content:space-between}.sch-timeline-control select{flex:1;max-width:220px}.sch-legend{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.sch-filters{flex-direction:column;align-items:stretch}.sch-filter-group{flex-direction:column;align-items:flex-start}.sch-table-wrap{display:none}.sch-mobile-cards{display:grid;gap:8px;padding:10px}.sch-mobile-cards article{border:1px solid #dfe3e7;background:#fff;padding:11px}.sch-mobile-cards header{display:flex;justify-content:space-between;gap:10px}.sch-mobile-cards header b{font-size:12px}.sch-mobile-cards header span{font-size:9px;color:#6e767e}.sch-mobile-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.sch-mobile-grid div{font-size:9px}.sch-mobile-grid small{display:block;color:#747c84;text-transform:uppercase;font-size:7.5px}.sch-gantt{min-width:820px}.sch-toolbar{align-items:stretch}.sch-toolbar label{width:100%}.sch-toolbar select{width:100%;min-width:0}.sch-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.sch-actions button{min-height:42px}.sch-doc-control{grid-template-columns:1fr}.sch-banner-copy{padding:28px 22px}.sch-banner-copy h2,.sch-banner.global .sch-banner-copy h2{font-size:25px}.sch-modal{padding:8px}.sch-modal-pages{padding:8px}.sch-preview-page{padding:14px;min-width:760px}.sch-modal-card{overflow:auto}}
@media print{body>*:not(#app){display:none!important}.sch-hero,.sch-projectbar,.sch-controls,.sch-toolbar,.sch-links,.sch-banner,.sch-footer{display:none!important}.sch-page,.sch-shell{background:#fff!important;padding:0!important;margin:0!important;max-width:none!important}.sch-report-head,.sch-kpis,.sch-workspace,.sch-doc-control{box-shadow:none!important;border-color:#bbb!important}.sch-workspace{display:block!important}.sch-table-box,.sch-gantt-box{display:block!important;break-inside:avoid;margin-bottom:10px}.sch-table-wrap{display:block!important;overflow:visible!important}.sch-mobile-cards{display:none!important}.sch-gantt-scroll{overflow:visible!important}.sch-gantt{min-width:0!important}.sch-footer{display:none!important}}