/* S00004 */
:root[data-site="seoul"]{
  --ground:#F4F8F8; --surface:#FFFFFF; --surface-2:#E8F1F2;
  --ink:#0F1E21; --muted:#4A6064; --faint:#5F7579;
  --border:#D3E2E4; --border-strong:#A9C3C7;
  --accent:#008299; --accent-soft:#DDF1F3; --on-accent:#FFFFFF;
  --brand-warm:#5FB7C1;
  --sd-ok:#0B7A43; --sd-mid:#B45309; --sd-bad:#B3261E;
  /* 돈의 흐름 칸 색 — dataviz validate_palette 통과(light): 권리가 · 분담금 · 프리미엄 · 세금 · 이자 */
  --f-rights:#3B6FC4; --f-levy:#D9531E; --f-prem:#8B5CF6; --f-tax:#C24A7A; --f-carry:#E0A100; --f-charge:#7C2D12;
  --f-mem:#008299; --f-gen:#22B8CF; --f-value:#0B7A43; --f-refund:#4ADE80;
}
@media (prefers-color-scheme:dark){
  :root[data-site="seoul"]:not([data-theme="light"]){
    --ground:#0B1214; --surface:#111B1E; --surface-2:#18262A;
    --ink:#E4EFF0; --muted:#9BB2B6; --faint:#83999D;
    --border:#22353A; --border-strong:#34494F;
    --accent:#3BB7C6; --accent-soft:#0D2B30; --on-accent:#04181B;
    --brand-warm:#6CC3CD;
    --sd-ok:#4FC084; --sd-mid:#DDA23C; --sd-bad:#F0837A;
    --f-rights:#5B8BE0; --f-levy:#E0662E; --f-prem:#9D78F7; --f-tax:#D45F8E; --f-carry:#BE8A00; --f-charge:#C2410C;
    --f-mem:#3BB7C6; --f-gen:#2A9FB4; --f-value:#3FA56E; --f-refund:#4ADE80;
  }
}
:root[data-site="seoul"][data-theme="dark"]{
  --ground:#0B1214; --surface:#111B1E; --surface-2:#18262A;
  --ink:#E4EFF0; --muted:#9BB2B6; --faint:#83999D;
  --border:#22353A; --border-strong:#34494F;
  --accent:#3BB7C6; --accent-soft:#0D2B30; --on-accent:#04181B;
  --brand-warm:#6CC3CD;
  --sd-ok:#4FC084; --sd-mid:#DDA23C; --sd-bad:#F0837A;
  --f-rights:#5B8BE0; --f-levy:#E0662E; --f-prem:#9D78F7; --f-tax:#D45F8E; --f-carry:#BE8A00; --f-charge:#C2410C;
  --f-mem:#3BB7C6; --f-gen:#2A9FB4; --f-value:#3FA56E; --f-refund:#4ADE80;
}
:root[data-site="seoul"] body{background:var(--ground)}

/* ── 머리띠 가운데 단추 ── */
/* S00042 */
.seoul-toggle{
  margin-left:auto; margin-right:auto; flex:0 0 auto;
  display:inline-flex; align-items:center; gap:.45rem;
  font:inherit; font-size:.85rem; font-weight:700; cursor:pointer; white-space:nowrap;
  padding:.32rem .8rem .32rem .38rem; border-radius:.55rem;
  background:var(--surface); color:#00697B;
  border:1.5px solid #008299;
}
.seoul-toggle:hover{background:#E6F5F7}
.seoul-toggle:focus-visible{outline:2px solid #008299; outline-offset:2px}
.seoul-toggle .seoul-icon{display:block; flex:0 0 auto}
.seoul-toggle .toji-icon{display:none; flex:0 0 auto}
/* S00043 */
.seoul-toggle[aria-pressed="true"]{background:var(--surface); border-color:#8A6547; color:#8A6547}
.seoul-toggle[aria-pressed="true"]:hover{background:#F4E9DD}
.seoul-toggle[aria-pressed="true"]:focus-visible{outline-color:#8A6547}
.seoul-toggle[aria-pressed="true"] .seoul-icon{display:none}
.seoul-toggle[aria-pressed="true"] .toji-icon{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .seoul-toggle{color:#7FD3DD; border-color:#3BB7C6}
  :root:not([data-theme="light"]) .seoul-toggle:hover{background:#0D2B30}
}
:root[data-theme="dark"] .seoul-toggle{color:#7FD3DD; border-color:#3BB7C6}
:root[data-theme="dark"] .seoul-toggle:hover{background:#0D2B30}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .seoul-toggle[aria-pressed="true"]{color:#D8B18C; border-color:#D8B18C}
  :root:not([data-theme="light"]) .seoul-toggle[aria-pressed="true"]:hover{background:#2A2019}
}
:root[data-theme="dark"] .seoul-toggle[aria-pressed="true"]{color:#D8B18C; border-color:#D8B18C}
:root[data-theme="dark"] .seoul-toggle[aria-pressed="true"]:hover{background:#2A2019}

/* 서울 모드에서는 토지랩의 탭·왼쪽 칸·영업소 상세·전국용 스위치를 접는다. */
:root[data-site="seoul"] .tabs,
:root[data-site="seoul"] #side,
:root[data-site="seoul"] #detail,
:root[data-site="seoul"] .map-switch:has(#gate-bg),
:root[data-site="seoul"] .map-switch:has(#place-bg),
:root[data-site="seoul"] .map-legal,
:root[data-site="seoul"] .lp-scale{display:none!important}
.seoul-side[hidden],.seoul-detail[hidden]{display:none!important}

/* ── 왼쪽 칸 ── */
.seoul-side{
  flex:0 0 17.5rem; min-height:0; overflow:auto;
  display:flex; flex-direction:column;
  background:var(--surface); border-right:1px solid var(--border);
}
.sd-block{padding:.7rem .8rem; border-bottom:1px solid var(--border)}
.sd-block h3{
  margin:0 0 .45rem; font-size:.72rem; letter-spacing:.06em; color:var(--faint); font-weight:700;
}
.sd-block h3 span{color:var(--accent); letter-spacing:0}
.seoul-side select,.seoul-side input[type="search"]{
  width:100%; font:inherit; font-size:.85rem; padding:.42rem .5rem; border-radius:.4rem;
  border:1px solid var(--border-strong); background:var(--surface); color:var(--ink);
}
.seoul-side select:focus-visible,.seoul-side input:focus-visible{outline:2px solid var(--accent); outline-offset:1px}
.sd-hint{margin:.35rem 0 0; font-size:.74rem; color:var(--muted)}
.sd-checks,.sd-ladder{display:flex; flex-direction:column; gap:.18rem}
.sd-check{display:flex; align-items:center; gap:.45rem; font-size:.82rem; cursor:pointer; padding:.12rem 0}
.sd-check input{margin:0; accent-color:var(--accent)}
.sd-sw{flex:0 0 auto; width:.72rem; height:.72rem; border-radius:.18rem; display:inline-block}
.sd-dot{border-radius:50%}
.sd-arrow{width:1rem; border-radius:0; clip-path:polygon(0 0, 65% 0, 100% 50%, 65% 100%, 0 100%, 30% 50%)}
.sd-n{margin-left:auto; font-weight:500; font-size:.72rem; color:var(--faint); font-variant-numeric:tabular-nums}
.sd-seg{display:flex; gap:0; margin-bottom:.45rem; border:1px solid var(--border-strong); border-radius:.4rem; overflow:hidden}
.sd-seg button{
  flex:1; font:inherit; font-size:.76rem; font-weight:600; cursor:pointer;
  padding:.3rem .4rem; background:var(--surface); color:var(--muted); border:0;
}
.sd-seg button+button{border-left:1px solid var(--border-strong)}
.sd-seg button.is-on{background:var(--accent); color:var(--on-accent)}
.sd-list-block{flex:1 0 auto}
.sd-list{list-style:none; margin:.45rem 0 0; padding:0; display:flex; flex-direction:column; gap:.15rem}
.sd-list button{
  width:100%; text-align:left; font:inherit; cursor:pointer;
  display:grid; grid-template-columns:auto 1fr; column-gap:.45rem; align-items:center;
  padding:.38rem .45rem; border-radius:.4rem; background:none; border:1px solid transparent; color:var(--ink);
}
.sd-list button:hover{background:var(--surface-2)}
.sd-list button.is-on{background:var(--accent-soft); border-color:var(--accent)}
.sd-list .sd-sw{grid-row:span 2}
.sd-name{font-size:.82rem; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.sd-meta{font-size:.72rem; color:var(--muted)}
.sd-more{font-size:.74rem; color:var(--muted); padding:.4rem .2rem; line-height:1.5}
.sd-lsort{display:flex; flex-wrap:wrap; gap:.25rem; margin:.45rem 0 0}
.sd-lsort button{font:inherit; font-size:.74rem; padding:.2rem .5rem; border:1px solid var(--border); border-radius:999px; background:var(--surface); color:var(--ink); cursor:pointer}
.sd-lsort button.is-on{background:var(--accent-soft); border-color:var(--accent); color:var(--accent); font-weight:600}
.sd-lsort button i{font-style:normal}
.sd-lchips{grid-column:2; display:flex; flex-wrap:wrap; gap:.2rem; margin-top:.15rem}
.sd-lc{font-style:normal; font-size:.68rem; padding:.05rem .35rem; border-radius:4px; background:var(--surface-2); color:var(--muted); white-space:nowrap}
.sd-lc.is-key{font-weight:700; color:var(--ink)}
.sd-lc.is-ok.is-key{color:var(--sd-ok)}
.sd-lc.is-mid.is-key{color:var(--sd-mid)}
.sd-lc.is-bad.is-key{color:var(--sd-bad)}
.sd-src{margin:0; padding:.6rem .8rem; font-size:.7rem; color:var(--faint); line-height:1.5}

/* ── 오른쪽 칸 ── */
.seoul-detail{
  flex:0 0 26rem; min-height:0; overflow:auto;
  background:var(--surface); border-left:1px solid var(--border);
  padding:.9rem 1rem 1.4rem;
}
.sd-card-head h2{margin:.35rem 0 .2rem; font-size:1.08rem; line-height:1.3}
.sd-card-head p{margin:.15rem 0; font-size:.8rem; color:var(--muted); line-height:1.5}
.sd-stage-now b{color:var(--accent)}
.sd-badge{display:inline-block; font-size:.7rem; font-weight:700; color:#fff; padding:.12rem .45rem; border-radius:.3rem}
/* 추진 단계 — 화살표 띠. 다섯 칸씩 두 줄, 칸마다 오른쪽이 뾰족하고 왼쪽이 파인 쐐기(clip-path). */
.sd-steps{list-style:none; margin:.7rem 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:.35rem 0}
.sd-steps li{display:flex; flex-direction:column; min-width:0; text-align:center}
.sd-steps li b{display:flex; align-items:center; justify-content:center; height:1.7rem; padding:0 .55rem 0 .7rem;
  margin-right:-.3rem; font-size:.64rem; font-weight:600; line-height:1.1; white-space:nowrap; overflow:hidden;
  background:var(--surface-2); color:var(--faint);
  clip-path:polygon(0 0, calc(100% - .45rem) 0, 100% 50%, calc(100% - .45rem) 100%, 0 100%, .45rem 50%)}
.sd-steps li:nth-child(5n+1) b{clip-path:polygon(0 0, calc(100% - .45rem) 0, 100% 50%, calc(100% - .45rem) 100%, 0 100%); padding-left:.45rem}
.sd-steps li.done b{background:var(--st); color:#FFFFFF; opacity:.78}
.sd-steps li.now b{background:var(--st); color:#FFFFFF; font-weight:800; opacity:1;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.28)}
.sd-steps li.now em{color:var(--ink); font-weight:700}
.sd-steps em{font-style:normal; font-size:.6rem; color:var(--faint); font-variant-numeric:tabular-nums; margin-top:.15rem; padding-right:.3rem}
.sd-facts{display:grid; grid-template-columns:auto 1fr; gap:.25rem .7rem; margin:.4rem 0 .2rem; font-size:.8rem}
.sd-facts dt{color:var(--muted)}
.sd-facts dd{margin:0; font-variant-numeric:tabular-nums}
.sd-facts small{display:block; color:var(--faint); font-size:.68rem}
.sd-calc{margin-top:1rem; padding-top:.8rem; border-top:1px solid var(--border)}
.sd-calc h3{margin:0 0 .6rem; font-size:.84rem; color:var(--accent)}
.sd-grid{display:grid; grid-template-columns:1fr 1fr; gap:.45rem .6rem}
.sd-f{display:flex; flex-direction:column; gap:.18rem; font-size:.74rem; color:var(--muted); min-width:0}
.sd-f small{color:var(--faint); font-size:.64rem}
.sd-in{display:flex; align-items:center; border:1px solid var(--border-strong); border-radius:.35rem; background:var(--surface); overflow:hidden}
.sd-in:focus-within{outline:2px solid var(--accent); outline-offset:0}
.sd-in input,.sd-in select{
  flex:1; min-width:0; font:inherit; font-size:.84rem; color:var(--ink);
  border:0; background:none; padding:.34rem .4rem; font-variant-numeric:tabular-nums;
}
.sd-in input:focus,.sd-in select:focus{outline:none}
.sd-in em{font-style:normal; font-size:.7rem; color:var(--faint); padding:0 .4rem}
.sd-out{margin-top:.7rem}
.sd-kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem; margin-bottom:.5rem}
.sd-kpis div{background:var(--surface-2); border-radius:.45rem; padding:.45rem .5rem}
.sd-kpis span{display:block; font-size:.68rem; color:var(--muted)}
.sd-kpis b{font-size:1.05rem; font-variant-numeric:tabular-nums}
.sd-table{width:100%; border-collapse:collapse; font-size:.78rem; margin-top:.35rem}
.sd-table th{text-align:left; font-weight:500; color:var(--muted); padding:.28rem .3rem .28rem 0; vertical-align:top}
.sd-table td{text-align:right; padding:.28rem 0; font-variant-numeric:tabular-nums}
.sd-table tr+tr th,.sd-table tr+tr td{border-top:1px solid var(--border)}
.sd-table small{color:var(--faint)}
.sd-table .sd-miss{color:var(--sd-mid)}
.sd-cases th:not(:first-child){text-align:right; color:var(--ink); font-weight:700}
.is-bad{color:var(--sd-bad)}
.sd-verdict{display:flex; align-items:baseline; gap:.6rem; padding:.55rem .7rem; border-radius:.5rem; background:var(--surface-2); border-left:4px solid var(--faint)}
.sd-verdict b{font-size:1.05rem}
.sd-verdict span{font-size:.78rem; color:var(--muted)}
.sd-verdict.is-ok{border-left-color:var(--sd-ok)} .sd-verdict.is-ok b{color:var(--sd-ok)}
.sd-verdict.is-mid{border-left-color:var(--sd-mid)} .sd-verdict.is-mid b{color:var(--sd-mid)}
.sd-verdict.is-bad{border-left-color:var(--sd-bad)}
.sd-note{font-size:.72rem; color:var(--muted); line-height:1.55; margin:.5rem 0 0}
.sd-flags{margin:.45rem 0 0; padding-left:1.1rem; font-size:.76rem; color:var(--sd-mid); line-height:1.55}
.sd-legal{margin:1rem 0 0; font-size:.7rem; color:var(--faint); line-height:1.55}

/* ── 왼쪽 칸 머리의 전체 단추 ── */
.sd-head{display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.45rem}
.sd-head h3{margin:0}
.sd-all{font:inherit; font-size:.72rem; font-weight:600; cursor:pointer; padding:.18rem .55rem; border-radius:.35rem;
  border:1px solid var(--border-strong); background:var(--surface); color:var(--accent)}
.sd-all[aria-pressed="true"]{background:var(--accent-soft); border-color:var(--accent)}
.sd-all:focus-visible,.sd-btn:focus-visible,.sd-x:focus-visible,.sd-link:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
.sd-seg{margin-bottom:0}

/* ── 높은 배율의 구역 이름 ── */
.leaflet-tooltip.sd-label{background:none; color:var(--ink); border:none; box-shadow:none; padding:0;
  display:flex; flex-direction:column; align-items:stretch; text-align:center; font:600 .58rem/1.25 var(--sans, inherit); white-space:nowrap}
.sd-lb-n{background:var(--surface); border:1px solid var(--border); border-bottom:none; border-radius:.25rem .25rem 0 0;
  padding:.06rem .35rem 0; font-weight:700; letter-spacing:-.01em}
.sd-lb-s{border-radius:0 0 .25rem .25rem; padding:.03rem .35rem .07rem; font-size:.54rem; font-weight:600; min-width:100%; text-align:center;
  box-shadow:0 1px 1.5px rgba(0,0,0,.14)}
.leaflet-tooltip.sd-label::before{display:none}

/* ── 고른 필지 · 구역 전체 ── */
.sd-tablewrap{overflow-x:auto}
.sd-parcels th,.sd-parcels td{font-size:.72rem}
.sd-parcels tr:first-child th{color:var(--faint); font-weight:600; text-align:right}
.sd-parcels tr:first-child th:first-child{text-align:left}
.sd-sum th,.sd-sum td{font-weight:700; border-top:2px solid var(--border-strong)!important}
.sd-x{font:inherit; font-size:.9rem; line-height:1; cursor:pointer; background:none; border:0; color:var(--faint); padding:.1rem .3rem}
.sd-x:hover{color:var(--sd-bad)}
.sd-btns{display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.55rem}
.sd-btn{font:inherit; font-size:.78rem; font-weight:600; cursor:pointer; padding:.38rem .75rem; border-radius:.4rem;
  border:1px solid var(--accent); background:var(--accent); color:var(--on-accent)}
.sd-btn[disabled]{opacity:.45; cursor:not-allowed}
.sd-btn-quiet{background:var(--surface); color:var(--accent)}
.sd-link{font:inherit; font-size:inherit; background:none; border:0; padding:0; color:var(--accent); text-decoration:underline; cursor:pointer}
.sd-f-check .sd-in-check{border:0; background:none; gap:.35rem}
.sd-f-check input{width:1rem; height:1rem; accent-color:var(--accent); margin:0 .2rem 0 0}
.sd-note code{font-size:.68rem}
.sd-sale-src details{margin-top:.6rem; font-size:.74rem}
.sd-sale-src summary{cursor:pointer; color:var(--accent); font-weight:600}

/* ── 사업장 팝업 ── */
.sd-popup .leaflet-popup-content{margin:.75rem .85rem; font:inherit; line-height:1.45}
.sd-popup .leaflet-popup-content-wrapper{background:var(--surface); color:var(--ink); border-radius:.6rem}
.sd-popup .leaflet-popup-tip{background:var(--surface)}
.sd-pop h4{margin:.3rem 0 .1rem; font-size:.98rem}
.sd-pop-sub{margin:0 0 .45rem; font-size:.75rem; color:var(--muted)}
.sd-pop dl{display:grid; grid-template-columns:5.2rem 1fr; gap:.28rem .55rem; margin:0; font-size:.76rem}
.sd-pop dt{color:var(--muted)}
.sd-pop dd{margin:0}
.sd-pop dd small{display:block; color:var(--faint); font-size:.67rem}
.sd-pop dd b{color:var(--ink)}
.sd-pop .sd-wait{color:var(--faint)}
.sd-pop-rules{margin:.55rem 0 0; padding:.45rem .55rem .45rem 1.3rem; background:var(--accent-soft); border-radius:.4rem; font-size:.72rem; line-height:1.5}
.sd-pop-rules b{color:var(--accent)}
.sd-pop details{margin-top:.5rem; font-size:.72rem}
.sd-pop summary{cursor:pointer; color:var(--accent); font-weight:600}
.sd-pop pre{white-space:pre-wrap; font:inherit; font-size:.68rem; color:var(--muted); background:var(--surface-2); padding:.4rem .5rem; border-radius:.35rem; margin:.35rem 0 0; max-height:12rem; overflow:auto}
.sd-pop-src{margin:.55rem 0 0; font-size:.64rem; color:var(--faint); line-height:1.5}
.sd-pm{margin-top:.55rem; padding:.45rem .55rem .4rem; background:var(--surface-2); border-radius:.45rem}
.sd-pm-h{display:flex; align-items:baseline; gap:.4rem; flex-wrap:wrap; font-size:.74rem}
.sd-pm-h span{color:var(--muted); min-width:5.2rem}
.sd-pm-h b{font-size:.95rem; color:var(--ink); font-variant-numeric:tabular-nums}
.sd-pm-h b.is-ok{color:var(--sd-ok)} .sd-pm-h b.is-mid{color:var(--sd-mid)} .sd-pm-h b.is-bad{color:var(--sd-bad)}
.sd-pm-h em{font-style:normal; font-size:.68rem; font-weight:700; padding:0 .4rem; border-radius:999px; background:var(--accent-soft); color:var(--accent)}
.sd-pm-h em.is-ok{background:var(--sd-ok); color:var(--surface)} .sd-pm-h em.is-mid{background:var(--sd-mid); color:var(--surface)} .sd-pm-h em.is-bad{background:var(--sd-bad); color:var(--surface)}
.sd-pm-bar{position:relative; height:.42rem; margin:.4rem 0 .3rem; border-radius:999px; background:linear-gradient(90deg, var(--sd-bad), var(--sd-mid), var(--sd-ok))}
.sd-pm-bar.is-seg{display:grid; grid-template-columns:repeat(3,1fr); height:1rem; background:none; gap:2px}
.sd-pm-bar.is-seg span{display:grid; place-items:center; font-size:.6rem; color:var(--surface); font-weight:700}
.sd-pm-bar.is-seg span:nth-child(1){background:var(--sd-bad); border-radius:999px 0 0 999px}
.sd-pm-bar.is-seg span:nth-child(2){background:var(--sd-mid)}
.sd-pm-bar.is-seg span:nth-child(3){background:var(--sd-ok); border-radius:0 999px 999px 0}
.sd-pm-bar i{position:absolute; top:50%; width:.8rem; height:.8rem; margin:-.4rem 0 0 -.4rem; border-radius:50%; background:var(--surface); border:2px solid var(--ink); box-shadow:0 1px 2px rgba(0,0,0,.25)}
.sd-pm small{display:block; font-size:.64rem; color:var(--faint); line-height:1.4}
.sd-sale-src tr.is-pick th{color:var(--accent); font-weight:700}
.sd-pop-src a{color:var(--accent)}

@media (max-width:56rem){
  .seoul-toggle{order:4; margin-left:0; margin-right:0}
  .seoul-toggle-txt{font-size:.8rem}
  :root[data-site="seoul"] #view-explore.is-active{flex-direction:column; overflow:auto}
  .seoul-side{flex:0 0 auto; max-height:none; border-right:0; border-bottom:1px solid var(--border)}
  .sd-list{max-height:16rem; overflow:auto}
  .sd-checks,.sd-ladder{display:grid; grid-template-columns:1fr 1fr; column-gap:.6rem}
  .sd-checks .sd-seg{grid-column:1 / -1}
  :root[data-site="seoul"] .map-wrap{flex:0 0 auto; height:62vh; min-height:22rem}
  .seoul-detail{flex:0 0 auto; border-left:0; border-top:1px solid var(--border)}
}
@media (max-width:34rem){
  .sd-grid{grid-template-columns:1fr}
  .seoul-toggle-txt{display:none}
  .seoul-toggle{padding:.3rem}
}

/* 사업성 — 세대 기준 고르기 · 계산에 안 드는 칸은 흐리게 */
#f-basis{margin:.2rem 0 .6rem}
#f-basis button[disabled]{opacity:.45; cursor:not-allowed}
.sd-f.is-off{opacity:.42}

/* 생활권 중심지 — 견본은 점선 고리, 상세 칸은 등급마다 한 줄 */
.sd-ring{background:transparent!important; border:2px dashed; border-radius:50%}
.sd-center-label{font-weight:700}
.sd-center-label small{font-weight:600; font-size:.62rem; margin-left:.2rem}
.sd-near{display:flex; align-items:center; gap:.35rem; line-height:1.5}
.sd-near i{width:.55rem; height:.55rem; border-radius:50%; flex:0 0 auto}
.sd-near b{font-weight:700}

/* S00055 */
.sd-tip{display:inline-grid; place-items:center; width:1.05rem; height:1.05rem; padding:0; margin-left:.15rem;
  border-radius:50%; border:1px solid var(--border-strong); background:var(--surface); color:var(--muted);
  font:700 .66rem/1 inherit; cursor:pointer; vertical-align:1px}
.sd-tip:hover,.sd-tip:focus-visible{border-color:var(--accent); color:var(--accent); outline:none}
.sd-tip.is-warn{border-color:var(--sd-mid); background:var(--sd-mid); color:#FFFFFF}
.sd-bubble{position:absolute; z-index:30; width:16rem; max-width:calc(100% - 1rem); padding:.55rem .7rem;
  border-radius:.5rem; background:var(--ink); color:var(--surface); font-size:.74rem; line-height:1.5;
  box-shadow:0 6px 18px rgba(0,0,0,.18); white-space:pre-line}
.sd-bubble.is-warn{background:#7C2D12; color:#FFF7ED}
#seoul-detail{position:relative}

.sd-facts-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem; margin:.6rem 0 .2rem}
.sd-fact{background:var(--surface-2); border-radius:.5rem; padding:.45rem .55rem; min-width:0}
.sd-fact span{display:block; font-size:.66rem; color:var(--muted)}
.sd-fact b{display:block; font-size:1.05rem; font-weight:800; line-height:1.25; font-variant-numeric:tabular-nums; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.sd-fact b i,.sd-kpi b i{font-style:normal; font-size:.62rem; font-weight:600; color:var(--muted); margin-left:.1rem}
.sd-fact small{display:block; font-size:.62rem; color:var(--faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}

.sd-sumcard{border:1px solid var(--border); border-radius:.7rem; padding:.75rem; margin:.8rem 0; background:var(--surface)}
.sd-sum-top{display:flex; align-items:center; gap:.7rem}
.sd-grade{flex:0 0 auto; width:4.1rem; height:4.1rem; border-radius:50%; display:grid; place-items:center;
  font-weight:800; font-size:.92rem; color:#FFFFFF; background:var(--faint)}
.sd-grade.is-ok{background:var(--sd-ok)} .sd-grade.is-mid{background:var(--sd-mid)} .sd-grade.is-bad{background:var(--sd-bad)}
.sd-sum-cagr{flex:1; min-width:0}
.sd-sum-cagr span{display:block; font-size:.7rem; color:var(--muted)}
.sd-sum-cagr b{font-size:1.6rem; font-weight:800; font-variant-numeric:tabular-nums; margin-right:.35rem}
.sd-sum-cagr small{font-size:.7rem; color:var(--faint)}
.sd-sum-warn{display:flex; flex-direction:column; align-items:center; gap:.1rem}
.sd-sum-warn .sd-tip{width:1.6rem; height:1.6rem; font-size:.9rem}
.sd-sum-warn small{font-size:.62rem; color:var(--sd-mid); font-weight:700}

.sd-kpi4{display:grid; grid-template-columns:repeat(2,1fr); gap:.45rem; margin-top:.7rem}
.sd-kpibox:empty{display:none}
.sd-kpibox .sd-kpi4{margin-top:0}
.sd-kpi{background:var(--surface-2); border-radius:.55rem; padding:.5rem .6rem; min-width:0}
.sd-kpi span{display:block; font-size:.68rem; color:var(--muted)}
.sd-kpi b{display:block; font-size:1.25rem; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.3}
.sd-kpi b.is-ok{color:var(--sd-ok)} .sd-kpi b.is-mid{color:var(--sd-mid)} .sd-kpi b.is-bad{color:var(--sd-bad)}
.sd-kpi small{font-size:.64rem; color:var(--faint)}

.sd-fig{margin:.85rem 0 0; padding:0}
.sd-fig figcaption{font-size:.74rem; font-weight:700; color:var(--ink); margin-bottom:.35rem}
.sd-row{display:flex; align-items:center; gap:.45rem; margin:.22rem 0}
.sd-row > span{flex:0 0 4.2rem; font-size:.66rem; color:var(--muted)}
.sd-fig-flow .sd-row > span{flex-basis:5.2rem; white-space:nowrap}
.sd-bar{display:flex; height:.95rem; border-radius:.25rem; overflow:hidden; min-width:2px; background:var(--surface-2)}
.sd-bar i{display:block; min-width:2px}
.sd-legend{display:flex; flex-wrap:wrap; gap:.15rem .7rem; margin-top:.35rem; font-size:.64rem; color:var(--muted)}
.sd-legend span{display:inline-flex; align-items:center; gap:.25rem}
.sd-legend i{width:.55rem; height:.55rem; border-radius:.15rem; display:inline-block}
.sd-legend b{color:var(--ink); font-weight:700; font-variant-numeric:tabular-nums}
/* 막대 색 — 들어가는 돈은 따뜻한 쪽, 들어오는 돈은 청록·초록 쪽 */
.c-buy{background:#475569} .c-prem{background:#8B5CF6} .c-tax{background:#94A3B8} .c-levy{background:#C2410C} .c-carry{background:#F59E0B}
.c-value{background:var(--sd-ok)} .c-refund{background:#4ADE80}
.c-land{background:#8A6547} .c-bldg{background:#D8B18C}
.c-mem{background:var(--accent)} .c-gen{background:#22B8CF} .c-rent{background:#A5D8DD}
.c-build{background:#64748B} .c-other{background:#94A3B8} .c-settle{background:#CBD5E1}

.sd-core{margin:.4rem 0 .2rem}
.sd-core h3,.sd-calc h3{display:flex; align-items:center; gap:.2rem}
.sd-f-core > span{display:flex; align-items:center}
.sd-zone-btn{display:flex; align-items:center; gap:.45rem; flex-wrap:wrap}
.sd-mini{font-size:.72rem; color:var(--muted); margin:.2rem 0}
.sd-okmark{color:var(--sd-ok)}
.sd-spin{display:inline-block; width:.7rem; height:.7rem; border:2px solid var(--border-strong); border-top-color:var(--accent);
  border-radius:50%; animation:sd-spin .8s linear infinite; vertical-align:-1px}
@keyframes sd-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.sd-spin{animation:none}}

.sd-deep{margin-top:1rem; border-top:1px dashed var(--border-strong); padding-top:.5rem}
.sd-deep > summary{cursor:pointer; font-size:.8rem; font-weight:700; color:var(--muted); padding:.3rem 0}
.sd-vip{display:inline-block; margin-left:.3rem; padding:.05rem .4rem; border-radius:.3rem; font-size:.62rem;
  background:#5B21B6; color:#FFFFFF; vertical-align:1px}
.sd-lock{margin-top:1rem; font-size:.74rem; color:var(--faint)}
.sd-legal-mini{font-size:.66rem; color:var(--faint); margin-top:.6rem}
@media (max-width:34rem){ .sd-facts-grid{grid-template-columns:repeat(2,1fr)} }

/* 전체 체크 상자 */
.sd-allbox{display:inline-flex; align-items:center; gap:.3rem; font-size:.74rem; font-weight:600; color:var(--muted); cursor:pointer}
.sd-allbox input{margin:0; accent-color:var(--accent)}
.seoul-side{position:relative}
.sd-block h3 .sd-tip{margin-left:.1rem}

/* 좌·우 칸 접기 */
.sd-fold{display:none}
:root[data-site="seoul"] .sd-fold{display:grid; place-items:center; position:absolute; top:50%; z-index:850;
  width:1.15rem; height:3.4rem; margin-top:-1.7rem; padding:0; cursor:pointer;
  font:700 1rem/1 inherit; color:var(--accent); background:var(--surface);
  border:1px solid var(--border-strong); box-shadow:0 2px 6px rgba(0,0,0,.12)}
.sd-fold-l{left:0; border-left:0; border-radius:0 .5rem .5rem 0}
.sd-fold-r{right:0; border-right:0; border-radius:.5rem 0 0 .5rem}
.sd-fold:hover{background:var(--accent-soft)}
.sd-fold:focus-visible{outline:2px solid var(--accent); outline-offset:1px}
.seoul-side{transition:margin-left .25s ease}
.seoul-detail{transition:margin-right .25s ease}
:root[data-site="seoul"][data-fold-l] .seoul-side{margin-left:-17.5rem}
:root[data-site="seoul"][data-fold-r] .seoul-detail{margin-right:-26rem}
:root[data-site="seoul"] #view-explore{overflow:hidden}
@media (prefers-reduced-motion:reduce){.seoul-side,.seoul-detail{transition:none}}
@media (max-width:56rem){
  :root[data-site="seoul"] .sd-fold{display:none}
  :root[data-site="seoul"][data-fold-l] .seoul-side,:root[data-site="seoul"][data-fold-r] .seoul-detail{margin:0}
}

/* 보기 단계 — 간략 · 일반 · 자세히 */
.sd-mode{display:flex; margin:-.2rem 0 .7rem; border:1px solid var(--border-strong); border-radius:.5rem; overflow:hidden}
.sd-mode button{flex:1; font:inherit; font-size:.76rem; font-weight:700; padding:.38rem .3rem; cursor:pointer;
  background:var(--surface); color:var(--muted); border:0}
.sd-mode button+button{border-left:1px solid var(--border-strong)}
.sd-mode button i{font-style:normal; font-size:.62rem; color:#F59E0B; letter-spacing:-.05em}
.sd-mode button.is-on{background:var(--accent); color:var(--on-accent)}
.sd-mode button.is-on i{color:#FFE08A}
.sd-mode button[data-locked]{color:var(--faint)}
#seoul-detail[data-mode="easy"] .sd-core,
#seoul-detail[data-mode="easy"] #sd-pick,
#seoul-detail[data-mode="easy"] .sd-fig-biz,
#seoul-detail[data-mode="easy"] .sd-fig-units,
#seoul-detail[data-mode="easy"] .sd-lock,
#seoul-detail:not([data-mode="pro"]) .sd-deep{display:none}
#seoul-detail[data-mode="pro"] .sd-lock{display:none}
.sd-even{display:block; margin-top:.3rem; font-size:.62rem; color:var(--muted)}
.sd-even b{font-size:.74rem; color:var(--ink)}

/* S00070 */
.sd-cta{display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin:.8rem 0 .4rem; padding:.7rem;
  border-radius:.6rem; background:var(--accent-soft); border:1px solid var(--accent)}
.sd-btn-big{font-size:.9rem; padding:.55rem 1rem}
.sd-analysis{position:relative}
.sd-wait-msg{display:none}
.sd-analysis.is-wait > :not(.sd-wait-msg){filter:grayscale(1) blur(1.5px); opacity:.32; pointer-events:none; user-select:none}
.sd-analysis.is-wait .sd-wait-msg{display:block; position:absolute; z-index:5; top:2.2rem; left:50%; transform:translateX(-50%);
  margin:0; padding:.55rem .9rem; border-radius:2rem; white-space:nowrap; font-size:.8rem; font-weight:700;
  background:var(--ink); color:var(--surface); box-shadow:0 4px 14px rgba(0,0,0,.18)}

/* S00073 */
.sd-steps li.is-cancel b{box-shadow:inset 0 -3px 0 #DC2626}
.sd-steps li.is-levy b{box-shadow:inset 0 -3px 0 #F59E0B}
.sd-steps li.now.is-cancel b,.sd-steps li.now.is-levy b{box-shadow:inset 0 -3px 0 rgba(0,0,0,.28)}
.sd-steps em.sd-gap{color:var(--faint); font-style:italic}
.sd-band-key{display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; margin:-.3rem 0 .4rem; font-size:.62rem; color:var(--muted)}
.sd-band-key i{display:inline-block; width:1rem; height:3px; border-radius:1px}
.sd-band-key .k-cancel{background:#DC2626} .sd-band-key .k-levy{background:#F59E0B}
.sd-ix-h{font-size:.74rem; margin:.7rem 0 .1rem; color:var(--muted)}
.sd-ix .sd-fact{background:var(--accent-soft)}
.sd-fact b.is-ok{color:var(--sd-ok)} .sd-fact b.is-mid{color:var(--sd-mid)} .sd-fact b.is-bad{color:var(--sd-bad)}
.sd-sens{display:block; margin-top:.25rem; font-size:.62rem; color:var(--muted)}
.sd-sens b{color:var(--sd-bad)}
.c-charge{background:#7C2D12}
.sd-share{display:flex; align-items:center; gap:.45rem; margin:.35rem 0 .1rem; font-size:.66rem; color:var(--muted)}
.sd-share > span{flex:0 0 4.2rem}
.sd-share b{color:var(--ink); font-variant-numeric:tabular-nums}
.sd-share-bar{position:relative; flex:1; height:.5rem; border-radius:1rem; background:linear-gradient(90deg, var(--sd-ok), var(--sd-mid) 50%, var(--sd-bad))}
.sd-share-bar i{position:absolute; top:50%; width:.55rem; height:.55rem; margin:-.275rem 0 0 -.275rem; border-radius:50%}
.sd-share-bar i.me{background:var(--ink); border:2px solid var(--surface); width:.75rem; height:.75rem; margin:-.375rem 0 0 -.375rem}
.sd-share-bar i.ref{background:var(--surface); border:1px solid var(--ink)}
.sd-buy{margin:.7rem 0 .2rem}
.sd-buy h3{font-size:.74rem; margin:0 0 .3rem; color:var(--muted)}
.sd-buy ul{list-style:none; margin:0; padding:0; display:grid; gap:.22rem}
.sd-buy li{display:flex; align-items:center; gap:.4rem; font-size:.74rem; line-height:1.35}
.sd-buy li span{flex:1}
.sd-buy li i{flex:0 0 auto; width:.55rem; height:.55rem; border-radius:50%; background:var(--sd-mid)}
.sd-buy li.is-ok i{background:var(--sd-ok)} .sd-buy li.is-bad i{background:var(--sd-bad)}
.sd-buy li.is-bad span{color:var(--sd-bad); font-weight:700}
#seoul-detail[data-mode="easy"] .sd-buy li:not(.is-bad){display:none}

/* S00082 */
.sd-uz-tools{display:flex; align-items:center; gap:.4rem; flex-wrap:wrap}
.sd-uz-tools .sd-seg{margin:0}
.sd-uz-tools .sd-seg{flex:1 1 auto}
.sd-uz-tools .sd-seg button{flex:1 1 auto; font-size:.74rem; padding:.3rem .45rem; white-space:nowrap}
.sd-uz-list{margin-top:.35rem}
.sd-uz-save{margin-top:.2rem;color:var(--muted,#64748b)}
.sd-uz-save:empty{display:none}
.sd-uz-item{display:flex; align-items:stretch; gap:.2rem}
.sd-uz-item .sd-uz-pick{flex:1 1 auto; min-width:0}
.sd-uz-item.is-on .sd-uz-pick{background:var(--accent-soft); border-color:var(--accent)}
.sd-uz-acts{display:flex; flex-direction:column; gap:.15rem}
.sd-list .sd-uz-acts button{display:block; width:1.6rem; padding:.1rem 0; text-align:center; font-size:.8rem; color:var(--muted)}
.sd-list .sd-uz-acts button:hover{color:var(--ink)}
.sd-uz-ren{font:inherit; font-size:.8rem; width:9rem; padding:.05rem .25rem; border:1px solid var(--accent); border-radius:.25rem; background:var(--surface); color:var(--ink)}
.sd-uz-prefix{color:var(--muted)}
.sd-uz-v.is-ok{color:var(--sd-ok)} .sd-uz-v.is-mid{color:var(--sd-mid)} .sd-uz-v.is-bad{color:var(--sd-bad)}
.sd-uz-minus{color:var(--sd-bad)}
/* 도구마다 마우스 모양 — 추가 빨간 + · 빼기 파란 − · 이동 보라 손 (사용자 구역이 켜져 있다는 표시) */
.leaflet-container.sd-uz-drawing,.leaflet-container.sd-uz-drawing .leaflet-interactive,.leaflet-container.sd-uz-drawing .leaflet-grab{touch-action:none; cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2226%22%20height%3D%2226%22%20viewBox%3D%220%200%2026%2026%22%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%2210%22%20fill%3D%22%23DC2626%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22/%3E%3Cpath%20d%3D%22M13%208v10M8%2013h10%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22/%3E%3C/svg%3E") 13 13, crosshair}
.leaflet-container.sd-uz-drawing.is-erase,.leaflet-container.sd-uz-drawing.is-erase .leaflet-interactive,.leaflet-container.sd-uz-drawing.is-erase .leaflet-grab{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2226%22%20height%3D%2226%22%20viewBox%3D%220%200%2026%2026%22%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%2210%22%20fill%3D%22%232563EB%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22/%3E%3Cpath%20d%3D%22M8%2013h10%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22/%3E%3C/svg%3E") 13 13, crosshair}
.leaflet-container.sd-uz-pan,.leaflet-container.sd-uz-pan .leaflet-grab,.leaflet-container.sd-uz-pan .leaflet-interactive,.leaflet-container.sd-uz-pan.leaflet-dragging .leaflet-grab{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2228%22%20height%3D%2228%22%20viewBox%3D%22-1%20-1%2026%2026%22%3E%3Cpath%20fill%3D%22%237C3AED%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.4%22%20d%3D%22M23%205.5V20c0%202.2-1.8%204-4%204h-7.3c-1.08%200-2.1-.43-2.85-1.19L1%2014.83s1.26-1.23%201.3-1.25c.22-.19.49-.29.79-.29.22%200%20.42.06.6.16.04.01%204.31%202.46%204.31%202.46V4c0-.83.67-1.5%201.5-1.5S11%203.17%2011%204v7h1V1.5c0-.83.67-1.5%201.5-1.5S15%20.67%2015%201.5V11h1V2.5c0-.83.67-1.5%201.5-1.5s1.5.67%201.5%201.5V11h1V5.5c0-.83.67-1.5%201.5-1.5s1.5.67%201.5%201.5z%22/%3E%3C/svg%3E") 13 13, grab}
.sd-ic{width:.95rem; height:.95rem; vertical-align:-.17rem; margin-right:.15rem}
.sd-ic-add circle{fill:#DC2626} .sd-ic-add path{stroke:#fff; stroke-width:2.2; stroke-linecap:round}
.sd-ic-erase circle{fill:#2563EB} .sd-ic-erase path{stroke:#fff; stroke-width:2.2; stroke-linecap:round}
.sd-ic-pan path{fill:#7C3AED}
.sd-seg button.is-on .sd-ic circle{stroke:#fff; stroke-width:1}
.sd-seg button.is-on .sd-ic-pan path{fill:#fff}
.sd-uz-import{display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; margin:.45rem 0 .2rem}
#sd-colorby button{white-space:nowrap; font-size:.72rem; padding:.3rem .25rem}
.sd-age-legend{position:absolute; left:.6rem; bottom:1.9rem; z-index:600; max-width:15rem; padding:.45rem .55rem; border-radius:.5rem;
  background:var(--surface); color:var(--ink); border:1px solid var(--border-strong); box-shadow:0 2px 10px rgba(0,0,0,.12); font-size:.7rem}
.sd-age-legend b{display:block; margin-bottom:.2rem; font-size:.74rem}
.sd-age-legend span{display:inline-flex; align-items:center; gap:.25rem; margin:0 .5rem .15rem 0; white-space:nowrap}
.sd-age-legend i{width:.8rem; height:.8rem; border-radius:.15rem; opacity:.75}
.sd-age-legend small{display:block; margin-top:.2rem; color:var(--faint)}
.sd-crit{margin:.7rem 0 .2rem}
.sd-crit h3{display:flex; align-items:center; gap:.4rem; flex-wrap:wrap}
.sd-pill{font-size:.7rem; font-weight:800; padding:.12rem .5rem; border-radius:99px; color:#fff; background:var(--faint)}
.sd-pill.is-ok{background:var(--sd-ok)} .sd-pill.is-mid{background:var(--sd-mid)} .sd-pill.is-bad{background:var(--sd-bad)}
.sd-crit-g{margin:.45rem 0 .15rem; font-size:.68rem; font-weight:700; color:var(--muted)}
.sd-crit-g b{margin-left:.2rem}
.sd-crit-g b.is-ok{color:var(--sd-ok)} .sd-crit-g b.is-mid{color:var(--sd-mid)} .sd-crit-g b.is-bad{color:var(--sd-bad)}
.sd-crit-row{display:grid; grid-template-columns:1.1rem 5.2rem 1fr 4.6rem; grid-template-rows:auto auto; align-items:center; column-gap:.4rem; padding:.18rem 0}
.sd-crit-row i{font-style:normal; font-weight:800; text-align:center; width:1.1rem; height:1.1rem; line-height:1.1rem; border-radius:50%; font-size:.68rem; color:#fff; background:var(--faint)}
.sd-crit-row.is-ok i{background:var(--sd-ok)} .sd-crit-row.is-mid i{background:var(--sd-mid)} .sd-crit-row.is-bad i{background:var(--sd-bad)}
.sd-crit-l{font-size:.78rem; font-weight:600}
.sd-crit-bar{position:relative; height:.5rem; border-radius:99px; background:var(--surface-2); overflow:visible}
.sd-crit-bar b{position:absolute; inset:0 auto 0 0; border-radius:99px; background:var(--faint)}
.sd-crit-bar s{position:absolute; inset:0 auto 0 0; border-radius:99px; background:rgba(0,0,0,.18)}
.sd-crit-row.is-ok .sd-crit-bar b{background:var(--sd-ok)} .sd-crit-row.is-mid .sd-crit-bar b{background:var(--sd-mid)} .sd-crit-row.is-bad .sd-crit-bar b{background:var(--sd-bad)}
.sd-crit-bar em{position:absolute; top:-.2rem; bottom:-.2rem; width:2px; margin-left:-1px; background:var(--ink)}
.sd-crit-v{font-size:.8rem; font-weight:800; text-align:right; font-variant-numeric:tabular-nums}
.sd-crit-row small{grid-column:2 / -1; font-size:.64rem; color:var(--faint)}
.sd-consent-bar{position:relative; height:.6rem; margin:.5rem 0 .3rem; border-radius:99px; background:var(--surface-2)}
.sd-consent-bar b{position:absolute; inset:0 auto 0 0; border-radius:99px; background:var(--accent)}
.sd-consent-bar em{position:absolute; top:-.25rem; bottom:-.25rem; width:2px; margin-left:-1px; background:var(--ink)}
.sd-steps-consent{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.15rem}
.sd-steps-consent li{display:grid; grid-template-columns:1.1rem 1fr auto auto; gap:.4rem; align-items:center; font-size:.76rem}
.sd-steps-consent i{font-style:normal; font-weight:800; text-align:center; color:var(--faint)}
.sd-steps-consent li.is-ok i{color:var(--sd-ok)} .sd-steps-consent li.is-bad i{color:var(--sd-bad)}
.sd-steps-consent small{color:var(--faint); font-size:.66rem}
.sd-age-legend i.sd-hatch{background:#16A34A; outline:1.5px solid #fff; outline-offset:-2px; box-shadow:0 0 0 1px #16A34A; opacity:1}
.sd-age-legend i.sd-permit{background:#E7C9C9; outline:2.5px dashed #FACC15; outline-offset:-3px; box-shadow:inset 0 0 0 3px #111827; opacity:1}

/* S00093 */
.sd-bar2{flex:1 1 auto; min-width:0; position:relative}
.sd-bar2 .sd-bar{height:1.35rem}
.sd-bar i{position:relative; overflow:hidden}
.sd-bar i em{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:0 .2rem;
  font-style:normal; font-size:.62rem; font-weight:700; color:#fff; white-space:nowrap; text-shadow:0 0 2px rgba(0,0,0,.45)}
.sd-bar i.c-tax em,.sd-bar i.c-carry em,.sd-bar i.c-gen em,.sd-bar i.c-rent em,.sd-bar i.c-bldg em,.sd-bar i.c-other em,
.sd-bar i.c-settle em,.sd-bar i.c-refund em{color:#0F1E21; text-shadow:none}
.sd-tags{position:relative; margin-top:.1rem}
.sd-tag{position:absolute; transform:translateX(-50%); display:inline-flex; align-items:center; gap:.2rem; white-space:nowrap;
  font-size:.6rem; font-weight:700; color:var(--ink); line-height:1}
.sd-tag i{width:.5rem; height:.5rem; border-radius:.12rem; display:inline-block}
.sd-tag.l0{top:.3rem} .sd-tag.l1{top:1.35rem} .sd-tag.l2{top:2.4rem}
.sd-tick{position:absolute; top:0; height:.28rem; width:1px; background:var(--faint); text-decoration:none}
.sd-pricebar{position:relative; flex:1 1 auto; min-width:0}
.sd-even-line{position:absolute; top:-.5rem; height:.5rem; border-left:2px solid var(--ink); text-decoration:none}
.sd-even-line::after{content:''; position:absolute; left:-.32rem; top:-.1rem; border:.28rem solid transparent; border-top-color:var(--ink)}

/* S00096 */
:root:not([data-site="seoul"]) .sd-pop-switch{display:none!important}
/* S00101 */
.leaflet-marker-icon.sd-popn{display:inline-flex; align-items:baseline; gap:.25rem; width:auto!important; height:auto!important;
  margin:0!important; translate:-50% -50%; pointer-events:none; white-space:nowrap; line-height:1.15;
  padding:.12rem .4rem; border-radius:.35rem; background:#008299; color:#FFFFFF; border:1px solid rgba(255,255,255,.55);
  box-shadow:0 1px 3px rgba(0,0,0,.35); text-shadow:none}
.sd-popn b{font-size:.62rem; font-weight:600; color:#FFFFFF; opacity:.92}
.sd-popn span{font-size:.7rem; font-weight:800; color:#FFFFFF}
.sd-popn.is-gu{padding:.18rem .5rem; background:#006B7E}
.sd-popn.is-gu b{font-size:.74rem; font-weight:700} .sd-popn.is-gu span{font-size:.8rem}
.sd-popn-total{position:absolute; left:.6rem; top:3.4rem; z-index:600; display:flex; flex-direction:column; padding:.35rem .65rem;
  border-radius:.55rem; background:var(--surface); border:1.5px solid #008299; box-shadow:0 2px 10px rgba(0,0,0,.12); line-height:1.15}
.sd-popn-total b{font-size:.76rem; color:var(--ink)} .sd-popn-total span{font-size:1.2rem; font-weight:800; color:#00697B}
.sd-popn-total small{font-size:.6rem; color:var(--faint)}
.sd-popn-src{position:absolute; left:.6rem; bottom:.35rem; z-index:600; max-width:60%; font-size:.6rem; color:var(--muted);
  background:rgba(255,255,255,.8); padding:.1rem .35rem; border-radius:.25rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}

/* S00099 */
.sd-foldsec{margin-left:.3rem; padding:0 .25rem; border:1px solid var(--border-strong); border-radius:.3rem; background:var(--surface);
  color:var(--muted); font:inherit; font-size:.7rem; line-height:1.3; cursor:pointer; vertical-align:middle}
.sd-foldsec:hover{color:var(--ink); border-color:var(--accent)}
#seoul-side .sd-block.is-folded > :not(.sd-head):not(h3){display:none}
#seoul-detail .is-folded > :not(h3):not(figcaption){display:none}
#seoul-detail .is-folded > h3,#seoul-detail .is-folded > figcaption{margin-bottom:0}
.sd-note-box{padding:12px 14px; border:1px solid var(--line,#e2e8f0); border-radius:10px; background:var(--panel,#f8fafc); font-size:.86rem; line-height:1.5}
/* 정비사업 정보몽땅 — 구역 카드 한 줄 · 자세히 단계 표 */
.sd-cz{font-size:.8rem; line-height:1.45; margin:.4rem 0 .2rem; color:var(--ink,inherit)}
.sd-cz small{color:var(--muted)}
.sd-cz-tbl caption{text-align:left; font-size:.78rem; font-weight:600; padding:.4rem 0 .2rem}
.sd-cz-tbl td small{color:var(--muted)}
.sd-f-wide{grid-column:1/-1}
.sd-f-wide select{width:100%; max-width:100%; text-overflow:ellipsis}
/* 막대 아래 범례 (작은 칸 꼬리표 — 겹치지 않게 줄바꿈) */
.sd-legs{display:flex; flex-wrap:wrap; gap:.15rem .6rem; margin-top:.25rem}
.sd-leg{display:inline-flex; align-items:center; gap:.25rem; font-size:.64rem; font-weight:600; color:var(--muted); white-space:nowrap; font-variant-numeric:tabular-nums}
.sd-leg i{width:.55rem; height:.55rem; border-radius:.12rem; display:inline-block}
/* 요약 아래 '자세히' · 내 조건 '조건 더 바꾸기' */
.sd-more,.sd-morein{margin-top:.7rem; border-top:1px dashed var(--border); padding-top:.5rem}
.sd-more > summary,.sd-morein > summary{cursor:pointer; font-size:.74rem; font-weight:700; color:var(--accent); list-style:revert}
.sd-morein-h{margin:0 0 .35rem; font-size:.74rem; font-weight:700; color:var(--accent)}
.sd-more-lines{display:grid; gap:.2rem; margin:.4rem 0 .2rem}
.sd-more-lines .sd-mini{margin:0}
.sd-exit-pick{margin-top:.5rem}
.sd-zone-more{margin:.6rem 0 .2rem}
.sd-zone-more > summary b.is-bad{margin-left:.3rem; color:var(--sd-bad)}
.sd-fact b .sd-fit{font-size:.92rem; white-space:nowrap}
.sd-exit-own{margin-top:.4rem}

/* S00168 */
.sd-fc{border:1px solid var(--border); border-radius:.5rem; overflow:hidden; margin:.35rem 0 .2rem}
.sd-fc-row{display:grid; grid-template-columns:5.8rem 1fr; align-items:center; padding-right:.7rem; background:var(--surface)}
.sd-fc-row:nth-child(even){background:var(--surface-2)}
.sd-fc-row + .sd-fc-row{border-top:1px solid var(--border)}
.sd-fc-l{display:flex; flex-direction:column; padding:.32rem .5rem; line-height:1.2}
.sd-fc-l b{font-size:.7rem; color:var(--ink); white-space:nowrap}
.sd-fc-l small{font-size:.68rem; color:var(--muted); font-variant-numeric:tabular-nums}
.sd-fc-t{position:relative; padding:.42rem 0}
.sd-fc-bar{display:flex; gap:2px; height:1.4rem; min-width:3px}
.sd-fc-bar i{display:flex; align-items:center; justify-content:center; min-width:2px; overflow:hidden; font-style:normal}
.sd-fc-bar i:first-child{border-radius:4px 0 0 4px}
.sd-fc-bar i:last-child{border-radius:0 4px 4px 0}
.sd-fc-bar i:only-child{border-radius:4px}
.sd-fc-bar i em{font-style:normal; font-size:.68rem; font-weight:700; color:#FFFFFF; white-space:nowrap; padding:0 .3rem}
.sd-fc-bar i.f-carry em,.sd-fc-bar i.f-gen em,.sd-fc-bar i.f-refund em{color:#0F1E21}
.f-rights{background:var(--f-rights)} .f-levy{background:var(--f-levy)} .f-prem{background:var(--f-prem)} .f-tax{background:var(--f-tax)}
.f-carry{background:var(--f-carry)} .f-charge{background:var(--f-charge)} .f-mem{background:var(--f-mem)} .f-gen{background:var(--f-gen)}
.f-value{background:var(--f-value)} .f-refund{background:var(--f-refund)}
.sd-fc-in{position:absolute; top:0; bottom:0; border-left:2px dashed var(--ink); opacity:.5; pointer-events:none; text-decoration:none}
.sd-fc-even{position:absolute; top:0; height:.42rem; border-left:2px solid var(--ink); text-decoration:none}
.sd-fc-even::after{content:''; position:absolute; left:-.32rem; top:-.05rem; border:.28rem solid transparent; border-top-color:var(--ink)}
.sd-fc-leg{display:flex; flex-wrap:wrap; gap:.25rem .75rem; margin:.35rem 0 .1rem; font-size:.68rem; color:var(--muted)}
.sd-fc-leg span{display:inline-flex; align-items:center; gap:.3rem; white-space:nowrap}
.sd-fc-leg i{display:inline-block; width:.7rem; height:.7rem; border-radius:2px}
.sd-fc-in-key{display:inline-block; height:.8rem; border-left:2px dashed var(--ink); opacity:.5; text-decoration:none}
.sd-fc-even-key{display:inline-block; width:0; height:0; border:.28rem solid transparent; border-top-color:var(--ink); margin-top:.3rem; text-decoration:none}
.sd-fc-notes{border-top:1px dashed var(--border); margin-top:.35rem; padding-top:.3rem}
.sd-fc-notes p{margin:.12rem 0; font-size:.68rem; line-height:1.45; color:var(--muted)}
.sd-fc-notes b{color:var(--ink)}

/* S00172 */
.sd-kpi-step{display:flex; align-items:center; justify-content:space-between; gap:.4rem}
.sd-step{display:inline-flex; gap:.3rem}
.sd-step button{width:1.75rem; height:1.75rem; border-radius:50%; border:1px solid var(--border-strong); background:var(--surface);
  color:var(--ink); font:inherit; font-size:1rem; font-weight:700; line-height:1; cursor:pointer}
.sd-step button:hover{border-color:var(--accent); color:var(--accent)}
.sd-step button:focus-visible{outline:2px solid var(--accent); outline-offset:1px}
/* S00180 */
.sd-fix{margin:.7rem 0; padding:.6rem .65rem .55rem; border:1px solid var(--border-strong); border-radius:.55rem; background:var(--surface)}
.sd-fix h3{margin:0 0 .45rem; font-size:.84rem}
.sd-fix-tabs{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border-strong); border-radius:.45rem; overflow:hidden}
.sd-fix-tabs button{font:inherit; font-size:.72rem; font-weight:700; padding:.36rem .2rem .3rem; cursor:pointer; border:0;
  background:var(--surface); color:var(--ink); display:flex; flex-direction:column; align-items:center; gap:.05rem; line-height:1.25}
.sd-fix-tabs button+button{border-left:1px solid var(--border-strong)}
.sd-fix-tabs button small{font-size:.62rem; font-weight:500; color:var(--muted); font-variant-numeric:tabular-nums}
.sd-fix-tabs button.is-now small{color:var(--accent); font-weight:700}
.sd-fix-tabs button.is-on{background:var(--accent); color:var(--on-accent)}
.sd-fix-tabs button.is-on small{color:var(--on-accent)}
.sd-fix-tabs button:disabled{color:var(--faint); cursor:default; background:var(--surface-2)}
.sd-fix-tabs button:focus-visible{outline:2px solid var(--accent); outline-offset:-2px}
.sd-fix-body{margin-top:.45rem}
.sd-fix-facts{display:grid; grid-template-columns:auto 1fr; gap:.15rem .7rem; margin:0 0 .3rem; font-size:.76rem}
.sd-fix-facts dt{color:var(--muted)}
.sd-fix-facts dd{margin:0; font-variant-numeric:tabular-nums}
.sd-fix-tbl caption{text-align:left; font-size:.74rem; font-weight:600; padding:.35rem 0 .15rem}
.sd-fix-tbl td,.sd-fix-tbl th{vertical-align:middle}
.sd-fix-tbl td.nm{text-align:left}
.sd-fix-tbl th.r{text-align:right}
.sd-fix-tbl .sd-fix-pick{width:1.6rem; text-align:center}
.sd-fix-tbl .sd-fix-pick input{accent-color:var(--accent); cursor:pointer}
.sd-fix-tbl tr.is-pick td{background:color-mix(in srgb, var(--accent) 10%, transparent)}
.sd-fix-tbl em{font-style:normal; font-size:.66rem}
.sd-fix-used{margin:.45rem 0 0; font-size:.72rem; color:var(--muted); line-height:1.6}
.sd-fix-used b{color:var(--ink)}
.sd-fixtag{font-size:.64rem; font-weight:700; padding:.12rem .4rem; border-radius:.3rem; background:var(--surface-2); color:var(--accent); white-space:nowrap}
/* N9115 */
.sd-f.is-fixed .sd-in input{color:var(--ink); font-weight:700}
