/* 도배 비용 계산기 전용 CSS (2026-10-22) — 작업면 '벽지 재단판'. 공용 부품은 assets/v2.css
   넓이: 작업면 컨테이너 wccw — 640 이상 답 띠 [롤 수 | 롤 재단표], 760 이상 [방 목록 | 전개도], 700 이상 견적 카드 3열, 520 미만 방 줄 두 줄.
   accent 는 가장 낮은 견적 한 곳(고른 방은 --fill). 움직임: 롤 막대가 왼쪽부터 풀리고(clip), 전개도의 벽지 폭이 천장 쪽에서 펴지며, 견적 막대 폭이 미끄러진다. reduced-motion 이면 끔 */
.wcc{container:wccw / inline-size}
.wcc [hidden]{display:none !important}
.wcc .v2-f > .v2-label{display:block;margin:0 0 5px}
.wcc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wcc input::placeholder{font-weight:400;color:var(--ink);opacity:.35}

/* ---------- 답 띠 ---------- */
.wcc-ans{display:grid;grid-template-columns:minmax(0,1fr);gap:14px 24px;padding:16px 18px 14px;border-bottom:1px solid var(--soft)}
.wcc-kpi{min-width:0}
.wcc-big{font-size:52px;margin-top:4px}
.wcc-big span{min-width:1ch}
.wcc-sub{margin-top:8px;font-size:13px}
.wcc-best{margin:10px 0 0;padding-top:9px;border-top:1px dashed var(--soft);font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--muted)}
.wcc-best b{color:var(--accent);font-size:14px;font-variant-numeric:tabular-nums}
.wcc-best small{font-size:11.5px}
.wcc-facts{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr));gap:1px;margin:0;background:var(--soft);border:1px solid var(--soft);border-radius:var(--radius);overflow:hidden}
.wcc-facts:empty{display:none}
.wcc-facts div{display:flex;flex-direction:column;gap:2px;padding:8px 11px;background:var(--card);min-width:0}
.wcc-facts dt{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--muted)}
.wcc-facts dd{margin:0;font-family:var(--sans);font-size:12px;line-height:1.45;color:var(--muted)}
.wcc-facts dd b{display:block;font-size:16px;font-weight:750;color:var(--ink);font-variant-numeric:tabular-nums}
.wcc-facts dd small{font-size:11.5px}
@container wccw (min-width:640px){ .wcc-ans{grid-template-columns:minmax(220px,250px) minmax(0,1fr)} }

/* 롤 재단표 */
.wcc-rollfig,.wcc-net{margin:0;min-width:0}
.wcc-fighead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin:0 0 9px}
.wcc-leg{display:flex;flex-wrap:wrap;gap:3px 11px;font-family:var(--sans);font-size:11px;color:var(--muted)}
.wcc-leg span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.wcc-leg i{display:inline-block;width:10px;height:10px;border-radius:2px}
.wcc-rolls{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:7px 12px;border-radius:var(--radius);outline-offset:5px}
.wcc-roll{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:6px;min-width:0}
.wcc-roll b{font-family:var(--mono);font-size:10.5px;font-weight:500;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.wcc-roll > span{display:flex;height:13px;border:1px solid var(--line);border-radius:2px;background:var(--paper);overflow:hidden}
.wcc-roll i{flex:none;height:100%;box-shadow:inset -1px 0 0 var(--paper)}
.wcc-roll.is-on > span{outline:2px solid var(--ink);outline-offset:1px}
.wcc-roll.is-spare > span{border-style:dashed}
.wcc-roll.is-more b{grid-column:1 / -1;text-align:left;font-size:12px}
.wcc-tip{margin:9px 0 0;min-height:1.55em;font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--muted)}
.wcc .t-a,.wcc .t-w,.wcc .t-s,.wcc .n-a{background:color-mix(in srgb, var(--ink) 52%, var(--paper))}
.wcc .t-c,.wcc .n-c{background:color-mix(in srgb, var(--ink) 26%, var(--paper))}
.wcc .n-s{background:color-mix(in srgb, var(--ink) 80%, var(--paper))}
.wcc .t-x,.wcc .n-b{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--ink) 38%, var(--paper)) 0 2px, var(--paper) 2px 5px)}
.wcc .t-o,.wcc .n-d{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.wcc .t-sel,.wcc-roll i.is-sel{background:var(--fill)}
.wcc-roll i.t-c.is-sel{background:color-mix(in srgb, var(--fill) 55%, var(--paper))}
.wcc-rolls.is-anim .wcc-roll > span{animation:wccRoll .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d)}
@keyframes wccRoll{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

/* ---------- 입력 ---------- */
.wcc-in{padding:14px 18px 12px;border-bottom:1px solid var(--soft);background:color-mix(in srgb, var(--wash) 35%, var(--card))}
.wcc-bar,.wcc-pyform,.wcc-rmform{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px}
.wcc .wcc-seg{flex-wrap:nowrap;gap:0}
.wcc form .wcc-seg button{height:var(--v2-ctl);padding:0 12px;font-size:13px;white-space:nowrap;border-radius:0}
.wcc form .wcc-seg button + button{margin-left:-1px}
.wcc form .wcc-seg button:first-child{border-radius:var(--radius) 0 0 var(--radius)}
.wcc form .wcc-seg button:last-child{border-radius:0 var(--radius) var(--radius) 0}
.wcc-segf{min-width:0}
.wcc-cus{display:grid;grid-template-columns:repeat(2,minmax(0,170px)) minmax(0,1fr);align-items:end;gap:10px 14px;margin-top:12px}
.wcc-cushint{margin:0;font-family:var(--sans);font-size:11.5px;line-height:1.55;color:var(--muted);align-self:center}
.wcc-pypanel,.wcc-rmpanel{margin-top:14px}
.wcc-valf{flex:0 1 190px;min-width:150px}
.wcc-lrow{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 5px;line-height:1.35}
.wcc-lrow .v2-label{margin:0;line-height:1.35}
.wcc-ubtn{padding:0;border:0;background:none;font-family:var(--sans);font-size:11.5px;font-weight:600;line-height:1.35;color:var(--ink);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer;white-space:nowrap}
.wcc-chips{margin-top:10px;gap:5px}
.wcc-chips button{height:28px;padding:0 10px;font-size:12px}
.wcc-rmform .wcc-numf{flex:1 1 128px;min-width:118px;max-width:170px}
.wcc-msg{margin:10px 0 0;font-family:var(--sans);font-size:12px;line-height:1.55;color:var(--muted)}
.wcc-msg.is-error{color:var(--accent);font-weight:600}

/* 방 목록: 모든 줄이 같은 열(subgrid) — 번호 | 이름 | 가로 | 세로 | 문 | 막힌 폭 | 폭 수 | 빼기 */
.wcc-rmgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px}
.wcc-listwrap{min-width:0;display:flex;flex-direction:column;gap:10px}
.wcc-list{display:grid;grid-template-columns:30px minmax(58px,1fr) 60px 60px 46px 62px 58px 30px;gap:6px 6px;align-items:center}
.wcc-lh,.wcc-row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center}
.wcc-lh span{font-family:var(--sans);font-size:11px;font-weight:600;line-height:1.3;color:var(--muted)}
.wcc-lh span:nth-child(n+3):nth-child(-n+7){text-align:right}
.wcc-cell{min-width:0}
.wcc-cell input,.wcc-name{box-sizing:border-box;width:100%;min-width:0;height:var(--v2-ctl);padding:0 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);outline:0;font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;transition:border-color var(--ease),box-shadow var(--ease)}
.wcc-c-name input,.wcc-name{text-align:left;font-weight:600}
.wcc-cell input:focus,.wcc-name:focus{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent-wash)}
.wcc-cell.is-invalid input{border-color:var(--accent)}
.wcc-no{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);font-family:var(--sans);font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;transition:background var(--ease),color var(--ease)}
.wcc-no[aria-pressed="true"]{background:var(--fill);border-color:var(--fill);color:var(--on-fill)}
.wcc-out{display:block;font-family:var(--sans);font-size:11px;line-height:1.3;color:var(--muted);text-align:right;white-space:pre-line;font-variant-numeric:tabular-nums}
.wcc-del{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:var(--radius);background:none;font-size:18px;line-height:1;color:var(--muted);cursor:pointer}
.wcc-del:hover:not(:disabled){background:var(--btn);color:var(--ink)}
.wcc-del:disabled{opacity:.3;cursor:not-allowed}
.wcc-listact{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wcc-listhint{flex:1 1 240px;font-family:var(--sans);font-size:11.5px;line-height:1.55;color:var(--muted)}
@container wccw (max-width:519px){
  .wcc-list{grid-template-columns:30px repeat(4,minmax(0,1fr)) 30px;row-gap:5px}
  .wcc-lh,.wcc-row{row-gap:5px}
  .wcc-row{padding-bottom:9px;border-bottom:1px solid var(--soft)}
  .wcc-lh > span:nth-child(1),.wcc-row > :nth-child(1){grid-column:1;grid-row:1}
  .wcc-lh > span:nth-child(2),.wcc-row > :nth-child(2){grid-column:2 / 5;grid-row:1}
  .wcc-lh > span:nth-child(7),.wcc-row > :nth-child(7){grid-column:5;grid-row:1}
  .wcc-lh > span:nth-child(8),.wcc-row > :nth-child(8){grid-column:6;grid-row:1}
  .wcc-lh > span:nth-child(3),.wcc-row > :nth-child(3){grid-column:2;grid-row:2}
  .wcc-lh > span:nth-child(4),.wcc-row > :nth-child(4){grid-column:3;grid-row:2}
  .wcc-lh > span:nth-child(5),.wcc-row > :nth-child(5){grid-column:4;grid-row:2}
  .wcc-lh > span:nth-child(6),.wcc-row > :nth-child(6){grid-column:5 / 7;grid-row:2}
  .wcc-lh > span:nth-child(6){text-align:left}
}

/* 전개도 */
.wcc-net{display:flex;flex-direction:column}
.wcc-netbox{position:relative;flex:1 1 auto;min-height:250px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--card)}
.wcc-netbox svg{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);display:block;overflow:visible}
.wcc-netempty{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:16px;font-family:var(--sans);font-size:12px;line-height:1.6;text-align:center;color:var(--muted)}
.wcc-netd{margin:8px 0 0;font-family:var(--sans);font-size:11.5px;line-height:1.55;color:var(--muted)}
.wcc-netbox .n-wall{fill:var(--wash);stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.wcc-netbox .n-st{stroke:var(--card);stroke-width:1;vector-effect:non-scaling-stroke;transform-box:fill-box}
.wcc-netbox .n-st.a{fill:color-mix(in srgb, var(--ink) 52%, var(--paper))}
.wcc-netbox .n-st.b{fill:color-mix(in srgb, var(--ink) 40%, var(--paper))}
.wcc-netbox .n-st.c.a{fill:color-mix(in srgb, var(--ink) 26%, var(--paper))}
.wcc-netbox .n-st.c.b{fill:color-mix(in srgb, var(--ink) 18%, var(--paper))}
.wcc-netbox .n-st.s{fill:color-mix(in srgb, var(--ink) 80%, var(--paper))}
.wcc-netbox .n-door{fill:var(--paper);stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.wcc-netbox .n-blk{fill:url(#wccHatch);stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.wcc-netbox .n-hatch{fill:color-mix(in srgb, var(--ink) 38%, transparent)}
.wcc-netbox .n-ceil0{fill:var(--paper);stroke:var(--line);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.wcc-netbox .n-lab text{fill:var(--ink);font-family:var(--sans);font-weight:700;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--card);stroke-linejoin:round}
.wcc-netbox.is-anim .n-st{animation:wccUnroll .55s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d)}
@keyframes wccUnroll{from{transform:var(--s)}to{transform:none}}
@container wccw (min-width:760px){ .wcc-rmgrid{grid-template-columns:minmax(450px,1fr) minmax(230px,270px)} }

/* ---------- 견적 비교 ---------- */
.wcc-q{padding:14px 18px 16px;border-bottom:1px solid var(--soft)}
.wcc-qhead{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:0 0 10px}
.wcc-qtitle{flex:1 1 300px;min-width:0}
.wcc-qsum{margin:4px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink)}
.wcc-housef{flex:0 1 210px;min-width:170px}
.wcc-qclear{margin-left:auto}
.wcc-qt{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(80px,2fr) repeat(4,max-content);column-gap:14px;margin:0 0 10px}
.wcc-qr{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center;padding:8px 0;border-top:1px solid var(--soft)}
.wcc-qr > span{min-width:0}
.wcc-qh{padding:0 0 6px;border-top:0}
.wcc-qh > span{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--muted)}
.wcc-qh > span:nth-child(n+3){text-align:right}
.q-name{display:flex;align-items:center;gap:7px}
.q-name b{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--wash);font-family:var(--sans);font-size:11px;font-weight:800;color:var(--ink)}
.q-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--sans);font-size:13.5px;font-weight:650;color:var(--ink)}
.q-b{flex:none;font-family:var(--sans);font-size:11px;color:var(--muted)}
.q-bar i{position:relative;display:block;width:0;height:14px;overflow:hidden;border-radius:2px;background:color-mix(in srgb, var(--ink) 45%, var(--paper));transition:width .4s cubic-bezier(.2,.7,.2,1)}
.q-bar em{position:absolute;top:0;right:0;bottom:0;background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--ink) 25%, var(--paper)) 0 2px, transparent 2px 5px)}
.wcc-qr.is-min .q-bar i{background:var(--accent)}
.wcc-qr.is-min .q-bar em{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--accent) 45%, var(--paper)) 0 2px, transparent 2px 5px)}
.q-total{font-family:var(--sans);font-size:14px;font-weight:750;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.q-diff,.q-sqm,.q-house{font-family:var(--sans);font-size:12.5px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.wcc-qr.is-min .q-diff{color:var(--accent);font-weight:700}
.wcc-qempty{grid-column:1 / -1;margin:0;padding:10px 12px;border:1px dashed var(--soft);border-radius:var(--radius);font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--muted)}
.wcc-scope{display:grid;gap:4px;margin:0 0 12px;padding:9px 12px;border-left:3px solid var(--accent);background:var(--wash);border-radius:0 var(--radius) var(--radius) 0;font-family:var(--sans);font-size:12.5px;line-height:1.6;color:var(--ink)}
@container wccw (max-width:579px){
  .wcc-qt{grid-template-columns:repeat(3,minmax(0,1fr))}
  .wcc-qh{display:none !important}
  .wcc-qr{row-gap:6px}
  .wcc-qr .q-name{grid-column:1 / 3;grid-row:1}
  .wcc-qr .q-total{grid-column:3;grid-row:1}
  .wcc-qr .q-bar{grid-column:1 / -1;grid-row:2}
  .wcc-qr .q-diff,.wcc-qr .q-sqm,.wcc-qr .q-house{grid-row:3}
  .wcc-qr .q-diff,.wcc-qr .q-sqm,.wcc-qr .q-house{text-align:left;font-size:12px;white-space:normal}
  .wcc-qr .q-diff::before,.wcc-qr .q-sqm::before,.wcc-qr .q-house::before{content:attr(data-l);display:block;font-size:10.5px;font-weight:600}
}

/* 견적 카드 */
.wcc-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.wcc-card{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:10px;min-width:0;margin:0;padding:12px;border:1px solid var(--soft);border-radius:var(--radius);background:color-mix(in srgb, var(--wash) 30%, var(--card))}
.wcc-chead{display:flex;align-items:center;gap:8px;min-width:0}
.wcc-letter{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--wash);font-family:var(--sans);font-size:12px;font-weight:800;color:var(--ink)}
.wcc-name{flex:1 1 auto;font-size:14px}
.wcc-extag{flex:none;padding:2px 7px;border:1px dashed var(--line);border-radius:var(--radius);font-family:var(--sans);font-size:11px;font-weight:600;color:var(--muted)}
.wcc-sel{box-sizing:border-box;width:100%;height:var(--v2-ctl);padding:0 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink)}
.wcc-inc .v2-label{display:block;margin:0 0 5px}
.wcc-inc .v2-seg{gap:4px;flex-wrap:nowrap}
.wcc-inc .v2-seg button{height:var(--v2-ctl);padding:0 10px}
.wcc-cerr{margin:0;font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--accent)}
.wcc-cerr:empty{display:none}
@container wccw (min-width:700px){ .wcc-cards{grid-template-columns:repeat(3,minmax(0,1fr))} }
@container wccw (max-width:699px){
  .wcc-card{grid-template-columns:112px minmax(0,1fr)}
  .wcc-chead,.wcc-extf,.wcc-inc,.wcc-cerr{grid-column:1 / -1}
}
@container wccw (min-width:460px) and (max-width:699px){
  .wcc-card{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wcc-extf,.wcc-inc{grid-column:auto}
}

/* ---------- 식·도구 ---------- */
.wcc-foot{display:grid;gap:10px;padding:12px 18px 14px}
.wcc-formula{margin:0;white-space:normal;overflow:visible;line-height:1.65}
.wcc-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wcc-acts .v2-status{margin:0 0 0 auto}

@media (prefers-reduced-motion:reduce){
  .wcc-rolls.is-anim .wcc-roll > span,.wcc-netbox.is-anim .n-st{animation:none}
  .q-bar i{transition:none}
}
