.sl-root{width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;color:#111827;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Noto Sans JP",sans-serif}
.sl-root,.sl-root *{box-sizing:border-box}
.sl-root .gm-style img{max-width:none!important}
.sl-root .gm-style img{max-height:none!important}
.sl-root .gm-style *{box-sizing:content-box}
.sl-outer{display:block}
/* fullwidth: 以前の100vw方式は横スクロールの原因になりやすいので廃止。
	alignfull（テーマ側の全幅対応）に寄せ、必要なら max-width を指定できるようにする。 */
.sl-root.sl-fullwidth{width:100%;max-width:var(--sl-max-width, 100%);margin-left:auto;margin-right:auto}
.sl-root.sl-align-left{margin-left:0;margin-right:auto}
.sl-root.sl-align-center{margin-left:auto;margin-right:auto}
.sl-root.sl-align-right{margin-left:auto;margin-right:0}
.sl-root.sl-sidebar-hidden .sl-sidebar{display:none}
.sl-root.sl-map-hidden .sl-map{display:none}
.sl-root.sl-map-hidden .sl-sidebar{border-right:0;max-width:none;width:100%;flex:1 1 auto;min-width:0}
.sl-chooser{height:100%;min-height:360px;display:flex;flex-direction:column;justify-content:flex-start;gap:14px;padding:18px}
.sl-chooser.sl-chooser-home{justify-content:center;align-items:center;text-align:center}
.sl-chooser-top{display:flex;align-items:center;justify-content:space-between}
.sl-chooser.sl-chooser-home .sl-chooser-top{justify-content:center}
.sl-chooser-title{font-size:14px;font-weight:800}
.sl-chooser-actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:720px}
.sl-chooser-btn{width:100%;border-radius:999px;border:1px solid #e5e7eb;background:#fff;color:#111827;padding:14px 16px;font-size:14px;font-weight:800;cursor:pointer}
.sl-chooser-btn:hover{border-color:rgba(56,189,248,.85)}
.sl-chooser-btn-primary{border-color:rgba(14,165,233,.35);background:rgba(14,165,233,.12);color:#0369a1}
.sl-chooser-notice{padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;font-size:12px;color:#6b7280}
.sl-chooser-body{flex:1}
.sl-chooser.sl-chooser-home .sl-chooser-body{display:none}
.sl-chooser.sl-chooser-home .sl-chooser-notice{display:none}

@media (min-width: 768px){
	.sl-chooser.sl-chooser-home .sl-chooser-actions{flex-direction:row;justify-content:center}
	.sl-chooser.sl-chooser-home .sl-chooser-btn{width:auto;min-width:280px;padding:16px 22px;font-size:15px}
}

.sl-area{display:flex;gap:14px;align-items:flex-start}
.sl-area-left{width:180px;min-width:160px}
.sl-area-title{font-size:13px;font-weight:800;margin-bottom:10px}
.sl-area-geo{width:100%;border-radius:999px;border:1px solid rgba(14,165,233,.35);background:rgba(14,165,233,.12);color:#0369a1;padding:10px 10px;font-size:12px;font-weight:800;cursor:pointer;margin-bottom:10px}
.sl-area-geo:hover{border-color:rgba(14,165,233,.6);background:rgba(14,165,233,.16)}
.sl-area-geo:disabled{opacity:.65;cursor:not-allowed}
.sl-area-geo-note{margin:-2px 0 10px;font-size:11px;line-height:1.45;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:8px 10px}
.sl-area-tabs{display:flex;flex-direction:column;gap:8px}
.sl-area-tab{width:100%;text-align:left;border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:10px 10px;font-size:12px;font-weight:700;cursor:pointer}
.sl-area-tab.is-active{border-color:rgba(14,165,233,.55);background:rgba(14,165,233,.10);color:#0369a1}
.sl-area-right{flex:1;min-width:0}
.sl-area-panel{border-top:1px solid #e5e7eb;padding-top:12px}
.sl-area-grid{display:flex;flex-wrap:wrap;gap:10px}
.sl-area-pref{border:0;background:transparent;color:#111827;font-size:12px;font-weight:700;padding:6px 8px;border-radius:8px;cursor:pointer}
.sl-area-pref:hover{background:#f3f4f6}
.sl-area-pref.is-active{background:rgba(14,165,233,.12);color:#0369a1}

/* サイドバー内（エリアタブ）は幅に関わらず縦積みで見やすく */
.sl-area-view .sl-area{flex-direction:column}
.sl-area-view .sl-area-left{width:100%;min-width:0}
.sl-area-view .sl-area-right{width:100%}
.sl-area-view .sl-area-tabs{flex-direction:row;flex-wrap:wrap}
.sl-area-view .sl-area-tab{width:auto}

@media (max-width: 640px){.sl-area{flex-direction:column}.sl-area-left{width:100%}.sl-area-tabs{flex-direction:row;flex-wrap:wrap}.sl-area-tab{width:auto}}
.sl-layout{display:flex;height:100%;min-height:360px;width:100%;min-width:0;position:relative}
.sl-sidebar{flex:0 0 360px;width:360px;min-width:280px;max-width:520px;border-right:1px solid #e5e7eb;background:#f9fafb;display:flex;flex-direction:column;min-width:0;overflow-x:hidden}
.sl-header{padding:14px 14px 10px;border-bottom:1px solid #e5e7eb}
.sl-title{font-size:13px;font-weight:700;letter-spacing:.02em}
.sl-sub{margin-top:4px;font-size:11px;color:#6b7280}
.sl-version{margin-top:6px;font-size:10px;color:#9ca3af}
.sl-tabs{display:flex;gap:8px;padding:10px 12px;border-bottom:1px solid #e5e7eb;background:#fff}
.sl-map-toggle{display:none;align-items:center;justify-content:center;gap:6px;border:1px solid #e5e7eb;background:#fff;color:#111827;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;cursor:pointer;margin:10px 12px 0}
.sl-map-toggle:hover{border-color:rgba(56,189,248,.85)}
.sl-root.sl-map-hidden .sl-map-toggle{display:inline-flex}
.sl-tab{flex:1;border:1px solid #e5e7eb;background:#fff;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:800;cursor:pointer;color:#111827}
.sl-tab:hover{border-color:rgba(56,189,248,.85)}
.sl-tab.is-active{border-color:rgba(14,165,233,.55);background:rgba(14,165,233,.10);color:#0369a1}
.sl-meta{padding:8px 14px;border-bottom:1px solid #e5e7eb;font-size:11px;color:#6b7280}
.sl-list{padding:10px;overflow:auto;flex:1}
.sl-details{padding:10px;overflow:auto;overflow-x:hidden;flex:1;display:none}
.sl-area-view{padding:10px;overflow:auto;flex:1;display:none}
.sl-name-view{padding:10px;overflow:auto;flex:1;display:none}
.sl-name{display:flex;flex-direction:column;gap:10px}
.sl-name-label{font-size:13px;font-weight:800}
.sl-name-input{width:100%;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;font-size:13px;background:#fff;color:#111827}
.sl-name-input:focus{outline:none;border-color:rgba(14,165,233,.55);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.sl-name-hint{font-size:11px;color:#6b7280}
.sl-name-results{display:block}
.sl-item{display:block;width:100%;text-align:left;border:1px solid #e5e7eb;background:#fff;padding:10px 10px;border-radius:10px;margin-bottom:10px;cursor:pointer}
.sl-item:hover{border-color:rgba(56,189,248,.85)}
.sl-item.is-active{border-color:rgba(14,165,233,.9);background:rgba(14,165,233,.08)}
.sl-item-top{display:flex;gap:10px;align-items:baseline;justify-content:space-between}
.sl-item-name{font-size:13px;font-weight:700}
.sl-item-dist{font-size:11px;color:#6b7280;white-space:nowrap}
.sl-name-view .sl-item-dist{display:none}
.sl-item-addr{margin-top:6px;font-size:11px;line-height:1.45;color:#6b7280}
.sl-back{display:inline-flex;align-items:center;gap:6px;border:1px solid #e5e7eb;background:#fff;color:#111827;border-radius:999px;padding:6px 10px;font-size:11px;cursor:pointer;margin-bottom:10px}
.sl-back:hover{border-color:rgba(56,189,248,.85)}
.sl-detail-title{font-size:14px;font-weight:800;letter-spacing:.01em}
.sl-detail-addr{margin-top:6px;font-size:12px;line-height:1.55;color:#374151}
.sl-detail-contact{margin-top:8px;display:flex;flex-direction:column;gap:6px;font-size:12px}
.sl-detail-contact .sl-link{color:#111827}
.sl-detail-contact .sl-link:hover{text-decoration:underline}
.sl-detail-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}
.sl-detail-left{min-width:0}
.sl-detail-right{display:flex;justify-content:flex-end}
.sl-actions{margin-top:10px;display:flex;gap:10px;flex-wrap:wrap}
.sl-contact-group{margin-top:12px}
.sl-contact-title{font-size:11px;color:#6b7280;font-weight:700;margin-bottom:6px}
.sl-links{margin-top:12px;border-top:1px solid #e5e7eb;padding-top:10px}
.sl-links-grid{display:grid;grid-template-columns:1fr;gap:8px}
.sl-pill.sl-pill-block{width:100%;justify-content:flex-start}
.sl-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:8px 12px;font-size:12px;border:1px solid rgba(14,165,233,.35);background:rgba(14,165,233,.12);color:#0369a1;text-decoration:none}
.sl-btn:hover{border-color:rgba(14,165,233,.6);background:rgba(14,165,233,.16)}
.sl-btn.sl-btn-ghost{border-color:#e5e7eb;background:#fff;color:#111827}
.sl-btn.sl-btn-ghost:hover{border-color:rgba(56,189,248,.85)}
.sl-dl{margin-top:12px;border-top:1px solid #e5e7eb;padding-top:10px}
.sl-dl-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #eef2f7}
.sl-dl-row dt{width:86px;min-width:86px;font-size:11px;color:#6b7280}
.sl-dl-row dd{margin:0;font-size:12px;line-height:1.55;color:#111827;word-break:break-word}
.sl-link{display:inline-flex;align-items:center;gap:6px;color:#0ea5e9;text-decoration:none}
.sl-link:hover{text-decoration:underline}
.sl-sns{display:flex;flex-wrap:wrap;gap:8px}
.sl-detail-right .sl-sns{justify-content:flex-end}
.sl-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #e5e7eb;background:#fff;border-radius:999px;padding:6px 10px;font-size:12px;color:#111827;text-decoration:none}
.sl-pill:hover{border-color:rgba(56,189,248,.85)}
.sl-icon{width:16px;height:16px;flex:0 0 auto}
.sl-map{position:relative;flex:1 1 auto;min-width:0}
.sl-map-canvas{position:absolute;inset:0}
.sl-menu-toggle{position:absolute;left:10px;top:10px;z-index:5;display:none;align-items:center;justify-content:center;border-radius:999px;padding:9px 12px;font-size:12px;font-weight:800;border:1px solid rgba(17,24,39,.18);background:rgba(255,255,255,.95);color:#111827;box-shadow:0 10px 24px rgba(0,0,0,.12);cursor:pointer}
.sl-menu-toggle:hover{border-color:rgba(56,189,248,.85)}
.sl-root.sl-sidebar-hidden .sl-menu-toggle{display:inline-flex}
.sl-root.sl-map-hidden .sl-menu-toggle{display:none}

/* Overlay mode: 幅が足りない場合はサイドバーをマップ上に重ねる */
.sl-root.sl-overlay .sl-sidebar{position:absolute;left:0;top:0;bottom:0;z-index:20;max-width:92vw;width:360px;transform:translateX(-105%);transition:transform .18s ease;box-shadow:0 20px 40px rgba(0,0,0,.22);pointer-events:none}
.sl-root.sl-overlay.sl-overlay-open .sl-sidebar{transform:translateX(0);pointer-events:auto}
.sl-root.sl-overlay .sl-map{flex:1 1 auto}
.sl-root.sl-overlay:not(.sl-overlay-open) .sl-menu-toggle{display:inline-flex}
.sl-root.sl-overlay.sl-overlay-open .sl-menu-toggle{display:none}
.sl-root.sl-overlay.sl-overlay-open .sl-map-toggle{display:inline-flex}
.sl-root.sl-overlay.sl-overlay-open .sl-layout:before{content:"";position:absolute;inset:0;z-index:15;background:rgba(17,24,39,.28)}

/* overlayでは分割されないので、map-hidden時のサイド拡張は不要 */
.sl-crosshair{pointer-events:none;position:absolute;left:50%;top:50%;width:36px;height:36px;transform:translate(-50%,-50%);filter:drop-shadow(0 6px 18px rgba(0,0,0,.45))}
.sl-crosshair:before,.sl-crosshair:after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,255,255,.7);transform:translate(-50%,-50%)}
.sl-crosshair:before{width:36px;height:2px}
.sl-crosshair:after{width:2px;height:36px}
.sl-notice{padding:12px 14px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#111827}
@media (max-width: 520px){.sl-detail-head{flex-direction:column}.sl-detail-right{justify-content:flex-start}.sl-detail-right .sl-sns{justify-content:flex-start}}

/* Theme override guard: テーマ側の color 指定（特に !important）で白文字になるのを防ぐ */
.sl-root{color:#111827!important}
.sl-root input,.sl-root textarea,.sl-root select{color:#111827!important}
.sl-root input::placeholder,.sl-root textarea::placeholder{color:#9ca3af!important;opacity:1}
.sl-root .sl-title,.sl-root .sl-detail-title,.sl-root .sl-item-name,.sl-root .sl-name-label,.sl-root .sl-area-title,.sl-root .sl-chooser-title{color:#111827!important}
.sl-root .sl-detail-addr{color:#374151!important}
.sl-root .sl-sub,.sl-root .sl-meta,.sl-root .sl-item-dist,.sl-root .sl-item-addr,.sl-root .sl-name-hint,.sl-root .sl-chooser-notice,.sl-root .sl-contact-title,.sl-root .sl-dl-row dt{color:#6b7280!important}
.sl-root .sl-link{color:#0ea5e9!important}
.sl-root .sl-detail-contact .sl-link{color:#111827!important}

/* button系（未選択エリアなど）の白文字化対策 */
.sl-root .sl-tab,.sl-root .sl-area-tab,.sl-root .sl-area-pref{color:#111827!important}
.sl-root .sl-tab.is-active,.sl-root .sl-area-tab.is-active,.sl-root .sl-area-pref.is-active{color:#0369a1!important}
