.journey-map { min-width: 0; --journey-blue: #326cb1; --journey-purple: #8057a4; --journey-green: #287650; --journey-gray: #61717d; --journey-amber: #a17032; }
.journey-map [hidden] { display: none !important; }
.journey-map-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; margin-bottom: 8px; }
.journey-map-heading h3 { margin: 0 0 4px; color: var(--color-primary); font: 700 19px var(--font-heading); }
.journey-map-heading p { margin: 0; color: var(--color-muted); font-size: 12px; }
.journey-map-pending-link { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, var(--color-primary) 40%, transparent); }
.journey-map-pending-link:hover { text-decoration-color: currentColor; }
.journey-map-pending-link:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; border-radius: 2px; }
.journey-map-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; min-width: 0; }
.calendar-dragging:has(.calendar-zoom-slot:not(:empty)) .journey-map-tools .calendar-zoom { display: none; }
.journey-map-views { display: flex; gap: 2px; min-width: 0; border: 0; border-radius: 7px; background: var(--color-soft); margin: 0; padding: 3px; }
.journey-map-views label { cursor: pointer; }
.journey-map-views label > span { display: flex; align-items: center; box-sizing: border-box; min-height: 30px; padding: 4px 9px; border: 1px solid transparent; border-radius: 5px; color: var(--color-primary); font-size: 12px; font-weight: 600; white-space: nowrap; }
.journey-map-views input:checked + span { color: var(--color-on-primary); background: var(--color-primary-surface); border-color: var(--color-primary); }
.journey-map-views input:focus-visible + span { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.journey-map-help > summary { width: 34px; padding: 4px; }
.journey-map-help .filter-popover { width: 310px; }
.journey-map-help p { margin: 0; color: var(--color-muted); font-size: 12px; line-height: 1.5; }
.journey-map-help strong { color: var(--color-primary); }
.journey-map-capacity-heading { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-bottom: 5px; font-size: 11px; color: var(--color-muted); }
.journey-map-capacity-heading > span:first-child { display: flex; align-items: center; gap: 6px; color: var(--color-primary); }
.journey-map-capacity-heading .icon { width: 17px; height: 17px; }
.journey-map-notice { display: flex; align-items: baseline; gap: 7px; margin: 8px 0; color: #805617; font-size: 12px; line-height: 1.5; }
.journey-map-notice > span { font-weight: 800; }
.journey-map-scroll { max-width: 100%; overflow: auto; overscroll-behavior-inline: contain; border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); scrollbar-width: thin; scrollbar-color: #a5b7a7 transparent; }
.journey-map-scroll:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.journey-map-canvas { position: relative; min-width: 100%; overflow-x: clip; width: var(--map-canvas-width, max(100%, calc(var(--map-minutes) * var(--map-minute-width)))); --map-row-height: 124px; --map-minute-width: 2px; }
.journey-map-time-header { position: relative; z-index: 5; background: var(--color-surface); transform: translateY(var(--map-header-offset, 0px)); }
.journey-map-axis { position: relative; height: 33px; background: var(--color-soft); border-bottom: 1px solid var(--color-border); }
.journey-map-tick { position: absolute; left: var(--map-left); top: 0; height: 100%; padding: 9px 5px 7px; color: var(--color-muted); font-size: 10px; line-height: 16px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.journey-map-tick--last { transform: translateX(-100%); }
.journey-map-capacity { position: relative; height: 30px; background: var(--color-bg); border-bottom: 1px solid var(--color-border); }
.journey-map-capacity-segment { position: absolute; top: 0; bottom: 0; left: var(--map-left); width: var(--map-width); display: flex; align-items: center; justify-content: center; min-width: 0; box-sizing: border-box; padding: 0 5px; border-inline-end: 1px solid #fff9; color: #2d6550; background: #e4efe8; font-size: 10px; font-weight: 700; white-space: nowrap; }
.journey-map-capacity-segment > span { overflow: hidden; text-overflow: ellipsis; }
.journey-map-capacity-segment--full { color: #684a18; background: #f2e3bd; }
.journey-map-capacity-segment--shortage { color: #8d2424; background: #f7d7d2; }
.journey-map-capacity-segment--recorded { color: #4c5a65; background: #e9edf0; }
.journey-map-capacity-segment--closed { color: #73786e; background: repeating-linear-gradient(135deg, #ebeee8 0 5px, #e1e5dc 5px 7px); }
.journey-map-capacity-segment--uncertain { background-image: repeating-linear-gradient(135deg, transparent 0 6px, #ffffff66 6px 8px); }
.journey-map-tracks { position: relative; min-height: 92px; height: calc(max(1, var(--map-rows)) * var(--map-row-height) + 18px); background: repeating-linear-gradient(to bottom, transparent 0 calc(var(--map-row-height) - 1px), #19362a08 calc(var(--map-row-height) - 1px) var(--map-row-height)); }
.journey-map-gridline { position: absolute; top: 0; bottom: 0; left: var(--map-left); width: 1px; background: #19362a0b; pointer-events: none; }
.journey-map-block { --map-tone: var(--journey-blue); --map-tint: #e5effb; --map-ink: #214979; position: absolute; left: var(--map-left); top: calc(var(--map-row) * var(--map-row-height) + 7px); width: var(--map-width); height: calc(var(--map-row-height) - 10px); min-width: 3px; box-sizing: border-box; border: 1px solid color-mix(in srgb, var(--map-tone) 55%, var(--color-surface)); border-inline-start: 3px solid var(--map-tone); border-radius: 7px; color: var(--map-ink); background: linear-gradient(110deg, var(--map-tint), color-mix(in srgb, var(--map-tint) 60%, var(--color-surface))); box-shadow: 0 1px 2px #19362a0a; }
.journey-map-block--called { --map-tone: var(--journey-purple); --map-tint: #f1e8f8; --map-ink: #543673; }
.journey-map-block--live { --map-tone: var(--journey-green); --map-tint: #e7f2e9; --map-ink: #1c5238; }
.journey-map-block--finished { --map-tone: var(--journey-gray); --map-tint: #e9edf0; --map-ink: #34424e; }
.journey-map-block--suspended { --map-tone: var(--journey-amber); --map-tint: #fff1dc; --map-ink: #694413; }
.journey-map-block--estimated { border-style: dashed; }
.journey-map-block--warning { border-color: #b74435; border-width: 2px; }
.journey-map-block--point { width: 4px; min-width: 4px; border-radius: 2px; }
.journey-map-elapsed { position: absolute; inset: 0 auto 0 0; width: var(--map-actual); max-width: 100%; border-radius: 4px 0 0 4px; background: #2c805027; pointer-events: none; }
.journey-map-open { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 4px; width: 100%; height: 100%; min-width: 0; padding: 6px 7px; color: inherit; overflow: hidden; text-decoration: none; box-sizing: border-box; border-radius: inherit; }
.journey-map-open:hover { color: inherit; background: #fff4; }
.journey-map-open:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 2px; z-index: 3; }
.has-map-js .journey-map-open[data-map-move] { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.has-map-js [data-map-pan] { user-select: none; -webkit-user-select: none; }
.has-map-js.is-scrollable [data-map-pan] { cursor: grab; }
.has-map-js .journey-map-scroll.is-panning :is([data-map-pan], [data-map-pan] *) { cursor: grabbing; }
.journey-map-block.is-moving .journey-map-open[data-map-move] { cursor: grabbing; }
.journey-map-hold { position:fixed; z-index:100; display:grid; gap:5px; width:min(14rem, calc(100vw - 16px)); box-sizing:border-box; padding:7px 10px; border:1px solid var(--color-border); border-radius:7px; background:var(--color-surface); color:var(--color-primary); box-shadow:0 3px 10px color-mix(in srgb, var(--color-text) 15%, transparent); font-size:12px; pointer-events:none; }
.journey-map-hold-progress { height:4px; overflow:hidden; border-radius:3px; background:var(--color-soft); }
.journey-map-hold-progress::after { content:""; display:block; height:100%; background:var(--color-primary); transform-origin:left; animation:map-hold-progress var(--map-hold-duration) linear both; }
@keyframes map-hold-progress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.journey-map-open, .journey-map-open * { -webkit-user-drag: none; }
.journey-map-alert { display: inline-grid; place-items: center; width: 14px; height: 14px; color: #9c2e20; background: #fff6; border: 1px solid currentColor; border-radius: 50%; font-size: 10px; font-weight: 800; }
.journey-map-teams { display: grid; gap: 2px; width: 100%; min-width: 0; font-size: 11px; font-weight: 700; line-height: 1.3; }
.journey-map-team-side { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.journey-map-match-heading { display: grid; flex: none; gap: 2px; width: 100%; min-width: 0; font-size: 10px; line-height: 1.3; }
.journey-map-match-heading > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.journey-map-match-heading > span:first-child { font-weight: 700; }
.journey-map-vs { color: var(--color-muted); font-size: .85em; font-weight: 400; }
.journey-map-bar-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 7px; width: 100%; min-width: 0; }
.journey-map-bar-time, .journey-map-score { display: block; max-width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; line-height: 1.3; font-variant-numeric: tabular-nums; }
.journey-map-score { width: fit-content; box-sizing: border-box; padding: 1px 5px; border: 1px solid #61717d38; border-radius: 4px; background: #fff8; color: #34424e; font-weight: 700; }
.journey-map-reference { display: block; flex: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; line-height: 1.3; font-variant-numeric: tabular-nums; }
.journey-map-block:is(:hover, :focus-within) { z-index: 3; border-color: var(--map-tone); box-shadow: 0 2px 5px #19362a18; }
.journey-map-block--warning:is(:hover, :focus-within) { border-color: #b74435; }
.journey-map .journey-map-block.is-located { z-index: 3; outline: 2px solid var(--color-primary); outline-offset: 2px; opacity: 1; filter: none; }
.journey-map:has(.journey-map-conflicts) .journey-map-canvas { --map-row-height: 164px; }
.journey-map-block:has(.journey-map-conflicts) .journey-map-open { padding-bottom: 30px; }
.journey-map-conflicts, .journey-map-locate { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 24px; padding: 2px 3px; box-sizing: border-box; border: 1px solid #b7443566; border-radius: 5px; background: #fff9; color: #982f23; font-size: 10px; font-weight: 700; line-height: 1.2; text-decoration: none; overflow: hidden; white-space: nowrap; }
.journey-map-conflicts:is(:hover, :focus-visible) { color: #7e251c; background: #fff; border-color: currentColor; }
.journey-map-block.calendar-match-emphasis { z-index: 2; border-color: var(--overlap-ink); box-shadow: inset 0 0 0 2px var(--overlap-ink); }
.journey-map-now { position: absolute; z-index: 4; left: var(--map-left); top: 26px; bottom: 0; width: 2px; background: #c14438; pointer-events: none; }
.journey-map-now-label { position: absolute; z-index: 1; top: 1px; left: var(--map-left); padding: 3px 6px; border-radius: 4px; color: white; background: #b43a30; font-size: 10px; font-weight: 750; transform: translateX(-50%); pointer-events: none; }
.journey-map-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; align-items: baseline; margin-top: 10px; }
.journey-map-legend { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 0; margin: 0; list-style: none; color: var(--color-muted); font-size: 10px; }
.journey-map-legend li { display: flex; align-items: center; gap: 5px; }
.journey-map-dot { width: 7px; height: 7px; flex: none; border-radius: 2px; }
.journey-map-dot--scheduled { background: var(--journey-blue); }
.journey-map-dot--called { background: var(--journey-purple); }
.journey-map-dot--live { background: var(--journey-green); }
.journey-map-dot--finished { background: var(--journey-gray); }
.journey-map-dot--suspended { background: var(--journey-amber); }
.journey-map-legend-estimated { color: var(--color-text); font-size: 13px; line-height: 1; }
.journey-map-row-note { color: var(--color-muted); font-size: 10px; }
.journey-map-scroll-hint { display: none; }
.journey-map.is-scrollable .journey-map-scroll-hint { display: inline; }
.journey-map-short { margin-top: 12px; font-size: 12px; }
.journey-map-short summary { color: var(--color-primary); cursor: pointer; }
.journey-map-short ul { display: grid; gap: 4px; margin: 8px 0 0; padding: 0; list-style: none; }
.journey-map-short a { display: block; padding: 10px 0; line-height: 1.5; }
.journey-map-unplaced-meta { margin: 0 0 5px; color: var(--color-muted); font-size: 11px; }
.journey-map-warning { margin: 8px 0 0; color: #8b4723; font-size: 12px; line-height: 1.5; }
.journey-map-unplaced { margin-top: 22px; }
.journey-map-unplaced-heading { display: flex; align-items: baseline; gap: 9px; margin-bottom: 9px; }
.journey-map-unplaced-heading h4 { margin: 0; color: var(--color-primary); font-size: 15px; }
.journey-map-unplaced-heading > span { color: var(--color-muted); font-size: 11px; }
.journey-map-unplaced-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 9px; }
.journey-map-unplaced-card { position: relative; min-width: 0; padding: 12px 14px; }
.journey-map-unplaced-open { color: var(--color-text); font-size: 13px; font-weight: 650; text-decoration: none; line-height: 1.5; overflow-wrap: anywhere; }
.journey-map-unplaced-open:hover { text-decoration: underline; }
.journey-map-unplaced-time { margin: 9px 0 4px; font-size: 11px; color: var(--color-text); }
.journey-map-unplaced-reason { margin: 0; color: var(--color-muted); font-size: 11px; line-height: 1.5; }
.journey-map-unplaced-card > .text-link { display: inline-block; margin-top: 9px; font-size: 12px; }
.journey-map-dragging .journey-map-block.is-moving { opacity: .4; }
.journey-map-dragging .journey-map-scroll { outline: 2px solid var(--color-border-accent); outline-offset: 2px; }
.journey-map-drop-preview { position: absolute; z-index: 6; left: var(--map-left); top: calc(var(--map-header-height, 63px) + var(--map-row) * var(--map-row-height) + 7px); width: var(--map-width); min-width: 3px; height: calc(var(--map-row-height) - 10px); display: flex; align-items: center; justify-content: center; padding: 4px; box-sizing: border-box; border: 2px dashed var(--color-primary); border-radius: 7px; color: var(--color-primary); background: color-mix(in srgb, var(--color-soft) 87%, transparent); font-size: 11px; font-weight: 750; white-space: nowrap; pointer-events: none; }
@media (max-width: 600px) {
  .journey-map-open { padding-inline: 4px; }
  .journey-map-heading { gap: 6px; margin-bottom: 8px; }
  .journey-map-tools { display: grid; grid-template-columns: minmax(0, 1fr) 44px; width: 100%; gap: 4px 8px; }
  .journey-map-views { justify-self: start; }
  .journey-map-help { grid-column: 2; grid-row: 1; }
  .journey-map-help > summary { width: 44px; min-height: 44px; }
  .journey-map-tools .calendar-zoom { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .journey-map-heading h3 { font-size: 17px; }
  .journey-map-views label > span { min-height: 44px; box-sizing: border-box; display: flex; align-items: center; }
  .journey-map-capacity-heading { font-size: 10px; }
  .journey-map-legend { gap: 6px 10px; }
  .journey-map:has(.journey-map-conflicts) .journey-map-canvas { --map-row-height: 184px; }
  .journey-map-block:has(.journey-map-conflicts) .journey-map-open { padding-bottom: 49px; }
  .journey-map-conflicts, .journey-map-locate { min-height: 44px; }
}
@media (pointer: coarse) {
  .journey-map-unplaced-card > .text-link { min-height: 40px; align-content: center; }
}
@media (max-width: 600px), (pointer: coarse) {
  .journey-map-views label > span { min-height: 44px; }
  .journey-map-help > summary { min-height: 44px; }
}

.journey-map-actions { position: absolute; z-index: 2; right: 4px; left: 4px; bottom: 4px; display: flex; justify-content: flex-end; gap: 4px; }
.journey-map-locate { color: var(--color-primary); border-color: #456b5c55; }
.journey-map-locate:hover { background: white; }
.journey-map-block--capacity { border-color: #b18432; border-inline-start-color: #b18432; }
.journey-map-capacity-mark { color: #805a16; font-size: 9px; font-weight: 700; }
.journey-map-block.calendar-match-muted, .journey-map-unplaced-card.calendar-match-muted { opacity: .32; filter: grayscale(.9); }
.journey-map-block.calendar-match-muted:is(:hover, :focus-within), .journey-map-unplaced-card.calendar-match-muted:is(:hover, :focus-within) { opacity: .8; }
.calendar-overlap-problem, .calendar-overlap-pending { --overlap-ink: #456b5c; }
.journey-map-block.journey-map-selected, .journey-map-unplaced-card.journey-map-selected { outline: 3px solid var(--color-primary); outline-offset: 2px; box-shadow: inset 0 0 0 1px var(--color-primary); }
.journey-map-clear-focus { position: absolute; z-index: 4; top: 4px; right: 4px; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; box-sizing: border-box; padding: 3px; border: 1px solid #456b5c55; border-radius: 5px; color: var(--color-primary); background: #ffffffdb; text-decoration: none; }
.journey-map-clear-focus .icon { width: 14px; height: 14px; }
.journey-map-clear-focus:hover { background: white; border-color: currentColor; }
.journey-map-clear-focus:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.journey-map-block:has(.journey-map-clear-focus) :is(.journey-map-match-heading, .journey-map-teams:first-child), .journey-map-unplaced-card:has(.journey-map-clear-focus) .journey-map-unplaced-meta { padding-inline-end: 26px; box-sizing: border-box; }
@media (pointer: coarse) {
  .journey-map-clear-focus { width: 32px; height: 32px; }
  .journey-map-block:has(.journey-map-clear-focus) :is(.journey-map-match-heading, .journey-map-teams:first-child), .journey-map-unplaced-card:has(.journey-map-clear-focus) .journey-map-unplaced-meta { padding-inline-end: 34px; }
}

.journey-map-drag-guide { position: fixed; z-index: 1040; left: 50%; bottom: 16px; transform: translateX(-50%); display: flex; flex-wrap: wrap; align-items: center; gap: 7px 16px; width: max-content; max-width: calc(100vw - 24px); box-sizing: border-box; margin: 0; padding: 10px 12px; border: 1px solid var(--color-border); border-radius: 7px; box-shadow: 0 3px 12px #19362a26; background: var(--color-soft); font-size: 12px; color: var(--color-primary); pointer-events: none; }
.journey-map-guide-key { display: inline-flex; align-items: center; gap: 5px; font-weight: 700; }
.journey-map-guide-swatch { width: 10px; height: 10px; border-radius: 2px; }
.journey-map-guide-swatch.is-available { background: #328358; }
.journey-map-guide-swatch.is-blocked { background: #bd463a; }
.journey-map-start-guide { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: #e5e8e366; }
.journey-map-start-guide--header { position: absolute; inset: 25px 0 auto; z-index: 2; height: 8px; background: #e1e4df; }
.journey-map-start-span { position: absolute; top: 0; bottom: 0; }
.journey-map-start-span.is-available { background: #32835824; }
.journey-map-start-span.is-blocked { background: repeating-linear-gradient(135deg, #bd463a16 0 6px, #bd463a27 6px 8px); }
.journey-map-start-span.is-current { background: #526a7c20; }
.journey-map-start-guide--header .is-available { background: #32835899; }
.journey-map-start-guide--header .is-blocked { background: repeating-linear-gradient(135deg, #bd463a88 0 6px, #bd463aaa 6px 8px); }
.journey-map-start-guide--header .is-current { background: #8b9b9b; }
.journey-map-dragging .journey-map-block { z-index: 1; }
.journey-map-drop-preview { overflow: hidden; text-overflow: ellipsis; }
.journey-map-drop-preview[data-state="available"] { color: #165331; border-color: #28764b; background: #ccebd9ed; }
.journey-map-drop-preview[data-state="blocked"] { color: #8f261c; border-color: #b43b30; background: #f8d9d4ed; }
.journey-map-drop-preview:is([data-state="pending"], [data-state="current"]) { color: #53635d; border-color: #819088; background: #e8eee8ed; }
.journey-map-drag-ghost[data-state="blocked"] { border-color: #b43b30; background: #fff0ed; }
.journey-map-drag-ghost[data-state="blocked"] > span { color: #8f261c; font-weight: 700; }
.journey-map-drag-ghost[data-state="available"] { border-color: #28764b; background: #e9f6ee; }

.journey-map.has-drag-conflicts :is(.journey-map-block, .journey-map-unplaced-card):not(.is-moving):not(.is-drag-conflict) { opacity: .2; filter: grayscale(.95); }
.journey-map.has-drag-conflicts :is(.journey-map-block, .journey-map-unplaced-card).is-drag-conflict { opacity: 1; filter: none; z-index: 3; border-color: #b43b30; box-shadow: 0 0 0 2px #b43b3080; outline: none; }
.journey-map.has-drag-conflicts :is(.journey-map-block, .journey-map-unplaced-card).is-drag-capacity { border-color: #a67520; box-shadow: 0 0 0 2px #a6752070; }
.journey-map.has-drag-conflicts .journey-map-block.is-moving { opacity: 1; filter: none; }
.journey-map [data-map-player].is-drag-shared, .journey-map-drag-ghost [data-map-player].is-drag-shared { padding-inline: 2px; border-radius: 3px; background: #ffe3ad; color: #7c291d; font-weight: 800; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 2px; }
.journey-map [data-map-player].is-drag-shared mark, .journey-map-drag-ghost [data-map-player].is-drag-shared mark { padding: 0; color: inherit; background: transparent; }
.journey-map [data-map-player].is-drag-shared-possible, .journey-map-drag-ghost [data-map-player].is-drag-shared-possible { text-decoration-style: dashed; background: #f7edc9; color: #745019; }

.journey-map-block { scroll-margin-top: 85px; }
.journey-map:has(.journey-map-block--proposed) .journey-map-canvas { --map-row-height: 130px; }
.journey-map-block--proposed { --map-tone: #28764b; --map-tint: #ddf1e3; --map-ink: #164e31; border: 2px dashed #28764b; box-shadow: 0 0 0 3px #28764b1c; }
.journey-map .journey-map-block--proposed .journey-map-open { gap: 3px; padding-block: 5px; }
.journey-map-proposed-label { display: block; flex: none; font-size: 9px; line-height: 1.2; font-weight: 800; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.journey-map-proposal { margin-bottom: 16px; padding: 14px; border: 1px solid #90b39a; border-inline-start: 4px solid #28764b; border-radius: 8px; background: #edf5ee; color: #194f35; }
.journey-map-proposal-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 14px; }
.journey-map-proposal-heading > span { padding: 3px 7px; border-radius: 5px; background: #d7e9dd; font-size: 11px; font-weight: 700; }
.journey-map-proposal ul { display: grid; gap: 8px; padding: 0; margin: 12px 0; list-style: none; }
.journey-map-proposal li > a { display: grid; gap: 4px; color: inherit; font-size: 12px; text-decoration: none; }
.journey-map-proposal li > a:hover strong { text-decoration: underline; }
.journey-map-proposal li span, .journey-map-proposal small { color: var(--color-muted); }
.journey-map-proposal p { margin: 7px 0; font-size: 12px; }
.journey-map-proposal-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.journey-map-proposal-actions .button { min-height: 38px; padding: 7px 10px; font-size: 12px; }
.journey-map .journey-map-proposal-actions [form="calendar-proposal-confirm"] { display: inline-flex; }
.journey-map-proposal--invalid { background: #fff6e6; border-color: #ba8a3b; color: #805617; }
.journey-map-proposal [data-map-proposal-feedback] { margin-top: 12px; font-weight: 600; }
@media (max-width: 600px) {
  .journey-map:has(.journey-map-block--proposed) .journey-map-canvas { --map-row-height: 150px; }
  .journey-map-proposal-actions .button { min-height: 44px; }
}

.journey-map-alert--possible { width: auto; height: auto; padding: 2px 5px; border-radius: 4px; color: #805315; font-size: 10px; }
.journey-map-block--warning.journey-map-block--possible { border-color: #b18432; border-style: dashed; }

.journey-map-issues { display: grid; flex: none; gap: 3px; min-width: 0; }
.journey-map-issue { display: block; width: fit-content; max-width: 100%; box-sizing: border-box; padding: 2px 5px; border: 1px solid #b7443555; border-radius: 4px; background: #fff5f0e8; color: #982f23; font-size: 10px; line-height: 1.3; font-weight: 700; overflow-wrap: anywhere; }
.journey-map-issue--possible { border-color: #b1843266; background: #fff5dfe8; color: #805315; }
.journey-map:has(.journey-map-issues) .journey-map-canvas { --map-row-height: calc(164px + var(--map-issue-rows, 1) * 34px); }
.journey-map-help .filter-popover { --dropdown-max-height: min(70vh, 560px); }
@media (max-width: 600px) {
  .journey-map:has(.journey-map-issues) .journey-map-canvas { --map-row-height: calc(184px + var(--map-issue-rows, 1) * 38px); }
}

@media screen {
  :root[data-court-theme^='dark-'] .journey-map {
    --journey-blue: var(--color-info-border);
    --journey-purple: var(--color-called-border);
    --journey-green: var(--color-success-border);
    --journey-gray: var(--color-muted);
    --journey-amber: var(--color-warning-border);
  }
  :root[data-court-theme^='dark-'] .journey-map-scroll { scrollbar-color: var(--color-border-accent) transparent; }
  :root[data-court-theme^='dark-'] .journey-map-start-guide--header { background: var(--color-bg); }
  :root[data-court-theme^='dark-'] .journey-map-capacity-segment { color: var(--color-success-text); background: var(--color-success-bg); border-inline-end-color: var(--color-border); }
  :root[data-court-theme^='dark-'] .journey-map-capacity-segment--full { color: var(--color-warning-text); background: var(--color-warning-bg); }
  :root[data-court-theme^='dark-'] .journey-map-capacity-segment--shortage { color: var(--color-danger-text); background: var(--color-danger-bg); }
  :root[data-court-theme^='dark-'] .journey-map-capacity-segment--recorded { color: var(--color-muted); background: var(--color-soft); }
  :root[data-court-theme^='dark-'] .journey-map-capacity-segment--closed { color: var(--color-muted); background: repeating-linear-gradient(135deg, var(--color-bg) 0 5px, var(--color-surface-tint) 5px 7px); }
  :root[data-court-theme^='dark-'] .journey-map-capacity-segment--uncertain { background-image: repeating-linear-gradient(135deg, transparent 0 6px, #ffffff20 6px 8px); }
  :root[data-court-theme^='dark-'] .journey-map-tracks { background: repeating-linear-gradient(to bottom, transparent 0 calc(var(--map-row-height) - 1px), var(--collection-rule) calc(var(--map-row-height) - 1px) var(--map-row-height)); }
  :root[data-court-theme^='dark-'] .journey-map-gridline { background: var(--collection-rule); }
  :root[data-court-theme^='dark-'] .journey-map-block { --map-tint: var(--color-info-bg); --map-ink: var(--color-info-text); }
  :root[data-court-theme^='dark-'] .journey-map-block--called { --map-tint: var(--color-called-bg); --map-ink: var(--color-called-text); }
  :root[data-court-theme^='dark-'] :is(.journey-map-block--live, .journey-map-block--proposed) { --map-tint: var(--color-success-bg); --map-ink: var(--color-success-text); }
  :root[data-court-theme^='dark-'] .journey-map-block--finished { --map-tint: var(--color-soft); --map-ink: var(--color-muted); }
  :root[data-court-theme^='dark-'] .journey-map-block--suspended { --map-tint: var(--color-warning-bg); --map-ink: var(--color-warning-text); }
  :root[data-court-theme^='dark-'] .journey-map-open:hover { background: #fff1; }
  :root[data-court-theme^='dark-'] :is(.journey-map-score, .journey-map-locate, .journey-map-clear-focus) { background: var(--color-surface); border-color: var(--color-border); }
  :root[data-court-theme^='dark-'] .journey-map-score { color: var(--color-text); }
  :root[data-court-theme^='dark-'] :is(.journey-map-locate, .journey-map-clear-focus):hover { background: var(--color-soft); }
  :root[data-court-theme^='dark-'] :is(.journey-map-notice, .journey-map-warning, .journey-map-capacity-mark) { color: var(--color-warning-text); }
  :root[data-court-theme^='dark-'] :is(.journey-map-alert, .journey-map-conflicts, .journey-map-issue, .journey-map-drop-preview[data-state=blocked]) {
    color: var(--color-danger-text); background: var(--color-danger-bg); border-color: var(--color-danger-border);
  }
  :root[data-court-theme^='dark-'] :is(.journey-map-alert--possible, .journey-map-issue--possible, .journey-map-proposal--invalid) {
    color: var(--color-warning-text); background: var(--color-warning-bg); border-color: var(--color-warning-border);
  }
  :root[data-court-theme^='dark-'] :is(.journey-map-proposal:not(.journey-map-proposal--invalid), .journey-map-drop-preview[data-state=available]) {
    color: var(--color-success-text); background: var(--color-success-bg); border-color: var(--color-success-border);
  }
  :root[data-court-theme^='dark-'] .journey-map-proposal-heading > span { background: var(--color-surface); }
  :root[data-court-theme^='dark-'] .journey-map-drop-preview:is([data-state=pending], [data-state=current]) { color: var(--color-muted); background: var(--color-soft); border-color: var(--color-border-accent); }
  :root[data-court-theme^='dark-'] .journey-map-drag-ghost[data-state=blocked] { background: var(--color-danger-bg); border-color: var(--color-danger-border); }
  :root[data-court-theme^='dark-'] .journey-map-drag-ghost[data-state=blocked] > span { color: var(--color-danger-text); }
  :root[data-court-theme^='dark-'] .journey-map-drag-ghost[data-state=available] { background: var(--color-success-bg); border-color: var(--color-success-border); }
  :root[data-court-theme^='dark-'] .journey-map-start-guide:not(.journey-map-start-guide--header) { background: color-mix(in srgb, var(--color-bg) 40%, transparent); }
  :root[data-court-theme^='dark-'] :is(.calendar-overlap-problem, .calendar-overlap-pending) { --overlap-ink: var(--color-muted); }
}
