.ag-timeline { --ag-tl-ink:#0c2348; color:var(--ag-tl-ink); min-width:0; }
.ag-timeline .ag-tl-intro { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 20px 12px; }
.ag-tl-intro>div { display:grid; gap:4px; flex:0 0 auto; }
.ag-tl-intro strong { font-size:17px; }
.ag-tl-intro span,.ag-tl-intro p { font-size:12px; color:#536a8a; line-height:1.5; }
.ag-tl-intro p { max-width:510px; margin:0; }
.ag-timeline .ag-tl-warning { margin:0 20px 12px; padding:12px; border:1px solid #f5cc91; background:#fff7eb; border-radius:10px; color:#774709; font-size:13px; }
.ag-tl-key { padding:0 20px 12px; display:flex; flex-wrap:wrap; gap:8px 18px; font-size:11px; color:#536a8a; }
.ag-tl-key span { display:inline-flex; gap:6px; align-items:center; }
.ag-tl-key i { width:12px; height:12px; border:1px solid #bac7d7; border-radius:3px; }
.ag-tl-closed-key,.ag-tl-closed { background:repeating-linear-gradient(135deg,#edf1f6,#edf1f6 5px,#e4eaf2 5px,#e4eaf2 6px); }
.ag-tl-block-key { background:#dfe7f1; border:1px dashed #566f90!important; }
.ag-timeline .ag-tl-empty { margin:0; padding:8px 20px 14px; font-size:13px; color:#536a8a; }
/* Full-height timeline: vertical gestures scroll the page, never a nested panel. */
.ag-tl-scroll { overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; overscroll-behavior-y:auto; border-top:1px solid #d8e2ef; border-bottom:1px solid #d8e2ef; position:relative; isolation:isolate; }
.ag-tl-scroll:focus-visible { outline:3px solid #ff971c; outline-offset:-3px; }
.ag-timeline .ag-tl-board { display:flex; width:min-content; min-width:100%; align-items:stretch; }
.ag-tl-clock { width:58px; flex:0 0 58px; position:sticky; left:0; z-index:4; background:white; border-right:1px solid #d8e2ef; }
.ag-tl-heading { min-height:64px; height:64px; padding:10px; display:flex; flex-direction:column; justify-content:center; gap:3px; background:#f5f8fc; border-bottom:1px solid #cfdbea; position:sticky; top:0; z-index:3; box-sizing:border-box; overflow:hidden; }
.ag-tl-heading b { font-size:13px; line-height:1.3; overflow-wrap:anywhere; }
.ag-tl-heading span { font-size:10px; line-height:1.4; color:#536a8a; }
.ag-tl-clock .ag-tl-heading { font-size:11px; z-index:5; }
.ag-tl-hours,.ag-tl-canvas { position:relative; height:var(--ag-tl-height); }
.ag-tl-hours time { position:absolute; right:8px; font-size:11px; line-height:16px; background:white; font-variant-numeric:tabular-nums; }
.ag-timeline .ag-tl-column { flex:1 0 220px; min-width:max(220px,calc(var(--ag-tl-lanes)*118px)); border-right:1px solid #d8e2ef; }
.ag-timeline-week .ag-tl-column { flex-basis:152px; min-width:max(152px,calc(var(--ag-tl-lanes)*104px)); }
.ag-tl-canvas { background:repeating-linear-gradient(to bottom,transparent 0px,transparent 35px,#eaf0f7 35px,#eaf0f7 36px,transparent 36px,transparent 71px,#cfdbea 71px,#cfdbea 72px); }
.ag-tl-closed { position:absolute; left:0; right:0; opacity:.65; pointer-events:none; }
.ag-tl-event,.ag-tl-block { position:absolute; z-index:1; display:flex; flex-direction:column; gap:2px; overflow:hidden; padding:3px 6px; border:1px solid #bad2ee; border-left:3px solid #3489d1; border-radius:6px; background:#eef6ff; color:#102b50; box-sizing:border-box; text-decoration:none; font-size:12px; line-height:1.3; }
.ag-tl-event time,.ag-tl-block time { font-size:10px; font-weight:600; white-space:nowrap; }
.ag-tl-event strong { font-size:12px; line-height:1.3; }
.ag-tl-event span,.ag-tl-event small { font-size:10px; line-height:1.35; }
.ag-tl-event.status-line-2 { background:#e9f8ef; border-color:#a1d5b5; border-left-color:#21875a; }
.ag-tl-event.status-line-3 { background:#f0edfa; border-color:#cbbde6; border-left-color:#7854b4; }
.ag-tl-event.status-line-4 { background:#fff0ef; border-color:#efc0bd; border-left-color:#c6433b; text-decoration:line-through; }
.ag-tl-event.status-line-5 { background:#fff6e7; border-color:#e9d3ac; border-left-color:#b07a1c; }
.ag-tl-event:hover,.ag-tl-event:focus-visible,.ag-tl-block:focus-visible { outline:2px solid #163d70; outline-offset:-2px; z-index:2; }
.ag-tl-event.ag-tl-short { padding-top:1px; padding-bottom:1px; gap:0; }
.ag-tl-short { display:block; white-space:nowrap; }
.ag-tl-short strong { display:inline; font-size:10px; margin-left:4px; }
.ag-tl-short span,.ag-tl-short small { display:none; }
.ag-tl-block { background:repeating-linear-gradient(135deg,#e6ecf4,#e6ecf4 7px,#dce4ef 7px,#dce4ef 8px); border:1px dashed #657d9c; color:#344d70; }
.ag-tl-unknown { position:absolute; top:3px; right:6px; color:#6b7790; font-size:10px; }
.ag-tl-days { display:none; }
.ag-tl-readable { margin:14px 20px; font-size:13px; }
.ag-tl-readable summary { cursor:pointer; min-height:40px; display:flex; align-items:center; font-weight:600; color:#17487b; }
.ag-tl-readable summary::before { content:'▸'; margin-right:8px; }
.ag-tl-readable[open] summary::before { content:'▾'; }
.ag-tl-readable section { border-top:1px solid #e0e8f2; padding:10px 0; }
.ag-tl-readable h3 { font-size:13px; margin:0 0 6px; }
.ag-tl-readable a { display:flex; align-items:center; min-height:44px; padding:8px; color:#17487b; overflow-wrap:anywhere; }
.ag-tl-readable p { font-size:12px; margin:4px 0; color:#536a8a; }
.ag-tl-help .ag-tl-key { padding:10px 0 4px; }
/* Visual copy of the existing row, aligned by agenda-timeline.js during page scrolling. */
.ag-tl-floating-heading { position:fixed; z-index:15; overflow:hidden; background:#f5f8fc; color:#0c2348; border-bottom:1px solid #cfdbea; box-shadow:0 3px 8px #102d5012; }
.ag-tl-floating-heading[hidden] { display:none; }
.ag-tl-floating-heading .ag-tl-floating-cell { position:absolute; top:0; margin:0; border-right:1px solid #d8e2ef; }
.ag-tl-floating-heading .ag-tl-floating-cell[hidden] { display:none; }
.ag-tl-floating-heading .ag-tl-floating-clock { left:0; z-index:5; font-size:11px; }
.ag-tl-floating-heading .ag-tl-floating-cell b { font-size:13px; line-height:1.3; overflow-wrap:anywhere; }
.ag-tl-floating-heading .ag-tl-floating-cell span { font-size:10px; line-height:1.4; color:#536a8a; }
@media(max-width:900px) {
    .ag-timeline .ag-tl-intro { align-items:flex-start; flex-direction:column; gap:4px; padding:10px 12px 8px; }
    .ag-tl-intro>div { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
    .ag-tl-intro strong { font-size:15px; }
    .ag-tl-intro span,.ag-tl-intro p { font-size:11px; }
    .ag-timeline .ag-tl-empty { padding:0 12px 8px; font-size:12px; }
    .ag-tl-key { padding:0 12px 10px; }
    .ag-tl-key span:last-child { width:100%; }
    .ag-timeline .ag-tl-warning { margin:0 12px 10px; }
    .ag-tl-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; padding:4px 10px 12px; }
    .ag-tl-days a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:50px; color:#415c81; text-decoration:none; border:1px solid #d7e2f1; border-radius:9px; font-size:10px; }
    .ag-tl-days b { font-size:16px; }
    .ag-tl-days small { font-size:9px; }
    .ag-tl-days [aria-current=date] { background:#173f73; color:white; border-color:#173f73; }
    .ag-timeline-week .ag-tl-column:not(.ag-tl-selected) { display:none; }
    .ag-timeline-week .ag-tl-column { min-width:max(230px,calc(var(--ag-tl-lanes)*118px)); }
    .ag-tl-readable { margin:10px 12px; }
    .ag-tl-clock { width:48px; flex-basis:48px; }
    .ag-tl-heading { padding:8px; }
    .ag-tl-hours time { right:5px; font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .ag-timeline * { scroll-behavior:auto!important; } }

/* Four bounded lines fit a one-hour slot; segment numbering shares the time row. */
.ag-timeline .ag-tl-event { gap:1px;padding:3px 5px;min-width:0; }
.ag-tl-event .ag-tl-event-heading { display:flex;align-items:center;gap:4px;min-width:0;flex:none;height:12px;line-height:12px; }
.ag-tl-event .ag-tl-event-heading time { font-size:9px;line-height:12px;flex:none; }
.ag-tl-event .ag-tl-part { display:inline;font-size:8px;line-height:12px;font-style:normal;color:inherit;background:none;padding:0;white-space:nowrap;flex:none; }
.ag-tl-event .ag-tl-state { flex:none;margin-left:auto;width:5px;height:5px;min-width:5px;border-radius:50%;background:currentColor; }
.ag-tl-event>strong,.ag-tl-event>.ag-tl-service,.ag-tl-event>.ag-tl-professional { display:block;flex:none;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0; }
.ag-tl-event>strong { font-size:11px;line-height:14px; }
.ag-tl-event>.ag-tl-service,.ag-tl-event>.ag-tl-professional { font-size:10px;line-height:12px; }
.ag-tl-event.ag-tl-medium>.ag-tl-professional { display:none; }
.ag-tl-event.ag-tl-short { display:flex;flex-direction:row;align-items:center;gap:4px;padding-top:0;padding-bottom:0; }
.ag-tl-event.ag-tl-short>strong { flex:1;font-size:10px;line-height:12px;margin:0; }
.ag-tl-event.ag-tl-short>.ag-tl-service,.ag-tl-event.ag-tl-short>.ag-tl-professional { display:none; }
.ag-tl-event.ag-tl-short .ag-tl-state,.ag-tl-event.ag-tl-short .ag-tl-part { display:none; }
.ag-tl-event.status-line-1 .ag-tl-state { color:#1474e5; }.ag-tl-event.status-line-2 .ag-tl-state { color:#10a875; }.ag-tl-event.status-line-3 .ag-tl-state { color:#7854b4; }.ag-tl-event.status-line-4 .ag-tl-state { color:#c6433b; }.ag-tl-event.status-line-5 .ag-tl-state { color:#b07a1c; }
