@font-face{font-family:Nunito;src:url('/nunito-700.ttf');font-weight:400 800;font-display:swap}@font-face{font-family:Nunito;src:url('/nunito-900.ttf');font-weight:900;font-display:swap}
:root{--ink:#59465f;--cream:#fffaf2;--peach:#f8d5bd;--lilac:#eee4f5;--mint:#dfede4}body{font-family:Nunito,system-ui,sans-serif;font-weight:700;color:var(--ink);background:radial-gradient(ellipse at 95% 0,#ffe2c4,transparent 38%),radial-gradient(ellipse at 0 35%,#f3e4f3,transparent 38%),#fffaf2}button,input,select,textarea{font-family:inherit}header{height:84px;padding:16px 28px;background:#fffaf3ee;border:0;box-shadow:0 2px 0 #f2e5d6;gap:12px}.logo{font-size:26px;color:#59465f;letter-spacing:-1.3px;font-weight:900;white-space:nowrap}.logo b{transform:rotate(-7deg);margin-right:8px!important}.logo img{border:3px solid #fff8ea;border-radius:18px;box-shadow:0 3px 0 #e6bf8b,0 7px 16px #b6763e22}.logo span{color:#e4ae91!important}header small{font-size:9px;letter-spacing:1.2px;color:#b19492}header button{font-size:11px;padding:12px 16px;background:#fbe2d6;color:#936b69;border:1px solid #f1cec0;box-shadow:inset 0 2px 0 #fff8f4,0 3px 0 #e9c3b4}
main{max-width:1536px;padding:27px 30px;margin:auto}main>h1{font-family:Nunito,system-ui,sans-serif!important;font-weight:900!important;font-size:clamp(32px,3.5vw,48px)!important;line-height:1.05;letter-spacing:-1.8px;color:#674d6e;margin:9px 0 12px!important;max-width:680px}.design-intro{color:#a0878c;font-size:13px;margin:0 0 14px;line-height:1.5}.design-intro span{display:inline-block;background:#f0e5f6;color:#9c7caa;font-size:9px;letter-spacing:1.4px;padding:6px 12px;border-radius:30px;box-shadow:inset 0 2px 0 #ffffff99}.design-intro p{margin:0;color:#aa9296}.search{margin:20px 0 18px;padding:16px;background:#fffdf8;border:2px solid white;box-shadow:0 6px 0 #efe0d122,0 14px 40px #b79a7d12;border-radius:32px;gap:10px;align-items:center}input,select{background:#faf4ec;color:#806b80;border:1px solid #f0e5d9;border-radius:21px;padding:14px 17px;box-shadow:inset 0 2px 5px #b5a18a08}input:focus,select:focus{outline-color:#dbbddf}button,.btn{font-size:14px;font-weight:900;background:linear-gradient(165deg,#92739f,#72557f);color:#fffaf5;border:1px solid #8c6b99;border-radius:22px;padding:14px 18px;box-shadow:inset 0 2px 0 #ffffff33,0 4px 0 #6b4b7a22,0 7px 14px #79658218;transition:transform .22s cubic-bezier(.2,.9,.2,1.5),box-shadow .22s,background .2s}button:hover,.btn:hover{background:#a385af;transform:translateY(-3px);box-shadow:inset 0 2px 0 #ffffff33,0 6px 0 #6b4b7a15,0 10px 18px #79658222}button:active,.btn:active{transform:translateY(2px) scale(.98);box-shadow:inset 0 2px 4px #58406822}button:focus-visible,a:focus-visible{outline:3px solid #c6a5d5;outline-offset:4px}.search #locate{background:linear-gradient(160deg,#e4f0e8,#d5e7dd);color:#6e9582;border-color:#cedfd4;box-shadow:inset 0 2px 0 #fff9,0 4px 0 #c6dbce77}.search button:last-child{font-size:11px}.filters{gap:10px;margin-bottom:12px}.filters button{background:#fffdf8;color:#aa91ad;border:1px solid #ebdfec;border-radius:24px;font-size:12px;padding:11px 16px;box-shadow:inset 0 2px 0 #fff,0 3px 0 #e9dfe933}.filters button.active{background:#f8d5bd;color:#9b6e61;border-color:#efc5aa;box-shadow:inset 0 2px 0 #ffe9db,0 3px 0 #e8b99e55}.filters select{background:#fffdf8;color:#a28aa6;font-size:12px;padding:11px;border-color:#eee2dc}#status{font-size:11px;color:#af9da5;margin:10px 4px 15px;line-height:1.5}.layout{gap:20px;grid-template-columns:350px minmax(0,1fr)}.card{background:linear-gradient(145deg,#fffefb,#fffbf6);border:1px solid #efe4d9;border-radius:28px;padding:21px;box-shadow:0 4px 0 #ecdcc91c,0 8px 22px #b198800a;margin-bottom:14px;transition:transform .22s,box-shadow .22s}.card:hover{border-color:#dcc3df;transform:translateY(-2px);box-shadow:0 9px 22px #9d7ba116}.card h3{font-size:19px;font-weight:900;color:#785d81;letter-spacing:-.5px;margin:13px 0 7px}.card p{font-size:12px;line-height:1.7;color:#ac99a3}.card small{font-size:11px;color:#b2a2ac}.card a{color:#9d7bab;font-weight:900;font-size:12px}.tag{display:inline-block;max-width:100%;background:#edf1dd;border:1px solid #e4e9d5;color:#91a375;border-radius:15px;padding:8px 12px;font-size:10px;line-height:1.5;box-shadow:inset 0 2px 0 #fff8;overflow-wrap:anywhere}.official-head{background:linear-gradient(135deg,#f0e5f6,#f9eff6);color:#ac91b6;border:1px solid #e9dced;border-radius:25px;padding:18px;font-size:12px;box-shadow:inset 0 2px 0 #ffffffb0;margin-bottom:16px}.official-head b{color:#92799c;font-size:13px}.official-head small{font-size:10px;color:#b79fbb}#map{border:5px solid #fffdf9;border-radius:34px;box-shadow:0 6px 0 #e4d8c833,0 18px 45px #a48e7218;overflow:hidden}.mapwrap{width:100%;min-width:0}.map-action{white-space:nowrap;background:#fffaf0;color:#a48aab;border:2px solid white;border-radius:24px;padding:12px 21px;box-shadow:0 5px 0 #ddd0bd22,0 6px 20px #6c4e5326;font-size:12px}.map-action:hover{background:#fff4e5;transform:translateX(-50%) translateY(-2px)}.parking-pin span{font-family:Nunito;font-weight:900;background:linear-gradient(145deg,#ffe9b9,#efc17d);color:#947260;border:3px solid #fffdf6;box-shadow:inset 0 2px 0 #fff9,0 4px 0 #cfa36a55,0 7px 10px #836c5740;border-radius:15px 15px 15px 6px}.parking-pin.chosen span{background:linear-gradient(145deg,#f9d0c3,#efa69d)}.destination-pin span{font:900 30px Nunito;background:linear-gradient(145deg,#b28ac4,#79558b);border:4px solid #fff5e5;border-radius:20px;box-shadow:0 5px 0 #8d6c9f44}.destination-pin b{background:#f6c8ad;color:#a07468;border:2px solid #fff7eb;border-radius:13px;font:900 11px Nunito;letter-spacing:1px}.destination-panel{background:linear-gradient(145deg,#fffdf7,#fff2e4);border:3px solid white;border-radius:30px;padding:20px;box-shadow:0 9px 30px #866b7133}.destination-panel h3{font-weight:900;color:#8b6b95;font-size:21px}.destination-panel small{color:#b69da1;font-size:10px}.destination-panel a{background:linear-gradient(145deg,#a786b6,#82628f);color:#fffaf5;border:1px solid #9e80aa;border-radius:19px;font-size:12px;box-shadow:inset 0 2px 0 #fff3,0 3px 0 #70517922}.close-destination{background:#f1e5ec!important;color:#b198b5;box-shadow:none;border-color:#eadde8}.route-link{background:#eee6f4;color:#9d7bab!important;border-radius:15px;padding:7px 11px}.leaflet-popup-content-wrapper{background:#fffcf7;border:2px solid white;border-radius:27px;box-shadow:0 8px 26px #6c4e5324}.leaflet-popup-tip{background:#fffcf7}.notice{background:#f8f0e6;border:1px solid #eee2d3;color:#b49f90;border-radius:23px;padding:17px;font-size:11px;line-height:1.7}.bottom section,.municipal-guide{background:#fffdf8!important;border:2px solid white;border-radius:32px;padding:27px;box-shadow:0 8px 25px #a48e720b}.bottom section:first-child{background:linear-gradient(145deg,#fff0e1,#fff9ed)!important}.bottom section:last-child{background:linear-gradient(145deg,#eaf3ed,#f9fcf6)!important}h2,.municipal-guide h2{font-family:Nunito;font-weight:900;font-size:25px;color:#92719b;letter-spacing:-.8px}p{color:#ac969d}.eyebrow{font-size:9px;letter-spacing:1.7px;color:#c0a198}.municipal-guide select{background:#f8f1fa;color:#a285ac;border-color:#e9ddee;border-radius:20px}.municipal-guide a{color:#a78bb2}.municipal-guide label{color:#bda5af}dialog{background:#fffaf2;border:3px solid white;border-radius:34px;box-shadow:0 30px 100px #60436b40}dialog input,dialog textarea{border:1px solid #eadde8;background:#fdf8fb;border-radius:19px;color:#9578a0}dialog::backdrop{background:#59445f66;backdrop-filter:blur(9px)}footer{font-size:10px;color:#baa6a5;line-height:1.8}.leaflet-bar{border:3px solid #fffdf7!important;border-radius:16px!important;overflow:hidden;box-shadow:0 5px 20px #806f6533!important}.leaflet-bar a{color:#a68aaf!important;background:#fffbf3!important}.leaflet-control-attribution{font:9px Nunito!important;background:#fffaf1da!important;color:#b79fab!important}
/* Keep pastel surfaces warm while preserving readable text. */
.card p,.card small,p,.notice,#status,.design-intro p{color:#796b75}.card a,.municipal-guide a{color:#795888}.tag{color:#617545}.official-head{color:#80658b}.official-head small{color:#897390}.municipal-guide label,.destination-panel small{color:#897180}
@media(max-width:800px){header{height:72px;padding:10px 14px;gap:7px}.logo{font-size:21px;letter-spacing:-1px}.logo img{width:37px;height:37px}.logo b{margin-right:5px!important}header button{font-size:10px;padding:10px 12px;border-radius:18px}main{padding:19px 12px 12px}main>h1{font-size:33px!important;line-height:1.04;margin:8px 3px 10px!important;max-width:300px}.design-intro{font-size:12px;margin:0 3px 15px}.design-intro span{font-size:8px;padding:5px 10px}.search{padding:12px;margin:16px 0;border-radius:28px;gap:8px}.search #query{min-width:160px;width:100%;font-size:13px;padding:14px}.search select{font-size:12px;padding:11px 14px}.search button{font-size:12px;padding:12px 14px}.search button:last-child{font-size:10px}.filters{gap:8px;flex-wrap:nowrap;overflow-x:auto;padding:3px 2px 8px;scrollbar-width:none}.filters button{white-space:nowrap;font-size:10px;padding:10px 14px;flex:none}.filters select{font-size:10px;min-width:130px}#status{font-size:10px;margin-top:3px}.layout{gap:16px}.mapwrap{align-self:stretch;flex:none}#map{border-radius:29px;height:58dvh;min-height:360px;border-width:4px}.card{padding:18px;border-radius:25px}.destination-panel{bottom:25px;padding:15px;left:9px;right:9px;border-radius:25px}.destination-panel h3{font-size:19px}.destination-panel a{padding:10px;font-size:11px}.bottom section,.municipal-guide{padding:22px;border-radius:28px}.municipal-guide h2{font-size:23px}.bottom{gap:14px}footer{padding:20px}.map-action{top:15px;font-size:11px;padding:11px 16px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.parking-timer{--timer-angle:360deg;position:relative;display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:center;padding:32px;margin:25px 0;border:3px solid white;border-radius:35px;background:linear-gradient(135deg,#f3e6f5,#fff1df);box-shadow:0 10px 30px #b198800c}.timer-eyebrow{font-size:9px;letter-spacing:1.5px;color:#a287ab}.parking-timer h2{margin:9px 0;font-size:27px;color:#81608d}.parking-timer p{font-size:13px}.parking-timer label{display:block;color:#927c97;font-size:12px;margin:12px 0 7px}.timer-controls{display:flex;gap:10px;flex-wrap:wrap}.timer-controls input{width:100px;background:#fffaf6}.timer-controls button{font-size:12px}.timer-presets{display:flex;gap:8px;margin:12px 0 18px}.timer-presets button{font-size:11px;padding:9px 13px;background:#fffaf6;color:#957b9e;border:1px solid #eadbe9;box-shadow:0 3px 0 #dfcfdf44}.parking-timer small{display:block;max-width:60ch;font-size:10px;color:#9b879f;line-height:1.6}.time-disc{width:250px;height:250px;border-radius:50%;padding:12px;background:conic-gradient(#bd9dcb var(--timer-angle),#f5e9f3 0);border:6px solid #fffaf4;box-shadow:0 8px 0 #d8c3db44,0 17px 30px #bba2c144;transform:rotate(-4deg)}.time-disc-inner{height:100%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 25%,#fffdf7,#fceadf);box-shadow:inset 0 3px 8px #cba7b622;transform:rotate(4deg);gap:9px}.time-disc span{font-size:9px;color:#aa8eab;letter-spacing:1px}.time-disc strong{font-size:31px;font-weight:900;color:#8b6496;font-variant-numeric:tabular-nums;letter-spacing:1px}.time-disc button{font-size:9px;padding:7px 11px;background:#efdfec;color:#9c7ea7;border:0;box-shadow:none}.timer-done .time-disc{background:#edb5a8}.timer-done .time-disc strong{color:#bb7a70}#timer-alert{grid-column:1/-1;margin:0;font-size:12px;color:#916d95}#timer-stop[hidden]{display:none}@media(max-width:800px){.parking-timer{grid-template-columns:1fr;padding:23px;gap:24px}.time-disc{grid-row:1;justify-self:center;width:220px;height:220px}.timer-copy h2{font-size:24px}.timer-controls input{width:85px}.timer-controls button{font-size:11px;padding:12px}#timer-alert{grid-column:1}}
.parking-cluster{background:none}.parking-cluster>span{width:54px;height:54px;border-radius:50%;border:4px solid #fffcf5;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(145deg,#b998c9,#906d9f);box-shadow:0 4px 0 #7e5d8e33,0 7px 16px #6b4f7b33;color:#fff;font:900 19px Nunito;line-height:1.05}.parking-cluster small{font:700 8px Nunito;letter-spacing:.3px;margin-top:2px}.map-tools{position:absolute;z-index:850;top:15px;right:14px;display:flex;gap:8px;flex-direction:column}.map-tools button{font:900 11px Nunito;padding:10px 13px;border:2px solid white;background:#fffaf4;color:#866493;box-shadow:0 3px 12px #765b7622;border-radius:17px}.map-action{left:15px;transform:none;max-width:calc(100% - 170px);font-size:11px;padding:11px 14px;white-space:normal;top:15px}.map-action:hover{transform:translateY(-2px)}.map-legend{position:absolute;z-index:700;left:15px;bottom:36px;max-width:calc(100% - 80px);background:#fffaf3e8;border:1px solid white;border-radius:14px;padding:8px 11px;font:700 9px Nunito;color:#8d7395;box-shadow:0 2px 10px #6b4f7b12;pointer-events:none}.map-legend span{display:inline-block;width:14px;height:4px;border-radius:3px;vertical-align:middle}.legend-road{background:#238eae}.legend-service{background:#e67b48;margin-left:7px}.map-is-fullscreen{overflow:hidden}.mapwrap.map-fullscreen{position:fixed!important;inset:0!important;width:100dvw!important;height:100dvh!important;z-index:5000!important;margin:0;padding:0;background:#fffaf2}.map-fullscreen #map{height:100dvh!important;width:100%!important;border:0;border-radius:0}.map-fullscreen .map-tools{top:20px;right:20px}.map-fullscreen .map-action{top:20px}.destination-panel:not([hidden])~.map-legend{display:none}@media(max-width:800px){#map{height:70dvh;min-height:430px}.map-tools{right:12px;top:13px}.map-tools button{font-size:10px;padding:9px 11px}.map-action{left:12px;top:13px;max-width:calc(100% - 155px);padding:10px 12px}.destination-panel{bottom:34px;max-height:44dvh;overflow:auto}.map-legend{left:12px;bottom:37px;font-size:8px}.map-fullscreen .destination-panel{max-width:430px;margin:auto;bottom:35px}.parking-cluster>span{width:50px;height:50px;font-size:18px}}
.destination-panel>div{display:flex;gap:7px}.destination-panel a{flex:1;text-align:center;margin:8px 0;font-size:11px;padding:10px 7px}.destination-panel h3{font-size:18px;margin:3px 0}.destination-panel p{font-size:11px;margin:2px 0}.destination-panel{padding:14px;max-height:190px;bottom:32px}.destination-panel small{font-size:8px;line-height:1.4}.destination-panel>small:last-child{display:block}.destination-panel .close-destination{padding:3px 9px}.mapwrap:has(.destination-panel:not([hidden])) .map-legend{display:none}
