:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#667085;--line:#e4e7ec;--accent:#0f766e;--accent-dark:#0b5f59;--navy:#0f172a;--blue:#1e3a8a;--kiipay:#f59e0b;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}button,input{font:inherit}.map-page{margin:0;overflow:hidden;background:var(--bg)}.map-page.modal-open{overflow:hidden}.map-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:linear-gradient(120deg,var(--navy),var(--blue));color:#fff}.map-brand{display:flex;align-items:baseline;gap:10px;color:#fff;text-decoration:none}.map-brand strong{font-size:19px}.map-brand span{color:#dbeafe;font-size:14px}.map-header nav{display:flex;gap:5px}.map-header nav a{color:#dbeafe;text-decoration:none;padding:9px 12px;border-radius:10px;font-weight:800;font-size:14px}.map-header nav a:hover,.map-header nav a.active{background:rgba(255,255,255,.14);color:#fff}.map-search-row{min-height:62px;padding:10px 14px;display:flex;gap:9px;background:#fff;border-bottom:1px solid var(--line)}.map-search-box{display:flex;align-items:center;gap:8px;flex:1;border:1px solid #d0d5dd;border-radius:12px;padding-left:12px;overflow:hidden}.map-search-box>span{font-size:22px;color:#667085}.map-search-box input{flex:1;border:0;outline:0;padding:11px 0;font-size:16px;min-width:100px}.map-search-box button,.outline-button{border:0;background:var(--accent);color:#fff;font-weight:800;padding:12px 16px;height:100%;cursor:pointer}.outline-button{height:auto;border:1px solid var(--accent);background:#fff;color:var(--accent);border-radius:12px}.filter-panel{background:#fff;border-bottom:1px solid var(--line);padding:10px 14px}.filter-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.filter-heading strong{display:block;font-size:14px}.filter-heading span{display:block;font-size:12px;color:var(--muted);margin-top:2px}.text-button{border:0;background:none;color:var(--accent);font-weight:800;padding:3px;cursor:pointer}.parent-filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:3px}.parent-filter{display:flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}.parent-filter i{font-style:normal;color:#98a2b3}.parent-filter b{display:grid;place-items:center;min-width:21px;height:21px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px}.parent-filter.active{border-color:var(--accent);background:#ecfdf5;color:#067647}.parent-filter.service-filter{border-color:#f4c45e}.filter-loading,.filter-error{font-size:13px;color:var(--muted);padding:8px}.selected-filters{display:flex;gap:6px;overflow-x:auto;padding-top:9px}.selected-chip{border:1px solid #a7f3d0;background:#ecfdf5;color:#067647;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}.selected-chip span{color:#475467;margin-right:5px;font-weight:600}.map-status-row{height:48px;display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:#f8fafc;border-bottom:1px solid var(--line);font-size:13px;color:#475467}.view-tabs{display:flex;background:#fff;padding:3px;border:1px solid var(--line);border-radius:999px}.view-tabs button{border:0;background:transparent;color:#475467;border-radius:999px;padding:6px 13px;font-weight:800;cursor:pointer}.view-tabs button.active{background:var(--navy);color:#fff}.map-main{height:calc(100vh - 64px - 62px - 105px - 48px)}#map,.place-list{width:100%;height:100%}.place-list{overflow:auto;padding:14px}.place-card{display:grid;grid-template-columns:108px 1fr;gap:13px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;margin:0 auto 10px;max-width:880px;box-shadow:0 5px 18px rgba(15,23,42,.05);cursor:pointer}.place-card-photo img,.no-photo{width:108px;height:96px;object-fit:cover;border-radius:12px}.no-photo{display:grid;place-items:center;background:#e2e8f0;font-size:30px}.place-card h3{margin:1px 0 7px}.place-card p{margin:7px 0;color:#475467;line-height:1.55;font-size:14px}.badge{display:inline-block;padding:3px 8px;border-radius:999px;background:#edf2f7;font-size:12px;margin-right:5px;font-weight:800}.badge.kiipay,.mini-tag.kiipay,.detail-tag.kiipay{background:#fff7df;color:#a15c00;border-color:#f7cc70}.mini-tags,.detail-tags{display:flex;flex-wrap:wrap;gap:5px}.mini-tag,.detail-tag{font-size:11px;border:1px solid #e4e7ec;background:#f8fafc;padding:3px 7px;border-radius:999px;color:#475467}.empty-result{text-align:center;padding:80px 20px;color:#667085}.empty-result strong{display:block;color:#344054;font-size:18px;margin-bottom:6px}.place-sheet{position:fixed;z-index:30;left:50%;bottom:0;transform:translateX(-50%);width:min(680px,100%);max-height:82vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px #0003;padding:20px}.sheet-close{position:absolute;right:13px;top:11px;border:0;background:rgba(255,255,255,.92);font-size:29px;width:38px;height:38px;border-radius:50%;cursor:pointer}.sheet-photo{width:100%;height:240px;object-fit:cover;border-radius:15px}.place-sheet h2{margin:16px 0 8px}.sheet-description{line-height:1.75;color:#344054}.sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.sheet-actions a{display:inline-block;text-decoration:none;background:var(--accent);color:#fff;border-radius:11px;padding:11px 14px;font-weight:800}.sheet-actions a.secondary{background:#eef2f6;color:#173f67}.map-marker{width:40px;height:40px;border:3px solid #fff;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);display:grid;place-items:center;background:var(--navy);box-shadow:0 3px 10px #0005;cursor:pointer;opacity:.8;transition:opacity .15s ease}.map-marker span{transform:rotate(45deg);font-size:18px}.map-marker.kiipay{outline:3px solid var(--kiipay)}.tag-modal[hidden]{display:none}.tag-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:end center}.tag-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.46);width:100%;height:100%}.tag-modal-card{position:relative;width:min(620px,100%);max-height:78vh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -15px 50px rgba(15,23,42,.25)}.tag-modal-card header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.tag-modal-card header span{font-size:12px;color:var(--muted);font-weight:800}.tag-modal-card h2{margin:3px 0 0;font-size:21px}.modal-close{border:0;background:#f2f4f7;width:38px;height:38px;border-radius:50%;font-size:25px;cursor:pointer}.tag-modal-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:18px 20px}.tag-option{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;font-weight:700;cursor:pointer}.tag-option:has(input:checked){border-color:var(--accent);background:#ecfdf5;color:#067647}.tag-option.kiipay-option{border-color:#f4c45e}.tag-option input{width:18px;height:18px;accent-color:var(--accent)}.tag-modal-card footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:9px;padding:13px 20px;background:#fff;border-top:1px solid var(--line)}.tag-modal-card footer button{border:0;border-radius:11px;padding:12px 16px;background:var(--accent);color:#fff;font-weight:800;cursor:pointer}.tag-modal-card footer .secondary-button{background:#eef2f6;color:#344054}@media(max-width:720px){.map-header{height:auto;min-height:60px;padding:10px 13px}.map-header nav a{padding:8px 7px;font-size:12px}.map-brand span{display:none}.map-search-row{min-height:58px}.map-search-box button{padding:10px}.outline-button{padding:9px}.filter-panel{padding:9px 11px}.filter-heading span{display:none}.map-main{height:calc(100vh - 60px - 58px - 97px - 48px)}.tag-modal-options{grid-template-columns:1fr}.place-card{grid-template-columns:90px 1fr}.place-card-photo img,.no-photo{width:90px;height:86px}.place-sheet{padding:15px}.sheet-photo{height:195px}}@media(max-width:460px){.map-header nav a:first-child{display:none}.map-search-box>span{display:none}.parent-filter{padding:7px 10px}.map-main{height:calc(100vh - 60px - 58px - 94px - 48px)}}

.map-header nav{display:none!important}.global-page-actions{position:fixed;top:10px;right:12px;z-index:5000;display:flex;gap:8px}.global-page-actions a{background:#fff;color:#17324d;border:1px solid rgba(23,50,77,.2);border-radius:999px;padding:9px 14px;text-decoration:none;font-weight:800;box-shadow:0 5px 18px rgba(13,35,61,.18)}.map-photo-carousel{position:fixed;z-index:20;left:0;right:0;bottom:6px;display:flex;gap:14px;overflow-x:auto;padding:0 28px 8px;scroll-snap-type:x mandatory;scroll-padding:28px}.map-photo-carousel[hidden]{display:none}.map-photo-card{flex:0 0 min(360px,74vw);scroll-snap-align:center;overflow:hidden;border:2px solid transparent;border-radius:15px;background:#fff;color:#344054;padding:0;text-align:left;box-shadow:0 9px 26px rgba(15,23,42,.24);cursor:pointer}.map-photo-card img{display:block;width:100%;height:145px;object-fit:cover;background:#e2e8f0}.map-photo-card span{display:block;padding:10px 13px;font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-photo-card.is-active{border-color:#d9493f;box-shadow:0 9px 28px rgba(185,47,42,.4)}.map-marker.is-active{background:#d9493f!important;outline:3px solid #fff;box-shadow:0 4px 14px rgba(151,35,31,.7);opacity:1}

.filter-heading{margin-bottom:0}.filter-toggle{border:0;background:transparent;padding:0;color:var(--text);text-align:left;cursor:pointer}.filter-toggle strong::after{content:'⌄';display:inline-block;margin-left:7px;color:var(--accent);font-size:17px;transition:transform .16s}.filter-toggle[aria-expanded="true"] strong::after{transform:rotate(180deg)}.filter-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.parent-filters{padding-top:12px}.map-main{height:calc(100vh - 64px - 62px - 57px - 48px)}.filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - 64px - 62px - 105px - 48px)}.map-page.kiipay-only-map .map-main{height:calc(100vh - 64px - 62px - 57px - 48px - 38px)}.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - 64px - 62px - 105px - 48px - 38px)}@media(max-width:720px){.filter-heading span{display:block}.map-main{height:calc(100vh - 60px - 58px - 55px - 48px)}.filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - 60px - 58px - 97px - 48px)}.map-page.kiipay-only-map .map-main{height:calc(100vh - 60px - 58px - 55px - 48px - 64px)}.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - 60px - 58px - 97px - 48px - 64px)}}

.release-map-notice{display:flex;align-items:center;gap:9px;padding:9px 14px;background:#fff7df;border-bottom:1px solid #f7cc70;color:#7a4700;font-size:13px}.release-map-notice strong{font-size:14px}.release-map-notice span{color:#8b5a13}.map-page.kiipay-only-map .map-main{height:calc(100vh - 64px - 62px - 105px - 48px - 38px)}.retry-load{border:1px solid var(--accent);border-radius:999px;background:#fff;color:var(--accent);font-size:12px;font-weight:800;padding:6px 11px;cursor:pointer}.retry-load:hover{background:#ecfdf5}@media(max-width:720px){.map-photo-carousel{bottom:6px;gap:10px;padding:0 14px 5px;scroll-padding:14px}.map-photo-card{flex-basis:78vw}.map-photo-card img{height:115px}.map-photo-card span{padding:8px 10px;font-size:14px}.release-map-notice{align-items:flex-start;flex-direction:column;gap:2px}.map-page.kiipay-only-map .map-main{height:calc(100vh - 60px - 58px - 97px - 48px - 64px)}}

/* 折り畳み時は地図を広く、開いた時はフィルター分だけ地図を縮める。 */
.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - 64px - 62px - 105px - 48px - 38px)}.map-page.kiipay-only-map .filter-panel:has(#filterControls[hidden]) ~ .map-main{height:calc(100vh - 64px - 62px - 57px - 48px - 38px)}@media(max-width:720px){.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - 60px - 58px - 97px - 48px - 64px)}.map-page.kiipay-only-map .filter-panel:has(#filterControls[hidden]) ~ .map-main{height:calc(100vh - 60px - 58px - 55px - 48px - 64px)}}

/* 写真未登録の地点でも、空欄ではなく状態を明示する。 */
.no-photo{grid-template-rows:1fr auto;padding:12px;color:#64748b}.no-photo span{font-size:28px}.no-photo small{font-size:12px;font-weight:800;letter-spacing:.04em}.sheet-no-image,.map-photo-card-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#475569;font-size:15px;font-weight:800}.map-photo-card-placeholder{height:145px}.sheet-no-image{height:240px}@media(max-width:720px){.map-photo-card-placeholder{height:115px}.sheet-no-image{height:195px}}

.route-plan-button{border:0;background:transparent;color:#475467;font-size:12px;font-weight:800;padding:7px 3px;white-space:nowrap}.route-plan-button:disabled{opacity:1}.route-plan-open-button{margin-left:auto;border:1px solid #0f766e;border-radius:999px;background:#ecfdf5;color:#065f57;font-size:12px;font-weight:800;padding:7px 10px;white-space:nowrap;cursor:pointer}.route-plan-add{border:0;border-radius:11px;padding:11px 14px;font-weight:800;cursor:pointer}.route-plan-add:disabled{opacity:.65;cursor:default}

.route-plan-panel{position:fixed;z-index:45;top:76px;right:16px;width:min(350px,calc(100vw - 32px));max-height:calc(100vh - 92px);overflow:auto;border:1px solid #d7e2df;border-radius:16px;background:#fff;box-shadow:0 16px 42px rgba(15,23,42,.24)}.route-plan-panel[hidden]{display:none}.route-plan-panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 15px 10px;border-bottom:1px solid #e5ece9}.route-plan-panel header strong{font-size:16px}.route-plan-panel header button,.route-plan-panel-item button{border:0;background:transparent;color:#64748b;font-size:24px;cursor:pointer}.route-plan-panel-count{margin:10px 15px;color:#64748b;font-size:13px;font-weight:700}.route-plan-panel-count span{display:block;margin-top:3px;font-size:11px;font-weight:600}.route-plan-panel-items{padding:0 15px 10px}.route-plan-panel-item{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eef2f0;font-size:14px;font-weight:700}.route-plan-panel-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-plan-panel-empty{color:#667085;font-size:13px;line-height:1.6}.route-plan-panel footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 15px 15px;border-top:1px solid #e5ece9}.route-plan-panel footer a{display:grid;place-items:center;min-height:42px;border-radius:10px;text-decoration:none;font-size:13px;font-weight:800}.route-plan-panel footer .secondary{background:#eef2f6;color:#173f67}.route-plan-panel footer .primary{background:var(--accent);color:#fff}@media(max-width:720px){.route-plan-open-button{max-width:170px;overflow:hidden;text-overflow:ellipsis}.route-plan-panel{top:auto;right:8px;left:8px;width:auto;bottom:8px;max-height:52vh;border-radius:18px}.route-plan-panel footer{position:sticky;bottom:0;background:#fff}}

/* きいPAY加盟店マップ：ホームと共通のヘッダーと、横並び検索導線 */
.kiipay-map-header{--kiipay-map-header-height:126px;position:relative;height:var(--kiipay-map-header-height);display:block;padding:0;overflow:hidden;background:linear-gradient(125deg,#d95b4f 0%,#d95b4f 22%,#bd9639 51%,#72bf1d 100%)}
.kiipay-map-brand{position:absolute;z-index:2;left:24px;top:24px;display:block}.kiipay-map-brand img{display:block;width:52px;height:52px}.kiipay-map-copyright{position:absolute;z-index:2;top:78px;left:24px;margin:0;color:#fff;font-size:9px;font-weight:700;letter-spacing:-.04em;text-shadow:0 1px 3px rgba(25,40,15,.7)}
.kiipay-map-title{position:absolute;z-index:1;top:2px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;width:clamp(390px,38vw,590px)}.kiipay-map-title img:first-child{display:block;flex:1 1 auto;min-width:0;width:auto;height:auto}.kiipay-map-title img:last-child{display:block;flex:none;width:clamp(14px,2.1vw,26px);height:auto}
.map-search-row{justify-content:flex-start;align-items:center}.map-search-box{flex:0 1 560px;max-width:560px}.filter-search-toggle{display:flex;flex-direction:column;justify-content:center;min-width:124px;min-height:46px;border:1px solid var(--accent);border-radius:12px;background:#fff;color:var(--accent);padding:7px 12px;text-align:left;cursor:pointer}.filter-search-toggle strong{font-size:14px}.filter-search-toggle span{font-size:11px;line-height:1.2;color:#667085;margin-top:2px}.filter-search-toggle[aria-expanded="true"]{background:#ecfdf5}.filter-panel:has(#filterControls[hidden]){display:none}.filter-panel{padding:8px 14px}.filter-heading{justify-content:flex-end;margin:0 0 3px}.map-page.kiipay-only-map .map-main,.map-main{height:calc(100vh - var(--kiipay-map-header-height) - 62px - 48px)}.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main,.filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - var(--kiipay-map-header-height) - 62px - 97px - 48px)}
@media(max-width:720px){.kiipay-map-header{--kiipay-map-header-height:78px}.kiipay-map-brand{left:16px;top:16px}.kiipay-map-brand img{width:44px;height:44px}.kiipay-map-copyright{left:16px;top:62px;font-size:8px}.kiipay-map-title{top:3px;left:77px;right:8px;transform:none;width:auto;gap:3px}.kiipay-map-title img:last-child{width:18px}.map-search-row{min-height:58px;padding:8px 11px;gap:7px}.map-search-box{flex:1 1 0;min-width:0}.map-search-box input{min-width:0}.filter-search-toggle{flex:none;min-width:92px;min-height:42px;padding:5px 8px}.filter-search-toggle strong{font-size:12px}.filter-search-toggle span{display:none}.outline-button{padding:9px 10px;font-size:12px}.map-page.kiipay-only-map .map-main,.map-main{height:calc(100vh - var(--kiipay-map-header-height) - 58px - 48px)}.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main,.filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - var(--kiipay-map-header-height) - 58px - 97px - 48px)}}
@media(max-width:460px){.map-search-row{flex-wrap:wrap}.map-search-box{flex-basis:calc(100% - 99px)}.filter-search-toggle{min-width:92px}.outline-button{display:none}}

/* ホーム画面と同じきいPAY配色・フッター帯 */
.map-page{--kiipay-map-header-height:126px;--kiipay-map-footer-height:clamp(5px,1.42vw,14px)}.map-page.kiipay-only-map{--accent:#e74359;--accent-dark:#c93448;--kiipay:#e74359}.kiipay-only-map .map-search-box button{background:#e74359}.kiipay-only-map .filter-search-toggle{border-color:#e74359;color:#c93448}.kiipay-only-map .filter-search-toggle[aria-expanded="true"],.kiipay-only-map .parent-filter.active{background:#b9e985;border-color:#a5d96f;color:#172033}.kiipay-only-map .parent-filter b{background:#e74359}.kiipay-only-map .view-tabs button.active{background:#e74359}.kiipay-only-map .outline-button{border-color:#e74359;color:#c93448}.kiipay-only-map .outline-button:hover{background:#fff0f2}.map-footer-band{position:fixed;z-index:25;left:0;right:0;bottom:0;width:100%;height:var(--kiipay-map-footer-height);background:url('/static/kiipay/footer-band.svg') center/cover no-repeat}
.map-page.kiipay-only-map .map-main,.map-main{height:calc(100vh - var(--kiipay-map-header-height) - 62px - 48px - var(--kiipay-map-footer-height))}.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main,.filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - var(--kiipay-map-header-height) - 62px - 97px - 48px - var(--kiipay-map-footer-height))}
@media(max-width:720px){.map-page{--kiipay-map-header-height:78px}.map-page.kiipay-only-map .map-main,.map-main{height:calc(100vh - var(--kiipay-map-header-height) - 58px - 48px - var(--kiipay-map-footer-height))}.map-page.kiipay-only-map .filter-panel:has(#filterControls:not([hidden])) ~ .map-main,.filter-panel:has(#filterControls:not([hidden])) ~ .map-main{height:calc(100vh - var(--kiipay-map-header-height) - 58px - 97px - 48px - var(--kiipay-map-footer-height))}}

/* 一枚のイラスト地図。地図の操作中も画面上の大きさを変えない。 */
/* 地図オーバーレイ（DOM直接描画のSVG）。クリック不可。装飾イラスト・加盟店ピンより先にDOM挿入
   されるため、z-indexを指定しなくても自然に一番背面（ただしベースマップより前面）になる */
.kiipay-base-map-overlay{pointer-events:none;-webkit-user-select:none;user-select:none}
/* 装飾イラスト（個別SVGマーカー）。クリック不可・加盟店ピンより背面。サイズはmap.jsがズームに応じて更新 */
.kiipay-illust{z-index:0;display:none;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.96;filter:drop-shadow(0 1px 2px rgba(15,23,42,.18))}.kiipay-illust.is-visible{display:block}.kiipay-illust img{display:block;width:100%;height:auto;pointer-events:none}
.map-marker{z-index:3}.map-marker:hover{opacity:1}
/* ローカル専用：装飾イラスト配置エディタ（/spots?illust_edit=1） */
.illust-edit-mode .kiipay-illust{pointer-events:auto;cursor:grab}.illust-edit-mode .kiipay-illust:active{cursor:grabbing}.illust-edit-show-all .kiipay-illust{display:block}.kiipay-illust.is-editing{outline:2px dashed #e74359;outline-offset:3px;background:rgba(231,67,89,.08)}
.illust-edit-panel{position:fixed;z-index:60;top:76px;left:16px;width:min(320px,calc(100vw - 32px));max-height:calc(100vh - 100px);overflow:auto;padding:12px 14px;border:1px solid #d7e2df;border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 16px 42px rgba(15,23,42,.24);font-size:13px}.illust-edit-panel header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.illust-edit-save{border:0;border-radius:9px;padding:8px 12px;background:#e74359;color:#fff;font-weight:800;cursor:pointer}.illust-edit-save:disabled{background:#cbd5e1;cursor:default}.illust-edit-toggle{display:flex;align-items:center;gap:7px;font-weight:700;margin-bottom:6px;cursor:pointer}.illust-edit-hint{margin:0 0 10px;color:#667085;font-size:11px;line-height:1.6}.illust-edit-list{display:flex;flex-direction:column;gap:3px;max-height:190px;overflow:auto;margin-bottom:10px}.illust-edit-row-wrap{display:flex;align-items:center;gap:5px}.illust-edit-row{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;padding:6px 9px;text-align:left;font-size:12px;font-weight:700;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.illust-edit-row.is-active{border-color:#e74359;background:#fff0f2;color:#c93448}.illust-edit-detail{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:7px}.illust-edit-field{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:8px;font-size:12px;font-weight:700}.illust-edit-field input[type=number],.illust-edit-field select{border:1px solid #d0d5dd;border-radius:8px;padding:5px 7px;font-size:12px;min-width:0}.illust-edit-field b{font-weight:700;color:#667085;font-size:11px}.illust-edit-coords{margin:2px 0 0;color:#667085;font-size:11px;font-family:ui-monospace,monospace}.illust-edit-row-remove{flex:none;border:1px solid #f3c2c9;border-radius:8px;background:#fff5f6;color:#c93448;padding:5px 8px;font-size:11px;font-weight:700;cursor:pointer}.illust-edit-row-remove:hover{background:#ffe4e7}.illust-edit-delete{margin-top:4px;border:1px solid #f3c2c9;border-radius:9px;background:#fff5f6;color:#c93448;padding:8px 10px;font-size:12px;font-weight:800;cursor:pointer}.illust-edit-delete:hover{background:#ffe4e7}

/* 検索・モデルコース候補欄：1行にまとめ、折りたたみ可能にする（/spots） */
.map-search-row{align-items:center;gap:10px}.search-row-toggle{flex:none;display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#475467;padding:8px 10px;font-weight:800;font-size:12px;cursor:pointer;white-space:nowrap}.search-row-toggle-label{display:none}@media(min-width:721px){.search-row-toggle-label{display:inline}}.search-row-toggle-icon{display:inline-block;transition:transform .15s ease}.search-row-toggle[aria-expanded="false"] .search-row-toggle-icon{transform:rotate(-90deg)}.map-search-row-body{display:flex;align-items:center;gap:9px;flex:1;min-width:0}.map-search-row-body[hidden]{display:none}.filter-search-toggle{display:flex;align-items:center;justify-content:center;flex-direction:row;min-width:64px;min-height:40px;padding:8px 14px}.map-result-count{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:12px;color:#667085}.route-plan-slot{display:flex;align-items:center;gap:6px;flex:none}.map-search-row-body .view-tabs{flex:none}/* モデルコース候補作成ボタン：「きいPAY加盟店を探す」カードと同じ配色（アイコン背景#fff7df/文字#a15c00） */
.route-plan-button{background:#b9e985;color:#172033;border:1px solid #a5d96f;border-radius:999px;padding:6px 10px}.route-plan-open-button{margin-left:0;background:#e74359;color:#fff;border-color:#e74359;box-shadow:0 5px 12px rgba(181,40,60,.22)}.route-plan-open-button:hover{background:#c93448}
@media(max-width:720px){.map-search-row-body{flex-wrap:wrap;row-gap:7px}.map-search-box{flex-basis:100%}.map-result-count{display:none}.route-plan-button{display:none}.route-plan-slot{order:5}.route-plan-open-button{padding:6px 9px;font-size:11px}.map-search-row-body .view-tabs{order:6;margin-left:auto}.filter-search-toggle{min-width:0;padding:6px 10px}}
/* 地図表示エリアの最大化：各行の高さをpx単位で積み上げて計算するのではなく、
   ページ全体をフレックスにして残り領域をすべて地図へ割り当てる。検索欄の折りたたみや
   タグ絞り込みパネルの開閉があっても、常に地図が使える限り最大の高さで表示される。 */
.map-page{display:flex;flex-direction:column;height:100vh}.map-main{height:auto!important;flex:1 1 auto;min-height:0}
.map-search-row:has(.map-search-row-body[hidden]){min-height:0;padding-top:6px;padding-bottom:6px}
/* ローカル専用：地図オーバーレイの編集ハンドル（中心移動・比例拡大縮小） */
.overlay-center-handle,.overlay-size-handle{width:28px;height:28px;border-radius:50%;color:#fff;border:2px solid #fff;box-shadow:0 2px 8px rgba(15,23,42,.35);display:grid;place-items:center;font-size:14px;font-weight:800;cursor:grab}
.overlay-center-handle:active,.overlay-size-handle:active{cursor:grabbing}
.overlay-center-handle{background:#1d2088}
.overlay-size-handle{background:#e74359;border-radius:8px}
.overlay-edit-panel{position:fixed;z-index:60;top:76px;right:16px;width:min(260px,calc(100vw - 32px));padding:12px 14px;border:1px solid #d7e2df;border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 16px 42px rgba(15,23,42,.24);font-size:13px}.overlay-edit-panel header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}

/* ローカル専用：イラストの実座標モード（9方向オフセット選択グリッド） */
.illust-edit-dir-grid{display:grid;grid-template-columns:repeat(3,28px);grid-template-rows:repeat(3,28px);gap:3px}.illust-edit-dir-btn{border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px;cursor:pointer;padding:0;display:grid;place-items:center}.illust-edit-dir-btn.is-active{border-color:#e74359;background:#fff0f2;color:#c93448;font-weight:800}

/* /spots専用：きいPAYタグ系チップを「きいPAY加盟店を探す」カードと同じ緑系に統一（/mapの金色バッジは維持） */
.kiipay-only-map .badge.kiipay,.kiipay-only-map .mini-tag.kiipay,.kiipay-only-map .detail-tag.kiipay{background:#b9e985;color:#172033;border-color:#a5d96f}.kiipay-only-map .parent-filter.service-filter{border-color:#a5d96f}.kiipay-only-map .tag-option.kiipay-option{border-color:#a5d96f}.kiipay-only-map .tag-option:has(input:checked){background:#f4fbe8;color:#3f6212}

/* ご要望により全デバイスで非表示。CIテストがテンプレート内の文言存在を検査するため要素自体は残す */
.release-map-notice{display:none!important}

/* ロケット打ち上げアニメーション：外側(マーカー本体)はMapLibreが位置を書き込むため触れず、
   内側だけを回転・フェードさせる */
.kiipay-rocket-marker{pointer-events:none}.kiipay-rocket-marker .kiipay-illust{transform-origin:50% 50%;transition:none}

/* Firebaseの静的枠を即時表示し、Cloud Runの加盟店データを取得する間だけ重ねる。 */
.static-data-loading{position:absolute;z-index:12;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;min-width:max-content;padding:11px 16px;border:1px solid rgba(203,213,225,.9);border-radius:999px;background:rgba(255,255,255,.93);box-shadow:0 7px 22px rgba(15,23,42,.15);color:#475467;font-weight:800;letter-spacing:.02em;pointer-events:none}.static-data-loading[hidden]{display:none}.loading-spinner{display:inline-block;width:19px;height:19px;border:3px solid #dbe4ef;border-top-color:#e74359;border-radius:50%;animation:static-spin .75s linear infinite;flex:none}.dynamic-detail-loading{min-height:180px;display:grid;place-items:center;align-content:center;gap:12px;color:#475467;font-weight:800;text-align:center}.dynamic-detail-loading .loading-spinner{width:30px;height:30px;border-width:4px}.detail-load-error button{border:0;border-radius:10px;padding:9px 13px;background:#e74359;color:#fff;font-weight:800;cursor:pointer}@keyframes static-spin{to{transform:rotate(360deg)}}

/* 静的データの読み込み表示は、地図領域の中央に重ねる。 */
.map-main{position:relative}.static-data-loading{inset:0;display:flex;align-items:center;justify-content:center;transform:none;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
