/* Dezzworks Layout Engine — styles. Scoped under #dzw-app so the host theme is untouched. */
#dzw-app{
  --ink:#15181C;--ink-2:#3E444B;--mute:#6B727A;--paper:#F3F4F1;--sheet:#FBFBF9;--line:#C9CDD2;--line-2:#E3E5E1;
  --brass:#A8874F;--brass-2:#8C6F3E;--blue:#2E5C9E;--ok:#2F7D4F;--warn:#9A6414;--bad:#B23A3A;
  --r:6px;--r-sm:4px;
  font-family:Manrope,"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:14px;line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
#dzw-app *{box-sizing:border-box}
#dzw-app h3{font-size:13.5px;font-weight:700;letter-spacing:.01em;margin:0 0 10px}
#dzw-app p{margin:0 0 10px}
#dzw-app .hint{color:var(--mute);font-size:12.5px}
#dzw-app button,#dzw-app input,#dzw-app select,#dzw-app textarea{font:inherit;color:inherit}
#dzw-app :focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* top bar */
.dzw-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:var(--ink);color:#F3F4F1;flex-wrap:wrap}
.dzw-brand{display:flex;flex-direction:column;line-height:1.2}
.dzw-brand strong{font-size:16px;font-weight:700;letter-spacing:-.01em}
.dzw-brand span{font-size:12.5px;color:#B8BEC5}
.dzw-views{display:flex;background:#23272C;border-radius:var(--r);padding:3px;gap:2px}
#dzw-app .view-b{background:transparent;border:0;color:#C8CDD3;padding:7px 14px;border-radius:var(--r-sm);cursor:pointer;font-weight:600;font-size:13px}
#dzw-app .view-b.on{background:var(--paper);color:var(--ink)}

/* layout */
.dzw-body{display:grid;grid-template-columns:340px 1fr;min-height:560px}
.dzw-intake{background:var(--sheet);border-right:1px solid var(--line);padding:14px 16px 20px;overflow:auto;max-height:82vh}
.dzw-out{display:flex;flex-direction:column;min-width:0}
.dzw-summary{display:flex;gap:14px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--line-2);font-size:12.5px;color:var(--ink-2)}
.dzw-summary span:not(:last-child)::after{content:"";display:inline-block;width:1px;height:12px;background:var(--line);margin-left:14px;vertical-align:-2px}
.st-ok{color:var(--ok);font-weight:600}.st-warn{color:var(--warn);font-weight:600}.st-bad{color:var(--bad);font-weight:600}
.dzw-stage{flex:1;padding:18px;overflow:auto;background:
  linear-gradient(var(--line-2) 1px,transparent 1px) 0 0/24px 24px,
  linear-gradient(90deg,var(--line-2) 1px,transparent 1px) 0 0/24px 24px,var(--paper)}
.dzw-stage svg{display:block;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);max-height:70vh;width:100%;height:auto}
.elev-wrap{margin-bottom:16px}
.dzw-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line-2);background:var(--sheet)}

/* intake blocks */
.blk{padding:12px 0 14px;border-bottom:1px solid var(--line-2)}
.blk:last-of-type{border-bottom:0}
.f{display:flex;flex-direction:column;gap:4px;margin:0 0 8px;min-width:0}
.f span{font-size:11.5px;color:var(--mute)}
.f input,.f select,.f textarea,#dzw-app textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font-variant-numeric:tabular-nums}
.f input.bad{border-color:var(--bad);background:#FFF5F5}
#dzw-app textarea{margin-bottom:8px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg{display:flex;gap:2px;background:var(--line-2);border-radius:var(--r);padding:3px;margin:0 0 10px}
#dzw-app .seg-b{flex:1;border:0;background:transparent;padding:6px 4px;border-radius:var(--r-sm);cursor:pointer;font-weight:600;font-size:12.5px;color:var(--ink-2)}
#dzw-app .seg-b.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(21,24,28,.12)}
.list{display:flex;flex-direction:column;gap:6px}
.item{display:grid;grid-template-columns:1.3fr 1fr 1fr 28px;gap:6px;align-items:end;padding:8px;background:#fff;border:1px solid var(--line-2);border-radius:var(--r)}
.item>:nth-child(4){grid-column:1}.item>:nth-child(5){grid-column:2}.item>:nth-child(6){grid-column:4;grid-row:1}
.item.app>:nth-child(4){grid-column:1/3}.item.app>:nth-child(5){grid-column:3}
.item .f{margin:0}
.f-sm input{padding:6px 7px}
.spacer{display:block}
#dzw-app .x{border:0;background:transparent;color:var(--mute);font-size:18px;line-height:1;cursor:pointer;padding:6px 2px;border-radius:var(--r-sm)}
.x:hover{color:var(--bad);background:#FBEDED}
.addrow{display:flex;gap:6px;margin-top:8px}
.chk{display:flex;align-items:center;gap:8px;margin:0 0 8px;cursor:pointer}
.chk input{width:16px;height:16px;accent-color:var(--brass)}
.reset{margin-top:12px}
#dzw-app .lnk{border:0;background:none;color:var(--mute);text-decoration:underline;cursor:pointer;font-size:12.5px;padding:0}

/* buttons */
.c-ref{fill:none;stroke:var(--mute);stroke-width:.8;stroke-dasharray:3 3}
#dzw-app .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:var(--r);border:1px solid var(--ink);background:var(--ink);color:#F3F4F1;font-weight:600;font-size:13px;cursor:pointer;text-decoration:none;line-height:1.2}
#dzw-app .btn:hover{background:#23272C}
#dzw-app .btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
#dzw-app .btn.ghost:hover{border-color:var(--ink);background:#fff}
#dzw-app .btn.primary{background:var(--brass);border-color:var(--brass);color:#fff}
#dzw-app .btn.primary:hover{background:var(--brass-2);border-color:var(--brass-2)}
#dzw-app .btn[disabled]{opacity:.55;cursor:default}

/* drawing */
.dzw-plan text,.dzw-elev text{font-family:Manrope,system-ui,sans-serif;fill:var(--ink)}
.dzw-plan .room{fill:#fff;stroke:var(--ink);stroke-width:3}
.dzw-plan .wall{stroke:var(--ink);stroke-width:3}
.dzw-plan .win{fill:#fff;stroke:var(--ink);stroke-width:1}
.dzw-plan .win-line,.dzw-elev .win-line{stroke:var(--blue);stroke-width:1}
.dzw-plan .door-gap{fill:#fff;stroke:none}
.dzw-plan .door{fill:none;stroke:var(--ink-2);stroke-width:1}
.dzw-plan .door-swing{fill:none;stroke:var(--mute);stroke-width:.8;stroke-dasharray:3 3}
.c-base{fill:#FFFFFF;stroke:var(--ink);stroke-width:1.1}
.c-sink{fill:#EEF3FA;stroke:var(--ink);stroke-width:1.1}
.c-app{fill:#ECECEA;stroke:var(--ink);stroke-width:1.1}
.c-tall{fill:#F1EBDF;stroke:var(--ink);stroke-width:1.3}
.c-corner{fill:#F7F7F5;stroke:var(--ink);stroke-width:1.1}
.c-filler{fill:#FFFFFF;stroke:var(--ink-2);stroke-width:.8} /* v2.3.1: fillers match the cabinet colour */
.c-panel{fill:#C9B99A;stroke:var(--ink-2);stroke-width:.8}
.dim.topline{stroke:#a9772d;stroke-width:1}
.c-upper{fill:none;stroke:var(--brass);stroke-width:1.1;stroke-dasharray:4 3}
.c-hood{fill:none;stroke:var(--brass-2);stroke-width:1.1;stroke-dasharray:2 2}
.dzw-elev .c-upper,.dzw-elev .c-hood{stroke-dasharray:none;fill:#FBF6EC}
.dzw-plan .island{fill:#FBF6EC}
.sink-bowl{fill:none;stroke:var(--blue);stroke-width:1}
.burner{fill:none;stroke:var(--ink-2);stroke-width:1}
.hatch{stroke:var(--mute);stroke-width:.7}
.dim{stroke:var(--blue);stroke-width:.8;fill:none}
.dim-main{stroke-width:1.1}
.dimtxt{font-size:8.5px;fill:var(--blue);font-variant-numeric:tabular-nums}
.dim-main-txt{font-size:10px;font-weight:700}
.clr{stroke:var(--warn);stroke-dasharray:3 2}
.clr-txt{fill:var(--warn);font-size:9px}
.lbl{font-size:9.5px;fill:var(--ink-2)}
.lbl.code{font-size:8.5px;font-weight:600;fill:var(--ink)}
.lbl.small{font-size:8px;fill:var(--mute)}
.lbl.wall-lbl{font-size:11px;font-weight:700;fill:var(--ink)}
.lbl.title{font-size:10.5px;fill:var(--mute)}
.elev-wall{fill:#FCFCFB;stroke:var(--line);stroke-width:1}
.elev-win{fill:#F2F6FC;stroke:var(--ink);stroke-width:1}
.elev-door{fill:#F6F6F4;stroke:var(--ink);stroke-width:1}
.toe{fill:#2B2F34;stroke:none}
.face{fill:none;stroke:var(--ink-2);stroke-width:.6}
.app-face{fill:#DEDFDD;stroke:none}
.counter{fill:var(--ink);stroke:none}
.hood{fill:#E9E2D2;stroke:var(--ink);stroke-width:1}
.floor{stroke:var(--ink);stroke-width:2}

/* schedule & checks */
.sched-wrap{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.sched{width:100%;border-collapse:collapse;font-size:13px}
.sched th{text-align:left;font-weight:700;padding:8px 8px;border-bottom:2px solid var(--ink)}
.sched td{padding:7px 8px;border-bottom:1px solid var(--line-2);font-variant-numeric:tabular-nums}
.sched td.code{font-weight:700}
.sched tr.is-app td{color:var(--ink-2)}
.checks{list-style:none;margin:0;padding:0;background:var(--sheet);border:1px solid var(--line);border-radius:var(--r)}
.ck{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line-2);align-items:flex-start}
.ck:last-child{border-bottom:0}
.ck .ico{width:14px;flex:none;font-size:10px;margin-top:4px}
.ck.ok .ico{color:var(--ok)}.ck.warn .ico{color:var(--warn)}.ck.bad .ico{color:var(--bad)}.ck.info .ico{color:var(--mute)}
.ck.bad{background:#FDF3F3}

/* modals & toast */
.dzw-modal{position:fixed;inset:0;background:rgba(21,24,28,.55);display:flex;align-items:center;justify-content:center;z-index:2147483000;padding:16px;--ink:#15181C;--ink-2:#3E444B;--mute:#6B727A;--sheet:#FBFBF9;--line:#C9CDD2;--brass:#A8874F;--brass-2:#8C6F3E;--blue:#2E5C9E;--r:6px;--r-sm:4px;font-family:Manrope,"Segoe UI",system-ui,sans-serif;color:var(--ink);font-size:14px;line-height:1.45;box-sizing:border-box}
.dzw-modal *{box-sizing:border-box}
.dzw-modal .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:var(--r);border:1px solid var(--ink);background:var(--ink);color:#F3F4F1;font-weight:600;font-size:13px;cursor:pointer;text-decoration:none;line-height:1.2}
.dzw-modal .btn.primary{background:var(--brass);border-color:var(--brass);color:#fff}
.dzw-modal .btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.dzw-modal .hint{color:var(--mute);font-size:12.5px}
.dzw-modal h3{font-size:13.5px;font-weight:700;margin:0 0 10px}
.dzw-modal p{margin:0 0 10px}
.dzw-modal .x{border:0;background:transparent;color:var(--mute);font-size:18px;line-height:1;cursor:pointer;padding:6px 2px}
.dzw-modal input,.dzw-modal textarea,.dzw-modal select,.dzw-modal button{font:inherit;color:inherit}
@media(max-width:600px){.dzw-card{padding:20px 18px 18px;max-height:calc(100vh - 32px);overflow:auto}}
.dzw-modal[hidden]{display:none}
.dzw-card{position:relative;background:var(--sheet);border-radius:10px;padding:26px 26px 22px;max-width:440px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.dzw-card h3{font-size:18px;margin-bottom:8px}
.dzw-card .price{font-size:30px;font-weight:700;margin:6px 0 14px;letter-spacing:-.02em}
.dzw-card .price span{font-size:13px;font-weight:500;color:var(--mute)}
.dzw-card .close{position:absolute;top:10px;right:10px}
.dzw-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--r);font-size:13px;z-index:10000;max-width:90vw}
.dzw-toast[hidden]{display:none}

@media (max-width:900px){
  .dzw-body{grid-template-columns:1fr}
  .dzw-out{order:-1}
  .dzw-intake{max-height:none;border-right:0;border-top:1px solid var(--line)}
  .dzw-stage{padding:10px}
  .dzw-stage svg{max-height:none}
  .dzw-views{overflow-x:auto;max-width:100%}
  #dzw-app .view-b{padding:7px 10px;white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){#dzw-app *{transition:none!important}}

/* v1.1 — designer panel */
#dzw-app .dzw-summary .sc{font-weight:800;color:var(--dzw-brass,#a9772d)}
#dzw-app .designer{padding:6px 4px;max-width:760px}
#dzw-app .d-score{display:flex;align-items:center;gap:14px;margin-bottom:14px}
#dzw-app .d-score .big{font-size:40px;font-weight:800;line-height:1;color:var(--dzw-brass,#a9772d)}
#dzw-app .designer h4{margin:16px 0 6px;font-size:14px}
#dzw-app .reasons{margin:0;padding-left:20px}
#dzw-app .reasons li{margin:4px 0}
#dzw-app .alts{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
#dzw-app .alt{border:1px solid var(--dzw-line,#d8dde3);border-radius:10px;padding:12px}
#dzw-app .alt-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
#dzw-app .alt-h b{font-size:13px;text-transform:capitalize}
#dzw-app .alt .score{font-weight:800;color:var(--dzw-brass,#a9772d)}
#dzw-app .alt p{margin:0 0 8px;font-size:13px;color:var(--dzw-ink2,#5b6670)}
#dzw-app .btn.small{padding:6px 10px;font-size:13px}

/* v1.3 */
#dzw-app .face.glass{fill:#DCEBF5;stroke:#5B7B93}
#dzw-app .mullion{stroke:#5B7B93;stroke-width:.8}
#dzw-app .crown{fill:#B9A98A;stroke:#6B5B3E;stroke-width:.8}
#dzw-app .soffit{fill:#E5E0D6;stroke:#6B5B3E;stroke-width:.8;stroke-dasharray:3 2}

/* v1.6 */
#dzw-app .susan{fill:none;stroke:var(--ink-2,#5b6670);stroke-width:.7;stroke-dasharray:3 2}
#dzw-app .door-line{stroke:var(--ink,#1f2429);stroke-width:1.4}
#dzw-app .pull{stroke:var(--ink,#1f2429);stroke-width:1.6;stroke-linecap:round}

/* v2.0 — 3D and rendering */
#dzw-app .three-host{width:100%;height:520px;border:1px solid var(--dzw-line,#d8dde3);border-radius:10px;overflow:hidden;background:#e8ebef;touch-action:none}
#dzw-app .three-host canvas{display:block;width:100%!important;height:100%!important}
#dzw-app .three-cams{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
#dzw-app .three-look{margin-top:12px}
#dzw-app .row-btns{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
#dzw-app .three-gallery{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:10px}
#dzw-app .render{margin:0;border:1px solid var(--dzw-line,#d8dde3);border-radius:10px;overflow:hidden;background:#fff}
#dzw-app .render img{display:block;width:100%;height:auto}
#dzw-app .render figcaption{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px}
@media(max-width:700px){#dzw-app .three-host{height:340px}}

/* v2.3.0 — professional drawing set */
.dzw-plan .wallband{fill:url(#dzw-hatch);stroke:var(--ink);stroke-width:1}
.dzw-plan .win{fill:#fff;stroke:var(--ink);stroke-width:1}
.dzw-plan .win-glass{stroke:var(--blue);stroke-width:.8}
.dzw-plan .c-upper{fill:none;stroke:var(--brass);stroke-width:1.1;stroke-dasharray:4 3}
.dzw-plan .c-hood{fill:none;stroke:var(--brass-2);stroke-width:1.1;stroke-dasharray:2 2}
.cl{stroke:var(--ink-2);stroke-width:.7;stroke-dasharray:9 3 2 3;fill:none}
.cl-txt{font-size:7.5px;fill:var(--ink-2);font-weight:600}
.panel{fill:none;stroke:var(--ink-2);stroke-width:.55}
.bevel{fill:none;stroke:var(--mute);stroke-width:.4}
.bead{fill:none;stroke:var(--mute);stroke-width:.4}
.dzw-legend .lbl{font-size:9.5px;fill:var(--ink)}

/* v2.3.1 */
.dim-row{font-size:6.5px;fill:var(--mute);letter-spacing:.06em}
.crown-line{stroke:#6B5B3E;stroke-width:.5}
.crown-prof{fill:#E9E2D2;stroke:#3E444B;stroke-width:.9}

/* v2.3.2 — trim */
.trim{fill:#F4F1EA;stroke:var(--ink);stroke-width:.9}
