/* 지도 앱 화면 (2026-10-14). theme-white.css 다음에 로드한다. 글꼴·글자 크기 체계·정보 구조는 그대로, 색·반경·그림자·배치만 바꾼다.
   A. 홈·공통(대표 캡처 기준): 흰 바탕 + 금색 로고·남색 글자·베이지 QR 띠·금색 탭 밑줄·진짜 지도 카드. 주요 버튼은 기존 초록 #244b50.
   B. 지도 크게 보기(전체 화면): Apple 지도 느낌의 바텀시트·검색 시트·지도 모드 시트 (흰색 #fff + 옅은 청회색 #f2f2f7, 시트 상단 28px, 알약 버튼, 옅은 그림자, 블러).
   C. 대기(스플래시) 화면, 동네 이야기, 시험 사진 자리표시.
   글자 14px 이상 · 터치 영역 44px 이상 · 글자 대비 4.5:1 (dev/sweep.mjs 가 검사). */
:root{
  --m-bg:#f2f2f7;--m-line:#e3e5ea;--m-ink:#1c2733;--m-muted:#566170;
  --m-blue:#1a4f8f;--m-blue-soft:#e0e9f5;--m-lime-soft:#e6f1d4;--m-lime-ink:#3d5d1c;--m-green:#244b50;
  --m-gold-a:#f9de7e;--m-gold-b:#eaa83f;--m-gold-ink:#5d3c05;--brand-gold:#8f6d33;--brand-navy:#172c40;
  --m-shadow:0 10px 32px rgba(28,45,70,.12),0 1px 3px rgba(28,45,70,.06);--m-shadow-s:0 2px 12px rgba(28,45,70,.07);
  --m-glass:rgba(255,255,255,.84);--nav-h:64px;--nav-gap:10px;
}

/* ===== A. 홈·공통 (금색·남색·베이지, 흰 바탕) ===== */
.brand{color:var(--brand-navy)}
.brand svg{color:var(--brand-gold)}
.eyebrow,.section-head .eyebrow{color:#89642f}
.count,.tile-meta span{color:#89642f}
.explore-heading h1{color:var(--brand-navy)}
.slogan-sub{font-size:15px;line-height:1.55;color:#566170;margin-top:8px;font-weight:450}
.hero-copy{min-width:0}
.explore-menu{color:#9a7539;border-color:#e3ddcf;border-radius:14px;background:#fff}
.search-box{border-radius:14px;border:1px solid #d9dee4;background:#fff;box-shadow:0 2px 10px rgba(27,42,58,.05)}
.search-box svg{color:#9a7539}
.qr-top{background:var(--brand-navy);color:#fff;border-radius:12px}
.qr-top:hover{background:#29465e}
.visit-shortcut{background:#f8eedc;border:1px solid #e9d6b0;color:#5f4927;border-radius:14px}
.visit-shortcut:hover{background:#f3e6cb}
.tabs button.active{color:#244b50;border-color:#a47c3b}
.server-banner{background:#eef3ee;color:#3f5f4d;border-radius:8px}
.server-banner::before{background:#69886a}
.server-banner a{color:#244b50;text-decoration:underline}
.btn{border-radius:14px}
.btn.sm{border-radius:16px}
.btn.secondary{background:#eaf1ee;color:#244b50}
.btn.secondary:hover{background:#dde9e4}
.btn.blue{background:var(--m-blue-soft);color:var(--m-blue)}
.btn.blue:hover{background:#d3e0f1}
.discovery-tile,.discovery-tile:nth-child(3n+2),.discovery-tile:nth-child(3n){background:#fff;border:1px solid #e6e8ec;border-radius:18px;box-shadow:0 4px 14px rgba(27,42,58,.06);overflow:hidden}
.tile-image .photo{border-radius:17px 17px 0 0}
.detail-photo{border-radius:0 0 24px 24px}
.bottom-nav a.active::before{background:#a47c3b}
.modal-backdrop{background:rgba(20,32,44,.30)}
.modal{position:relative;background:rgba(255,255,255,.96);border-radius:28px;box-shadow:var(--m-shadow)}
.modal h2{text-align:center;font-size:20px;padding:0 48px}
.modal-close{position:absolute;right:14px;top:14px;float:none;margin:0;background:#e6e8ec;border-radius:50%}
@media(max-width:760px){
  .modal-backdrop{padding:0 8px calc(8px + env(safe-area-inset-bottom));align-items:end}
  .modal{width:100%;max-width:620px;margin:0 auto;border-radius:28px;padding:20px 18px}
}
.seed-note{font-size:14px;line-height:1.6;color:var(--m-muted);text-align:center;margin:18px 0 6px;padding:8px 12px;border-radius:14px;background:#f1f5f9}

/* 진짜 지도 카드 (홈) */
.neighborhood-map.real{height:auto;overflow:visible;background:none;border:0;box-shadow:none;margin:6px 0 30px;border-radius:0}
.real-map-frame{height:270px;position:relative;border-radius:20px;overflow:hidden;border:1px solid #e3e1d8;background:#eef4de}
.home-map-slot{position:absolute;inset:0}
.home-map-slot .map-host{position:absolute;inset:0;width:100%;height:100%}
.real-map-frame .map-fallback{margin:12px;box-shadow:none;border:1px solid var(--m-line)}
.map-actions{gap:10px}
.map-actions .btn{flex:1;min-width:0;padding:10px 6px;font-weight:650}
.map-actions .btn svg{width:20px;height:20px}
.map-host .maplibregl-ctrl-group button{width:44px;height:44px}
.map-host .maplibregl-ctrl-top-right .maplibregl-ctrl{margin:10px 10px 0 0}
.map-host .ah-locate-btn{display:grid;place-items:center;color:#333}
.map-host .maplibregl-ctrl-scale{font-size:14px}

/* ===== C. 대기(스플래시) 화면 ===== */
.server-loader.splash{display:grid;justify-items:center;align-content:start;padding:96px 24px 40px;min-height:100dvh;background:#fff;text-align:center;transition:opacity .22s}
.server-loader.splash.leaving{opacity:0}
.splash-logo .brand{font-size:44px;justify-content:center;gap:12px;animation:splash-breathe 2.4s ease-in-out infinite}
.splash-logo .brand svg{width:56px;height:52px}
.server-loader.splash h2{font-size:28px;line-height:1.35;color:var(--brand-navy);margin:40px 0 16px;letter-spacing:-.8px;font-weight:750}
.server-loader.splash .hint{font-size:17px;color:#6b7380;min-height:28px}
.splash-bar{width:min(220px,60%);height:4px;border-radius:2px;background:#ece8de;overflow:hidden;margin:30px 0 20px;position:relative}
.splash-bar span{position:absolute;top:0;bottom:0;left:0;width:40%;border-radius:2px;background:linear-gradient(90deg,#b48c4a,#8f6d33);animation:splash-bar 1.4s ease-in-out infinite}
.splash-dots{display:flex;gap:8px}
.splash-dots i{width:8px;height:8px;border-radius:50%;background:#b8a27a;animation:splash-dot 1.2s infinite}
.splash-dots i:nth-child(2){animation-delay:.2s}.splash-dots i:nth-child(3){animation-delay:.4s}
.server-loader.splash .btn{margin-top:28px}
@keyframes splash-breathe{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.07);opacity:1}}
@keyframes splash-bar{0%{transform:translateX(-110%)}100%{transform:translateX(280%)}}
@keyframes splash-dot{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media(prefers-reduced-motion:reduce){.splash-bar,.splash-dots{display:none}.splash-logo .brand{animation:none}}

/* ===== 시험 사진 자리표시: 대표 앱의 사진 자산(neighborhood.webp)을 다른 구도로 잘라 쓰고, 생활 분류는 그라데이션 ===== */
.photo.p11{background-size:600% auto;background-position:0% 100%}
.photo.p12{background-size:600% auto;background-position:20% 20%}
.photo.p13{background-size:600% auto;background-position:40% 100%}
.photo.p14{background-size:600% auto;background-position:60% 25%}
.photo.p15{background-size:600% auto;background-position:80% 100%}
.photo.p16{background-size:600% auto;background-position:100% 100%}
.photo.p6,.photo.p10{background-size:auto;background-position:0 0;background-repeat:no-repeat}
.photo.p6{background-image:radial-gradient(circle at 72% 28%,rgba(255,255,255,.6),transparent 42%),linear-gradient(135deg,#d6e9f8,#9ec3e6)}
.photo.p10{background-image:radial-gradient(circle at 28% 72%,rgba(255,255,255,.55),transparent 42%),linear-gradient(135deg,#e4e2f6,#b6b4e3)}

/* ===== 동네 이야기 ===== */
.comm-tabs .tabs{overflow-x:auto;justify-content:flex-start;gap:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.comm-tabs .tabs::-webkit-scrollbar{display:none}
.comm-tabs .tabs button{flex-shrink:0;padding-left:14px;padding-right:14px}
.post-list{display:grid;gap:12px;margin-top:8px}
.post{display:grid;grid-template-columns:84px 1fr;gap:14px;background:#fff;border:1px solid #e6e8ec;border-radius:18px;padding:14px;box-shadow:0 4px 14px rgba(27,42,58,.05)}
.post-art{width:84px;height:84px;border-radius:16px;display:grid;place-items:center;color:rgba(255,255,255,.95)}
.post-art svg{width:32px;height:32px}
.art-g1{background:linear-gradient(135deg,#7fb5a0,#3f7a6b)}.art-g2{background:linear-gradient(135deg,#f2b79c,#d9775a)}.art-g3{background:linear-gradient(135deg,#9bc2ea,#5b8fc7)}
.art-g4{background:linear-gradient(135deg,#d9c27a,#b08a2e)}.art-g5{background:linear-gradient(135deg,#b9a6e6,#7d63c4)}.art-g6{background:linear-gradient(135deg,#a7d08a,#5f9a45)}
.post-main{min-width:0}.post-main h3{margin:6px 0 4px;font-size:17px}.post-main .review-text{margin-top:4px;line-height:1.65}
.stops{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px;counter-reset:s}
.stops li{counter-increment:s;font-size:14px;background:var(--m-blue-soft);color:var(--m-blue);border-radius:999px;padding:4px 10px}
.stops li::before{content:counter(s) ' ';font-weight:700}
@media(max-width:360px){.post{grid-template-columns:1fr}.post-art{width:100%;height:64px}}

/* ===== B. 지도 크게 보기 (전체 화면) ===== */
html.maps-lock,html.maps-lock body{overflow:hidden;height:100%;overscroll-behavior:none}
.shell.maps{display:block;max-width:none}
.shell.maps .topbar,.shell.maps .sidebar,.shell.maps .right-rail,.shell.maps .server-banner{display:none}
.shell.maps .main-shell{padding:0;background:transparent}
.shell.maps .content{padding:0}
.maps-home{position:fixed;inset:0;z-index:1;overflow:hidden;background:#eef4de;--sh:340px}
.map-slot{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,#eef4de,#e4efd2)}
.map-slot .map-host{position:absolute;inset:0;width:100%;height:100%}
.map-host .maplibregl-canvas{outline:0}
.map-host[data-kind=full] .maplibregl-ctrl-top-right,.map-host[data-kind=full] .maplibregl-ctrl-bottom-left{display:none}
.map-top{position:absolute;z-index:5;left:12px;right:12px;top:calc(10px + env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none}
.map-top>*{pointer-events:auto}
.map-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;background:var(--m-glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);box-shadow:var(--m-shadow-s);font-weight:650;color:var(--m-ink);font-size:14px;max-width:48%}
.map-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-chip svg{width:18px;height:18px;color:var(--m-green)}
.map-chip svg:last-child{width:14px;height:14px}
.map-top-actions{display:flex;gap:8px}
.map-round{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--m-glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);box-shadow:var(--m-shadow-s);color:var(--m-green)}
.map-round svg{width:21px;height:21px}
.map-ctrl{position:absolute;z-index:6;right:12px;bottom:calc(var(--sh) + 14px);display:flex;flex-direction:column;border-radius:24px;background:var(--m-glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);box-shadow:var(--m-shadow);overflow:hidden;transition:bottom .28s cubic-bezier(.2,.8,.2,1)}
.map-ctrl button{width:48px;height:48px;display:grid;place-items:center;color:var(--m-green)}
.map-ctrl button.txt{font-weight:800;font-size:15px}
.map-ctrl button[aria-pressed=true]{background:rgba(36,75,80,.12)}
.map-ctrl button+button{border-top:1px solid var(--m-line)}
.map-ctrl svg{width:22px;height:22px}
.maps-home.ctrl-hide .map-ctrl{opacity:0;visibility:hidden;pointer-events:none}
.maps-home:has(.sheet.dragging) .map-ctrl{transition:none}

.sheet{position:absolute;z-index:7;left:0;right:0;bottom:0;margin:0 auto;max-width:640px;height:var(--sh);display:flex;flex-direction:column;border-radius:28px 28px 0 0;background:rgba(242,242,247,.9);-webkit-backdrop-filter:blur(28px) saturate(1.6);backdrop-filter:blur(28px) saturate(1.6);box-shadow:0 -8px 40px rgba(20,40,60,.16);transition:height .28s cubic-bezier(.2,.8,.2,1)}
.sheet.dragging{transition:none}
.sheet-grab{position:relative;z-index:0;flex:0 0 auto;align-self:stretch;height:44px;margin-bottom:-14px;display:flex;justify-content:center;align-items:flex-start;padding-top:8px;touch-action:none;cursor:grab}
.sheet-grab span{width:40px;height:5px;border-radius:3px;background:#b9bec6}
.sheet-head{position:relative;z-index:1;flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:0 14px 8px}
.sheet-head .search-box{flex:1;min-width:0;height:52px;background:#fff;border:0;border-radius:999px;box-shadow:var(--m-shadow-s);padding:0 6px 0 16px}
.sheet-head .search-box input{font-size:16px}
.sheet-head .search-box svg{color:#6b7683}
.round-btn{width:52px;height:52px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;background:#fff;box-shadow:var(--m-shadow-s);color:var(--m-ink)}
.round-btn svg{width:22px;height:22px}
.avatar-btn{background:linear-gradient(145deg,#3f7a6b,#244b50);color:#fff;font-weight:700;font-size:18px}
.place-head{justify-content:space-between;padding:6px 18px 4px}
.place-kicker{font-size:14px;font-weight:700;color:var(--m-muted)}
.place-head .round-btn{width:44px;height:44px}
.sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px 16px calc(var(--nav-h) + var(--nav-gap) + 30px + env(safe-area-inset-bottom))}
.maps-home[data-sheet=peek] .sheet-body{visibility:hidden}
.maps-home[data-sheet=peek] .sheet{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.maps-home[data-sheet=peek] .sheet::before{content:'';position:absolute;z-index:0;left:10px;right:10px;top:0;height:92px;border-radius:30px;background:var(--m-glass);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);box-shadow:var(--m-shadow)}
.maps-home[data-sheet=peek] .sheet-head .search-box{background:#e9ebee;box-shadow:none}
.maps-home[data-sheet=peek] .sheet-head .round-btn{box-shadow:none}
.maps-home[data-view=place] .sheet-grab{display:none}
.sheet .explore-heading{margin:4px 0 10px}
.sheet .explore-heading h1{font-size:26px;line-height:1.3;letter-spacing:-.8px;color:var(--m-ink)}
.sec-title{font-size:20px;font-weight:750;letter-spacing:-.5px;margin:22px 0 10px;color:var(--m-ink)}
.sec-row{margin-top:22px}.sec-row .sec-title{margin:0}
.shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.shortcut{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;padding:2px 0;min-height:44px;color:var(--m-ink)}
.sc-ico{width:100%;max-width:64px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:var(--m-blue-soft);color:#1a5fb4;margin-bottom:4px}
.sc-ico svg{width:28px;height:28px}
.sc-ico.gold{background:linear-gradient(160deg,var(--m-gold-a),var(--m-gold-b));color:var(--m-gold-ink)}
.sc-label{font-size:14px;font-weight:650;line-height:1.3}
.sc-sub{font-size:14px;color:var(--m-blue);line-height:1.3}
.pill-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;margin-top:16px;border-radius:999px;background:var(--m-blue-soft);color:var(--m-blue);font-weight:650;font-size:16px}
.pill-btn svg{width:22px;height:22px}
.pill-btn:hover{background:#d3e0f1}
.sheet .tabs{margin:18px -16px 10px;padding:2px 16px 6px;border:0;gap:8px;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
.sheet .tabs::-webkit-scrollbar{display:none}
.sheet .tabs button{border:0;border-radius:999px;background:#fff;color:var(--m-ink);padding:0 16px;min-height:44px;font-weight:600;box-shadow:var(--m-shadow-s);flex-shrink:0}
.sheet .tabs button.active{background:var(--m-green);color:#fff;border:0}
.sheet .section-head{margin:8px 0 6px}
.sheet .filterline{margin:0 0 14px}
.sheet .discovery-grid{column-gap:12px;row-gap:14px}
.sheet .search-box{border-radius:999px}
.sheet-foot{text-align:center;margin-top:12px}
.group-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:var(--m-shadow-s)}
.group-item{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-height:58px;padding:6px 16px;text-align:left;font-size:17px;font-weight:650;color:var(--m-ink)}
.group-item+.group-item::before{content:'';position:absolute;top:0;left:66px;right:0;border-top:1px solid #e6e8ec}
.group-item:hover{background:#f7f8fa}
.ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.ico svg{width:20px;height:20px}
.c-brown{background:#fbe8d6;color:#a24a0b}.c-coral{background:#fde1da;color:#b3361b}.c-gold{background:#fbf0c8;color:#8a6200}.c-blue{background:#dce9fb;color:#1a5fb4}
.c-green{background:#dcefdc;color:#2a6b3c}.c-sky{background:#d9eefa;color:#0f6c9a}.c-violet{background:#e8e1f8;color:#5a3bb0}.c-pink{background:#fbdfe9;color:#b01e5a}
.c-gray{background:#e8eaee;color:#4a5563}.c-lime{background:var(--m-lime-soft);color:var(--m-lime-ink)}
.comm-card{display:flex;align-items:center;gap:14px;margin-top:18px;padding:14px 16px;min-height:64px;border-radius:22px;background:#fff;box-shadow:var(--m-shadow-s)}
.comm-card strong{display:block;font-size:16px}.comm-card small{display:block;color:var(--m-muted)}
.comm-card .chevron{color:var(--m-muted);width:20px;height:20px}
.map-notice{margin:6px 0 4px;padding:12px 14px;border-radius:18px;background:var(--m-blue-soft);color:var(--m-blue);display:grid;gap:8px;justify-items:start}
.map-notice p{font-size:14px;line-height:1.6}
.place-card{background:#fff;border-radius:22px;padding:14px;box-shadow:var(--m-shadow-s)}
.place-row{display:flex;gap:12px;align-items:flex-start}
.place-row .photo-link{flex:0 0 92px}
.place-row .photo{width:92px;aspect-ratio:1;border-radius:16px}
.place-row h2{font-size:20px;line-height:1.3;margin:2px 0 2px}
.place-row .eyebrow{margin:0;font-size:14px}
.place-row .proof{margin-top:6px}
.place-card .well{box-shadow:none;background:var(--m-bg);padding:12px;margin-top:12px;border:0}
@media(max-width:360px){.place-row .photo-link{flex-basis:72px}.place-row .photo{width:72px;border-radius:14px}.place-row h2{font-size:18px}}
.place-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.place-actions .btn:first-child{grid-column:1/-1}
.place-actions .btn{padding:8px 10px;min-height:46px;border-radius:999px}
.maps-home.no-map{position:static;overflow:visible;background:transparent;min-height:100dvh}
.maps-home.no-map .map-top{position:static;padding:10px 12px 0}
.maps-home.no-map .sheet{position:static;height:auto;background:transparent;box-shadow:none;max-width:none;transition:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.maps-home.no-map .sheet-grab{display:none}
.maps-home.no-map .sheet-head{padding-top:10px}
.maps-home.no-map .sheet-body{overflow:visible}
.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mode-btn{display:flex;flex-direction:column;align-items:center;gap:8px;min-height:44px;padding:4px;border-radius:20px;font-weight:600;font-size:14px;color:var(--m-ink);text-align:center}
.mode-thumb{width:100%;max-width:92px;aspect-ratio:1;border-radius:20px;border:3px solid transparent;box-shadow:0 0 0 1px var(--m-line)}
.mode-btn.on .mode-thumb{border-color:var(--m-green);box-shadow:none}
.mode-btn.on{color:var(--m-green);font-weight:750}
.modal-foot{text-align:center;margin-top:14px}

/* 지도 위 핀 · 내 위치 */
.ah-pin{width:44px;height:44px;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}
.pin-body{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--m-green);box-shadow:0 3px 10px rgba(20,50,50,.24),0 0 0 1px rgba(36,75,80,.1);transition:width .15s,height .15s,background .15s}
.pin-body svg{width:20px;height:20px}
.ah-pin.selected .pin-body{width:46px;height:46px;background:var(--m-green);color:#fff;box-shadow:0 6px 16px rgba(36,75,80,.42)}
.ah-pin.selected .pin-body svg{width:23px;height:23px}
.ah-pin.closed .pin-body{background:#f1f3f5;color:#6b7683}
.pin-name{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:700;color:var(--m-ink);background:rgba(255,255,255,.96);padding:3px 10px;border-radius:999px;box-shadow:var(--m-shadow-s)}
.ah-me{position:relative;width:20px;height:20px}
.ah-me-dot{position:absolute;inset:0;border-radius:50%;background:#2f7bf6;border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 2px 6px rgba(20,60,140,.45)}
.ah-me-cone{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;pointer-events:none}
/* 저작자 표시: 작은 (i) 단추 → 누르면 글이 펼쳐진다. 전체 화면에서는 시트에 가려지지 않게 오른쪽 위에 둔다 */
.map-host .maplibregl-ctrl-attrib{background:var(--m-glass);border-radius:22px;box-shadow:var(--m-shadow-s);font-size:14px;color:#1c2733}
.map-host .maplibregl-ctrl-attrib.maplibregl-compact{min-height:44px;min-width:44px;padding:0}
.map-host .maplibregl-ctrl-attrib-button{width:44px;height:44px;background-size:22px 22px;background-repeat:no-repeat;background-position:center;border-radius:50%}
.map-host .maplibregl-ctrl-attrib.maplibregl-compact-show{padding:6px 44px 6px 12px;max-width:calc(100vw - 80px)}
.map-host[data-kind=full] .maplibregl-ctrl-attrib.maplibregl-compact-show{max-width:min(300px,calc(100vw - 80px))}
.map-host .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{position:absolute;right:0;top:0}
.map-host .maplibregl-ctrl-attrib a{color:#0f4c81;text-decoration:underline}
.map-host .maplibregl-ctrl-attrib-inner{line-height:1.5}
.map-host[data-kind=full] .maplibregl-ctrl-bottom-right{bottom:auto;top:calc(64px + env(safe-area-inset-top));right:2px}
.map-host[data-kind=full] .maplibregl-ctrl-attrib{margin:0 10px 0 0}

/* 지도 크게 보기에서만 아래 탭바를 떠 있는 알약으로 */
@media(max-width:760px){
  .shell.maps .bottom-nav{left:0;right:0;width:calc(100% - 24px);max-width:460px;margin:0 auto;transform:none;bottom:calc(var(--nav-gap) + env(safe-area-inset-bottom));height:var(--nav-h);min-height:var(--nav-h);padding:6px 8px;border:0;border-radius:999px;background:var(--m-glass);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);box-shadow:0 10px 30px rgba(28,45,70,.16),0 1px 3px rgba(28,45,70,.08);z-index:40;align-items:center;gap:2px}
  .shell.maps .bottom-nav a{flex:1;min-width:0;min-height:50px;border-radius:999px;padding:0 4px}
  .shell.maps .bottom-nav a.active{background:rgba(36,75,80,.1)}
  .shell.maps .bottom-nav a.active::before{display:none}
}
@media(min-width:761px){
  .shell.maps .bottom-nav{display:flex;position:fixed;top:14px;bottom:auto;left:calc(50% + 208px);transform:translateX(-50%);width:auto;gap:4px;padding:6px 10px;border:0;border-radius:999px;background:var(--m-glass);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:var(--m-shadow);z-index:40}
  .shell.maps .bottom-nav a{min-width:72px;min-height:48px;border-radius:999px;display:grid;justify-items:center}
  .shell.maps .bottom-nav a.active{background:rgba(36,75,80,.1)}
  .shell.maps .bottom-nav a.active::before{display:none}
  .sheet{left:16px;right:auto;top:16px;bottom:16px;height:auto;width:400px;margin:0;border-radius:28px}
  .sheet-grab{display:none}
  .sheet-body{padding-bottom:24px}
  .map-top{left:432px;right:16px;top:14px}
  .map-top-actions{margin-left:auto}
  .map-ctrl{bottom:24px;right:16px}
  .maps-home.ctrl-hide .map-ctrl{opacity:1;visibility:visible;pointer-events:auto}
  .maps-home[data-sheet=peek] .sheet::before{display:none}
  .maps-home[data-sheet=peek] .sheet{background:rgba(242,242,247,.9);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);box-shadow:0 -8px 40px rgba(20,40,60,.16)}
  .maps-home[data-sheet=peek] .sheet-body{visibility:visible}
  .map-host[data-kind=full] .maplibregl-ctrl-bottom-right{top:70px}
}
@supports not (backdrop-filter:blur(1px)){.sheet,.map-chip,.map-round,.map-ctrl,.shell.maps .bottom-nav{background:#f7f7fa}}

/* ===== 10/15 추가: 지도 홈 버튼 · 지도 크게 보기 강조 · 사장님/총괄 앱 레이아웃 ===== */
/* 전체 화면 지도: 왼쪽 위 "홈" 버튼 (사이드바·위 막대가 숨겨지므로 돌아갈 길을 항상 보이게) */
.map-home-btn{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 16px 0 10px;border-radius:999px;background:#1f3d42;color:#fff;font-weight:700;font-size:15px;box-shadow:0 6px 18px rgba(20,40,60,.25);flex:none}
.map-home-btn svg{width:20px;height:20px}
.map-home-btn:hover{background:#244b50}
.map-home-btn:focus-visible{outline:3px solid #8cc7b5;outline-offset:2px}
.map-top .map-chip{margin-right:auto;max-width:40%}
/* 홈 카드 지도의 "지도 크게 보기": 작은 글씨 링크 → 꽉 찬 진한 버튼 */
.map-expand-btn{min-height:52px;font-size:16px;font-weight:750;border-radius:14px;background:#1f3d42;color:#fff;box-shadow:0 8px 22px rgba(31,61,66,.28);gap:10px}
.map-expand-btn svg{width:20px;height:20px}
.map-expand-btn:hover{background:#244b50}
.map-expand-btn:focus-visible{outline:3px solid #8cc7b5;outline-offset:2px}
/* 사장님용·총괄용 앱: 손님 기록 칸(오른쪽) 없이 본문을 넓게 */
.shell.staff .right-rail{display:none}
.shell.staff{grid-template-columns:220px minmax(0,1fr);max-width:1180px}
@media(max-width:1120px){.shell.staff{grid-template-columns:210px minmax(0,1fr)}}
