.gantt-screen .filter-bar{display:grid;gap:12px;padding:18px 0;border-bottom:1px solid var(--color-rule);margin-bottom:18px}.gantt-screen .filter-row{display:grid;grid-template-columns:88px 1fr auto;align-items:center;gap:16px}.gantt-screen .filter-row .lbl{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--color-ink)}.gantt-screen .chip-set{display:flex;flex-wrap:wrap;gap:6px}.gantt-screen .chip{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--color-margin);background:transparent;border:1px solid var(--color-rule);border-radius:2px;padding:6px 10px;cursor:pointer;transition:color .16s,border-color .16s,background .16s;line-height:1;display:inline-flex;align-items:center;gap:6px}.gantt-screen .chip:hover{color:var(--color-ink);border-color:var(--color-ink)}.gantt-screen .chip.on{background:var(--color-ink);color:var(--color-page);border-color:var(--color-ink)}.gantt-screen .chip .ct{font-family:var(--font-tabular);font-size:9px;color:var(--color-watermark);font-weight:500}.gantt-screen .chip.on .ct{color:hsla(0,0%,98%,.55)}.gantt-screen .seg{display:inline-flex;border:1px solid var(--color-rule);border-radius:2px;overflow:hidden}.gantt-screen .seg button{background:transparent;border:none;padding:7px 12px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-margin);cursor:pointer;border-right:1px solid var(--color-rule);transition:background .16s,color .16s;line-height:1}.gantt-screen .seg button:last-child{border-right:none}.gantt-screen .seg button:hover{color:var(--color-ink)}.gantt-screen .seg button.on{background:var(--color-ink);color:var(--color-page)}.gantt-screen .filter-tools{display:inline-flex;gap:10px;align-items:center}.gantt-screen .stats{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--color-rule);border-radius:var(--radius);margin-bottom:18px;background:var(--color-page)}.gantt-screen .stats>div{padding:14px 18px;border-right:1px solid var(--color-rule);display:flex;flex-direction:column;gap:6px}.gantt-screen .stats>div:last-child{border-right:none}.gantt-screen .stats .lbl{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:var(--color-watermark);display:inline-flex;align-items:center;gap:6px}.gantt-screen .stats .swatch{width:8px;height:8px;border-radius:50%}.gantt-screen .stats .val{font-family:var(--font-serif);font-size:28px;font-weight:500;color:var(--color-ink);line-height:1;letter-spacing:-.01em}.gantt-screen .stats .sub{font-family:var(--font-mono);font-size:10px;color:var(--color-margin);letter-spacing:.05em}.gantt-screen .gantt-wrap{position:relative;border:1px solid var(--color-rule);border-radius:var(--radius);background:var(--color-page);overflow:hidden}.gantt-screen .gantt{display:grid;grid-template-columns:300px 1fr;position:relative}.gantt-screen .axis-corner{border-bottom:1px solid var(--color-ink);border-right:1px solid var(--color-rule);background:var(--color-paper);padding:12px 16px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.gantt-screen .axis-corner .row-label-title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--color-ink)}.gantt-screen .axis-corner .count{font-family:var(--font-tabular);font-size:11px;color:var(--color-margin)}.gantt-screen .axis{position:relative;border-bottom:1px solid var(--color-ink);background:var(--color-paper);display:grid}.gantt-screen .axis-month{border-left:1px solid var(--color-rule);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--color-margin);display:grid;grid-template-rows:14px 14px;align-content:center;padding:10px 8px;gap:4px;min-width:0;overflow:hidden}.gantt-screen .axis-month:first-child{border-left:none}.gantt-screen .axis-month.quarter-start{border-left:1px solid var(--color-ink)}.gantt-screen .axis-month .month-name{color:var(--color-ink);font-weight:500;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:clip}.gantt-screen .axis-month .year{font-family:var(--font-tabular);font-size:9px;color:var(--color-watermark);line-height:14px;letter-spacing:.04em}.gantt-screen .axis-month.quarter-start .month-name:before{content:attr(data-quarter) " · ";font-family:var(--font-mono);font-weight:600;color:var(--color-ink);letter-spacing:.15em}.gantt-screen[data-axis=compact] .axis-month{grid-template-rows:14px}.gantt-screen[data-axis=compact] .axis-month .year{display:none}.gantt-screen[data-axis=compact] .axis-corner{padding-bottom:14px}.gantt-screen[data-axis=verbose] .axis-month .year:before{content:"20"}.gantt-screen[data-axis=verbose] .axis-month .year{letter-spacing:.02em}.gantt-screen .gantt-group{grid-column:1/-1;background:var(--color-ink);color:var(--color-page);padding:9px 16px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.25em;font-weight:600;border-bottom:1px solid var(--color-rule);display:flex;justify-content:space-between;align-items:center;gap:10px}.gantt-screen .gantt-group .grp-count{font-family:var(--font-tabular);font-weight:400;color:hsla(0,0%,98%,.6);letter-spacing:.1em}.gantt-screen .gantt-label{padding:11px 16px;border-bottom:1px solid var(--color-rule);border-right:1px solid var(--color-rule);background:var(--color-page);display:flex;flex-direction:column;gap:4px;min-width:0}.gantt-screen .gantt-label .reference{font-family:var(--font-tabular);font-size:11px;color:var(--color-ink);font-weight:500;letter-spacing:.02em}.gantt-screen .gantt-label .name{font-family:var(--font-sans);font-size:13px;color:var(--color-ink);line-height:1.3;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-screen .gantt-label .ctx{font-family:var(--font-mono);font-size:9px;color:var(--color-margin);text-transform:uppercase;letter-spacing:.12em;display:flex;gap:6px;align-items:center}.gantt-screen .gantt-label .ctx .sep{color:var(--color-watermark)}.gantt-screen .gantt-lane{position:relative;border-bottom:1px solid var(--color-rule);background:var(--color-page);height:64px}.gantt-screen .gantt-lane:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(to right,var(--color-rule) 0,var(--color-rule) 1px,transparent 1px,transparent calc(100% / var(--months, 12)));pointer-events:none;opacity:.55}.gantt-screen[data-density=dense] .gantt-lane{height:44px}.gantt-screen[data-density=dense] .gantt-label{padding:7px 12px}.gantt-screen[data-density=dense] .gantt-label .name{font-size:12px}.gantt-screen[data-density=dense] .gantt-label .ctx{display:none}.gantt-screen[data-density=dense] .bar{height:22px;padding:0 8px;gap:4px;font-size:10px}.gantt-screen .bar{position:absolute;top:50%;transform:translateY(-50%);height:28px;border-radius:2px;display:inline-flex;align-items:center;padding:0 10px;gap:8px;font-family:var(--font-sans);font-size:11px;color:var(--color-page);overflow:hidden;cursor:pointer;border:1px solid transparent;transition:filter .16s,box-shadow .16s,transform .16s;z-index:2;line-height:1;text-align:left;background:var(--color-ink)}.gantt-screen .bar:hover{filter:brightness(.92);box-shadow:0 1px 0 0 var(--color-rule),0 4px 10px hsla(0,0%,4%,.12);transform:translateY(calc(-50% - 1px));z-index:4}.gantt-screen .bar .reference{font-family:var(--font-tabular);font-weight:600;font-size:11px;flex-shrink:0}.gantt-screen .bar .label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-weight:500;letter-spacing:.005em}.gantt-screen .bar .pct{font-family:var(--font-tabular);font-size:10px;opacity:.7;flex-shrink:0}.gantt-screen .bar[data-status=met]{background:var(--color-met);color:var(--color-page)}.gantt-screen .bar[data-status=failed]{background:var(--color-failed);color:var(--color-page)}.gantt-screen .bar[data-status=expiring]{background:var(--color-expiring-dark);color:var(--color-page)}.gantt-screen .bar[data-status=expired]{background:var(--color-expired);color:var(--color-page)}.gantt-screen .bar[data-status=pending]{background:var(--color-page);color:var(--color-ink);border:1px dashed var(--color-margin)}.gantt-screen .bar.cont-left:before,.gantt-screen .bar.cont-right:after{font-family:var(--font-tabular);font-size:11px;flex-shrink:0;opacity:.8}.gantt-screen .bar.cont-left:before{content:"← "}.gantt-screen .bar.cont-right:after{content:" →"}.gantt-screen[data-bartext=white] .bar{color:var(--color-page)!important}.gantt-screen[data-bartext=white] .bar[data-status=pending]{background:var(--color-ink);color:var(--color-page)!important;border-color:var(--color-ink);border-style:solid}.gantt-screen[data-bartext=ink] .bar{color:var(--color-ink)!important}.gantt-screen[data-bartext=ink] .bar[data-status=met]{background:var(--color-met-soft);border:1px solid var(--color-met)}.gantt-screen[data-bartext=ink] .bar[data-status=failed]{background:var(--color-failed-soft);border:1px solid var(--color-failed)}.gantt-screen[data-bartext=ink] .bar[data-status=expiring]{background:var(--color-expiring-soft);border:1px solid var(--color-expiring)}.gantt-screen[data-bartext=ink] .bar[data-status=expired]{background:var(--color-expired-soft);border:1px solid var(--color-expired)}.gantt-screen[data-bars=mono] .bar{background:var(--color-ink);color:var(--color-page);border-color:transparent}.gantt-screen[data-bars=mono] .bar[data-status=pending]{background:var(--color-page);color:var(--color-ink);border:1px dashed var(--color-margin)}.gantt-screen[data-bars=mono] .bar[data-status=failed]:after{content:" ✕";opacity:1}.gantt-screen[data-bars=mono] .stats .swatch{background:var(--color-ink)!important}.gantt-screen .now-line{position:absolute;top:0;bottom:0;width:1px;background:var(--color-ink);z-index:5;pointer-events:none}.gantt-screen .now-line:before{content:"";position:absolute;top:-5px;left:-4px;width:9px;height:9px;background:var(--color-ink);border-radius:50%}.gantt-screen .now-marker{position:absolute;z-index:6;transform:translateX(-50%);background:var(--color-ink);color:var(--color-page);padding:4px 10px;font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.2em;font-weight:600;white-space:nowrap;border-radius:2px;pointer-events:none}.gantt-screen .now-marker .date{font-family:var(--font-tabular);font-weight:400;letter-spacing:.05em;margin-left:6px;opacity:.7}.gantt-screen .empty{padding:80px 24px;text-align:center;color:var(--color-margin);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.2em;grid-column:1/-1}.gantt-screen .scrim{position:fixed;inset:0;background:hsla(0,0%,4%,.32);z-index:60;opacity:0;pointer-events:none;transition:opacity .18s}.gantt-screen .scrim.open{opacity:1;pointer-events:auto}.gantt-screen .sheet{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:100vw;background:var(--color-page);border-left:1px solid var(--color-rule);z-index:61;transform:translateX(100%);transition:transform .22s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column}.gantt-screen .sheet.open{transform:translateX(0)}.gantt-screen .sheet-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--color-rule)}.gantt-screen .sheet-head .crumbs{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--color-margin)}.gantt-screen .sheet-close{background:transparent;border:1px solid var(--color-rule);border-radius:2px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;color:var(--color-margin);cursor:pointer;transition:color .16s,border-color .16s}.gantt-screen .sheet-close:hover{color:var(--color-ink);border-color:var(--color-ink)}.gantt-screen .sheet-body{padding:24px;overflow-y:auto;flex:1}.gantt-screen .sheet h2{font-family:var(--font-serif);font-weight:500;font-size:28px;line-height:1.15;margin:10px 0 4px;color:var(--color-ink)}.gantt-screen .sheet-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px 0 20px;border-bottom:1px solid var(--color-rule);margin:8px 0 18px}.gantt-screen .kv-row{display:flex;flex-direction:column;gap:4px}.gantt-screen .kv-row .label-tiny{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-watermark)}.gantt-screen .kv-row .val{font-family:var(--font-tabular);font-size:12px;color:var(--color-ink);font-weight:500}.gantt-screen .timebar-graphic{position:relative;height:36px;border:1px solid var(--color-rule);border-radius:2px;margin-top:6px;background:repeating-linear-gradient(to right,var(--color-rule) 0,var(--color-rule) 1px,transparent 1px,transparent 25%)}.gantt-screen .timebar-graphic .gbar{position:absolute;top:6px;bottom:6px;border-radius:2px}.gantt-screen .timebar-graphic .now{position:absolute;top:-2px;bottom:-2px;width:1px;background:var(--color-ink)}.gantt-screen .timebar-graphic .now:before{content:"Now";position:absolute;top:-16px;left:50%;transform:translateX(-50%);background:var(--color-ink);color:var(--color-page);padding:1px 5px;font-family:var(--font-mono);font-size:8px;text-transform:uppercase;letter-spacing:.15em;border-radius:2px}.gantt-screen .sheet pre.src{background:var(--color-paper);border:1px solid var(--color-rule);border-radius:3px;padding:14px 16px;font-family:var(--font-tabular);font-size:12px;line-height:1.65;color:var(--color-clause);white-space:pre-wrap;margin:8px 0 0}.gantt-screen .status-pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink)}.gantt-screen .status-pill .dot{width:8px;height:8px;border-radius:50%}.gantt-screen .tweaks{position:fixed;right:20px;bottom:20px;width:260px;background:var(--color-page);border:1px solid var(--color-ink);border-radius:3px;z-index:70;box-shadow:0 1px 0 0 var(--color-rule)}.gantt-screen .tweaks-head{padding:10px 14px;border-bottom:1px solid var(--color-rule);background:var(--color-paper);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--color-ink)}.gantt-screen .tweaks-body{padding:12px 14px;display:grid;gap:14px}.gantt-screen .tweak-row{display:grid;gap:6px}.gantt-screen .tweak-row .lbl-t{font-family:var(--font-mono);font-size:9px;color:var(--color-margin);text-transform:uppercase;letter-spacing:.2em}.gantt-screen .tweak-row .seg button{padding:7px 10px}