/* Program Management — the Integrated Master Schedule pages (public/ims/ims.js) */
.ims-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 11.5px; color: var(--muted); }
.ims-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.ims-scroll { overflow-x: auto; }
.ims-gantt { display: block; max-width: none; font-family: var(--font); }   /* its own width: the app's svg { max-width:100% } would squash it and leave the height */
.ims-gantt .ims-grid { stroke: var(--line); stroke-width: 1; } .ims-gantt .ims-grid.y { stroke: var(--line3); }
.ims-gantt .ims-ax { fill: var(--faint); font-size: 10.5px; }
.ims-gantt .ims-phase { fill: var(--well); } .ims-gantt .ims-ph { fill: var(--brand-accent); font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ims-gantt .ims-lbl { fill: var(--fg2); font-size: 11.5px; } .ims-gantt .ims-lbl.crit { fill: var(--strong); font-weight: 600; } .ims-gantt .ims-lbl.done { fill: var(--faint); text-decoration: line-through; }
.ims-gantt .ims-bar.crit, .ims-gantt .ims-pt.crit { stroke: var(--strong); stroke-width: 1.5; }
.ims-gantt .ims-bar.rec { opacity: .55; }
.ims-gantt .ims-ghost { fill: none; stroke: var(--faint); stroke-width: 1.2; stroke-dasharray: 3 2; }
.ims-gantt .ims-today { stroke: var(--bad); stroke-width: 1.5; stroke-dasharray: 4 3; }
.ims-t td { vertical-align: top; }
.ims-t td.nowrap { white-space: nowrap; }
.ims-t td small { display: block; color: var(--sub-fg); font-size: 11.5px; }
.ims-t td .ims-crit { color: var(--gold); font-weight: 600; }
.ims-t tr.crit td.ims-title b, .ims-t tr.crit td.ims-title input { color: var(--strong); }
.ims-t tr.added td { background: var(--gold-tint); }
.ims-t input, .ims-t select { width: 100%; min-width: 0; font: inherit; font-size: 13px; padding: 5px 7px; border: 1px solid var(--line2); border-radius: var(--r2); background: var(--field); color: var(--fg); }
.ims-t td.ims-title { min-width: 280px; } .ims-t td.ims-src { min-width: 130px; }
.ims-t input[type=date] { width: 138px; } .ims-t select { max-width: 160px; }
.ims-t label.chk { display: inline-flex; margin: 0; } .ims-t label.chk input { width: auto; }
.ims-source { white-space: pre-wrap; font: 12.5px/1.5 ui-monospace, Menlo, Consolas, monospace; background: var(--well); border: 1px solid var(--line); border-radius: var(--r2); padding: 12px; max-height: 560px; overflow: auto; color: var(--fg2); }
@media print { .ims-timeline-panel { break-inside: avoid; } .ims-t input, .ims-t select { border: 0; padding: 0; background: transparent; } .ims-t td:last-child, .ims-t th:last-child { display: none; } }
