/* RS Timeline v1.1.1: responsive collision-safe markers, with bounded line extensions. */
/* RS Timeline v1.0, shared visual geometry, token based. */
.rs-timeline__scroll{overflow-x:auto;overflow-y:hidden;padding:1rem 0 .5rem;scrollbar-width:thin}
.rs-timeline__track{display:grid;grid-template-columns:repeat(var(--rs-timeline-columns),minmax(120px,1fr));min-width:max(100%,calc(var(--rs-timeline-columns) * 120px));position:relative;align-items:start}
.rs-timeline__line{position:absolute;top:52px;left:calc(50% / var(--rs-timeline-columns) - 16px);right:calc(50% / var(--rs-timeline-columns) - 16px);height:3px;border-radius:3px;background:var(--rs-border-strong,#46525e);z-index:0;pointer-events:none}
.rs-timeline .rs-timeline__event{position:relative;z-index:1;display:grid;grid-template-rows:24px 56px minmax(25px,auto) auto;justify-items:center;align-items:center;gap:0;min-width:0;min-height:105px;width:100%;margin:0;padding:0 5px;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit;cursor:pointer;font:inherit;appearance:none;line-height:normal;transition:none}
.rs-timeline__label{grid-row:1;font-size:.76rem;line-height:1.1;white-space:nowrap}
.rs-timeline__dot{grid-row:2;display:block;box-sizing:border-box;width:min(var(--rs-timeline-dot,18px),calc(100% - 24px),38px);height:min(var(--rs-timeline-dot,18px),calc(100% - 24px),38px);flex:none;border:3px solid var(--rs-surface-1,#10171b);border-radius:50%;background:var(--rs-info,#79a9d7);box-shadow:0 0 0 1px var(--rs-border-strong,#647788);align-self:center;justify-self:center}
.rs-timeline__count{grid-row:3;font-size:.76rem;white-space:nowrap}
.rs-timeline__breakdown{grid-row:4;font-size:.68rem;text-align:center}
.rs-timeline .rs-timeline__event:disabled{opacity:.5;cursor:default}
.rs-timeline__event:disabled .rs-timeline__dot{width:8px;height:8px;background:var(--rs-surface-1,#10171b)}
.rs-timeline .rs-timeline__event[aria-expanded=true] .rs-timeline__dot{background:var(--rs-text-primary,#fff);box-shadow:0 0 0 3px var(--rs-info,#79a9d7)}
.rs-timeline .rs-timeline__event:focus-visible{outline:2px solid var(--rs-border-focus,#86c9ff);outline-offset:-2px}
.rs-timeline__detail[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.rs-timeline__event,.rs-timeline__dot{transition:none}}

/* Never let a marker exceed its grid cell, including narrow embedded layouts.
   Each period has at least 120px of track width; narrower viewports scroll.
   Long labels and breakdowns wrap within their own period rather than overlap. */
.rs-timeline .rs-timeline__event{box-sizing:border-box;max-width:100%;overflow:visible}
.rs-timeline__label,.rs-timeline__count,.rs-timeline__breakdown{box-sizing:border-box;max-width:100%;overflow-wrap:anywhere;text-align:center}
.rs-timeline__breakdown{white-space:normal}
.rs-timeline__dot{max-width:calc(100% - 24px);max-height:38px;aspect-ratio:1}

/* Track has a 120px minimum cell width, so 16px end extensions remain within the track. */

/* v1.2: published vs upcoming; token-only, shared across timeline consumers. */
.rs-timeline__event--upcoming .rs-timeline__dot{background:var(--rs-surface-1,#10171b);border-color:var(--rs-info,#79a9d7);box-shadow:0 0 0 1px var(--rs-info,#79a9d7)}
.rs-timeline__event--mixed .rs-timeline__dot{background:linear-gradient(135deg,var(--rs-info,#79a9d7) 50%,var(--rs-surface-1,#10171b) 50%)}
.rs-timeline .rs-timeline__event--upcoming[aria-expanded=true] .rs-timeline__dot,.rs-timeline .rs-timeline__event--mixed[aria-expanded=true] .rs-timeline__dot{box-shadow:0 0 0 3px var(--rs-info,#79a9d7)}
@media(hover:hover){.rs-timeline .rs-timeline__event:not(:disabled):hover .rs-timeline__dot{box-shadow:0 0 0 3px var(--rs-info,#79a9d7)}}

/* v1.2.1: align first/last year markers with the timeline's visible edges.
   Keep a minimum 120px per period; overflow remains horizontally scrollable. */
.rs-timeline__track{
  display:flex;
  justify-content:space-between;
  min-width:max(100%,calc(var(--rs-timeline-columns) * 120px));
}
.rs-timeline .rs-timeline__event{flex:0 0 120px}
.rs-timeline .rs-timeline__event:first-of-type,
.rs-timeline .rs-timeline__event:last-of-type{flex-basis:60px}
.rs-timeline .rs-timeline__event:first-of-type > *{justify-self:start;text-align:left}
.rs-timeline .rs-timeline__event:last-of-type > *{justify-self:end;text-align:right}
.rs-timeline__line{left:16px;right:16px}

/* v1.2.2: orange status for mixed and future-only periods.
   Shared Design System warning token; no module-specific color override. */
.rs-timeline__event--mixed .rs-timeline__dot{background:var(--rs-warning,#e99a3b);border-color:var(--rs-surface-1,#10171b);box-shadow:0 0 0 1px var(--rs-border-strong,#647788)}
.rs-timeline__event--upcoming .rs-timeline__dot{background:var(--rs-surface-1,#10171b);border-color:var(--rs-warning,#e99a3b);box-shadow:0 0 0 1px var(--rs-warning,#e99a3b)}
.rs-timeline .rs-timeline__event--mixed[aria-expanded=true] .rs-timeline__dot,.rs-timeline .rs-timeline__event--upcoming[aria-expanded=true] .rs-timeline__dot{box-shadow:0 0 0 3px var(--rs-warning,#e99a3b)}
@media(hover:hover){.rs-timeline .rs-timeline__event--mixed:not(:disabled):hover .rs-timeline__dot,.rs-timeline .rs-timeline__event--upcoming:not(:disabled):hover .rs-timeline__dot{box-shadow:0 0 0 3px var(--rs-warning,#e99a3b)}}

/* v1.2.3: active year uses the shared Design System success green.
   Keep the year status ring/outline and hover behavior unchanged. */
.rs-timeline .rs-timeline__event[aria-expanded="true"] .rs-timeline__dot,
.rs-timeline .rs-timeline__event--mixed[aria-expanded="true"] .rs-timeline__dot,
.rs-timeline .rs-timeline__event--upcoming[aria-expanded="true"] .rs-timeline__dot{
  background:var(--rs-success,#1aa260);
}

/* v1.3: desktop adaptive tracks never exceed their containing width. */
@media (min-width: 768px) {
 .rs-timeline[data-adaptive="true"] .rs-timeline__scroll { overflow-x: hidden; }
 .rs-timeline[data-adaptive="true"] .rs-timeline__track { width: 100%; min-width: 0; }
 .rs-timeline[data-adaptive="true"] .rs-timeline__event { flex: 0 1 120px; }
 .rs-timeline[data-adaptive="true"] .rs-timeline__event:first-of-type,
 .rs-timeline[data-adaptive="true"] .rs-timeline__event:last-of-type { flex-basis: 60px; }
}

/* v1.3.2: keep edge markers in place; let their captions extend inward.
   The edge cells may be 60px wide while period labels are longer. */
.rs-timeline .rs-timeline__event:first-of-type .rs-timeline__label,
.rs-timeline .rs-timeline__event:first-of-type .rs-timeline__count,
.rs-timeline .rs-timeline__event:last-of-type .rs-timeline__label,
.rs-timeline .rs-timeline__event:last-of-type .rs-timeline__count {
  width: max-content;
  max-width: none;
  white-space: nowrap;
}
.rs-timeline .rs-timeline__event:first-of-type .rs-timeline__label,
.rs-timeline .rs-timeline__event:first-of-type .rs-timeline__count { justify-self: start; text-align: left; }
.rs-timeline .rs-timeline__event:last-of-type .rs-timeline__label,
.rs-timeline .rs-timeline__event:last-of-type .rs-timeline__count { justify-self: end; text-align: right; }

/* v1.3.3: small right-edge breathing room on adaptive desktop tracks only.
   Do not change the first marker or the timeline's period grouping. */
@media (min-width: 768px) {
  .rs-timeline[data-adaptive="true"] .rs-timeline__track > .rs-timeline__event:last-of-type {
    margin-right: 5px;
  }
}
