#efcd{
  --leaf:#8dc63f; --leaf-deep:#598527; --leaf-dark:#3f6219; --leaf-tint:#dcecc5; --leaf-ink:#002000;
  --paper:#ffffff; --paper-alt:#f5f8f0; --ink:#242424; --ink-strong:#0f140b; --muted:#555c4c; --line:rgba(36,36,36,.16);
  --btn:#598527; --btn-hover:#3f6219; --btn-fg:#ffffff;
  --sel:#598527; --warn:#a64b06; --warn-tint:#fdebd8; --bad:#c0262d; --good:#3f6219; --yellow:#fff301;
  --stage:#eef3e6; --roomfill:#ffffff; --wall:#2c3324; --grid:rgba(89,133,39,.13);
  --fwood:#efe2c8; --fwood-deep:#c8a46c; --fstore:#dcecc5; --fstore-line:#598527; --fwhite:#ffffff; --fplay:#a9c3cf;
  --f-display:"Open Sans","Arial Narrow",system-ui,sans-serif;
  --f-body:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:10px;
}
#efcd *{box-sizing:border-box}
#efcd button,#efcd input,#efcd select,#efcd textarea{font:inherit;color:inherit}
#efcd :focus-visible{outline:2.5px solid var(--sel);outline-offset:2px}
#efcd h1,#efcd h2,#efcd h3{font-family:var(--f-display);font-stretch:75%;font-weight:800;color:var(--ink-strong);letter-spacing:-.01em;line-height:1;margin:0;text-wrap:balance}
#efcd .app{height:100%;display:grid;grid-template-rows:auto 1fr;min-height:0}
#efcd .bar{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:5}
#efcd .brand{display:flex;align-items:center;gap:10px;min-width:0}
#efcd .logo{display:inline-grid;place-items:center;background:var(--yellow);color:#ed1d26;border:2px solid #0f140b;border-radius:8px;padding:2px 7px 3px;font:800 19px/1 var(--f-display);font-stretch:75%;letter-spacing:-.02em}
#efcd .logo b{color:#0f140b;font-weight:800}
#efcd .brand-name{font:800 20px/1 var(--f-display);font-stretch:75%;color:var(--ink-strong);white-space:nowrap}
#efcd .cd-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;letter-spacing:.03em;white-space:nowrap}
#efcd .cd-chip.proto{background:var(--warn-tint);color:var(--warn)}
#efcd .steps{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1 1 auto;min-width:0}
#efcd .steps button{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:8px 12px;border-radius:999px;font-weight:700;font-size:14px;color:var(--muted);cursor:pointer;white-space:nowrap}
#efcd .steps button .n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid currentColor;font-size:12px}
#efcd .steps button:hover{background:var(--paper-alt);color:var(--ink-strong)}
#efcd .steps button[aria-selected="true"]{background:var(--leaf-tint);color:var(--ink-strong)}
#efcd .steps button[aria-selected="true"] .n{background:var(--btn);border-color:var(--btn);color:var(--btn-fg)}
#efcd .hdr-total{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
#efcd .hdr-total span{font-size:12px;color:var(--muted)}
#efcd .hdr-total b{font:800 20px/1 var(--f-display);font-stretch:80%;color:var(--ink-strong);font-variant-numeric:tabular-nums}
#efcd main{min-height:0;position:relative}
#efcd .view{height:100%;min-height:0;display:grid;grid-template-columns:minmax(300px,360px) 1fr}
#efcd .view.doc{display:block;overflow-y:auto}
#efcd .panel{overflow-y:auto;border-right:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:20px;background:var(--paper);min-width:0}
#efcd .sec{display:flex;flex-direction:column;gap:10px}
#efcd .sec>h2{font-size:21px}
#efcd .sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
#efcd .hint{font-size:13px;color:var(--muted);margin:0}
#efcd .lbl{font-size:12.5px;font-weight:700;color:var(--muted);letter-spacing:.03em}
#efcd .field{display:flex;flex-direction:column;gap:4px;min-width:0}
#efcd .cd-row{display:flex;gap:10px;flex-wrap:wrap}
#efcd .cd-row>.field{flex:1 1 90px}
#efcd input[type=text],#efcd input[type=number],#efcd input[type=email],#efcd input[type=tel],#efcd input[type=date],#efcd select,#efcd textarea{width:100%;border:1.5px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 10px;min-height:40px}
#efcd input:focus,#efcd select:focus,#efcd textarea:focus{border-color:var(--sel);outline:none}
#efcd input[type=range]{width:100%;accent-color:var(--btn)}
#efcd .cd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border-radius:8px;border:1.5px solid transparent;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap;text-decoration:none}
#efcd .cd-btn-primary{background:var(--btn);color:var(--btn-fg)}
#efcd .cd-btn-primary:hover{background:var(--btn-hover)}
#efcd .cd-btn-ghost{background:transparent;border-color:var(--line);color:var(--ink-strong)}
#efcd .cd-btn-ghost:hover{border-color:var(--ink-strong)}
#efcd .cd-btn-danger{background:transparent;border-color:var(--bad);color:var(--bad)}
#efcd .cd-btn-sm{min-height:32px;padding:4px 10px;font-size:13px}
#efcd .cd-btn[disabled]{opacity:.45;cursor:not-allowed}
#efcd .cd-btn-row{display:flex;gap:8px;flex-wrap:wrap}
#efcd .seg{display:inline-flex;border:1.5px solid var(--line);border-radius:14px;padding:3px;gap:2px;flex-wrap:wrap}
#efcd .seg button{border:0;background:transparent;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
#efcd .seg button[aria-pressed="true"]{background:var(--btn);color:var(--btn-fg)}
#efcd .checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
#efcd .checks label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
#efcd .checks input{accent-color:var(--btn);width:17px;height:17px}
#efcd .fins{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#efcd .fin{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:8px;padding:7px 9px;background:var(--paper);cursor:pointer;font-size:13px;font-weight:600;text-align:left}
#efcd .fin[aria-pressed="true"]{border-color:var(--sel);box-shadow:inset 0 0 0 1px var(--sel)}
#efcd .sw{display:flex;flex:none}
#efcd .sw i{width:12px;height:22px;display:block}
#efcd .sw i:first-child{border-radius:4px 0 0 4px}
#efcd .sw i:last-child{border-radius:0 4px 4px 0}
#efcd .rooms{display:flex;flex-direction:column;gap:6px}
#efcd .rcard{display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-align:left;border:1.5px solid var(--line);border-radius:var(--r);padding:9px 12px;background:var(--paper);cursor:pointer}
#efcd .rcard[aria-current="true"]{border-color:var(--sel);background:var(--leaf-tint)}
#efcd .rcard b{color:var(--ink-strong);font-size:14.5px}
#efcd .rcard .m{font-size:12.5px;color:var(--muted)}
#efcd .rcard .t{font-weight:700;font-variant-numeric:tabular-nums;font-size:14px;color:var(--ink-strong);text-align:right}
#efcd .rcard .w{grid-column:1/-1;font-size:12px;color:var(--warn);font-weight:700}
#efcd .cd-box{border:1.5px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--paper)}
#efcd .cd-box.sel{border-color:var(--sel)}
#efcd .meter{height:8px;border-radius:99px;background:var(--paper-alt);overflow:hidden;border:1px solid var(--line)}
#efcd .meter i{display:block;height:100%;background:var(--good)}
#efcd .meter.over i{background:var(--bad)}
#efcd .nqs{font-size:13px;margin:0}
#efcd .nqs b{font-variant-numeric:tabular-nums}
#efcd .nqs.over{color:var(--bad)}
#efcd .plist{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow-y:auto;padding-right:2px}
#efcd .pitem{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:var(--paper-alt)}
#efcd .pitem b{display:block;font-size:13.5px;color:var(--ink-strong);line-height:1.25}
#efcd .pitem span{font-size:12px;color:var(--muted)}
#efcd .pitem .pr{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
#efcd .confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--bad);font-weight:600}
#efcd .stage{position:relative;background:var(--stage);min-width:0;min-height:0;overflow:hidden;touch-action:none}
#efcd .stage svg{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none}
#efcd .tools{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:8px;flex-wrap:wrap;pointer-events:none;justify-content:space-between}
#efcd .tools>*{pointer-events:auto}
#efcd .tgroup{display:flex;gap:2px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:3px;box-shadow:0 2px 10px rgba(0,0,0,.06)}
#efcd .tgroup button{border:0;background:transparent;border-radius:7px;min-width:36px;height:34px;padding:0 10px;font-size:13px;font-weight:700;cursor:pointer;color:var(--ink-strong);display:inline-flex;align-items:center;gap:6px}
#efcd .tgroup button[aria-pressed="true"]{background:var(--btn);color:var(--btn-fg)}
#efcd .tgroup button[disabled]{opacity:.35;cursor:not-allowed}
#efcd .stage-hint{position:absolute;left:12px;bottom:12px;max-width:min(560px,calc(100% - 24px));background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:7px 12px;font-size:13px;color:var(--ink)}
#efcd .legend{position:absolute;right:12px;bottom:12px;display:flex;gap:10px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:12px;color:var(--muted)}
#efcd .legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid var(--line)}
#efcd svg .it{cursor:grab}
#efcd svg .it:active{cursor:grabbing}
#efcd svg .rm-floor{cursor:pointer}
#efcd .stage.draw svg,#efcd .stage.scale svg{cursor:crosshair}
#efcd .stage3d{position:relative;background:var(--stage);min-width:0;min-height:0;overflow:hidden}
#efcd .stage3d canvas{display:block;width:100%;height:100%;touch-action:none}
#efcd .stage3d .msg{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;color:var(--muted)}
#efcd .prog{height:6px;border-radius:99px;background:var(--paper-alt);overflow:hidden;border:1px solid var(--line)}
#efcd .prog i{display:block;height:100%;width:0;background:var(--btn);transition:width .2s linear}
#efcd video.preview{width:100%;border-radius:8px;background:#000;aspect-ratio:16/9}
#efcd .page{max-width:1120px;margin:0 auto;padding-block:28px 64px;padding-inline:max(16px,4vw)}
#efcd .page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
#efcd .page-head h1{font-size:clamp(34px,5vw,54px)}
#efcd .page-head p{margin:8px 0 0;color:var(--muted);max-width:60ch}
#efcd .sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:26px}
#efcd .sum div{background:var(--paper);padding:12px 14px}
#efcd .sum span{display:block;font-size:12.5px;color:var(--muted);font-weight:700}
#efcd .sum b{font:800 26px/1.1 var(--f-display);font-stretch:80%;font-variant-numeric:tabular-nums;color:var(--ink-strong)}
#efcd .sum .grand{background:var(--leaf-tint)}
#efcd .rsched{margin-bottom:28px}
#efcd .rsched h2{font-size:26px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
#efcd .rsched h2 small{font:600 13px var(--f-body);color:var(--muted);letter-spacing:0}
#efcd .tbl{overflow-x:auto;margin-top:10px;border:1px solid var(--line);border-radius:var(--r)}
#efcd table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
#efcd th,#efcd td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
#efcd th{font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;background:var(--paper-alt)}
#efcd td.r,#efcd th.r{text-align:right;font-variant-numeric:tabular-nums}
#efcd tr:last-child td{border-bottom:0}
#efcd tfoot td{font-weight:800;color:var(--ink-strong);background:var(--paper-alt)}
#efcd .code{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
#efcd .note{font-size:13px;color:var(--muted);max-width:75ch}
#efcd .send{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:start}
#efcd .send form{display:flex;flex-direction:column;gap:14px}
#efcd .cd-card{border:1.5px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--paper)}
#efcd .cd-card h2{font-size:24px}
#efcd .cd-card ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:14px}
#efcd .ok{border-color:var(--sel);background:var(--leaf-tint)}
#efcd .kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
#efcd .kv dt{color:var(--muted)}
#efcd .kv dd{margin:0;font-weight:700;color:var(--ink-strong);text-align:right;font-variant-numeric:tabular-nums}
#efcd .cd-toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink-strong);color:var(--paper);padding:10px 16px;border-radius:10px;font-size:14px;font-weight:600;z-index:50;max-width:calc(100% - 32px)}
@media (max-width:1280px){#efcd .legend{display:none}}
@media (max-width:900px){#efcd .app{height:auto;display:block}
#efcd .view{grid-template-columns:1fr;height:auto}
#efcd .view>.stage,#efcd .view>.stage3d{order:-1;height:62vh;min-height:360px}
#efcd .panel{border-right:0;overflow:visible;border-top:1px solid var(--line)}
#efcd .send{grid-template-columns:1fr}
#efcd .hdr-total{margin-left:auto}
#efcd .legend{display:none}}
@media (prefers-reduced-motion:reduce){#efcd *{transition:none!important;animation:none!important}}
#efcd{background:var(--paper);color:var(--ink);font:400 15px/1.5 var(--f-body);-webkit-font-smoothing:antialiased;border-top:1px solid var(--line)}
#efcd .app{height:var(--efcd-h,calc(100vh - 120px));min-height:620px}
#efcd .bar{padding:10px max(16px,2vw)}
#efcd .brand-name{font-size:24px;margin:0}
#efcd p{margin:0}
#efcd label{margin:0}
#efcd .page p.hint, #efcd .card p{margin:0}
#efcd .cd-row{margin:0}
#efcd .cd-card,#efcd .cd-box{color:var(--ink)}
#efcd .thumb{width:40px;height:40px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid var(--line);flex:none}
#efcd .prod{display:flex;gap:10px;align-items:center}
#efcd .prod a{color:var(--ink-strong);text-decoration:none;font-weight:600}
#efcd .prod a:hover{text-decoration:underline}
#efcd .q-only{font-size:11.5px;font-weight:700;color:var(--warn);background:var(--warn-tint);border-radius:99px;padding:1px 8px;margin-left:6px;white-space:nowrap}
#efcd .busy{opacity:.6;pointer-events:none}
#efcd .cd-toast{z-index:1060}
#efcd{scroll-margin-top:130px}
@media (max-width:900px){#efcd .app{height:auto;min-height:0}}
