.map-page .app-shell { background:#f7f6f2; }
.map-page .app-main { background:#edf0eb; }
.map-search { border-color:#e2dfd7; background:rgba(255,255,255,.96); box-shadow:0 12px 30px rgba(33,34,30,.13); }
.map-search svg { color:#27b7bb; }
.map-search button { color:#fff; background:#1c2428; }
.map-chip { border-color:#e0ddd5; color:#676a64; background:rgba(255,255,255,.95); }
.map-chip.active { border-color:#28b7bb; color:#fff; background:#28b7bb; }
.map-areas { position:absolute; top:204px; left:0; z-index:10; display:flex; width:100%; gap:7px; padding:0 16px 8px; overflow-x:auto; scrollbar-width:none; }
.map-areas::-webkit-scrollbar { display:none; }
.map-area-chip { flex:0 0 auto; min-height:32px; padding:0 11px; border:1px solid #dde1dc; border-radius:999px; color:#606660; background:rgba(255,255,255,.96); box-shadow:0 6px 16px rgba(31,35,31,.08); font-size:8px; font-weight:800; }
.map-area-chip b { margin-left:3px; color:#9b9f99; font-size:7px; }
.map-area-chip.active { border-color:#263536; color:#fff; background:#263536; }
.map-area-chip.active b { color:#9fe2df; }
.map-school-context[hidden]{display:none}.map-school-context{position:absolute;top:246px;left:16px;z-index:11;display:flex;align-items:center;gap:7px;padding:7px 8px 7px 11px;border:1px solid #d8dcd7;border-radius:999px;color:#fff;background:rgba(18,27,27,.92);box-shadow:0 8px 22px rgba(20,28,26,.16);font-size:8px;backdrop-filter:blur(10px)}.map-school-context b{color:#84ddd6}.map-school-context button{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;color:#1c2927;background:#fff;font-size:14px;line-height:1;cursor:pointer}
.map-place-card { border-color:#ddd9d0; background:rgba(255,255,255,.97); box-shadow:0 15px 35px rgba(32,33,29,.16); }
.map-place-card.active{cursor:pointer}.map-place-close{position:absolute;top:-10px;right:-7px;z-index:3;display:grid;place-items:center;width:27px;height:27px;padding:0;border:1px solid #d8ddd8;border-radius:50%;color:#34403d;background:#fff;box-shadow:0 5px 14px rgba(24,35,32,.13);font-size:17px;line-height:1;cursor:pointer}.map-place-actions{display:grid;gap:6px}.map-place-actions>button,.map-place-actions>a{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #d9dfda;border-radius:50%;background:#fff;cursor:pointer}.map-place-actions>button svg{width:16px;height:16px}.map-place-actions>button.is-saved{border-color:#1d2d2a;color:#fff;background:#1d2d2a}.map-place-actions>button.is-saved svg{fill:currentColor}
.map-place-copy small { color:#27aeb2; }
.map-place-link { color:#fff; background:#1d2428; }
.map-control { border-color:#e2dfd7; background:#fff; }
.map-list-panel[hidden]{display:none}.map-list-panel{position:absolute;z-index:30;right:0;bottom:76px;left:0;display:flex;max-height:66vh;padding:20px 16px 16px;border-radius:26px 26px 0 0;background:#f8f8f5;box-shadow:0 -18px 45px rgba(20,31,28,.2);flex-direction:column}.map-list-head{display:flex;align-items:flex-start;justify-content:space-between;padding:0 2px 14px}.map-list-head small{color:#18a5a8;font-size:8px;font-weight:900;letter-spacing:.12em}.map-list-head h2{margin:5px 0 3px;font-size:22px}.map-list-head p{margin:0;color:#7c837e;font-size:10px}.map-list-head button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid #d9ddd8;border-radius:50%;background:#fff;font-size:21px;cursor:pointer}.map-list-results{display:grid;gap:8px;overflow-y:auto;overscroll-behavior:contain}.map-list-item{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;width:100%;padding:8px;border:1px solid #e0e3df;border-radius:16px;text-align:left;background:#fff;cursor:pointer}.map-list-item>img,.map-list-item>b{display:grid;place-items:center;width:58px;height:54px;border-radius:11px;object-fit:cover;color:#fff;background:#243936;font-size:20px}.map-list-item>span{display:flex;min-width:0;flex-direction:column}.map-list-item small{color:#15999b;font-size:8px;font-weight:800}.map-list-item strong{margin-top:4px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.map-list-item em{margin-top:4px;color:#838984;font-size:8px;font-style:normal}
.map-place-visual { display:grid; place-items:center; width:78px; height:64px; border-radius:13px; color:#fff; background:linear-gradient(145deg,#718592,#34464c); }
.map-place-visual span { font-size:23px; font-weight:900; }
.map-place-visual.has-photo { display:block; overflow:hidden; background:#d9d7d0; }
.map-place-visual.has-photo img { width:100%; height:100%; object-fit:cover; }
.map-place-visual.visual-violet { background:linear-gradient(145deg,#a994ea,#7257bf); }
.map-place-visual.visual-pink { background:linear-gradient(145deg,#f59cbc,#d75285); }
.map-place-visual.visual-blue { background:linear-gradient(145deg,#9db6ee,#6383cf); }
.map-place-visual.visual-navy { background:linear-gradient(145deg,#68868c,#324e54); }
.map-place-visual.visual-orange { background:linear-gradient(145deg,#efaa86,#c8673f); }
.map-place-visual.visual-green { background:linear-gradient(145deg,#92bea2,#4e7f63); }
.map-place-visual.visual-beige { background:linear-gradient(145deg,#d9b78c,#a16c34); }
.map-place-visual.visual-coral { background:linear-gradient(145deg,#ef9992,#c84e48); }
.map-place-visual.visual-mint { background:linear-gradient(145deg,#75ced0,#2c9296); }
