@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrainsMono-Regular.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/JetBrainsMono-Medium.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/JetBrainsMono-Bold.woff2)format("woff2")}:root{--font:"JetBrains Mono", ui-monospace, "Consolas", monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:16px;--fs-xl:20px;--h-sm:20px;--h-md:24px;--h-lg:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--ctl-w:128px;--ruler:20px;--shadow-1:2px 2px 0 var(--shadow-c);--shadow-2:4px 4px 0 var(--shadow-c);--bg:#e9e7e1;--panel:#f4f2ec;--paper:#f8f7f2;--ink:#16181b;--ink-2:#4a4f57;--ink-3:#676c73;--line:#c9c6bd;--field:#8f8b80;--grid-minor:#283c5a12;--grid-major:#283c5a1f;--wall-fill:#2a2d33;--item-fill:#f8f7f2d9;--zone-fill:#283c5a0b;--zone-hatch:#283c5a38;--accent:#d2461e;--accent-soft:#d2461e1f;--accent-ink:#a8350f;--cta:#a8350f;--cta-ink:#f8f7f2;--dim:#1f5fbf;--snap:#1a9b5a;--danger:#a3133f;--shadow-c:#0000001f;--backdrop:#16181b40}:root[data-theme=terminal]{--bg:#1c1c1e;--panel:#232325;--paper:#1a1a1b;--ink:#e2e2e0;--ink-2:#a3a3a0;--ink-3:#8a8a87;--line:#3a3a3c;--field:#707073;--grid-minor:#ffffff0b;--grid-major:#ffffff1c;--wall-fill:#8e8e8a;--item-fill:#1a1a1be0;--zone-fill:#ffffff09;--zone-hatch:#ffffff29;--accent:#ffb000;--accent-soft:#ffb00024;--accent-ink:#ffb000;--cta:#ffb000;--cta-ink:#1a1a1b;--dim:#64c8ff;--snap:#34d158;--danger:#ff6961;--shadow-c:#00000080;--backdrop:#00000080}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs-sm);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overflow:hidden}input,select,button,textarea{font-family:inherit;font-size:inherit;color:inherit}.app{grid-template:"top top top"40px"left main right"1fr"status status status"24px/232px 1fr 288px;height:100%;display:grid}.app>.top{grid-area:top}.app>.left{grid-area:left}.app>.main{background:var(--paper);grid-area:main;position:relative;overflow:hidden}.app>.right{grid-area:right}.app>.status{grid-area:status}.panel{background:var(--panel);border-color:var(--line);border-style:solid;border-width:0;overflow:auto}.left.panel{border-right-width:1px}.right.panel{border-left-width:1px}.section-title{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:var(--sp-3) var(--sp-3) 6px;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.btn{height:var(--h-md);padding:0 var(--sp-2);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:0;align-items:center;gap:6px;display:inline-flex}.btn:hover{border-color:var(--ink-2)}.btn.active{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.btn.open{border-color:var(--ink-2)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover,.btn.ghost.open{border-color:var(--line);background:var(--paper)}.btn.toggle:before{content:"";border:1px solid var(--ink-2);flex:none;width:8px;height:8px}.btn.toggle.on:before{border-color:var(--accent);background:var(--accent)}.btn.primary{border-color:var(--ink);background:var(--ink);color:var(--paper)}.btn.primary:hover{border-color:var(--ink)}.btn.cta{border-color:var(--cta);background:var(--cta);color:var(--cta-ink);font-weight:600}.btn.cta:hover{border-color:var(--ink)}.btn.cta:disabled{border-color:var(--line);background:var(--panel);color:var(--ink-3);font-weight:400}.btn.danger{color:var(--danger)}.btn:disabled,.btn.active:disabled,.btn.primary:disabled{color:var(--ink-3);border-color:var(--line);cursor:default;background:0 0}.btn.ghost:disabled{background:0 0;border-color:#0000}.btn.toggle:disabled:before{border-color:var(--line);background:0 0}input[type=checkbox],input[type=radio]{appearance:none;border:1px solid var(--field);background:var(--paper);cursor:pointer;vertical-align:middle;border-radius:0;flex:none;width:14px;height:14px;margin:0;padding:0}input[type=radio]{border-radius:50%}input[type=checkbox]:checked,input[type=radio]:checked{border-color:var(--ink);background:var(--accent);box-shadow:inset 0 0 0 2px var(--paper)}input[type=checkbox]:hover:not(:disabled),input[type=radio]:hover:not(:disabled){border-color:var(--ink-2)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:1px solid var(--accent);outline-offset:1px}input[type=checkbox]:disabled,input[type=radio]:disabled{border-color:var(--line);cursor:default}input[type=checkbox]:checked:disabled,input[type=radio]:checked:disabled{background:var(--ink-3)}select:not([multiple]){appearance:none;background-color:var(--paper);background-image:linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 12px),calc(100% - 8px);background-repeat:no-repeat;background-size:4px 4px;border-radius:0;padding-right:20px}.field{grid-template-columns:minmax(0, 1fr) var(--ctl-w);align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);min-height:calc(var(--h-md) + 2 * var(--sp-1));display:grid}.field label{color:var(--ink-2);font-size:var(--fs-sm)}.field input:not([type=checkbox]),.field select{height:var(--h-md);border:1px solid var(--field);background-color:var(--paper);text-align:right;font-variant-numeric:tabular-nums;border-radius:0;outline:none;width:100%;min-width:0;padding:0 6px}.field input:not([type=checkbox]):focus,.field select:focus{border-color:var(--accent)}.field input:disabled,.field select:disabled{color:var(--ink-3);border-color:var(--line);background-color:#0000}.field input.text{text-align:left}.field select{text-align:left;padding-right:20px}.field.wide{gap:var(--sp-1);grid-template-columns:minmax(0,1fr)}.field input.chk{justify-self:end}.slot-row{gap:var(--sp-1);display:flex}.slot-row select{flex:1;min-width:0}.slot-row .btn{padding:0 6px}.slot-ins{align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);height:16px;display:flex}.slot-ins:before{content:"";border-top:1px dashed var(--line);flex:1}.slot-ins .btn{height:16px;padding:0 var(--sp-2);font-size:var(--fs-xs)}kbd{min-width:16px;font-family:var(--font);font-size:var(--fs-xs);text-align:center;color:var(--ink-3);border:1px solid var(--line);padding:0 3px;line-height:14px;display:inline-block}.tag,.acc-tag,.ai-tag,.proj-lock{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--ink-2);border:1px solid;padding:0 4px;line-height:14px;display:inline-block}.menu{z-index:1000;background:var(--panel);border:1px solid var(--ink);min-width:200px;box-shadow:var(--shadow-2);padding:var(--sp-1) 0;position:fixed}.menu-item{justify-content:space-between;align-items:center;gap:var(--sp-4);min-height:var(--h-lg);padding:0 var(--sp-3);cursor:pointer;display:flex}.menu-item:hover{background:var(--accent-soft);color:var(--accent-ink)}.menu-item.disabled{color:var(--ink-3);pointer-events:none}.menu-item.locked{color:var(--ink-3);cursor:not-allowed}.menu-sep{background:var(--line);height:1px;margin:var(--sp-1) 0}.modal-backdrop{background:var(--backdrop);z-index:900;place-items:center;display:grid;position:fixed;inset:0}.modal-backdrop.acc-backdrop{z-index:1000}.modal{background:var(--panel);border:1px solid var(--ink);min-width:420px;max-height:80vh;box-shadow:var(--shadow-2);overflow:auto}.modal-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border-bottom:1px solid var(--line);display:flex}.modal-title{font-size:var(--fs-lg);color:var(--ink)}.modal-head .btn{color:var(--ink-2)}.toolbar{align-items:center;gap:var(--sp-1);padding:0 var(--sp-3);background:var(--panel);border-bottom:1px solid var(--line);min-width:0;display:flex;overflow:hidden}.toolbar>*{flex:none}.toolbar .btn{height:var(--h-lg)}.toolbar .logo{letter-spacing:.2em;font-weight:700;font-size:var(--fs-md);margin-right:var(--sp-2)}.toolbar .proj-name{min-width:96px;height:var(--h-lg);border:1px solid #0000;border-bottom-color:var(--line);-webkit-user-select:text;user-select:text;background:0 0;border-radius:0;outline:none;flex:0 180px;padding:0 6px}.toolbar .proj-name:hover{border-color:var(--line)}.toolbar .proj-name:focus{border-color:var(--accent);background:var(--paper)}.toolbar .tb-spacer{min-width:var(--sp-2);flex:1 1 0}.tb-sep{background:var(--line);width:1px;height:20px;margin:0 var(--sp-2)}.seg{display:inline-flex}.seg .btn+.btn{margin-left:-1px}.seg .btn.active{z-index:1;position:relative}@media (width<=1180px){.toolbar kbd,.toolbar .cs-text{display:none}}@media (width<=1000px){.toolbar .tb-lbl{display:none}.toolbar .tb-sep{margin:0 var(--sp-1)}}@media (width<=900px){.toolbar .logo{display:none}}.section-aside{color:var(--accent-ink);letter-spacing:.08em}.tool-grid{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.tool-tile{border:1px solid var(--line);background:var(--paper);height:44px;color:var(--ink);cursor:pointer;border-radius:0;place-items:center;padding:0;display:grid;position:relative}.tool-tile .tool-ico{width:20px;height:20px}.tool-tile:hover{border-color:var(--ink-2)}.tool-tile.active{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.tool-key{font-size:var(--fs-xs);color:var(--ink-3);line-height:1;position:absolute;top:2px;right:3px}.tool-tile.active .tool-key{color:var(--accent-ink)}.cat-grid{gap:var(--sp-1);padding:0 var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.cat-tile{align-items:stretch;gap:var(--sp-1);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;text-align:left;border-radius:0;flex-direction:column;min-width:0;padding:6px 6px 5px;display:flex}.cat-tile:hover{border-color:var(--ink-2)}.cat-tile.active{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.search-wrap{padding:var(--sp-2) var(--sp-3)}.search{width:100%;height:var(--h-md);border:1px solid var(--field);background:var(--paper);-webkit-user-select:text;user-select:text;border-radius:0;outline:none;padding:0 6px}.search:focus{border-color:var(--accent)}.cat-title{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:var(--sp-3) var(--sp-3) 6px}.cat-prev{width:100%;height:52px;color:var(--ink);flex:none;display:block}.cat-name{font-size:var(--fs-xs);-webkit-line-clamp:2;-webkit-box-orient:vertical;height:2.5em;line-height:1.25;display:-webkit-box;overflow:hidden}.props-body{padding:var(--sp-1) 0 var(--sp-2)}.props-note{padding:var(--sp-1) var(--sp-3);color:var(--ink-2)}.props-actions{padding:6px var(--sp-3);flex-wrap:wrap;gap:6px;display:flex}.field .unit{color:var(--ink-3);font-size:var(--fs-xs)}.field input{-webkit-user-select:text;user-select:text}.stat{padding:3px var(--sp-3);color:var(--ink-2);justify-content:space-between;display:flex}.stat b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.statusbar{background:var(--panel);border-top:1px solid var(--line);color:var(--ink-2);white-space:nowrap;align-items:center;gap:0;display:flex;overflow:hidden}.st-cell{border-right:1px solid var(--line);align-items:center;height:100%;padding:0 10px;display:flex}.st-coord{font-variant-numeric:tabular-nums;min-width:78px}.st-opts{gap:0}.st-lbl{color:var(--ink-3);padding:0 6px}.st-opt{height:var(--h-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink-2);cursor:pointer;font:inherit;border-radius:0;padding:0 7px;line-height:1}.st-opt+.st-opt{margin-left:-1px}.st-opt:hover{border-color:var(--ink-2)}.st-opt.active{z-index:1;border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft);position:relative}.st-hint{text-overflow:ellipsis;min-width:0;color:var(--ink-3);flex:1;overflow:hidden}.st-sel{border-right:0;border-left:1px solid var(--line);color:var(--ink)}.tool-hud{left:var(--sp-3);z-index:5;max-width:400px;padding:6px var(--sp-2) var(--sp-2);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-1);font-family:var(--font);font-size:var(--fs-sm);color:var(--ink-2);pointer-events:none;position:absolute}.tool-hud.top{top:var(--sp-3)}.tool-hud.bottom{bottom:var(--sp-3)}.tool-hud.sheet{left:calc(var(--ruler) + 18px)}.tool-hud.sheet.top{top:calc(var(--ruler) + 18px)}.tool-hud.sheet.bottom{bottom:18px}.tool-hud button{pointer-events:auto}.hud-head{margin-bottom:var(--sp-1);justify-content:space-between;align-items:center;display:flex}.hud-title{color:var(--ink);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em}.hud-x{color:var(--ink-3);font:inherit;font-size:var(--fs-md);cursor:pointer;background:0 0;border:0;padding:0 2px;line-height:1}.hud-x:hover{color:var(--ink)}.hud-grid{grid-template-columns:max-content 1fr;align-items:baseline;gap:3px 10px;line-height:1.45;display:grid}.hud-row{display:contents}.hud-k{justify-content:flex-end;gap:2px;display:flex}.hud-k kbd{color:var(--ink-2)}.hud-opts{margin:2px 0;display:flex}.hud-opts .st-opt{white-space:nowrap}.hud-sub{color:var(--ink-3);display:block}.proj-list{margin:0;padding:0;list-style:none}.proj-list li{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--line);display:flex}.proj-list li.current{border-left:2px solid var(--accent)}.proj-open{justify-content:space-between;gap:var(--sp-3);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:0;flex:1;padding:6px 0;display:flex}.proj-open:hover .proj-title{color:var(--accent-ink)}.proj-date{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.dlg-empty{padding:var(--sp-4) var(--sp-3);color:var(--ink-3)}.left.panel{flex-direction:column;display:flex;overflow:hidden}.left-tools{flex:none}.left-catalog{min-height:0;padding-bottom:var(--sp-3);flex:1;overflow-y:auto}.tool-ico{flex:none;width:16px;height:16px}.btn.icon{width:var(--h-lg);justify-content:center;padding:0}.btn.icon.toggle:before{display:none}.btn.icon.toggle.on{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.btn.icon.toggle.on:disabled{border-color:var(--line);color:var(--ink-3);background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--line) var(--panel)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--panel)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}::-webkit-scrollbar-corner{background:var(--panel)}.room-name-input{z-index:5;width:160px;height:var(--h-md);border:1px solid var(--accent);background:var(--paper);color:var(--ink);text-align:center;-webkit-user-select:text;user-select:text;border-radius:0;outline:none;padding:0 6px;position:absolute;transform:translate(-50%,-50%)}.lock{border:0;min-width:0;margin:0;padding:0;display:contents}
