/* ── Timeline-tilstanden »Bemanding« (16/10-2026) — personer på tværs af produktioner, med dagsplanen dag for dag inde i bookingerne ── */
.st-bar { position: absolute; top: 5px; height: 22px; border-radius: 5px; display: flex; align-items: center; gap: 6px; padding: 0 7px; font-size: 10.5px; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; box-sizing: border-box; cursor: pointer; z-index: 1; box-shadow: 0 1px 3px rgba(0,0,0,.35); }
.st-bar:hover { filter: brightness(1.12); z-index: 5; }
.st-bar.status-past { opacity: .45; }
.st-bar.status-upcoming { opacity: .8; border: 1px dashed rgba(255,255,255,.5); }
.st-bar.status-now { box-shadow: 0 0 0 2px var(--accent), 0 1px 3px rgba(0,0,0,.35); }
.st-bar.is-soon { outline: 2px dashed #f5c842; outline-offset: -2px; }
.st-bar.no-end { border-radius: 5px 0 0 5px; }
.st-bar--mini { top: 10px; height: 12px; padding: 0; font-size: 0; box-shadow: none; }
.st-bar--mini.status-now { box-shadow: 0 0 0 1px var(--accent); }
.st-bar--open { background: transparent !important; border: 1.5px dashed rgba(255,255,255,.38); color: var(--cream-mute); font-style: italic; font-weight: 600; box-shadow: none; }
.st-bar--open:hover { border-color: rgba(255,255,255,.6); }
.st-exp { margin-left: auto; flex: 0 0 auto; font-size: 10px; font-weight: 700; padding: 1px 5px; border-radius: 4px; background: rgba(0,0,0,.4); color: #fde9a8; cursor: pointer; }
.st-exp:hover { background: rgba(0,0,0,.6); }
.st-head .st-soon { flex: 0 0 auto; color: #f5c842; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.st-head .st-wish { flex: 0 0 auto; color: #cfe0ff; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.st-head .dp-n { margin-left: auto; font-size: 10.5px; color: var(--cream-mute); border: 1px solid var(--ink-5); border-radius: 4px; padding: 1px 6px; white-space: nowrap; }
.st-group .company-name { color: var(--cream); }
.st-group .dp-n { margin-left: auto; font-size: 10.5px; color: var(--cream-mute); border: 1px solid var(--ink-5); border-radius: 4px; padding: 1px 6px; }
.st-group.st-missing .company-name { color: #f5c842; }
.company-header-label.st-head.in-group { top: 32px; z-index: 2; background: var(--ink-3); padding-left: 24px; }
.grid-row.company-header-row.pa-head-row.in-group { top: 32px; z-index: 3; background: var(--ink-3); }
.st-co { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.25); }
.st-row .label-job { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.st-row .label-person { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.st-missing-row .label-person { color: #f5c842; }
.tl-chip-n { font-weight: 700; opacity: .75; margin-left: 2px; }
.tl-chip-clear { color: var(--cream); }
/* ── Dag for dag (16/10-2026, afløser Timeline-tilstanden Dagsplan): booking med dagsplan = RAMME i produktionens farve, dagene som felter indeni ── */
.st-bar.has-dp { border: 1.5px solid; padding: 0; background: transparent; }
.st-bar.has-dp.status-upcoming { border-style: dashed; }
.st-bar--mini.has-dp { border-width: 1px; }
.st-day { position: absolute; top: 0; bottom: 0; display: flex; align-items: center; padding: 0 4px; font-size: 10px; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; box-sizing: border-box; box-shadow: inset 1px 0 0 rgba(0,0,0,.35); z-index: 1; }
.st-day.k-marker, .st-day.k-number, .st-day.k-pct { opacity: .8; }
.st-day.k-shoot { background-image: linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)); }
.st-day.k-absence, .st-day.k-holiday, .st-day.k-note { background: rgba(255,255,255,.14); color: var(--cream-mute); font-weight: 600; }
.st-day.k-note { font-style: italic; }
.st-day.k-milestone { background: #e0b96a; color: #2a1d08; }
.st-day.k-otherprod { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.22) 0 4px, transparent 4px 8px); border: 1px dashed rgba(255,255,255,.55); cursor: pointer; }
.st-day.is-conflict { box-shadow: inset 0 0 0 2px #ff6b57; z-index: 2; }
.st-bar--mini .st-day { padding: 0; font-size: 0; }
.st-bar .st-exp { position: relative; z-index: 3; }
.st-head .st-conf { flex: 0 0 auto; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 4px; color: #ff9a86; background: rgba(217,72,44,.18); border: 1px solid rgba(217,72,44,.5); white-space: nowrap; }
/* Firma-gruppering: ⇄ samme person hos et andet firma (⚠ = bookingerne overlapper); fremhævning ved klik */
.st-head .st-xco { flex: 0 0 auto; font-family: inherit; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--ink-5); background: transparent; color: var(--cream-mute); cursor: pointer; white-space: nowrap; line-height: 1.4; }
.st-head .st-xco:hover { color: var(--cream); border-color: var(--cream-mute); }
.st-head .st-xco.is-warn { color: #ff9a86; border-color: rgba(217,72,44,.55); background: rgba(217,72,44,.14); }
.st-cogroup .st-co { margin-right: 2px; }
/* Firma → Stilling → Person (16/10): stillings-gruppen inde i firmaet rykkes ind, personerne under den endnu et hak */
.company-header-label.st-group.in-group { padding-left: 24px; top: 32px; z-index: 2; background: var(--ink-3); }
.company-header-label.st-head.in-group2 { padding-left: 40px; }
.label-row.st-row.in-group2 { padding-left: 50px; }
.label-row.st-linked { position: relative; }
.st-linked::after { content: ''; position: absolute; inset: 0; background: rgba(224,185,106,.3); pointer-events: none; z-index: 6; animation: stLinkFade 2.6s ease-out forwards; }
@keyframes stLinkFade { 0%, 45% { opacity: 1; } 100% { opacity: 0; } }
/* Forklaring i under-linjen */
.tl-subbar .st-leg { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--cream-mute); white-space: nowrap; }
.st-leg-sw { display: inline-block; width: 14px; height: 10px; border-radius: 2px; box-sizing: border-box; }
.st-leg-sw.is-frame { border: 1.5px solid var(--cream-mute); }
.st-leg-sw.is-work { background: var(--cream-mute); }
.st-leg-sw.is-abs { background: rgba(255,255,255,.14); border: 1px solid var(--ink-5); }
.st-leg-sw.is-other { background: repeating-linear-gradient(45deg, rgba(255,255,255,.3) 0 3px, transparent 3px 6px); border: 1px dashed rgba(255,255,255,.55); }
.st-leg-sw.is-ms { background: #e0b96a; }
.st-leg-sw.is-conf { box-shadow: inset 0 0 0 2px #ff6b57; }
/* Tom/hentende tilstand i gitteret (flyttet fra postplan.css 16/10): boksen ligger INDE i rækken (totalWidth), så sticky virker ved scroll */
.dp-empty { padding: 14px 16px; font-size: 13px; color: var(--cream-mute); line-height: 1.5; }
.dp-empty-row { height: auto; min-height: 0; display: block; }
.dp-empty-grid { position: sticky; left: 18px; width: min(560px, calc(100vw - 420px)); margin: 18px 0; padding: 14px 18px; border: 1px dashed var(--rule-2); border-radius: 10px; background: var(--ink-2); }
/* Tilstandens skjulte footere (som Postassistenter) */
#panel-timeline.tl-mode-staffing #addBtn { display: none; }
.tl-mode-staffing #footer-toggle-row, .tl-mode-staffing #capacity-band-rows, .tl-mode-staffing #model-band-rows,
.tl-mode-staffing #fcp-forecast, .tl-mode-staffing #migration-plan, .tl-mode-staffing #summary-inuse-row, .tl-mode-staffing #pa-headline-row, .tl-mode-staffing #pa-band-rows { display: none !important; }
.tl-mode-staffing .timeline-footer { max-height: none; overflow: visible; }
