:root{font-family:Arial,Helvetica,sans-serif;color:#222343;background:#f5f7fb;font-synthesis:none;line-height:1.45;--blue:#1d477e;--sky:#0c80b6;--line:#dbe3ee;--red:#c81735}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;background:#fff;color:var(--blue);border:1px solid var(--line);border-radius:9px;padding:10px 15px;font-size:14px;font-weight:600}button:hover{background:#edf4fa}button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--sky);outline-offset:3px}button.selected{background:var(--blue);border-color:var(--blue);color:white}.brand{display:flex;align-items:center;gap:28px;padding:20px 4vw;background:#fff;border-bottom:1px solid var(--line)}.brand img{width:205px;height:auto;object-fit:contain}.brand>span{color:#617187;font-size:13px;letter-spacing:.06em}.brand b{display:block;font-weight:500}.brand .readonly{margin-left:auto;border:1px solid var(--line);padding:6px 13px;border-radius:20px;letter-spacing:0;color:var(--blue);white-space:nowrap}main{max-width:1840px;margin:auto;padding:34px 4vw 20px}.project-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:11px;text-transform:uppercase;color:var(--blue);font-weight:700;letter-spacing:.15em;margin:0 0 8px}h1{font-size:clamp(25px,3vw,38px);line-height:1.16;margin:0;overflow-wrap:anywhere}h2{font-size:23px;margin:0}h3{font-size:17px}.metadata{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:28px 0}.metadata dt{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#697a91}.metadata dd{font-size:14px;margin:7px 0 0;font-weight:600}.metadata small{font-weight:400}small{display:block;font-size:11px;color:#627189;line-height:1.5}p{overflow-wrap:anywhere}.status{font-size:12px;font-weight:600;padding:5px 10px;border-radius:20px;background:#eaf1f9;color:var(--blue);white-space:nowrap}.status.late{color:#a00d28;background:#fff0f3}.status.done{color:#167363;background:#e9f8f3}.target-note{padding:11px 14px;background:#fff9ee;border-left:3px solid #c99737;font-size:13px;color:#796034}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.metrics>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px 20px}.metrics span{display:block;color:#68788e;font-size:12px}.metrics strong{display:block;font-size:29px;line-height:1.3;margin-top:7px;overflow-wrap:anywhere}.metrics strong small{display:inline;font-size:14px;font-weight:400}.metrics .warning{background:#fff7f8;border-color:#f2d6dc}.metrics .warning strong{color:var(--red)}.tools,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 20px}.tools nav,.tools-actions,.view-controls{display:flex;gap:8px;flex-wrap:wrap}.workspace{background:white;border:1px solid var(--line);border-radius:15px;padding:26px;box-shadow:0 5px 25px #1d477e04}.section-heading{margin:0 0 15px}.hint{font-size:12px;color:#697a91}.legend{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:#627189;margin:18px 0}.legend span{display:flex;align-items:center;gap:7px}.legend i{display:inline-block;width:17px;height:9px;background:#d9eaf5;border:1px solid #7eb0cf}.legend i.fill{background:#7eb0cf}.legend i.late{background:var(--red);border-color:var(--red)}.legend i.nonworking{background:#eef2f6;border-color:#d5deea}.legend b{color:var(--blue)}.gantt-scroll,.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px}.gantt-scroll{max-height:72vh}.gantt{border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12px}.gantt th,.gantt td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:9px}.gantt thead{position:sticky;top:0;z-index:3}.gantt thead th{height:28px;font-size:11px;text-align:center;background:#edf2f7;color:#283957;padding:4px}.gantt thead th.month,.gantt thead th.calendar{background:var(--blue);border-color:#456994;color:white}.gantt .month{text-transform:uppercase}.gantt .calendar{font-weight:500;white-space:nowrap;padding:3px 0}.task-row{height:78px}.gantt .task-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:left;line-height:1.3}.task-name{border:0;padding:0;color:#252a49;font-size:12px;font-weight:700;background:transparent;border-radius:3px}.task-name:hover{text-decoration:underline;background:transparent}.gantt td{font-size:11px}.gantt small{font-size:10px;margin-top:4px}.number{text-align:right!important;font-variant-numeric:tabular-nums}.gantt .number{text-align:center!important;white-space:nowrap}.gantt .stage{background:#e0e6ed;height:40px}.gantt .stage th{font-size:12px}.gantt .track-cell{padding:0}.track{position:relative;height:77px;overflow:hidden}.date-grid{position:absolute;inset:0;display:flex}.date-grid span{border-right:1px solid var(--line);min-width:0}.date-grid .nonworking{background:#f6f8fb}.bar{position:absolute;top:24px;height:28px;min-width:3px;border:1px solid #81b2d2;border-radius:3px;padding:0;background:#d9eaf5;font-size:10px;overflow:hidden;line-height:26px}.bar:hover{filter:brightness(.97);background:#d9eaf5}.bar-fill{position:absolute;inset:0 auto 0 0;background:#86b6d3}.bar-label{position:relative;z-index:1;color:#28415f;font-size:10px}.bar.late{background:#f9dbe1;border-color:var(--red)}.bar.late .bar-fill{background:#d7697f}.bar.late .bar-label{color:#82122a}.bar.complete .bar-fill{background:#9ccdc0}.bar.milestone{transform:translateX(-50%);background:transparent;border:0;color:var(--blue);font-size:21px;line-height:26px;min-width:0}.bar.milestone.late{color:var(--red)}.observations{border-top:1px solid var(--line);margin-top:25px;padding-top:16px}.observations p{white-space:pre-line;font-size:13px;color:#536279}.task-list{display:grid;gap:14px}.list-stage{background:#edf2f7;margin:12px 0 0;padding:12px 15px;border-radius:6px}.task-card{border:1px solid var(--line);border-radius:10px;padding:18px}.task-card.overdue{border-left:3px solid var(--red)}.task-card-heading{display:flex;gap:20px;align-items:flex-start;justify-content:space-between}.task-card .task-name{font-size:15px;text-align:left}.task-card p{font-size:13px;color:#63758b;margin:7px 0}.task-progress{display:flex;align-items:center;gap:14px;font-size:12px;margin-top:14px}.task-progress progress{width:100%;height:8px;accent-color:var(--sky)}.task-card.overdue progress{accent-color:var(--red)}.updated{font-size:11px;color:#6c7a8c;margin-top:20px}.version{font-size:12px;color:#677a92}.budget-metrics>div{background:#f4f8fc}.budget-metrics strong{font-size:23px}.budget{width:100%;min-width:900px;border-collapse:collapse;font-size:12px}.budget th,.budget td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.budget thead th{background:#edf2f7;color:#38516c;font-size:11px;text-transform:uppercase}.budget th:nth-child(2){width:40%;font-weight:500}.budget .number{white-space:nowrap}.budget .pending{color:#a11431}.budget small{margin-top:5px}.budget tfoot th,.budget tfoot td{background:#f4f7fb;font-weight:700}.budget tfoot tr:last-child th,.budget tfoot tr:last-child td{background:var(--blue);color:white;font-size:14px}.linked-tasks{font-weight:400}.empty{background:white;border:1px solid var(--line);border-radius:14px;text-align:center;padding:60px 25px;margin:40px auto;max-width:820px}.empty h1{font-size:25px}.empty p{font-size:15px;color:#627189}.empty button{margin-top:10px}footer{font-size:11px;color:#7a8798;text-align:center;padding:20px}dialog{max-width:720px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:15px;padding:28px;color:#222343}dialog::backdrop{background:#16223788}.detail-heading{display:flex;gap:20px;justify-content:space-between;align-items:start;margin-bottom:18px}.detail-heading h2{font-size:23px;line-height:1.3}.task-details{display:grid;grid-template-columns:160px 1fr;gap:15px;margin:25px 0 0;font-size:13px}.task-details dt{color:#627189}.task-details dd{margin:0;overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.brand{gap:18px}.brand>span:not(.readonly){display:none}.metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{gap:10px}.metrics>div{padding:14px}.metrics strong{font-size:24px}.section-heading{align-items:start;flex-direction:column}.budget-metrics strong{font-size:21px}.workspace{padding:20px}.tools{gap:12px;flex-wrap:wrap}}@media(max-width:550px){.brand{padding:16px 20px}.brand img{width:170px}main{padding:26px 16px 14px}.project-heading{align-items:start}.project-heading .status{margin-top:5px;font-size:10px}.metadata{gap:20px 14px}.metadata dd{font-size:12px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:16px}.tools button,.view-controls button{padding:9px 12px;font-size:12px}.legend{gap:12px}.task-details{grid-template-columns:1fr;gap:6px}.task-details dd{margin-bottom:12px}.detail-heading{flex-direction:column-reverse;gap:12px}.detail-heading button{align-self:flex-end}.task-card-heading{flex-direction:column;gap:10px}.brand .readonly{font-size:11px}}@media print{@page{size:A4 landscape;margin:10mm}body{background:white;color:#111;-webkit-print-color-adjust:exact;print-color-adjust:exact}.brand{padding:0 0 15px}.brand img{width:155px}.brand .readonly{display:none}main{padding:18px 0;max-width:none}.project-heading h1{font-size:24px}.metadata{margin:18px 0}.metrics{margin:15px 0;gap:10px}.metrics>div{padding:10px}.metrics strong{font-size:22px}.tools,.view-controls,dialog,footer,.updated{display:none!important}.workspace{border:0;padding:0;box-shadow:none}.workspace h2{font-size:19px}.gantt-scroll,.table-scroll{overflow:visible;max-height:none;border-radius:0}.gantt{width:100%!important;font-size:9px}.gantt col{width:auto!important}.gantt col:nth-child(n+5){width:var(--print-width)!important}.gantt col:nth-child(1){width:21%!important}.gantt col:nth-child(2){width:14%!important}.gantt col:nth-child(3),.gantt col:nth-child(4){width:5%!important}.gantt th,.gantt td{padding:4px;font-size:8px}.gantt thead{position:static;display:table-header-group}.gantt thead th{font-size:7px}.gantt .task-name{font-size:9px}.gantt small{font-size:7px}.gantt tr{break-inside:avoid}.gantt .track-cell{padding:0}.budget{min-width:0;font-size:10px}.budget th,.budget td{padding:8px}.budget thead th{font-size:9px}.budget small{font-size:8px}.budget tr,.task-card,.metrics>div{break-inside:avoid}.budget tfoot{display:table-row-group}.bar-label{font-size:7px}.hint,.legend{font-size:9px}.legend{gap:12px}.observations{break-inside:avoid}.task-card button{color:#111}button{border:0}}

.project-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.project-metrics .overall-progress{background:#edf5fb;border-color:#b8cfe3}.overall-progress strong{color:var(--blue)}.overall-progress>small{margin-top:6px}@media(max-width:900px){.project-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.project-metrics .overall-progress{grid-row:span 2}}@media(max-width:550px){.project-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.project-metrics .overall-progress{grid-row:auto;grid-column:1/-1}}@media print{.project-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.project-metrics .overall-progress{grid-row:auto;grid-column:auto}.overall-progress>small{font-size:9px}}
