:root{--bg:#f3f6fa;--panel:#fff;--border:#0f1b2d1f;--border-hover:#0284c78c;--text:#0f1b2d;--dim:#51627a;--faint:#7b8aa0;--cyan:#0284c7;--green:#15803d;--amber:#b45309;--red:#dc2626;--ctl:#0f1b2d0a;--tint:#0284c714;--surface:#fff;--surface-glass:#fffffff0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0b0f14;--panel:#131a23;--surface:#131a23;--surface-glass:#131a23f0;--border:#ffffff1f;--border-hover:#38bdf899;--text:#e8eef5;--dim:#9fb0c3;--faint:#7b8aa0;--cyan:#38bdf8;--green:#4ade80;--amber:#fbbf24;--red:#f87171;--ctl:#ffffff0f;--tint:#38bdf81f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] body{background:radial-gradient(circle at 20% 0%, #38bdf812, transparent 45%), var(--bg)}:root[data-theme=dark] .panel{box-shadow:none}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 20% 0%, #0284c712, transparent 45%), var(--bg);color:var(--text);font:13px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.app{flex-direction:column;height:100%;display:flex}.toolbar{border-bottom:1px solid var(--border);background:var(--surface-glass);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex;position:relative}.brand{letter-spacing:.04em;color:var(--cyan);align-items:center;gap:8px;margin-right:6px;font-weight:700;display:inline-flex}.brand .brand-mark{border-radius:6px;flex:none}.spacer{flex:1}.newmodel{z-index:30;background:var(--surface);border:1px solid var(--border-hover);border-radius:12px;flex-direction:column;gap:10px;width:320px;padding:14px;display:flex;position:absolute;top:100%;left:16px;box-shadow:0 12px 40px #0f1b2d2e}.btn,.toolbar select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;align-items:center;padding:6px 12px;font-size:12px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled):not(.disabled){border-color:var(--border-hover)}.btn:disabled,.btn.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn.primary{color:var(--cyan);background:#0284c71a;border-color:#0284c766}.btn.danger{color:var(--red);border-color:#dc262659}.link{color:var(--cyan);text-align:left;font-size:inherit;background:0 0;border:none;padding:0}.link:hover{text-decoration:underline}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field>span{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);font-size:10px}input:not([type=checkbox]),select{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;min-width:0;padding:6px 10px;font-size:12px}select option{background:var(--surface);color:#0f1b2d}input:focus,select:focus,button:focus-visible{outline-offset:1px;outline:2px solid #0284c780}.toolbar select{width:auto;max-width:240px}.check{cursor:pointer;align-items:center;gap:7px;display:flex}.inline{color:var(--dim);align-items:center;gap:6px;display:inline-flex}.inline input{width:70px}.narrow{flex:none;width:70px!important}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.small{margin-top:6px}.row.small>input:not(.narrow){flex:1}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sub{color:var(--dim);font-size:11.5px}.msg{color:var(--dim);font-size:12px}.ok{color:var(--green);font-size:12px}.warn{color:var(--amber);font-size:12px;line-height:1.45}.fail{color:var(--red);font-size:12px;line-height:1.45}.fail blockquote{color:var(--dim);border-left:2px solid #dc262666;margin:4px 0 0;padding-left:8px;font-size:11px}.errorbar{color:#991b1b;background:#dc262614;border-bottom:1px solid #dc26264d;justify-content:space-between;gap:12px;padding:8px 16px;display:flex}.workspace{flex:1;min-height:0;display:grid}.side{flex-direction:column;gap:12px;padding:12px;display:flex;overflow-y:auto}.side.left{border-right:1px solid var(--border)}.side.right{border-left:1px solid var(--border)}.center{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex;box-shadow:0 1px 2px #0f1b2d0d}.panel-title{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:center;font-size:11px;font-weight:700;display:flex}.level{border-top:1px solid var(--border);padding-top:8px}.level:first-of-type{border-top:none;padding-top:0}.level-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.rooms{flex-direction:column;gap:2px;margin:6px 0 0;padding:0;list-style:none;display:flex}.rooms li{border-radius:6px;justify-content:space-between;gap:8px;padding:3px 6px;display:flex}.rooms li.on{background:#b453091a}textarea{resize:vertical;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;min-height:90px;padding:8px 10px;font-size:12px;line-height:1.45}textarea:disabled{opacity:.55}textarea:focus{outline-offset:1px;outline:2px solid #0284c780}.steps{background:var(--ctl);border-radius:8px;flex-direction:column;gap:5px;max-height:220px;padding:6px;display:flex;overflow-y:auto}.step{white-space:pre-wrap;border-left:2px solid var(--border);color:var(--dim);padding-left:8px;font-size:11.5px;line-height:1.4}.step.say{color:var(--text);border-color:#0284c780}.step.edit{border-color:#15803d80}.step.check{border-color:#b453098c}.step.error{color:var(--red);border-color:var(--red)}.summary{white-space:pre-wrap;background:#0284c70f;border:1px solid #0284c738;border-radius:8px;padding:8px;font-size:12px;line-height:1.5}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:8px 12px 0;display:flex}.tabs button{color:var(--dim);background:0 0;border:1px solid #0000;border-bottom:none;border-radius:8px 8px 0 0;padding:7px 16px;font-size:12px}.tabs button.on{color:var(--cyan);background:var(--surface);border-color:var(--border)}.pane{flex-direction:column;flex:1;min-height:0;display:flex}.pane[hidden]{display:none}.drawings{flex-direction:row;flex:1;min-height:0;display:flex}.drawings-main{flex-direction:column;flex:1;min-width:0;display:flex}.drawing-controls{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 14px;display:flex}.drawing-controls .inline select,.drawing-controls .inline input{width:auto}.drawing-controls .inline input[type=number]{width:76px}.seg{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{color:var(--dim);background:0 0;border:none;padding:6px 14px;font-size:12px}.seg button.on{color:var(--cyan);background:#0284c71f}.slider{accent-color:#0284c7;flex:1;min-width:120px;max-width:260px;padding:0}.sheet{background:#e6ebf1;flex:1;justify-content:center;align-items:flex-start;min-height:420px;padding:14px;display:flex;overflow:auto}.sheet img{background:var(--surface);max-width:100%;height:auto;transition:opacity .15s;box-shadow:0 6px 24px #0f1b2d2e}.sheet img.loading{opacity:.55}.sheet-problem{max-width:560px}.viewer{background:radial-gradient(circle at 50% 30%,#fff,#e9eef4 80%);flex:1;min-height:360px;position:relative}.viewer-hint{color:var(--faint);pointer-events:none;font-size:10.5px;position:absolute;bottom:8px;left:12px}.viewer-tools{max-width:70%;color:var(--dim);border:1px solid var(--border);z-index:2;background:#ffffffe0;border-radius:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px 12px;padding:5px 10px;font-size:11px;display:flex;position:absolute;top:10px;right:12px}.viewer-tools label{align-items:center;gap:6px;display:flex}.viewer-tools input[type=range]{accent-color:#0284c7;width:110px}.empty{text-align:center;color:var(--dim);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.empty h2{color:var(--text);margin:0 0 6px}.warnings{border-top:1px solid var(--border);flex-direction:column;gap:3px;max-height:120px;padding:8px 14px;display:flex;overflow-y:auto}.report{white-space:pre-wrap;max-height:360px;color:var(--dim);background:var(--ctl);border-radius:8px;margin:0;padding:8px;font:11px/1.5 ui-monospace,Consolas,monospace;overflow:auto}@media (width<=1000px){.workspace{grid-template-columns:minmax(0,1fr);overflow-y:auto}.side.left{border-right:none;order:2}.center{order:1;min-height:420px}.side.right{border-left:none;order:3}.side{overflow:visible}}.item{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.item .row .sub{flex:140px}.mini{border-collapse:collapse;width:100%;font-size:12px}.mini td{border-top:1px solid var(--border);padding:3px 6px}.mini tr.ok td:last-child{color:var(--green)}.mini tr.fail td{color:var(--red)}.chat .chat-head{align-items:center;gap:6px;display:flex}.msgs{flex-direction:column;gap:8px;min-height:120px;max-height:420px;padding:4px 2px;display:flex;overflow-y:auto}.msgs .chat-empty{color:var(--faint);padding:6px;font-size:12px;line-height:1.5}.msg{white-space:pre-wrap;word-break:break-word;border-radius:10px;max-width:94%;padding:7px 10px;font-size:12.5px;line-height:1.5}.msg.user{background:#0284c717;border:1px solid #0284c747;align-self:flex-end}.msg.assistant{background:var(--surface);border:1px solid var(--border);align-self:flex-start}.msg.assistant.bad{color:var(--red);border-color:#dc262666}.msg.assistant.cmd{font-family:ui-monospace,Consolas,monospace;font-size:11.5px}.msg .chips{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.chip{border:1px solid var(--border);color:var(--dim);background:var(--ctl);border-radius:999px;padding:1px 7px;font-size:10.5px}.msg img.drawing{border:1px solid var(--border);background:var(--surface);border-radius:6px;width:100%;margin-top:6px;display:block}.msg .attach{gap:10px;margin-top:4px;font-size:11.5px;display:flex}.msg .attach a{color:var(--cyan)}.composer{flex-direction:column;gap:6px;display:flex;position:relative}.composer textarea{resize:vertical}.composer .tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.composer .tools .grow{flex:1}.cmds{background:var(--surface);border:1px solid var(--border-hover);z-index:5;border-radius:8px;flex-direction:column;max-height:220px;padding:4px;display:flex;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0f1b2d29}.cmds button{text-align:left;color:var(--text);background:0 0;border:none;border-radius:6px;gap:8px;padding:4px 6px;font-size:12px;display:flex}.cmds button:hover{background:var(--tint)}.cmds button span{color:var(--dim);font-size:11px}.schedule{border-collapse:collapse;width:100%;margin:6px 0;font-size:12px}.schedule th{text-align:left;color:var(--dim);border-bottom:1px solid var(--border);padding:2px 4px;font-weight:500}.schedule td{font-variant-numeric:tabular-nums;border-bottom:1px solid #0f1b2d12;padding:3px 4px}.schedule tr.faint td{color:var(--faint)}.schedule td.better{color:var(--green);font-weight:600}.schedule input.rate{width:70px;padding:2px 4px;font-size:12px}.schedule input.finish{width:100%;min-width:70px;padding:2px 4px;font-size:11.5px}.finish-rooms{max-height:360px;overflow-y:auto}.chip{color:#0369a1;background:#0284c71a;border:1px solid #0284c74d;border-radius:999px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.analysis{flex:1;min-height:0;display:flex}.analysis-nav{border-right:1px solid var(--border);flex-direction:column;flex:none;gap:4px;width:270px;padding:10px;display:flex;overflow-y:auto}.analysis-nav button{text-align:left;color:var(--dim);background:0 0;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:10px;padding:7px 8px;font-size:12px;display:flex}.analysis-nav button small{opacity:.75;margin-top:2px;font-size:10.5px;display:block}.analysis-nav button.on{color:var(--cyan);background:var(--tint);border-color:var(--border)}.analysis-nav .num{border:1px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.analysis-body{flex-direction:column;flex:1;gap:10px;min-width:0;padding:12px 16px;display:flex;overflow-y:auto}.analysis-title{margin:0;font-size:16px}.analysis-figure{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px}.analysis-figure img{width:100%;height:auto;display:block}.analysis-facts{margin:0;padding-left:18px;font-size:12.5px;line-height:1.5}.analysis-facts li{margin:2px 0}.overlay-bar{border:1px solid var(--border);background:#ffffffeb;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;font-size:11.5px;display:flex;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 2px 10px #0f1b2d1a}.overlay-bar .swatch{align-items:center;gap:5px;display:inline-flex}.overlay-bar .swatch i{border:1px solid #0f1b2d59;border-radius:3px;width:12px;height:12px;display:inline-block}.pane{position:relative}.overlay-bar .swatch{white-space:nowrap}.panel.collapsible>.panel-title{cursor:pointer;-webkit-user-select:none;user-select:none}.panel.collapsible>.panel-title:hover{color:var(--cyan)}.panel.collapsible>.panel-title:focus-visible{outline:1px solid var(--cyan);outline-offset:2px;border-radius:4px}.panel.collapsible>.panel-title:after{content:"▾";opacity:.7;margin-left:8px;font-size:10px}.panel.collapsed>.panel-title:after{content:"▸"}.panel.collapsed>:not(.panel-title){display:none}.panel.collapsed{gap:0;padding-top:9px;padding-bottom:9px}.panel[hidden]{display:none}.panel-tools{z-index:3;background:var(--bg);border-bottom:1px solid var(--border);align-items:center;gap:10px;margin:-12px -12px 0;padding:8px 12px;display:flex;position:sticky;top:-12px}.panel-tools input{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex:1;min-width:0;padding:5px 9px}.panel-tools input:focus{border-color:var(--border-hover);outline:none}.panel-tools .link{white-space:nowrap;font-size:11px}.finish-cell{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.finish-cell input.finish{flex:100%;min-width:84px}.finish-cell select.texture{flex:1 1 0;min-width:0;max-width:104px;padding:1px 2px;font-size:11px}.finish-rooms{overflow-x:auto}.finish-side td{background:#0284c70d;font-size:11.5px}.material-row select{max-width:190px}.material-look{align-items:center;gap:4px;font-size:11.5px;display:inline-flex}.material-swatch{border:1px solid var(--border);border-radius:4px;width:14px;height:14px;display:inline-block}.colourbox{align-items:center;gap:2px;display:inline-flex}.colourbox input[type=color]{border:1px solid var(--border);background:var(--surface);cursor:pointer;opacity:.4;border-radius:5px;width:24px;min-width:24px;height:22px;padding:1px}.colourbox.set input[type=color]{opacity:1}.colourbox input[type=color]:disabled{cursor:not-allowed;opacity:.2}.inside-tools{align-items:center;gap:8px;display:inline-flex}.concept{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.concept.on{border-color:var(--border-hover);background:var(--tint)}.concept-palette{gap:6px;display:flex}.concept-group{border:1px solid var(--border);border-radius:4px;flex-direction:column;width:34px;display:flex;overflow:hidden}.concept-group i{height:9px;display:block}.concept-banner{z-index:3;background:var(--surface-glass);border:1px solid var(--border-hover);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;font-size:11.5px;display:flex;position:absolute;bottom:34px;left:12px;right:12px;box-shadow:0 2px 10px #0f1b2d1f}.plan-editor{flex-direction:column;flex:1;min-height:0;display:flex}.plan-tools{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;display:flex}.plan-tools .inline select{width:auto}.plan-hint{flex:260px}.plan-canvas{background:var(--surface);outline:none;flex:1;min-height:max(360px,60vh);position:relative;overflow:hidden}.plan-canvas:focus-visible{box-shadow:inset 0 0 0 2px #0284c759}.plan-card{z-index:3;flex-direction:column;gap:6px;width:300px;max-width:calc(100% - 24px);display:flex;position:absolute;top:12px;left:12px}.plan-card>div,.plan-card>form{border:1px solid var(--border-hover);background:#fffffff5;border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex;box-shadow:0 4px 16px #0f1b2d24}.plan-card:empty{display:none}.plan-card input[type=number]{width:100%}.plan-notice{z-index:3;border:1px solid var(--border-hover);background:#fffffff5;border-radius:10px;max-width:320px;padding:8px 12px;font-size:12px;position:absolute;top:12px;right:12px;box-shadow:0 4px 16px #0f1b2d24}.plan-notice.warn{top:auto;bottom:36px}.plan-status{color:var(--dim);background:var(--surface-glass);border-top:1px solid var(--border);pointer-events:none;gap:12px;padding:5px 12px;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0}.plan-tools .seg{max-width:100%;overflow-x:auto}.exterior-chip{border:1px solid var(--border);border-radius:4px;width:30px;height:18px;display:inline-block}.concept-palette{align-items:center}.roof-banner{z-index:3;background:var(--surface-glass);border:1px solid var(--border-hover);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 10px;max-width:calc(100% - 24px);padding:8px 12px;font-size:11.5px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 2px 10px #0f1b2d1f}.exterior-options{flex-direction:column;gap:3px;max-height:190px;padding:4px 2px;display:flex;overflow-y:auto}.composer.dragging{outline-offset:2px;border-radius:6px;outline:2px dashed #0284c7}.composer .thumbs{flex-wrap:wrap;gap:6px;display:flex}.composer .thumb{border:1px solid var(--border);background:var(--ctl);border-radius:6px;width:56px;height:56px;position:relative;overflow:hidden}.composer .thumb img{object-fit:cover;width:100%;height:100%;display:block}.composer .thumb .x{color:#fff;cursor:pointer;background:#0f1b2dbf;border:0;border-radius:50%;width:18px;height:18px;padding:0;font-size:13px;line-height:16px;position:absolute;top:1px;right:1px}.msgs .chat-empty .tips{border:1px solid var(--border);background:var(--ctl);border-radius:6px;margin-top:8px;padding:4px 8px}.msgs .chat-empty .tips summary{cursor:pointer;color:var(--dim);font-weight:600}.msgs .chat-empty .tips p{margin:6px 0}.chat .panel-title{flex-wrap:wrap;gap:8px}.chatdock{background:var(--bg,transparent);padding:8px 12px}.chatdock.top{border-bottom:1px solid var(--border)}.chatdock.bottom{border-top:1px solid var(--border)}.chat.strip{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);align-items:start;column-gap:12px;max-height:38vh;display:grid;overflow-y:auto}.chat.strip>*{grid-column:1/-1}.chat.strip>.msgs{grid-column:1;max-height:24vh}.chat.strip>.composer{grid-area:span 1/2}@media (width<=1000px){.chat.strip{max-height:none;display:flex}}.composer .doc{border:1px solid var(--border);background:var(--ctl);border-radius:6px;align-items:center;gap:6px;max-width:100%;height:56px;padding:0 24px 0 8px;font-size:11.5px;display:inline-flex;position:relative}.composer .doc b{color:#0369a1;background:#0284c724;border-radius:4px;padding:1px 5px;font-size:10px}.composer .doc .docname{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.composer .doc .x{color:#fff;cursor:pointer;background:#0f1b2dbf;border:0;border-radius:50%;width:18px;height:18px;padding:0;font-size:13px;line-height:16px;position:absolute;top:1px;right:1px}.osm-credit{color:var(--dim);background:var(--surface-glass);pointer-events:none;border-radius:4px;padding:1px 6px;font-size:10.5px;position:absolute;bottom:6px;right:8px}.menu-wrap{display:inline-block;position:relative}.chat .panel-title .title-menus{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.icon-btn{border:1px solid var(--border);background:var(--ctl);width:30px;height:24px;color:var(--dim);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover,.icon-btn[aria-expanded=true]{color:#0369a1;border-color:#0284c780}.menu{z-index:50;background:var(--surface);border:1px solid var(--border-hover,var(--border));text-transform:none;letter-spacing:0;border-radius:10px;padding:6px;font-weight:400;position:fixed;box-shadow:0 8px 24px #0f1b2d29}.dock-menu{min-width:150px}.menu-label{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 6px;padding:0 4px;font-size:10.5px;font-weight:700}.dock-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.dock-opt{border:1px solid var(--border);background:var(--ctl);color:var(--dim);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;font-size:11px;display:flex}.dock-opt:hover{color:#0369a1;border-color:#0284c780}.dock-opt.on{color:#0369a1;background:#0284c71f;border-color:#0284c799;font-weight:700}.tools-menu{min-width:270px;max-width:calc(100vw - 16px)}.tools-menu .menu-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:0;border-radius:6px;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 8px;display:flex}.tools-menu .menu-item b{font-size:12.5px;font-weight:600}.tools-menu .menu-item i{color:var(--dim);font-size:11px;font-style:normal}.tools-menu .menu-item:hover:not(:disabled){background:var(--tint,#0284c714)}.tools-menu .menu-item:disabled{opacity:.45;cursor:default}.menu-sep{background:var(--border);height:1px;margin:4px 2px}.chat-usage{border:1px solid var(--border);background:var(--ctl);color:var(--dim);border-radius:8px;font-size:11.5px}.chat-usage>summary{cursor:pointer;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;list-style:none;display:flex}.chat-usage>summary::-webkit-details-marker{display:none}.chat-usage>summary:before{content:"▸";margin-right:2px;font-size:10px}.chat-usage[open]>summary:before{content:"▾"}.chat-usage>summary>span:first-child{flex:150px;min-width:0}.chat-usage .usage-today{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.chat-usage .usage-today.near{color:var(--amber,#b45309);font-weight:600}.chat-usage .usage-bar{background:#0f1b2d1f;border-radius:3px;width:44px;height:5px;display:inline-block;overflow:hidden}.chat-usage .usage-bar b{background:#0284c7;height:100%;display:block}.chat-usage .usage-today.near .usage-bar b{background:var(--amber,#b45309)}.chat-usage .usage-detail{flex-direction:column;gap:4px;padding:2px 8px 8px;line-height:1.45;display:flex}.chat-usage .usage-detail strong{color:var(--text)}.chat{position:relative}.chat-head .chat-title{text-align:left;min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;cursor:text;background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:3px 6px;font-size:12.5px;font-weight:600;overflow:hidden}.chat-head .chat-title:hover{border-color:var(--border);background:var(--ctl)}.chat-head .title-edit,.chat-history .title-edit{flex:1;min-width:0;padding:3px 6px;font-size:12.5px;font-weight:600}.icon-btn.on{color:#0369a1;background:#0284c71a;border-color:#0284c780}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn.small{width:auto;min-width:22px;height:22px;padding:0 6px;font-size:12px}.icon-btn.danger{color:#b91c1c;background:#dc262614;border-color:#dc262680}.chat-history{z-index:15;background:var(--panel,#fff);border-radius:inherit;flex-direction:column;gap:6px;padding:10px;display:flex;position:absolute;inset:0;overflow-y:auto}.chat-history-head{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:center;font-size:11px;font-weight:700;display:flex}.chat-history-empty{color:var(--faint,var(--dim));padding:12px 4px;font-size:12px}.chat-history-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chat-history-list li{border:1px solid var(--border);background:var(--ctl);border-radius:8px;align-items:center;gap:4px;display:flex;position:relative}.chat-history-list li.active{background:#0284c717;border-color:#0284c799}.chat-row{text-align:left;cursor:pointer;min-width:0;color:var(--text);background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:1px;padding:6px 8px;display:flex}.chat-row:disabled{opacity:.5;cursor:default}.chat-row-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12.5px;font-weight:600;overflow:hidden}.chat-row-meta{color:var(--dim);font-size:11px}.chat-row-actions{gap:4px;padding-right:6px;display:inline-flex}.chat-history-buttons{gap:4px;display:inline-flex}.btn.hb{align-items:center;gap:5px;padding:4px 8px;display:inline-flex}.btn.hb.on{color:#0369a1;background:#0284c71f;border-color:#0284c799}.hb-fails{color:#fff;text-align:center;background:#dc2626;border-radius:999px;min-width:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px}.hb-card{pointer-events:none;width:320px;max-width:calc(100vw - 16px);padding:10px 12px}.hb-card p{color:var(--text);margin:6px 0 0;font-size:11.5px;line-height:1.45}.hb-card p.dim{color:var(--dim)}.hb-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.hb-title b{font-size:12.5px}.hb-state{background:var(--ctl);color:var(--dim);border:1px solid var(--border);border-radius:999px;padding:0 8px;font-size:10.5px;font-weight:700}.hb-state.on{color:#0369a1;background:#0284c724;border-color:#0284c780}.conn-btn{position:relative}.conn-dot{border:1px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:2px;right:3px}.conn-dot.ready{background:#16a34a}.conn-dot.attention{background:#d97706}.conn-menu{width:330px;max-width:calc(100vw - 16px)}.conn-menu ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.conn-menu li{border-radius:6px;justify-content:space-between;align-items:flex-start;gap:10px;padding:6px 8px;display:flex}.conn-menu li.attention{background:#d9770614}.conn-name{flex-direction:column;gap:1px;min-width:0;display:flex}.conn-name b{color:var(--text);font-size:12.5px;font-weight:600}.conn-name i{color:var(--dim);font-size:11px;font-style:normal;line-height:1.4}.conn-state{white-space:nowrap;border:1px solid var(--border);background:var(--ctl);color:var(--dim);border-radius:999px;flex:none;padding:1px 8px;font-size:10.5px;font-weight:700}.conn-state.ready{color:#15803d;background:#16a34a1f;border-color:#16a34a73}.conn-state.attention{color:#b45309;background:#d9770624;border-color:#d9770680}.cmds button.active{background:var(--tint,#0284c71a)}.cmds button{align-items:baseline}.cmd-card{color:var(--dim);background:#0284c712;border:1px solid #0284c759;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:5px 8px;font-size:11.5px;display:flex}.cmd-card code{color:#0369a1;font-size:11.5px;font-weight:700}.cmd-card em{color:var(--faint,var(--dim));font-style:normal}.cmd-card>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:100%;display:-webkit-box;overflow:hidden}.cmds{overflow-x:hidden}.cmds button{flex-direction:column;flex:none;align-items:flex-start;gap:1px;width:100%;font-weight:600}.cmds button span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:400;display:-webkit-box;overflow:hidden}.modal-backdrop{z-index:100;background:#0f1b2d73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel,#fff);border-radius:14px;flex-direction:column;gap:10px;width:min(980px,100%);max-height:100%;padding:14px;display:flex;overflow:hidden;box-shadow:0 20px 60px #0f1b2d59}.modal-head{align-items:center;gap:10px;font-size:14px;display:flex}.modal-head .icon-btn{margin-left:auto}.render-make{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.render-make label{color:var(--dim);flex-direction:column;gap:2px;font-size:11px;display:flex}.render-make select{width:auto;min-width:120px}.render-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.render-card{border:1px solid var(--border);background:var(--ctl);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:2px;width:100%;padding:6px;display:flex}.render-card:hover{border-color:#0284c799}.render-card img{aspect-ratio:4/3;object-fit:contain;background:var(--surface);border-radius:6px;width:100%}.render-card-title{color:var(--text);font-size:12.5px;font-weight:600}.render-card-meta{color:var(--dim);font-size:11px}.render-large{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.render-large-bar{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.render-large-bar .grow{flex:1}.render-large img{object-fit:contain;border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;max-height:62vh}.render-empty{color:var(--dim);padding:24px 8px;font-size:12.5px}.render-note{font-size:11px}.conn-menu li.conn-key{padding:0 8px 8px;display:block}.key-form{flex-direction:column;gap:5px;font-size:11.5px;display:flex}.key-actions{color:var(--dim);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.key-row{align-items:center;gap:6px;display:flex}.key-row input{flex:1;min-width:0}.key-form .ok{color:#15803d}.key-form .fail{color:#b91c1c;line-height:1.4}.chat .panel-title .fold-btn{width:22px;height:22px;font-size:11px}.chat.folded{max-height:none;padding-top:8px;padding-bottom:8px;display:flex}.chat.folded .panel-title{flex-wrap:nowrap}.fold-line{text-align:left;min-width:0;color:var(--dim);cursor:pointer;text-transform:none;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;padding:0 6px;font-size:11.5px;font-weight:500;overflow:hidden}.fold-line:hover{color:#0369a1}.sketch-pad{width:min(1100px,100%)}.sketch-tools{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.sketch-group{align-items:center;gap:4px;display:inline-flex}.sketch-group .btn.on{color:#0369a1;background:#0284c71f;border-color:#0284c799}.sketch-group .dot{background:currentColor;border-radius:50%;display:inline-block}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0;box-shadow:0 0 0 1px #0f1b2d40}.swatch.on{border-color:#fff;box-shadow:0 0 0 2px #0284c7}.sketch-tools .grow,.sketch-foot .grow{flex:1}.sketch-stage{border:1px solid var(--border);background:var(--surface);border-radius:10px;line-height:0;position:relative;overflow:hidden}.sketch-stage canvas{aspect-ratio:1280/800;touch-action:none;cursor:crosshair;object-fit:contain;width:100%;height:auto;max-height:60vh;display:block}.sketch-text{background:var(--surface-glass);border:1px dashed #0284c7;min-width:140px;padding:0 2px;font-family:sans-serif;line-height:1.3;position:absolute;transform:translate(0)}.sketch-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tutorials{width:min(620px,100%)}.tutorial-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.tutorial-card{border:1px solid var(--border);background:var(--ctl);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:3px;width:100%;height:100%;padding:10px 12px;display:flex}.tutorial-card:hover{border-color:#0284c799}.tutorial-title{color:var(--text);font-size:13px;font-weight:600}.tutorial-title .tick{color:#15803d;margin-right:6px;font-style:normal;font-weight:700}.tutorial-blurb{color:var(--dim);font-size:12px;line-height:1.4}.tutorial-meta{color:var(--faint,var(--dim));font-size:11px}.tour-ring{z-index:120;pointer-events:none;border-radius:10px;transition:left .15s,top .15s,width .15s,height .15s;position:fixed;box-shadow:0 0 0 9999px #0f1b2d80,0 0 0 3px #f59e0b}.tour-dim{z-index:120;pointer-events:none;background:#0f1b2d80;position:fixed;inset:0}.tour-card{z-index:121;background:var(--surface);max-width:calc(100vw - 24px);color:var(--text);border-radius:12px;flex-direction:column;gap:6px;padding:12px 14px;font-size:12.5px;line-height:1.5;display:flex;position:fixed;box-shadow:0 12px 40px #0f1b2d66}.tour-card p{margin:0}.tour-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tour-title{font-size:14px}.tour-example{text-align:left;white-space:normal;line-height:1.35}.tour-nav{align-items:center;gap:8px;margin-top:4px;display:flex}.tour-nav .grow{flex:1}.chat-empty>.link{margin-top:6px;display:block}.projects{width:min(980px,100%)}.projects-bar{align-items:center;gap:8px;display:flex}.projects-bar input{flex:1;min-width:0}.project-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.project-card{border:1px solid var(--border);background:var(--ctl);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex}.project-card.open{background:#0284c712;border-color:#0284c7a6}.project-open{text-align:left;cursor:pointer;color:var(--text);background:0 0;border:0;flex-direction:column;gap:3px;padding:0;display:flex}.project-open img,.project-empty{aspect-ratio:4/3;object-fit:contain;background:var(--surface);width:100%;color:var(--faint,var(--dim));border-radius:8px;justify-content:center;align-items:center;font-size:12px;display:flex}.project-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.project-meta{color:var(--dim);font-size:11px}.project-actions{gap:12px;font-size:12px;display:flex}.project-actions .link.danger{color:#b91c1c;font-weight:600}.project-actions .link.del{color:#b91c1c;margin-left:auto}.project-edit{flex-direction:column;gap:4px;display:flex}.project-edit-buttons{gap:6px;display:flex}.adjacency-rules{flex-direction:column;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.program-table .cell{width:100%;min-width:0;color:inherit;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;padding:2px 4px}.program-table .cell:hover,.program-table .cell:focus{border-color:var(--border);background:var(--ctl)}.program-table .cell.num{text-align:right;width:5em}.program-table .subtotal td{border-top:1px solid var(--border);font-weight:600}.sitemap-picture{flex-direction:column;gap:6px;display:flex}.sitemap-frame{border:1px solid var(--border);border-radius:8px;line-height:0;position:relative;overflow:hidden}.sitemap-frame img{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.sitemap-overlay{width:100%;height:100%;position:absolute;inset:0}.sitemap-overlay.drawing{cursor:crosshair}.overview-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.overview-row{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0;grid-template-columns:1.4em 1fr;column-gap:6px;padding:4px 2px;display:grid}.overview-row .sub{grid-column:2}.overview-title{font-size:13px;font-weight:600}.overview-mark{text-align:center}.overview-fail .overview-mark{color:#b91c1c}.overview-todo .overview-mark{color:#b45309}.overview-ok .overview-mark{color:#15803d}.overview-na{opacity:.6}.overview-items{flex-direction:column;gap:2px;margin:0 0 4px 1.9em;display:flex}.overview-next{margin:0 0 6px 1.2em;padding:0;font-size:12px}.imagetools-result{border:1px solid #cbd5e1;border-radius:4px;max-width:100%;margin:6px 0;display:block}.imagetools-row{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0;display:flex}.concept-group.dim{opacity:.3}.variants-cards{gap:8px;padding:4px 0 8px;display:flex;overflow-x:auto}.variant-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;flex:0 0 210px;gap:4px;padding:8px;display:flex}.variant-card svg{background:#f4f6f8;border-radius:6px;width:100%;height:150px}.variants-scroll{overflow-x:auto}.variants-table{border-collapse:collapse;min-width:100%;font-size:11.5px}.variants-table th,.variants-table td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:3px 6px}.variants-table th:first-child,.variants-table thead th{text-align:left;font-weight:600}.variants-table td.extreme{font-weight:700;text-decoration:underline}.toolbar{gap:8px;padding:8px 16px}.toolbar-gap{width:12px}.dd{display:inline-flex;position:relative}.dd-button{gap:5px}.dd-pop{z-index:40;background:var(--surface);border:1px solid var(--border-hover);border-radius:12px;flex-direction:column;gap:1px;min-width:230px;max-height:70vh;padding:6px;display:none;position:absolute;top:calc(100% + 6px);overflow-y:auto;box-shadow:0 12px 40px #0f1b2d38}.dd-pop.left{left:0}.dd-pop.right{right:0}.dd.open .dd-pop{display:flex}.dd-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:12.5px;text-decoration:none;display:block}.dd-item:hover{background:var(--tint);color:var(--cyan)}.dd-item.danger{color:var(--red)}.dd-label{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:8px 10px 3px;font-size:10px;font-weight:700}.panelgroup{display:contents}.panelgroup[hidden]{display:none}.grouptabs{flex-wrap:wrap;gap:4px;padding:2px 0 4px;display:flex}.grouptabs button{border:1px solid var(--border);background:var(--surface);color:var(--dim);border-radius:999px;padding:4px 11px;font-size:12px}.grouptabs button:hover{border-color:var(--border-hover);color:var(--text)}.grouptabs button.on{background:var(--tint);border-color:var(--border-hover);color:var(--cyan);font-weight:600}.sheetnav{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex:0 0 190px;gap:14px;padding:12px 10px;display:flex;overflow-y:auto}.sheetnav-title{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:0 8px 4px;font-size:10px;font-weight:700}.sheetnav-item{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;padding:6px 8px;font-size:12.5px;display:flex}.sheetnav-item small{color:var(--faint);font-size:10.5px}.sheetnav-item:hover{background:var(--ctl)}.sheetnav-item.on{background:var(--tint);color:var(--cyan);font-weight:600}.sheet-head{align-items:baseline;gap:12px;padding:12px 16px 0;display:flex}.sheet-head strong{font-size:15px}.drawing-controls{padding:8px 16px 10px}.sheet{background:#dfe5ec}.sheet.dark{background:#000}.sheet.dark img{filter:invert()hue-rotate(180deg);background:#fff;box-shadow:0 0 0 1px #ffffff2e}:root[data-theme=dark] .sheet:not(.dark){background:#1a222d}@media (width<=900px){.drawings{flex-direction:column}.sheetnav{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;flex-basis:auto;overflow-x:auto}}.dd-wrap{display:inline-flex}.planrow{flex:1;min-height:0;display:flex}.planmain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.roomdesign{border-left:1px solid var(--line,#d7dbe0);flex-direction:column;flex:none;gap:8px;width:300px;padding:12px;display:flex;overflow-y:auto}.roomdesign-list{flex-direction:column;gap:8px;display:flex}.roomdesign .swatch{border:1px solid #9aa3ad;border-radius:3px;flex:none;width:18px;height:18px;display:inline-block}.roomdesign .concept-group{flex-direction:row;flex:none;display:flex}.roomdesign .concept-group i{width:16px;height:16px;display:inline-block}@media (width<=1100px){.roomdesign{width:240px}}.roomfurn{flex-direction:column;gap:6px;display:flex}.roomfurn-piece{border-top:1px solid var(--line,#d7dbe0);flex-direction:column;gap:3px;padding-top:4px;display:flex}.roomfurn-piece select{flex:1;min-width:0}.viewer-inside-panel{background:var(--panel,#fff);border:1px solid var(--line,#d7dbe0);z-index:5;border-radius:8px;width:270px;padding:10px;position:absolute;top:130px;bottom:36px;right:12px;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.viewer-inside-panel[hidden]{display:none}.roomfurn-piece.on{background:#f59e0b1f;border-radius:6px;outline:1px solid #f59e0b;padding:6px}.media-dialog{z-index:20;background:#0f17208c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.media-box{background:var(--panel,#fff);border-radius:10px;flex-direction:column;gap:8px;max-width:min(92%,900px);padding:12px;display:flex;box-shadow:0 8px 32px #0000004d}.media-pano,.media-video{aspect-ratio:16/9;cursor:grab;touch-action:none;background:#000;border-radius:6px;width:100%;max-height:70vh}.media-video{cursor:default;aspect-ratio:auto;width:auto;max-width:100%;margin:0 auto}.recording-note{align-items:center;gap:6px;display:inline-flex}.recording-note:before{content:"";background:#dc2626;border-radius:50%;width:9px;height:9px}.media-shield{z-index:15;cursor:progress;color:#fff;text-shadow:0 1px 3px #000000b3;background:#0f17201f;justify-content:center;align-items:flex-end;gap:10px;padding-bottom:48px;font-weight:600;display:flex;position:absolute;inset:0}.electrical{flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow:hidden}.electrical-side{flex:none;width:430px;overflow-y:auto}.electrical-sheet{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex;overflow:auto}.electrical-img{border:1px solid var(--line,#d7dbe0);background:#fff;border-radius:6px;width:100%;height:auto}@media (width<=1100px){.electrical{flex-direction:column;overflow-y:auto}.electrical-side{width:auto;overflow:visible}}.sheet-wrap{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.sheet-view{border:1px solid var(--line,#d7dbe0);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#fff;border-radius:6px;flex:1;min-height:420px;position:relative;overflow:hidden}.sheet-view:active{cursor:grabbing}.sheet-canvas{transform-origin:0 0;width:100%}.sheet-canvas svg{width:100%;height:auto;display:block}.sheet-canvas svg [data-ref]{cursor:pointer;pointer-events:all}.sheet-canvas svg [data-ref]:hover{stroke:#e11d48}.sheet-legs{border-collapse:collapse;width:100%;font-size:12px}.sheet-legs td,.sheet-legs th{text-align:left;padding:2px 3px}.sheet-legs select,.sheet-legs input{width:100%;min-width:0}.sheet-card{z-index:6;background:var(--panel,#fff);border:1px solid var(--line,#d7dbe0);cursor:default;-webkit-user-select:text;user-select:text;border-radius:8px;flex-direction:column;gap:6px;width:330px;max-height:calc(100% - 8px);padding:10px;display:flex;position:absolute;overflow-y:auto;box-shadow:0 6px 24px #00000038}.workspace{grid-template-columns:var(--left-w,270px) minmax(0, 1fr) var(--right-w,330px);position:relative}.splitter{cursor:col-resize;z-index:6;touch-action:none;background:0 0;flex:none;width:9px;position:relative}.splitter:after{content:"";background:0 0;width:1px;position:absolute;top:0;bottom:0;left:4px}.splitter:hover:after,.splitter:focus-visible:after,.splitter.drag:after{background:var(--accent,#0e7490);width:2px;left:3px}.splitter.abs{position:absolute;top:0;bottom:0}.splitter.abs.left{left:calc(var(--left-w,270px) - 5px)}.splitter.abs.right{left:calc(100% - var(--right-w,330px) - 5px)}@media (width<=1000px){.splitter.abs{display:none}.workspace{grid-template-columns:minmax(0,1fr)}}.electrical-side{width:var(--electrical-w,430px)}.side.off{visibility:hidden;min-width:0;padding:0;overflow:hidden}.electrical-side[hidden]{display:none}.splitter{background:linear-gradient(to right, transparent 3px, var(--line,#d7dbe0) 3px, var(--line,#d7dbe0) 5px, transparent 5px)}.splitter-toggle{cursor:pointer;background:var(--panel,#fff);width:17px;height:46px;color:var(--ink,#334155);border:1px solid var(--line,#d7dbe0);z-index:7;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:50%;left:-4px;transform:translateY(-50%)}.splitter-toggle:hover{background:var(--accent,#0e7490);color:#fff;border-color:var(--accent,#0e7490)}.splitter.collapsed{cursor:default}.splitter.abs.left.collapsed{left:0}.splitter.abs.right.collapsed{left:calc(100% - 9px)}.splitter.abs.right.collapsed .splitter-toggle{left:-8px}.switch.busy{opacity:.6;cursor:progress}.layouts-overlay{z-index:60;background:#0f1b2d73;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.layouts-dialog{background:var(--surface,#fff);border:1px solid var(--border-hover,#cbd5e1);border-radius:12px;flex-direction:column;gap:10px;width:min(1100px,100%);padding:16px;display:flex;box-shadow:0 16px 48px #0f1b2d4d}.layouts-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.layout-card{border:1px solid var(--border,#d7dbe0);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.layout-preview{background:#22c55e0d;border-radius:6px;width:100%;height:150px}.layout-card ul{margin:4px 0 0 16px;padding:0}.forms-canvas{border:1px solid var(--line,#d7dbe0);touch-action:none;background:#f7f9fb;border-radius:6px;flex:1;min-height:320px;position:relative;overflow:hidden}.forms-canvas svg{-webkit-user-select:none;user-select:none;display:block}.forms-canvas .forms-fit{position:absolute;top:8px;right:8px}.forms-canvas .forms-hint{background:#fffc;border-radius:4px;padding:2px 6px;position:absolute;bottom:6px;left:8px}.row.on{background:#0b66d614;border-radius:4px}.lang-switch{border:1px solid var(--border,#cbd2d9);background:var(--panel,#fff);height:32px;color:inherit;font:inherit;cursor:pointer;border-radius:6px;padding:0 8px}.dv{flex-direction:column;flex:1;gap:6px;min-height:0;padding:8px;display:flex}.dv-top{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dv-field{white-space:nowrap;color:var(--dim);align-items:center;gap:6px;font-size:12px;display:flex}.dv-field select{padding:4px 6px}.dv-msg{background:var(--panel);border:1px solid var(--border-hover);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:12px}.dv-body{flex:1;gap:8px;min-height:0;display:flex}.dv-slot{flex:none}.rb{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:6px;overflow:hidden}.rb-tabs{border-bottom:1px solid var(--border);align-items:center;gap:2px;padding:3px 6px 0;display:flex}.rb-tabs button{color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:6px 6px 0 0;padding:4px 12px;font-size:12px;font-weight:600}.rb-tabs button.on{color:inherit;box-shadow:inset 0 -2px 0 var(--border-hover);background:#0284c714}.rb-hint{color:var(--dim);margin-left:auto;padding-right:6px;font-size:11px}.rb-body{align-items:stretch;display:flex;overflow-x:auto}.rb-panel{border-right:1px solid var(--border);flex-direction:column;flex:none;justify-content:space-between;padding:4px 8px 0;display:flex}.rb-tools{flex:1;align-items:stretch;gap:2px;display:flex}.rb-ptitle{text-align:center;color:var(--dim);border-top:1px solid var(--border);margin-top:2px;padding:2px 0 3px;font-size:10px}.rb-tool{color:inherit;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;padding:1px 6px;font-size:11px;display:flex}.rb-tool:hover{border-color:var(--border-hover);background:#0284c717}.rb-tool.on{border-color:var(--border-hover);background:#0284c733}.rb-tool.big{flex-direction:column;justify-content:center;gap:1px;min-width:54px;padding:3px 5px}.rb-tool.big .rb-glyph{font-size:26px;line-height:30px}.rb-glyph{text-align:center;flex:none;width:16px;font-size:14px}.rb-small{grid-template-rows:repeat(3,auto);grid-auto-flow:column;align-content:center;gap:0 6px;display:grid}.rb-layer{flex-direction:column;justify-content:center;gap:4px;min-width:150px}.rb-row{color:var(--dim);align-items:center;gap:6px;font-size:11px;display:flex}.rb-row select{flex:1;min-width:0;padding:2px;font-size:11px}.rb-wide{border:1px solid var(--border);color:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:6px;padding:2px 8px;font-size:11px}.rb-wide:hover{border-color:var(--border-hover)}.dv-gtitle{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:4px;font-size:10px;font-weight:700}.dv-centre{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.dv-canvas{border:1px solid var(--border);background:#fbfbf8;border-radius:10px;flex:1;min-height:240px;position:relative;overflow:hidden}.dv-canvas canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.dv-cmd{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.dv-history{color:var(--dim);min-height:18px;max-height:76px;overflow:hidden}.dv-line{align-items:center;gap:8px;display:flex}.dv-prompt{white-space:nowrap;color:var(--accent,#0b6bcb);font-weight:600}.dv-line input{width:100%;min-width:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:1;padding:3px 0}.dv-status{flex-wrap:wrap;align-items:center;gap:4px;font-size:11px;display:flex}.dv-coords{min-width:120px;color:var(--dim);font-family:ui-monospace,Consolas,monospace}.dv-sw{border:1px solid var(--border);color:var(--dim);cursor:pointer;background:0 0;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:700}.dv-sw.on{color:inherit;border-color:var(--border-hover);background:#0284c72e}.dv-snaps{position:relative}.dv-snaps summary{cursor:pointer;color:var(--dim);padding:2px 6px}.dv-snaplist{z-index:5;background:var(--panel);border:1px solid var(--border-hover);border-radius:8px;flex-direction:column;gap:2px;min-width:150px;padding:6px 10px;display:flex;position:absolute;bottom:24px;left:0}.dv-count{color:var(--dim);margin-left:auto}.dv-side{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:none;width:290px;min-height:0;display:flex;overflow:hidden}.dv-tabs{border-bottom:1px solid var(--border);display:flex}.dv-tabs button{color:var(--dim);cursor:pointer;background:0 0;border:0;flex:1;padding:7px;font-size:12px;font-weight:600}.dv-tabs button.on{color:inherit;box-shadow:inset 0 -2px 0 var(--border-hover)}.dv-layers,.dv-props{flex-direction:column;gap:4px;padding:8px;display:flex;overflow-y:auto}.dv-layer{border-radius:6px;align-items:center;gap:4px;padding:2px 3px;font-size:12px;display:flex}.dv-layer.cur{background:#0284c71f}.dv-layer input[type=color]{background:0 0;border:0;flex:none;width:22px;height:22px;padding:0}.dv-layer select{max-width:74px;padding:1px;font-size:11px}.dv-lname{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dv-mini{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:1px 3px;font-size:12px}.dv-mini:hover{background:#0284c726}.dv-num{width:58px}.dv-newlayer{gap:4px;margin-top:6px;display:flex}.dv-newlayer input{flex:1;min-width:0}.dv-prop{color:var(--dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.dv-prop input:not([type=checkbox]):not([type=color]),.dv-prop select{width:130px;font-size:12px}.dv-hint{color:var(--dim);font-size:12px;line-height:1.5}.dv-actions{gap:6px;margin-top:6px;display:flex}@media (width<=900px){.dv-body{flex-direction:column}.dv-side{width:auto;max-height:260px}}.rb-fold{color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 8px;font-size:13px}.rb-fold:hover{background:#0284c71f}.rb-body[hidden]{display:none}.d3-overlay{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.d3-bar{z-index:5;background:var(--panel);border:1px solid var(--border-hover);border-radius:10px;flex-direction:column;gap:4px;padding:6px 10px;font-size:12px;display:flex;position:absolute;bottom:10px;left:12px;right:12px}.d3-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.d3-top label{color:var(--dim);align-items:center;gap:6px;display:flex}.d3-hint{color:var(--dim);flex:1;min-width:160px;font-size:11px}.d3-line{align-items:center;gap:8px;font-family:ui-monospace,Consolas,monospace;display:flex}.d3-line input{min-width:0;color:inherit;font:inherit;background:0 0;border:0;outline:none;flex:1;padding:3px 0}.dv-field .dv-num{width:72px}.opening{border:1px solid var(--border-hover);background:var(--panel);border-radius:8px;margin:8px 12px 0;padding:8px 12px;font-size:13px}.rb-pick{flex:1;align-items:center;gap:4px;display:flex}.rb-pick input[type=color]{background:0 0;border:0;width:22px;height:20px;padding:0}.rb-chips{grid-template-columns:repeat(3,auto);gap:2px 4px;display:grid}.rb-chip{border:1px solid var(--border);color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border-radius:5px;padding:1px 6px;font-size:10px}.rb-chip:hover{border-color:var(--border-hover);background:#0284c717}.rb-panel>.rb-row{padding:2px 0}.rb-small.dense{grid-template-rows:repeat(4,auto)}.rb-small.dense .rb-tool{padding-top:0;padding-bottom:0}.exterior-menu{flex-direction:column;gap:8px;width:min(380px,86vw);padding:4px;display:flex}.mep-panel{width:250px;max-height:calc(100% - 60px);color:var(--dim);border:1px solid var(--border);z-index:3;background:#ffffffeb;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;font-size:11.5px;display:flex;position:absolute;top:10px;left:12px;overflow-y:auto}.mep-layer{align-items:center;gap:6px;display:flex}.mep-layer .sub{margin-left:auto}.mep-swatch{border-radius:3px;flex:none;width:12px;height:12px}.mep-bad{color:var(--red);margin-left:auto;font-weight:600}.mep-clashes{flex-direction:column;gap:1px;max-height:140px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.mep-clash{width:100%;color:var(--red);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 6px;display:block}.mep-clash:hover{background:#dc26261a}.mep-clash.on{color:var(--text);background:#facc1559;font-weight:600}.mep-step{justify-content:space-between;align-items:center;gap:6px;display:flex}.mep-clash-row{align-items:center;gap:4px;display:flex}.mep-clash-row .mep-clash{flex:1;min-width:0}.mep-clash.done{opacity:.55;text-decoration:line-through}.handdrawn-list{margin:6px 0;padding:0;list-style:none}.handdrawn-row{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0;display:flex}.handdrawn-row .btn{margin-left:auto}.cm{flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow:hidden}.cm-main{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex;overflow:auto}.cm-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cm-head h2{margin:0;font-size:20px}.cm-head .sub{margin:2px 0 0}.cm-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cm-tools input[type=search]{min-width:180px}.cm-sum{gap:6px;display:flex}.chip.bad,.cm-meta .bad,.cm-table td.bad{color:var(--red);border-color:#dc262666}.cm-table td.good{color:var(--green)}.cm-meta .soon{color:var(--amber)}.cm-error{color:var(--red);background:var(--ctl);border:1px solid #dc262666;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.cm-board{grid-template-columns:repeat(5,minmax(210px,1fr));align-items:start;gap:10px;min-height:0;display:grid}.cm-col{background:var(--ctl);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;min-height:120px;padding:8px;display:flex}.cm-col.over{border-color:var(--border-hover);background:var(--tint)}.cm-col h3{align-items:center;gap:6px;margin:0 0 2px;font-size:13px;display:flex}.cm-col h3 b{color:var(--dim);background:var(--panel);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:0 7px;font-size:11px;font-weight:600}.cm-col .dot{background:var(--dim);border-radius:50%;width:9px;height:9px;display:inline-block}.cm-col.tone-cyan .dot{background:var(--cyan)}.cm-col.tone-amber .dot{background:var(--amber)}.cm-col.tone-green .dot{background:var(--green)}.cm-col.tone-red .dot{background:var(--red)}.cm-empty{color:var(--faint);text-align:center;padding:14px 0;font-size:12px}.cm-card{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--dim);cursor:pointer;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;display:flex}.tone-cyan .cm-card{border-left-color:var(--cyan)}.tone-amber .cm-card{border-left-color:var(--amber)}.tone-green .cm-card{border-left-color:var(--green)}.tone-red .cm-card{border-left-color:var(--red)}.cm-card:hover,.cm-card.on{border-color:var(--border-hover)}.cm-card.drag{opacity:.45}.cm-card header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.cm-card header b{font-size:13px}.cm-card p{color:var(--dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:11.5px;display:-webkit-box;overflow:hidden}.cm-meta{color:var(--dim);flex-wrap:wrap;gap:10px;font-size:11.5px;display:flex}.cm-card footer{justify-content:space-between;align-items:center;gap:6px;display:flex}.cm-card footer .chip{margin-right:4px}.cm-detail{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:none;gap:8px;width:380px;padding:12px;display:flex;overflow:auto}.cm-detail header{align-items:center;gap:8px;display:flex}.cm-detail header .icon-btn{margin-left:auto}.cm-title{font-size:16px;font-weight:600}.cm-status{font-weight:600}.cm-status.s-requested{color:var(--cyan)}.cm-status.s-in_review{color:var(--amber)}.cm-status.s-approved,.cm-status.s-implemented{color:var(--green)}.cm-status.s-rejected{color:var(--red)}.cm-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.cm-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.cm-tabs{border-bottom:1px solid var(--border);gap:2px;margin-top:4px;display:flex}.cm-tabs button{color:var(--dim);cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;padding:6px 8px;font-size:12.5px}.cm-tabs button.on{color:var(--cyan);border-bottom-color:var(--cyan)}.cm-plans{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0;display:grid}.cm-plans figure{border:1px solid var(--border);background:#fff;border-radius:8px;margin:0;overflow:hidden}.cm-plans figcaption{background:var(--ctl);color:var(--dim);padding:3px 6px;font-size:11px}.cm-plans img{aspect-ratio:1.45;object-fit:contain;background:#fff;width:100%;display:block}.cm-noplan{aspect-ratio:1.45;color:var(--faint);justify-content:center;align-items:center;font-size:12px;display:flex}.cm-table{border-collapse:collapse;width:100%;font-size:12px}.cm-table th,.cm-table td{text-align:left;border-bottom:1px solid var(--border);padding:3px 6px}.cm-comment{border-bottom:1px solid var(--border);padding:6px 0}.cm-comment p{white-space:pre-wrap;margin:2px 0 0}.cm-history{flex-direction:column;gap:4px;margin:0;padding-left:16px;font-size:12.5px;display:flex}.cm-new{flex-direction:column;gap:10px;width:min(560px,94vw);padding:14px;display:flex}@media (width<=1100px){.cm{flex-direction:column;overflow:auto}.cm-detail{width:auto}.cm-board{grid-template-columns:repeat(5,230px);overflow-x:auto}}.dl{flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow:hidden}.dl-main{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex;overflow:auto}.dl-note{border:1px solid var(--border);background:var(--tint);color:var(--dim);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.dl-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.dl-tabs button{color:var(--dim);cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;padding:7px 12px;font-size:13px}.dl-tabs button.on{color:var(--cyan);border-bottom-color:var(--cyan);font-weight:600}.dl-tabs button:disabled{opacity:.4;cursor:default}.dl-tabs i{color:var(--faint);margin-left:3px;font-size:11px;font-style:normal}.dl-progress{background:var(--ctl);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.dl-progress>div:first-child{flex-direction:column;flex:1;gap:6px;min-width:220px;display:flex}.dl-progress b{font-size:16px}.dl-bar{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.dl-bar span{background:var(--green);border-radius:999px;height:100%;display:block}.dl-counts{flex-wrap:wrap;gap:8px;display:flex}.dl-counts span{border:1px solid var(--border);background:var(--panel);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;display:flex}.dl-counts i,.dl-pill{--tone:var(--dim)}.dl-counts i{background:var(--tone);border-radius:50%;width:9px;height:9px;display:inline-block}.s-approved{--tone:var(--green)}.s-in_review{--tone:var(--amber)}.s-pending{--tone:var(--red)}.dl-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dl-filters input[type=search]{min-width:220px}.dl-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;font-size:13px}.dl-table th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--border);background:var(--ctl);padding:8px 10px;font-size:10.5px}.dl-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.dl-table tbody tr{cursor:pointer}.dl-table tbody tr:hover,.dl-table tbody tr.on{background:var(--tint)}.dl-table small{color:var(--faint)}.dl-comment{color:var(--dim);max-width:240px}.dl-none{text-align:center;color:var(--faint);padding:18px}.dl-pill{border:1px solid var(--tone);color:var(--tone);background:var(--panel);border-radius:999px;padding:3px 8px;font-weight:600}.dl-stale{color:var(--amber);margin-top:2px;font-size:11px;display:block}.dl-detail{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:none;gap:8px;width:380px;padding:12px;display:flex;overflow:auto}.dl-detail header{justify-content:space-between;align-items:center;display:flex}.dl-preview{border:1px solid var(--border);background:#fff;border-radius:8px;margin:0;overflow:hidden}.dl-preview img{aspect-ratio:1.45;object-fit:contain;background:#fff;width:100%;display:block}.dl-preview figcaption{background:var(--ctl);color:var(--dim);padding:4px 8px;font-size:11px}@media (width<=1100px){.dl{flex-direction:column;overflow:auto}.dl-detail{width:auto}}.cm-tools input[type=search],.dl-filters input[type=search]{flex:220px;width:auto}.cm-tools select,.dl-filters select{width:auto}.fc{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow:auto}.fc-area{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.fc-area .field{min-width:220px}.fc-area-note{flex-direction:column;gap:2px;padding-bottom:4px;display:flex}.fc-area-note b{font-size:18px}.fc-picker{background:var(--ctl);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.fc-picker h3{margin:0;font-size:13px}.fc-group{flex-direction:column;gap:4px;display:flex}.fc-group>div{flex-wrap:wrap;gap:6px;display:flex}.fc-chip{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 4px;font-size:12px;display:inline-flex}.fc-chip i{border:1px solid var(--border);border-radius:50%;width:18px;height:18px;display:inline-block}.fc-chip:hover{border-color:var(--border-hover)}.fc-chip.on{border-color:var(--cyan);background:var(--tint);font-weight:600}.fc-cards{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:start;gap:12px;display:grid}.fc-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.fc-card.cheap{border-color:var(--green)}.fc-card header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.fc-swatch{border:1px solid var(--border);border-radius:8px;height:120px;position:relative}.fc-swatch span{background:var(--green);color:#fff;border-radius:999px;padding:2px 8px;font-size:11px;position:absolute;top:8px;left:8px}.fc-price label{flex-direction:column;gap:3px;display:flex}.fc-price label>span:first-child{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);font-size:10px}.fc-rate{align-items:center;gap:6px;display:flex}.fc-rate input{width:90px}.fc-rate .fc-cur{text-transform:uppercase;width:56px}.fc-cost{margin-top:4px;font-size:18px;font-weight:700}.fc-cost small{color:var(--dim);font-size:11.5px;font-weight:400}.fc-card dl{grid-template-columns:1fr;gap:1px;margin:0;font-size:12px;display:grid}.fc-card dt{letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin-top:6px;font-size:10.5px}.fc-card dd{color:var(--text);margin:0}.fc-level{border:1px solid var(--border);border-radius:999px;margin-right:3px;padding:0 6px;font-weight:700}.fc-level.l-low,.fc-level.d-high{color:var(--green);border-color:#15803d73}.fc-level.l-medium,.fc-level.d-medium{color:var(--amber);border-color:#b4530973}.fc-level.l-high,.fc-level.d-low{color:var(--red);border-color:#dc262673}.fc-summary h3{margin:4px 0;font-size:14px}.fc-feature{white-space:nowrap;font-weight:600}.fc-summary .cm-table td,.fc-summary .cm-table th{vertical-align:top;padding:5px 8px}.pg{flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow:hidden}.pg-main{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex;overflow:auto}.pg-unit{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.pg-unit button{background:var(--panel);font:inherit;color:var(--dim);cursor:pointer;border:0;padding:6px 12px;font-size:12.5px}.pg-unit button.on{background:var(--green);color:#fff;font-weight:600}.pg-set{background:var(--ctl);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:8px 12px;display:flex}.pg-set .field{min-width:150px}.pg-set input,.pg-set select{width:auto}.pg-holidays{flex:1;min-width:260px}.pg-hol-row{gap:6px;display:flex}.pg-hol-row input{flex:1}.pg-set-actions{gap:6px;margin-left:auto;display:flex}.pg-info{color:var(--dim);flex-wrap:wrap;gap:18px;font-size:13px;display:flex}.pg-info b{color:var(--text)}.pg-info .bad{color:var(--red);font-weight:600}.pg-chart-wrap{border:1px solid var(--border);background:var(--panel);border-radius:10px;overflow-x:auto}.pg-chart{flex-direction:column;display:flex;position:relative}.pg-row{border-bottom:1px solid var(--border);cursor:pointer;min-height:40px;display:flex}.pg-row:hover,.pg-row.on{background:var(--tint)}.pg-head{background:var(--ctl);cursor:default;min-height:44px}.pg-head:hover{background:var(--ctl)}.pg-label{background:inherit;z-index:2;border-right:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;flex:none;align-items:center;gap:8px;width:250px;padding:6px 10px;font-size:13px;display:flex;position:sticky;left:0;overflow:hidden}.pg-row:not(.pg-head) .pg-label{background:var(--panel)}.pg-row:hover .pg-label,.pg-row.on .pg-label{background:var(--tint)}.pg-label .crit{font-weight:700}.pg-lane{flex:1;min-width:0;display:flex;position:relative}.pg-col{border-left:1px solid var(--border);flex-direction:column;flex:1;justify-content:center;align-items:center;font-size:11px;display:flex}.pg-col small{color:var(--faint);font-size:10px}.pg-cell{border-left:1px solid var(--border);flex:1}.pg-bar{border-radius:6px;height:22px;display:block;position:absolute;top:9px;overflow:hidden}.pg-bar span{height:100%;display:block}.pg-bar em{color:#fff;font-size:10px;font-style:normal;font-weight:700;position:absolute;top:2px;right:4px}.pg-bar.planned{background:#6b7280}.pg-bar.doing{background:#a3d17a}.pg-bar.doing span,.pg-bar.done{background:#3f8f2b}.pg-bar.late{background:#e08b86}.pg-bar.late span{background:#c0392b}.pg-bar.planned span{background:#374151}.pg-bar.crit{box-shadow:0 0 0 2px #dc2626}.pg-base{opacity:.7;background:#111827;border-radius:2px;height:3px;position:absolute;bottom:4px}.pg-today{z-index:1;pointer-events:none;background:#2563eb;width:2px;position:absolute;top:0;bottom:0}.pg-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.pg-card{background:var(--ctl);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.pg-card h3{margin:0;font-size:14px}.pg-card-top{align-items:center;gap:10px;display:flex}.pg-icon{background:var(--tint);border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.pg-dates{background:var(--panel);border:1px solid var(--border);border-radius:8px;grid-template-columns:1fr 1fr;gap:8px;padding:8px;display:grid}.pg-dates small{color:var(--dim);font-size:11px;display:block}.pg-legend{flex-direction:column;gap:8px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.pg-legend li{align-items:center;gap:8px;display:flex}.pg-legend .pg-bar{flex:none;width:26px;height:12px;display:inline-block;position:static}.pg-detail{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:none;gap:8px;width:360px;padding:12px;display:flex;overflow:auto}.pg-detail header{align-items:center;gap:8px;display:flex}.pg-detail header .icon-btn{margin-left:auto}.pg-pill{color:#fff;background:#6b7280;border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:700}.pg-pill.doing{background:#3f8f2b}.pg-pill.done{background:#2f6f22}.pg-pill.late{background:#c0392b}.pg-after{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:3px;max-height:170px;padding:6px 10px;font-size:12.5px;display:flex;overflow:auto}.pg-after legend{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);padding:0 4px;font-size:10px}@media (width<=1100px){.pg{flex-direction:column;overflow:auto}.pg-detail{width:auto}}.pg-main>*{flex-shrink:0}.msg.assistant.wide{white-space:normal;align-self:stretch;max-width:100%}.intake{flex-direction:column;gap:9px;margin-top:8px;display:flex}.intake.closed{opacity:.85}.intake-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;display:flex}.intake-head .chip{white-space:nowrap}.intake .iq{border:1px solid var(--border);border-radius:8px;min-width:0;margin:0;padding:6px 8px}.intake .iq legend{padding:0 4px;font-size:12.5px;font-weight:600}.intake .iopts{flex-direction:column;gap:4px;margin:6px 0;display:flex}.intake .iopt{border:1px solid var(--border);cursor:pointer;border-radius:7px;align-items:flex-start;gap:8px;padding:5px 8px;display:flex}.intake .iopt.on{background:#0284c714;border-color:#0284c78c}.intake .iopt input{flex:none;width:auto;margin:3px 0 0}.intake .iopt>span{flex:1;min-width:0}.intake .iopt small{color:var(--dim);font-size:11px;line-height:1.35;display:block}.intake .usual{color:var(--cyan);border:1px solid #0284c766;border-radius:8px;margin-left:4px;padding:0 5px;font-size:10.5px;font-style:normal}.intake .itext{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:6px;padding:5px 8px;font-size:12px}.intake .assumed{color:var(--dim);font-size:11.5px}.intake .assumed ul{margin:4px 0 0;padding-left:18px}.intake-go{flex-wrap:wrap;gap:8px;display:flex}.licencebar{color:var(--text);background:#d977061a;border-bottom:1px solid #d9770659;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:6px 16px;font-size:12.5px;display:flex}.licencebar.expired{color:#991b1b;background:#dc26261a;border-bottom-color:#dc262666}.licencebar .licence-actions{gap:6px;margin-left:auto;display:inline-flex}.licencebar input{width:170px}.licencebar .licence-problem{flex-basis:100%;font-size:12px}.updatebar{color:var(--text);background:#0284c71a;border-bottom:1px solid #0284c759;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 16px;font-size:12.5px;display:flex}.updatebar .update-actions{gap:8px;margin-left:auto;display:inline-flex}.updatebar .update-note{opacity:.85;word-break:break-all;flex-basis:100%;font-size:12px}:root[data-theme=dark] .viewer{background:radial-gradient(circle at 50% 38%,#1d2f42 0%,#0b141d 55%,#05090d 100%)}:root[data-theme=dark] .viewer-tools{background:#101922e0}.rv{width:min(1040px,100%)}.rv-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rv-intro{color:var(--dim);margin:6px 0;font-size:12.5px;line-height:1.5}.rv-body{flex-direction:column;gap:6px;padding-right:4px;font-size:12.5px;display:flex;overflow-y:auto}.rv-body h4{margin:12px 0 2px;font-size:13px}.rv-cards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;display:grid}.rv-cards>div{border:1px solid var(--border);background:var(--ctl);border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.rv-cards b{font-size:18px}.rv-cards span{color:var(--dim);font-size:11px}.rv-list{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.rv-miss{color:var(--dim)}.rv-sug{border:1px solid var(--border);background:var(--ctl);border-radius:10px;margin-left:-18px;padding:8px 10px;list-style:none}.rv-sug p{margin:4px 0 0;line-height:1.45}.rv-sug-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rv-save{margin-left:auto;font-weight:600}.rv-need{color:var(--dim)}.rv-label{border:1px solid;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700}.rv-label.verified{color:#15803d;background:#15803d14;border-color:#15803d66}.rv-label.confirm{color:#b45309;background:#b4530914;border-color:#b4530966}.rv-rates{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.rv-rates label{color:var(--dim);flex-direction:column;gap:2px;font-size:11px;display:flex}.rv-rates input{width:130px}.rv-table{border-collapse:collapse;width:100%}.rv-table th,.rv-table td{text-align:left;border-bottom:1px solid var(--border);padding:3px 8px}.modal.pl{width:min(980px,96vw)}.pl-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.pl-bar input{flex:1;min-width:220px}.pl-modes{gap:6px;display:flex}.pl-found{flex-wrap:wrap;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.pl-map{border:1px solid var(--line,#31404f);touch-action:none;-webkit-user-select:none;user-select:none;background:#0b1a24;border-radius:10px;height:min(52vh,480px);position:relative;overflow:hidden}.pl-map img{pointer-events:none;width:256px;max-width:none;height:256px;position:absolute}.pl-svg{pointer-events:none;position:absolute;inset:0}.pl-zoom{flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;right:10px}.pl-zoom .btn{justify-content:center;width:34px;padding:6px 0;font-size:18px;line-height:1}.pl-credit{color:#fff;pointer-events:none;background:#0000008c;border-radius:6px;padding:2px 7px;font-size:11px;position:absolute;bottom:6px;left:8px}.pl-info{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;font-size:14px;display:flex}.pl-actions{align-items:center;gap:12px;display:flex}.pl-sides{margin-top:4px;font-size:12px}.pl-note{margin-top:8px;font-size:12px}.pl-google{flex:1;min-width:260px;font-size:13px}.pl-link{flex:1;gap:6px;min-width:280px;display:flex}.pl-link input{flex:1;min-width:0}.pl-none{text-align:center;color:#cbd5e1;pointer-events:none;background:#0f172ab8;border-radius:8px;max-width:80%;padding:8px 12px;font-size:13px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.pl-map.plain{background-color:#0f1c2b;background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:32px 32px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}.errorbar.friendly{color:#7c2d12;background:#d977061a;border-bottom-color:#d9770666;align-items:center}.opening .sub{margin-top:4px}.progress-indeterminate{background:#0284c726;border-radius:3px;height:6px;margin-top:6px;position:relative;overflow:hidden}.progress-indeterminate i{background:#0284c7;border-radius:3px;width:35%;animation:1.3s ease-in-out infinite hl-slide;position:absolute;top:0;bottom:0}@keyframes hl-slide{0%{left:-35%}to{left:100%}}@media (prefers-reduced-motion:reduce){.progress-indeterminate i{opacity:.5;width:100%;animation:none;left:0}}.inline-drawing{justify-content:center;display:flex}.inline-drawing.loading{opacity:.55}.inline-drawing svg{max-width:100%;height:auto}.inline-drawing .wall-hit{cursor:pointer}.inline-drawing .wall-hit:hover{fill-opacity:.35}.dv-mt{z-index:5;background:#fff;border:2px solid #0b6bcb;border-radius:6px;padding:4px;position:absolute;box-shadow:0 6px 18px #0003}.dv-mt textarea{resize:both;color:#1f2933;background:0 0;border:0;outline:none;font:14px/1.4 ui-sans-serif,system-ui,sans-serif;display:block}.dv-mt-tools{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;padding:6px 8px;font-size:12px;display:flex}.dv-mt-tools label{color:var(--dim);align-items:center;gap:4px;display:inline-flex}.dv-mt-tools input[type=number]{width:62px}.dv-mt-tools button{border:1px solid var(--border);min-width:28px;color:inherit;cursor:pointer;background:0 0;border-radius:5px;padding:3px 7px}.dv-mt-tools button.primary{color:#fff;background:#0b6bcb;border-color:#0b6bcb;font-weight:600}.dv-modal{z-index:8;background:#0f172a59;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dv-modal-box{background:var(--panel,#fff);width:min(560px,94%);max-height:92%;color:inherit;border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex;overflow:auto;box-shadow:0 10px 30px #0000004d}.dv-modal-box h3{margin:0;font-size:14px}.dv-lt-list{border:1px solid var(--border);border-radius:6px;max-height:260px;font-size:12px;overflow:auto}.dv-lt-head,.dv-lt-row{grid-template-columns:90px 140px 1fr;align-items:center;gap:8px;padding:3px 8px;display:grid}.dv-lt-list label.dv-lt-row{cursor:pointer;grid-template-columns:20px 90px 140px 1fr}.dv-lt-head{color:var(--dim);border-bottom:1px solid var(--border);background:var(--panel,#fff);font-weight:600;position:sticky;top:0}.dv-lt-row{cursor:pointer}.dv-lt-row:hover{background:#0284c714}.dv-lt-row.sel{background:#0284c738}.dv-lt-name{font-weight:600}.dv-lt-desc{color:var(--dim)}.dv-lt-btn{border:1px solid var(--border);color:inherit;cursor:pointer;text-overflow:ellipsis;background:0 0;border-radius:5px;max-width:90px;padding:1px 6px;font-size:11px;overflow:hidden}.dv-tip{z-index:6;pointer-events:none;color:#1f2933;white-space:nowrap;background:#fffbe6;border:1px solid #c9b458;border-radius:4px;padding:4px 8px;font-size:11px;line-height:1.45;position:absolute;box-shadow:0 3px 10px #0003}.dv-tip-t{font-weight:700}.dv-qp{z-index:7;background:var(--panel,#fff);width:236px;color:inherit;border:1px solid var(--border-hover,#8aa);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;font-size:12px;display:flex;position:absolute;box-shadow:0 8px 24px #00000047}.dv-qp-head{justify-content:space-between;align-items:center;display:flex}.dv-qp-rows{border-top:1px solid var(--border);margin:0;padding-top:4px}.dv-qp-rows div{justify-content:space-between;gap:8px;padding:1px 0;display:flex}.dv-qp-rows dt{color:var(--dim)}.dv-qp-rows dd{text-align:right;text-overflow:ellipsis;margin:0;font-weight:600;overflow:hidden}.dv-nav{z-index:5;border:1px solid var(--border);background:#ffffffe6;border-radius:8px;flex-direction:column;gap:3px;padding:4px;display:flex;position:absolute;box-shadow:0 2px 8px #0000002e}.dv-nav button{color:#1f2933;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;width:30px;height:28px;font-size:15px}.dv-nav button:hover,.dv-nav button.on{border-color:var(--border-hover,#8aa);background:#0284c72e}.dv-nav-split{align-items:center;display:flex;position:relative}.dv-nav-split>.dv-nav-more{width:14px;font-size:10px}.dv-nav-menu{background:var(--panel,#fff);color:#1f2933;border:1px solid var(--border);z-index:9;border-radius:6px;flex-direction:column;min-width:150px;margin-right:6px;padding:3px;display:flex;position:absolute;top:0;right:100%;box-shadow:0 6px 18px #00000040}.dock-tl .dv-nav-menu,.dock-bl .dv-nav-menu{margin-left:6px;margin-right:0;left:100%;right:auto}.dock-bl .dv-nav-menu,.dock-br .dv-nav-menu{top:auto;bottom:0}.dv-nav-menu button{text-align:left;white-space:nowrap;width:auto;height:auto;padding:4px 8px;font-size:12px}.dv-nav-title{text-transform:uppercase;letter-spacing:.05em;color:var(--dim);padding:4px 8px 1px;font-size:10px}.dv-optmenu{z-index:7;color:#1f2933;background:#fff;border:1px solid #6b7280;border-radius:4px;outline:none;min-width:110px;font-size:12px;position:absolute;box-shadow:0 4px 12px #00000040}.dv-optmenu div{cursor:pointer;padding:3px 10px}.dv-optmenu div.on{color:#fff;background:#0b6bcb}.dv-search{margin-right:10px;position:relative}.dv-search input{border:1px solid var(--border);width:190px;color:inherit;background:0 0;border-radius:14px;padding:3px 8px;font-size:12px}.dv-search-list{z-index:12;background:var(--panel,#fff);border:1px solid var(--border);border-radius:6px;flex-direction:column;width:360px;max-width:80vw;padding:3px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 6px 18px #00000040}.dv-search-list button{text-align:left;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:12px}.dv-search-list button:hover{background:#0284c726}.dv-qat{gap:2px;margin-right:10px;display:inline-flex}.dv-qat button{border:1px solid var(--border);width:26px;height:24px;color:inherit;cursor:pointer;background:0 0;border-radius:5px;font-size:13px}.dv-qat button:hover{background:#0284c726}.dv-tpl-list{flex-direction:column;gap:4px;max-height:360px;display:flex;overflow:auto}.dv-tpl{text-align:left;border:1px solid var(--border);color:inherit;cursor:pointer;background:0 0;border-radius:6px;grid-template-columns:1fr auto;gap:2px 10px;width:100%;padding:6px 10px;font-size:12px;display:grid}.dv-tpl:hover{border-color:var(--border-hover,#8aa);background:#0284c71f}.dv-tpl-about{color:var(--dim);grid-column:1/-1}.plan-modal{z-index:950;background:#0f172a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.plan-modal-box{background:var(--panel,#fff);width:min(620px,94vw);max-height:88vh;color:inherit;border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:14px 16px;display:flex;overflow:auto;box-shadow:0 12px 34px #0000004d}.plan-modal-box h3{margin:0;font-size:15px}.plan-modal-list{flex-direction:column;gap:4px;max-height:300px;display:flex;overflow:auto}.plan-modal-row{border:1px solid var(--border);border-radius:6px;grid-template-columns:22px 100px 1fr auto;align-items:center;gap:8px;padding:4px 6px;font-size:12px;display:grid}.plan-modal-row.dim{opacity:.6}.plan-notice .btn{margin-left:8px}.finish-list{flex-direction:column;gap:3px;margin:4px 0;padding:0;font-size:12px;list-style:none;display:flex}.finish-list li.ok>span:first-child{color:#15803d}.finish-list li.todo>span:first-child{color:#b45309}.finish-table{border-collapse:collapse;width:100%;margin:4px 0;font-size:12px}.finish-table th,.finish-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:3px 6px}.finish-table tr.total td{font-weight:700}.warn-text{color:#b91c1c;font-size:12px}@media (width<=760px){.toolbar{gap:6px;padding:6px 8px}.toolbar select{max-width:130px}.toolbar .btn{padding:6px 8px}.toolbar-gap,.toolbar .spacer{display:none}.dd{position:static}.dd-pop,.dd-pop.left,.dd-pop.right{min-width:0;max-height:65vh;position:fixed;top:auto;left:8px;right:8px}.newmodel{width:auto;left:8px;right:8px}}.cmds button.locked{opacity:.55}.cmds button.locked .lock-tag{opacity:1;font-weight:600}
