/* Curb clone — small additions on top of the ported stylesheet */
:where(button,a,input,[tabindex]):focus-visible{outline:2px solid var(--color-fg);outline-offset:2px;border-radius:4px}
.sheet-wrap{position:fixed;inset:0;z-index:40}
.sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4)}
.sheet{box-shadow:0 -8px 40px rgba(0,0,0,.35)}
.leaflet-container{background:var(--color-surface,#1a1a1a);font-family:var(--font-sans)}
.leaflet-control-attribution{background:rgba(0,0,0,.35)!important;color:#aaa!important;font-size:9px!important}
.leaflet-control-attribution a{color:#ccc!important}
[data-theme=light] .leaflet-control-attribution{background:rgba(255,255,255,.6)!important;color:#555!important}
.ride-map{touch-action:pan-x pan-y}
html,body{overflow-x:hidden}
img{max-width:100%}
.main-pad{padding-top:max(1.25rem,env(safe-area-inset-top))}

/* status tags: Live (solid) · Testing (dashed outline) · Coming (quiet outline) */
.tag{display:inline-flex;align-items:center;flex-shrink:0;height:1.125rem;padding:0 .4rem;border-radius:9999px;border:1px solid var(--color-line);font-size:.625rem;font-weight:500;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:var(--color-muted);white-space:nowrap}
.tag-live{background:var(--color-fg);border-color:var(--color-fg);color:var(--color-bg)}
.tag-testing{border:1px dashed var(--color-fg);color:var(--color-fg)}
.ico{display:inline-block;flex-shrink:0;width:1em;height:1em;vertical-align:-.125em}
.tag .ico{width:.7rem;height:.7rem}
/* ios-zoom: Safari zooms into inputs under 16px; keep inputs at 16px so tapping a field never zooms the page */
input,select,textarea{font-size:max(16px,1rem)}
.city-results{min-height:100vh}

/* logo mark: light-tile version in dark theme, dark-tile version in light theme (data-theme follows the toggle + system setting) */
.brand{display:flex;align-items:center;gap:.5rem}
.curb-mark{display:inline-flex;flex-shrink:0;width:1.375rem;height:1.375rem}
.curb-mark img{width:100%;height:100%;display:block}
.curb-mark-lg{width:3.5rem;height:3.5rem}
[data-theme=dark] .curb-mark .m-light,[data-theme=light] .curb-mark .m-dark{display:none}

/* maps (MapLibre) */
.ride-map{touch-action:auto;height:240px}
.ride-map-lg{height:min(62vh,520px)}
.ride-map .maplibregl-ctrl-attrib{font-size:10px}
[data-theme=dark] .ride-map .maplibregl-ctrl-attrib,[data-theme=dark] .ride-map .maplibregl-ctrl-group{background:rgba(20,20,20,.85);color:#aaa}
[data-theme=dark] .ride-map .maplibregl-ctrl-attrib a{color:#ccc}
[data-theme=dark] .ride-map .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1)}
.map-here{width:14px;height:14px;border-radius:9999px;border:2px solid var(--color-fg);background:transparent}
.map-legend{display:flex;gap:1rem}
.map-legend span{display:inline-flex;align-items:center;gap:.35rem}
.map-legend i{display:inline-block;width:.6rem;height:.6rem;border-radius:9999px}
/* List / Map toggle */
.view-toggle{display:inline-flex;align-self:flex-start;gap:2px;padding:2px;border:1px solid var(--color-line);border-radius:9999px}
.view-toggle button{display:inline-flex;align-items:center;gap:.35rem;min-height:2.25rem;padding:0 .9rem;border-radius:9999px;font-size:.8125rem;color:var(--color-muted)}
.view-toggle button.is-on{background:var(--color-fg);color:var(--color-bg)}
/* Today digest */
.today{border:1px solid var(--color-line);border-radius:1rem;padding:.9rem 1rem .2rem}
.today-n{flex-shrink:0;width:1.25rem;font-size:.75rem;font-weight:600;color:#E4A322;padding-top:.1rem}
/* Add to Home Screen hint */
.a2hs{display:flex;align-items:center;gap:.6rem;border:1px solid var(--color-line);border-radius:1rem;padding:.5rem .4rem .5rem .75rem}
.a2hs .curb-mark img{border-radius:5px}
/* city alert button */
.alert-btn{display:flex;width:100%;align-items:center;gap:.6rem;min-height:2.75rem;margin-bottom:1rem;padding:0 .9rem;border:1px solid var(--color-line);border-radius:9999px;font-size:.8125rem;color:var(--color-fg);text-align:left}
.alert-btn.is-on{background:var(--color-fg);border-color:var(--color-fg);color:var(--color-bg)}

.alert-btn{flex:1;min-width:0}
.share-btn{display:inline-flex;flex-shrink:0;align-items:center;gap:.4rem;min-height:2.75rem;margin-bottom:1rem;padding:0 .95rem;border:1px solid var(--color-line);border-radius:9999px;font-size:.8125rem;color:var(--color-fg)}
.chip-btn{min-height:2.25rem;padding:0 .9rem;border:1px solid var(--color-line);border-radius:9999px;font-size:.8125rem;color:var(--color-muted)}
.chip-btn.is-on{background:var(--color-fg);border-color:var(--color-fg);color:var(--color-bg)}
.star-btn{width:2.5rem;height:2.5rem;font-size:1.5rem;line-height:1;color:var(--color-line)}
.star-btn.is-on,.rep-stars{color:#E4A322}
.rep-form textarea{font-size:max(16px,1rem);resize:none}
.toast{position:fixed;left:50%;bottom:calc(5.5rem + env(safe-area-inset-bottom));transform:translate(-50%,1rem);z-index:60;padding:.55rem 1rem;border-radius:9999px;background:var(--color-fg);color:var(--color-bg);font-size:.8125rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toast.on{opacity:1;transform:translate(-50%,0)}

.switch{position:relative;flex-shrink:0;width:2.6rem;height:1.5rem;border-radius:9999px;background:var(--color-line);transition:background .2s}
.switch::after{content:'';position:absolute;top:.15rem;left:.15rem;width:1.2rem;height:1.2rem;border-radius:9999px;background:var(--color-bg);transition:transform .2s}
.switch.is-on{background:var(--color-fg)}
.switch.is-on::after{transform:translateX(1.1rem)}
