/* вкладка «3D-модель» (m3d.js) */
.m3d{display:grid;grid-template-columns:minmax(320px,460px) minmax(0,1fr);gap:16px;margin-top:12px;align-items:start}
.m3d>.panel{margin:0;min-width:0}
.m3d-form{grid-row:span 2}
.m3d-planp,.m3d-move,.m3d-specp{grid-column:1/-1}
@media (min-width:1100px){.m3d-planp{grid-column:2}.m3d-move{grid-column:1/-1}}
.m3d-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2px 12px}
.m3d-grid .f{margin:0}
.m3d-hint{margin:0 0 8px}
.m3d-constr{margin:10px 0 0}
.m3d-lt th,.m3d-lt td{padding-left:4px;padding-right:4px}.m3d-lt input[type=number]{width:62px}.m3d-lt select{width:auto}
.m3d-ab{white-space:nowrap}.m3d-ab span{margin:0 4px;color:var(--muted)}.m3d-ab input[type=number]{width:52px}
.m3d-rules{margin-top:14px}.m3d-rules summary{cursor:pointer;font-weight:700}
.m3d-rules .m3d-grid{margin-top:8px}
.m3d-layers{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.m3d-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;cursor:pointer;
  background:var(--field);user-select:none}
.m3d-chip input{margin:0}
.m3d-view{position:relative;height:520px;border-radius:14px;overflow:hidden;border:1px solid var(--line);
  background:radial-gradient(ellipse at 50% 30%,var(--surface),var(--bg2));touch-action:none}
.m3d-view canvas{display:block;width:100%;height:100%}
.m3d-load{position:absolute;inset:0;display:grid;place-items:center;margin:0}
.m3d-stats{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:13px;color:var(--muted)}
.m3d-stats b{color:var(--ink)}
.m3d-warn{margin:10px 0 0}
.m3d-plan svg{width:100%;max-height:420px;display:block}
.m3d-plan .warm{fill:var(--accent-soft);stroke:none}
.m3d-plan .ter{fill:color-mix(in srgb,var(--muted) 12%,transparent)}
.m3d-plan line.w{stroke:var(--ink);stroke-width:.09}
.m3d-plan line.nw{stroke:var(--muted);stroke-width:.06;stroke-dasharray:.25 .18}
.m3d-plan .pile{fill:var(--acc);stroke:var(--surface);stroke-width:.03}
.m3d-plan text{font-size:.36px;fill:var(--muted);text-anchor:middle;dominant-baseline:middle}
.m3d-plan .lbl{font-size:.42px}
.m3d-dt td:first-child{width:28px}
.m3d-dt small.why{display:block}
.m3d-ed td{background:color-mix(in srgb,#e8a33a 10%,transparent)}
@media (max-width:860px){
  .m3d{grid-template-columns:minmax(0,1fr)}
  .m3d-form{grid-row:auto}
  .m3d-view{height:360px}
}
/* 3D-калькулятор (calc3d.js): слева ввод, справа модель, итог, схема, материалы */
.c3{grid-template-columns:minmax(320px,440px) minmax(0,1fr)}
.c3-main,.c3-side{display:grid;gap:14px;align-content:start;min-width:0}
.c3-main>.panel,.c3-side>.panel{margin:0}
.c3-side{position:sticky;top:12px}
.c3 .vsub small{font-weight:400}
.c3-flags{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}
#c3Sum.busy{opacity:.6}
@media (max-width:860px){.c3{grid-template-columns:minmax(0,1fr)}.c3-side{position:static}}
/* редактор планировки (plan2d.js) */
.c3-plan{margin:12px 0 0}
.p2-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.p2-tool{border:1px solid var(--line);background:var(--field);color:inherit;border-radius:9px;padding:6px 10px;font-size:13px;cursor:pointer}
.p2-tool.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#fff);font-weight:600}
.p2-under label.btn{cursor:pointer}.p2-op{display:inline-flex;gap:6px;align-items:center;font-size:12.5px}
.p2-wrap{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:10px}
.p2-svg{width:100%;height:480px;border:1px solid var(--line);border-radius:12px;background:var(--surface);touch-action:none;cursor:crosshair;outline:none}
.p2-side{font-size:13px;display:grid;gap:8px;align-content:start}.p2-side .f{margin:0}
.p2-grid .g{stroke:color-mix(in srgb,var(--muted) 18%,transparent)}.p2-grid .g5{stroke:color-mix(in srgb,var(--muted) 38%,transparent)}
.p2-house{fill:color-mix(in srgb,var(--accent) 12%,transparent);stroke:var(--ink);stroke-linejoin:miter}
.p2-terr{fill:color-mix(in srgb,#c8914a 22%,transparent);stroke:#a8733f}
.p2-wall.bear{stroke:var(--ink)}.p2-wall.obv{stroke:#a8733f;stroke-dasharray:.05 .1}.p2-wall.part{stroke:var(--muted);stroke-dasharray:.2 .12}
.p2-op.win{stroke:#5aa9e6}.p2-op.door{stroke:#d9822b}
.p2-v{fill:var(--surface);stroke:var(--accent);stroke-width:.04}
.sel{stroke:#f26b0f!important}.p2-v.sel{fill:#f26b0f}
.p2-draft{fill:none;stroke:#f26b0f;stroke-dasharray:.15 .1}
.p2-cal{fill:#e0457b;stroke:#e0457b}
.p2-dim,.p2-lbl{fill:var(--muted);text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:var(--surface);stroke-width:.06}
.p2-sum{margin-top:8px}
@media (max-width:860px){.p2-wrap{grid-template-columns:minmax(0,1fr)}.p2-svg{height:360px}}
