:root{--bg:#f4f6f9;--card:#fff;--ink:#1c2430;--mut:#6b7686;--line:#e3e8ef;--brand:#f5a300;--danger:#d64545;--ok:#1f9d63;--blue:#2b7fd1}
*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
html,body{overflow-x:hidden}
header.top{background:#1c2430;color:#fff;padding:12px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
header.top h1{font-size:18px;margin:0}
header.top h1 span{color:var(--brand)}
header.top a{color:#cfd6e0;font-size:13px;margin-left:auto}
nav{display:flex;gap:6px;flex-wrap:wrap}
nav button{background:transparent;color:#cfd6e0;border:1px solid #37435a;border-radius:8px;padding:7px 12px;cursor:pointer;font:inherit}
nav button.on{background:var(--brand);color:#1c2430;border-color:var(--brand);font-weight:600}
main{max-width:1200px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}
.card h2{margin:0 0 12px;font-size:16px}
.card h3{margin:14px 0 8px;font-size:14px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
label{display:block;font-size:12px;color:var(--mut);margin-bottom:3px}
label.chk{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink);margin:0;cursor:pointer}
label.chk input{width:auto}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}
button.btn{background:var(--brand);color:#1c2430;border:0;border-radius:8px;padding:8px 13px;font:inherit;font-weight:600;cursor:pointer}
button.btn.sec{background:#e9edf3;color:var(--ink)}
button.btn.dng{background:#fde8e8;color:var(--danger)}
button.btn.ok{background:var(--ok);color:#fff}
button.btn.sm{padding:4px 9px;font-size:13px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.hint{color:var(--mut);font-size:12px}
.hide{display:none!important}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pill{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 14px;cursor:pointer;font:inherit}
.pill.on{background:#1c2430;color:#fff;border-color:#1c2430}
.room{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px;background:#fff}
.room.wet{border-color:var(--blue);background:#f6faff}
.room .head{display:grid;gap:8px;grid-template-columns:minmax(120px,1.4fr) minmax(110px,1fr) auto auto;align-items:end;margin-bottom:10px}
.room .nums{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
table.ap{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
table.ap th{font-size:11px;text-align:left;color:var(--mut);padding:3px}
table.ap td{padding:2px}
table.ap input,table.ap select{padding:5px 6px}
.stats{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:12px}
.stat{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:10px}
.stat b{display:block;font-size:20px}
.stat span{font-size:12px;color:var(--mut)}
.warn{background:#fff6e0;border:1px solid #f0d28a;border-radius:8px;padding:8px 12px;margin-bottom:8px;font-size:13px}
table.res{width:100%;border-collapse:collapse;font-size:13px}
table.res th{background:#eef2f7;text-align:left;padding:6px;font-size:12px}
table.res td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}
table.res tr.blk td{background:#fff3d6;font-weight:700}
table.res tr.blk.wet td{background:#e3f0ff}
table.res .r{text-align:right;white-space:nowrap}
.scheme{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px}
.bomsec{margin-bottom:14px}
.assume li{margin-bottom:4px;font-size:13px}
#printHead{display:none}

@media(max-width:700px){
  .room .head{grid-template-columns:1fr 1fr}
}
@media print{
  @page{size:A4 landscape;margin:8mm}
  body{background:#fff;font-size:11px}
  header.top,nav,.noprint,#view-obj,#view-rooms,button{display:none!important}
  main{max-width:none;padding:0}
  .card{border:0;padding:0;margin-bottom:10px;break-inside:auto}
  #printHead{display:block;margin-bottom:8px}
  .scheme{border:0;overflow:visible;padding:0}
  .scheme svg{width:100%!important;height:auto!important}
  .scheme-row{break-inside:avoid}
  .bomsec{break-inside:avoid}
  .card.pb{break-before:page}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
