:root{--paper:#f3f0e8;--paper-2:#e9e5dc;--paper-3:#ddd8cc;--ink:#1e2023;--ink-2:#3b3f45;--ink-3:#6b7a8c;--line:#1e202329;--line-2:#1e202352;--edit:#2b45d6;--edit-2:#2b45d61f;--warn:#d2571e;--ok:#2f7d4f;--glass:#3eb5c6;--glass-2:#3eb5c629;--f-ui:"Archivo", "Helvetica Neue", Arial, sans-serif;--f-mono:"IBM Plex Mono", "Consolas", monospace;--strip:68px;--drawer:340px;--tb-h:108px;--r:3px;--shadow:0 10px 30px #1e202324, 0 1px 2px #1e20231f}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:13px;line-height:1.35;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--edit);outline-offset:2px}#stage{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.frame{pointer-events:none;opacity:0;width:100%;height:100%;font-family:var(--f-mono);transition:opacity .35s;position:fixed;inset:0}body.frame-mode .frame{opacity:1}.frame .hit{pointer-events:all;cursor:ew-resize;fill:#0000}.frame .hit.h{cursor:ns-resize}.frame .cell{pointer-events:all;cursor:pointer;fill:#0000}.frame .cell:hover{fill:var(--edit-2)}.frame .cell.sel{fill:var(--edit-2);stroke:var(--edit);stroke-width:1.5px}.frame .cell.warn{fill:#d2571e1a}.frame .cell.door{fill:#3eb5c61a}.frame .guide{stroke:var(--ink);stroke-width:1.4px}.frame .guide.hover{stroke:var(--edit);stroke-width:2.2px}.frame .guide.drag{stroke:var(--edit);stroke-width:2.4px}.frame .frameline{stroke:var(--ink);stroke-width:2.2px;fill:none}.frame .dim{stroke:var(--ink-3);stroke-width:.9px;fill:none}.frame .dimtxt{fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round;pointer-events:all;cursor:text;font-size:12px}.frame .dimtxt.big{font-size:14px;font-weight:500}.frame .dimtxt.live{fill:var(--edit)}.frame .id{fill:var(--ink-3);text-anchor:middle;letter-spacing:.04em;font-size:11px}.frame .id.door{fill:#1f8a99}.frame .snapline{stroke:var(--edit);stroke-width:1px;stroke-dasharray:4 4}.frame .doorsym{stroke:var(--ink-3);stroke-width:1px;fill:none;stroke-dasharray:5 4}.frame .travel{fill:url(#hatch);stroke:var(--glass);stroke-width:1px}.frame .handle{fill:var(--paper);stroke:var(--edit);stroke-width:1.6px;pointer-events:all;cursor:ew-resize}.frame .handle.h{cursor:ns-resize}.frame .grip{fill:var(--edit)}.frame .warnmark{fill:var(--warn);font-size:11px;font-weight:600}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.brand{align-items:center;gap:12px;display:flex;position:fixed;top:14px;left:14px}.brand .word{letter-spacing:.22em;font-size:13px;font-weight:700}.brand .tag{color:var(--ink-3);letter-spacing:.04em;border-left:1px solid var(--line-2);padding-left:12px;font-size:11px}.modeswitch{background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow);border-radius:999px;padding:3px;display:flex;position:fixed;top:10px;left:50%;transform:translate(-50%)}.modeswitch button{letter-spacing:.12em;min-width:116px;height:34px;color:var(--ink-2);border-radius:999px;padding:0 16px;font-size:12px;font-weight:600}.modeswitch button.on{background:var(--ink);color:var(--paper)}.modeswitch button.tech{min-width:0;color:var(--ink-3);padding:0 12px}.modeswitch button.tech.on{background:var(--glass);color:#fff}.topright{align-items:center;gap:6px;display:flex;position:fixed;top:12px;right:14px}.icobtn{width:34px;height:34px;color:var(--ink-2);background:var(--paper);border:1px solid var(--line-2);border-radius:999px;place-items:center;display:grid}.icobtn:hover{border-color:var(--ink);color:var(--ink)}.icobtn:disabled{opacity:.35;cursor:default}.icobtn svg{stroke:currentColor;fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.lang{border:1px solid var(--line-2);background:var(--paper);border-radius:999px;display:flex;overflow:hidden}.lang button{letter-spacing:.08em;height:32px;color:var(--ink-3);padding:0 9px;font-size:11px;font-weight:600}.lang button.on{background:var(--ink);color:var(--paper)}.strip{width:var(--strip);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(90deg,#f3f0e8eb,#f3f0e899);flex-direction:column;gap:2px;padding:8px 6px;display:flex;position:fixed;top:64px;bottom:0;left:0}.strip button{border-radius:var(--r);color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;text-align:center;flex-direction:column;align-items:center;gap:4px;width:100%;padding:7px 2px 6px;font-size:8px;line-height:1.1;display:flex}.strip button span{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;max-width:100%}.strip button svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.strip button:hover{color:var(--ink);background:#1e20230f}.strip button.on{background:var(--ink);color:var(--paper)}.strip .sep{background:var(--line);height:1px;margin:4px 6px}.strip .spacer{flex:1}.drawer{left:var(--strip);width:var(--drawer);background:var(--paper);border-right:1px solid var(--line-2);box-shadow:var(--shadow);flex-direction:column;transition:transform .32s cubic-bezier(.2,.7,.2,1);display:flex;position:fixed;top:64px;bottom:0;transform:translate(-110%)}.drawer.open{transform:none}.drawer .head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.drawer .head h2{letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.drawer .body{flex:1;padding:12px 16px 24px;overflow:auto}.sec{margin:0 0 16px}.sec h3{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);justify-content:space-between;align-items:baseline;margin:0 0 8px;font-size:10px;font-weight:600;display:flex}.note{color:var(--ink-3);margin:6px 0 0;font-size:11px;line-height:1.4}.note.strong{color:var(--ink-2)}.tag{font-family:var(--f-mono);letter-spacing:.06em;border:1px solid var(--line-2);color:var(--ink-2);vertical-align:middle;border-radius:2px;padding:2px 6px;font-size:10px;display:inline-block}.tag.demo{border-color:var(--warn);color:var(--warn)}.tag.ok{border-color:var(--ok);color:var(--ok)}.tag.warn{border-color:var(--warn);color:var(--warn);background:#d2571e0f}.tag.glass{border-color:var(--glass);color:#1f8a99}.tag.edit{border-color:var(--edit);color:var(--edit)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);text-align:left;align-items:center;gap:8px;min-height:34px;padding:6px 11px;font-size:12px;display:flex}.chip:hover{border-color:var(--ink)}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chip.on .sub{color:#f3f0e8b3}.chip .sub{color:var(--ink-3);font-size:10px;font-family:var(--f-mono)}.chip:disabled{opacity:.4;cursor:not-allowed}.chip.swatch{padding-left:8px}.chip .sw{border:1px solid #00000040;border-radius:2px;flex:none;width:16px;height:16px}.chip.wide{justify-content:space-between;width:100%}.patterns{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.pattern{aspect-ratio:1.05;border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:6px 4px;display:flex}.pattern svg{width:100%;height:auto;stroke:var(--ink);fill:none;stroke-width:1.4px}.pattern span{letter-spacing:.02em;color:var(--ink-3);text-align:center;font-size:9px;line-height:1.15}.pattern:hover{border-color:var(--ink)}.pattern.on{background:var(--ink)}.pattern.on svg{stroke:var(--paper)}.pattern.on span{color:var(--paper-2)}.row{align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.field{flex-direction:column;gap:4px;margin:0 0 10px;display:flex}.field label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.field input,.field select,.field textarea{border:1px solid var(--line-2);border-radius:var(--r);background:#fff;min-height:36px;padding:8px 10px;font-size:13px}.field input.mono{font-family:var(--f-mono)}.field textarea{resize:vertical;min-height:64px}.stepper{border:1px solid var(--line-2);border-radius:var(--r);background:#fff;align-items:stretch;display:flex;overflow:hidden}.stepper button{width:36px;color:var(--ink-2);border-right:1px solid var(--line);font-size:16px}.stepper button:last-child{border-right:0;border-left:1px solid var(--line)}.stepper input{text-align:center;min-width:0;font-family:var(--f-mono);border:0;flex:1;padding:6px 4px;font-size:14px}.stepper .unit{color:var(--ink-3);place-items:center;padding:0 8px;font-size:11px;display:grid}.btn{border-radius:var(--r);border:1px solid var(--ink);background:var(--ink);min-height:38px;color:var(--paper);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:12px;font-weight:600;display:inline-flex}.btn.ghost{color:var(--ink);background:0 0}.btn.edit{background:var(--edit);border-color:var(--edit);color:#fff}.btn.sm{min-height:32px;padding:6px 10px;font-size:11px}.btn.block{width:100%}.btn:disabled{opacity:.4;cursor:not-allowed}.btnrow{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.kv{grid-template-columns:1fr auto;gap:4px 12px;font-size:12px;display:grid}.kv .k{color:var(--ink-3)}.kv .v{font-family:var(--f-mono);text-align:right}.toggle{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:36px;padding:4px 0;display:flex}.toggle .sw{background:var(--paper-3);border-radius:999px;flex:none;width:36px;height:20px;transition:background .2s;position:relative}.toggle .sw:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000004d}.toggle.on .sw{background:var(--edit)}.toggle.on .sw:after{transform:translate(16px)}.list{flex-direction:column;gap:4px;display:flex}.item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;font-size:12px;display:flex}.item.warn{color:var(--warn)}.item .cell{font-family:var(--f-mono);color:var(--ink-3)}.glasscard{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);text-align:left;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;width:100%;padding:8px;display:grid}.glasscard:hover{border-color:var(--ink)}.glasscard.on{border-color:var(--edit);box-shadow:inset 0 0 0 1px var(--edit)}.glasscard .sw{background-size:cover;border:1px solid #0003;border-radius:2px;width:44px;height:44px}.glasscard .nm{font-size:12px;font-weight:600}.glasscard .meta{color:var(--ink-3);font-size:10px;font-family:var(--f-mono)}.glasscard .pr{font-family:var(--f-mono);color:var(--ink-2);white-space:nowrap;font-size:11px}.planbox{border:1px solid var(--line-2);border-radius:var(--r);background:#fff;padding:6px}.planbox svg{width:100%;height:auto;font-family:var(--f-mono);display:block}table.sched{border-collapse:collapse;width:100%;font-size:11px;font-family:var(--f-mono)}table.sched th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line-2);letter-spacing:.04em;padding:4px;font-size:10px;font-weight:500}table.sched td{border-bottom:1px solid var(--line);white-space:nowrap;padding:5px 4px}table.sched tr.on td{background:var(--edit-2)}table.sched tr.click{cursor:pointer}table.sched td.r,table.sched th.r{text-align:right}.scroll-x{overflow-x:auto}.titleblock{background:var(--paper);border:1.5px solid var(--ink);width:420px;font-family:var(--f-mono);box-shadow:var(--shadow);grid-template-columns:1fr 1fr 1fr;font-size:11px;display:grid;position:fixed;bottom:14px;right:14px}.titleblock .c{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-height:40px;padding:7px 10px}.titleblock .c:nth-child(3n){border-right:0}.titleblock .k{letter-spacing:.14em;color:var(--ink-3);font-size:9px;font-family:var(--f-ui);margin-bottom:2px;font-weight:600;display:block}.titleblock .c .v{color:var(--ink);font-size:12px}.titleblock .price{cursor:pointer;border-bottom:0;grid-column:1/3}.titleblock .price .v{letter-spacing:-.01em;font-size:18px;font-weight:500}.titleblock .price .v.rfq{color:var(--warn);font-size:13px;font-weight:600}.titleblock .price:hover{background:#1e20230a}.titleblock .status{border-bottom:0;flex-direction:column;justify-content:center;gap:4px;display:flex}.titleblock .brandc{border-bottom:0;border-top:1px solid var(--ink);font-family:var(--f-ui);letter-spacing:.12em;color:var(--ink-3);grid-column:1/4;justify-content:space-between;padding:5px 10px;font-size:10px;display:flex}.titleblock .brandc b{color:var(--ink)}.popover{z-index:30;background:var(--paper);border:1px solid var(--ink);border-radius:var(--r);box-shadow:var(--shadow);flex-wrap:wrap;gap:4px;max-width:300px;padding:6px;display:flex;position:fixed;transform:translate(-50%,8px)}.popover .hd{width:100%;font-family:var(--f-mono);color:var(--ink-3);justify-content:space-between;padding:2px 6px 4px;font-size:10px;display:flex}.popover button{letter-spacing:.04em;border:1px solid var(--line-2);background:var(--paper);border-radius:2px;min-height:32px;padding:6px 10px;font-size:11px;font-weight:600}.popover button:hover{border-color:var(--ink)}.popover button.pri{background:var(--edit);border-color:var(--edit);color:#fff}.popover button.danger:hover{border-color:var(--warn);color:var(--warn)}.popover button:disabled{opacity:.35;cursor:not-allowed}.hint{color:var(--ink-3);letter-spacing:.04em;white-space:nowrap;pointer-events:none;font-size:11px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);border-radius:var(--r);opacity:0;pointer-events:none;z-index:60;max-width:90vw;padding:9px 14px;font-size:12px;transition:opacity .25s,transform .25s;position:fixed;bottom:138px;left:50%;transform:translate(-50%,8px)}.toast.show{opacity:1;transform:translate(-50%)}.badge{font-family:var(--f-mono);letter-spacing:.12em;color:var(--ink-3);background:var(--paper);border:1px solid var(--line-2);pointer-events:none;opacity:0;border-radius:999px;padding:4px 10px;font-size:10px;transition:opacity .3s;position:fixed;top:60px;left:50%;transform:translate(-50%)}.badge.show{opacity:1}.privacybar{background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow);z-index:25;border-radius:999px;gap:6px;padding:4px;display:flex;position:fixed;bottom:120px;left:50%;transform:translate(-50%)}.privacybar button{letter-spacing:.08em;border-radius:999px;min-height:36px;padding:0 14px;font-size:11px;font-weight:600}.privacybar button.on{background:var(--ink);color:var(--paper)}.privacybar button.x{color:var(--ink-3)}.modal{z-index:80;background:#1e202380;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal .card{background:var(--paper);border:1px solid var(--ink);width:min(560px,100%);max-height:92vh;box-shadow:var(--shadow);border-radius:var(--r);padding:20px;overflow:auto}.modal .card.wide{width:min(1080px,100%)}.modal h2{letter-spacing:.16em;text-transform:uppercase;margin:0 0 4px;font-size:14px}.modal .sub{color:var(--ink-3);margin:0 0 14px;font-size:12px}.intro{z-index:70;pointer-events:none;background:linear-gradient(#1e202300 55%,#1e202359);flex-direction:column;justify-content:flex-end;align-items:center;padding:0 0 8vh;transition:opacity .6s;display:flex;position:fixed;inset:0}.intro.hide{opacity:0}.intro .word{color:#fff;letter-spacing:.28em;text-shadow:0 2px 20px #00000059;margin:0 0 6px;font-size:clamp(30px,5vw,56px);font-weight:300}.intro .line{color:#ffffffd9;letter-spacing:.18em;text-transform:uppercase;margin:0 0 26px;font-size:12px}.intro .cta{pointer-events:auto;gap:10px;display:flex}.intro .cta .btn{background:var(--paper);min-height:46px;color:var(--ink);border-color:var(--paper);padding:0 22px;font-size:12px}.intro .cta .btn.ghost{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f3f0e81f;border-color:#ffffffb3}.cine{z-index:65;pointer-events:none;position:fixed;inset:0}.cine .cap{color:#fff;letter-spacing:.22em;text-transform:uppercase;text-shadow:0 2px 16px #00000080;opacity:0;font-size:12px;transition:opacity .5s;position:absolute;bottom:12vh;left:50%;transform:translate(-50%)}.cine .cap.show{opacity:1}.cine .skip{pointer-events:auto;position:absolute;bottom:16px;right:16px}.photo-stage{border-radius:var(--r);touch-action:none;background:#111;position:relative;overflow:hidden}.photo-stage img,.photo-stage canvas{max-width:100%;display:block}.photo-stage svg{width:100%;height:100%;position:absolute;inset:0}.photo-stage .pt{fill:var(--edit);stroke:#fff;stroke-width:2px;cursor:grab}.photo-stage .wall{transform-origin:0 0;pointer-events:none;position:absolute;top:0;left:0}.photo-stage .clip{position:absolute;inset:0;overflow:hidden}.photo-stage .slider{background:#fff;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 0 1px #0006}.photo-stage .slider:after{content:"⇔";width:34px;height:34px;color:var(--ink);background:#fff;border-radius:50%;place-items:center;font-size:14px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.photo-stage .lbl{font-family:var(--f-mono);letter-spacing:.12em;color:#fff;background:#00000080;padding:3px 7px;font-size:10px;position:absolute;top:8px}.rulerhint{font-family:var(--f-mono);color:var(--ink-3);font-size:10px}.dock,.sheet,.mobilebar{display:none}.hidden{display:none!important}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}body.capture #ui,body.capture .frame{visibility:hidden}@media (prefers-reduced-motion:reduce){.drawer,.toast,.frame,.intro{transition:none}}@media (width<=860px){:root{--tb-h:0px}.brand .tag,.hint,.strip,.titleblock,.topright .share,.badge{display:none}.brand{top:10px;left:12px}.brand .word{font-size:12px}.modeswitch{top:auto;bottom:calc(64px + env(safe-area-inset-bottom));left:50%}.modeswitch button{min-width:96px;height:40px;font-size:11px}.topright{gap:4px;top:8px;right:8px}.icobtn{width:36px;height:36px}.dock{height:calc(58px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--ink);z-index:40;display:flex;position:fixed;bottom:0;left:0;right:0}.dock button{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:58px;font-size:9px;display:flex}.dock button svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.dock button.on{color:var(--edit)}.dock button.price{font-family:var(--f-mono);text-transform:none;letter-spacing:0;color:var(--ink);font-size:11px}.dock button.price small{letter-spacing:.1em;color:var(--warn);font-size:8px}.drawer{top:auto;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--ink);border-radius:10px 10px 0 0;width:auto;max-height:52vh;transform:translateY(110%)}.drawer.open{transform:none}.drawer .head{padding:10px 14px 8px}.drawer .head:before{content:"";background:var(--paper-3);border-radius:2px;width:36px;height:4px;position:absolute;top:5px;left:50%;transform:translate(-50%)}.drawer .body{padding:10px 14px 20px}body.drawer-open .modeswitch{display:none}.chip,.btn{min-height:44px}.stepper button{width:44px}.stepper input{min-height:44px}.patterns{grid-template-columns:repeat(4,minmax(0,1fr))}.popover{bottom:calc(118px + env(safe-area-inset-bottom));justify-content:center;max-width:94vw;transform:translate(-50%);top:auto!important;left:50%!important}.popover button{min-height:40px}.toast{bottom:calc(130px + env(safe-area-inset-bottom))}.privacybar{bottom:calc(118px + env(safe-area-inset-bottom))}.frame .hit{stroke-width:44px}.intro{padding-bottom:14vh}.intro .word{letter-spacing:.2em}.modal{align-items:flex-end;padding:8px}.modal .card{max-height:88vh;padding:16px}.frame .dimtxt{font-size:11px}.frame .id{font-size:10px}}@media (width>=861px) and (width<=1180px){:root{--drawer:300px}.titleblock{width:360px}}
