/* Taxi Waheed – Kunden-App (ergänzt assets/css/app.css) */
:root { --sv: 0px; --side-w: 0px; --pin-x: 50vw; --pin-y: 30vh; }
[hidden] { display: none !important; }
@media (min-width: 900px) { :root { --side-w: 432px; } }

/* ---------- Ebenen: Vollbild-Karte hinter der App ---------- */
#map { z-index: 0; }
body:not(.k-map) #map { visibility: hidden; }
.k-map .app { min-height: 0; }
.k-map #top, .k-map #view { display: none; }
.k-nonav #nav { display: none; }
.k-map #nav { z-index: calc(var(--z-sheet) + 1); background: var(--c-s1); backdrop-filter: none; -webkit-backdrop-filter: none; }
#map-ui { position: fixed; inset: 0; z-index: var(--z-map-ui); pointer-events: none; }
#map-ui > * { pointer-events: auto; }
#map-ui > .k-pin, #map-ui > .k-radar, #map-ui > .k-mapnote { pointer-events: none; }
body:not(.k-map) #map-ui { display: none; }

/* Schwebende Kopfzeile über der Karte */
.k-float-top { position: absolute; top: calc(var(--safe-t) + 12px); left: calc(12px + var(--safe-l) + var(--side-w)); right: calc(12px + var(--safe-r)); display: flex; align-items: center; gap: 10px; pointer-events: none; }
.k-float-top > * { pointer-events: auto; }
.k-float-top .grow { flex: 1; pointer-events: none; }
.k-brand { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 16px 0 6px; border-radius: var(--r-pill); background: var(--c-glass-strong); border: 1px solid var(--c-line-2); backdrop-filter: saturate(160%) blur(16px); -webkit-backdrop-filter: saturate(160%) blur(16px); box-shadow: var(--sh-2); color: var(--c-text); font-weight: var(--fw-bold); font-size: var(--fs-md); letter-spacing: -.015em; text-decoration: none; }
.k-brand .logo { width: 32px; height: 32px; font-size: 12px; border-radius: 50%; }
.k-brand:hover { color: var(--c-text); }
.k-float-top .pill { background: var(--c-glass-strong); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: var(--sh-2); }

/* Pin (Abholort / Auf Karte wählen) */
.k-pin { left: var(--pin-x); top: var(--pin-y); transition: transform var(--dur-2) var(--ease-spring), top var(--dur-4) var(--ease-emph), left var(--dur-4) var(--ease-emph); }
.k-pin img { display: block; width: 36px; height: 48px; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .45)); }
.k-pinlabel { position: absolute; left: var(--pin-x); top: calc(var(--pin-y) - 104px); transform: translateX(-50%); display: inline-flex; align-items: center; gap: 10px; max-width: min(320px, calc(100vw - 32px)); padding: 8px 10px 8px 14px; border-radius: var(--r-pill); background: var(--c-glass-strong); border: 1px solid var(--c-line-2); backdrop-filter: saturate(160%) blur(16px); -webkit-backdrop-filter: saturate(160%) blur(16px); box-shadow: var(--sh-3); color: var(--c-text); font: inherit; text-align: left; cursor: pointer; transition: opacity var(--dur-2) var(--ease), transform var(--dur-2) var(--ease), top var(--dur-4) var(--ease-emph), left var(--dur-4) var(--ease-emph); }
.k-pinlabel .k-pl-txt { display: flex; flex-direction: column; min-width: 0; }
.k-pinlabel .k-pl-eyebrow { font-size: 10px; font-weight: var(--fw-semibold); letter-spacing: .09em; text-transform: uppercase; color: var(--c-accent); }
.k-pinlabel .k-pl-addr { font-size: var(--fs-sm); font-weight: var(--fw-semibold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.k-pinlabel .ic { --ic-size: 16px; color: var(--c-text-3); flex-shrink: 0; }
#map-ui > .k-pinlabel.k-static { pointer-events: none; }
#map-ui > .k-pinlabel.k-static > .ic { display: none; }
.k-pinlabel.k-hide { opacity: 0; transform: translate(-50%, 6px); pointer-events: none; }
.k-pinlabel::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 12px; height: 12px; margin-left: -6px; background: inherit; border: inherit; border-top: 0; border-left: 0; transform: rotate(45deg); backdrop-filter: none; -webkit-backdrop-filter: none; }

/* Radar (Fahrersuche) und Status-Chip am Abholpunkt */
.k-radar { position: absolute; left: var(--pin-x); top: var(--pin-y); transform: translate(-50%, -50%); transition: top var(--dur-4) var(--ease-emph), left var(--dur-4) var(--ease-emph); }
.k-mapnote { position: absolute; left: var(--pin-x); top: var(--pin-y); transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px; border-radius: var(--r-pill); background: var(--c-glass-strong); border: 1px solid var(--c-line-2); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: var(--sh-3); font-weight: var(--fw-semibold); white-space: nowrap; transition: top var(--dur-4) var(--ease-emph); }
.k-mapnote .k-mn-ic { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--c-accent); color: var(--c-accent-ink); }
.k-mapnote .k-mn-ic .ic { --ic-size: 20px; }

/* Kartenknöpfe über dem Sheet (bei ganz geöffnetem Sheet ausgeblendet) */
.k-sheet-full #map-ui .k-ctrls, .k-sheet-full #map-ui .k-pinlabel, .k-sheet-full #map-ui .k-mapnote { opacity: 0; pointer-events: none; }
.k-ctrls { bottom: calc(var(--sv) + 14px); transition: bottom var(--dur-1) linear; }
.bsheet.dragging ~ #map-ui .k-ctrls { transition: none; }

/* ---------- Bottom-Sheets ---------- */
.k-sheet .bsheet-head { padding-bottom: var(--s-4); }
.k-sheet.with-cta .bsheet-body { padding-bottom: calc(112px + var(--safe-b)); }
.k-hello { margin: 2px 0 16px; }
.k-where { padding: 0 8px 0 0; gap: 0; cursor: default; }
.k-where:active { transform: none; }
.k-where-btn { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px; align-self: stretch; padding: 0 12px 0 18px; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; text-align: left; border-radius: var(--r-lg) 0 0 var(--r-lg); }
.k-where-btn span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.k-where .where-end { border: 0; cursor: pointer; color: var(--c-text); font-family: inherit; min-height: 40px; }
.k-where .where-end:hover { background: var(--c-s2); }
.k-active { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; margin: 0 0 16px; border-radius: var(--r-lg); background: linear-gradient(135deg, var(--c-accent-soft), transparent 140%); border: 1px solid var(--c-accent-line); color: var(--c-text); text-decoration: none; animation: slide-up var(--dur-4) var(--ease-emph); }
.k-active:hover { color: var(--c-text); background: linear-gradient(135deg, var(--c-accent-soft), var(--c-accent-soft)); }
.k-active .k-a-ic { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--c-accent); color: var(--c-accent-ink); flex-shrink: 0; }
.k-active .k-a-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.k-active .k-a-title { font-weight: var(--fw-bold); font-size: var(--fs-md); }
.k-active .k-a-sub { font-size: var(--fs-sm); color: var(--c-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.k-active .chev { color: var(--c-text-2); }
.k-quick { margin-bottom: 6px; padding-top: 2px; padding-bottom: 6px; }
.k-quick .chip { min-height: 40px; padding: 8px 16px; }
.k-sheet .section-title { margin: 18px 0 2px; }
.k-pickrow .lrow-icon { background: var(--c-accent-soft); color: var(--c-accent); }
.k-call-row { margin-top: 10px; }

/* Optionen (Angebote) */
.k-ohead { display: flex; align-items: center; gap: 8px; }
.k-routebtn { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: var(--r-lg); background: var(--c-s2); border: 1px solid var(--c-line); color: var(--c-text); font: inherit; text-align: left; cursor: pointer; transition: background var(--dur-2) var(--ease); }
.k-routebtn:hover { background: var(--c-s3); }
.k-routebtn > .ic { color: var(--c-text-3); --ic-size: 16px; flex-shrink: 0; }
.k-mini { flex: 1; min-width: 0; display: grid; grid-template-columns: 14px 1fr; gap: 4px 10px; align-items: center; }
.k-mini i { width: 9px; height: 9px; border-radius: 50%; background: var(--c-accent); justify-self: center; }
.k-mini i.b { background: var(--c-text); border-radius: 2px; } .k-mini i.s { width: 6px; height: 6px; background: var(--c-text-3); }
.k-mini span { font-size: var(--fs-sm); font-weight: var(--fw-semibold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.k-mini span.muted { font-weight: var(--fw-medium); }
#o-list { transition: opacity var(--dur-2) var(--ease); }
#o-list.k-busy { opacity: .55; pointer-events: none; }
.k-orow { margin: 14px 0 6px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.k-orow::-webkit-scrollbar { display: none; }
.k-orow .chip { min-height: 40px; }
.k-orow .chip .ic { color: var(--c-text-2); }
.k-pay { display: flex; align-items: center; gap: 10px; margin: 12px 0 4px; font-size: var(--fs-sm); color: var(--c-text-2); }
.k-pay .ic { --ic-size: 18px; color: var(--c-text-3); }
.k-guest { margin-top: 6px; }
.k-guest .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.k-guest .tf { margin-bottom: 10px; }
.k-pricelink { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 0; border: 0; background: transparent; color: var(--c-text-2); font: inherit; font-size: var(--fs-sm); cursor: pointer; }
.k-pricelink:hover { color: var(--c-text); }
.k-pricelink .ic { --ic-size: 16px; }
.k-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: calc(var(--z-sheet) + 2); max-width: 640px; margin: 0 auto; padding: 12px calc(16px + var(--safe-r)) calc(12px + var(--safe-b)) calc(16px + var(--safe-l)); background: linear-gradient(180deg, transparent, var(--c-s1) 22%); animation: slide-up var(--dur-4) var(--ease-emph); }
.k-cta .btn { box-shadow: var(--sh-glow); }
.k-cta .btn-lg { justify-content: space-between; padding-left: 22px; padding-right: 22px; }
.k-cta .k-cta-price { font-variant-numeric: tabular-nums; font-weight: var(--fw-bold); opacity: .8; }
.k-cta-note { margin-top: 8px; text-align: center; font-size: var(--fs-xs); color: var(--c-text-3); }
.opt-card .k-opt-badge { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: var(--r-pill); background: var(--c-accent-soft); color: var(--c-accent); font-size: 11px; font-weight: var(--fw-semibold); }
.opt-card .opt-sub.k-warn { color: var(--c-warn); }

/* Zahlungsmittel-Hinweis zu Beginn des Bestellvorgangs */
.k-payline { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 0; padding: 6px 10px; border-radius: var(--r-md); background: var(--c-s2); border: 1px solid var(--c-line); font-size: var(--fs-2xs); line-height: 1.4; color: var(--c-text-2); }
.k-payline .ic { --ic-size: 14px; color: var(--c-text-3); flex-shrink: 0; margin-top: 1px; }
.k-sheet .k-payline + .bsheet-body { padding-top: 0; }

/* Bestellübersicht (Übersichtsschritt) */
.k-review .modal-body { padding-top: 8px; }
.k-order { position: relative; padding: 14px 16px 6px; border-radius: var(--r-lg); background: linear-gradient(160deg, var(--c-accent-soft), var(--c-s2) 70%); border: 1px solid var(--c-accent-line); box-shadow: var(--sh-inset); }
.k-order-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .09em; text-transform: uppercase; color: var(--c-accent); }
.k-order-head .ic { --ic-size: 16px; }
.k-order-dl > div { display: grid; grid-template-columns: 88px 1fr; gap: 12px; align-items: start; padding: 8px 0; font-size: var(--fs-sm); border-bottom-color: var(--c-line); }
.k-order-dl > div:last-child { border-bottom: 0; }
.k-order-dl dt { color: var(--c-text-3); font-weight: var(--fw-medium); padding-top: 1px; }
.k-order-dl dd { text-align: left; font-weight: var(--fw-semibold); color: var(--c-text); line-height: 1.4; overflow-wrap: anywhere; }
.k-order-dl dd small { display: block; margin-top: 2px; font-size: var(--fs-xs); font-weight: var(--fw-regular); color: var(--c-text-2); line-height: 1.45; }
.k-order-price dd strong { font-size: var(--fs-lg); font-weight: var(--fw-bold); letter-spacing: -.01em; }
.k-legal-txt { margin: 14px 2px 12px; font-size: var(--fs-xs); line-height: 1.55; color: var(--c-text-2); }
.k-legal-txt a { color: var(--c-text); text-decoration: underline; text-underline-offset: 2px; }
.k-order-foot { position: sticky; bottom: 0; margin: 0 -20px -20px; padding: 10px 20px 14px; background: linear-gradient(180deg, transparent, var(--c-s2) 28%); }
.k-order-btn { justify-content: space-between; padding-left: 22px; padding-right: 22px; box-shadow: var(--sh-glow); }
.k-order-foot .btn-text { margin-top: 2px; min-height: 40px; }
@media (max-width: 400px) {
  .k-order-btn { flex-direction: column; gap: 0; padding: 8px 16px; min-height: 60px; line-height: 1.2; }
  .k-order-btn .k-cta-price { font-size: var(--fs-sm); font-weight: var(--fw-semibold); opacity: .75; }
}
.k-order-btn .k-cta-price { font-weight: var(--fw-bold); opacity: .85; }
.k-review .callout { margin: 0 0 12px; }

/* Einwilligung (Karte / Standort) */
.k-consent .k-cs-row { display: flex; align-items: flex-start; gap: 14px; margin: 4px 0 18px; }
.k-consent .k-cs-row .lrow-icon { flex-shrink: 0; }
.k-consent .k-cs-title { font-weight: var(--fw-bold); font-size: var(--fs-md); margin-bottom: 4px; }
.k-consent p { margin: 0; font-size: var(--fs-sm); line-height: 1.5; color: var(--c-text-2); }
.k-consent p a { color: var(--c-text); text-decoration: underline; text-underline-offset: 2px; }
.k-consent .k-cs-note { margin: 12px 0 0; }
.k-mapoff { position: absolute; top: calc(var(--safe-t) + 66px); left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: var(--r-pill); background: var(--c-glass-strong); border: 1px solid var(--c-line-2); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: var(--sh-2); color: var(--c-text-2); font-size: var(--fs-xs); font-weight: var(--fw-medium); white-space: nowrap; text-decoration: none; transition: opacity var(--dur-2) var(--ease); }
.k-mapoff:hover { color: var(--c-text); }
.k-mapoff .ic { --ic-size: 14px; }
.k-sheet-full #map-ui .k-mapoff, .k-nonav #map-ui .k-mapoff { opacity: 0; pointer-events: none; }

/* Rechtliche Links (Start-Sheet, Auth, Konto) */
.k-legal-links { margin: 18px 0 4px; text-align: center; font-size: var(--fs-2xs); line-height: 1.8; color: var(--c-text-3); }
.k-legal-links a { color: var(--c-text-3); text-decoration: none; white-space: nowrap; }
.k-legal-links a:hover { color: var(--c-text); text-decoration: underline; }
.k-home-foot { margin: 8px 0 0; }
.k-auth-foot { margin-top: 24px; }
.k-foot-links { margin: 0 0 8px; }

/* Auf Karte wählen */
.k-pick-addr { font-size: var(--fs-lg); font-weight: var(--fw-bold); letter-spacing: -.015em; line-height: 1.3; margin: 4px 0 6px; min-height: 24px; }

/* ---------- Adresssuche (Vollbild) ---------- */
.k-search { position: fixed; inset: 0; z-index: calc(var(--z-sheet) + 6); display: flex; flex-direction: column; background: var(--c-bg); transform: translateY(100%); transition: transform var(--dur-3) var(--ease-emph); }
.k-search.open { transform: none; }
.k-search-head { padding: calc(var(--safe-t) + 10px) calc(16px + var(--safe-r)) 14px calc(12px + var(--safe-l)); background: var(--c-s1); border-bottom: 1px solid var(--c-line); box-shadow: var(--sh-2); }
.k-sh-top { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.k-sh-title { font-weight: var(--fw-bold); font-size: var(--fs-lg); letter-spacing: -.015em; }
.k-sh-top .grow { flex: 1; }
.k-rf { position: relative; display: flex; flex-direction: column; gap: 8px; padding-left: 4px; }
.k-rf-row { display: flex; align-items: center; gap: 10px; position: relative; }
.k-rf-dot { width: 24px; flex-shrink: 0; display: grid; place-items: center; position: relative; align-self: stretch; }
.k-rf-dot::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--c-accent); position: relative; z-index: 1; box-shadow: 0 0 0 4px var(--c-s1); }
.k-rf-dot.b::before { background: var(--c-text); border-radius: 2px; } .k-rf-dot.s::before { width: 8px; height: 8px; background: var(--c-text-3); }
.k-rf-row + .k-rf-row .k-rf-dot::after { content: ""; position: absolute; left: 50%; bottom: 50%; height: 56px; width: 2px; margin-left: -1px; background: repeating-linear-gradient(180deg, var(--c-line-3) 0 4px, transparent 4px 7px); }
.k-rf .tf { flex: 1; min-width: 0; margin: 0; min-height: 50px; background: var(--c-s2); }
.k-rf .tf { min-height: 54px; }
.k-rf .tf-input { padding-top: 23px; padding-bottom: 7px; font-size: 16px; }
.k-rf .tf-label { left: 14px; }
.k-rf-act { width: 36px; flex-shrink: 0; display: grid; place-items: center; }
.k-search-body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 6px calc(16px + var(--safe-r)) calc(24px + var(--safe-b)) calc(16px + var(--safe-l)); -webkit-overflow-scrolling: touch; }
.k-search-body .lrow { min-height: 62px; }
.k-search-body .section-title { margin: 16px 0 0; }
.k-search-body .empty { padding: 28px 16px; }
.k-search-body .empty-art { width: 96px; height: 78px; margin-bottom: 12px; }
.k-noaddr { margin-top: 10px; }

/* ---------- Fahrt ---------- */
.k-rhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
.k-rhead .right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; min-width: 0; }
.k-rhead .k-car { font-size: var(--fs-sm); color: var(--c-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.k-rtitle { font-size: var(--fs-xl); font-weight: var(--fw-bold); letter-spacing: -.025em; line-height: 1.2; }
.k-rsub { font-size: var(--fs-md); color: var(--c-text-2); margin-top: 4px; line-height: 1.45; }
.k-rbar { margin-top: 16px; }
.k-driver { display: flex; align-items: center; gap: 14px; padding: 4px 0 16px; }
.k-driver .k-d-name { font-weight: var(--fw-bold); font-size: 17px; letter-spacing: -.015em; }
.k-driver .k-d-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: var(--fs-sm); color: var(--c-text-2); margin-top: 2px; }
.k-actions { margin-bottom: 18px; }
.k-actions .action-tile { position: relative; }
.k-actions .k-badge { position: absolute; top: 8px; right: calc(50% - 22px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--c-danger); color: var(--c-text); font-size: 10px; font-weight: var(--fw-bold); line-height: 18px; text-align: center; box-shadow: 0 0 0 2px var(--c-s1); }
.k-sum-price { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.k-rate { text-align: center; padding: 20px 16px; }
.k-rate .k-rate-q { font-weight: var(--fw-bold); font-size: var(--fs-lg); letter-spacing: -.015em; margin: 12px 0 4px; }
.k-rate .rating-input { margin: 10px 0 4px; }
.k-rate .chips { justify-content: center; margin: 14px 0 12px; }
.k-rate .tf { text-align: left; }
.k-reveal { animation: slide-up var(--dur-3) var(--ease-emph); }
.k-done-stars .rating .ic { --ic-size: 26px; }
.k-searching .progress { margin-top: 16px; }

/* Chat-Panel */
.k-chat-bd { position: fixed; inset: 0; z-index: calc(var(--z-sheet) + 8); background: rgba(0, 0, 0, .5); opacity: 0; transition: opacity var(--dur-3) var(--ease); }
.k-chat-bd.show { opacity: 1; }
.k-chat { position: fixed; left: 0; right: 0; bottom: 0; z-index: calc(var(--z-sheet) + 9); max-width: 640px; margin: 0 auto; max-height: min(78dvh, 640px); display: flex; flex-direction: column; background: var(--c-s1); border: 1px solid var(--c-line-2); border-bottom: 0; border-radius: var(--r-xl) var(--r-xl) 0 0; box-shadow: 0 -8px 40px rgba(0, 0, 0, .55), var(--sh-inset); transform: translateY(105%); transition: transform var(--dur-3) var(--ease-emph); }
.k-chat.open { transform: none; }
.k-chat-head { display: flex; align-items: center; gap: 12px; padding: 14px 12px 12px 18px; border-bottom: 1px solid var(--c-line); }
.k-chat-head .grow { flex: 1; min-width: 0; }
.k-chat .chat-list { flex: 1; min-height: 140px; overflow-y: auto; padding: 14px 16px; overscroll-behavior: contain; }
.k-chat .k-quickmsg { padding: 0 16px 8px; margin: 0; }
.k-chat .chat-input { display: flex; gap: 8px; padding: 10px 12px calc(10px + var(--safe-b)); border-top: 1px solid var(--c-line); }
.k-chat .chat-input .input { flex: 1; }

/* ---------- Seiten (Fahrten, Konto) ---------- */
#view { position: relative; }
.k-page { padding-top: 4px; }
.k-h1 { font-size: var(--fs-2xl); font-weight: var(--fw-bold); letter-spacing: -.03em; margin: 6px 0 14px; }
.chips.scroll.k-filter { margin-bottom: 16px; }
.k-trip { position: relative; padding: 14px 16px; margin-bottom: 10px; border-radius: var(--r-lg); background: var(--c-s1); border: 1px solid var(--c-line); box-shadow: var(--sh-inset); transition: background var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease); }
.k-trip:hover { background: var(--c-s2); border-color: var(--c-line-2); }
.k-trip-link { position: absolute; inset: 0; border-radius: inherit; z-index: 1; }
.k-trip-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.k-trip-date { font-size: var(--fs-sm); color: var(--c-text-2); font-weight: var(--fw-medium); }
.k-trip-price { font-weight: var(--fw-bold); font-variant-numeric: tabular-nums; font-size: var(--fs-md); }
.k-trip .k-mini span { font-size: var(--fs-md); }
.k-trip-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }
.k-trip-foot .btn { position: relative; z-index: 2; }
.k-trip-foot .tiny { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.k-profile { display: flex; align-items: center; gap: 14px; }
.k-profile .btn-icon { align-self: flex-start; }
.k-profile .grow { flex: 1; min-width: 0; }
.k-profile .k-p-name { font-weight: var(--fw-bold); font-size: var(--fs-lg); letter-spacing: -.015em; }
.k-profile .k-p-sub { font-size: var(--fs-sm); color: var(--c-text-2); }
.k-acc-hero .logo { width: 48px; height: 48px; border-radius: 14px; font-size: 17px; margin-bottom: 16px; }
.k-acc-hero h1 { font-size: var(--fs-2xl); letter-spacing: -.03em; margin-bottom: 6px; }
.k-acc-hero p { color: var(--c-text-2); margin: 0; }
.k-foot { text-align: center; font-size: var(--fs-xs); color: var(--c-text-3); margin: 28px 0 2px; line-height: 1.6; }
.k-foot a { color: var(--c-text-2); }
.lrow .switch { margin-left: 4px; }
.lrow-end .btn-icon { position: relative; z-index: 2; }
.k-step { width: 136px; min-height: 44px; flex-shrink: 0; }
.k-step button { width: 44px; height: 42px; }
.k-step button .ic { --ic-size: 18px; }

/* Zeitwahl */
.chips.scroll.k-days { margin-top: 14px; margin-bottom: 12px; }
.k-slots { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; max-height: 236px; overflow-y: auto; padding: 2px; overscroll-behavior: contain; }
.k-slots .chip { justify-content: center; font-variant-numeric: tabular-nums; padding: 8px 4px; }
.k-when-sum { margin-top: 14px; padding: 12px 14px; border-radius: var(--r-md); background: var(--c-s2); display: flex; align-items: center; gap: 10px; font-weight: var(--fw-semibold); }
.k-when-sum .ic { color: var(--c-accent); }

/* Auth */
.k-auth { min-height: calc(100dvh - var(--topbar-h) - var(--nav-h) - 60px); padding-top: 12px; }
.k-auth .tf { margin-bottom: 12px; }
.k-auth .btn-lg { margin-top: 6px; }

/* Install-Hinweis: über dem Sheet statt hinter ihm */
.k-map .install-banner { bottom: calc(var(--sv) + 12px); z-index: calc(var(--z-sheet) - 1); }
.k-nonav .install-banner { display: none; }

/* ---------- Desktop (≥ 900 px): Seitenkarte links, Karte rechts ---------- */
@media (min-width: 900px) {
  .bsheet.side { width: 400px; max-width: none; margin: 0; }
  .bsheet.side .bsheet-head { padding-top: 18px; }
  .k-sheet.side.with-cta .bsheet-body { padding-bottom: 120px; }
  .k-cta { left: 16px; right: auto; bottom: 16px; width: 400px; margin: 0; border-radius: 0 0 var(--r-xl) var(--r-xl); padding: 16px 16px 16px; }
  .k-ctrls { bottom: 24px; right: 24px; }
  .k-search { left: 16px; top: 16px; bottom: 16px; right: auto; width: 400px; border-radius: var(--r-xl); border: 1px solid var(--c-line-2); overflow: hidden; box-shadow: var(--sh-4); transform: translateX(calc(-100% - 24px)); }
  .k-search.open { transform: none; }
  .k-search-head { padding-top: 14px; }
  .k-chat { left: auto; right: 24px; bottom: 24px; width: 400px; border-radius: var(--r-xl); border-bottom: 1px solid var(--c-line-2); }
  .k-map .install-banner { left: auto; right: 24px; bottom: 88px; width: 420px; }
  #nav { top: 10px; bottom: auto; left: auto; right: 16px; border: 1px solid var(--c-line-2); border-radius: var(--r-pill); padding: 4px; gap: 2px; box-shadow: var(--sh-3); background: var(--c-glass-strong); }
  #nav a { flex-direction: row; min-height: 40px; padding: 0 14px 0 6px; gap: 6px; font-size: var(--fs-sm); border-radius: var(--r-pill); }
  #nav a .ico { min-width: 0; width: 32px; height: 32px; }
  #nav a .ico .ic { --ic-size: 18px; }
  #nav a .dot { top: 0; left: 24px; }
  .k-map #nav { top: 16px; right: 16px; }
  .k-map .k-float-top .k-call { display: none; }
  #top .k-call { display: none; }
  .content { padding-bottom: 48px; }
  .k-trips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
}
@media (min-width: 900px) and (max-height: 640px) { .k-slots { max-height: 160px; } }
@media (max-width: 380px) {
  .k-hello { font-size: var(--fs-xl); }
  .k-where-btn { padding-left: 14px; gap: 10px; }
  .k-guest .row2 { gap: 8px; }
  .k-rtitle { font-size: var(--fs-lg); }
}
@media (prefers-reduced-motion: reduce) {
  .k-search, .k-chat, .k-chat-bd, .k-pin, .k-pinlabel, .k-radar, .k-mapnote, .k-ctrls { transition: none; }
  .k-active, .k-cta, .k-reveal { animation: none; }
}
.card > .dl:last-child { margin-bottom: 0; }
