:root{--bg: #f6f7f9;--panel: #ffffff;--line: #dde1e6;--text: #1d2329;--muted: #66707a;--accent: #e8590c;--accent-soft: #fff1e8;--blue: #1f6feb;--bad: #b00020;font:14px/1.4 system-ui,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;height:100vh;overflow:hidden}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 10px;cursor:pointer;color:var(--text)}button:hover{border-color:#b9c0c8}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.5;cursor:not-allowed}button.wide{width:100%;margin-top:8px}input,select,textarea{border:1px solid var(--line);border-radius:6px;padding:5px 7px;background:#fff;width:100%}input[type=color]{padding:1px;height:30px}input[type=checkbox]{width:auto}h2{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}.muted{color:var(--muted)}header.top{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{font-weight:600;white-space:nowrap}.brand small{color:var(--muted);font-weight:400}.logo{background:var(--accent);color:#fff;border-radius:6px;padding:2px 6px;margin-right:2px}.project-name{max-width:240px;font-weight:600}.spacer{flex:1}.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.seg button{border:0;border-radius:0}.seg button.on{background:var(--text);color:#fff}#tier button.on[data-tier=pro]{background:var(--accent)}main{flex:1;display:grid;grid-template-columns:270px 1fr 330px;min-height:0}aside{background:var(--panel);overflow:auto;padding:12px}aside.left{border-right:1px solid var(--line)}aside.right{border-left:1px solid var(--line)}aside section{margin-bottom:18px}label{display:block;font-size:12px;color:var(--muted)}label.row{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:6px;margin-bottom:6px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.catalog{display:grid;gap:6px;margin-top:8px}.card{text-align:left;display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:center;padding:6px}.card:hover{background:var(--accent-soft);border-color:var(--accent)}.card b{display:block;font-size:13px}.card span{font-size:11px;color:var(--muted)}.card svg{width:42px;height:42px}.stage{position:relative;min-width:0}.viewer{position:absolute;top:0;right:0;bottom:0;left:0}.viewer canvas{display:block}.labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.dim-label{background:var(--blue);color:#fff;font-size:12px;padding:2px 6px;border-radius:4px;white-space:nowrap}.hint{position:absolute;left:12px;bottom:10px;right:12px;font-size:12px;color:var(--muted);background:#ffffffd9;border-radius:6px;padding:4px 8px;pointer-events:none}.props-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.props-actions{display:flex;gap:6px;margin-top:10px}.props-actions .del{color:var(--bad)}.warn{color:var(--bad);font-size:12px}table.mini{width:100%;border-collapse:collapse;font-size:12px;margin:4px 0 10px}table.mini td,table.mini th{border-bottom:1px solid var(--line);padding:3px 4px;text-align:left;vertical-align:top}table.mini td.n{text-align:right;white-space:nowrap}.exports{display:grid;gap:6px}.lock{background:var(--accent-soft);border:1px solid #ffd3b8;border-radius:6px;padding:8px;font-size:12px}dialog{border:1px solid var(--line);border-radius:10px;width:min(560px,92vw)}dialog::backdrop{background:#0000004d}dialog textarea{font-family:Consolas,monospace;font-size:12px}.preview{margin:8px 0;font-size:12px;max-height:180px;overflow:auto}.actions{display:flex;justify-content:flex-end;gap:8px}.doc-dialog{width:96vw;height:94vh;max-width:none;max-height:none;padding:0;display:none;flex-direction:column}.doc-dialog[open]{display:flex}.doc-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}.doc-dialog iframe{flex:1;border:0;width:100%}.cat-group{font-size:11px;color:var(--muted);margin:10px 0 2px;font-weight:600}.parts-editor{position:absolute;left:8px;right:8px;bottom:8px;height:46%;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px #00000026;display:flex;flex-direction:column;z-index:5}.parts-editor[hidden]{display:none}.pe-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);flex-wrap:wrap}.pe-head .muted{font-size:11px;max-width:520px}.pe-head select{width:auto}.pe-body{overflow:auto;padding:6px 10px}table.pe{border-collapse:collapse;font-size:12px;width:100%;margin-bottom:10px}table.pe th{text-align:left;color:var(--muted);font-weight:600;padding:2px 3px;position:sticky;top:0;background:var(--panel)}table.pe td{padding:2px 3px}table.pe input,table.pe select{padding:3px 4px;font-size:12px}table.pe input[type=number]{width:64px}table.pe td.edges{white-space:nowrap}table.pe tr.picked td{background:#e8f0fe}table.pe button{padding:2px 6px}table.pe .del,.props-actions .del{color:var(--bad)}table.pe.hw input[type=number]{width:60px}.structure{position:absolute;left:8px;top:8px;bottom:44px;width:340px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px #0000001f;overflow:auto;padding:10px 12px;z-index:4;font-size:13px}.structure[hidden]{display:none}.crumbs{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:8px;font-size:12px}.crumbs button{padding:2px 6px;font-size:12px}.crumbs span{color:var(--muted)}.tree-item{display:grid;grid-template-columns:1fr auto;gap:6px;width:100%;text-align:left;margin:3px 0;padding:6px 8px}.tree-item:hover{background:var(--accent-soft);border-color:var(--accent)}.tree-item.on{background:#e8f0fe;border-color:var(--blue)}.tree-item small{color:var(--muted)}.tree-wall{font-size:11px;color:var(--muted);font-weight:600;margin:10px 0 2px;text-transform:uppercase}.board-detail{background:#f3f6fb;border:1px solid #d6e2f7;border-radius:8px;padding:8px;margin:8px 0;font-size:12px}.part-label{background:#ffffffeb;border:1px solid #c9cfd6;border-radius:4px;padding:1px 5px;font-size:11px;white-space:nowrap;color:#333}.part-label.group{background:var(--text);color:#fff;border-color:var(--text);font-weight:600}.part-label.on{background:var(--blue);color:#fff;border-color:var(--blue)}.small{font-size:12px}button.link{border:0;background:none;color:var(--blue);padding:0 2px;text-decoration:underline}.steps{display:inline-flex;gap:2px;margin-left:6px}.steps button{border:0;border-bottom:3px solid transparent;border-radius:0;padding:6px 10px;font-weight:600;color:var(--muted);background:none}.steps button b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);color:var(--text);font-size:12px;margin-right:4px}.steps button.on{color:var(--text);border-bottom-color:var(--accent)}.steps button.on b{background:var(--accent);color:#fff}#views[hidden]{display:none}body{display:grid;grid-template-rows:auto 1fr auto}main{min-height:0}footer.bar{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--panel);border-top:1px solid var(--line)}.price-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.price b{font-size:18px}.room-editor{position:absolute;top:0;right:0;bottom:0;left:0;background:#f4f6f8;display:flex;flex-direction:column;z-index:3}.room-editor[hidden]{display:none}.re-tools{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;background:var(--panel);border-bottom:1px solid var(--line)}.re-tools button{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;font-size:12px}.re-tools button span{font-size:14px}.re-tools button.on{background:var(--blue);border-color:var(--blue);color:#fff}.re-tools .sep{width:1px;background:var(--line);margin:0 4px}.re-svg{flex:1;width:100%;min-height:0;touch-action:none;-webkit-user-select:none;user-select:none}.re-wall,.re-dim,.re-item,.re-corner{cursor:pointer}.re-corner{cursor:grab}.stage .hint{z-index:4}.shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}.shapes button{display:grid;justify-items:center;gap:2px;padding:6px 2px;font-size:11px}.shapes button svg{width:40px;height:34px}.shapes button.on{border-color:var(--accent);background:var(--accent-soft)}table.walls{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:8px}table.walls td,table.walls th{padding:2px 3px;text-align:left}table.walls input{padding:3px 5px}table.walls tr.on td{background:#e8f0fe}table.walls button:not(.link){padding:2px 7px}.room-next{margin-top:14px;display:grid;gap:6px}.room-next .wide{margin-top:0}.imp-svg{width:100%;max-height:240px;background:#f4f6f8;border-radius:8px}.gen-box{background:var(--accent-soft);border:1px solid #ffd3b8;border-radius:10px;padding:10px}.gen-buttons{display:grid;gap:6px}.search{margin-bottom:6px}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.chips button{padding:2px 8px;font-size:12px;border-radius:999px}.chips button.on{background:var(--text);border-color:var(--text);color:#fff}.card[draggable=true]{cursor:grab}.swatch-title{font-size:12px;color:var(--muted);margin:6px 0 4px}.swatches{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.swatch{width:28px;height:28px;border-radius:50%;padding:0;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}.swatch.on{box-shadow:0 0 0 2px var(--accent)}details summary{cursor:pointer;font-size:12px;color:var(--muted);margin:6px 0}.wall-label{background:#3a3f45;color:#fff;font-size:11px;padding:1px 6px;border-radius:4px;white-space:nowrap}.svc-label{font-size:13px;background:#ffffffd9;border-radius:4px;padding:0 3px;white-space:nowrap}.gap-label{background:var(--accent);color:#fff;font-size:11px;padding:1px 5px;border-radius:4px;white-space:nowrap}.toast{position:absolute;left:50%;top:52px;transform:translate(-50%);max-width:min(560px,90%);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px #00000026;padding:10px 34px 10px 12px;font-size:13px;z-index:8;display:grid;gap:3px}.toast[hidden]{display:none}.toast-x{position:absolute;right:6px;top:6px;border:0;padding:2px 6px}.chat{position:absolute;right:10px;bottom:44px;width:min(380px,calc(100% - 20px));height:min(520px,calc(100% - 60px));background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;z-index:9}.chat[hidden]{display:none}.chat-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.chat-head button{border:0;padding:2px 6px}.chat-log{flex:1;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.msg{padding:8px 10px;border-radius:10px;font-size:13px;max-width:92%;white-space:pre-wrap}.msg.user{align-self:flex-end;background:var(--blue);color:#fff}.msg.assistant{align-self:flex-start;background:#f1f3f5}.msg ul{margin:6px 0 2px;padding-left:18px;white-space:normal}.msg small{display:block;margin-top:4px}.chat-chips{padding:0 10px}.chat-form{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line)}.chat-form textarea{resize:none}.wizard{width:min(820px,94vw);padding:22px 26px}.wizard h1{font-size:22px;margin:0 0 14px}.wizard h3{font-size:13px;color:var(--muted);margin:14px 0 6px}.tiles{display:grid;gap:10px}.tiles.two{grid-template-columns:1fr 1fr}.tiles.small{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.tile{display:grid;gap:6px;text-align:left;padding:14px;border-radius:12px}.tile svg{width:64px;height:48px}.tile b{font-size:15px}.tile span{color:var(--muted);font-size:13px}.tile:hover,.tile.on{border-color:var(--accent);background:var(--accent-soft)}.tiles.small .tile{padding:10px}.tiles.small .tile b{font-size:13px}.tiles.small .tile svg{width:42px;height:42px}.wiz-links{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.wizard .actions{margin-top:16px}.layouts{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:10px}.layout{display:grid;justify-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:6px 2px;cursor:pointer;text-align:center}.layout input{display:none}.layout svg{width:40px;height:34px}.layout:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.prices-body{max-height:60vh;overflow:auto}.prices-body input{width:90px;text-align:right}@media (max-width: 900px){main{grid-template-columns:1fr;grid-template-rows:auto 60vh auto;overflow:auto}.tiles.two{grid-template-columns:1fr}.layouts{grid-template-columns:repeat(3,1fr)}}.sel-bar{position:absolute;z-index:6;display:flex;gap:2px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 14px #0000002e;padding:3px}.sel-bar[hidden]{display:none}.sel-bar button{border:0;padding:4px 7px;font-size:15px;line-height:1}.sel-bar button:hover{background:var(--accent-soft)}.sel-bar .sel-n{font-size:12px;padding:0 6px;color:var(--muted)}.tip{position:absolute;z-index:7;pointer-events:none;background:#1d2329e6;color:#fff;font-size:12px;padding:3px 7px;border-radius:5px;white-space:nowrap}.tip[hidden]{display:none}.view-tools{position:relative;display:inline-flex;gap:4px}body[data-step=room] .view-tools{display:none}.view-menu{position:absolute;top:34px;right:0;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #00000026;padding:8px 10px;display:grid;gap:4px;min-width:170px}.view-menu[hidden]{display:none}.view-menu label{color:var(--text);font-size:13px;display:flex;gap:6px;align-items:center}.dim-label.click,.gap-label.click{pointer-events:auto;cursor:pointer}.gap-label.click:hover,.dim-label.click:hover{filter:brightness(1.15)}.label-input{width:70px;font-size:12px;padding:1px 4px}.re-input{position:absolute;z-index:10;width:90px;padding:4px 6px;border:2px solid var(--blue);border-radius:6px;font-weight:600}.re-info{margin-left:auto;font-size:12px;color:var(--muted);align-self:center;white-space:nowrap}.re-wall:hover{fill:#555c63}.re-curve{cursor:grab}.re-dim:hover rect{stroke:var(--blue)}.rot-row{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:end;margin-top:6px}.help{width:min(900px,94vw)}.help-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:13px}.help ul{padding-left:18px;margin:0;display:grid;gap:4px}.help h3{margin:6px 0;font-size:14px}table.projects tr.on td{background:#e8f0fe}table.pe td.shape select,table.pe td.shape input{width:auto;max-width:120px}table.pe td.shape textarea{width:180px;font-size:11px}@media (max-width: 900px){.help-cols{grid-template-columns:1fr}}header.top button,.steps button{white-space:nowrap}header.top{flex-wrap:nowrap;overflow-x:auto}.steps button{padding:6px 7px}.project-name{max-width:190px;min-width:110px}@media (max-width: 1350px){.brand small{display:none}.steps button b{margin-right:2px}}
