:root{--bg:#111418;--bg-panel:#171b21;--bg-raised:#1f242c;--bg-input:#0d1014;--canvas:#0b0d10;--border:#2a3039;--text:#d9dee5;--text-muted:#8a94a3;--accent:#2f7dff;--accent-soft:#2f7dff29;--ok:#3ccf91;--bad:#ff5c5c;--warn:#f2b33d;--zone-public:#e0a93e;--zone-family:#4fc986;--zone-private:#8f9bff;--zone-service:#9aa5b1;--font:"IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--ai-1:#8b5cff;--ai-2:#2f7dff;--ai-3:#22d3c5;--icon-accent:#5cb6ff;--icon-accent-2:#f5a742;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--font);overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;overflow:hidden}@supports (height:100dvh){html,body{height:100dvh}}#root{height:var(--app-height,100%)}:lang(ar) body,[dir=rtl] body{font-family:IBM Plex Sans Arabic,IBM Plex Sans,system-ui,sans-serif}button,input,textarea{font:inherit;color:inherit}button{background:var(--bg-raised);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:3px 9px}button:hover{border-color:#3b4452}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}h2{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:11px;font-weight:600}.muted{color:var(--text-muted)}.app{grid-template-rows:44px 1fr 28px;grid-template-columns:minmax(0,1fr);width:100%;height:100%;display:grid;overflow:clip}.top-bar,.status-bar{min-width:0}.workspace{--lw:min(var(--left-w,240px), max(160px, calc((100vw - 360px) / 2)));--rw:min(var(--right-w,360px), max(260px, calc(100vw - 360px - var(--lw))));grid-template-columns:var(--lw) minmax(0, 1fr) var(--rw);min-height:0;display:grid;position:relative}.center{grid-template-rows:1fr auto auto;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.app.with-ribbon{grid-template-rows:44px auto 1fr 28px}.full-ribbon{background:var(--bg-panel);border-block-end:1px solid var(--border);min-width:0}.ribbon-tabs{align-items:center;gap:2px;padding:2px 8px 0;display:flex}.ribbon-tabs button[role=tab]{border:1px solid #0000;background:0 0;border-block-end:none;border-radius:4px 4px 0 0;padding:4px 12px}.ribbon-tabs button[role=tab].on{border-color:var(--border);background:var(--bg);color:var(--accent)}.ribbon-close{margin-inline-start:auto}.ribbon-panels{background:var(--bg);border-block-start:1px solid var(--border);gap:0;display:flex;overflow-x:auto}.ribbon-panel{border-inline-end:1px solid var(--border);flex-direction:column;flex:none;padding:6px 8px 2px;display:flex}.ribbon-buttons{grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:2px 4px;display:grid}.ribbon-buttons button{white-space:nowrap;text-align:start;padding:2px 8px;font-size:12px}.ribbon-buttons button.active{background:var(--accent-soft);border-color:var(--accent)}.ribbon-panel-label{text-align:center;color:var(--text-muted);padding-block-start:4px;font-size:11px}.top-bar{background:var(--bg-panel);border-block-end:1px solid var(--border);align-items:center;gap:16px;padding-inline:12px;display:flex}.brand{white-space:nowrap;align-items:center;gap:8px;font-weight:600;display:flex}button.brand{font:inherit;background:0 0;border-color:#0000;min-width:0;font-weight:600}button.brand:hover{border-color:var(--border)}.crumb{color:var(--text-muted);text-overflow:ellipsis;max-width:220px;font-weight:500;overflow:hidden}.logo{color:var(--accent);font-size:18px}.top-bar>button,.top-bar>.lang-toggle{white-space:nowrap;flex-shrink:0}.top-bar>button{align-items:center;gap:6px;display:inline-flex}.ribbon{scrollbar-width:none;flex:1;gap:4px;display:flex;overflow-x:auto}.ribbon::-webkit-scrollbar{display:none}.ribbon button{white-space:nowrap;align-items:center;gap:6px;display:flex}.ribbon button.active{background:var(--accent-soft);border-color:var(--accent)}kbd{font:10px var(--mono);color:var(--text-muted)}.lang-toggle{display:flex}.lang-toggle button{border-radius:0;min-width:34px}.lang-toggle button:first-child{border-start-start-radius:4px;border-end-start-radius:4px}.lang-toggle button:last-child{border-start-end-radius:4px;border-end-end-radius:4px}.lang-toggle .on{background:var(--accent);border-color:var(--accent);color:#fff}.left-panel,.right-panel{background:var(--bg-panel);min-height:0;overflow:hidden}.left-panel{border-inline-end:1px solid var(--border);padding:12px;overflow-y:auto}.left-panel section+section{margin-block-start:18px}.tree,.layer-list,.rule-list,.results{margin:0;padding:0;list-style:none}.tree li{border-radius:4px;padding:4px 6px}.tree li.active{background:var(--accent-soft)}.layer-list label{cursor:pointer;align-items:center;gap:8px;padding:3px 0;display:flex}.swatch{border-radius:2px;width:10px;height:10px}.right-panel{border-inline-start:1px solid var(--border);grid-template-rows:auto 1fr;display:grid}.tabs{border-block-end:1px solid var(--border);display:flex}.tabs button{color:var(--text-muted);border:none;background:0 0;border-block-end:2px solid #0000;border-radius:0;flex:1;padding:10px 0}.tabs button[aria-selected=true]{color:var(--text);border-block-end-color:var(--accent)}.tab-body{min-height:0;padding:12px;overflow-y:auto}.views{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative}.views.split{background:var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px}.view3d{background:#20252c;grid-template-rows:1fr auto;min-width:0;min-height:0;display:grid}.view3d-host{min-height:0;position:relative;overflow:hidden}.view3d-host canvas{cursor:grab;width:100%;height:100%;display:block}.view3d-host canvas:active{cursor:grabbing}.view3d-note{color:var(--text);text-align:center;background:#00000073;border-radius:6px;margin:0;padding:8px 10px;font-size:12px;position:absolute;inset:auto 16px 16px}.walk-hud{pointer-events:none;grid-template-rows:auto auto auto;grid-template-columns:1fr auto;gap:6px 8px;display:grid;position:absolute;inset:8px 8px auto}.walk-floor,.walk-keys{color:#fff;background:#0000008c;border-radius:6px;justify-self:start;padding:4px 8px;font-size:12px}.walk-floor span{opacity:.75;font-variant-numeric:tabular-nums}.walk-keys{opacity:.85;grid-row:3;font-size:11px}.walk-map{background:#0000008c;border-radius:6px;grid-area:1/2/span 3;width:150px;height:130px}.walk-map-walls{fill:#d8dde4}.walk-map-gaps{fill:#3a414b}.walk-map-stairs{fill:#d8dde440}.walk-map-me{fill:#ffb020;stroke:#000;stroke-width:40px}.walk-floor{align-items:center;gap:6px;display:flex}.walk-speed{pointer-events:auto;align-items:center;gap:4px;display:inline-flex;opacity:1!important}.walk-speed button,.walk-options button{pointer-events:auto;color:#fff;cursor:pointer;background:#00000059;border:1px solid #ffffff59;border-radius:4px;min-width:22px;padding:1px 6px;font-size:11px}.walk-options{grid-row:2;justify-self:start;gap:4px;display:flex}.walk-options button.active{background:var(--accent,#2f81f7);border-color:#0000}.view3d-modes{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;gap:2px;padding:2px;display:inline-flex}.view3d-modes button{white-space:nowrap}.view3d-bar select{max-width:120px}.fly-buttons{inset-inline-end:18px;z-index:5;gap:10px;display:grid;position:absolute;bottom:18px}.fly-buttons button{color:#fff;touch-action:none;background:#00000059;border:2px solid #ffffff59;border-radius:50%;width:56px;height:56px;font-size:20px}.viewpoints{inset-inline-end:8px;background:var(--bg-panel);border:1px solid var(--border);z-index:6;border-radius:8px;width:260px;max-height:calc(100% - 16px);padding:8px;font-size:12px;position:absolute;bottom:8px;overflow:auto;box-shadow:0 6px 20px #00000059}.viewpoints-head,.viewpoints-actions{justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;display:flex}.viewpoints-actions button.active{background:var(--accent,#2f81f7);color:#fff}.viewpoints-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.viewpoints-list li{align-items:center;gap:2px;display:flex}.viewpoints-list .viewpoint-go{text-align:start;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.viewpoints-list input{flex:1;min-width:0}.view3d-bar button.active{background:var(--accent,#2f81f7);color:#fff}.view3d-host canvas:focus{outline:none}.view3d-bar{background:var(--bg-panel);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:4px 8px;font-size:12px;display:flex}.view3d-hint{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-muted);flex:1;font-size:11px;overflow:hidden}.view3d-tag{color:var(--warn);white-space:nowrap;background:#f2b33d26;border-radius:999px;padding:1px 6px;font-size:11px}.view3d-check{white-space:nowrap;align-items:center;gap:4px;display:flex}.viewport{background:var(--canvas);cursor:none;min-height:0;position:relative;overflow:hidden}.viewport canvas{width:100%;height:100%;display:block}.labels{pointer-events:none;position:absolute;inset:0}.label{color:#e8e8e8;white-space:nowrap;position:absolute}.room-label{text-shadow:0 0 3px #000;flex-direction:column;align-items:center;font-weight:500;display:flex}.room-label small{font-family:var(--mono);color:var(--text-muted);font-size:10px}.room-label.failing span:before{content:"✗ ";color:var(--bad)}.crosshair{pointer-events:none;position:absolute}.crosshair .arms{width:0;height:0;position:absolute;top:0;left:0}.furniture-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.furniture-overlay rect{fill:#ffd66614;stroke:#ffd666;stroke-width:1px;stroke-dasharray:4 3}.furniture-overlay text{fill:#ffd666;font:10px var(--mono)}.ucs-icon{pointer-events:none;position:absolute;overflow:visible}.ucs-icon path,.ucs-icon rect{stroke:#ffffff8c;stroke-width:1.5px;fill:none}.ucs-icon text{fill:#fff9;font:11px var(--mono)}.coords .ucs-tag{color:#6cb6ff}.crosshair .h,.crosshair .v{background:#ffffff8c;position:absolute}.crosshair .h{height:1px}.crosshair .v{width:1px}.crosshair .badge{color:#fff;background:#2f7dffd9;border-radius:3px;padding:0 3px;font-size:11px;line-height:14px;position:absolute;top:6px;left:10px}.crosshair .badge.erase,.crosshair .badge.remove{background:#ff4d4de6}.crosshair .box{border:1px solid #ffffffbf;width:9px;height:9px;position:absolute;top:-4.5px;left:-4.5px}.snap-marker{pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.snap-marker svg{fill:none;stroke:#3dff8a;stroke-width:2px;display:block}.snap-tip{color:#c9ffd9;white-space:nowrap;background:#14181eeb;border:1px solid #3dff8a55;border-radius:3px;padding:1px 6px;font-size:11px;position:absolute;top:14px;left:18px}.tracking{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tracking line{stroke:#3dff8a;stroke-width:1px;stroke-dasharray:2 4}.tracking .acquired{stroke:#3dff8a;stroke-width:1.5px}.tracking-tip{color:#c9ffd9;font:11px var(--mono);white-space:nowrap;background:#14181eeb;border:1px solid #3dff8a55;border-radius:3px;padding:1px 6px;display:inline-block}.grid{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.grid path{fill:none;stroke-width:1px}.grid .minor{stroke:#8ca0be1a}.grid .major{stroke:#8ca0be38}.dyn-input{pointer-events:none;font:11px var(--mono);white-space:nowrap;z-index:5;flex-direction:column;align-items:flex-start;gap:2px;display:flex;position:absolute}.dyn-row{align-items:center;gap:4px;display:flex}.dyn-menu{border:1px solid var(--border);color:var(--text-muted);background:#14181ef2;border-radius:3px;margin:0;padding:2px 0;list-style:none}.dyn-menu li{padding:1px 10px}.dyn-menu li.active{color:#fff;background:#2f6fbd}.dyn-prompt{border:1px solid var(--border);color:var(--text);background:#14181eeb;border-radius:3px;padding:1px 6px}.dyn-field{border:1px solid var(--border);min-width:44px;color:var(--text-muted);text-align:end;background:#14181eeb;border-radius:3px;padding:1px 6px}.dyn-field.active{color:#fff;border-color:#6cb6ff}.command-line{background:var(--bg-panel);border-block-start:1px solid var(--border);font-family:var(--mono);font-size:12px;position:relative}.command-log{height:var(--log-h,84px);color:var(--text-muted);padding:4px 10px;overflow-y:auto}.log-input{color:var(--text)}.log-error{color:var(--bad)}.command-input-row{border-block-start:1px solid var(--border);align-items:center;gap:8px;padding:4px 10px 6px;display:flex}.command-prompt{color:var(--warn);white-space:nowrap}.command-option{color:#6cb6ff;font:inherit;cursor:pointer;background:0 0;border:none;padding:0 2px}.command-option:hover{text-decoration:underline}.command-suggest{bottom:100%;z-index:20;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;min-width:220px;margin:0 0 2px;padding:3px 0;list-style:none;position:absolute;inset-inline-start:10px;box-shadow:0 6px 18px #00000059}.command-suggest li{cursor:pointer;justify-content:space-between;gap:10px;padding:2px 10px;display:flex}.command-suggest li span{color:var(--text-muted)}.command-suggest li.active,.command-suggest li:hover{background:var(--accent-bg,#6cb6ff2e)}.command-input-row input{font-family:var(--mono);background:0 0;border:none;outline:none;flex:1}.status-bar{background:var(--bg-panel);border-block-start:1px solid var(--border);white-space:nowrap;align-items:center;gap:12px;padding-inline:12px;font-size:12px;display:flex}.status-bar button{padding:1px 8px;font-size:11px}.coords{font-family:var(--mono);min-width:150px}.toggle.on{background:var(--accent);border-color:var(--accent);color:#fff}.split-toggle{display:inline-flex;position:relative}.split-toggle .toggle{border-start-end-radius:0;border-end-end-radius:0}.split-toggle .caret{border-inline-start:none;border-start-start-radius:0;border-end-start-radius:0;padding:1px 5px}.snap-menu{bottom:calc(100% + 6px);z-index:10;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;min-width:180px;padding:6px;position:absolute;inset-inline-start:0;box-shadow:0 8px 24px #00000073}.snap-menu .menu-title{color:var(--text-muted);padding:2px 6px 6px;font-size:11px}.snap-menu label{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:4px 6px;display:flex}.snap-menu label:hover{background:var(--accent-soft)}.compliance{color:var(--ok)}.compliance.bad{color:var(--bad)}.spacer{flex:1}.agent-status .dot{background:var(--text-muted);border-radius:50%;width:7px;height:7px;display:inline-block}.chat{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);gap:10px;height:100%;display:grid}.chat-head{align-items:center;gap:6px;display:flex}.chat-scroll{min-height:0;display:grid;position:relative}.chat-messages{overscroll-behavior:contain;flex-direction:column;gap:8px;min-height:0;display:flex;position:relative;overflow-y:auto}.jump-latest{border:1px solid var(--border);background:var(--bg-raised);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex;position:absolute;inset-block-end:8px;inset-inline-start:50%;translate:-50%;box-shadow:0 4px 14px #00000059}[dir=rtl] .jump-latest{translate:50%}.jump-latest:hover{border-color:var(--accent);color:var(--text)}.msg{white-space:pre-wrap;border-radius:6px;max-width:92%;padding:8px 10px}.msg.user{background:var(--accent-soft);border:1px solid #2f7dff66;align-self:flex-end}.msg.assistant{background:var(--bg-raised);border:1px solid var(--border);align-self:flex-start}.chat-input{background:var(--bg-input);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;padding:8px 8px 6px;transition:border-color .12s,box-shadow .12s;display:flex}.chat-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chat-input.dragging{border-color:var(--accent);background:var(--accent-soft);border-style:dashed}.chat-input textarea{resize:none;width:100%;min-height:40px;max-height:180px;color:var(--text);font:13px/1.5 var(--font);background:0 0;border:none;outline:none;padding:4px 4px 2px}.chat-input textarea::placeholder{color:var(--text-muted)}.chat-input textarea:disabled{opacity:.55}.chat-input-bar{align-items:center;gap:6px;display:flex}.chat-input-bar>.send-button{margin-inline-start:auto}.chat-input-hint{white-space:nowrap;text-overflow:ellipsis;color:var(--text-muted);margin:0;padding-inline:4px;font-size:11px;overflow:hidden}.chat-input .icon-button{width:30px;height:30px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;place-items:center;padding:0;display:grid}.chat-input .icon-button:hover:not(:disabled){background:var(--bg-raised);color:var(--text)}.chat-input .send-button{background:var(--accent);color:#fff;border:none;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;padding:0;transition:background .12s,opacity .12s,transform 80ms;display:grid}.chat-input .send-button:hover:not(:disabled){background:#4a8fff}.chat-input .send-button:active:not(:disabled){transform:scale(.94)}.chat-input .send-button:disabled{background:var(--bg-raised);color:var(--text-muted);opacity:1;cursor:default}.chat-input .send-button.stop{background:var(--bg-raised);color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}.chat-input .send-button.stop:hover{background:#ff5c5c1f}.chat-input-error{color:var(--bad);margin:0;font-size:11px}.chat-attachments li{position:relative}.chat-attachments img{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:56px;height:56px;display:block}.chat-attachments li button{top:-6px;background:var(--bg-raised);border:1px solid var(--border);width:18px;height:18px;color:var(--text);opacity:0;border-radius:50%;place-items:center;padding:0;font-size:9px;line-height:1;transition:opacity .12s;display:grid;position:absolute;inset-inline-end:-6px}.chat-attachments li:hover button,.chat-attachments li button:focus-visible{opacity:1}.chat-attachments,.chat-pictures{flex-wrap:wrap;gap:6px;margin:0 0 6px;padding:0;list-style:none;display:flex}.chat-pictures li{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.chat-pictures img{border:1px solid var(--border);border-radius:4px;max-width:160px;max-height:120px;display:block}.properties dl{margin:0 0 12px}.properties dl>div{border-block-end:1px solid var(--border);grid-template-columns:110px 1fr;gap:8px;padding:4px 0;display:grid}.properties dt{color:var(--text-muted)}.properties dd{margin:0}fieldset{border:1px solid var(--border);border-radius:6px;margin:0 0 12px;padding:8px 10px 10px}legend{color:var(--text-muted);padding-inline:4px;font-size:11px}.level-buttons{flex-wrap:wrap;gap:4px;display:flex}.level.on.fixed{background:#3a3f48;border-color:#9aa3b0}.level.on.fixed-opening{background:#4f8cff40;border-color:#4f8cff}.level.on.costly{background:#ff8c0038;border-color:#ff8c00}.level.on.prefer-keep{border-color:var(--warn);background:#f2b33d33}.level.on.free{border-color:var(--ok);background:#3ccf912e}.pack{margin-block-end:10px}.rule-list{gap:8px;display:grid}.rule-item{border:1px solid var(--border);background:var(--bg-raised);border-radius:10px;padding:10px 12px 12px;transition:border-color .15s,opacity .15s}.rule-item:hover{border-color:#38404c}.rule-item.failing{box-shadow:inset 3px 0 0 var(--bad);border-color:#ff5c5c73}[dir=rtl] .rule-item.failing{box-shadow:inset -3px 0 0 var(--bad)}.rule-item.off{background:0 0;padding-block-end:10px}.rule-item.off .rule-title,.rule-item.off .rule-badges{opacity:.5}.rule-head{grid-template-columns:30px minmax(0,1fr) auto;align-items:start;gap:6px 10px;display:grid}.rule-title{color:var(--text);overflow-wrap:break-word;font-size:13px;font-weight:600;line-height:18px}.rule-status{white-space:nowrap;border-radius:999px;margin-inline-start:auto;padding:0 8px;font-size:10.5px;font-weight:600;line-height:19px}.rule-status.ok{color:var(--ok);background:#3ccf911f}.rule-status.bad{color:var(--bad);background:#ff5c5c24}.rule-badges{flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:4px;display:flex}.rule-badges:empty{display:none}.brief-rule .rule-head{grid-template-columns:minmax(0,1fr)}.brief-rule .rule-badges{grid-column:1}.pill{border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;background:#ffffff08;border-radius:999px;align-items:center;gap:4px;padding:0 7px;font-size:10.5px;line-height:17px;display:inline-flex}.pill.law{background:var(--accent-soft);color:#8fb6ff;border-color:#2f7dff73}.pill.warn{color:var(--warn);background:#f2b33d1a;border-color:#f2b33d59}.pill.warn:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.icon-btn{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;margin-block-start:-2px;padding:0;font-size:11px;display:inline-grid}.icon-btn:hover{color:var(--bad);background:#ff5c5c1f}input.switch{appearance:none;cursor:pointer;background:#3a424e;border-radius:999px;flex:none;width:30px;height:18px;margin:0;transition:background .15s;position:relative}input.switch:after{content:"";top:2px;background:#fff;border-radius:50%;width:14px;height:14px;transition:inset-inline-start .15s;position:absolute;inset-inline-start:2px;box-shadow:0 1px 2px #0006}input.switch:checked{background:var(--accent)}input.switch:checked:after{inset-inline-start:14px}input.switch:focus-visible,.segmented button:focus-visible,.scope-summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rule-fields{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;place-items:center end;gap:8px 12px;margin-block-start:10px;padding-block-start:10px;display:grid}.rf-label{color:var(--text-muted);justify-self:stretch;font-size:12px;line-height:1.35}.rf-wide{grid-column:1/-1;justify-self:stretch}.rule-fields .chips.rf-wide{margin-block-start:-2px}.rule-fields .chip{cursor:pointer;background:var(--bg-input);padding:0 9px;font-size:11px;line-height:20px}.rule-fields .chip input{display:none}.rule-fields .chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.segmented{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:2px;display:inline-flex}.segmented button{color:var(--text-muted);text-transform:capitalize;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 10px;font-size:11.5px;line-height:18px}.segmented button[aria-pressed=true]{background:var(--bg-raised);color:var(--text);box-shadow:0 1px 2px #00000059}.scope-summary{border:1px solid var(--border);background:var(--bg-input);max-width:160px;color:var(--text);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:3px 8px;font-size:11.5px;display:inline-flex}.scope-summary>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scope-summary:after{content:"";border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);flex:none;width:6px;height:6px;margin-block-start:-3px;transition:transform .15s;transform:rotate(45deg)}.scope-summary.open:after{margin-block-start:4px;transform:rotate(225deg)}.num-field{border:1px solid var(--border);background:var(--bg-input);border-radius:7px;align-items:center;width:108px;transition:border-color .15s,box-shadow .15s;display:inline-flex}.num-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.num-field input{min-width:0;color:var(--text);font-family:var(--mono);text-align:end;-moz-appearance:textfield;background:0 0;border:0;outline:none;flex:1;padding:4px 8px;font-size:12px}.num-field input::-webkit-inner-spin-button{appearance:none;margin:0}.num-field input::-webkit-outer-spin-button{appearance:none;margin:0}.num-field .unit{color:var(--text-muted);padding-inline-end:8px;font-size:11px}.rf-select{border:1px solid var(--border);background:var(--bg-input);max-width:160px;color:var(--text);border-radius:7px;padding:3px 8px;font-size:12px}.rule-item .results{background:#ff5c5c14;border-radius:8px;gap:6px;margin-block-start:10px;padding:8px 10px;display:grid}.rule-item .results li.fail{color:#ff8a8a;cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:6px 8px;padding:0;font-size:12px;line-height:1.45;display:flex}.rule-item .results li.fail+li.fail{border-top:1px solid #ff5c5c26;padding-block-start:6px}.rule-item .results .fail-text{flex:100%}.rule-item .results li.fail:hover .fail-text{text-underline-offset:2px;text-decoration:underline}.rule-item .results .fix{background:var(--accent-soft);color:#a9c8ff;cursor:pointer;border:1px solid #2f7dff80;border-radius:6px;padding:2px 10px;font-size:11.5px}.rule-item .results .fix:hover{color:#fff;background:#2f7dff47}.rule-item .results .fix.warn{color:var(--warn);background:#f2b33d1f;border-color:#f2b33d73}.rule-list .rule-group{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:8px;margin-block-start:8px;font-size:10.5px;font-weight:600;display:flex}.rule-list .rule-group:after{content:"";background:var(--border);flex:1;height:1px}.rule-list .rule-group:first-child{margin-block-start:0}.rule-type-field{grid-template-columns:minmax(0,1fr);gap:4px;margin-block-start:8px;display:grid}.rule-type-field .rf-select{text-overflow:ellipsis;width:100%;min-width:0;max-width:none}.add-rule .rule-fields{margin-block-start:8px}.badge{white-space:nowrap;border-radius:10px;padding:1px 6px;font-size:10px}.badge.law{border:1px solid var(--accent);color:var(--accent)}.badge.practice{color:var(--text-muted)}.badge.warn{color:var(--warn);background:#f2b33d26}.badge.bad{color:var(--bad);background:#ff5c5c26}.badge.ok{color:var(--ok);background:#3ccf9126}.scope{margin:4px 0 0;padding-inline-start:24px;font-size:11px}.param{font-family:var(--mono);color:var(--text-muted);align-items:center;gap:8px;margin-block-start:6px;padding-inline-start:24px;font-size:11px;display:flex}.param input[type=number]{background:var(--bg-input);border:1px solid var(--border);border-radius:4px;width:80px;padding:2px 6px}.results{margin-block-start:6px}.pack-bar,.packs-section,.new-project .pack-picker{margin-block-end:10px}.packs-section>summary{cursor:pointer;font-weight:600}.site-card{border:1px solid var(--border);border-radius:6px;margin:6px 0;padding:6px 8px}.site-card>summary{cursor:pointer;font-weight:500}.site-profile{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 10px;margin-block-start:6px;display:grid}.site-profile label,.pack-profile{color:var(--text-muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.site-profile select,.site-profile input,.pack-profile select{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:4px;min-width:0;padding:3px 6px}.pack-picker{flex-direction:column;gap:4px;margin-block-start:6px;display:flex}.pack-kind{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-block-start:6px;font-size:10.5px;font-weight:600}.pack-row{border:1px solid var(--border);border-radius:6px;padding:5px 8px}.pack-row.on{border-color:var(--accent)}.pack-row.none{border-style:dashed;align-items:center;gap:6px;font-size:12px;display:flex}.pack-head{cursor:pointer;align-items:center;gap:6px;display:flex}.pack-title{flex:1;font-weight:500}.pack-meta,.pack-why{margin-block-start:2px;padding-inline-start:22px}.pack-why{color:var(--accent)}.pack-profile{margin:4px 0 0 22px}.pack-sources{margin-block-start:4px;padding-inline-start:22px}.pack-sources summary{cursor:pointer;color:var(--text-muted)}.pack-sources ul{margin:4px 0 0;padding-inline-start:16px}.pill.changed{cursor:pointer;border:1px solid var(--border);color:var(--text-muted);background:0 0}.rule-confirm{align-items:baseline;gap:6px;margin-block-start:6px;font-size:12px;display:flex}.pack-bar select,.param select,.office-pack input{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 6px}.pack-bar select{width:100%}div.param{flex-direction:column;align-items:flex-start}.param select{flex:1;min-width:0;max-width:100%}.add-rule,.office-pack{border:1px dashed var(--border);border-radius:6px;margin-block-start:10px;padding:8px 10px}.add-rule summary,.office-pack summary{cursor:pointer;font-weight:500}.add-rule>button{margin-block-start:8px}.office-pack form{gap:6px;margin-block-start:8px;display:flex}.office-pack input{flex:1;min-width:0}.office-pack-list li{align-items:center;gap:6px;padding:2px 0;display:flex}.office-pack-list li>span:first-child{flex:1}.results li{padding:2px 0;font-size:12px}.results li.fail{color:var(--bad);cursor:pointer}.results li.pass{color:var(--ok)}@media (width<=1200px){.ribbon kbd{display:none}}@media (width<=900px){.top-bar .brand-name{display:none}.crumb{max-width:140px}}@media (width<=760px){.status-bar .agent-status,.status-bar .coords,.status-bar .selection-count{display:none}}.mode-toggle{white-space:nowrap}.mode-toggle.on{color:#ffd2a1;background:#ff8c002e;border-color:#ff8c00}.label.service{background:#0d1014d9;border:1.5px solid #7fd1ff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:15px;display:grid;transform:translate(-50%,-50%)}.label.service.unconfirmed{opacity:.8;border-style:dashed}.label.service.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.label.badge{font:10px var(--mono);color:#1a1306;background:#f2b33de6;border-radius:8px;padding:0 5px;transform:translate(-50%,-140%)}.constraints section+section{margin-block-start:16px}.legend{gap:4px;display:grid}.legend-row{grid-template-columns:18px 12px 1fr auto;align-items:center;gap:8px;display:grid}.legend-row .count{font-family:var(--mono);color:var(--text-muted)}.hint{margin:8px 0;font-size:11px}.row-buttons{flex-wrap:wrap;gap:6px;display:flex}.row-buttons button:disabled{opacity:.45;cursor:default}.palette{grid-template-columns:1fr 1fr;gap:4px;display:grid}.palette button{text-align:start;align-items:center;gap:6px;font-size:12px;display:flex}.palette .icon{text-align:center;width:16px}.selection-editor{border:1px solid var(--border);background:var(--bg-raised);border-radius:6px;padding:10px}.sel-title{align-items:center;gap:8px;margin-block-end:8px;font-weight:600;display:flex}.details{gap:6px;margin:10px 0;display:grid}.details label{color:var(--text-muted);gap:2px;font-size:11px;display:grid}.details input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 6px}.review-banner{border-radius:6px;margin-block-end:6px;padding:6px 10px;font-weight:500}.review-banner.ok{color:var(--ok);background:#3ccf911f}.review-banner.bad{color:var(--bad);background:#ff5c5c1f}.review-list{margin:0;padding:0;list-style:none}.review-list li{cursor:pointer;border-radius:4px;gap:8px;padding:4px 6px;display:flex}.review-list li:hover{background:var(--accent-soft)}.review-list .status{text-align:center;width:14px}.review-list .ok .status{color:var(--ok)}.review-list .missing .status,.review-list .unconfirmed .status{color:var(--bad)}.review-list .warning .status{color:var(--warn)}.review-list li:not(.blocking){color:var(--text-muted)}.msg-actions{gap:6px;margin-block-start:8px;display:flex}.msg{overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;display:grid}.msg.assistant.streaming{border-color:var(--accent)}.msg-text{white-space:pre-line}.msg-text>*{margin:0}.msg-text>*+*{margin-block-start:8px}.msg-text :is(ul,ol){padding:0}.msg-text li{margin-inline-start:20px}.msg-text li+li{margin-block-start:3px}.msg-text code{font-family:var(--mono);background:var(--bg-input);unicode-bidi:isolate;border-radius:3px;padding:0 3px;font-size:.92em}.thinking summary{cursor:pointer;color:var(--text-muted);font-size:11px}.thinking div{white-space:pre-wrap;color:var(--text-muted);max-height:160px;margin-block-start:4px;font-size:12px;overflow-y:auto}.tool-cards{grid-template-columns:minmax(0,1fr);gap:3px;margin:0;padding:0;list-style:none;display:grid}.tool-cards li{background:var(--bg-input);border:1px solid var(--border);border-radius:4px;align-items:baseline;gap:6px;min-width:0;padding:3px 6px;font-size:12px;display:flex}.tool-cards code{font-family:var(--mono);white-space:nowrap;overflow-wrap:normal;flex-shrink:0;font-size:11px}.tool-cards .tool-summary{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tool-cards .running .tool-status{color:var(--accent);animation:1s linear infinite spin;display:inline-block}.tool-cards .ok .tool-status{color:var(--ok)}.tool-cards .error .tool-status{color:var(--bad)}@keyframes spin{to{transform:rotate(360deg)}}.typing{gap:4px;padding:4px 0;display:flex}.typing span{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@media (prefers-reduced-motion:reduce){.tool-cards .running .tool-status,.typing span{animation:none}}.snapshot{border:1px solid var(--border);border-radius:4px;max-width:100%}.rule-card{border:1px dashed var(--warn);border-radius:6px;gap:4px;padding:8px;display:grid}.rule-card-title{color:var(--warn);font-size:11px}.rule-card code{font-family:var(--mono);word-break:break-word;font-size:11px}.msg-error{color:var(--bad);overflow-wrap:anywhere;white-space:pre-wrap;background:#ff5c5c14;border:1px solid #ff5c5c59;border-radius:6px;padding:6px 8px;font-size:12px;line-height:1.45}.usage{font:10px var(--mono);color:var(--text-muted)}.agent-status{background:0 0;border:none;padding:0;font-size:12px}.agent-status.online .dot{background:var(--ok)}.agent-status.offline .dot{background:var(--bad)}.changeset-bar{background:var(--bg-raised);border-block-start:2px solid #3ccf91;gap:6px;padding:8px 12px;display:grid}.changeset-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.changeset-head .muted{font-size:11px}.changeset-groups{flex-wrap:wrap;gap:4px 12px;max-height:min(260px,30vh);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.changeset-groups>li.open{flex-basis:100%}.changeset-group-row{align-items:center;gap:2px;display:flex}.changeset-group-row .expander{width:16px;color:var(--text-muted);padding:0}.changeset-items{border-inline-start:1px solid var(--border);max-height:min(180px,22vh);margin:2px 0 4px 18px;padding:0;list-style:none;overflow-y:auto}.changeset-items li{align-items:center;gap:6px;padding:1px 6px;font-size:12px;display:flex}.changeset-items li.out .item-name{color:var(--text-muted);text-decoration:line-through}.changeset-items li.picked{background:#6cb6ff24}.changeset-items .item-name{color:var(--text);text-align:start;align-items:center;gap:4px;display:inline-flex}.changeset-groups label{cursor:pointer;align-items:center;gap:6px;display:flex}.changeset-groups code{font:11px var(--mono)}.changeset-actions{gap:6px;display:flex}.changeset-actions .primary{color:#fff;background:#1f7a52;border-color:#3ccf91}.changeset-actions button:disabled{opacity:.45;cursor:default}.open-file{white-space:nowrap}.sheet-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.sheet-row{gap:2px;display:flex}.sheet-row button.icon{opacity:.6;flex:none;width:auto}.sheet-row button.icon:hover{opacity:1}.msg-note{color:var(--text-muted);margin:6px 0 0;font-size:12px}.sheet-list button{text-align:start;background:0 0;border-color:#0000;width:100%}.sheet-list button:hover{border-color:var(--border);background:var(--bg-raised)}.units-banner{inset-inline:12px;z-index:5;border:1px solid var(--warn);color:var(--text);cursor:default;background:#281e08f2;border-radius:6px;gap:6px;padding:10px 12px;display:grid;position:absolute;top:12px}.units-banner strong{color:var(--warn)}.units-actions{flex-wrap:wrap;gap:6px;display:flex}.units-actions .primary{color:#fff;background:#1f7a52;border-color:#3ccf91}.home{height:100%;overflow:auto}.home-head{border-bottom:1px solid var(--border);background:var(--bg-panel);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.home-main{gap:16px;max-width:880px;margin:0 auto;padding:24px 16px 48px;display:grid}.home-title{justify-content:space-between;align-items:center;display:flex}.home-title h1{margin:0;font-size:20px}.home-empty{border:1px dashed var(--border);text-align:center;border-radius:8px;justify-items:center;gap:12px;padding:24px;display:grid}.home-empty p{color:var(--text-muted);margin:0}.project-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.project-card{border:1px solid var(--border);background:var(--bg-panel);border-radius:8px;align-items:stretch;gap:8px;display:flex}.project-card:hover{border-color:var(--accent)}.project-open{text-align:start;background:0 0;border:none;flex:1;gap:2px;min-width:0;padding:12px 14px;display:grid}.project-open strong{font-size:15px}.project-actions{align-items:center;gap:6px;padding-inline-end:12px;display:flex}button.danger:hover{border-color:var(--bad);color:var(--bad)}.project-form{border:1px solid var(--accent);background:var(--bg-panel);border-radius:8px;gap:10px;padding:14px;display:grid}.project-form label{color:var(--text-muted);gap:4px;display:grid}.project-form input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:4px;padding:6px 8px}.form-actions{gap:8px;display:flex}.small{font-size:11px}.file-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.file-list button{text-align:start;background:0 0;border-color:#0000;width:100%;display:grid}.file-list button:hover{border-color:var(--border);background:var(--bg-raised)}.file-list span[dir=auto]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.save-state{color:var(--text-muted);font-size:11px}.save-state.error{color:var(--bad)}.save-state.unsaved,.save-state.saving{color:var(--warn)}@media (width<=640px){.project-card{flex-direction:column}.project-actions{padding:0 14px 12px}}.home button.primary{background:var(--accent);border-color:var(--accent);color:#fff;padding:5px 12px}.home button.primary:disabled{opacity:.5;cursor:default}.brief-card,.question-card{border:1px solid var(--accent);background:var(--bg-raised);border-radius:6px;gap:8px;margin-top:8px;padding:8px 10px;display:grid}.brief-card.dismissed,.brief-card.superseded{opacity:.6;border-color:var(--border)}.brief-card.confirmed{border-color:var(--ok)}.brief-card h4{color:var(--text-muted);margin:0 0 4px;font-size:11px;font-weight:600}.brief-text{font-style:italic}.brief-rows{gap:4px;margin:0;padding-inline-start:18px;display:grid}ul.brief-rows{padding:0;list-style:none}.brief-rows li{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.brief-fn{min-width:90px;font-weight:600}.brief-count{align-items:center;gap:4px;display:inline-flex}.brief-count button,.row-actions button,.chip-x{padding:0 6px;line-height:18px}.brief-count .changed{color:var(--accent)}.brief-min{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:inline-flex}.brief-min input{background:var(--bg-input);border:1px solid var(--border);width:56px;color:var(--text);border-radius:4px;padding:1px 4px}.row-actions{gap:2px;margin-inline-start:auto;display:inline-flex}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--border);border-radius:12px;align-items:center;gap:4px;padding:1px 8px;display:inline-flex}.chip-x{color:var(--text-muted);background:0 0;border:none}.chip-x:hover{color:var(--bad)}.brief-questions{margin:0;padding-inline-start:18px}.brief-check{border-inline-start:3px solid var(--border);padding-inline-start:8px}.brief-check.plausible{border-color:var(--ok)}.brief-check.tight{border-color:var(--warn)}.brief-check.short{border-color:var(--bad)}.brief-done{color:var(--ok)}.brief-done .muted{color:var(--text-muted);display:block}.brief-card .primary{background:var(--accent);border-color:var(--accent);color:#fff}.brief-window{align-items:center;gap:2px;display:inline-flex}.graph-card.accepted{border-color:var(--ok)}.graph-svg{background:var(--canvas);border:1px solid var(--border);border-radius:4px;width:100%;height:auto}.graph-zone-label{font-size:10px;font-weight:600}.graph-zone-label.zone-public{fill:var(--zone-public)}.graph-zone-label.zone-family{fill:var(--zone-family)}.graph-zone-label.zone-private{fill:var(--zone-private)}.graph-zone-label.zone-service{fill:var(--zone-service)}.graph-room circle{fill-opacity:.2;stroke-width:1.5px}.graph-room.zone-public circle{fill:var(--zone-public);stroke:var(--zone-public)}.graph-room.zone-family circle{fill:var(--zone-family);stroke:var(--zone-family)}.graph-room.zone-private circle{fill:var(--zone-private);stroke:var(--zone-private)}.graph-room.zone-service circle{fill:var(--zone-service);stroke:var(--zone-service)}.graph-room text{fill:var(--text);font-size:9px}.graph-room .graph-room-m2,.graph-room .graph-room-key{fill:var(--text-muted);font-size:7.5px}.ge path,.ge line{fill:none;stroke:var(--text-muted);stroke-width:1.4px}.ge-adjacent path{stroke-dasharray:5 3}.ge-not-adjacent path{stroke:var(--bad);stroke-dasharray:5 3}.ge-no-sightline path{stroke-dasharray:2 4}.ge-eye text{fill:var(--text-muted);stroke:none;font-size:9px}.ge-eye line{stroke:var(--bad)}.graph-legend{color:var(--text-muted);flex-wrap:wrap;gap:4px 12px;font-size:11px;display:flex}.graph-legend-item{align-items:center;gap:4px;display:inline-flex}.graph-findings{gap:2px;font-size:12px;display:grid}.graph-finding.warning{color:var(--warn)}.graph-finding.error{color:var(--bad)}.options h4{margin:4px 0}.option-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.option-card{border:1px solid var(--border);background:var(--bg-panel);border-radius:6px;gap:4px;padding:6px 8px;display:grid}.option-card.previewing{border-color:var(--accent)}.option-card.accepted{border-color:var(--ok)}.option-title{font-weight:600}.option-n{background:var(--accent-soft);width:18px;height:18px;color:var(--accent);border-radius:50%;place-items:center;font-size:11px;display:inline-grid}.option-rooms{margin:0;padding-inline-start:16px;font-size:12px}.option-cost details ul{margin:2px 0 0;padding-inline-start:16px}.warn-text{color:var(--warn)}.ok-text{color:var(--ok)}.scorecard{border-block-start:1px solid var(--border,#80808040);gap:4px;padding-block-start:4px;display:grid}.scorecard-items{gap:2px;max-height:min(180px,25vh);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.scorecard-items li{cursor:pointer}.scorecard-items li.introduced{color:var(--warn)}.scorecard .tag,.scorecard-items .tag{color:var(--text-muted);margin-inline:4px;font-size:10px}.scorecard-items .badge.warn{margin-inline-start:4px}.option-delta{margin-top:2px}.badge.client{border:1px solid var(--text-muted);color:var(--text-muted)}.options-empty ul{margin:4px 0 0;padding-inline-start:16px}.home-samples{flex-wrap:wrap;gap:8px;display:flex}.msg-note.next-step{color:var(--text);border-inline-start:3px solid var(--accent);padding-inline-start:6px}.select-box{pointer-events:none;z-index:3;position:absolute}.select-box.window{background:#2f7dff1f;border:1px solid #2f7dff}.select-box.crossing{background:#3ccf911f;border:1px dashed #3ccf91}.room-editor{gap:6px;margin-bottom:8px;display:grid}.room-editor label{color:var(--text-muted);gap:2px;font-size:11px;display:grid}.room-editor input,.room-editor select{background:var(--bg-input);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:4px;padding:4px 6px;font-size:13px}.bulk-counts{margin:0 0 8px;padding-inline-start:16px}.layout-tabs{inset-inline-start:8px;z-index:5;direction:ltr;align-items:center;gap:2px;max-width:calc(100% - 16px);display:flex;position:absolute;bottom:8px}.layout-tabs button,.sheet-tools button,.sheet-tools select{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-muted);white-space:nowrap;border-radius:4px 4px 0 0;padding:3px 10px;font-size:12px}.layout-tabs button.active{background:var(--bg-raised);color:var(--text);border-bottom-color:var(--accent)}.layout-tabs .tab-new{padding:3px 8px;font-weight:600}.layout-tabs .tab-rename{width:110px;padding:2px 6px;font-size:12px}.layout-tabs .tab-menu{border:1px solid var(--border);background:var(--bg-raised);border-radius:6px;flex-direction:column;min-width:120px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);box-shadow:0 6px 18px #00000059}.layout-tabs .tab-menu button{text-align:start;background:0 0;border:none;border-radius:4px}.layout-tabs .tab-menu button:hover{background:var(--bg-panel);color:var(--text)}.layout-tabs .tab-menu .danger{color:var(--danger,#ff6b6b)}.sheet-tools{top:8px;z-index:5;background:color-mix(in srgb, var(--bg-panel) 85%, transparent);direction:ltr;border-radius:6px;flex-wrap:wrap;align-items:center;gap:4px;max-width:calc(100% - 16px);padding:2px;display:flex;position:absolute;inset-inline-start:8px}.sheet-tools button,.sheet-tools select{border-radius:4px}.sheet-tools button.active{color:var(--text);border-color:var(--accent)}.sheet-tools button:disabled,.sheet-tools select:disabled{opacity:.5}.sheet-tools .space{letter-spacing:.04em;font-weight:600}.sheet-tools .space.model{color:var(--text);border-color:var(--accent)}.sheet-tools .sep{background:var(--border);align-self:stretch;width:1px;margin:2px}.title-block-panel .qs-row{justify-content:space-between}.title-block-panel .inline{align-items:center;gap:4px;font-size:12px;display:flex}.title-block-panel .tb-fields{grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;max-height:50vh;display:grid;overflow-y:auto}.title-block-panel .tb-fields label{color:var(--text-muted);font-size:12px;display:contents}.title-block-panel .tb-fields input{min-width:0;padding:3px 6px;font-size:12px}.changeset-review{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.changeset-review kbd{border:1px solid var(--border);border-radius:3px;padding:0 4px;font-size:10px}.changeset-review .swatch.uncertain{vertical-align:middle;background:#c77dff;border-radius:2px;width:10px;height:10px;display:inline-block}button.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.grip{z-index:4;cursor:move;background:#2f7dff;border:1px solid #cfe0ff;width:9px;height:9px;margin:-5px 0 0 -5px;position:absolute}.grip:hover{background:#ff4d4d}.grip.move{background:#3ccf91}.prop-fields{gap:6px;margin:6px 0;display:grid}.prop-fields label{grid-template-columns:110px 1fr;align-items:center;gap:6px;font-size:12px;display:grid}.prop-fields input,.prop-fields select{min-width:0}.layer-tools{align-items:center;gap:6px;margin-block-end:6px;display:flex}.layer-filter{flex:1;min-width:0;font-size:12px}.layer-manager .layer-list li{grid-template-columns:auto auto auto minmax(0,1fr) auto auto auto;align-items:center;gap:4px;padding:2px 0;font-size:12px;display:grid}.layer-manager .layer-list li.off .layer-name{color:var(--text-muted)}.layer-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layer-manager button.icon{cursor:pointer;opacity:.55;background:0 0;border:none;padding:0 2px;font-size:11px}.layer-manager button.icon.on,.layer-manager button.icon:hover{opacity:1}.swatch-select{border:1px solid var(--border);color:#0000;appearance:none;cursor:pointer;border-radius:2px;width:14px;height:14px;padding:0}.swatch-select option{color:#000}.layer-manager .count{font-size:10px}.layer-manager .frozen{color:#7fd1ff}.workspace.no-left{grid-template-columns:0 minmax(0, 1fr) var(--rw)}.workspace.no-right{grid-template-columns:var(--lw) minmax(0, 1fr) 0}.workspace.no-left.no-right{grid-template-columns:0 minmax(0,1fr) 0}.workspace.no-left .left-panel,.workspace.no-right .right-panel{display:none}.panel-toggle{opacity:.6;padding:2px 8px}.panel-toggle.on{opacity:1}.units-banner{max-width:min(560px,100% - 24px);padding:8px 10px;font-size:12px;inset-inline:12px auto}.changeset-bar{max-height:40vh;overflow-y:auto}@media (width<=900px){.workspace,.workspace.no-left,.workspace.no-right{grid-template-columns:1fr;position:relative}.workspace{--lw:min(var(--left-w,240px), 90vw);--rw:min(var(--right-w,360px), 90vw)}.workspace .left-panel,.workspace .right-panel{z-index:20;width:var(--lw);display:block;position:absolute;top:0;bottom:0;box-shadow:0 0 24px #00000080}.workspace .right-panel{width:var(--rw);display:grid}.workspace .left-panel{inset-inline-start:0}.workspace .right-panel{inset-inline-end:0}.workspace.no-left .left-panel,.workspace.no-right .right-panel,.top-bar .print .btn-text{display:none}}.workspace>.left-panel{grid-area:1/1}.workspace>.center{grid-area:1/2}.workspace>.right-panel{grid-area:1/3}.ribbon{min-width:150px}@media (width<=1100px){.top-bar{gap:8px}.top-bar .open-file .btn-text,.top-bar .save-dwg .btn-text,.top-bar .recognize .btn-text,.top-bar .recognize-ai .btn-text,.top-bar .mode-toggle .btn-text{display:none}}@media (width<=900px){.workspace>.center{grid-column:1}}.quick-select{top:12px;z-index:6;background:var(--bg-panel);border:1px solid var(--border);cursor:default;border-radius:6px;gap:8px;width:min(300px,100% - 24px);padding:12px;display:grid;position:absolute;inset-inline-end:12px;box-shadow:0 8px 24px #0006}.quick-select label{color:var(--text-muted);gap:3px;font-size:12px;display:grid}.quick-select label.inline{color:var(--text);align-items:center;gap:6px;display:flex}.quick-select .qs-row{flex-wrap:wrap;gap:6px;display:flex}.quick-select .qs-row input:not([type]),.quick-select .qs-row select:last-child{flex:1;min-width:0}.current-layer{color:var(--text-muted);align-items:center;gap:6px;margin-block-end:6px;font-size:12px;display:flex}.current-layer select{flex:1;min-width:0}.layer-name.current{color:var(--text);font-weight:600}.status-bar .isolation{white-space:nowrap}.layer-walk ul{max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.layer-walk li{cursor:pointer;border-radius:3px;justify-content:space-between;gap:8px;padding:3px 8px;display:flex}.layer-walk li.on{color:#fff;background:#6cb6ff38}.layer-walk li:hover{background:#6cb6ff1f}.layer-states{color:var(--text-muted);align-items:center;gap:6px;margin-block:6px;font-size:12px;display:flex}.layer-states select{flex:1;min-width:0}.lasso{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.lasso .window{fill:#2f7dff1f;stroke:#2f7dff;stroke-width:1px}.lasso .crossing{fill:#3ccf911f;stroke:#3ccf91;stroke-width:1px;stroke-dasharray:4 3}.cycle-badge{z-index:5;color:#cfe6ff;font:11px var(--mono);pointer-events:none;white-space:nowrap;background:#14181eeb;border:1px solid #6cb6ff88;border-radius:3px;padding:1px 6px;position:absolute}.quick-props{z-index:6;background:var(--bg-panel);border:1px solid var(--border);cursor:default;border-radius:6px;gap:6px;max-height:calc(100% - 16px);padding:8px 10px;font-size:12px;display:grid;position:absolute;overflow-y:auto;box-shadow:0 8px 24px #0006}.quick-props .qp-head{align-items:baseline;gap:6px;display:flex}.quick-props .qp-head .link{margin-inline-start:auto}.text-editor{z-index:7;background:var(--bg-panel);cursor:default;border:1px solid #6cb6ff88;border-radius:6px;gap:6px;width:min(360px,100% - 16px);padding:8px;display:grid;position:absolute;box-shadow:0 8px 24px #00000073}.text-editor .te-bar{align-items:center;gap:6px;display:flex}.text-editor .te-bar input{width:64px}.text-editor .te-bar button.on{background:#6cb6ff40}.text-editor textarea{resize:vertical;width:100%;min-height:2.4em;font:14px "Noto Naskh Arabic", var(--sans,sans-serif);background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px}.status-bar .anno-scale select{font:11px var(--mono);padding:1px 4px}.dialog-backdrop{z-index:50;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.plot-dialog{border:1px solid var(--border);background:var(--bg-panel);border-radius:8px;grid-template-rows:auto 1fr auto;gap:12px;width:min(920px,100%);max-height:calc(100vh - 32px);padding:14px 16px;font-size:12px;display:grid;overflow:auto;box-shadow:0 16px 48px #00000080}.plot-dialog header,.plot-dialog footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.plot-dialog footer{justify-content:flex-end}.plot-dialog footer .hint{margin-inline-end:auto}.plot-dialog button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.plot-body{grid-template-columns:minmax(260px,340px) 1fr;gap:16px;min-height:0;display:grid}.plot-settings{align-content:start;gap:8px;display:grid}.plot-settings>label{color:var(--text-muted);gap:3px;display:grid}.plot-settings>label.check{color:var(--text);align-items:center;gap:6px;display:flex}.plot-settings .row{align-items:center;gap:6px;display:flex}.plot-settings select{flex:1;min-width:0}.plot-settings .value{color:var(--text)}.plot-settings .custom-scale{width:72px}.plot-settings .file-button{border:1px solid var(--border);white-space:nowrap;cursor:pointer;color:var(--text);border-radius:4px;padding:3px 8px}.plot-settings .error{color:var(--danger,#ff6b6b)}.plot-preview-pane{align-content:start;justify-items:center;gap:6px;min-width:0;display:grid}.plot-preview{background:#fff;width:100%;max-height:60vh;box-shadow:0 4px 16px #00000073}.plot-preview svg{width:100%;height:100%}.publish-list{border-collapse:collapse;width:100%}.publish-list th,.publish-list td{border-bottom:1px solid var(--border);text-align:start;padding:5px 8px}@media (width<=720px){.plot-body{grid-template-columns:1fr}}.xref-palette h2{align-items:center;gap:6px;display:flex}.xref-palette h2 .link{margin-inline-start:auto;font-size:11px}.xref-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.xref-list li{border:1px solid var(--border);border-radius:6px;gap:3px;padding:6px;display:grid}.xref-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.xref-head .chip{background:var(--bg-raised);border-radius:8px;padding:0 6px;font-size:10px}.xref-head .chip.loaded{color:#3ccf91}.xref-head .chip.unloaded{color:var(--text-muted)}.xref-head .chip.notFound{color:#ff6b6b}.xref-actions{flex-wrap:wrap;gap:4px;display:flex}.xref-actions button{padding:1px 6px;font-size:11px}.xref-actions .danger{color:var(--danger,#ff6b6b)}.labels .label.xref{opacity:.5}.library-section{margin:4px 0}.library-section>summary{cursor:pointer;padding:3px 0;font-size:12px;font-weight:600}h4.library-section{margin:6px 0 2px}.block-list{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.block-tile{--tile-bg:var(--bg-panel);background:var(--tile-bg);width:100%;color:var(--text-muted,var(--text));text-align:center;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-items:center;gap:4px;padding:8px 4px 6px;font-size:11px;line-height:1.2;transition:border-color .12s,color .12s,background .12s;display:grid}.block-tile:hover{--tile-bg:color-mix(in srgb, var(--accent) 10%, var(--bg-panel));border-color:color-mix(in srgb, var(--accent) 55%, transparent);color:var(--text)}.block-tile .thumb{width:52px;height:52px;color:var(--text);display:block}.block-tile:hover .thumb{color:var(--accent)}.block-tile .thumb svg{width:100%;height:100%;overflow:visible}.block-tile .name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.block-list .family-tile{grid-column:span 2;gap:4px;display:grid}.variant-chips{flex-wrap:wrap;justify-content:center;gap:3px;display:flex}.variant-chips .chip{background:var(--bg-panel);min-height:24px;color:var(--text-muted);cursor:pointer;padding:1px 7px;font-size:10px}.variant-chips .chip.active{border-color:var(--accent);color:var(--text)}.library-options{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0;display:flex}.library-options .seg{flex:140px;margin:0}.library-options select{flex:100px;font-size:11px}h5.library-sub{margin:6px 0 0;font-weight:500}.block-palette h2{align-items:center;gap:6px;display:flex}.block-palette h2 .link{margin-inline-start:auto;font-size:11px}.block-palette .seg{gap:2px;margin-bottom:4px;display:flex}.block-palette .seg button{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-muted);flex:1;padding:2px 6px;font-size:11px}.block-palette .seg button.active{color:var(--text);border-color:var(--accent)}.block-list li{position:relative}.block-list .tile-actions{top:2px;gap:2px;display:none;position:absolute;inset-inline-end:2px}.block-list li:hover .tile-actions,.block-list li:focus-within .tile-actions{display:flex}.block-list .tile-actions .icon{background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;padding:0 4px;font-size:11px}.block-palette .from-file{color:var(--text-muted);gap:3px;margin-top:6px;font-size:11px;display:grid}.block-palette .file-blocks{border:1px solid var(--border);border-radius:6px;margin-top:6px;padding:6px}.block-editor-bar{top:8px;z-index:6;border:1px solid var(--accent);background:color-mix(in srgb, var(--bg-panel) 92%, transparent);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex;position:absolute;inset-inline:8px}.block-editor-bar .muted{flex:1;min-width:160px}.block-editor-bar button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.base-point{z-index:4;pointer-events:none;background:linear-gradient(#ff4d4d,#ff4d4d) 50%/2px 100% no-repeat,linear-gradient(#ff4d4d,#ff4d4d) 50%/100% 2px no-repeat;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute}.chat-head .new-brief{white-space:nowrap;border:1px dashed color-mix(in srgb, var(--accent) 60%, var(--border));color:var(--text);background:0 0;border-radius:999px;flex:none;align-items:center;gap:5px;padding:5px 10px 5px 8px;font-size:12px;display:inline-flex}.chat-head .new-brief svg{color:var(--accent)}.chat-head .new-brief:hover{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.chat-head .clear-chat{color:var(--text-muted);background:0 0;border-color:#0000;flex:none;place-items:center;margin-inline-start:auto;padding:5px 7px;display:grid}.chat-head .clear-chat:hover:not(:disabled){color:var(--bad);border-color:var(--bad)}.chat-head .clear-chat:disabled{opacity:.4;cursor:default}.chat-input{position:relative}.mode-picker{flex:none}.mode-button{border:1px solid var(--border);background:var(--bg-raised);color:var(--text);border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;line-height:1.4;display:inline-flex}.mode-button:hover:not(:disabled),.mode-button[aria-expanded=true]{border-color:var(--accent)}.mode-button>svg:first-child{color:var(--accent)}.mode-button>svg:last-child{color:var(--text-muted)}.mode-menu{z-index:30;border:1px solid var(--border);background:var(--bg-panel);border-radius:10px;margin:0;padding:4px;list-style:none;position:absolute;inset-block-end:calc(100% + 6px);inset-inline:0;box-shadow:0 12px 36px #00000073}.mode-menu button{width:100%;color:var(--text);text-align:start;background:0 0;border:none;border-radius:7px;align-items:flex-start;gap:9px;padding:7px 8px;font-size:12px;display:flex}.mode-menu button>svg{color:var(--accent);flex:none;margin-top:2px}.mode-menu button:hover,.mode-menu button:focus-visible{background:var(--bg-raised);outline:none}.mode-menu button[aria-selected=true]{background:var(--accent-soft)}.mode-menu .mode-text{flex:1;gap:1px;min-width:0;display:grid}.mode-menu .mode-text .muted{font-size:11px;line-height:1.35}.mode-menu .mode-check{color:var(--accent)}.mode-menu .model-name{color:var(--text-muted);font-weight:400}[data-touch] .mode-button{padding:7px 12px;font-size:13px}[data-touch] .mode-menu button{padding:11px 10px}[data-touch] .chat-head .new-brief{padding:8px 14px 8px 11px;font-size:13px}.brief-words{width:100%;margin-block:4px 8px}.brief-adders{flex-direction:column;gap:6px;margin-block:8px;display:flex}.brief-adder{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.brief-adder select,.brief-adders>select{max-width:100%}.brief-adder input[type=number]{width:4em}.options h4{align-items:center;gap:8px;display:flex}.options .compare-open{margin-inline-start:auto;font-weight:400}.compare-dialog{flex-direction:column;width:min(1200px,100vw - 32px);max-height:calc(100vh - 48px);display:flex}.compare-dialog header{align-items:center;gap:12px;display:flex}.compare-legend{color:var(--text-muted);align-items:center;gap:6px;margin-inline-start:auto;font-size:12px;display:inline-flex}.compare-legend .swatch{border:1px solid #0000;width:14px;height:10px;display:inline-block}.compare-legend .swatch.demolished{border:1.5px dashed #ff4d4d}.compare-legend .swatch.built{background:repeating-linear-gradient(45deg,#f2c94c 0 3px,#8a6d00 3px 4px)}.compare-legend .swatch.wall{background:#8a94a3}.compare-scroll{min-height:0;overflow:auto}.compare-table{border-collapse:collapse;table-layout:fixed;width:100%}.compare-table th,.compare-table td{border-block-end:1px solid var(--border);text-align:start;vertical-align:top;padding:6px 8px;font-size:13px}.compare-table thead th{min-width:220px;font-weight:400}.compare-table thead th:first-child,.compare-table tbody th[scope=row]{width:170px;color:var(--text-muted);font-weight:400}.compare-table thead th.previewing{outline:2px solid var(--accent);outline-offset:-2px}.compare-table td.best{color:var(--ok);font-weight:600}.compare-table tr.compare-section th{color:var(--text);padding-block-start:12px;font-weight:600}.compare-head{align-items:center;gap:6px;margin-block-end:4px;display:flex}.compare-head .badge{background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:1px 6px;font-size:11px}.compare-title{margin-block-start:4px;font-size:12px;line-height:1.35}.compare-notes{font-size:12px}.option-plan{aspect-ratio:1;background:var(--canvas);border:1px solid var(--border);border-radius:4px;width:100%}.option-plan .op-room{fill:#0000}.option-plan .op-room.changed{fill:#2f7dff2e}.option-plan .op-wall{fill:#8a94a3}.option-plan .op-door{fill:var(--canvas)}.option-plan .op-window{fill:#3a7bd5}.option-plan .op-demolished{fill:none;stroke:#ff4d4d}.option-plan .op-label{fill:var(--text)}.boq-dialog{flex-direction:column;width:min(960px,100vw - 32px);max-height:calc(100vh - 48px);display:flex}.boq-warning{color:var(--warn);margin-block:4px 8px;font-size:12px}.boq-table{border-collapse:collapse;width:100%;font-size:13px}.boq-table th,.boq-table td{border-block-end:1px solid var(--border);text-align:start;vertical-align:top;padding:5px 8px}.boq-table thead th{color:var(--text-muted);background:var(--bg-panel);font-weight:400;position:sticky;top:0}.boq-table .num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}.boq-table tr.boq-trade th{padding-block-start:12px;font-weight:600}.boq-table tr.boq-subtotal td{color:var(--text-muted);font-weight:600}.boq-table tr.boq-total td{border-block-start:2px solid var(--border);font-size:14px;font-weight:700}.room-basis{color:var(--text-muted);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:12px;display:flex}.room-basis.layout{color:var(--warn)}.takeoff-heights{color:var(--text-muted);flex-wrap:wrap;gap:12px;margin-block:4px 10px;font-size:12px;display:flex}.takeoff-heights label{flex-direction:column;gap:2px;display:flex}.takeoff-heights input{width:6em}.boq-table tr.takeoff-head td{color:var(--text-muted);font-size:12px}.template-save{gap:6px;margin-block:6px;display:flex}.template-save input{background:var(--bg-input);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:4px;flex:1;padding:2px 6px}.template-list li{align-items:center;gap:6px;padding:3px 0;display:flex}.template-list li>span:first-child{flex:1}.option-title .pin{float:inline-end;opacity:.35;filter:grayscale()}.option-title .pin.on,.option-title .pin:hover{opacity:1;filter:none}.option-card.pinned{border-color:var(--accent)}.option-title .badge{background:var(--accent-soft);margin-inline-start:6px}.brief-lineage{margin-block:2px 6px}.brief-amendment{border-inline-start:3px solid var(--accent);gap:2px;padding-inline-start:8px;display:grid}.brief-amendment .amendment-diff{font-weight:600}.brief-restated>summary{cursor:pointer}.brief-restated[open]>summary{margin-bottom:8px}.brief-restated{gap:8px;display:grid}.grip.hot{background:#ff3b3b;border-color:#ff3b3b}.grip.mid{opacity:.8;width:8px;height:8px}.grip-menu-backdrop{z-index:40;position:absolute;inset:0}.grip-menu{z-index:41;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;min-width:150px;margin:0;padding:4px 0;font-size:12px;list-style:none;position:absolute;box-shadow:0 6px 18px #00000059}.grip-menu li[role=menuitem]{cursor:pointer;padding:5px 12px}.grip-menu li[role=menuitem]:hover{background:var(--accent-soft)}.grip-menu li.sep{background:var(--border);height:1px;margin:4px 0}.office-blocks h3,.block-palette h3{margin:8px 0 4px;font-weight:500}.office-blocks-add{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.office-blocks-add select{background:var(--bg-input);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:4px;flex:1;padding:2px 4px}.office-blocks-add label.link{cursor:pointer;font-size:12px}.full-ribbon{position:relative}.ribbon-tools{align-items:center;gap:6px;margin-inline-start:auto;display:inline-flex}.ribbon-panels.flyout{inset-inline:0;z-index:30;background:var(--bg-raised);border-bottom:1px solid var(--border);position:absolute;top:100%;box-shadow:0 6px 18px #0000004d}.ribbon-options{inset-inline-end:8px;z-index:31;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;width:min(320px,100vw - 24px);padding:10px;font-size:12px;position:absolute;top:100%;box-shadow:0 6px 18px #00000059}.ribbon-options,.ribbon-options *{box-sizing:border-box}.ribbon-options>.qs-row{justify-content:space-between;align-items:center;display:flex}.ribbon-options fieldset{border:1px solid var(--border);border-radius:4px;min-width:0;margin-block-start:8px}.ribbon-options .favorites{margin:0;padding:0;list-style:none}.ribbon-options .favorites code{text-overflow:ellipsis;white-space:nowrap;max-width:45%;overflow:hidden}.ribbon-options label.check{padding:2px 0;display:block}.ribbon-options .favorites li{align-items:center;gap:6px;display:flex}.ribbon-options .favorites li span{flex:1}.favorites-add{gap:4px;margin-block-start:6px;display:flex}.favorites-add input,.shortcuts input{background:var(--bg-input);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:4px;flex:1;padding:2px 6px}.shortcut-capture{font-family:var(--mono)}.account-chip{white-space:nowrap}.account-chip-wrap{position:relative}.account-menu{inset-inline-end:0;z-index:40;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:140px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);box-shadow:0 6px 18px #00000059}.sign-in-form label,.sign-in-form .field{flex-direction:column;gap:4px;margin-block:6px;display:flex}.sign-in-form label.check{flex-direction:row;align-items:center;gap:6px}.sign-in-form input:not([type=checkbox]){background:var(--bg-input);width:100%;color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px}.sign-in-form input:not([type=checkbox]):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.sign-in-form .password-field{display:block;position:relative}.sign-in-form .password-field input{padding-inline-end:56px}.sign-in-form .password-field button{padding:0 4px;position:absolute;inset-block:0;inset-inline-end:6px}.sign-in-form footer{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.sign-in-form .error{color:var(--bad);margin:6px 0 0}.sign-in-links{flex-wrap:wrap;justify-content:space-between;gap:12px;margin:14px 0 0;display:flex}.sign-in-links a{color:var(--accent);text-decoration:none}.sign-in-links a:hover{text-decoration:underline}.ribbon-panels{align-items:stretch}.rb-panel{border-inline-end:1px solid var(--border);flex-direction:column;flex:none;padding:4px 4px 0;display:flex;position:relative}.rb-body{align-items:flex-start;gap:2px;min-height:74px;display:flex}.rb-large{flex-direction:column;align-items:center;display:flex;position:relative}.rb-large .rb-main,.rb-large .rb-split,.rb-small .rb-main,.rb-small .rb-split,.rb-title.more,.qat button{color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px}.rb-large .rb-main{flex-direction:column;align-items:center;gap:3px;min-width:54px;padding:4px 6px 2px;display:flex}.rb-large .rb-split{padding:0 4px 2px;line-height:1.1}.rb-label{white-space:nowrap;font-size:11.5px}.rb-col{flex-direction:column;gap:1px;padding-block-start:2px;display:flex}.rb-small{align-items:stretch;display:flex;position:relative}.rb-small .rb-main{align-items:center;gap:6px;height:23px;padding:0 6px;font-size:12px;display:flex}.rb-small .rb-split{width:14px;padding:0;font-size:9px}.rb-large:hover .rb-main,.rb-large:hover .rb-split,.rb-small:hover .rb-main,.rb-small:hover .rb-split,.rb-title.more:hover,.rb-title.more.on,.qat button:hover{background:var(--bg-raised);border-color:var(--border)}.rb-large.active .rb-main,.rb-small.active .rb-main{background:var(--accent-soft);border-color:var(--accent)}.rb-title{width:100%;color:var(--text-muted);text-align:center;white-space:nowrap;margin-block-start:auto;padding:2px 6px;font-size:11px;display:block}.rb-title.more{color:var(--text-muted);border-radius:0;font-size:11px}.rb-pop{z-index:40;top:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;position:absolute;inset-inline-start:0;box-shadow:0 8px 22px #0006}.rb-menu{flex-direction:column;min-width:210px;padding:4px;display:flex}.rb-menu button{color:var(--text);text-align:start;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.rb-menu button:hover{background:var(--accent-soft)}.rb-slideout{gap:4px;margin-top:0;padding:6px;display:flex;top:auto;bottom:auto}.rb-panel>.rb-slideout{top:100%}.rb-icon{color:var(--text-muted);font-family:var(--font);flex:none}.rb-icon .f{fill:currentColor;fill-opacity:.1}.rb-icon .a{stroke:var(--icon-accent)}.rb-icon .b{stroke:var(--icon-accent-2)}.rb-icon .f.a{fill:var(--icon-accent);fill-opacity:.2}.rb-icon .f.b{fill:var(--icon-accent-2);fill-opacity:.2}.rb-icon .p{fill:var(--icon-accent);stroke:var(--bg-panel);stroke-width:.6px}.rb-icon .t{fill:var(--icon-accent-2);stroke:none}button:hover>.rb-icon,button.active>.rb-icon,.rb-large .rb-icon{color:var(--text)}.rb-widget{flex-direction:column;justify-content:flex-start;gap:3px;padding:4px 6px 0;display:flex}.rb-layer-row,.rb-prop{align-items:center;gap:5px;display:flex}.rb-layers select{width:190px}.rb-props select{width:150px}.rb-widget select{background:var(--bg-input);height:22px;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:0 4px;font-size:12px}.rb-flags{letter-spacing:1px;color:var(--warn);white-space:nowrap;font-size:11px}.rb-swatch{border:1px solid var(--border);flex:none;width:12px;height:12px;display:inline-block}.rb-linetype,.rb-weight{border-block-start:1px dashed var(--text-muted);flex:none;width:12px;display:inline-block}.rb-weight{border-block-start:3px solid var(--text-muted)}.qat{gap:2px;display:flex}.qat button{width:28px;height:26px;font-size:16px;line-height:1}.ribbon-panels:has(.rb-pop){overflow:visible}.split-btn{gap:2px;display:inline-flex}.top-bar .recognize-ai.busy{color:var(--accent);animation:1.2s ease-in-out infinite ai-pulse}@keyframes ai-pulse{50%{opacity:.55}}.levels .level-list{gap:2px;margin:0 0 8px;padding:0;list-style:none;display:grid}.levels .level-list button{text-align:start;background:0 0;border-color:#0000;justify-content:space-between;gap:8px;width:100%;display:flex}.levels .level-list button:hover{background:var(--bg-raised)}.levels .level-list button.active{background:var(--accent-soft);border-color:var(--accent)}.levels .level-name em{color:var(--text-muted);font-style:normal}.levels .level-meta{font:11px var(--mono);color:var(--text-muted)}.level-editor,.level-new{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:8px;font-size:11px;display:grid}.level-editor label,.level-new label{color:var(--text-muted);gap:2px;min-width:0;display:grid}.level-editor input,.level-new input{width:100%;min-width:0;color:var(--text)}.level-editor .wide,.level-new .wide,.level-new>strong,.level-new .level-actions,.level-editor>button,.level-editor>p,.level-new>p{grid-column:1/-1}.level-editor>button{justify-self:start}.level-actions{flex-wrap:wrap;gap:6px;display:flex}.level-picker{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:1px 4px;font-size:11px}.door-flip{grid-column:1/-1;gap:6px;display:flex}.settings-dialog{width:min(560px,100%)}.settings-dialog.wide{width:min(760px,100%)}.settings-dialog .settings-body{max-height:min(70vh,640px);overflow-y:auto}.tool-list{max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.tool-list li{align-items:baseline;gap:8px;padding:2px 0;display:flex}.tool-list .link[dir]{text-align:start;color:var(--text);flex:1}.tool-table-wrap{max-height:280px;overflow:auto}.tool-table{border-collapse:collapse;width:100%;font-size:12px}.tool-table th,.tool-table td{border:1px solid var(--border);text-align:start;padding:3px 6px}.tool-table input:not([type=checkbox]){width:100%;min-width:70px}.tool-table tr.total td{font-weight:600}.tool-table .row-tools{white-space:nowrap}.spell-list{border:1px solid var(--border);background:var(--bg,#111);border-radius:4px;outline:none;max-height:360px;padding:6px 8px;overflow-y:auto}.spell-list>div{border-bottom:1px dashed #ffffff14;padding:2px 0}.settings-body{gap:14px;display:grid}.settings-body section{gap:6px;display:grid}.settings-body h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 2px;font-size:12px}.settings-body label:not(.settings-check){grid-template-columns:1fr 160px auto;align-items:center;gap:8px;display:grid}.settings-check{align-items:center;gap:6px;display:flex}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px 12px;display:grid}.settings-value{min-width:2.5em;font:11px var(--mono);color:var(--text-muted)}.undo-history{display:inline-flex;position:relative}.undo-history .caret{padding:0 3px}.undo-list{top:100%;z-index:50;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;min-width:240px;max-height:60vh;margin:4px 0 0;padding:4px;list-style:none;position:absolute;inset-inline-start:0;overflow:auto;box-shadow:0 8px 24px #0006}.undo-list button{text-align:start;white-space:nowrap;background:0 0;border:none;width:100%;padding:4px 8px}.undo-list button:hover{background:var(--accent-soft)}.ribbon-tabs button.contextual{color:#6fd3a2;border-bottom:2px solid #3ccf91}.rb-num input{width:80px}.revision-bar{background:var(--bg-panel);border-top:1px solid var(--border);gap:4px;padding:6px 10px;font-size:12px;display:grid}.revision-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rev-count{font:11px var(--mono);border-radius:4px;padding:0 5px}.rev-count.added,.rev-item.added{color:#3ccf91}.rev-count.changed,.rev-item.changed{color:#f2b33d}.rev-count.removed,.rev-item.removed{color:#ff5c5c}.rev-actions{align-items:center;gap:6px;margin-inline-start:auto;display:flex}.rev-actions input{width:3.5em}.revision-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 10px;max-height:140px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.rev-item{text-align:start;background:0 0;border:none;width:100%;padding:1px 4px}.rev-item:hover{background:var(--bg-raised)}.rev-files{gap:4px;margin:0;padding:0;list-style:none;display:grid}.rev-files button{text-align:start;width:100%}.command-line{position:relative}.command-history{inset-inline:8px;z-index:40;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;grid-template-rows:auto 1fr;max-height:min(50vh,420px);display:grid;position:absolute;bottom:calc(100% + 4px);box-shadow:0 12px 32px #00000073}.command-history header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:6px 10px;display:flex}.command-history header strong{flex:1}.command-history-log{font:12px var(--mono);white-space:pre-wrap;padding:6px 10px;overflow:auto}.command-line.collapsed{opacity:0;border:0;height:0;min-height:0;padding:0;overflow:hidden}.turn-handle{z-index:4;color:#cfe0ff;cursor:grab;-webkit-user-select:none;user-select:none;background:#2f7dff;border:1px solid #cfe0ff;border-radius:50%;place-items:center;width:22px;height:22px;margin:-11px 0 0 -11px;font-size:14px;line-height:1;display:grid;position:absolute}.turn-handle:hover{background:#ff4d4d}.turn-angle{z-index:5;color:#fff;pointer-events:none;background:#14181ee6;border-radius:4px;padding:2px 6px;font:12px/1.4 ui-monospace,monospace;position:absolute}.turn-angle .typed:after{content:"";vertical-align:-2px;background:currentColor;width:1px;height:1em;margin-left:1px;display:inline-block}.canvas-menu li[role=menuitem]{justify-content:space-between;gap:16px;display:flex}.canvas-menu kbd{color:var(--text-muted,#8a94a3);font:11px ui-monospace,monospace}.snap-override{z-index:5;color:#000;pointer-events:none;background:#ffd400;border-radius:10px;padding:2px 10px;font-size:12px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.key-tips{z-index:60;pointer-events:none;position:fixed;inset:0}.key-tip{text-align:center;color:#111;background:#ffd400;border-radius:3px;min-width:14px;padding:0 4px;font:600 11px/16px ui-monospace,monospace;position:absolute;transform:translate(-50%);box-shadow:0 1px 3px #0006}.view-compass{z-index:4;border:1px solid var(--border);background:var(--bg-panel);color:#ff6b6b;cursor:pointer;border-radius:50%;width:30px;height:30px;padding:0;font:700 12px/1 system-ui,sans-serif;position:absolute;top:8px;right:8px}.view-compass span{display:inline-block}.viewport{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.loupe{z-index:30;pointer-events:none;border:2px solid #ffffffd9;border-radius:50%;position:absolute;overflow:hidden;box-shadow:0 4px 18px #0000008c}.loupe.ready{border-color:#ffb020}.loupe canvas{display:block}[data-touch] .grip{width:14px;height:14px;margin:-7px 0 0 -7px}[data-touch] .grip:after{content:"";position:absolute;inset:-15px}[data-touch] .snap-marker svg{transform:scale(1.6)}[data-touch] .turn-handle{transform:scale(1.5)}.mouse-hint{z-index:6;border:1px solid var(--border);background:var(--bg-raised,var(--bg-panel));border-radius:8px;max-width:340px;padding:10px 12px;font-size:12px;position:absolute;bottom:40px;right:12px;box-shadow:0 6px 18px #00000059}.mouse-hint.clear-bar-right{right:78px}.mouse-hint.clear-bar-right,.mouse-hint.clear-bar-left{max-width:min(340px,100% - 90px)}.mouse-hint ul{margin:6px 0;padding-inline-start:18px}.mouse-hint-actions{justify-content:flex-end;gap:8px;display:flex}.shortcuts .gestures kbd{white-space:nowrap}.status-bar .recording{color:#ff5a5a;background:0 0;border:1px solid #ff5a5a;border-radius:10px;padding:0 8px;font-weight:600}.site-figures{border:1px solid var(--border);background:var(--bg-panel);border-radius:6px;margin:0 0 10px;padding:8px 10px;font-size:12px}.site-figures table{border-collapse:collapse;width:100%;margin-top:6px}.site-figures th{text-align:start;color:var(--muted,#9aa3ad);padding:2px 6px 2px 0;font-weight:400}.site-figures td{font-variant-numeric:tabular-nums;padding:2px 0}.site-figures tr.bad td:first-of-type{color:#ff6b6b}.selection-bar{z-index:12;background:var(--panel,#1d2129);border:1px solid var(--border,#333a46);border-radius:10px;gap:2px;padding:4px;display:flex;position:absolute;box-shadow:0 6px 18px #00000073}.selection-bar button{width:54px;height:52px;color:var(--text);background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:18px;display:flex}.selection-bar button small{color:var(--muted,#9aa3b2);font-size:10px}.selection-bar button:active{background:#ffffff14}.touch-bar{z-index:11;background:var(--panel,#1d2129);border:1px solid var(--border,#333a46);border-radius:12px;flex-direction:column;gap:2px;max-height:calc(100% - 16px);padding:4px;display:flex;position:absolute;top:50%;overflow-y:auto;transform:translateY(-50%);box-shadow:0 6px 18px #00000073}.touch-bar.right{right:8px}.touch-bar.left{left:8px}.touch-bar button,.keypad button,.touch-options button{color:var(--text);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;border-radius:8px}.touch-bar button{flex-direction:column;justify-content:center;align-items:center;width:52px;height:46px;font-size:17px;line-height:1;display:flex}.touch-bar button small{color:var(--muted,#9aa3b2);margin-top:3px;font-size:9px}.touch-bar button.on{color:#8fb6ff;background:#2f7dff40}.touch-bar button:disabled{opacity:.35}.touch-bar button:active,.keypad button:active,.touch-options button:active{background:#ffffff1a}.touch-options{z-index:11;flex-wrap:wrap;gap:6px;max-width:calc(100% - 96px);display:flex;position:absolute;bottom:8px}.touch-options.right{left:8px}.touch-options.left{right:8px}.touch-options button{background:var(--panel,#1d2129);border:1px solid var(--border,#333a46);border-radius:20px;min-height:40px;padding:0 14px}.keypad{z-index:12;background:var(--panel,#1d2129);border:1px solid var(--border,#333a46);border-radius:12px;width:232px;padding:8px;position:absolute;bottom:8px;box-shadow:0 6px 18px #00000073}.keypad.right{right:72px}.keypad.left{left:72px}.keypad-value{min-height:34px;font:16px/1.3 var(--mono,monospace);white-space:nowrap;background:#0000004d;border-radius:6px;margin-bottom:6px;padding:6px 8px;display:block;overflow:hidden}.keypad-recent{gap:4px;margin-bottom:6px;display:flex;overflow-x:auto}.keypad-recent button{border:1px solid var(--border,#333a46);min-height:32px;font-family:var(--mono,monospace);padding:0 8px}.keypad-keys{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.keypad-keys button{background:#ffffff0d;height:44px;font-size:18px}.keypad-keys button.wide{grid-column:span 2}.keypad-keys button.enter{color:#fff;background:#2f7dff}[data-touch] .app{grid-template-rows:52px 1fr 40px}[data-touch] .app.with-ribbon{grid-template-rows:52px auto 1fr 40px}[data-touch] .top-bar button,[data-touch] .top-bar select{min-height:40px}[data-touch] .ribbon-tabs button[role=tab]{padding:10px 16px}[data-touch] .rb-body{min-height:104px}[data-touch] .rb-large .rb-main{min-width:64px;padding:8px 8px 4px}[data-touch] .rb-large .rb-split{padding:4px 8px}[data-touch] .rb-small .rb-main{height:34px;padding:0 10px;font-size:13px}[data-touch] .rb-small .rb-split{width:26px;font-size:11px}[data-touch] .rb-pop button,[data-touch] .rb-pop [role=menuitem]{min-height:40px}[data-touch] .tabs button{min-height:44px;padding-inline:14px}[data-touch] .tree li{padding:10px 8px}[data-touch] .layer-list label,[data-touch] .layer-manager label{padding:9px 0}[data-touch] .left-panel button,[data-touch] .right-panel button,[data-touch] .right-panel select,[data-touch] .left-panel select,[data-touch] .right-panel input:not([type=checkbox]):not([type=radio]):not([type=range]),[data-touch] .left-panel input:not([type=checkbox]):not([type=radio]):not([type=range]){min-height:38px}[data-touch] input[type=checkbox],[data-touch] input[type=radio]{width:20px;height:20px}[data-touch] .status-bar button{min-height:34px;padding-inline:10px}[data-touch] .grip-menu li[role=menuitem]{padding:12px 18px;font-size:14px}[data-touch] .command-option{margin-block:-4px;padding:4px 8px}[data-touch] button,[data-touch] [role=tab],[data-touch] [role=menuitem]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}[data-touch] ::-webkit-scrollbar{width:12px;height:12px}@media (width<=1200px){[data-touch] .workspace,[data-touch] .workspace.no-left,[data-touch] .workspace.no-right{--lw:min(var(--left-w,240px), 90vw);--rw:min(var(--right-w,360px), 90vw);grid-template-columns:1fr;position:relative}[data-touch] .workspace .left-panel,[data-touch] .workspace .right-panel{z-index:20;width:var(--lw);grid-area:1/1/auto/-1;position:absolute;top:0;bottom:0;box-shadow:0 0 24px #00000080}[data-touch] .workspace .left-panel{display:block;inset-inline-start:0}[data-touch] .workspace .right-panel{width:var(--rw);display:grid;inset-inline-end:0}[data-touch] .workspace.no-left .left-panel,[data-touch] .workspace.no-right .right-panel{display:none}[data-touch] .workspace>.center{grid-column:1}}@media (width<=1024px){[data-touch] .ribbon-tabs{scrollbar-width:none;overflow-x:auto}}.touch-tip{z-index:1000;color:#fff;pointer-events:none;background:#000d;border-radius:6px;max-width:260px;padding:6px 10px;font-size:13px;position:fixed}.walk-stick{inset-inline-start:18px;touch-action:none;z-index:5;background:#00000059;border:2px solid #ffffff59;border-radius:50%;place-items:center;width:132px;height:132px;display:grid;position:absolute;bottom:18px}.walk-stick-knob{pointer-events:none;background:#ffffffbf;border-radius:50%;width:56px;height:56px;box-shadow:0 2px 8px #0006}.walk-hud .walk-map{pointer-events:auto;cursor:crosshair}[data-touch] .walk-hud .walk-map{width:200px;height:172px}[data-touch] .view3d-bar button,[data-touch] .view3d-bar select,[data-touch] .view3d-check,[data-touch] .walk-speed button,[data-touch] .walk-options button,[data-touch] .viewpoints button{min-height:40px}.brief-scope{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;gap:2px;margin:6px 0 2px;padding:2px;display:flex}.brief-scope button{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.brief-scope button:hover:not(:disabled):not([aria-pressed=true]){background:var(--bg-raised);color:var(--text)}.brief-scope button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:0 1px 6px #2f7dff73}.brief-scope-hint{margin-bottom:6px;animation:.2s ease-out brief-in}.brief-scope-badge{border:1px solid var(--accent);background:var(--accent-soft);border-radius:999px;margin:6px 0;padding:1px 8px;display:inline-block}.brief-scope-badge.replan{color:#b3a3ff;background:#6b4dff33;border-color:#6b4dff88}.brief-replan{animation:.2s ease-out brief-in}.brief-card.pending .brief-check{animation:.8s ease-out brief-flash}@keyframes brief-in{0%{opacity:0;transform:translateY(-3px)}}@keyframes brief-flash{0%{background:var(--accent-soft)}}.brief-replan .chip.on{border-color:var(--accent);background:var(--accent-soft)}.badge.replan{color:#b3a3ff;background:#6b4dff33;border:1px solid #6b4dff88}.try-replan{margin:6px 0}.ask-dialog{grid-template-rows:auto;width:min(420px,100%);font-size:13px}.ask-dialog p{margin:0;line-height:1.5}.ask-dialog input{width:100%;font-size:14px}.ask-dialog footer{justify-content:flex-end}.ask-dialog button.danger.primary{border-color:var(--bad);background:var(--bad);color:#fff}.home-error{border:1px solid var(--bad);color:var(--bad);border-radius:6px;padding:8px 12px}.msg.user.auto{color:var(--text-muted);background:0 0;border-style:dashed;border-radius:999px;padding:3px 10px;font-size:12px}.msg-actions.recognize-first{flex-wrap:wrap;align-items:center}.msg-actions.recognize-first button{white-space:nowrap}.recognize-first button.ai.busy{animation:1.2s ease-in-out infinite ai-pulse}@property --ai-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.app.ai-busy .ribbon,.app.ai-busy .full-ribbon,.app.ai-busy .command-line{opacity:.45;pointer-events:none;transition:opacity .2s}.ai-working{z-index:20;-webkit-backdrop-filter:blur(1.5px)saturate(.85);backdrop-filter:blur(1.5px)saturate(.85);cursor:progress;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(at 50% 45%,#0b0d1040,#0b0d1099);place-items:center;animation:.25s ease-out ai-fade-in;display:grid;position:absolute;inset:0}.ai-working-aurora{pointer-events:none;background:conic-gradient(from var(--ai-angle), var(--ai-1), var(--ai-2), var(--ai-3), var(--ai-2), var(--ai-1));-webkit-mask-composite:xor;filter:drop-shadow(0 0 10px var(--ai-1));padding:3px;animation:4s linear infinite ai-spin;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.ai-working-aurora:after{content:"";background:radial-gradient(circle at 20% 30%, color-mix(in srgb, var(--ai-1) 22%, transparent), transparent 40%), radial-gradient(circle at 80% 70%, color-mix(in srgb, var(--ai-3) 18%, transparent), transparent 40%);animation:9s ease-in-out infinite alternate ai-drift;position:absolute;inset:-20%}.ai-working-card{background:color-mix(in srgb, var(--bg-panel) 82%, transparent);border:1px solid color-mix(in srgb, var(--ai-1) 45%, var(--border));min-width:220px;max-width:min(360px,100% - 32px);box-shadow:0 0 0 1px #ffffff08 inset, 0 10px 40px #00000073, 0 0 40px color-mix(in srgb, var(--ai-1) 25%, transparent);text-align:center;cursor:default;border-radius:14px;justify-items:center;gap:6px;padding:18px 22px 16px;display:grid;position:relative}.ai-working-orb{background:conic-gradient(from var(--ai-angle), var(--ai-1), var(--ai-2), var(--ai-3), var(--ai-1));width:44px;height:44px;box-shadow:0 0 22px color-mix(in srgb, var(--ai-1) 70%, transparent);border-radius:50%;place-items:center;font-size:22px;animation:3s linear infinite ai-spin,1.8s ease-in-out infinite ai-breathe;display:grid}.ai-working-title{background:linear-gradient(90deg, var(--text) 0%, var(--ai-3) 25%, var(--ai-1) 50%, var(--text) 75%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-size:14px;font-weight:600;animation:2.4s linear infinite ai-shimmer}.ai-working-activity{overflow-wrap:anywhere;max-width:100%}.ai-working-stop{border:1px solid var(--border);background:var(--bg-raised);color:var(--text);cursor:pointer;border-radius:999px;margin-top:4px;padding:3px 14px}.ai-working-stop:hover{border-color:var(--bad);color:var(--bad)}@keyframes ai-spin{to{--ai-angle:360deg}}@keyframes ai-breathe{50%{transform:scale(1.08)}}@keyframes ai-shimmer{to{background-position:-200% 0}}@keyframes ai-drift{to{transform:translate(4%,-3%)rotate(8deg)}}@keyframes ai-fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.ai-working,.ai-working-aurora,.ai-working-aurora:after,.ai-working-orb,.ai-working-title,.brief-scope-hint,.brief-replan,.brief-card.pending .brief-check{animation:none}}.ai-await{isolation:isolate;background:linear-gradient(100deg, transparent 20%, color-mix(in srgb, var(--ai-1) 14%, transparent) 40%, color-mix(in srgb, var(--ai-3) 12%, transparent) 55%, transparent 75%);background-size:250% 100%;animation:2.8s linear infinite await-sweep;position:relative}.command-line .command-input-row.ai-await{border-block-start-color:#0000}.ai-await:before,.ai-await:after{content:"";z-index:-1;pointer-events:none;background:conic-gradient(from var(--ai-angle), var(--ai-1), var(--ai-2), var(--ai-3), #f472b6, var(--ai-1));-webkit-mask-composite:xor;border-radius:4px;padding:2px;animation:2.4s linear infinite ai-spin;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.ai-await:after{filter:blur(6px);opacity:.55}.await-chip{background:linear-gradient(90deg, var(--ai-1), var(--ai-2), var(--ai-3), var(--ai-1));color:#fff;font-family:var(--font);white-space:nowrap;background-size:300% 100%;border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:600;animation:3s linear infinite await-sweep}.changeset-bar{border-block-start:2px solid #0000;border-image:conic-gradient(from var(--ai-angle) at 50% 0%, var(--ai-1), var(--ai-2), var(--ai-3), #f472b6, var(--ai-1)) 1;animation:4s linear infinite ai-spin}.changeset-actions.ai-await{border-radius:4px;align-items:center;padding:6px 8px}.command-line.awaiting .command-prompt{color:#ffd27a;font-weight:600;animation:.9s ease-out await-flash}.command-line.awaiting .command-option{background:#6cb6ff1f;border:1px solid #6cb6ff8c;border-radius:4px;margin:0 1px;padding:0 6px}.command-line.awaiting .command-option:hover{background:#6cb6ff47;text-decoration:none}@keyframes await-sweep{0%{background-position:100% 0}to{background-position:-150% 0}}@keyframes await-flash{0%{background:#ffd27a40}}@media (prefers-reduced-motion:reduce){.changeset-bar,.await-chip,.ai-await,.ai-await:before,.ai-await:after,.command-line.awaiting .command-prompt{animation:none}}.zoomable{cursor:zoom-in;border-radius:4px}.zoomable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lightbox{z-index:60;background:#000c;position:fixed;inset:0}.lightbox-stage{touch-action:none;cursor:grab;padding:56px 24px 24px;position:absolute;inset:0;overflow:hidden}.lightbox-stage:active{cursor:grabbing}.lightbox-figure{transform-origin:50%;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.lightbox-figure>img{object-fit:contain;-webkit-user-drag:none;border-radius:4px;max-width:100%;max-height:100%}.lightbox-graph{background:var(--bg-panel);border-radius:8px;flex-direction:column;gap:10px;width:min(100%,1100px);height:100%;padding:12px;display:flex}.lightbox-graph .graph-svg{flex:1;height:100%;min-height:0}.lightbox-tools{top:12px;gap:6px;display:flex;position:absolute;inset-inline-end:12px}.lightbox-tools button{border-radius:6px;min-width:36px;height:36px;font-size:18px}.lightbox-tools .lightbox-pct{min-width:64px;font-size:12px;font-family:var(--mono)}.chat-head .chat-usage-chip{border:1px solid var(--border);font:10.5px var(--mono);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;cursor:default;border-radius:999px;min-width:0;margin-inline-start:auto;padding:2px 8px;overflow:hidden}.chat-head .chat-usage-chip+.clear-chat{margin-inline-start:0}.usage-total{opacity:.8}.chat-input .send-button.dictate-button{background:var(--bg-raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--border);position:relative}.chat-input .send-button.dictate-button:hover:not(:disabled){background:var(--bg-raised);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.chat-input .send-button.dictate-button.recording,.chat-input .send-button.dictate-button.recording:hover{background:var(--bad);color:#fff;box-shadow:none}.dictate-ring{pointer-events:none;box-shadow:0 0 0 calc(2px + var(--level,0) * 6px) rgba(255, 92, 92, calc(.2 + var(--level,0) * .4));opacity:0;border-radius:50%;transition:box-shadow 80ms linear;position:absolute;inset:0}.dictate-button.recording .dictate-ring{opacity:1}.dictate-time{font-variant-numeric:tabular-nums}.dictate-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}.chat-input-hint.error{color:var(--bad);white-space:normal}.chat-input-bar>*{flex:none}.chat-input-bar>.mode-picker{flex:0 auto;min-width:0}.chat-input-bar .mode-button{max-width:100%}.chat-input-bar .mode-button>svg{flex:none}.chat-input-bar .mode-button>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.chat-input{container-type:inline-size}@container (width<=300px){.chat-input-bar{gap:4px}.chat-input-bar .mode-button{gap:4px;padding-inline:7px}.chat-input-bar .mode-button>svg:last-child{display:none}}.new-project .steps{gap:4px;margin:0 0 6px;padding:0;list-style:none;display:flex}.new-project .steps button{border:1px solid var(--border);color:var(--text-muted);background:0 0;border-radius:12px;padding:2px 10px;font-size:12px}.new-project .steps li.on button{border-color:var(--accent);color:var(--text)}.new-project .steps li.done button{color:var(--text)}.new-project .pack-picker{max-height:50vh;overflow-y:auto}.new-project label.pack-head,.new-project label.pack-row.none,.new-project label.rule-confirm{color:var(--text);display:flex}.new-project .pack-profile,.new-project .site-profile label{display:flex}.new-project input[type=checkbox],.new-project input[type=radio]{padding:0}.splitter{z-index:21;touch-action:none;outline:none;position:absolute}.splitter:after{content:"";background:var(--accent);opacity:0;transition:opacity .15s;position:absolute}.splitter:hover:after,.splitter:focus-visible:after,.splitter.dragging:after{opacity:.8}.splitter-left,.splitter-right{cursor:col-resize;width:9px;top:0;bottom:0}.splitter-left:after,.splitter-right:after{top:0;bottom:0;width:3px;inset-inline-start:3px}.splitter-left{inset-inline-start:calc(var(--lw) - 5px)}.splitter-right{inset-inline-end:calc(var(--rw) - 5px)}.workspace.no-left>.splitter-left,.workspace.no-right>.splitter-right{display:none}.splitter-log{inset-inline:0;cursor:row-resize;height:9px;top:-4px}.splitter-log:after{inset-inline:0;height:3px;top:3px}.command-line.collapsed>.splitter-log{display:none}[data-touch] .splitter-left,[data-touch] .splitter-right{width:22px}[data-touch] .splitter-left{inset-inline-start:calc(var(--lw) - 11px)}[data-touch] .splitter-right{inset-inline-end:calc(var(--rw) - 11px)}[data-touch] .splitter-left:after,[data-touch] .splitter-right:after{top:50%;bottom:auto;background:var(--text-muted);opacity:.6;border-radius:3px;width:6px;height:48px;margin-block-start:-24px;inset-inline-start:8px}[data-touch] .splitter-log{height:20px;top:-10px}.resizing,.resizing *{-webkit-user-select:none;user-select:none}.resizing .views{pointer-events:none}.ui-icon{vertical-align:-.2em;flex:none}[dir=rtl] .ui-icon.flip-rtl{transform:scaleX(-1)}.ui-btn{min-width:32px;height:32px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;padding:0 6px;transition:background .12s,color .12s;display:inline-grid}.ui-btn:hover:not(:disabled),.ui-btn:focus-visible{background:var(--bg-raised);color:var(--text)}.ui-btn:disabled{opacity:.4}[data-touch] .ui-btn{min-width:40px;height:40px}.app.phone{grid-template-rows:minmax(0,1fr)}.phone-shell{height:100%;min-height:0;padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);background:var(--bg);grid-template-rows:auto minmax(0,1fr) auto;display:grid}.phone-top{min-width:0;padding:calc(4px + env(safe-area-inset-top)) 6px 4px;background:var(--bg-panel);border-block-end:1px solid var(--border);align-items:center;gap:2px;display:flex}.phone-file{flex-direction:column;flex:1;justify-content:center;min-width:0;padding-inline:4px 8px;line-height:1.25;display:flex}.phone-file-name,.phone-file small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.phone-file-name{font-weight:600}.phone-file small{color:var(--text-muted);font-size:11px}.phone-top .level-picker{text-overflow:ellipsis;border-radius:8px;flex:none;align-self:center;max-width:116px;height:32px;margin-inline-end:4px;padding:0 8px;font-size:13px}.phone-canvas{grid-template-rows:minmax(0,1fr);min-height:0;display:grid;position:relative;overflow:hidden}.phone-canvas .views.split{grid-template-columns:minmax(0,1fr);gap:0}.phone-canvas .views.split>.view3d{z-index:5;position:absolute;inset:0}.phone-canvas .views.split>.viewport{visibility:hidden}.phone-fabs{z-index:8;gap:8px;display:grid;position:absolute;top:10px;left:10px}.fab{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-panel) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:44px;height:44px;color:var(--text);border-radius:14px;place-items:center;padding:0;display:grid;box-shadow:0 4px 14px #00000059}.fab span{margin-block-start:-6px;font-size:9px;font-weight:700;line-height:1}.phone-bars{inset-inline:0;z-index:9;max-height:45%;position:absolute;bottom:0;overflow-y:auto}.phone-prompt{inset-inline:8px;z-index:10;border:1px solid var(--accent);background:color-mix(in srgb, var(--bg-panel) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;align-items:center;gap:4px;padding:4px 4px 4px 12px;font-size:13px;display:flex;position:absolute;bottom:8px;box-shadow:0 6px 20px #0006}.phone-prompt>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.phone-tabs{padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--bg-panel);border-block-start:1px solid var(--border);z-index:30;grid-template-columns:repeat(5,1fr);display:grid;position:relative}.phone-tabs button{color:var(--text-muted);background:0 0;border:0;border-radius:12px;justify-items:center;gap:2px;padding:6px 0 4px;font-size:11px;display:grid}.phone-tabs button.on{color:var(--accent)}.phone-tabs button.on .tab-icon{background:var(--accent-soft)}.tab-icon{border-radius:15px;place-items:center;width:52px;height:30px;transition:background .15s;display:grid;position:relative}.tab-dot{top:3px;background:var(--ai-1);width:9px;height:9px;box-shadow:0 0 0 2px var(--bg-panel);border-radius:50%;position:absolute;inset-inline-end:12px}.phone-sheet{inset-inline:0;z-index:25;background:var(--bg-panel);border:1px solid var(--border);border-block-end:0;border-radius:18px 18px 0 0;flex-direction:column;min-height:0;transition:height .22s cubic-bezier(.2,.8,.2,1);animation:.22s cubic-bezier(.2,.8,.2,1) sheet-in;display:flex;position:absolute;bottom:0;box-shadow:0 -10px 30px #00000073}.phone-sheet.snap-full{border-radius:0}.phone-sheet.dragging{transition:none}@keyframes sheet-in{0%{transform:translateY(40%)}}.sheet-head{touch-action:none;cursor:grab;border-block-end:1px solid var(--border);flex:none;padding:0 8px 4px 14px}.sheet-handle{background:0 0;border:0;width:100%;height:18px;padding:0;display:block;position:relative}.sheet-handle:after{content:"";background:var(--text-muted);opacity:.5;border-radius:3px;width:40px;height:5px;margin-left:-20px;position:absolute;top:7px;left:50%}.sheet-title{align-items:center;gap:4px;display:flex}.sheet-title h2{text-transform:none;letter-spacing:normal;color:var(--text);flex:1;margin:0;font-size:16px;font-weight:600}.sheet-body{flex:1;grid-template-rows:minmax(0,1fr);min-height:0;display:grid}.sheet-body>.left-panel,.sheet-body>.right-panel{width:auto;box-shadow:none;border:0;min-height:0;position:static}.sheet-body>.right-panel{display:grid}.sheet-body>.left-panel,.phone-tools,.phone-more{overscroll-behavior:contain;overflow-y:auto}.phone-sheet .tabs button{flex:1;min-height:40px}.phone-tools{padding:10px 12px 16px}.phone-toggles{scrollbar-width:none;gap:6px;padding-block-end:8px;display:flex;overflow-x:auto}.phone-toggles .chip{min-height:32px;color:var(--text-muted);border-radius:16px;flex:none;padding:0 12px;font-size:12px;font-weight:600}.phone-toggles .chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.phone-command .command-line{border:1px solid var(--border);border-radius:10px;overflow:hidden}.phone-command .splitter-log{display:none}.phone-command .command-log{height:56px}.phone-tool-tabs{scrollbar-width:none;gap:4px;margin-block:12px 4px;display:flex;overflow-x:auto}.phone-tool-tabs button{min-height:34px;color:var(--text-muted);background:0 0;border-color:#0000;border-radius:17px;flex:none;padding:0 12px}.phone-tool-tabs button.on{background:var(--bg-raised);border-color:var(--border);color:var(--text)}.phone-tool-panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:14px 2px 6px;font-size:11px;font-weight:600}.phone-tool-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;display:grid}.phone-tool-grid button{text-align:center;border-radius:12px;align-content:start;justify-items:center;gap:4px;min-height:72px;padding:10px 4px 6px;font-size:11px;line-height:1.2;display:grid}.phone-tool-grid button .rb-icon{color:var(--text)}.phone-tool-grid button.active{border-color:var(--accent);background:var(--accent-soft)}.phone-more{padding:8px 12px 16px}.phone-more ul{border:1px solid var(--border);border-radius:12px;margin:0 0 10px;padding:0;list-style:none;overflow:hidden}.phone-more li+li{border-block-start:1px solid var(--border)}.phone-more li button{background:var(--bg-raised);text-align:start;border:0;border-radius:0;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 14px;display:flex}.phone-more li button.on{color:var(--accent)}.phone-more li button:disabled{opacity:.5}.phone-more-foot{justify-content:space-between;align-items:center;gap:8px;padding-block-start:4px;display:flex}.phone-more-foot .lang-toggle button{min-height:36px}.app.phone .touch-bar{scrollbar-width:none;max-height:calc(100% - 70px);overflow-y:auto}.phone-canvas:has(.touch-bar.left) .phone-fabs{left:auto;right:10px}.app.phone .touch-bar button{width:42px;height:40px}.app.phone .touch-bar small{display:none}.app.phone .units-banner,.app.phone .changeset-bar{max-width:none}@media (prefers-reduced-motion:reduce){.phone-sheet{transition:none;animation:none}}
