/* GENERATED from web-assets/figures/gantt/gantt.css (47c1234b9ca1). Edit the source there, then run figures/sync.mjs. */
/* Gantt (V-22). Structure and colour; type sizes stay with the site. Colours and sizes come from --gt-*
   custom properties with neutral fallbacks: --gt-fill (bars, default --accent), --gt-track, --gt-on-fill
   (bar labels), --gt-ink (ticks, axis), --gt-alert (spans, now marker), --gt-bar (bar height), --gt-gap
   (row gap). Tones (gt__b--<tone>, gt__mk--<tone>) are the site's to colour. */
.gt { display: grid; grid-template-columns: minmax(0, var(--gt-label, 5fr)) repeat(var(--gt-cols, 12), 1fr);
      column-gap: 0; row-gap: var(--gt-gap, 1rem); align-items: center; width: 100%; }
.gt__ax { text-align: right; color: var(--gt-ink, inherit); }
.gt__h { text-align: right; justify-self: end; color: var(--gt-ink, inherit); white-space: nowrap; }
.gt__h--start { text-align: left; justify-self: start; }   /* a label wider than its unit hangs off the tick, not the unit */
.gt__l { min-width: 0; }
.gt__s { display: block; font-weight: 400; font-size: .82em; opacity: .8; }
.gt__tr { height: var(--gt-bar, 1.5rem); border-radius: 999px; background: var(--gt-track, rgba(127,127,127,.12)); }
/* Bars grow from their own left edge, the unit the work starts: the growth reads as time passing. */
.gt__b { height: var(--gt-bar, 1.5rem); border-radius: 999px; background: var(--gt-fill, var(--accent, #2aa1aa));
         transform-origin: left center; display: flex; align-items: center; justify-content: center; min-width: 0; overflow: hidden; }
.gt__bl { padding: 0 .7em; color: var(--gt-on-fill, #fff); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .8em; font-weight: 700; }
/* A mark sits on the end of its unit: a zero-width box at the end of its span carries the dot and label. */
.gt__mk { justify-self: end; position: relative; width: 0; height: var(--gt-bar, 1.5rem); }
.gt__mk i { position: absolute; left: 0; top: 50%; width: calc(.62 * var(--gt-bar, 1.5rem)); aspect-ratio: 1; border-radius: 50%;
            transform: translate(-50%, -50%); background: var(--gt-fill, var(--accent, #2aa1aa)); box-shadow: 0 0 0 2px var(--gt-ground, #fff); }
.gt__ml { position: absolute; bottom: 100%; left: 0; transform: translateX(-50%); padding-bottom: .2em; white-space: nowrap;
          font-size: .78em; font-weight: 700; line-height: 1.15; text-align: center; color: var(--gt-ink, inherit); }
.gt__ml small { display: block; font-weight: 400; }
/* A span: a bracket under the bars naming a window or a gap. */
.gt__sp { border-top: 2px dashed var(--gt-alert, #b42318); padding-top: .25em; text-align: center; color: var(--gt-alert, #b42318); font-weight: 700; font-size: .82em; }
.gt__now { align-self: stretch; position: relative; pointer-events: none; }
.gt__now::before { content: ""; position: absolute; top: 0; bottom: 0; left: var(--gt-at); border-left: 2px dashed var(--gt-alert, #b42318); }
.gt__now span { position: absolute; left: var(--gt-at); bottom: 100%; transform: translateX(-50%); font-size: .72em; font-weight: 700;
                letter-spacing: .08em; color: var(--gt-alert, #b42318); white-space: nowrap; }
@media print { .gt__b { transform: none !important; } .gt__mk, .gt__sp, .gt__now { opacity: 1 !important; } }
/* gt--stack (data.stack): on a phone each row's label stands above its bars at full width, so a
   48-column chart keeps readable labels instead of a sliver of a column. */
@media (max-width: 640px) {
  .gt--stack { grid-template-columns: 0 repeat(var(--gt-cols, 12), minmax(0, 1fr)); }
  .gt--stack .gt__ax { display: none; }
  .gt--stack .gt__l { grid-column: 2 / -1; align-self: start; padding: 0 0 calc(var(--gt-bar, 1.5rem) + .5em);
                      position: relative; z-index: 1; background: linear-gradient(var(--gt-ground, #fff), var(--gt-ground, #fff)) top / 100% calc(100% - var(--gt-bar, 1.5rem) - .5em) no-repeat; }
  .gt--stack .gt__h--minor { display: none; }
  .gt--stack .gt__tr, .gt--stack .gt__b, .gt--stack .gt__mk { align-self: end; }
  .gt--stack .gt__ml { display: none; }
}
