/* Clear, map-first app layout with a single bottom sheet. */
body.app-mode{--ink:#282238;--accent:#713b91;--muted:#726c7b;margin:0;height:100dvh;overflow:hidden;background:#f5f3f7;color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-weight:400}
.app-mode *{box-sizing:border-box}.app-mode button,.app-mode select,.app-mode input{font-family:inherit;font-weight:600}.app-mode button{background:var(--accent);color:white;border:0;border-radius:14px;box-shadow:none;transform:none;min-height:42px}.app-mode button:hover{filter:brightness(.97);transform:none}.app-mode button:focus-visible,.app-mode a:focus-visible{outline:3px solid #b48bcf;outline-offset:3px}
.app-mode>header{position:fixed;z-index:1005;top:0;left:0;right:0;height:54px;padding:9px 16px;background:#ffffffed;box-shadow:none;border:0;backdrop-filter:blur(14px)}.app-mode .logo{font-family:inherit;font-size:20px;font-weight:800;letter-spacing:-.8px;color:#432752}.app-mode .logo b{display:none}.app-mode .logo img{height:31px;width:31px;border:0;border-radius:10px;box-shadow:none}.app-mode header small,.app-mode header>button{display:none}
.app-mode main{margin:0;padding:0;max-width:none}.app-mode main>.eyebrow,.app-mode main>.design-intro,.app-mode main>h1,.app-mode main>p:not(.notice){display:none}.app-mode .layout{display:block;margin:0;padding:0}.app-mode .mapwrap{position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;border:0!important;border-radius:0!important;background:#eae9e5}.app-mode #map{width:100%!important;height:100dvh!important;min-height:0!important;border:0!important;border-radius:0!important}.app-mode .maplabel,.app-mode .map-legend,.app-mode #map-fullscreen{display:none!important}
.app-mode .app-top{position:fixed;z-index:1004;top:60px;left:12px;right:12px;max-width:430px}.app-mode .search{display:grid;grid-template-columns:1fr auto;gap:7px;padding:10px;margin:0;background:white;border:1px solid #ede8f0;border-radius:19px;box-shadow:0 5px 22px #30203b14}.app-mode .search #query{grid-column:1;min-width:0;width:100%;padding:10px 5px;font-size:14px;background:white;color:var(--ink);border:0;border-radius:8px;box-shadow:none}.app-mode .search>button:not([type="button"]){grid-column:2;grid-row:1;padding:9px 15px;font-size:13px;min-height:39px;border-radius:12px;background:var(--accent)}.app-mode .search #radius{grid-row:2;grid-column:1;width:auto;max-width:160px;padding:5px 8px;min-height:29px;font-size:12px;color:#53485f;border:0;border-radius:8px;background:#f4f0f7}.app-mode .search #locate{grid-column:2;grid-row:2;padding:5px 7px;min-height:29px;background:transparent;color:var(--accent);font-size:11px;white-space:nowrap}.app-mode .filters{display:flex;gap:6px;margin:9px 0 0;padding:0 0 3px;overflow:auto;flex-wrap:nowrap;scrollbar-width:none}.app-mode .filters button{flex:none;min-height:33px;font-size:12px;padding:7px 14px;color:#494052;background:#fffffff5;border:1px solid #e9e2ed;border-radius:18px;box-shadow:0 2px 8px #30203b08}.app-mode .filters button.active{color:white;background:var(--accent);border-color:var(--accent)}.app-mode .search-choices{position:absolute;left:0;right:0;top:103px;max-height:45dvh;overflow:auto;background:white;border-radius:16px;box-shadow:0 8px 30px #30203b30;z-index:3}.app-mode .search-choices button{display:block;width:100%;padding:13px;text-align:left;background:white;color:var(--ink);border-radius:0;border-bottom:1px solid #eee8f1}.app-mode .search-choices small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.app-mode .app-message{margin-top:6px;padding:10px 12px;font-size:12px;line-height:1.4;border-radius:12px;background:white;box-shadow:0 3px 15px #30203b14}.app-mode [hidden]{display:none!important}
.app-mode .app-sheet{position:fixed;z-index:1003;bottom:68px;left:10px;right:10px;max-width:430px;max-height:45dvh;overflow:auto;padding:8px 16px 13px;border:1px solid #eee8f1;border-radius:25px;background:#fff;box-shadow:0 8px 32px #30203b20}.app-mode .sheet-handle{height:4px;width:32px;border-radius:8px;background:#e3dce9;margin:0 auto 10px}.app-mode .sheet-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.app-mode .sheet-heading h2{font:700 15px/1.3 system-ui,sans-serif;margin:0;color:var(--ink);letter-spacing:-.3px}.app-mode .sheet-heading>span{font-size:9px;color:var(--muted)}.app-mode .sheet-tabs{display:flex;gap:5px;margin:10px 0;background:#f5f2f7;padding:3px;border-radius:11px}.app-mode .sheet-tabs button{width:50%;min-height:29px;padding:5px;font-size:12px;color:#72637d;background:transparent;border-radius:8px}.app-mode .sheet-tabs button[aria-pressed="true"]{background:white;color:var(--accent);box-shadow:0 1px 4px #30203b15}
.app-mode .nearby-suggestions{display:block!important;margin:0;padding:0;background:none;border:0}.app-mode .nearby-title{display:none}.app-mode .nearby-choice{display:grid;grid-template-columns:1fr auto;gap:4px 12px;background:none!important;border:0!important;border-radius:0;padding:0!important;box-shadow:none}.app-mode .nearby-suggestions[data-choice="free"] .nearby-choice:nth-of-type(2),.app-mode .nearby-suggestions[data-choice="cheap"] .nearby-choice:nth-of-type(1){display:none}.app-mode .nearby-choice>span{display:none}.app-mode .nearby-choice h3{grid-column:1;grid-row:1;font:700 16px/1.3 system-ui,sans-serif;color:var(--ink);margin:1px 0;letter-spacing:-.2px}.app-mode .nearby-choice>strong{grid-column:2;grid-row:1;font-size:12px;color:#42715b;align-self:center;max-width:110px;text-align:right}.app-mode .nearby-choice>small{grid-column:1/-1;color:var(--muted);font-size:11px;margin:0}.app-mode .nearby-choice>p{grid-column:1/-1;font-size:12px;margin:5px 0 8px;color:var(--muted)}.app-mode .nearby-choice details{grid-column:1/-1;font-size:11px;margin:5px 0}.app-mode .nearby-choice summary{font-size:11px;color:#695775;cursor:pointer}.app-mode .nearby-choice details p{font-size:11px;line-height:1.5;color:#504857}.app-mode .nearby-choice details small{display:block;font-size:10px;line-height:1.4;margin:7px 0;color:var(--muted)}.app-mode .nearby-choice button{grid-column:1/-1;min-height:39px;padding:9px 14px;font-size:12px;background:var(--accent);border-radius:12px}
.app-mode .app-nav{position:fixed;z-index:1010;bottom:0;left:0;right:0;height:60px;padding:4px 12px max(4px,env(safe-area-inset-bottom));display:flex;background:#fff;border-top:1px solid #eee8f1}.app-mode .app-nav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;color:#89818f;border-radius:12px;min-height:44px;font-size:10px}.app-mode .app-nav svg{width:21px;height:21px}.app-mode .app-nav button[aria-current]{color:var(--accent);background:#f6f0fa}
.app-mode .map-tools{position:fixed;z-index:1002;top:213px;right:13px;display:block;left:auto}.app-mode #map-center{width:41px;height:41px;font-size:24px;padding:0;background:white;color:var(--accent);border:1px solid #e7e0ec;border-radius:50%;box-shadow:0 3px 12px #30203b16}.app-mode .map-action{top:219px;left:14px;font-size:10px;padding:7px 12px;min-height:32px;background:white;color:#5a4667;border:1px solid #e7e0ec;box-shadow:0 3px 12px #30203b16}.app-mode .leaflet-bottom{bottom:62px}.app-mode .leaflet-control-zoom{display:none}.app-mode .leaflet-control-scale{display:none}.app-mode .leaflet-control-attribution{font:8px system-ui!important;background:#ffffffc9!important}.app-mode .searched-address span{font:600 11px system-ui;background:white;color:#57386b;padding:7px 10px;border-radius:12px;border:1px solid #e2d5eb;box-shadow:0 2px 6px #30203b18}.app-mode .parking-pin>span{background:#714092!important;border-color:white!important;color:white!important;box-shadow:0 3px 8px #49325725!important}.app-mode .parking-cluster>span{background:#714092;border:3px solid white;color:white;box-shadow:0 3px 10px #49325725}.app-mode .destination-panel{position:fixed;bottom:68px;left:10px;right:10px;max-width:430px;padding:18px;background:white;border:1px solid #eee8f1;border-radius:24px;box-shadow:0 8px 32px #30203b20;z-index:1006}.app-mode .destination-panel h3{font:700 20px system-ui;margin:8px 0 14px;color:var(--ink)}.app-mode .destination-panel a{background:var(--accent);box-shadow:none;color:white;border:0;padding:12px;font:600 12px system-ui;border-radius:12px}.app-mode .destination-panel small{color:var(--muted);font-size:10px}.app-mode .app-routing .app-sheet{visibility:hidden}.app-mode.app-routing .app-sheet{visibility:hidden}.app-mode .close-destination{background:#f4eff7;color:var(--accent);border-radius:50%;min-height:30px}.app-mode .destination-pin div>span{background:var(--accent);box-shadow:0 4px 10px #40304e25}.app-mode .destination-pin b{background:white;color:var(--accent);border:1px solid #e2d5eb;box-shadow:none}
.app-mode dialog{font-family:inherit;background:white;color:var(--ink);border:0;border-radius:25px;padding:22px;box-shadow:0 15px 70px #30203b35}.app-mode dialog::backdrop{background:#22152f66;backdrop-filter:blur(3px)}.app-mode .app-dialog{width:min(520px,calc(100vw - 20px));max-height:85dvh;margin:auto;padding:0}.app-mode .app-dialog-head{position:sticky;z-index:2;top:0;background:white;display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid #eee8f1}.app-mode .app-dialog-head h2{font:700 20px system-ui;color:var(--ink);margin:0}.app-mode .app-dialog-head button{min-height:32px;width:32px;font-size:23px;background:#f4eff7;color:var(--accent);border-radius:50%;padding:0}.app-mode .app-dialog-content{padding:16px}.app-mode .app-dialog .card{background:white;border:0;border-bottom:1px solid #ece7f0;border-radius:0;box-shadow:none;padding:17px 0}.app-mode .app-dialog h3{color:var(--ink);font:700 17px system-ui}.app-mode .app-dialog p,.app-mode .app-dialog small{color:#685e70;line-height:1.5}.app-mode .app-dialog .tag{background:#f4f0f7;color:#684e78;font-size:11px;border-radius:7px;padding:5px 7px;line-height:1.5}.app-mode .app-dialog a{color:var(--accent);font-size:12px}.app-mode .app-dialog .route-link{display:inline-block;margin:6px 10px 6px 0}.app-mode .app-dialog label{font-size:12px}.app-mode .app-dialog select{max-width:100%;background:#f6f3f8;border:1px solid #e4dcea;border-radius:10px;padding:10px;color:#4c3b5b}.app-mode .official-head{font-size:12px;padding:15px 0;color:#6d577c}.app-mode .parking-timer{display:flex;flex-direction:column;border:0;padding:10px 0;margin:0;background:white;box-shadow:none;gap:15px}.app-mode .time-disc{order:-1;transform:none;width:205px;height:205px;background:conic-gradient(#9a67b7 var(--timer-angle),#f1e9f6 0);box-shadow:none;border:5px solid #f8f4fb}.app-mode .time-disc-inner{transform:none;background:#fdfbff;box-shadow:none}.app-mode .time-disc strong{color:var(--accent)}.app-mode .timer-eyebrow,.app-mode .timer-copy h2,.app-mode .timer-copy>p{display:none}.app-mode .timer-controls input{width:85px;min-height:42px;border:1px solid #e1d7e9;padding:9px;border-radius:10px}.app-mode .timer-controls button{font-size:12px;padding:10px}.app-mode .timer-presets button{color:var(--accent);background:#f4eef8;box-shadow:none;border:0}.app-mode .bottom{display:block;margin:0}.app-mode .bottom section,.app-mode .municipal-guide{padding:20px 0;background:white!important;border:0;border-radius:0;box-shadow:none}.app-mode .bottom section:first-child{display:none}.app-mode .bottom h2,.app-mode .municipal-guide h2{font:700 18px system-ui;color:var(--ink)}.app-mode .more-actions{display:flex;gap:10px;flex-wrap:wrap}.app-mode .more-actions button{font-size:12px;padding:10px 14px}.app-mode footer{font-size:10px;padding:15px 0}.app-mode #status{font-size:11px;line-height:1.5}.app-mode .notice{font-size:11px;line-height:1.5}.app-mode .destination-panel[hidden]{display:none!important}
@media(min-width:760px){.app-mode>header{right:auto;width:466px;background:#ffffffed}.app-mode .app-top{left:18px;top:65px;width:430px}.app-mode .app-sheet,.app-mode .destination-panel{left:18px;bottom:82px;right:auto;width:430px}.app-mode .app-nav{left:18px;right:auto;bottom:12px;width:430px;border:1px solid #eee8f1;border-radius:19px;box-shadow:0 4px 20px #30203b15}.app-mode .map-tools{top:24px;right:24px}.app-mode .map-action{top:24px;left:50%;transform:translateX(-50%)}.app-mode .leaflet-bottom{bottom:0}}
@media(max-height:600px){.app-mode .sheet-heading{display:none}.app-mode .sheet-handle{margin-bottom:5px}.app-mode .sheet-tabs{margin:5px 0 8px}.app-mode .app-sheet{padding:7px 13px 10px;max-height:42dvh}.app-mode .nearby-choice h3{font-size:15px}}
