.pm-gantt{width:100%;max-width:100%;min-width:0;color:#344f74}
.pm-gantt-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.pm-gantt-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pm-gantt-toolbar .button{min-height:38px;padding:7px 11px;font-size:12px}
.pm-gantt-scale,.pm-gantt-jump{display:flex;align-items:center;gap:8px;font-size:12px;color:#5c7393}
.pm-gantt-scale select,.pm-gantt-jump input{height:38px;border:1px solid #d6e4f6;border-radius:7px;background:white;color:#345a8d;font:inherit;padding:6px 10px;max-width:155px;min-width:0}
.pm-gantt-scale select{min-width:112px}.pm-gantt-jump{margin-left:4px}
.pm-gantt-check{display:flex;align-items:center;gap:6px;font-size:12px;min-height:38px;cursor:pointer;margin-right:3px}
.pm-gantt-check input{width:16px;height:16px;accent-color:#3374c7}
.pm-gantt-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;font-size:12px;color:#7487a1}
.pm-gantt-caption strong{display:block;font-size:14px;font-weight:600;color:#345d90;margin-bottom:2px;font-variant-numeric:tabular-nums}
.pm-gantt-caption span{font-size:11px}.pm-gantt-scroll-hint{white-space:nowrap}
.pm-gantt-viewport{width:100%;max-width:100%;overflow:auto;max-height:min(72vh,740px);border:1px solid #dce7f5;border-radius:12px;background:#fff;overscroll-behavior:contain;scrollbar-color:#bed1e9 #f3f7fd;scrollbar-width:thin;isolation:isolate;scroll-padding:74px 0 0 var(--name-width)}
.pm-gantt-viewport:focus-visible{outline:3px solid #9dc4f6;outline-offset:2px}
.pm-gantt-viewport::-webkit-scrollbar{height:10px;width:10px}.pm-gantt-viewport::-webkit-scrollbar-track{background:#f3f7fd}.pm-gantt-viewport::-webkit-scrollbar-thumb{background:#bed1e9;border:2px solid #f3f7fd;border-radius:8px}
.pm-gantt-table{table-layout:fixed;border-collapse:separate;border-spacing:0;margin:0;font-size:12px}
.pm-gantt-table th,.pm-gantt-table td{padding:0;text-align:left;vertical-align:middle;box-sizing:border-box}
.pm-gantt-table thead th{position:sticky;top:0;z-index:6;background:#f0f6ff;border-bottom:1px solid #dce7f5;height:72px;font-weight:400}
.pm-gantt-table .pm-gantt-corner{left:0;z-index:9;padding:13px 16px;border-right:1px solid #dce7f5;width:var(--name-width);box-shadow:3px 0 7px #32588b06}
.pm-gantt-corner strong{display:block;color:#345d8e;font-weight:600;font-size:13px}.pm-gantt-corner small{display:block;font-size:11px;color:#6e86a6;margin-top:4px}
.pm-gantt-name{position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid #dce7f5;border-bottom:1px solid #eaf0f8;box-shadow:3px 0 7px #32588b05;width:var(--name-width);max-width:var(--name-width);height:60px;font-weight:400}
.pm-gantt-label{display:flex;align-items:center;gap:2px;padding:8px 10px 8px calc(7px + var(--depth)*13px);height:60px;min-width:0}
.pm-gantt-fold,.pm-gantt-fold-space{flex:0 0 23px;width:23px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:5px;padding:0;color:#7295bf}
.pm-gantt-fold:hover{background:#e6f1ff}.pm-gantt-fold svg{width:14px;height:14px}
.pm-gantt-task{flex:1;min-width:0;overflow:hidden;border:0;background:transparent;padding:3px 0;text-align:left;color:#345779;cursor:pointer}
.pm-gantt-task-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:1.8}
.pm-gantt-wbs{font-size:10px;color:#8499b4;padding-right:7px;font-variant-numeric:tabular-nums}
.pm-gantt-task-meta{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7488a2;font-size:10px;line-height:1.9}
.pm-gantt-timing.early{color:#277452}.pm-gantt-timing.on-time{color:#3572b5}.pm-gantt-timing.late{color:#a5662c}.pm-gantt-timing.overdue{color:#b54d53}.pm-gantt-timing.today{color:#9a711e}
.pm-gantt-track{border-bottom:1px solid #eaf0f8;width:var(--timeline-width);height:60px;background:#fff}
.pm-gantt-lane{width:var(--timeline-width);height:59px;position:relative;background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--cell-width) - 1px),#eaf0f8 calc(var(--cell-width) - 1px),#eaf0f8 var(--cell-width))}
.pm-gantt-table.daily .pm-gantt-lane{background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--cell-width) - 1px),#eaf0f8 calc(var(--cell-width) - 1px),#eaf0f8 var(--cell-width)),repeating-linear-gradient(90deg,transparent 0,transparent var(--weekend-start),#f6f9fd var(--weekend-start),#f6f9fd var(--week-width));background-position:0 0,var(--weekend-offset) 0}
.pm-gantt-table tbody tr:hover .pm-gantt-name,.pm-gantt-table tbody tr:hover .pm-gantt-track{background-color:#f4f9ff}
.pm-gantt-summary .pm-gantt-name,.pm-gantt-summary .pm-gantt-track{background-color:#f7faff}
.pm-gantt-summary .pm-gantt-task-title{font-weight:600;color:#365b8e}
.pm-gantt-axis{height:72px;position:relative}
.pm-gantt-bands{height:28px;position:relative;border-bottom:1px solid #dfeaf8}
.pm-gantt-band{position:absolute;top:0;height:28px;line-height:28px;padding-left:12px;border-right:1px solid #d8e5f6;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#456f9f;font-size:11px;font-weight:600}
.pm-gantt-ticks{display:flex;height:43px;background:#f8fbff}
.pm-gantt-tick{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #e3edf9;text-align:center;font-variant-numeric:tabular-nums;overflow:hidden;white-space:nowrap;line-height:1.4}
.pm-gantt-tick b{font-size:11px;font-weight:500;color:#56769c}.pm-gantt-tick small{font-size:10px;color:#8ba0ba}
.pm-gantt-tick.weekend{background:#eef4fc}.pm-gantt-tick.weekend b{color:#899db6}
.pm-gantt-tick.current{background:#e2eeff}.pm-gantt-tick.current b{color:#2463b2;font-weight:700}
.pm-gantt-table.has-today .pm-gantt-lane:after,.pm-gantt-table.has-today .pm-gantt-time-head:after{content:"";position:absolute;left:var(--today-x);top:0;bottom:-1px;width:1px;background:#e2a547;pointer-events:none;z-index:2}
.pm-gantt-table.has-today .pm-gantt-time-head:after{top:28px;bottom:0}
.pm-gantt-bar{position:absolute;top:18px;height:24px;border:1px solid #a8c7f0;border-radius:6px;background:#deecff;padding:0;overflow:hidden;z-index:1;--bar-fill:#6e9fdc;min-width:4px;box-shadow:0 1px 2px #2e67b00b}
.pm-gantt-bar:hover{filter:brightness(.97);box-shadow:0 2px 5px #376bae22}
.pm-gantt-fill{position:absolute;inset:0 auto 0 0;width:var(--completion);background:var(--bar-fill);opacity:.65;pointer-events:none}
.pm-gantt-bar-text{position:relative;z-index:1;display:block;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:21px;color:#264e7c;text-align:left}
.pm-gantt-bar.overdue{border-color:#d47d86;border-left-width:3px;background:#eaf2ff;--bar-fill:#82a6d5}
.pm-gantt-bar.early{background:#e6f6ed;border-color:#9acfb0;--bar-fill:#62ad87}.pm-gantt-bar.early .pm-gantt-bar-text{color:#205d43}
.pm-gantt-bar.on-time{background:#e1efff;border-color:#92b9e9;--bar-fill:#6b9dd7}
.pm-gantt-bar.late{background:#fff0e1;border-color:#dfba93;--bar-fill:#d2a475}.pm-gantt-bar.late .pm-gantt-bar-text{color:#784b21}
.pm-gantt-bar.cancelled{background:#eef1f5;border-color:#d2dae4;--bar-fill:#c2cbd8;opacity:.65}
.pm-gantt-bar.summary{height:10px;top:25px;border-radius:2px;background:#9ebbe1;border-color:#89acd8;--bar-fill:#537fb6;overflow:visible;box-shadow:none}
.pm-gantt-bar.summary:before,.pm-gantt-bar.summary:after{content:"";position:absolute;bottom:-4px;height:7px;width:3px;background:#89acd8}.pm-gantt-bar.summary:before{left:-1px}.pm-gantt-bar.summary:after{right:-1px}
.pm-gantt-bar.clipped-start{border-top-left-radius:0;border-bottom-left-radius:0}.pm-gantt-bar.clipped-end{border-top-right-radius:0;border-bottom-right-radius:0}
.pm-gantt-milestone{position:absolute;top:16px;height:28px;width:24px;padding:0;border:0;background:transparent;color:#6e8eb6;font-size:21px;line-height:28px;text-align:center;z-index:1}
.pm-gantt-milestone.early{color:#408969}.pm-gantt-milestone.on-time{color:#4c83c7}.pm-gantt-milestone.late{color:#ba8959}.pm-gantt-milestone.overdue{color:#bd626e}.pm-gantt-milestone.cancelled{color:#a3b0c1}
.pm-gantt-no-plan,.pm-gantt-outside{position:absolute;left:15px;top:19px;font-size:11px;color:#8499b4;line-height:22px;white-space:nowrap}
.pm-gantt-outside{border:0;padding:0 5px;background:#f4f8fe;border-radius:5px;color:#6286b4}
.pm-gantt-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:#6b83a4;margin-bottom:10px;flex-wrap:wrap}
.pm-gantt-pager button:disabled{cursor:default}
.pm-gantt-legend{display:flex;flex-wrap:wrap;gap:8px 17px;margin-top:15px;font-size:11px;color:#68809f;align-items:center}
.pm-gantt-legend span{display:inline-flex;align-items:center;gap:5px}.pm-gantt-legend i{height:9px;width:12px;border-radius:2px;display:inline-block;border:1px solid #afccef;background:#deecff}
.pm-gantt-legend i.progress{background:#83acdf;border-color:#83acdf}.pm-gantt-legend i.early{background:#b0d9c1;border-color:#8fc6a6}.pm-gantt-legend i.on-time{background:#a4c5ec;border-color:#7faade}.pm-gantt-legend i.late{background:#e8c7a7;border-color:#d7ae85}.pm-gantt-legend i.overdue{background:#eaf2ff;border-color:#d47d86;border-left-width:3px}.pm-gantt-legend i.today{background:#e2a547;border:0;width:2px;height:12px}
.pm-gantt-note{font-size:11px;color:#7b8eaa;margin:10px 0 0;line-height:1.8}
.pm-gantt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:767px){.pm-gantt-toolbar{gap:10px}.pm-gantt-tools{gap:7px}.pm-gantt-toolbar .button,.pm-gantt-scale select,.pm-gantt-jump input,.pm-gantt-check{min-height:44px}.pm-gantt-scale select,.pm-gantt-jump input{font-size:14px}.pm-gantt-jump{margin:0}.pm-gantt-check input{width:18px;height:18px}.pm-gantt-caption{align-items:flex-start}.pm-gantt-scroll-hint{display:none}.pm-gantt-caption strong{font-size:13px}.pm-gantt-viewport{max-height:65vh}.pm-gantt-label{padding-left:calc(3px + var(--depth)*7px);padding-right:7px}.pm-gantt-fold,.pm-gantt-fold-space{width:22px;flex-basis:22px}.pm-gantt-fold{height:42px}.pm-gantt-wbs{display:none}.pm-gantt-task-title{font-size:11px}.pm-gantt-task-meta{font-size:10px}.pm-gantt-corner small{font-size:10px}.pm-gantt-legend{gap:8px 12px}}
