/* JOURNEY vertical blocks (M02). Two block colours: --jb-user (the traveller's stops) and
   --jb-transit (stops that exist only because of transport). Transport rows sit between. */
.planning{--jb-user:#1684ce;--jb-user-bg:#eaf4fb;--jb-transit:#5f7d8f;--jb-transit-bg:#f1f5f8;--jb-line:#d6e3ec;--jb-ink:#16374b;--jb-muted:#56707f}
/* Collapsed route bar: the search form lives inside, opened only to change origin/destination. */
.jb-route{margin:0 0 10px;border:1px solid var(--jb-line);border-radius:16px;background:#fff}
.jb-route>summary{list-style:none;display:grid;grid-template-columns:1fr auto;grid-template-areas:"eyebrow edit" "title edit" "meta edit";gap:2px 10px;padding:12px 14px;cursor:pointer;align-items:center}
.jb-route>summary::-webkit-details-marker{display:none}
.jb-route>summary .eyebrow{grid-area:eyebrow}
.jb-route>summary strong{grid-area:title;font-size:17px;color:var(--jb-ink);line-height:1.3}
.jb-route>summary strong i{font-style:normal;color:var(--jb-user);margin:0 4px}
.jb-route-meta{grid-area:meta;font-size:12px;color:var(--jb-muted)}
.jb-route-edit{grid-area:edit;font-weight:600;font-size:13px;color:var(--jb-user);white-space:nowrap}
.jb-route[open]>summary{border-bottom:1px solid var(--jb-line)}
.jb-route[open] .jb-route-edit::after{content:" ▴"}
.jb-route .journey-search-form{padding:12px 14px 4px;margin:0}
.planning .route-heading{display:flex;align-items:center;gap:10px;margin:4px 0 8px}
.planning .route-heading h2{font-size:15px;margin:0}
.planning .route-heading>span{font-size:12px;color:var(--jb-muted);margin-left:auto}
.planning .route-heading .add-journey-stop{margin:0;padding:6px 10px;font-size:13px}
/* Toolbar + legend */
.jb-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;font-size:12px;color:var(--jb-muted)}
.jb-toolbar button{font-size:12px;padding:5px 10px}
.jb-legend{display:inline-flex;align-items:center;gap:6px;margin-right:auto}
.jb-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:6px}
.jb-legend i.user{background:var(--jb-user)}.jb-legend i.transit{background:var(--jb-transit)}
/* The list: one vertical rail, blocks and transport rows hang on it */
.jb-list{list-style:none;margin:0;padding:0 0 0 2px;position:relative}
.jb-list::before{content:"";position:absolute;left:15px;top:14px;bottom:14px;width:2px;background:var(--jb-line)}
.jb-node{position:relative;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;margin:0 0 6px;padding:10px 12px 10px 2px;border-radius:14px}
.jb-node-user{background:var(--jb-user-bg);border:1px solid #cfe3f3}
.jb-node-transit{background:var(--jb-transit-bg);border:1px dashed #c6d3dc;padding-top:7px;padding-bottom:7px}
.jb-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:var(--jb-user);box-shadow:0 0 0 3px #fff;position:relative;z-index:1}
.jb-node-transit .jb-dot{width:14px;height:14px;margin:6px 7px;background:var(--jb-transit);box-shadow:0 0 0 3px #fff}
.jb-node-body{min-width:0}
.jb-node-title{all:unset;cursor:pointer;display:block}
.jb-node-title strong,strong.jb-node-title{font-size:16px;color:var(--jb-ink);line-height:1.3}
.jb-node-transit strong{font-size:14px;color:#33505f}
.jb-node-meta,.jb-node-transit span:last-child{display:block;font-size:12px;color:var(--jb-muted);margin-top:2px}
.jb-node-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.jb-node-tools button{font-size:12px;padding:4px 9px;min-height:0;background:#fff}
.jb-node .visit-support-disclosure{margin-top:6px}
.jb-node .visit-support-disclosure>summary{font-size:12px}
.visit-block.selected.jb-node{outline:2px solid var(--jb-user)}
/* Transport row between two blocks */
.jb-transport{position:relative;margin:0 0 6px 34px;padding:8px 10px;border-left:3px solid var(--leg-color,#78928b);border-radius:0 12px 12px 0;background:#fff}
.jb-transport-main{display:grid;grid-template-columns:24px 1fr auto;gap:8px 10px;align-items:center}
.jb-mode-icon .ui-icon{width:22px;height:22px;color:var(--leg-color,#78928b)}
.jb-transport-text{min-width:0}
.jb-transport-text strong{display:block;font-size:14px;color:var(--jb-ink)}
.jb-transport-text span{display:block;font-size:12px;color:var(--jb-muted)}
.jb-pill{font-size:11px;padding:2px 8px;border-radius:999px;background:#eef3f6;color:#3f5a6a;white-space:nowrap}
.jb-pill[data-state="verified"]{background:#e4f5ef;color:#0f6a5c}
.jb-pill[data-state="unverified"]{background:#fff3da;color:#6f4a00}
.jb-pill[data-state="pending"]{background:#fbe5e7;color:#8f1d25}
.jb-transport.missed{border-left-color:#b4232c}
.jb-transport-tools{grid-column:1/-1;display:flex;gap:6px;justify-content:flex-end}
.jb-transport-tools button{font-size:12px;padding:4px 10px;min-height:0}
.jb-swap{background:#fff;border:1px solid var(--jb-line)}
.jb-clear{background:transparent;border:0;color:var(--jb-muted);padding:4px 6px}
.jb-leg-details{margin-top:6px}
.jb-leg-details>summary{font-size:12px;color:var(--jb-user);cursor:pointer}
.jb-leg-details .leg{margin-top:6px;padding:10px;border-radius:10px;background:#f6f9fb}
.jb-leg-details .leg-itinerary,.jb-leg-details .leg-mode-symbol,.jb-leg-details .leg-toggle,.jb-leg-details h3{display:none}
/* Cleared gap: inline chooser */
.jb-transport.pending{border-left-style:dashed;background:#fffaf0}
.jb-chooser{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}
.jb-chooser button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:12px;background:#fff;border:1px solid var(--jb-line);border-radius:10px;min-height:0}
.jb-chooser button .ui-icon{width:20px;height:20px;color:var(--jb-user)}
.jb-chooser .jb-manual{grid-column:1/-1;flex-direction:row;justify-content:center}
.jb-note{font-size:12px;color:var(--jb-muted);margin:8px 0 0}
.jb-note.warn{color:#8a5a00}
/* Compact bottom summary: one line + the existing depart button */
.jb-summary.journey-summary{display:flex;flex-direction:column;gap:8px;min-height:0;padding:10px 14px 12px}
.jb-summary-line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;font-size:12px;color:var(--jb-muted)}
.jb-summary-line strong{font-size:18px;color:var(--jb-ink)}
.jb-summary .primary{margin:0}
.jb-summary [data-flow="google"]{margin:0;font-size:13px;padding:8px}
@media (max-width:480px){.jb-chooser{grid-template-columns:repeat(4,minmax(0,1fr))}.jb-transport-main{grid-template-columns:24px 1fr}.jb-pill{grid-column:2;justify-self:start}.jb-route>summary strong{font-size:16px}}
@media (min-width:768px){.jb-chooser{grid-template-columns:repeat(8,minmax(0,1fr))}.jb-chooser .jb-manual{grid-column:span 2}}
/* Override the plan view's 44px default for the compact block controls. */
body[data-view="plan"] .jb-node-tools button,body[data-view="plan"] .jb-transport-tools button,body[data-view="plan"] .jb-toolbar button,body[data-view="plan"] .route-heading .add-journey-stop{min-height:30px;font-size:12px;padding:4px 10px;border-radius:999px}
body[data-view="plan"] .jb-chooser button{min-height:0;font-size:12px;padding:8px 4px;border-radius:10px}
body[data-view="plan"] .jb-clear{min-height:30px;padding:4px 8px}
body[data-view="plan"] .jb-node .visit-support-disclosure button{min-height:30px;font-size:12px}
#modal .modal-chooser{margin:12px 0}
#modal .modal-chooser button.active{border-color:var(--jb-user,#1684ce);background:#eaf4fb}
/* Recommendation cards: title + plain labels, one-line reason, details tucked away */
.network-route-head{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.network-route-labels{display:inline-flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.network-route-labels .state-pill{font-size:11px;padding:2px 8px}
.network-route-labels .primary-pill{background:#1684ce;color:#fff}
.network-route-why{font-size:13px;color:#34576d;margin:4px 0}
.network-route-more{margin:0 0 6px;padding:0;background:transparent}
.network-route-more>summary{font-size:12px;color:#56707f;cursor:pointer}
.network-route-more p{font-size:12px;color:#56707f;margin:4px 0 0}
/* Insert-stop form and chain preview */
#conn-insert-results{display:grid;gap:4px;margin:6px 0}
#conn-insert-results button{text-align:left;font-size:14px;padding:8px 10px;background:#fff;border:1px solid var(--jb-line,#d6e3ec);border-radius:10px;min-height:0}
.conn-dwell{border:1px solid #d8e4ea;border-radius:12px;padding:8px 10px;margin:12px 0;display:flex;flex-wrap:wrap;gap:6px 14px}
.conn-dwell legend{font-size:13px;color:#4e6473;padding:0 4px}
.conn-dwell label{display:inline-flex;align-items:center;gap:6px;font-size:14px}
body[data-view="plan"] .conn-dwell input[type="radio"]{width:18px;height:18px;min-height:0;min-width:0;padding:0;margin:0;accent-color:#1684ce}
body[data-view="plan"] #conn-dwell-custom{width:84px;min-height:36px;padding:4px 8px}
#modal #conn-insert-gap{width:100%;margin-top:6px}
.conn-chain-preview{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:13px;color:#2d4a5c}
.conn-chain-preview .ui-icon{width:16px;height:16px;vertical-align:-3px;color:#1684ce}
.conn-repair-notes{margin:6px 0;padding-left:18px;font-size:12px;color:#4e6473}
.conn-map-pick{margin:6px 0 0;font-size:13px}

.jb-mode-icon .sys-badge{width:30px;height:30px}.jb-mode-icon .sys-badge .ui-icon{width:17px;height:17px;color:#fff}.jb-chooser .sys-badge{width:26px;height:26px}.jb-chooser .sys-badge .ui-icon{width:15px;height:15px}

/* Activity / exhibition container block */
.jb-group{list-style:none;margin:6px 0;padding:0;border:1.5px dashed #9fb9cc;border-radius:18px;background:#f4f8fb}
.jb-group-head{display:flex;align-items:center;gap:8px;padding:10px 12px 4px}.jb-group-head strong{flex:1;font-size:.95rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jb-group-tag{font-size:10px;letter-spacing:.08em;padding:2px 7px;border-radius:999px;background:#1684ce;color:#fff}.jb-group-meta{font-size:11px;color:#55707f}
.jb-group-head button{min-height:28px;width:28px;padding:0;border-radius:50%;font-size:14px;line-height:1}
.jb-group-list{padding:0 8px 0 8px;margin:0}.jb-group-list>.jb-node{margin-left:0}
.jb-group-foot{display:grid;gap:4px;padding:6px 12px 10px}.jb-group-foot button{justify-self:start;font-size:12px;padding:6px 10px;min-height:32px}.jb-group-foot small{font-size:10px;color:#7a8c97}
.jb-transport.inside .jb-transport-text strong{color:#3b5f78}
.jb-chooser-note{grid-column:1/-1;font-size:10px;color:#7a8c97;line-height:1.4;padding:2px 2px 0}
