/* ВудСтрой — конструктор дома. Опирается на общие стили конструктора окна (tools.css: .cfg, .fs, .seg, .range). */
.hc__fail{padding:40px;background:var(--snow);border-radius:var(--r-img);font-size:18px}
.hc__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px}
.hc__stage{top:92px}

/* ---------- объёмная модель ---------- */
.hc__view{position:relative;border-radius:var(--r-img);overflow:hidden;aspect-ratio:4/3;max-height:62vh;width:100%;
  background:linear-gradient(180deg,#cfe0e6 0%,#e4ecea 46%,#e9e6d6 72%,#dcd9c4 100%)}
.hc__canvas{position:absolute;inset:0}
.hc__canvas canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y;outline:none}
.hc__canvas canvas:active{cursor:grabbing}
.hc__loading{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:24px;text-align:center;font:400 13px var(--f-mono);letter-spacing:.04em;color:var(--ink-2)}
.hc__view.is-ready .hc__loading{display:none}
.hc__view.is-failed{aspect-ratio:auto;min-height:120px}
.hc__view.is-failed .hc__bar{display:none}
.hc__bar{position:absolute;left:12px;right:12px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}
.hc__bar--top{top:12px}
.hc__bar--bottom{bottom:12px}
.hc__chips{display:flex;flex-wrap:wrap;gap:4px;pointer-events:auto}
.hc__chips button{height:34px;padding:0 13px;border-radius:999px;border:1px solid rgba(19,32,26,.18);background:rgba(251,250,246,.86);backdrop-filter:blur(6px);
  font:400 13px/1 var(--f-sans);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.hc__chips button:hover{background:var(--snow);border-color:var(--ink)}
.hc__chips button.is-on{background:var(--ink);color:var(--snow);border-color:var(--ink)}
.hc__chips button[data-zoom]{width:34px;padding:0;font-size:18px}
.hc__chips--form{margin:0 0 14px}
.hc__chips--form button{height:40px;padding:0 16px;font-size:14px;background:transparent;border-color:var(--rule-strong);backdrop-filter:none}
.hc__chips--form button:hover{background:var(--lichen)}
.hc__chips--form button.is-on{background:var(--ink)}
.hc__chips .hc__link,.hc__link{border:0!important;background:none!important;padding:0 6px!important;height:auto;color:var(--pine);font-size:14px;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;border-radius:0}
.hc__chips--form .hc__link{align-self:center;margin-left:6px}

/* ---------- подсказки конструктора ---------- */
.hc__notes{display:grid;gap:8px}
.hc__notes:empty{display:none}
.hc__note{margin:0;padding:12px 16px;border-radius:12px;background:var(--snow);border-left:3px solid var(--resin);font-size:14px;line-height:1.45}
.hc__note b{display:block;font:500 10px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pine);margin-bottom:6px}
.hc__note--fix{border-left-color:var(--pine);background:var(--lichen)}

/* ---------- форма ---------- */
.hc__form .fs legend{margin-bottom:16px}
.hc__lbl{font:400 11px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:20px 0 10px}
.fs legend+.hc__lbl{margin-top:0}
.hc__gap{margin-top:20px}
.hc__lvl{margin:0 0 12px}
.hc__sw{grid-template-columns:repeat(2,1fr)}
.hc__sw .sw{min-height:46px;padding:6px 10px 6px 6px}
.hc__sw .sw__dot{width:30px;height:30px}
.hc__sw .sw__t{font-size:13px}
.hc__tg{display:flex!important;margin-top:8px!important;align-items:flex-start;padding-top:9px}
.hc__tg small{display:block;font-size:12.5px;color:var(--mute);line-height:1.35}
.hc__incs{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.hc__always{margin:0 0 6px;font-size:14px;color:var(--ink-2)}
.hc__form [hidden]{display:none!important}
.hc__form .range label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.hc__form .range label b{font:500 13px/1 var(--f-mono);letter-spacing:0;text-transform:none;white-space:nowrap}
.hc__draw{background:var(--plinth);border-radius:var(--r-card);padding:10px;margin:0 0 14px;touch-action:none;user-select:none}
.hc__draw svg{display:block;width:100%;height:auto;max-height:440px}
.hc__draw--elev svg{max-height:360px}
.hc-iw:hover rect:first-child,.hc-op:hover rect:nth-child(2){filter:brightness(.9)}
.hc__edit{background:var(--snow);border-radius:var(--r-card);padding:18px 20px}
.hc__edit-h{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.hc__edit-h b{font-weight:500;font-size:17px}
.hc__edit-h span{font:400 12px var(--f-mono);color:var(--mute);flex:1}
.hc__del{border:0;background:none;color:#a34a2a;font-size:14px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:0}
.hc__tip{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.hc__edit .inp--sel select{width:100%;height:44px;padding:0 36px 0 12px;font-size:15px}
.hc__edit .inp label{margin-bottom:0}

/* ---------- смета ---------- */
.hc__est{margin-top:96px;scroll-margin-top:96px}
.hc__est-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:28px}
.hc__est-head .h2{margin:14px 0 0}
.hc__est-head p{margin:0;color:var(--ink-2)}
.hc__tbl-wrap{overflow-x:auto;background:var(--snow);border-radius:var(--r-img);padding:8px 28px 12px}
.hc__tbl{width:100%;border-collapse:collapse;font-size:15px}
.hc__tbl th,.hc__tbl td{padding:12px 0 12px 20px;text-align:right;vertical-align:top;border-bottom:1px solid var(--rule);white-space:nowrap}
.hc__tbl th:first-child,.hc__tbl td:first-child{text-align:left;padding-left:0;white-space:normal;min-width:260px}
.hc__tbl thead th{font:400 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);border-bottom-color:var(--ink)}
.hc__tbl td{font-family:var(--f-mono);font-size:14px}
.hc__tbl td:first-child{font-family:var(--f-sans);font-size:15px}
.hc__tbl td small{display:block;font-size:12.5px;color:var(--mute);margin-top:2px}
.hc__sec th{padding-top:24px;font:500 17px/1.2 var(--f-sans);border-bottom-color:var(--ink)}
.hc__sec th:last-child{font:500 15px var(--f-mono)}
.hc__tbl tfoot th{border-bottom:0;padding-top:22px;font:500 19px/1.2 var(--f-sans)}
.hc__tbl tfoot th:last-child{font-family:var(--f-mono)}
.hc__est-foot{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:start;margin-top:32px}
.hc__small{margin:12px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-2);max-width:64ch}
.hc__est-act{display:grid;gap:10px;min-width:300px}
.hc__est-act .btn{justify-content:center}
.hc__est-act .hc__link{justify-self:center;margin-top:4px}
.hc__print{display:none}
.hc__qs{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.hc__q select{width:100%;height:44px;padding:0 36px 0 12px;font-size:15px}
.hc__q input[type=text],.hc__q textarea{width:100%;border:1px solid var(--rule-strong);border-radius:10px;background:var(--snow);padding:10px 12px;font-size:15px}
.hc__q input[type=text]{height:44px}
.hc__q textarea{min-height:84px}
.hc__q input:focus,.hc__q textarea:focus{border-color:var(--pine);box-shadow:0 0 0 1px var(--pine)}

@media (max-width:1200px){.hc__grid{gap:32px}.hc__incs{grid-template-columns:1fr}}
@media (max-width:1024px){
  .hc__grid{grid-template-columns:1fr}
  .hc__view{max-height:none}
  .hc__est{margin-top:64px}
  .hc__est-head,.hc__est-foot{grid-template-columns:1fr;gap:20px}
  .hc__incs{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .hc__view{aspect-ratio:1/1;border-radius:20px}
  .hc__bar{left:8px;right:8px}
  .hc__bar--top{top:8px}.hc__bar--bottom{bottom:8px}
  .hc__chips button{height:32px;padding:0 10px;font-size:12px}
  .hc__sw,.hc__incs,.hc__qs{grid-template-columns:1fr}
  .hc__form .fs__two{grid-template-columns:1fr;gap:16px}
  .hc__tbl-wrap{padding:4px 16px 8px;border-radius:20px}
  .hc__tbl th:first-child,.hc__tbl td:first-child{min-width:190px}
  .hc__est-act{min-width:0}
  .hc__edit{padding:16px}
}
@media (max-width:720px){body.has-bar .cfg-bar[data-hc-bar]{display:flex}}

@media print{
  header,footer,.fab,.cfg-bar,.strip,dialog,.hc__grid,.hc__est-act,.demo-note,main>*:not(.hc-sec),.offer{display:none!important}
  body{background:#fff}
  .hc__est{margin:0}
  .hc__tbl-wrap{background:none;padding:0}
  .hc__print{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:16px;font-size:12px}
  .hc__print img{width:100%;border-radius:8px}
  .hc__print p{margin:0 0 4px}
  .hc__tbl{font-size:12px}.hc__tbl th,.hc__tbl td{padding:5px 0 5px 12px}
}
