:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0f172a;background:#eef2f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#dbeafe 0,#eef2f7 40%,#f8fafc 100%)}button,input{font:inherit}.app-shell{width:min(720px,100%);margin:0 auto;padding:20px 16px 32px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800;color:#475569}.topbar h1{font-size:2rem;margin:2px 0 0}.icon-btn{border:0;background:#fff;width:46px;height:46px;border-radius:14px;font-size:1.25rem;box-shadow:0 8px 24px rgba(15,23,42,.08);cursor:pointer}.view.hidden,.hidden{display:none!important}.intro-card,.route-card,.chooser{background:#fff;border-radius:22px;padding:20px;box-shadow:0 10px 28px rgba(15,23,42,.08);margin-bottom:16px}.intro-card h2,.chooser h2{margin:0 0 8px;font-size:1.2rem}.intro-card p{margin:0;color:#475569;line-height:1.5}.field-label{display:block;font-weight:800;margin:20px 0 7px}.search-row{display:flex;gap:8px}.search-row input{min-width:0;flex:1;padding:14px 15px;border:1px solid #cbd5e1;border-radius:14px;background:#fff;outline:none}.search-row input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.primary-btn{border:0;border-radius:14px;background:#0f172a;color:#fff;font-weight:800;padding:14px 18px;cursor:pointer}.primary-btn.compact{padding-inline:16px}.primary-btn:disabled{opacity:.55;cursor:wait}.message{padding:10px 3px;color:#475569}.message.error{color:#b91c1c}.result-list,.departure-list{display:grid;gap:8px}.result-item,.departure-item{width:100%;border:0;background:#fff;border-radius:16px;padding:15px;text-align:left;cursor:pointer;box-shadow:0 5px 16px rgba(15,23,42,.07)}.result-item{display:flex;flex-direction:column;gap:3px}.result-item span{color:#64748b;font-size:.9rem}.departure-item{display:flex;align-items:center;gap:12px}.departure-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.departure-main small{color:#64748b}.chevron{font-size:1.8rem;color:#94a3b8}.line-badge{display:inline-grid;place-items:center;min-width:64px;height:52px;padding:0 12px;border-radius:14px;background:#0f172a;color:#fff;font-size:1.65rem;font-weight:900}.line-badge.small{min-width:52px;height:42px;font-size:1.18rem}.route-row{display:flex;gap:14px;align-items:center}.route-stop{font-size:1.08rem;font-weight:800}.muted{color:#64748b}.status-card{border-radius:26px;padding:28px 20px;text-align:center;box-shadow:0 12px 30px rgba(15,23,42,.1);margin:16px 0}.status-good{background:#dcfce7;color:#14532d}.status-warn{background:#fef3c7;color:#78350f}.status-danger{background:#fee2e2;color:#7f1d1d}.status-neutral{background:#fff;color:#334155}.status-icon{font-size:2.2rem;font-weight:900}.status-text{font-weight:950;font-size:clamp(1.9rem,8vw,3.2rem);line-height:1.05;margin-top:8px;letter-spacing:-.03em}.status-detail{margin-top:8px;font-weight:650}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.time-box{background:#fff;border-radius:20px;padding:16px;text-align:center;box-shadow:0 6px 18px rgba(15,23,42,.06)}.time-box span{display:block;color:#64748b;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.time-box strong{display:block;font-size:2rem;margin-top:4px}.info-row{display:flex;justify-content:space-between;min-height:24px;padding:12px 3px;color:#475569;font-size:.9rem}.last-updated{text-align:center;color:#64748b;font-size:.82rem;margin-top:8px}.next-departures{margin-top:18px;background:#fff;border-radius:18px;padding:14px 16px;box-shadow:0 6px 18px rgba(15,23,42,.06)}.next-departures summary{cursor:pointer;font-weight:800}.next-row{display:grid;grid-template-columns:70px 1fr 100px;gap:8px;padding:11px 0;border-top:1px solid #e2e8f0}.next-row:first-child{margin-top:10px}.next-row span:last-child{text-align:right;color:#64748b}.padded{padding:12px 0}footer{text-align:center;color:#64748b;font-size:.76rem;line-height:1.4;margin-top:24px}@media(max-width:520px){.app-shell{padding:14px 12px 26px}.topbar h1{font-size:1.65rem}.search-row{align-items:stretch}.search-row .compact{padding-inline:12px}.status-card{padding:25px 14px}.next-row{grid-template-columns:54px 1fr 84px;font-size:.88rem}}

body.modal-open{overflow:hidden}.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px}.modal.hidden{display:none!important}.modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(3px)}.modal-card{position:relative;width:min(460px,100%);background:#fff;border-radius:24px;padding:20px;box-shadow:0 24px 70px rgba(15,23,42,.28)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-head h2{margin:2px 0 0}.small-icon{width:40px;height:40px;font-size:1.7rem;box-shadow:none;background:#f1f5f9}.settings-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin-bottom:14px}.settings-info span,.settings-info small{display:block;color:#64748b}.settings-info strong{display:block;margin:3px 0 5px}.full{width:100%;margin-top:9px}.secondary-btn{border:1px solid #cbd5e1;border-radius:14px;background:#fff;color:#0f172a;font-weight:800;padding:14px 18px;cursor:pointer}.settings-note{margin:16px 2px 0;color:#64748b;font-size:.86rem;line-height:1.45}.settings-note code{background:#f1f5f9;padding:2px 5px;border-radius:5px}
.top-actions{display:flex;align-items:center;gap:9px}.favorite-btn{color:#e11d48;font-size:1.35rem}.favorite-help{margin:-5px 0 14px;color:#64748b;line-height:1.45}.favorites-list{display:grid;gap:9px;max-height:min(55vh,480px);overflow:auto;padding:2px}.favorite-row{display:grid;grid-template-columns:1fr 42px;gap:7px;align-items:stretch;border:1px solid #e2e8f0;border-radius:17px;background:#fff}.favorite-row.active{border-color:#fb7185;box-shadow:0 0 0 2px rgba(244,63,94,.09)}.favorite-select{border:0;background:transparent;display:flex;align-items:center;gap:11px;text-align:left;padding:11px 8px 11px 11px;min-width:0;cursor:pointer}.favorite-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.favorite-main strong,.favorite-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-main small{color:#64748b}.favorite-delete{align-self:center;margin-right:7px;width:34px;height:34px;border:0;border-radius:11px;background:#f8fafc;color:#94a3b8;font-size:1.45rem;cursor:pointer}.favorite-delete:hover{background:#fee2e2;color:#b91c1c}.heart-action{background:#be123c}.empty-favorites{display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 12px;color:#64748b;gap:5px}.empty-favorites strong{color:#0f172a}.heart-big{font-size:2.6rem;color:#e11d48;line-height:1}.favorites-card{width:min(520px,100%)}

.legal-links{margin-top:7px;font-size:.68rem}.legal-links a{color:#94a3b8;text-decoration:none}.legal-links a:hover{text-decoration:underline;color:#64748b}.settings-note.disclaimer{padding-top:12px;border-top:1px solid #e2e8f0}.settings-note.disclaimer strong{color:#475569}
\n\n/* System-Dark-Mode: folgt iOS, Android, macOS und anderen Browsern automatisch. */\n@media (prefers-color-scheme: dark){\n  :root{color:#f8fafc;background:#020617;color-scheme:dark}\n  body{background:linear-gradient(180deg,#0f172a 0,#020617 55%,#000 100%)}\n  .icon-btn,.intro-card,.route-card,.chooser,.status-neutral,.time-box,.next-departures,.result-item,.departure-item,.modal-card,.favorite-row{background:#111827;color:#f8fafc}\n  .search-row input,.secondary-btn{background:#0f172a;color:#f8fafc;border-color:#64748b}\n  .eyebrow,.muted,.intro-card p,.message,.info-row,.last-updated,footer,.favorite-help,.favorite-main small,.settings-info span,.settings-info small,.settings-note{color:#cbd5e1}\n  .settings-info,.small-icon,.favorite-delete{background:#0f172a;border-color:#475569;color:#f8fafc}\n  .next-row,.settings-note.disclaimer{border-color:#334155}\n  .legal-links a{color:#cbd5e1}\n}\n\n/* Bei Betriebssystemen, die mehr Kontrast anfordern, werden Konturen automatisch verstaerkt. */\n@media (prefers-contrast: more){\n  button,input,.intro-card,.route-card,.chooser,.status-card,.time-box,.next-departures,.modal-card,.favorite-row{outline:2px solid currentColor;outline-offset:1px}\n  .line-badge{font-size:1.85rem;min-width:74px;height:58px}\n}\n\n/* Manueller S/W-Kontrastmodus. Farblogik bleibt rein schwarz/weiss und folgt Hell/Dunkel des Systems. */\n.high-contrast{color-scheme:light dark}\n.high-contrast body{background:#fff;color:#000}\n.high-contrast .app-shell,.high-contrast .modal-card{color:#000}\n.high-contrast .intro-card,.high-contrast .route-card,.high-contrast .chooser,.high-contrast .status-card,.high-contrast .time-box,.high-contrast .next-departures,.high-contrast .result-item,.high-contrast .departure-item,.high-contrast .modal-card,.high-contrast .favorite-row,.high-contrast .settings-info,.high-contrast .search-row input,.high-contrast .secondary-btn,.high-contrast .icon-btn{background:#fff!important;color:#000!important;border:3px solid #000!important;box-shadow:none!important}\n.high-contrast .primary-btn,.high-contrast .line-badge{background:#000!important;color:#fff!important;border:3px solid #000!important;box-shadow:none!important}\n.high-contrast .status-good,.high-contrast .status-warn,.high-contrast .status-danger,.high-contrast .status-neutral{background:#fff!important;color:#000!important}\n.high-contrast .eyebrow,.high-contrast .muted,.high-contrast .intro-card p,.high-contrast .message,.high-contrast .info-row,.high-contrast .last-updated,.high-contrast footer,.high-contrast .favorite-help,.high-contrast .favorite-main small,.high-contrast .settings-info span,.high-contrast .settings-info small,.high-contrast .settings-note,.high-contrast .next-row span:last-child{color:#000!important}\n.high-contrast .line-badge{font-size:2.15rem;min-width:86px;height:64px;padding:0 16px}\n.high-contrast .line-badge.small{font-size:1.45rem;min-width:64px;height:50px}\n.high-contrast .route-stop{font-size:1.3rem}\n.high-contrast .status-text{font-size:clamp(2.15rem,9vw,3.7rem)}\n.high-contrast .time-box strong{font-size:2.35rem}\n.high-contrast .status-detail,.high-contrast .info-row,.high-contrast .last-updated{font-weight:800}\n.high-contrast .legal-links a{color:#000!important;text-decoration:underline}\n.high-contrast .favorite-btn{color:#000!important}\n.high-contrast .contrast-btn{font-weight:950}\n.high-contrast button:focus-visible,.high-contrast input:focus-visible{outline:4px solid #000!important;outline-offset:3px}\n\n@media (prefers-color-scheme: dark){\n  .high-contrast body{background:#000;color:#fff}\n  .high-contrast .app-shell,.high-contrast .modal-card{color:#fff}\n  .high-contrast .intro-card,.high-contrast .route-card,.high-contrast .chooser,.high-contrast .status-card,.high-contrast .time-box,.high-contrast .next-departures,.high-contrast .result-item,.high-contrast .departure-item,.high-contrast .modal-card,.high-contrast .favorite-row,.high-contrast .settings-info,.high-contrast .search-row input,.high-contrast .secondary-btn,.high-contrast .icon-btn{background:#000!important;color:#fff!important;border-color:#fff!important}\n  .high-contrast .primary-btn,.high-contrast .line-badge{background:#fff!important;color:#000!important;border-color:#fff!important}\n  .high-contrast .status-good,.high-contrast .status-warn,.high-contrast .status-danger,.high-contrast .status-neutral{background:#000!important;color:#fff!important}\n  .high-contrast .eyebrow,.high-contrast .muted,.high-contrast .intro-card p,.high-contrast .message,.high-contrast .info-row,.high-contrast .last-updated,.high-contrast footer,.high-contrast .favorite-help,.high-contrast .favorite-main small,.high-contrast .settings-info span,.high-contrast .settings-info small,.high-contrast .settings-note,.high-contrast .next-row span:last-child{color:#fff!important}\n  .high-contrast .legal-links a{color:#fff!important}\n  .high-contrast button:focus-visible,.high-contrast input:focus-visible{outline-color:#fff!important}\n}\n
/* Startauswahl und Verbindungssuche */
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mode-card{border:0;background:#fff;border-radius:22px;padding:24px 18px;text-align:left;box-shadow:0 10px 28px rgba(15,23,42,.08);cursor:pointer;display:flex;flex-direction:column;gap:8px;min-height:165px}.mode-card:hover{transform:translateY(-1px);box-shadow:0 13px 32px rgba(15,23,42,.12)}.mode-card strong{font-size:1.18rem}.mode-card span:last-child{color:#64748b;line-height:1.4}.mode-icon{font-size:2rem}.back-link{border:0;background:transparent;color:#475569;font-weight:800;padding:4px 0 12px;cursor:pointer}.connection-fields{display:grid;gap:4px}.connection-check-btn{margin-top:20px}.connection-results{display:grid;gap:16px;margin-top:12px}.journey-card{background:#fff;border-radius:22px;padding:18px;box-shadow:0 9px 25px rgba(15,23,42,.08);border-left:6px solid #94a3b8}.journey-card.journey-good{border-left-color:#16a34a}.journey-card.journey-tight{border-left-color:#d97706}.journey-card.journey-bad{border-left-color:#dc2626}.journey-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.journey-summary>div:first-child{display:flex;flex-direction:column;gap:3px}.journey-summary strong{font-size:1.45rem}.journey-state{font-weight:900;text-align:right}.first-bus-status{padding:11px 0 5px;color:#475569}.connection-leg{margin-top:12px;border:1px solid #e2e8f0;border-radius:17px;padding:13px}.connection-leg-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.connection-line{min-width:58px;height:48px;font-size:1.35rem}.segment-delay{font-weight:900;white-space:nowrap}.connection-times{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:10px;margin-top:13px}.connection-times>div:not(.connection-arrow){display:flex;flex-direction:column;gap:2px}.connection-times>div:last-child{text-align:right}.connection-times span{font-size:1.35rem;font-weight:900}.connection-times small{color:#64748b;line-height:1.25}.connection-arrow{color:#94a3b8;font-size:1.4rem;padding-top:2px}.segment-alert{display:inline-block;margin-top:10px;background:#fee2e2;color:#991b1b;font-weight:900;padding:5px 9px;border-radius:9px}.walk-leg{display:flex;gap:8px;align-items:center;padding:8px 12px;color:#64748b;font-size:.9rem}.transfer-box{display:flex;flex-direction:column;gap:3px;margin:10px 2px 2px;padding:11px 13px;border-radius:14px}.transfer-good{background:#dcfce7;color:#14532d}.transfer-tight{background:#fef3c7;color:#78350f}.transfer-bad{background:#fee2e2;color:#7f1d1d}.transfer-neutral{background:#f1f5f9;color:#334155}.transfer-box span{font-size:.9rem}.connection-results .intro-card{margin-bottom:0}
@media(max-width:560px){.mode-grid{grid-template-columns:1fr}.mode-card{min-height:135px}.journey-summary{align-items:flex-start}.journey-state{font-size:.86rem;max-width:130px}.connection-leg-head{grid-template-columns:auto 1fr}.segment-delay{grid-column:2}.connection-times small{font-size:.76rem}}
@media (prefers-color-scheme: dark){.mode-card,.journey-card,.connection-leg{background:#111827;color:#f8fafc}.mode-card span:last-child,.first-bus-status,.walk-leg,.connection-times small,.back-link{color:#cbd5e1}.journey-summary,.connection-leg{border-color:#334155}.transfer-neutral{background:#1e293b;color:#f8fafc}}
.high-contrast .mode-card,.high-contrast .journey-card,.high-contrast .connection-leg,.high-contrast .transfer-box{background:#fff!important;color:#000!important;border:3px solid #000!important;box-shadow:none!important}.high-contrast .mode-card span:last-child,.high-contrast .first-bus-status,.high-contrast .walk-leg,.high-contrast .connection-times small,.high-contrast .back-link{color:#000!important}.high-contrast .journey-card{border-left-width:8px!important}.high-contrast .connection-line{font-size:1.65rem;min-width:72px;height:56px}.high-contrast .connection-times span{font-size:1.55rem}
@media (prefers-color-scheme: dark){.high-contrast .mode-card,.high-contrast .journey-card,.high-contrast .connection-leg,.high-contrast .transfer-box{background:#000!important;color:#fff!important;border-color:#fff!important}.high-contrast .mode-card span:last-child,.high-contrast .first-bus-status,.high-contrast .walk-leg,.high-contrast .connection-times small,.high-contrast .back-link{color:#fff!important}}

/* Verbindungssuche v2: kompakte Auswahl + Live-Monitoring */
.mode-chooser{display:flex;flex-direction:column;align-items:center}.mode-chooser .intro-card{width:100%}.mode-grid{width:min(100%,760px);margin-left:auto;margin-right:auto;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.mode-card{width:100%;text-align:center;align-items:center;justify-content:center}.mode-card span:last-child{text-align:center}
.journey-card{position:relative;padding:0;overflow:hidden;transition:box-shadow .18s ease,transform .18s ease}.journey-card:hover{box-shadow:0 12px 30px rgba(15,23,42,.12)}.journey-pick{display:block;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:17px 18px 14px;cursor:pointer}.journey-pick:focus-visible{outline:4px solid currentColor;outline-offset:-4px}.compact-summary{padding-bottom:7px;border-bottom:0}.compact-summary strong{font-size:1.28rem}.journey-state{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.first-bus-status{padding:3px 0 0}.journey-details{border-top:1px solid #e2e8f0}.journey-details>summary{cursor:pointer;padding:10px 18px;font-weight:800;color:#64748b;list-style:none}.journey-details>summary::-webkit-details-marker{display:none}.journey-details>summary::after{content:' ▾'}.journey-details[open]>summary::after{content:' ▴'}.journey-detail-body{padding:0 16px 16px}.journey-day-badge{position:absolute;top:0;right:0;background:#0f172a;color:#fff;font-weight:900;letter-spacing:.08em;font-size:.73rem;padding:5px 10px;border-bottom-left-radius:11px;z-index:2}.journey-selected{box-shadow:0 0 0 3px rgba(15,23,42,.14),0 12px 30px rgba(15,23,42,.12)}.live-chip{display:inline-flex;align-items:center;font-size:.72rem;line-height:1;background:#0f172a;color:#fff;border-radius:999px;padding:5px 8px;white-space:nowrap;letter-spacing:.03em}.journey-good .live-chip{background:#166534}.journey-tight .live-chip{background:#92400e}.journey-bad .live-chip{background:#991b1b}
@media(max-width:560px){.mode-grid{grid-template-columns:1fr;width:min(100%,360px)}.mode-card{min-height:135px}.compact-summary{display:block}.journey-state{justify-content:flex-start;text-align:left;margin-top:4px;max-width:none}.journey-day-badge{font-size:.68rem}.journey-pick{padding-top:22px}}
@media (prefers-color-scheme: dark){.journey-details{border-color:#334155}.journey-details>summary{color:#cbd5e1}.journey-day-badge,.live-chip{background:#f8fafc;color:#0f172a}.journey-good .live-chip,.journey-tight .live-chip,.journey-bad .live-chip{background:#f8fafc;color:#0f172a}.journey-selected{box-shadow:0 0 0 3px rgba(248,250,252,.2)}}
.high-contrast .journey-pick{color:inherit}.high-contrast .journey-details{border-top:3px solid #000!important}.high-contrast .journey-details>summary{color:#000!important}.high-contrast .journey-day-badge,.high-contrast .live-chip{background:#000!important;color:#fff!important;border:2px solid #000}.high-contrast .journey-selected{outline:5px solid #000;outline-offset:2px}
@media (prefers-color-scheme: dark){.high-contrast .journey-details{border-color:#fff!important}.high-contrast .journey-details>summary{color:#fff!important}.high-contrast .journey-day-badge,.high-contrast .live-chip{background:#fff!important;color:#000!important;border-color:#fff!important}.high-contrast .journey-selected{outline-color:#fff}}

/* Eigene Seite fuer eine ausgewaehlte Verbindung */
.connection-page-shell .connection-live-view { max-width: 860px; margin: 0 auto; }
.connection-route-title { margin-top: 14px; }
.connection-route-title h2 { margin-bottom: 6px; }
.connection-live-details { margin-top: 14px; }
.standalone-journey { margin-top: 16px; }
.journey-unavailable { opacity: .72; }
.journey-unavailable .journey-pick::after { content: "Nicht mehr aktuell nutzbar"; display: block; margin-top: 7px; font-size: .78rem; opacity: .8; }
@media (max-width: 560px) {
  .connection-page-shell .status-text { font-size: clamp(1.35rem, 7vw, 2rem); }
}
.journey-open-hint { margin-top: 8px; font-size: .8rem; }

/* Detailseite: gleiche weisse Kartenoptik wie beim Abfahrtscheck */
.connection-summary-card{
  background:#fff;
  border-radius:22px;
  padding:20px;
  overflow:visible;
  box-shadow:0 10px 28px rgba(15,23,42,.08);
  border-left-width:6px;
}
.connection-summary-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.connection-summary-time{
  font-size:clamp(1.35rem,5vw,1.75rem);
  line-height:1.15;
  font-weight:950;
  letter-spacing:-.02em;
}
.connection-summary-status{
  margin-top:14px;
  font-size:clamp(1.15rem,4.5vw,1.5rem);
  font-weight:950;
  line-height:1.15;
}
.connection-summary-card .first-bus-status{
  margin-top:10px;
  padding:0;
  line-height:1.45;
}
.connection-summary-card .live-chip{
  flex:0 0 auto;
}
@media(max-width:560px){
  .connection-summary-card{padding:18px 16px}
  .connection-summary-top{align-items:flex-start}
  .connection-summary-card .live-chip{margin-top:1px}
}
@media(prefers-color-scheme:dark){
  .connection-summary-card{background:#111827;color:#f8fafc}
}
.high-contrast .connection-summary-card{background:#fff!important;color:#000!important;border:3px solid #000!important;border-left-width:8px!important;box-shadow:none!important}
@media(prefers-color-scheme:dark){.high-contrast .connection-summary-card{background:#000!important;color:#fff!important;border-color:#fff!important}}

/* Deutlichere Haltestellen und eigenstaendige Fussweg-Karten */
.connection-times .stop-role{
  display:block;
  margin-bottom:2px;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#64748b;
}
.connection-times .stop-time{
  font-size:1.45rem;
  font-weight:950;
  line-height:1.05;
}
.connection-times .stop-name{
  display:block;
  margin-top:4px;
  font-size:1.05rem;
  line-height:1.25;
  font-weight:800;
  color:#334155;
}
.connection-times .stop-name-arrival{
  font-size:1.16rem;
  font-weight:950;
  color:#0f172a;
}
.walk-card{
  border-style:solid;
  background:#fff;
}
.walk-card-head{
  display:flex;
  align-items:center;
  gap:12px;
}
.walk-card-head strong{font-size:1.08rem}
.walk-icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:14px;
  background:#f1f5f9;
  font-size:1.55rem;
}
.walk-times{margin-top:14px}
.walk-times .stop-name-arrival{font-size:1.22rem}
@media(max-width:560px){
  .connection-times .stop-name{font-size:1rem}
  .connection-times .stop-name-arrival{font-size:1.12rem}
  .connection-times .stop-time{font-size:1.34rem}
}
@media(prefers-color-scheme:dark){
  .connection-times .stop-role{color:#94a3b8}
  .connection-times .stop-name{color:#e2e8f0}
  .connection-times .stop-name-arrival{color:#fff}
  .walk-card{background:#111827}
  .walk-icon{background:#1e293b}
}
.high-contrast .connection-times .stop-role,
.high-contrast .connection-times .stop-name,
.high-contrast .connection-times .stop-name-arrival{color:#000!important}
.high-contrast .connection-times .stop-name-arrival{font-size:1.3rem!important}
.high-contrast .walk-icon{background:#fff!important;border:2px solid #000!important}
@media(prefers-color-scheme:dark){
  .high-contrast .connection-times .stop-role,
  .high-contrast .connection-times .stop-name,
  .high-contrast .connection-times .stop-name-arrival{color:#fff!important}
  .high-contrast .walk-icon{background:#000!important;border-color:#fff!important}
}

.journey-mainline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.journey-duration-badge{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:5px 9px;border-radius:999px;background:#eef2f7;color:#334155;font-size:.82rem;font-weight:900;letter-spacing:.04em;border:1px solid #d7dee8}.journey-good .journey-duration-badge{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.journey-tight .journey-duration-badge{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.journey-bad .journey-duration-badge{background:#fef2f2;color:#991b1b;border-color:#fecaca}@media(max-width:560px){.journey-mainline strong{font-size:1.22rem}.journey-duration-badge{font-size:.78rem;min-width:52px;padding:4px 8px}}@media(prefers-color-scheme:dark){.journey-duration-badge,.journey-good .journey-duration-badge,.journey-tight .journey-duration-badge,.journey-bad .journey-duration-badge{background:#1f2937;color:#f8fafc;border-color:#475569}}.high-contrast .journey-duration-badge{background:#fff!important;color:#000!important;border:3px solid #000!important}


/* Kompakte Live-Abfahrtskarte: eine einzige erwartete Uhrzeit mit Status und Echtzeitindikator. */
.live-time-card{position:relative;border-radius:26px;padding:18px 22px 22px;text-align:center;box-shadow:0 12px 30px rgba(15,23,42,.1);margin:16px 0;background:#fff;color:#334155}
.live-time-topline{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.live-delay-label{font-size:.9rem;font-weight:900;letter-spacing:.02em;text-transform:none}
.live-indicator{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:900;letter-spacing:.08em;color:#991b1b}
.live-dot{width:9px;height:9px;border-radius:999px;background:#dc2626;box-shadow:0 0 0 0 rgba(220,38,38,.55);animation:livePulse 1.4s ease-out infinite}
.live-time-value{display:block;font-size:clamp(3.4rem,15vw,5.8rem);line-height:1;font-weight:950;letter-spacing:-.05em;margin:8px 0 2px}
.live-time-detail{min-height:1.1em;margin-top:8px;font-size:.88rem;font-weight:700}
.live-time-card.status-good{background:#dcfce7;color:#14532d}
.live-time-card.status-warn{background:#fef3c7;color:#78350f}
.live-time-card.status-danger{background:#fee2e2;color:#7f1d1d}
.live-time-card.status-neutral{background:#fff;color:#334155}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(220,38,38,.55)}70%{box-shadow:0 0 0 9px rgba(220,38,38,0)}100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
@media (prefers-color-scheme:dark){.live-time-card.status-neutral{background:#111827;color:#f8fafc}.live-indicator{color:#fecaca}}
.high-contrast .live-time-card{background:#fff!important;color:#000!important;border:3px solid #000!important;box-shadow:none!important}
.high-contrast .live-indicator{color:#000!important}.high-contrast .live-dot{background:#000!important;animation:none}
@media (prefers-color-scheme:dark){.high-contrast .live-time-card{background:#000!important;color:#fff!important;border-color:#fff!important}.high-contrast .live-indicator{color:#fff!important}.high-contrast .live-dot{background:#fff!important}}


/* Kleine Verkehrsmittel-Symbole in der Live-Kachel und den weiteren Abfahrten. */
.live-time-left{display:inline-flex;align-items:center;gap:9px;min-width:0}
.vehicle-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;line-height:1;filter:saturate(.82);opacity:.9}
.vehicle-icon-small{font-size:.95rem;min-width:1.1rem}
.next-time-icon{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.high-contrast .vehicle-icon{filter:none;opacity:1}
@media(max-width:520px){.vehicle-icon{font-size:1rem}.vehicle-icon-small{font-size:.9rem}.next-time-icon{gap:4px}}
