/* /Components/DriveMode.razor.rz.scp.css */
/* The drive screen: the turn on top, what is coming right under it, the trip at the bottom. The middle of
   the screen is left to the map and the car. None of the motion here waits on "reduce motion". */
.drive-overlay[b-6ut9454r50] { position: absolute; inset: 0; z-index: 1100; display: flex; flex-direction: column; align-items: center; gap: .6rem; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); pointer-events: none; }
.drive-instruction[b-6ut9454r50], .drive-notice[b-6ut9454r50], .drive-upcoming[b-6ut9454r50], .drive-dock[b-6ut9454r50] { width: min(100%, 580px); min-width: 0; }
.drive-instruction[b-6ut9454r50], .drive-notice[b-6ut9454r50], .drive-alert[b-6ut9454r50], .drive-tools[b-6ut9454r50], .drive-dock > *[b-6ut9454r50] { pointer-events: auto; }
.drive-instruction[b-6ut9454r50] { padding: 1rem 1.25rem 1.25rem; color: #fff; background: #0b2f57; border: 1px solid rgb(255 255 255 / 10%); border-radius: 20px; box-shadow: 0 10px 30px rgb(11 47 87 / 24%); transition: background-color .4s; animation: drive-drop-b-6ut9454r50 .45s cubic-bezier(.2, .9, .3, 1.1) both; }
.drive-heading[b-6ut9454r50] { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .65rem; }
.drive-eyebrow[b-6ut9454r50] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .62rem; font-weight: 750; letter-spacing: .12em; color: #a8c5ec; }
.drive-head-buttons[b-6ut9454r50] { display: flex; align-items: center; gap: .4rem; }
.drive-exit[b-6ut9454r50], .drive-min[b-6ut9454r50] { display: flex; align-items: center; gap: .4rem; min-height: 44px; padding: .4rem .6rem; color: #fff; background: rgb(255 255 255 / 10%); border: 1px solid rgb(255 255 255 / 20%); border-radius: 10px; font-weight: 650; cursor: pointer; transition: background-color .15s, transform .12s; }
.drive-exit:active[b-6ut9454r50], .drive-min:active[b-6ut9454r50], .drive-retry:active[b-6ut9454r50], .drive-go:active[b-6ut9454r50], .drive-recenter:active[b-6ut9454r50], .drive-controls button:active[b-6ut9454r50], .drive-mini button:active[b-6ut9454r50] { transform: scale(.96); }
.drive-instruction.side-trip[b-6ut9454r50] { background: #134e4a; }
.drive-instruction.side-trip .drive-eyebrow[b-6ut9454r50] { color: #99f6e4; }
.drive-instruction.arrived:not(.side-trip)[b-6ut9454r50] { background: #14532d; }
.drive-busy[b-6ut9454r50] { display: flex; align-items: center; gap: .5rem; }
.drive-retry[b-6ut9454r50] { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; margin-top: .75rem; padding: .5rem .9rem; color: #0b2f57; background: #fff; border: 0; border-radius: 10px; font-weight: 700; cursor: pointer; transition: transform .12s; }
.drive-retry:disabled[b-6ut9454r50] { opacity: .6; }
.drive-message[b-6ut9454r50] { display: flex; align-items: center; gap: 1rem; }
.drive-message > div[b-6ut9454r50] { min-width: 0; }
/* A new turn eases in; the distance counting down in it does not move anything. */
.drive-turn[b-6ut9454r50] { animation: drive-turn-b-6ut9454r50 .38s cubic-bezier(.2, .8, .3, 1) both; }
.drive-distance[b-6ut9454r50] { font-size: 1.8rem; font-weight: 750; font-variant-numeric: tabular-nums; letter-spacing: -.025em; line-height: 1.15; }
.drive-maneuver[b-6ut9454r50] { flex: none; font-size: 3.1rem; line-height: 1; }
.drive-flag[b-6ut9454r50] { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 50%; background: rgb(255 255 255 / 14%); animation: drive-pop-b-6ut9454r50 .6s cubic-bezier(.2, .9, .3, 1.5) both, drive-cheer-b-6ut9454r50 1.6s ease-out .6s 2; }
.drive-instruction h2[b-6ut9454r50] { font-size: clamp(1.05rem, 3vw, 1.5rem); font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; margin: .3rem 0 0; }
.drive-instruction p[b-6ut9454r50] { margin: .5rem 0 0; font-size: .83rem; color: #c9daf1; }
.drive-street[b-6ut9454r50] { margin-left: 4rem !important; }
.drive-instruction .drive-error[b-6ut9454r50] { padding: .6rem .7rem; color: #fff1c2; background: rgb(255 187 41 / 12%); border-radius: 9px; }
/* A weak signal never takes the turn off the screen: a small chip says the position may be a little behind. */
.drive-instruction .drive-weak[b-6ut9454r50] { display: inline-flex; align-items: center; gap: .4rem; margin: .6rem 0 0; padding: .2rem .65rem .2rem .5rem; border-radius: 999px; background: rgb(255 255 255 / 12%); color: #fde9b0; font-size: .74rem; font-weight: 650; animation: drive-rise-b-6ut9454r50 .3s ease-out both; }
.drive-weak-dot[b-6ut9454r50] { width: 8px; height: 8px; border-radius: 50%; background: #fbbf24; animation: drive-blink-b-6ut9454r50 1.4s ease-in-out infinite; }

/* A heads-up while driving: drops in, and its badge keeps pulsing so a glance is enough. */
.drive-notice[b-6ut9454r50] { display: flex; align-items: flex-start; gap: .7rem; padding: .7rem .85rem; color: #fff; background: #991b1b; border-radius: 14px; box-shadow: 0 8px 26px rgb(127 29 29 / 35%); animation: drive-drop-b-6ut9454r50 .5s cubic-bezier(.2, .9, .3, 1.25) both; }
.drive-notice > div[b-6ut9454r50] { min-width: 0; }
.drive-notice strong[b-6ut9454r50] { display: block; font-size: .9rem; line-height: 1.3; }
.drive-notice p[b-6ut9454r50] { margin: .15rem 0 0; font-size: .76rem; color: #fecaca; }
.drive-notice.ride[b-6ut9454r50] { align-items: center; background: #0b2f57; box-shadow: 0 8px 26px rgb(11 47 87 / 40%); }
.drive-notice.ride.urgent[b-6ut9454r50] { background: #991b1b; box-shadow: 0 8px 26px rgb(127 29 29 / 35%); }
.drive-notice.ride p[b-6ut9454r50] { color: #cfe0f7; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.drive-notice.ride.urgent p[b-6ut9454r50] { color: #fecaca; }
.drive-ride-emoji[b-6ut9454r50] { flex: none; font-size: 1.8rem; line-height: 1; animation: drive-ride-ring-b-6ut9454r50 1s ease-in-out infinite; }
@keyframes drive-ride-ring-b-6ut9454r50 { 0%, 100% { transform: rotate(0) scale(1); } 25% { transform: rotate(-12deg) scale(1.12); } 75% { transform: rotate(12deg) scale(1.12); } }

/* What is coming up, right under the turn. */
.drive-upcoming[b-6ut9454r50] { display: flex; flex-direction: column; gap: .4rem; }
.drive-alert[b-6ut9454r50] { display: flex; align-items: center; gap: .65rem; padding: .55rem .65rem; background: #fff; border: 1px solid #e2e9f2; border-radius: 14px; box-shadow: 0 3px 16px rgb(11 47 87 / 12%); color: #0b2f57; animation: drive-rise-b-6ut9454r50 .4s ease-out both; }
.drive-alert > div[b-6ut9454r50] { min-width: 0; }
.drive-alert.hazard[b-6ut9454r50] { background: #fff8e8; border-color: #f0d9a8; }
.drive-alert strong[b-6ut9454r50] { display: block; font-size: .84rem; line-height: 1.35; }
.drive-alert strong span[b-6ut9454r50] { font-size: .72rem; color: #64748b; font-weight: 500; white-space: nowrap; }
.drive-alert p[b-6ut9454r50] { font-size: .72rem; color: #64748b; line-height: 1.4; margin: .15rem 0 0; }
.drive-pulse[b-6ut9454r50] { position: relative; display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: #475569; color: #fff; }
.drive-pulse[b-6ut9454r50]::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: inherit; opacity: 0; animation: drive-pulse-b-6ut9454r50 1.7s ease-out infinite; }
.drive-pulse.traffic[b-6ut9454r50] { background: #d97706; }
.drive-pulse.flood[b-6ut9454r50] { background: #1d4ed8; }
.drive-pulse.incident[b-6ut9454r50] { background: #b91c1c; }
.drive-pulse.fuel[b-6ut9454r50] { background: #0f766e; }
.drive-pulse.place[b-6ut9454r50] { background: #be185d; }
.drive-notice .drive-pulse.incident[b-6ut9454r50] { background: #fff; color: #991b1b; }
.drive-go[b-6ut9454r50] { display: inline-flex; align-items: center; justify-content: center; gap: .1rem; flex: none; min-width: 48px; min-height: 44px; margin-left: auto; padding: .3rem .7rem; border: 0; border-radius: 10px; background: #0b2f57; color: #fff; font-size: .82rem; font-weight: 700; cursor: pointer; transition: transform .12s; }
.drive-go:disabled[b-6ut9454r50] { opacity: .5; }

/* The floating buttons (report, news, places): two by two at the edge, off the road ahead in the middle. */
.drive-tools[b-6ut9454r50] { align-self: flex-end; }
.drive-tools[b-6ut9454r50]  .map-fabs { display: grid; grid-template-columns: repeat(2, auto); justify-items: end; direction: rtl; }
.drive-tools[b-6ut9454r50]  .map-fabs > * { direction: ltr; }

/* The bottom of the screen: Recenter when the map was moved away from the car, and the trip. */
.drive-dock[b-6ut9454r50] { display: flex; flex-direction: column; align-items: center; gap: .5rem; margin-top: auto; pointer-events: none; }
.drive-recenter[b-6ut9454r50] { display: inline-flex; align-items: center; gap: .45rem; min-height: 46px; padding: .5rem 1.15rem .5rem .9rem; border: 0; border-radius: 999px; background: var(--primary, #1a5fd0); color: #fff; font-size: .92rem; font-weight: 700; box-shadow: 0 6px 20px rgb(26 95 208 / 40%); cursor: pointer; transition: transform .12s; animation: drive-rise-b-6ut9454r50 .3s ease-out both, drive-beckon-b-6ut9454r50 1.8s ease-out .3s infinite; }
.drive-footer[b-6ut9454r50] { width: 100%; padding: .6rem .7rem .55rem .95rem; background: rgb(255 255 255 / 97%); border: 1px solid #e2e9f2; border-radius: 18px; box-shadow: 0 5px 25px rgb(11 47 87 / 14%); animation: drive-rise-b-6ut9454r50 .45s ease-out both; }
.drive-bar[b-6ut9454r50] { display: flex; align-items: center; gap: .6rem; }
.drive-trip[b-6ut9454r50] { flex: 1; min-width: 0; }
.drive-trip strong[b-6ut9454r50] { display: block; color: #0b2f57; font-size: 1.3rem; line-height: 1.2; font-variant-numeric: tabular-nums; }
.drive-trip span[b-6ut9454r50] { display: block; font-size: .74rem; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.drive-controls[b-6ut9454r50] { display: flex; flex: none; gap: .4rem; }
.drive-controls button[b-6ut9454r50] { display: flex; align-items: center; justify-content: center; gap: .35rem; min-width: 44px; min-height: 44px; padding: .4rem .7rem; border: 1px solid #e2e9f2; border-radius: 12px; background: #f5f8fc; color: #0b2f57; font-size: .78rem; font-weight: 650; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s, transform .12s; }
.drive-controls button:disabled[b-6ut9454r50] { opacity: .5; }
.drive-meta[b-6ut9454r50] { display: flex; align-items: center; gap: .35rem; min-width: 0; margin: .45rem 0 0; font-size: .68rem; line-height: 1.4; color: #64748b; white-space: nowrap; overflow: hidden; }
.gps-dot[b-6ut9454r50] { flex: none; width: 7px; height: 7px; border-radius: 50%; background: #d97706; }
.gps-dot.connected[b-6ut9454r50] { background: #15803d; }
.drive-warnings[b-6ut9454r50] { font-size: .72rem; color: #64748b; }
.drive-warnings summary[b-6ut9454r50] { min-height: 32px; }
.drive-warnings ul[b-6ut9454r50] { margin: .25rem 0; padding-left: 1rem; max-height: 100px; overflow: auto; }

@keyframes drive-drop-b-6ut9454r50 { from { opacity: 0; transform: translateY(-18px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes drive-rise-b-6ut9454r50 { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes drive-turn-b-6ut9454r50 { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes drive-pulse-b-6ut9454r50 { 0% { transform: scale(1); opacity: .55; } 100% { transform: scale(1.9); opacity: 0; } }
@keyframes drive-blink-b-6ut9454r50 { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.75); } }
@keyframes drive-pop-b-6ut9454r50 { from { opacity: 0; transform: scale(.4) rotate(-18deg); } to { opacity: 1; transform: none; } }
@keyframes drive-cheer-b-6ut9454r50 { 0% { box-shadow: 0 0 0 0 rgb(255 255 255 / 45%); } 100% { box-shadow: 0 0 0 16px rgb(255 255 255 / 0%); } }
@keyframes drive-beckon-b-6ut9454r50 { 0% { box-shadow: 0 6px 20px rgb(26 95 208 / 40%), 0 0 0 0 rgb(26 95 208 / 50%); } 70%, 100% { box-shadow: 0 6px 20px rgb(26 95 208 / 40%), 0 0 0 13px rgb(26 95 208 / 0%); } }

/* The minimal view: the next turn, a line of progress, and nothing else to read. */
.drive-overlay.compact .drive-instruction[b-6ut9454r50] { position: relative; width: min(100%, 440px); padding: .6rem 6.2rem .75rem .9rem; border-radius: 16px; }
.drive-overlay.compact .drive-heading[b-6ut9454r50] { position: absolute; top: .45rem; right: .45rem; margin: 0; }
.drive-overlay.compact .drive-eyebrow[b-6ut9454r50], .drive-overlay.compact .drive-min span[b-6ut9454r50], .drive-overlay.compact .drive-exit span[b-6ut9454r50] { display: none; }
.drive-overlay.compact .drive-min[b-6ut9454r50], .drive-overlay.compact .drive-exit[b-6ut9454r50] { justify-content: center; width: 40px; min-height: 40px; padding: 0; }
.drive-overlay.compact .drive-maneuver[b-6ut9454r50] { font-size: 2.6rem; }
.drive-overlay.compact .drive-distance[b-6ut9454r50] { font-size: 1.55rem; }
.drive-overlay.compact .drive-instruction h2[b-6ut9454r50] { font-size: 1rem; margin-top: .1rem; }
.drive-overlay.compact .drive-street[b-6ut9454r50] { margin-top: .25rem; }
.drive-overlay.compact .drive-retry[b-6ut9454r50] { margin-top: .5rem; min-height: 40px; padding: .35rem .7rem; font-size: .82rem; }
.drive-overlay.compact .drive-upcoming[b-6ut9454r50] { width: min(100%, 440px); }
.drive-overlay.compact .drive-alert[b-6ut9454r50] { padding: .4rem .5rem; border-radius: 999px; }
.drive-overlay.compact .drive-pulse[b-6ut9454r50] { width: 30px; height: 30px; }
.drive-overlay.compact .drive-dock[b-6ut9454r50] { align-items: flex-start; }
.drive-mini[b-6ut9454r50] { display: flex; align-items: center; gap: .45rem; padding: .35rem .4rem .35rem .8rem; color: #0b2f57; background: rgb(255 255 255 / 97%); border: 1px solid #e2e9f2; border-radius: 999px; box-shadow: 0 5px 20px rgb(11 47 87 / 16%); font-size: .86rem; font-variant-numeric: tabular-nums; animation: drive-rise-b-6ut9454r50 .35s ease-out both; }
.drive-mini span:not(.gps-dot)[b-6ut9454r50] { color: #64748b; }
.drive-mini button[b-6ut9454r50] { display: grid; place-items: center; width: 38px; height: 38px; margin-left: .2rem; border: 1px solid #e2e9f2; border-radius: 50%; background: #f5f8fc; color: #0b2f57; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s, transform .12s; }
.drive-mini button.on[b-6ut9454r50], .drive-controls button.on[b-6ut9454r50] { border-color: #2164d6; background: #2164d6; color: #fff; }

/* Room to spare beside the turn: the floating buttons go to the corner instead, one under the other. */
@media (min-width: 900px) and (min-height: 551px) {
    .drive-tools[b-6ut9454r50] { position: absolute; top: max(1rem, env(safe-area-inset-top)); right: max(1rem, env(safe-area-inset-right)); }
    .drive-tools[b-6ut9454r50]  .map-fabs { display: flex; flex-direction: column; direction: ltr; }
}
/* While a heads-up is on screen (a few seconds), what is coming up waits behind it. */
@media (max-height: 900px) {
    .drive-notice ~ .drive-upcoming[b-6ut9454r50] { display: none; }
}
/* Not much height: one thing coming up, in one line, and the floating buttons in one row. */
@media (max-height: 700px) {
    .drive-alert:nth-child(n+2)[b-6ut9454r50], .drive-alert p[b-6ut9454r50] { display: none; }
}
@media (max-height: 700px) and (max-width: 899px), (max-height: 550px) {
    .drive-tools[b-6ut9454r50]  .map-fabs { display: flex; flex-direction: row; direction: ltr; }
}

/* A phone held upright: one thing coming up at a time, in one line, and buttons without their words. */
@media (max-width: 599px) {
    .drive-overlay[b-6ut9454r50] { padding: max(.75rem, env(safe-area-inset-top)) .75rem max(.75rem, env(safe-area-inset-bottom)); gap: .5rem; }
    .drive-instruction[b-6ut9454r50] { padding: .65rem 1rem 1rem; border-radius: 16px; }
    .drive-heading[b-6ut9454r50] { margin-bottom: .35rem; }
    .drive-maneuver[b-6ut9454r50] { font-size: 2.75rem; }
    .drive-alert:nth-child(n+2)[b-6ut9454r50], .drive-alert p[b-6ut9454r50] { display: none; }
}
@media (max-width: 479px) {
    .drive-controls button[b-6ut9454r50] { padding: 0; }
    .drive-controls button span[b-6ut9454r50] { display: none; }
}
/* A small phone: the trip keeps to its one line. */
@media (max-width: 599px) and (max-height: 600px) {
    .drive-meta[b-6ut9454r50], .drive-warnings[b-6ut9454r50] { display: none; }
}

/* A phone on its side (and any short window): the turn on the left, the trip on the right, the road between them. */
@media (max-height: 550px) and (min-width: 480px) {
    .drive-overlay[b-6ut9454r50] { align-items: flex-start; gap: .45rem; padding: .6rem max(.6rem, env(safe-area-inset-right)) .6rem max(.6rem, env(safe-area-inset-left)); }
    .drive-instruction[b-6ut9454r50], .drive-overlay.compact .drive-instruction[b-6ut9454r50] { width: min(44%, 400px); }
    .drive-instruction[b-6ut9454r50] { padding: .55rem .85rem .7rem; }
    .drive-heading[b-6ut9454r50] { margin-bottom: .2rem; }
    .drive-distance[b-6ut9454r50] { font-size: 1.4rem; }
    .drive-maneuver[b-6ut9454r50] { font-size: 2.4rem; }
    .drive-instruction h2[b-6ut9454r50] { font-size: 1.05rem; }
    .drive-street[b-6ut9454r50] { margin-left: 3.4rem !important; }
    .drive-notice[b-6ut9454r50], .drive-upcoming[b-6ut9454r50], .drive-overlay.compact .drive-upcoming[b-6ut9454r50] { position: absolute; top: .6rem; right: max(.6rem, env(safe-area-inset-right)); width: min(44%, 400px); }
    .drive-notice ~ .drive-tools[b-6ut9454r50] { display: none; }
    .drive-alert:nth-child(n+2)[b-6ut9454r50], .drive-alert p[b-6ut9454r50] { display: none; }
    .drive-tools[b-6ut9454r50] { position: absolute; top: .6rem; right: max(.6rem, env(safe-area-inset-right)); }
    .drive-upcoming ~ .drive-tools[b-6ut9454r50] { top: 4.6rem; }
    .drive-instruction .drive-error[b-6ut9454r50] { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
    .drive-dock[b-6ut9454r50], .drive-overlay.compact .drive-dock[b-6ut9454r50] { position: absolute; right: max(.6rem, env(safe-area-inset-right)); bottom: .6rem; width: min(44%, 400px); margin: 0; align-items: flex-end; }
    .drive-controls button[b-6ut9454r50] { padding: 0; }
    .drive-controls button span[b-6ut9454r50] { display: none; }
}
/* A small phone on its side: the turn loses the line that only repeats the name of the street. */
@media (max-height: 360px) and (min-width: 480px) {
    .drive-street[b-6ut9454r50], .drive-meta[b-6ut9454r50], .drive-warnings[b-6ut9454r50] { display: none; }
    .drive-instruction .drive-error[b-6ut9454r50] { -webkit-line-clamp: 1; padding: .35rem .6rem; }
    .drive-instruction .drive-weak[b-6ut9454r50] { margin-top: .4rem; }
    .drive-retry[b-6ut9454r50] { min-height: 40px; margin-top: .45rem; padding: .35rem .7rem; font-size: .84rem; }
    .drive-exit[b-6ut9454r50], .drive-min[b-6ut9454r50] { min-height: 38px; padding: .25rem .5rem; }
}
/* Hardly any height and no width either: only the turn and the trip. */
@media (max-height: 550px) and (max-width: 479px) {
    .drive-upcoming[b-6ut9454r50], .drive-meta[b-6ut9454r50] { display: none; }
    .drive-instruction[b-6ut9454r50] { padding: .5rem .8rem; }
    .drive-heading[b-6ut9454r50] { margin-bottom: 0; }
    .drive-distance[b-6ut9454r50] { font-size: 1.3rem; }
    .drive-trip strong[b-6ut9454r50] { font-size: 1.1rem; }
}
/* /Components/PwaStatus.razor.rz.scp.css */
.pwa-status[b-4s1xollcw1] { flex-shrink: 0; border-bottom: 1px solid #d7e2ec; background: #f4f8fc; }
.pwa-row[b-4s1xollcw1] { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; color: #0b2f57; font-size: 13px; line-height: 1.5; }
.pwa-row + .pwa-row[b-4s1xollcw1] { border-top: 1px solid #e7edf3; }
.pwa-row button[b-4s1xollcw1] { flex-shrink: 0; }
.pwa-row > span[b-4s1xollcw1] { flex: 1; }
.pwa-row details[b-4s1xollcw1] { width: 100%; }
.pwa-row summary[b-4s1xollcw1] { cursor: pointer; }
.pwa-row p[b-4s1xollcw1] { margin: 8px 0 0; }
.pwa-dismiss[b-4s1xollcw1] { background: transparent; border: 0; border-radius: 6px; padding: 6px; color: #415a70; cursor: pointer; }
@media (max-width: 560px) { .pwa-row[b-4s1xollcw1] { flex-wrap: wrap; gap: 8px; padding: 8px 12px; } }
/* /Components/QrScanner.razor.rz.scp.css */
/* The camera on a QR code: a rounded square, four corner brackets and a line that sweeps it. The page that shows it decides the space around it. */
.qr-scanner[b-bk5ojx41pz] { display: flex; justify-content: center; }
.qr-finder[b-bk5ojx41pz] { position: relative; flex: none; width: min(280px, 100%); aspect-ratio: 1; overflow: hidden; isolation: isolate; border-radius: 22px; background: #0b1b30; box-shadow: var(--shadow-md); animation: qr-in-b-bk5ojx41pz .25s ease-out both; }
.qr-video[b-bk5ojx41pz] { display: block; width: 100%; height: 100%; object-fit: cover; background: #0b1b30; }

/* Over the camera while it opens, and while the page is busy with a code. */
.qr-veil[b-bk5ojx41pz] { position: absolute; inset: 0; display: grid; place-items: center; background: #0b1b30; }
.qr-veil .spinner[b-bk5ojx41pz] { width: 1.75rem; height: 1.75rem; border-width: 3px; }

.qr-corner[b-bk5ojx41pz] { position: absolute; width: 34px; height: 34px; border: 0 solid #fff; filter: drop-shadow(0 1px 2px rgb(11 27 48 / 55%)); pointer-events: none; }
.qr-corner.tl[b-bk5ojx41pz] { top: 18px; left: 18px; border-top-width: 4px; border-left-width: 4px; border-top-left-radius: 12px; }
.qr-corner.tr[b-bk5ojx41pz] { top: 18px; right: 18px; border-top-width: 4px; border-right-width: 4px; border-top-right-radius: 12px; }
.qr-corner.bl[b-bk5ojx41pz] { bottom: 18px; left: 18px; border-bottom-width: 4px; border-left-width: 4px; border-bottom-left-radius: 12px; }
.qr-corner.br[b-bk5ojx41pz] { bottom: 18px; right: 18px; border-bottom-width: 4px; border-right-width: 4px; border-bottom-right-radius: 12px; }

/* The line is the top edge of a box as tall as its way: moving the box by its own height takes the line from the top brackets to the bottom ones. */
.qr-sweep[b-bk5ojx41pz] { position: absolute; inset: 26px; pointer-events: none; animation: qr-sweep-b-bk5ojx41pz 2.2s ease-in-out infinite alternate; }
.qr-sweep[b-bk5ojx41pz]::before { content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 3px; border-radius: 3px; background: linear-gradient(90deg, rgb(255 255 255 / 0%), #fff 18%, #fff 82%, rgb(255 255 255 / 0%)); box-shadow: 0 0 14px 3px var(--primary); opacity: .9; }

/* No camera to show: one line that says why, where the camera would be. */
.qr-note[b-bk5ojx41pz] { display: flex; flex-direction: column; align-items: center; gap: .5rem; width: min(280px, 100%); padding: 1.1rem .9rem; border: 1px dashed var(--border-strong); border-radius: var(--radius); background: var(--surface-2); color: var(--muted); text-align: center; animation: qr-in-b-bk5ojx41pz .25s ease-out both; }
.qr-note p[b-bk5ojx41pz] { margin: 0; color: var(--text); font-size: .92rem; }

@keyframes qr-in-b-bk5ojx41pz { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
@keyframes qr-sweep-b-bk5ojx41pz { from { transform: translateY(0); } to { transform: translateY(100%); } }
/* /Components/RidePanel.razor.rz.scp.css */
.ride-swatch[b-66v86r5rji] { display: inline-block; width: .7rem; height: .7rem; margin-right: .3rem; border-radius: 50%; vertical-align: -.05em; }
.ride-warning[b-66v86r5rji] { align-items: center; }
.ride-warning .btn[b-66v86r5rji] { flex: none; white-space: nowrap; }

/* The invite: the QR code to scan, under it the code to type, and the link for whoever is not standing here. */
.ride-invite[b-66v86r5rji] { display: flex; flex-direction: column; align-items: center; gap: .55rem; margin: 0 0 1.1rem; padding: .9rem .8rem .8rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); animation: ride-card-in-b-66v86r5rji .25s ease-out both; }
.ride-invite-toggle[b-66v86r5rji] { align-self: flex-start; margin: 0 0 .75rem; }
.ride-invite .btn.block[b-66v86r5rji] { align-self: stretch; }

/* Always white, whatever the page looks like: a scanner needs the contrast. The <svg> comes from firebase.js, so only ::deep reaches it. */
.ride-qr[b-66v86r5rji] { display: grid; place-items: center; flex: none; width: min(204px, 100%); aspect-ratio: 1; padding: 4px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.ride-qr[b-66v86r5rji]  svg { display: block; width: 100%; height: 100%; animation: ride-qr-in-b-66v86r5rji .4s cubic-bezier(.2, .8, .2, 1) both; }
.ride-qr.waiting[b-66v86r5rji] { background: var(--surface-2); box-shadow: none; }
.ride-qr.waiting .spinner[b-66v86r5rji] { width: 1.5rem; height: 1.5rem; }

/* The code sits in the middle, under the QR code; the copy button keeps to its right. */
.ride-code-row[b-66v86r5rji] { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .5rem; width: 100%; }
.ride-code[b-66v86r5rji] { grid-column: 2; padding-left: .16em; font-size: 1.65rem; font-weight: 750; letter-spacing: .16em; line-height: 1.15; font-variant-numeric: tabular-nums; color: var(--brand); white-space: nowrap; user-select: all; }
.ride-copy[b-66v86r5rji] { grid-column: 3; justify-self: start; }
.ride-copy.done[b-66v86r5rji] { border-color: var(--ok-line); background: var(--ok-bg); color: var(--ok-fg); animation: ride-pop-b-66v86r5rji .3s ease-out both; }

.ride-expiry[b-66v86r5rji] { display: flex; align-items: center; justify-content: center; gap: .3rem; margin: 0; font-size: .8rem; color: var(--muted); }
.ride-expiry.over[b-66v86r5rji] { color: var(--danger); font-weight: 600; }
.ride-expiry.standalone[b-66v86r5rji] { justify-content: flex-start; margin: 0 0 1rem; font-size: .85rem; }
.ride-note[b-66v86r5rji] { margin: 0; text-align: center; color: var(--muted); }
.ride-note.none[b-66v86r5rji] { height: 0; margin-top: -.55rem; overflow: hidden; }
.ride-note.done[b-66v86r5rji] { color: var(--ok-fg); font-weight: 600; }
.ride-note.failed[b-66v86r5rji] { color: var(--danger); font-weight: 600; }
@keyframes ride-qr-in-b-66v86r5rji { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: none; } }
@keyframes ride-pop-b-66v86r5rji { from { transform: scale(.8); } 60% { transform: scale(1.12); } to { transform: none; } }

.ride-count[b-66v86r5rji] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .55rem; }
.ride-count h3[b-66v86r5rji] { display: flex; align-items: center; gap: .4rem; font-size: .95rem; color: var(--brand); }

/* One rider: a row to tap, and the card with their status under it. */
.ride-members[b-66v86r5rji] { display: grid; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.ride-member[b-66v86r5rji] { min-width: 0; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); overflow: hidden; }
.ride-member.open[b-66v86r5rji] { border-color: #b8cef3; box-shadow: 0 0 0 2px rgb(33 100 214 / 22%), var(--shadow-sm); }
.ride-row[b-66v86r5rji] { display: flex; align-items: center; gap: .7rem; width: 100%; min-height: 60px; padding: .55rem .7rem; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.ride-row:hover[b-66v86r5rji] { background: var(--surface-2); }
.ride-avatar[b-66v86r5rji] { display: grid; place-items: center; flex: none; width: 40px; height: 40px; overflow: hidden; border: 3px solid var(--ok-line); border-radius: 50%; background: var(--brand); color: #fff; font-size: .85rem; font-weight: 700; letter-spacing: .02em; }
.ride-member.offline .ride-avatar[b-66v86r5rji] { border-color: #94a3b8; opacity: .7; filter: grayscale(.75); }
.ride-avatar img[b-66v86r5rji] { display: block; width: 100%; height: 100%; object-fit: cover; }
.ride-who[b-66v86r5rji] { display: grid; gap: .1rem; flex: 1; min-width: 0; }
.ride-name[b-66v86r5rji] { display: flex; align-items: center; gap: .35rem; min-width: 0; font-weight: 650; }
.ride-name-text[b-66v86r5rji] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ride-badge[b-66v86r5rji] { display: inline-flex; align-items: center; gap: .2rem; flex: none; padding: .05rem .4rem; border-radius: 999px; font-size: .66rem; font-weight: 700; letter-spacing: .03em; }
.ride-badge.you[b-66v86r5rji] { background: var(--primary-soft); color: var(--primary-dark); }
.ride-badge.host[b-66v86r5rji] { background: #fef3c7; color: #713f12; }
.ride-status[b-66v86r5rji] { font-size: .8rem; color: var(--muted); overflow-wrap: anywhere; }
.ride-member.online .ride-status[b-66v86r5rji] { color: var(--ok-fg); }

.ride-card[b-66v86r5rji] { display: grid; gap: .6rem; padding: .7rem; border-top: 1px solid var(--border); background: var(--surface-2); animation: ride-card-in-b-66v86r5rji .25s ease-out both; }
.ride-card p[b-66v86r5rji] { margin: 0; }
.ride-stats[b-66v86r5rji] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 0; }
.ride-stats > div[b-66v86r5rji] { min-width: 0; padding: .55rem .35rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); text-align: center; }
.ride-stats dt[b-66v86r5rji] { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.ride-stats dd[b-66v86r5rji] { margin: .2rem 0 0; font-size: 1.1rem; font-weight: 750; font-variant-numeric: tabular-nums; line-height: 1.25; color: var(--brand); overflow-wrap: anywhere; }
.ride-stats dd.on[b-66v86r5rji] { color: var(--ok-fg); }
.ride-stats dd.off[b-66v86r5rji] { color: var(--unknown-fg); }
@keyframes ride-card-in-b-66v86r5rji { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.ride-footer[b-66v86r5rji] { display: grid; gap: .5rem; margin-top: auto; padding-top: .75rem; border-top: 1px solid var(--border); }
.ride-footer p[b-66v86r5rji] { margin: 0; }
.ride-footer .confirm-row[b-66v86r5rji] { margin-top: 0; padding-left: 0; }
.btn.ride-leave[b-66v86r5rji] { color: var(--danger); }
.btn.ride-leave:hover:not(:disabled)[b-66v86r5rji] { border-color: var(--danger); background: var(--bad-bg); color: var(--danger); }

/* A rider waits for the host: three dots that take turns, on every device. */
.ride-wait[b-66v86r5rji] { display: flex; align-items: center; gap: .55rem; margin: 0 0 .75rem; padding: .6rem .75rem; border: 1px dashed #b8cef3; border-radius: var(--radius); background: var(--primary-soft); color: var(--primary-dark); font-size: .9rem; font-weight: 650; }
.ride-wait-dots[b-66v86r5rji] { display: inline-flex; gap: .22rem; }
.ride-wait-dots i[b-66v86r5rji] { width: .42rem; height: .42rem; border-radius: 50%; background: currentColor; animation: ride-wait-b-66v86r5rji 1.2s ease-in-out infinite; }
.ride-wait-dots i:nth-child(2)[b-66v86r5rji] { animation-delay: .2s; }
.ride-wait-dots i:nth-child(3)[b-66v86r5rji] { animation-delay: .4s; }
@keyframes ride-wait-b-66v86r5rji { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
.ride-stop[b-66v86r5rji] { display: flex; align-items: center; gap: .4rem; margin: 0 0 .75rem; padding: .5rem .7rem; border: 1px solid #f5d48a; border-radius: var(--radius); background: #fef3c7; color: #713f12; font-size: .88rem; font-weight: 650; overflow-wrap: anywhere; }

/* One tap tells everyone. */
.ride-alert-toggle[b-66v86r5rji] { margin: 0 .5rem .75rem 0; }
.ride-alert-note[b-66v86r5rji] { font-size: .82rem; font-weight: 650; }
.ride-alert-note.done[b-66v86r5rji] { color: var(--ok-fg); }
.ride-alert-note.failed[b-66v86r5rji] { color: var(--danger); }
.ride-alerts[b-66v86r5rji] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin: 0 0 1rem; animation: ride-card-in-b-66v86r5rji .25s ease-out both; }
.ride-alert-send[b-66v86r5rji] { display: flex; align-items: center; gap: .4rem; min-height: 44px; padding: .4rem .6rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); color: inherit; font-size: .84rem; font-weight: 600; text-align: left; cursor: pointer; transition: transform .12s, background-color .12s, border-color .12s; }
.ride-alert-send > span[b-66v86r5rji] { flex: none; font-size: 1.15rem; line-height: 1; }
.ride-alert-send:hover:not(:disabled)[b-66v86r5rji] { border-color: #b8cef3; background: var(--primary-soft); }
.ride-alert-send:active:not(:disabled)[b-66v86r5rji] { transform: scale(.96); }
.ride-alert-send.urgent[b-66v86r5rji] { border-color: #f3b4b4; background: #fff5f5; color: var(--bad-fg); }
.ride-alert-send:disabled[b-66v86r5rji] { opacity: .5; cursor: default; }
.ride-said[b-66v86r5rji] { justify-self: start; display: inline-flex; align-items: center; gap: .25rem; padding: .08rem .5rem; border-radius: 999px; background: #fef3c7; color: #713f12; font-size: .74rem; font-weight: 700; animation: ride-pop-b-66v86r5rji .3s ease-out both; }
.ride-said.urgent[b-66v86r5rji] { background: var(--bad-bg); color: var(--bad-fg); }

/* What the riders propose (the host), or what this rider proposed. */
.ride-suggestions[b-66v86r5rji] { margin: 0 0 1rem; }
.ride-suggestions h3[b-66v86r5rji] { display: flex; align-items: center; gap: .4rem; margin: 0 0 .5rem; font-size: .95rem; color: var(--brand); }
.ride-suggestions ul[b-66v86r5rji] { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.ride-suggestions > ul > li[b-66v86r5rji], .ride-suggested[b-66v86r5rji] { display: flex; align-items: center; gap: .5rem; margin: 0; padding: .5rem .6rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); animation: ride-card-in-b-66v86r5rji .25s ease-out both; }
.ride-suggestion-text[b-66v86r5rji] { display: grid; flex: 1; min-width: 0; font-size: .78rem; color: var(--muted); }
.ride-suggestion-text strong[b-66v86r5rji] { overflow: hidden; color: var(--text, inherit); font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.ride-suggestions .ride-swatch[b-66v86r5rji] { flex: none; margin-right: 0; }
.ride-suggest-list[b-66v86r5rji] { margin-top: .5rem !important; }
.ride-suggest-list button[b-66v86r5rji] { display: flex; align-items: center; gap: .5rem; width: 100%; min-height: 44px; padding: .45rem .6rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); color: inherit; text-align: left; cursor: pointer; }
.ride-suggest-list button:hover:not(:disabled)[b-66v86r5rji] { border-color: #b8cef3; background: var(--primary-soft); }
.ride-card .confirm-row[b-66v86r5rji] { margin-top: 0; padding-left: 0; }
/* /Components/RouteEditor.razor.rz.scp.css */
.vehicle-gate[b-eitmcmvx3q] { padding:var(--pad,20px); min-width:0; }
.editor-inputs[b-eitmcmvx3q] { border:0; padding:0; margin:0; min-width:0; }
.vehicle-back[b-eitmcmvx3q] { display:flex; align-items:center; gap:8px; border:0; padding:8px 0; margin-bottom:18px; color:#647895; font-size:.77rem; font-weight:550; cursor:pointer; background:transparent; min-height:40px; }
.vehicle-back:hover[b-eitmcmvx3q] { color:#2563eb; }
.vehicle-back:focus-visible[b-eitmcmvx3q] { outline:3px solid rgb(37 99 235 / 25%); outline-offset:4px; border-radius:4px; }
.preferred-route-help[b-eitmcmvx3q] { margin:16px 0 12px; border-radius:10px; background:#f3f7ff; padding:9px 12px; color:#617c9e; font-size:.75rem; }
.preferred-route-help summary[b-eitmcmvx3q] { display:flex; gap:7px; align-items:center; list-style:none; cursor:pointer; min-height:26px; }
.preferred-route-help summary[b-eitmcmvx3q]::after { content:'+'; margin-left:auto; }
.preferred-route-help[open] summary[b-eitmcmvx3q]::after { content:'−'; }
.preferred-route-help p[b-eitmcmvx3q] { margin:8px 0 3px; font-size:.72rem; line-height:1.7; }
/* /Components/TimedAlert.razor.rz.scp.css */
.timed-alert[b-gza71zdk4v] { position: relative; overflow: hidden; padding-bottom: 0.8rem; }
.alert-content[b-gza71zdk4v] { min-width: 0; }
.alert-countdown[b-gza71zdk4v] {
    position: absolute; bottom: 0; left: 0; width: 100%; height: 3px;
    background: currentColor; transform-origin: left;
    animation: alert-expiry-b-gza71zdk4v 5s linear forwards;
}
@keyframes alert-expiry-b-gza71zdk4v { from { transform: scaleX(1); } to { transform: scaleX(0); } }
@media (prefers-reduced-motion: reduce) {
    .alert-countdown[b-gza71zdk4v] { animation-timing-function: steps(5, end); }
}
/* /Components/VehicleRegistration.razor.rz.scp.css */
.vehicle-card[b-n1elvxemxe] { container-type:inline-size; min-width:0; border:1px solid #e3e9f2; border-radius:16px; background:#fff; padding:18px; box-shadow:0 3px 14px rgb(24 48 88 / 4%); }
.vehicle-summary[b-n1elvxemxe] { display:flex; align-items:center; gap:12px; min-width:0; }
.vehicle-avatar[b-n1elvxemxe] { width:46px; height:46px; flex:none; border-radius:13px; background:#edf3ff; color:#2563eb; display:grid; place-items:center; overflow:hidden; }
.vehicle-avatar img[b-n1elvxemxe] { width:100%; height:100%; object-fit:cover; }
.vehicle-summary-copy[b-n1elvxemxe] { display:flex; flex-direction:column; min-width:0; gap:3px; flex:1; }
.vehicle-summary-copy strong[b-n1elvxemxe] { font-size:.95rem; color:#132642; overflow-wrap:anywhere; line-height:1.3; }
.vehicle-summary-copy > span:last-child[b-n1elvxemxe] { font-size:.75rem; color:#526782; overflow-wrap:anywhere; }
.vehicle-eyebrow[b-n1elvxemxe] { font-size:.68rem; font-weight:750; letter-spacing:.12em; color:#526782; }
.vehicle-edit[b-n1elvxemxe] { border:0; background:#f0f5ff; color:#2563eb; font-size:.75rem; font-weight:650; padding:9px 10px; border-radius:9px; display:flex; align-items:center; gap:5px; flex:none; cursor:pointer; min-height:40px; }
.vehicle-access[b-n1elvxemxe] { display:flex; align-items:center; gap:6px; margin-top:12px; color:#4e6583; font-size:.75rem; border-top:1px solid #eef1f6; padding-top:11px; }
.vehicle-form-head[b-n1elvxemxe] { display:flex; align-items:center; gap:12px; }
.vehicle-heading-icon[b-n1elvxemxe] { height:43px; width:43px; flex:none; display:grid; place-items:center; color:#2563eb; background:#edf3ff; border-radius:13px; }
.vehicle-form-head h3[b-n1elvxemxe] { margin:3px 0 0; font-size:1.16rem; color:#132642; letter-spacing:-.03em; line-height:1.3; }
.vehicle-intro[b-n1elvxemxe] { font-size:.79rem; color:#526782; line-height:1.6; margin:13px 0 18px; }
.vehicle-fields[b-n1elvxemxe] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 12px; min-width:0; }
.vehicle-full[b-n1elvxemxe] { grid-column:1/-1; }
.vehicle-field[b-n1elvxemxe] { min-width:0; display:flex; flex-direction:column; gap:7px; }
.vehicle-field > span:first-child[b-n1elvxemxe] { font-size:.75rem; color:#344a68; font-weight:650; display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.vehicle-field small[b-n1elvxemxe] { margin-left:auto; color:#526782; font-size:.75rem; font-weight:400; }
.vehicle-field input[b-n1elvxemxe], .vehicle-field select[b-n1elvxemxe] { min-width:0; width:100%; box-sizing:border-box; font-family:inherit; font-size:1rem; border:1px solid #dde5f0; border-radius:10px; background:#fafcff; padding:11px 12px; min-height:44px; color:#192f4e; outline:none; }
.vehicle-field input[b-n1elvxemxe]::placeholder { color:#526782; }
.vehicle-field input:focus[b-n1elvxemxe], .vehicle-field select:focus[b-n1elvxemxe] { border-color:#2563eb; box-shadow:0 0 0 3px rgb(37 99 235 / 10%); background:white; }
.vehicle-field .vehicle-field-help[b-n1elvxemxe] { font-size:.75rem; font-weight:400; color:#526782; line-height:1.5; }
.vehicle-upload[b-n1elvxemxe] { display:flex; gap:12px; align-items:center; position:relative; border:1px dashed #cbd8eb; background:#f8faff; padding:15px 12px; border-radius:11px; color:#7290b8; cursor:pointer; min-width:0; }
.vehicle-upload > span[b-n1elvxemxe] { min-width:0; display:flex; flex-direction:column; gap:5px; }
.vehicle-upload strong[b-n1elvxemxe] { font-size:.76rem; color:#344a68; line-height:1.3; display:flex; flex-wrap:wrap; gap:5px; }
.vehicle-upload small[b-n1elvxemxe] { font-size:.75rem; font-weight:400; color:#526782; }
.vehicle-upload > span > span[b-n1elvxemxe] { font-size:.75rem; color:#526782; }
.vehicle-upload[b-n1elvxemxe]  input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.vehicle-upload:focus-within[b-n1elvxemxe] { outline:3px solid rgb(37 99 235 / 25%); outline-offset:2px; }
.vehicle-photo-preview[b-n1elvxemxe] { display:flex; align-items:center; gap:13px; background:#f6f9fe; border:1px solid #e3eaf5; padding:10px; border-radius:12px; }
.vehicle-photo-preview img[b-n1elvxemxe] { width:68px; height:54px; object-fit:cover; border-radius:8px; }
.vehicle-photo-preview > div[b-n1elvxemxe] { display:flex; flex-direction:column; gap:7px; }
.vehicle-photo-preview strong[b-n1elvxemxe] { font-size:.76rem; color:#344a68; }
.vehicle-photo-preview button[b-n1elvxemxe] { border:0; background:transparent; padding:0; font-size:.75rem; color:#2563eb; cursor:pointer; text-align:left; }
.vehicle-safety[b-n1elvxemxe] { margin:14px 0; color:#526782; font-size:.75rem; }
.vehicle-safety summary[b-n1elvxemxe] { display:flex; align-items:center; gap:7px; cursor:pointer; list-style:none; min-height:32px; }
.vehicle-safety summary[b-n1elvxemxe]::after { content:'+'; margin-left:auto; font-size:1rem; }
.vehicle-safety[open] summary[b-n1elvxemxe]::after { content:'−'; }
.vehicle-safety p[b-n1elvxemxe] { font-size:.7rem; line-height:1.65; margin:8px 0; color:#526782; }
.vehicle-safety a[b-n1elvxemxe] { color:#2563eb; }
.vehicle-actions[b-n1elvxemxe] { display:flex; align-items:center; gap:10px; margin-top:12px; }
.vehicle-actions .btn[b-n1elvxemxe] { min-height:44px; font-size:.81rem; }
.vehicle-required[b-n1elvxemxe] { text-align:center; margin:9px 0 0; font-size:.75rem; color:#526782; }
.vehicle-edit:focus-visible[b-n1elvxemxe], .vehicle-photo-preview button:focus-visible[b-n1elvxemxe], .vehicle-safety summary:focus-visible[b-n1elvxemxe] { outline:3px solid rgb(37 99 235 / 25%); outline-offset:2px; }
@container (max-width:240px) { .vehicle-fields[b-n1elvxemxe] { grid-template-columns:minmax(0,1fr); } .vehicle-summary[b-n1elvxemxe] { flex-wrap:wrap; } .vehicle-edit[b-n1elvxemxe] { margin-left:58px; } }
.vehicle-private[b-n1elvxemxe] { display:flex; align-items:center; justify-content:center; gap:6px; margin:12px 0 4px; font-size:.74rem; color:#526782; }
/* /Pages/Home.razor.rz.scp.css */
.app-shell.drive-active .side-panel[b-9smz0s9sd2] { display: none; }
.app-shell.drive-active .map-wrap[b-9smz0s9sd2] { width: 100%; height: 100%; flex: 1; }
.app-shell.drive-active .app-body[b-9smz0s9sd2] { flex-direction: row; }
