:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f3f5;--bg-2:#e9ebee;--panel:#ffffffe6;--panel-solid:#fff;--raise:#141c280b;--raise-2:#141c2816;--line:#141c281a;--line-2:#141c282e;--fg:#1b2230;--muted:#5b6474;--accent:#2f6fed;--accent-hover:#245fd4;--accent-2:#6a7894;--accent-soft:#2f6fed1c;--accent-fg:#fff;--glow:0 0 0 3px #2f6fed33;--ok:#1e9467;--error:#d13f45;--warn:#d17a22;--inset:#fff;--scrim:#141c2852;--canvas-bg:radial-gradient(ellipse at 50% 30%, #f1f2f4 0%, #dcdfe3 58%, #c9cdd3 100%);--status-fade:linear-gradient(0deg, #f2f3f5eb, transparent);--hud-bg:#fffffff0;--radius:16px;--radius-sm:10px;--shadow:0 10px 30px #141c281f, 0 1px 3px #141c2814;--shadow-sm:0 1px 3px #141c281f;color:var(--fg);background:var(--bg);font-family:Segoe UI Variable Text,Segoe UI,Inter,system-ui,sans-serif;font-size:16px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#15171b;--bg-2:#1a1d22;--panel:#1f2228e6;--panel-solid:#22252b;--raise:#ffffff0d;--raise-2:#ffffff17;--line:#ffffff17;--line-2:#ffffff29;--fg:#e7e9ec;--muted:#9ba2ad;--accent:#6d9bff;--accent-hover:#87adff;--accent-2:#8d98ad;--accent-soft:#6d9bff26;--accent-fg:#0e1626;--glow:0 0 0 3px #6d9bff3d;--ok:#4cc38a;--error:#f06b6f;--warn:#f0a04b;--inset:#00000038;--scrim:#00000080;--canvas-bg:radial-gradient(ellipse at 50% 30%, #4b5058 0%, #34383e 58%, #26292e 100%);--status-fade:linear-gradient(0deg, #15171be0, transparent);--hud-bg:#1f2228f0;--shadow:0 12px 32px #00000073, 0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}h1,h2,h3,h4{letter-spacing:-.01em;font-family:Segoe UI Variable Display,Segoe UI,Inter,system-ui,sans-serif}.muted{color:var(--muted);font-weight:400}.small{font-size:13px}.pad{padding:8px 12px}.grow{flex:1}.accent{color:var(--accent)}.error{color:var(--error)}.icon{flex:none;display:block}kbd{border:1px solid var(--line-2);color:var(--muted);background:var(--raise);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font:12px/1.4 ui-monospace,Consolas,monospace;display:inline-block}.glass{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(140%);box-shadow:var(--shadow)}button,.button,.button-like{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--raise);color:var(--fg);font:inherit;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:7px 12px;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .2s,transform 80ms,color .15s;display:inline-flex}button:hover:not(:disabled),.button:hover,.button-like:hover{background:var(--raise-2);border-color:var(--line-2)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}button.primary,.button.primary{background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-sm);border-color:#0000;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.ghost,.button.ghost{background:0 0}button.ghost.active{border-color:var(--accent);color:var(--accent)}button.danger{color:var(--error)}button.danger:hover:not(:disabled){background:color-mix(in srgb, var(--error) 12%, transparent);border-color:color-mix(in srgb, var(--error) 40%, transparent)}button.small{padding:4px 9px;font-size:13px}button.wide{width:100%;margin-top:8px}.icon-button{width:34px;height:34px;color:var(--fg);background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;padding:0;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--raise-2);border-color:var(--line)}button.mini{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:3px}button.mini:hover:not(:disabled){color:var(--fg);background:var(--raise-2)}button.mini.on{color:var(--accent)}button.mini.text{gap:4px;padding:3px 7px;font-size:13px}input,select,textarea{font:inherit;color:var(--fg)}input[type=number],input[type=search],input[type=text],input:not([type]),select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);font-variant-numeric:tabular-nums;outline:none;padding:7px 10px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}select option{background:var(--panel-solid)}.check{cursor:pointer;align-items:center;gap:8px;display:flex}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}input[type=range]{accent-color:var(--accent)}.search{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);color:var(--muted);align-items:center;gap:8px;padding:0 10px;display:flex}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search input{background:0 0;border:0;flex:1;min-width:0;padding:8px 0;box-shadow:none!important}.search.compact{margin:10px 10px 6px}.search.big{border-radius:12px;padding:4px 16px;font-size:16px}.loading-screen{place-items:center;height:100%;display:grid}.loading-screen.inline{height:240px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.home{max-width:1180px;margin:0 auto;padding:44px 28px 60px;animation:.35s ease-out rise}.brand{align-items:center;gap:16px;display:flex}.brand h1{margin:0;font-size:30px;font-weight:700}.brand h1 em{background:linear-gradient(120deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.brand p{margin:4px 0 0}.brand-mark{width:48px;height:48px;color:var(--accent-fg);background:var(--accent);box-shadow:var(--shadow-sm);border-radius:14px;place-items:center;display:grid}.brand-mark.small{border-radius:10px;width:32px;height:32px}.home-create{border-radius:18px;margin:30px 0 34px;padding:18px}.create-row{flex-wrap:wrap;gap:10px;display:flex}.big-input{flex:280px;font-size:16px;padding:10px 14px!important}.library-pick{margin-top:14px}.library-pick ul{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;max-height:300px;margin:10px 0 0;padding:0;list-style:none;display:grid;overflow:auto}.library-pick li button{text-align:left;grid-template-rows:auto auto;grid-template-columns:auto 1fr;justify-content:flex-start;column-gap:10px;width:100%;display:grid}.library-pick li button .icon{color:var(--accent);grid-row:span 2}.library-pick small{text-overflow:ellipsis;overflow:hidden}.home-projects h2{margin:0 0 14px;font-size:18px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.project-card{cursor:pointer;border-radius:18px;transition:transform .2s,box-shadow .2s,border-color .2s;animation:.3s ease-out rise;position:relative;overflow:hidden}.project-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent);box-shadow:var(--shadow);transform:translateY(-3px)}.project-thumb{aspect-ratio:16/10;color:var(--muted);background:var(--canvas-bg);place-items:center;display:grid}.project-thumb img{object-fit:cover;width:100%;height:100%}.project-meta{padding:12px 14px 14px}.project-meta h3{margin:0 0 3px;font-size:16px}.project-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.project-card:hover .project-actions{opacity:1}.project-actions .icon-button{background:var(--panel)}.empty-state{color:var(--muted);border-radius:18px;align-items:center;gap:16px;padding:26px;display:flex}.empty-state .icon{color:var(--accent)}.ws{grid-template-rows:auto 1fr;height:100vh;display:grid;overflow:hidden}.ws.immersive{display:block;position:relative}.ws.immersive>.topbar{margin:0;position:absolute;top:12px;left:12px;right:12px}.topbar{z-index:30;border-radius:16px;align-items:center;gap:12px;margin:10px 10px 0;padding:7px 10px;display:flex;position:relative}.brand-button{border:0;padding:0;background:0 0!important}.project-name{width:220px;font-size:16px;font-weight:600;background:0 0!important;border-color:#0000!important;padding:6px 10px!important}.project-name:hover{border-color:var(--line)!important}.project-name:focus{border-color:var(--accent)!important}.dock{border:1px solid var(--line);background:var(--raise);border-radius:13px;gap:3px;margin:0 auto;padding:4px;display:flex;overflow-x:auto}.dock-item{color:var(--muted);background:0 0;border:0;border-radius:10px;gap:7px;padding:7px 12px}.dock-item:hover:not(:disabled){color:var(--fg);background:var(--raise)}.dock-item.on{color:var(--accent);background:var(--accent-soft);font-weight:600}.topbar-right{align-items:center;gap:4px;display:flex}.palette-button{color:var(--muted);gap:8px;margin-right:6px}.draw-top-button{background:var(--accent);color:#fff;white-space:nowrap;border-radius:10px;align-items:center;gap:6px;margin-right:8px;padding:6px 12px;font-weight:600;display:inline-flex}.draw-top-button:hover{filter:brightness(1.08)}.progress-line{background:linear-gradient(90deg, transparent, var(--accent), var(--accent-2), transparent);background-size:200% 100%;border-radius:2px;height:2px;animation:1.1s linear infinite flow;position:absolute;bottom:-1px;left:14px;right:14px}@keyframes flow{0%{background-position:200% 0}to{background-position:0 0}}.design{--top:78px;--gap:12px;--left-w:300px;--right-w:360px;position:absolute;inset:0}.design.left-closed{--left-w:0px}.design.right-closed{--right-w:0px}.left-panel,.right-panel{top:var(--top);z-index:10;max-height:calc(100% - var(--top) - var(--gap));border-radius:var(--radius);flex-direction:column;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s;display:flex;position:absolute;overflow:hidden}.left-panel{left:var(--gap);width:300px;bottom:var(--gap)}.right-panel{right:var(--gap);width:360px;overflow-y:auto}.design.left-closed .left-panel{transform:translateX(calc(-100% - 2 * var(--gap)));opacity:0;pointer-events:none}.design.right-closed .right-panel{transform:translateX(calc(100% + 2 * var(--gap)));opacity:0;pointer-events:none}.panel-toggle{top:calc(var(--top) + 18px);z-index:11;background:var(--panel);width:22px;height:44px;color:var(--muted);box-shadow:var(--shadow-sm);border-radius:0 10px 10px 0;padding:0;transition:left .28s cubic-bezier(.2,.8,.2,1),right .28s cubic-bezier(.2,.8,.2,1),color .15s;position:absolute}.panel-toggle:hover:not(:disabled){color:var(--accent);background:var(--panel-solid)}.panel-toggle.left{left:calc(var(--gap) + var(--left-w))}.panel-toggle.right{right:calc(var(--gap) + var(--right-w));border-radius:10px 0 0 10px}.panel-toggle .icon{transition:transform .2s}.panel-toggle.left.open .icon,.panel-toggle.right:not(.open) .icon{transform:rotate(180deg)}.panel-tabs{border-bottom:1px solid var(--line);gap:4px;padding:8px;display:flex}.panel-tabs button{color:var(--muted);background:0 0;border-color:#0000;flex:1}.panel-tabs button.on{color:var(--fg);background:var(--raise-2);border-color:var(--line)}.panel-tabs button.mini{flex:none}.stage3d{background:var(--canvas-bg);position:absolute;inset:0;overflow:hidden}.viewport,.viewport>div:not(.drop-overlay):not(.xray-legend){inset:0;position:absolute!important}.viewport.drop-hint{box-shadow:inset 0 0 0 2px var(--accent)}.drop-overlay{background:var(--accent);color:var(--accent-fg);pointer-events:none;border-radius:20px;padding:8px 16px;font-weight:600;position:absolute;bottom:60px;left:50%;transform:translate(-50%)}.xray-legend{right:calc(var(--right-w) + 2 * var(--gap));top:calc(var(--top) + 58px);z-index:4;pointer-events:none;border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;font-size:12px;transition:right .28s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute}.xray-legend span{align-items:center;gap:7px;display:flex}.xray-legend i{border-radius:50%;flex:none;width:10px;height:10px}.xray-legend em{font-variant-numeric:tabular-nums;color:var(--muted);margin-left:auto;padding-left:12px;font-style:normal}.floating-toolbar{top:var(--top);left:calc((var(--gap) + var(--left-w) + 100% - var(--gap) - var(--right-w)) / 2);z-index:5;border-radius:14px;align-items:center;gap:8px;padding:6px;transition:left .28s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;transform:translate(-50%)}.floating-toolbar button{color:var(--muted);background:0 0;border-color:#0000;padding:6px 10px;font-size:14px}.floating-toolbar button:hover:not(:disabled){color:var(--fg)}.floating-toolbar button.on{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.seg{background:var(--raise);border-radius:11px;gap:2px;padding:2px;display:flex}.snap{color:var(--muted);align-items:center;gap:4px;padding-left:8px;display:flex}.dimmer{padding:0 6px}.dimmer input{width:72px}.snap select{background:0 0;border:0;padding:5px 6px;font-size:14px}.menu-wrap{position:relative}.menu{border-radius:14px;gap:10px;width:280px;padding:14px;animation:.18s ease-out rise;display:grid;position:absolute;top:calc(100% + 10px);right:0}.room-bar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.room-bar.floating{left:calc((var(--gap) + var(--left-w) + 100% - var(--gap) - var(--right-w)) / 2);top:calc(var(--top) + 58px);max-width:calc(100% - var(--left-w) - var(--right-w) - 4 * var(--gap));z-index:4;border-radius:20px;justify-content:center;padding:4px;transition:left .28s cubic-bezier(.2,.8,.2,1);position:absolute;transform:translate(-50%)}.room-bar.inline{padding:10px 14px 0}.room-bar .chip{align-items:center;gap:4px;display:inline-flex}.room-bar .chip.add{border-style:dashed}.solo-banner{left:calc((var(--gap) + var(--left-w) + 100% - var(--gap) - var(--right-w)) / 2);top:calc(var(--top) + 104px);color:var(--accent);z-index:4;border-radius:20px;align-items:center;gap:10px;padding:6px 8px 6px 14px;display:flex;position:absolute;transform:translate(-50%)}.solo-banner button{border-radius:14px;padding:4px 10px;font-size:13px}.reopen{z-index:5;border-radius:12px;width:40px;height:40px;padding:0;position:absolute;top:12px;left:12px}.statusbar{left:calc(var(--left-w) + 2 * var(--gap));right:calc(var(--right-w) + 2 * var(--gap));color:var(--muted);background:var(--status-fade);pointer-events:none;gap:16px;padding:8px 10px;font-size:13px;transition:left .28s,right .28s;display:flex;position:absolute;bottom:0}.empty-stage{text-align:center;max-width:380px;color:var(--muted);z-index:3;justify-items:center;gap:8px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-stage h3{color:var(--fg);margin:4px 0 0}.empty-stage .icon{color:var(--accent)}.hud-label{border:1px solid var(--line);background:var(--hud-bg);color:var(--fg);white-space:nowrap;box-shadow:var(--shadow-sm);pointer-events:none;border-radius:12px;align-items:center;gap:8px;padding:4px 10px;font:13px Segoe UI,sans-serif;display:flex}.hud-label span{color:var(--accent);font-variant-numeric:tabular-nums}.outliner,.library-panel{flex-direction:column;flex:1;min-height:0;display:flex}.view-chips{flex-wrap:wrap;gap:6px;padding:0 10px 8px;display:flex}.chip{color:var(--muted);border-radius:20px;padding:4px 10px;font-size:13px}.chip.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft)}.tree{flex:1;padding:0 6px 8px;overflow-y:auto}.tree-row{cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:6px;min-height:34px;padding:3px 6px 3px 8px;transition:background .12s;display:flex}.tree-row:hover{background:var(--raise)}.tree-row.active{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent), color-mix(in srgb, var(--accent-2) 8%, transparent));border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.tree-row.dim{opacity:.45}.twisty{width:18px;height:18px;color:var(--muted);border:0;place-items:center;padding:0;transition:transform .15s;display:inline-grid;background:0 0!important}.twisty.open{transform:rotate(90deg)}.tree-label{flex-direction:column;flex:1;min-width:0;display:flex}.tree-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tree-dims{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.row-actions{opacity:.35;gap:1px;transition:opacity .12s;display:flex}.tree-row:hover .row-actions{opacity:1}.row-actions:has(.on){opacity:1}.groups{border-top:1px solid var(--line);max-height:38%;padding:6px 6px 10px;overflow-y:auto}.section-head{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;align-items:center;padding:4px 6px 6px;font-size:12px;display:flex}.group-row .icon{color:var(--accent-2)}.inline-edit{flex:1;min-width:0;padding:3px 6px!important}.folders{flex:1;padding:0 6px 10px;overflow-y:auto}.folder-head{width:100%;color:var(--muted);background:0 0;border:0;justify-content:flex-start;padding:6px 8px}.folder-head span{text-align:left;text-overflow:ellipsis;flex:1;overflow:hidden}.folder-head>.icon:first-child{transition:transform .15s}.folder-head.open>.icon:first-child{transform:rotate(90deg)}.folder-head small{opacity:.7}.component{border:1px solid var(--line);background:var(--inset);cursor:grab;border-radius:9px;align-items:center;gap:8px;margin:2px 0 2px 18px;padding:6px 6px 6px 10px;transition:border-color .12s,background .12s,transform .12s;display:flex}.component:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft);transform:translate(2px)}.component .icon:first-child{color:var(--accent)}.component span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.inspector{grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;padding:14px;display:grid}.inspector .segmented{flex-wrap:wrap}.inspector .segmented button{flex:1 1 0;min-width:fit-content}.inspector.empty{text-align:center;color:var(--muted);justify-items:center;padding:36px 20px}.inspector.empty .icon{color:var(--accent)}.hints{text-align:left;gap:8px;margin:8px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.insp-head{align-items:flex-start;gap:10px;display:flex}.insp-head>.icon{color:var(--accent);margin-top:8px}.insp-head h3{margin:4px 0 2px;font-size:16px}.title-input{width:100%;font-size:16px;font-weight:600;background:0 0!important;border-color:#0000!important;padding:5px 8px!important}.title-input:hover{border-color:var(--line)!important}.title-input:focus{border-color:var(--accent)!important}.inspector section h4{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 8px;font-size:12px}.fields{gap:6px;display:grid}.fields.three{grid-template-columns:repeat(3,1fr)}.fields.rot{grid-template-columns:1fr auto auto;align-items:center;margin-top:6px}.num-field{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);align-items:center;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.num-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.num-field .scrub{color:var(--accent);cursor:ew-resize;-webkit-user-select:none;user-select:none;border-right:1px solid var(--line);background:color-mix(in srgb, var(--accent) 6%, transparent);align-self:stretch;place-items:center;padding:0 7px;font-size:13px;font-weight:600;display:grid}.num-field input{text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;flex:1;min-width:0;padding:7px 4px 7px 7px;box-shadow:none!important}.num-field .unit{color:var(--muted);padding-right:7px;font-size:12px}.tool-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.tool-grid .span2{grid-column:span 2}.inspector .actions{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:6px;padding-top:12px;display:grid}.insp-groups{--set-label:84px;grid-template-columns:minmax(0,1fr);display:grid}.insp-jump{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.insp-jump button{color:var(--muted);background:var(--raise);border-color:#0000;border-radius:99px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;display:inline-flex}.insp-jump button:hover{color:var(--accent);background:var(--accent-soft)}.insp-search{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);color:var(--muted);align-items:center;gap:6px;margin-bottom:6px;padding:0 8px;display:flex}.insp-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.insp-search input{background:0 0;border:0;flex:1;min-width:0;padding:7px 0;box-shadow:none!important}.set-section{grid-template-columns:minmax(0,1fr);gap:2px;padding-bottom:6px;display:grid}.set-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:6px;margin:10px 0 4px;font-size:11.5px;font-weight:600;display:flex}.set-title>.icon{color:var(--accent)}.set-row{grid-template-columns:var(--set-label) minmax(0, 1fr);align-items:center;gap:8px;min-height:34px;font-size:13px;display:grid}.set-row.block{grid-template-columns:minmax(0,1fr);gap:6px;padding:4px 0}.set-value{min-width:0}.set-row.block>.set-value{gap:6px;display:grid}.set-value>select,.set-value>.num-field{width:100%}.set-link{grid-template-columns:var(--set-label) minmax(0, 1fr) auto;border-radius:var(--radius-sm);width:calc(100% + 16px);color:inherit;text-align:left;background:0 0;border:0;margin:0 -8px;padding:4px 8px;font-weight:400}.set-link:hover,.set-link.on{background:var(--raise)}.set-link>.set-value{text-overflow:ellipsis;white-space:nowrap;text-align:right;color:var(--muted);font-size:12.5px;overflow:hidden}.set-link>.set-chevron{color:var(--muted);transition:transform .15s}.set-link>.set-chevron.open{transform:rotate(90deg)}.set-link:hover>.set-chevron{color:var(--accent)}.set-link.danger>.set-label{color:var(--error)}.set-text{color:var(--muted);align-items:center;gap:6px;display:flex}.set-inline{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px;display:grid}.set-icons{gap:4px;display:flex}.num-field .scrub-unit{cursor:ew-resize;-webkit-user-select:none;user-select:none}.insp-item-body .simple-picker{margin:4px 0 8px}.insp-item{align-items:flex-start;gap:2px;display:flex}.insp-item-body{flex:1;grid-template-columns:minmax(0,1fr);gap:2px;min-width:0;display:grid}.insp-star{width:24px;height:24px;color:var(--muted);opacity:0;background:0 0;border:0;flex:none;place-items:center;margin-top:5px;padding:0;transition:opacity .15s;display:grid}.insp-item:hover>.insp-star,.insp-star:focus-visible,.insp-star.on{opacity:1}.insp-star:hover{background:var(--raise);color:var(--accent)}.insp-star.on{color:var(--accent)}.insp-star.on svg,.set-section.favorites>.set-title>.icon{fill:currentColor}@media (hover:none){.insp-star{opacity:.45}}.insp-tip{align-items:center;gap:6px;margin:0 0 6px;display:flex}.insp-tip>.icon{flex:none}.insp-row{grid-template-columns:var(--set-label,84px) minmax(0, 1fr);align-items:center;gap:8px;min-height:34px;font-size:13px;display:grid}.finish-rows{gap:6px;margin-bottom:8px;display:grid}.finish-row{grid-template-columns:var(--set-label,84px) minmax(0, 1fr) 84px;align-items:center;gap:8px;font-size:13px;display:grid}.finish-mount{grid-template-columns:var(--set-label,84px) minmax(0, 1fr);align-items:center;gap:8px;font-size:13px;display:grid}.finish-material{text-align:left;align-items:center;gap:4px;min-width:0;padding:6px 8px;font-size:13px;display:flex}span.finish-material{padding-inline:0}.finish-material>.grow,span.finish-material{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.finish-material>.grow{flex:1}.inspector .insp-tools{z-index:1;background:var(--panel-solid);grid-template-columns:repeat(3,minmax(0,1fr));margin:0 -14px -14px;padding:10px 14px 14px;position:sticky;bottom:0}.insp-tools button{padding-inline:6px;font-size:13px}.vars{flex-wrap:wrap;gap:4px;display:flex}.vars code{background:var(--raise);color:var(--muted);border-radius:6px;padding:2px 6px;font-size:12px}.palette-backdrop{z-index:100;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:start center;padding-top:12vh;animation:.15s ease-out rise;display:grid;position:fixed;inset:0}.palette{width:min(640px,92vw);box-shadow:var(--shadow);border-radius:18px;padding:10px}.palette .search{background:0 0;border:0;box-shadow:none!important}.palette .search .icon{color:var(--accent)}.palette-list{border-top:1px solid var(--line);max-height:52vh;margin:6px 0 0;padding:0;list-style:none;overflow-y:auto}.palette-group{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px 10px 4px;font-size:12px}.palette-list button{background:0 0;border:0;justify-content:flex-start;width:100%;padding:8px 10px}.palette-list button span{text-align:left;flex:1}.palette-list button small{color:var(--muted)}.palette-list button.active{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent), transparent);box-shadow:inset 2px 0 0 var(--accent)}.toasts{z-index:120;gap:8px;display:grid;position:fixed;bottom:18px;right:18px}.toast{border-left:3px solid var(--accent);border-radius:12px;padding:10px 16px;animation:.2s ease-out rise}.toast.error{border-left-color:var(--error)}.toast.warn{border-left-color:var(--warn);align-items:center;gap:12px;max-width:min(520px,100vw - 36px);display:flex}.tool-area{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);flex-direction:column;min-height:0;margin:10px;animation:.25s ease-out rise;display:flex;overflow:auto}@media (width<=1100px){.design{--left-w:260px;--right-w:300px}.left-panel{width:260px}.right-panel{width:300px}.dock-item span{display:none}}@media (width<=760px),(height<=520px){.design,.design.left-closed,.design.right-closed{--gap:8px;--left-w:0px;--right-w:0px;--panel-w:min(300px, calc(100vw - 2 * var(--gap) - 56px))}.left-panel,.right-panel{width:var(--panel-w);z-index:12}.panel-toggle{z-index:13;width:30px;height:52px;top:35%}.panel-toggle.left.open{left:calc(var(--gap) + var(--panel-w))}.panel-toggle.right.open{right:calc(var(--gap) + var(--panel-w))}}@media (width<=760px){.project-name,.palette-button span,.palette-button kbd,.draw-top-button span{display:none}}.sheet{flex:1;padding:16px 20px;overflow:auto}.sheet h2{margin:18px 0 8px;font-size:16px}.sheet-bar{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.sheet-bar h2{margin:0}.table-wrap+.sheet-bar{margin-top:24px}.sheet-bar .check{margin:0}.sheet-bar button{margin:0 0 0 auto}.total{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.price-block h3{align-items:baseline;gap:8px;margin:16px 0 6px;font-size:15px;display:flex}.table-wrap{margin-top:10px;overflow-x:auto}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:5px 10px 5px 0}table.data th{color:var(--muted);font-weight:500}table.data .num{text-align:right}table.data tr.group td{padding-top:10px;font-weight:600}table.data tfoot td{border-bottom:0;font-weight:600}.code{font-family:ui-monospace,Consolas,monospace;font-size:13px}.empty{place-items:center;height:100%;display:grid}.offer .sheet-bar label{align-items:center;gap:6px;display:flex}.offer-fields{margin:0 0 12px}.offer-fields summary{cursor:pointer;color:var(--muted)}.offer-fields .fields{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 16px;margin-top:8px;display:grid}.offer-fields label{color:var(--muted);gap:2px;font-size:12px;display:grid}.paper{--paper-line:#d7d9de;color:#111;background:#fff;max-width:210mm;margin:0 auto 16px;padding:14mm 14mm 12mm;font-family:Arial,Segoe UI,sans-serif;font-size:10pt;box-shadow:0 1px 4px #0000002e}.paper .rtf p{min-height:1em;margin:0}.title-page{flex-direction:column;justify-content:center;min-height:250mm;display:flex}.offer-header{width:100%;margin-bottom:8mm;position:relative}.offer-heading{margin-bottom:6mm}.offer-footer{border-top:1px solid var(--paper-line);margin-top:10mm;padding-top:2mm}.paper table.data{color:#111;width:100%}.paper table.data th,.paper table.data td{border-bottom:1px solid var(--paper-line);padding:3px 6px}.paper table.data th{color:#444;background:#f1f2f4}.paper .muted{color:#666}.offer-table tr.group td{padding-top:10px;font-weight:700}.offer-table tr.subtotal td{font-style:italic}.offer-table tr.grand-total td{border-top:2px solid #111;font-size:11pt;font-weight:700}.offer-table input,.offer-table select{font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:3px;width:100%;padding:1px 3px}.offer-table input:hover,.offer-table input:focus{border-color:var(--paper-line);background:#fafbfc}.offer-table .num input{text-align:right;width:7em}.num-input{white-space:nowrap}.offer-table .row-tools{white-space:nowrap;width:1%}.offer-table .row-tools select{color:#666;width:auto;font-size:11px}.offer-table .add-select{color:#2f6fde;width:auto;font-size:12px}.print-only{display:none}@media print{@page{size:A4;margin:0}:root,body,.ws,.tool-area{color:#000;background:#fff;border:0;border-radius:0;height:auto;margin:0;animation:none;display:block;overflow:visible}.topbar,.left-panel,.right-panel,.floating-toolbar,.statusbar,.toasts,.screen-only,.viewport{display:none!important}.print-only{display:inline}.sheet{padding:0;overflow:visible}.paper{box-shadow:none;max-width:none;margin:0}.title-page{break-after:page}.offer-group{break-inside:avoid-page}}.offer-fields input{border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;border-radius:5px;padding:5px 7px}.offer-table .row-delete{color:#b42318;background:0 0;margin:0 0 0 4px;padding:0 6px;font-size:15px;line-height:1}.bar-buttons{gap:8px;margin-left:auto;display:flex}.sheet-bar .bar-buttons button{margin:0}.button-like{border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:5px;padding:7px 12px}.report .sheet-bar label{align-items:center;gap:6px;display:flex}.report-header{border-bottom:1.5px solid #111;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;margin-bottom:5mm;padding-bottom:3mm;display:grid}.report-header .right{text-align:right}.report-title{font-size:14pt;font-weight:700}.report-image{aspect-ratio:7/5;object-fit:contain;border:1px solid var(--paper-line);place-items:center;width:100%;margin-bottom:5mm;display:grid}.report-customer{margin-top:4mm;line-height:1.5}.report-customer .strong{font-size:11pt;font-weight:700}.report-footer{border-top:1px solid #111;justify-content:space-between;gap:12px;padding-top:3mm;display:flex}.paper h3{margin:6mm 0 2mm;font-size:11pt}.element-summary{grid-template-columns:1fr 1.6fr;align-items:start;gap:6mm;display:grid}.element-summary h3{margin-top:0}.paper .props dt{color:#666}.report-table{font-size:8.5pt}.paper table.report-table th,.paper table.report-table td{vertical-align:top;padding:2px 4px}.report-table th.center{text-align:center}.report-table .edge-codes{white-space:nowrap;color:#444}@media print{.paper.page{break-after:page}.report-table tbody{break-inside:auto}}.toolbar-group{align-items:center;gap:6px;display:flex}.toolbar-group select{width:auto;margin:0}.toolbar-group button,.sheet-bar .toolbar-group .check{margin:0}.mr-pages{flex-direction:column;align-items:center;gap:16px;display:flex}.mr-page{width:min(var(--page-w), 100%);color:#111;-webkit-user-select:none;user-select:none;background:#fff;position:relative;box-shadow:0 1px 4px #0000002e;container-type:inline-size}.mr-page.current{outline:2px solid var(--accent)}.mr-static,.mr-abs{position:absolute}.mr-static{pointer-events:none;width:100%;height:100%;inset:0}.mr-abs{box-sizing:border-box;object-fit:contain}.mr-cell{color:#111;background:0 0;border:.6px solid #111;padding:0 .3cqw;font-family:Arial,sans-serif}.mr-object{cursor:move;place-items:center;display:grid}.mr-object.selected{outline:1px dashed var(--accent)}.mr-lines,.mr-picture{pointer-events:none;width:100%;height:100%}.mr-picture{object-fit:contain}.mr-text{resize:none;color:#111;background:0 0;border:0;width:100%;height:100%;font-family:Arial,sans-serif;overflow:hidden}.mr-handle{background:var(--accent);cursor:nwse-resize;width:9px;height:9px;display:none;position:absolute;bottom:-4px;right:-4px}.mr-object.selected .mr-handle{display:block}@media print{.mr-pages{display:block}.mr-page{width:var(--page-w);box-shadow:none;break-after:page;outline:none!important}.mr-object.selected{outline:none}}.cut-sheet-head{border-collapse:collapse;width:100%;margin-bottom:4mm;font-size:9pt}.cut-sheet-head td{border-bottom:1px solid var(--paper-line);padding:1mm 2mm 1mm 0}.cut-sheet-head .right{text-align:right}.sheet-drawing{width:100%;max-height:230mm;display:block}.sheet-plate{stroke:#111;stroke-width:4px}.sheet-part{fill:#fff;stroke:#333;stroke-width:3px}.sheet-drawing text{fill:#111;font-family:Arial,sans-serif}.sheet-cut{stroke:#d23b3b;stroke-width:2px;stroke-dasharray:14 8}.sheet-bar label.inline{align-items:center;gap:6px;display:flex}.export-file pre{background:var(--panel);border:1px solid var(--line);border-radius:6px;max-height:360px;margin:0;padding:10px 12px;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.45;overflow:auto}.labels-bar{margin-bottom:12px}.label-page{color:#111;background:#fff;margin:0 auto 16px;font-family:Arial,Segoe UI,sans-serif;position:relative;box-shadow:0 1px 4px #0000002e}.label-slot{outline:1px dashed #c8cbd1;position:absolute;overflow:hidden}.label{white-space:pre;flex-direction:column;gap:.4mm;height:100%;padding:2.5mm 3mm;line-height:1.25;display:flex}.label-top{justify-content:space-between;gap:4mm;display:flex}.label-bottom{justify-content:space-between;align-items:flex-end;gap:3mm;margin-top:auto;display:flex}.label-edges{font-size:.9em}.label-sketch{stroke:#111;fill:#111;width:40%;max-height:60%;font-size:8px}.label-sketch text{stroke:none}@media print{.label-page{box-shadow:none;break-after:page;margin:0}.label-slot{outline:none}}.cnc{flex:1;grid-template-columns:290px 340px 1fr;min-height:0;display:grid}.cnc-options{border-right:1px solid var(--line);align-content:start;gap:14px;padding:18px;display:grid;overflow-y:auto}.cnc-options h2{align-items:center;gap:8px;margin:0 0 4px;font-size:16px;display:flex}.cnc-options h2 .icon{color:var(--accent)}.field{gap:6px;display:grid}.field>span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px}.wide-seg{grid-template-columns:repeat(3,1fr);display:grid}.wide-seg button{color:var(--muted);background:0 0;border-color:#0000}.wide-seg button.on{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.cnc-list{border-right:1px solid var(--line);flex-direction:column;min-height:0;padding:10px 6px 10px 8px;display:flex}.cnc-list ul{margin:0;padding:0;list-style:none;overflow-y:auto}.cnc-item{text-align:left;background:0 0;border-color:#0000;justify-content:stretch;justify-items:start;gap:2px;width:100%;margin-bottom:4px;padding:8px 10px;display:grid}.cnc-item.on{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent), color-mix(in srgb, var(--accent-2) 8%, transparent));border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.cnc-name{font-family:ui-monospace,Consolas,monospace;font-size:14px}.cnc-badges{color:var(--muted);flex-wrap:wrap;gap:6px;font-size:12px;display:flex}.cnc-badges span{background:var(--raise);border-radius:6px;padding:1px 6px}.cnc-preview{flex-direction:column;gap:10px;min-width:0;min-height:0;padding:14px 18px;display:flex}.cnc-preview .sheet-bar h2{font-family:ui-monospace,Consolas,monospace;font-size:15px}.cnc-text{background:var(--inset);border:1px solid var(--line);color:var(--muted);border-radius:10px;flex:1;margin:0;padding:12px;overflow:auto}.dxf-view{border:1px solid var(--line);background:linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 24px 24px, var(--inset);border-radius:12px;flex-direction:column;flex:1;min-height:0;display:flex}.dxf-svg{flex:1;width:100%;min-height:0}.dxf-svg *{vector-effect:non-scaling-stroke}.dxf-board{stroke:var(--fg);stroke-width:1.6px;fill:none}.dxf-contour{stroke:var(--error);stroke-width:2px;fill:color-mix(in srgb, var(--error) 6%, transparent)}.dxf-hole{stroke:var(--accent);stroke-width:1.4px;fill:color-mix(in srgb, var(--accent) 22%, transparent)}.dxf-hole.back{stroke-dasharray:3 2;fill:color-mix(in srgb, var(--accent-2) 18%, transparent);stroke:var(--accent-2)}.dxf-hole.edge{vector-effect:none;stroke:color-mix(in srgb, var(--accent) 55%, transparent);fill:none}.dxf-saw{stroke:var(--warn);stroke-width:2px;stroke-dasharray:6 3;fill:none}.dxf-relief{stroke:var(--ok);stroke-width:2px;fill:none}.dxf-relief.back{stroke-dasharray:6 3}.dxf-dim{fill:var(--muted);font-family:Segoe UI,sans-serif}.dxf-legend{border-top:1px solid var(--line);flex-wrap:wrap;gap:14px;padding:8px 12px;font-size:13px;display:flex}.dxf-legend span{align-items:center;gap:6px;display:inline-flex}.dxf-legend i{background:currentColor;border-radius:2px;width:14px;height:3px}.legend-dxf-board{color:var(--fg)}.legend-dxf-contour{color:var(--error)}.legend-dxf-hole{color:var(--accent)}.legend-dxf-relief{color:var(--ok)}.legend-dxf-saw{color:var(--warn)}@media (width<=1100px){.cnc{grid-template-columns:1fr}}.insp-back{max-width:100%;color:var(--accent);background:0 0;border-color:#0000;justify-self:start;align-items:center;gap:4px;padding:4px 10px 4px 6px;font-size:13px;display:inline-flex}.insp-back>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.insp-back:hover{background:var(--accent-soft)}.icon.flip{transform:scaleX(-1)}.insp-page-head{align-items:center;gap:8px;display:flex}.insp-page-head h3{margin:0;font-size:18px}.insp-intro{margin:-4px 0 0}.inspector:focus{outline:none}.title-edit{display:block;position:relative}.title-edit>.icon{color:var(--muted);opacity:.5;pointer-events:none;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.title-edit:hover>.icon{opacity:1}.title-edit .title-input{padding-right:28px!important}.title-edit .title-input:focus+.icon{opacity:0}.vars-panel,.boards-panel{gap:10px;display:grid}.vars-panel p{margin:0}.var-table{gap:4px;display:grid}.var-row{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 56px 22px;align-items:center;gap:4px;display:grid}.var-row.add{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;padding-top:8px}.var-row input{min-width:0;font-size:13.5px;padding:6px 8px!important}.var-name{font-weight:600}.var-expr{font-family:ui-monospace,Consolas,monospace}.var-value{text-align:right;color:var(--accent);font-variant-numeric:tabular-nums;font-size:13.5px}.boards-panel .search.compact{margin:0}.board-list{gap:3px;margin:0;padding:0;list-style:none;display:grid}.board-row{text-align:left;background:0 0;border-color:#0000;grid-template-columns:auto 1fr auto;justify-content:stretch;gap:8px;width:100%;padding:6px 8px;display:grid}.board-row.on,.board-list li:hover .board-row{background:linear-gradient(90deg, color-mix(in srgb, var(--warn) 14%, transparent), color-mix(in srgb, var(--accent) 5%, transparent));border-color:color-mix(in srgb, var(--warn) 35%, transparent)}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.swatch{background:var(--raise-2);border:1px solid var(--line-2);border-radius:5px;flex:none;width:20px;height:20px;overflow:hidden}.swatch.large{border-radius:7px;width:30px;height:30px}.swatch img{object-fit:cover;width:100%;height:100%;display:block}.board-editor{border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);background:var(--inset);border-radius:12px;gap:10px;margin:6px 0 12px;padding:12px;animation:.18s ease-out rise;display:grid}.formula-captioned{gap:2px;min-width:0;display:grid}.quick-edges button{min-width:0;padding:6px 4px;font-size:12px}.board-more{border-top:1px solid var(--line);padding-top:8px}.board-more>summary{cursor:pointer;color:var(--muted);align-items:center;gap:6px;font-size:13px;list-style:none;display:flex}.board-more>summary::-webkit-details-marker{display:none}.board-more>summary:before{content:"›";width:10px;transition:transform .15s;display:inline-block}.board-more[open]>summary:before{transform:rotate(90deg)}.board-more[open]>summary{color:var(--fg);margin-bottom:8px}.board-more>*+*{margin-top:8px}.board-editor h5{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:4px 0 -4px;font-size:11.5px}.fields.two{grid-template-columns:1fr 1fr;align-items:end}.text-field{gap:4px;min-width:0;display:grid;position:relative}.text-field>span{color:var(--muted);font-size:12px}.text-field input,.text-field select{min-width:0;font-size:14px;padding:6px 8px!important}.material-button{justify-content:flex-start;gap:10px;width:100%;padding:5px 8px}.material-button .swatch{flex:none}.material-button span{text-align:left;text-overflow:ellipsis;flex:1;overflow:hidden}.formula-field{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);grid-template-rows:auto auto;grid-template-columns:auto 1fr;display:grid;overflow:hidden}.formula-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.formula-field .scrub{color:var(--accent);border-right:1px solid var(--line);background:color-mix(in srgb, var(--accent) 6%, transparent);grid-row:span 2;place-items:center;padding:0 6px;font-size:12.5px;font-weight:600;display:grid}.formula-field input{min-width:0;font-family:ui-monospace,Consolas,monospace;font-size:13.5px;box-shadow:none!important;background:0 0!important;border:0!important;padding:5px 6px 1px!important}.formula-value{color:var(--muted);font-variant-numeric:tabular-nums;padding:0 6px 4px;font-size:11.5px}.formula-value.on{color:var(--accent)}.toggles{gap:6px;font-size:14px;display:grid}.edges{grid-template-columns:60px 1fr;align-items:center;gap:10px;display:grid}.edge-diagram{width:60px}.edge-board{fill:color-mix(in srgb, var(--accent-2) 12%, transparent);stroke:color-mix(in srgb, var(--muted) 25%, transparent)}.edge{stroke:color-mix(in srgb, var(--muted) 25%, transparent);stroke-width:2px}.edge.on{stroke:var(--warn);stroke-width:5px}.edge-selects,.board-editor .actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.material-picker{z-index:20;border-radius:14px;gap:8px;padding:10px;animation:.15s ease-out rise;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0}.simple-picker{grid-template-columns:minmax(0,1fr)}.simple-picker .picker-bar{grid-template-columns:minmax(0,1fr) auto auto}.simple-picker .material-picker{z-index:auto;min-width:0;box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;padding:0;animation:none;position:static}.picker-bar{grid-template-columns:1fr auto auto;align-items:center;gap:6px;display:grid}.picker-bar .search.compact{margin:0}.picker-bar select{max-width:120px;font-size:13px;padding:6px!important}.material-grid{grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:6px;max-height:300px;display:grid;overflow-y:auto}.material{color:var(--muted);background:0 0;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:3px;padding:3px;font-size:11px;display:grid}.material img{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%}.material span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.material.on{border-color:var(--accent);color:var(--accent)}.material.none i{aspect-ratio:1;border:1px dashed var(--line);background:linear-gradient(135deg, transparent 49%, var(--line) 50%, transparent 51%);border-radius:6px;width:100%;display:block}.band-field .band-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;display:grid}.band-field .band-row:has(>:only-child){grid-template-columns:minmax(0,1fr)}.band-field .material-button{padding:3px 8px;font-size:13px}.room-panel{gap:14px;display:grid}.room-surfaces{gap:8px;display:grid}.wall-layers{gap:8px;margin-bottom:8px;display:grid}.wall-layer{align-items:center;gap:6px;display:flex}.wall-layer .material-button{flex:1;min-width:0}.wall-layer .num-field{flex:none;width:104px}.wall-row{grid-template-columns:auto 1fr;align-items:center;gap:12px;display:grid}.price-list-tools{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px;display:flex}.price-list-table input{width:100%;min-width:0}.price-list-table td.num input{text-align:right;max-width:120px}.wall-row-state{margin:0}.wall-buttons{grid-template:".p."26px"l plan d"30px".n."26px/30px 38px 30px;justify-content:start;gap:3px;display:grid}.wall-buttons button{min-width:0;padding:0;font-size:13px;font-weight:600}.wall-buttons .wall-p{grid-area:p}.wall-buttons .wall-l{grid-area:l}.wall-buttons .wall-d{grid-area:d}.wall-buttons .wall-n{grid-area:n}.wall-plan{border:2px solid var(--muted);opacity:.45;border-radius:3px;grid-area:plan}.room-shape-dialog{outline:none;width:min(1180px,100vw - 32px)}.room-shape-body{grid-template-columns:minmax(0,1.9fr) minmax(260px,1fr)}.room-plan-wrap{align-content:start;gap:6px;min-width:0;padding:12px 18px;display:grid}.room-plan{background:color-mix(in srgb, var(--muted) 6%, transparent);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:10px;width:100%;height:min(560px,100vh - 260px)}.plan-grid{fill:none;stroke:color-mix(in srgb, var(--muted) 22%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.plan-wall{fill:color-mix(in srgb, var(--fg) 55%, transparent)}.plan-floor{fill:color-mix(in srgb, var(--panel-solid) 88%, var(--accent) 4%);stroke:var(--fg);stroke-width:1px;vector-effect:non-scaling-stroke}.plan-floor.movable{cursor:move}.plan-floor.movable.on{fill:color-mix(in srgb, var(--panel-solid) 80%, var(--accent) 14%);stroke:var(--accent)}.plan-opening{stroke:color-mix(in srgb, var(--accent) 50%, var(--panel-solid));stroke-linecap:butt;cursor:ew-resize}.plan-opening.on{stroke:var(--accent)}.plan-removed{stroke:color-mix(in srgb, var(--error) 70%, transparent);stroke-width:2px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke;pointer-events:none}.overlap-row{gap:4px;display:grid}.room-plan.adding .plan-edge.pick{stroke:color-mix(in srgb, var(--accent) 25%, transparent);cursor:crosshair}.room-plan.adding .plan-edge.pick:hover{stroke:color-mix(in srgb, var(--accent) 60%, transparent)}.plan-floor.bad{fill:color-mix(in srgb, var(--error) 14%, transparent)}.plan-element{fill:color-mix(in srgb, var(--muted) 18%, transparent);stroke:color-mix(in srgb, var(--muted) 60%, transparent);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:visiblePainted}.plan-edge{stroke:#0000;stroke-width:14px;vector-effect:non-scaling-stroke;cursor:pointer}.plan-edge:hover,.plan-edge.on{stroke:color-mix(in srgb, var(--accent) 45%, transparent)}.plan-label{fill:var(--muted);text-anchor:middle;dominant-baseline:middle;font-variant-numeric:tabular-nums;pointer-events:none}.plan-label.on{fill:var(--accent);font-weight:600}.plan-label.wall-name{font-weight:600}.plan-mid{fill:var(--panel-solid);stroke:var(--muted);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:copy;opacity:.8}.plan-mid:hover{stroke:var(--accent);opacity:1}.plan-corner{fill:var(--panel-solid);stroke:var(--fg);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:grab}.plan-corner:hover,.plan-corner.on{fill:var(--accent);stroke:var(--accent)}.plan-size{fill:var(--panel-solid);stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.plan-size:hover{fill:var(--accent)}.plan-partition{fill:color-mix(in srgb, var(--fg) 62%, transparent);stroke:var(--fg);stroke-width:1px;vector-effect:non-scaling-stroke;cursor:move}.plan-partition.on{fill:color-mix(in srgb, var(--accent) 70%, transparent);stroke:var(--accent)}.plan-slope{fill:url(#room-slope);stroke:none;pointer-events:none}.plan-slope-hatch{stroke:color-mix(in srgb, var(--warn) 55%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.plan-slope-line{fill:none;stroke:color-mix(in srgb, var(--warn) 70%, transparent);stroke-width:1px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.plan-slope-wall{stroke:var(--warn);stroke-width:5px;vector-effect:non-scaling-stroke;pointer-events:none}.plan-beam{fill:color-mix(in srgb, var(--accent) 12%, transparent);stroke:color-mix(in srgb, var(--accent) 70%, transparent);stroke-width:1.5px;stroke-dasharray:5 3;vector-effect:non-scaling-stroke;cursor:move}.plan-beam.on{fill:color-mix(in srgb, var(--accent) 30%, transparent);stroke:var(--accent)}@media (width<=760px){.room-shape-body{grid-template-columns:1fr}}.fields.two.tight,.fields.four{grid-template-columns:repeat(4,1fr)}.drawer-dialog{z-index:60;border-radius:16px;grid-template-rows:auto 1fr auto;width:min(980px,100vw - 32px);max-height:calc(100vh - 48px);display:grid;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.drawer-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 18px;display:flex}.drawer-head h3{margin:0;font-size:16px}.drawer-head>div{flex:1}.drawer-body{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);min-height:0;display:grid}.drawer-form{align-content:start;gap:14px;padding:12px 18px 18px;display:grid;overflow:auto}.drawer-form section{gap:8px;display:grid}.drawer-form h4{margin:0}.drawer-preview{border-left:1px solid var(--line);align-content:start;gap:12px;padding:16px 18px;display:grid;overflow:auto}.opening-sketch{width:100%;height:340px}.sketch-element{fill:none;stroke:var(--muted);stroke-width:4px;vector-effect:non-scaling-stroke}.sketch-board{fill:color-mix(in srgb, var(--muted) 35%, transparent)}.sketch-front{fill:color-mix(in srgb, var(--accent) 22%, transparent);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.sketch-handle{stroke:var(--fg);stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke}.sketch-front.picked{fill:color-mix(in srgb, var(--accent) 45%, transparent);stroke-width:2.5px}.sketch-size{fill:var(--fg);text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums;pointer-events:none}.drawer-rows{gap:4px;display:grid}.sketch-inner{fill:color-mix(in srgb, var(--fg) 8%, transparent);stroke:var(--fg);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.drawer-row{border-radius:var(--radius-sm);grid-template-columns:58px repeat(4,minmax(0,1fr)) 28px;align-items:center;gap:6px;padding:2px 4px;display:grid}.drawer-row-inner{align-items:center;gap:8px;padding:0 4px 4px 22px;display:flex}.drawer-row-inner .segmented{flex:1}.drawer-row.head{color:var(--muted);font-size:12px}.drawer-row.picked{background:var(--accent-soft)}.drawer-row-name{font-variant-numeric:tabular-nums;font-size:13px}.drawer-row .own .num-field{border-color:var(--accent)}.drawer-row .own input{font-weight:600}.drawer-sizes{border-collapse:collapse;font-size:14px}.drawer-sizes th{text-align:left;color:var(--muted);padding:3px 12px 3px 0;font-weight:500}.drawer-problem{color:var(--error);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.drawer-problem.warn{color:var(--warn)}.drawer-foot{border-top:1px solid var(--line);align-items:center;gap:8px;padding:12px 18px;display:flex}.drawer-foot>span{flex:1}.segmented{gap:4px;display:flex}.segmented button{flex:1}.segmented button.on{border-color:var(--accent);color:var(--accent)}@media (width<=760px){.drawer-body{grid-template-columns:1fr}.drawer-preview{border-left:none;border-top:1px solid var(--line)}.fields.four{grid-template-columns:repeat(2,1fr)}}.home-hero{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.catalog-link{margin-left:auto}.catalog{box-sizing:border-box;grid-template-rows:auto 1fr;gap:12px;height:100vh;padding:12px;display:grid}.catalog-head{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 14px;display:flex}.catalog-head h2{margin:0;font-size:18px}.catalog-tabs{gap:4px;display:flex}.catalog-tabs button.on,.catalog-list button.on,.segmented button.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.catalog-head .grow,.catalog-editor-head .grow{flex:1}.catalog-body{grid-template-columns:250px 320px minmax(0,1fr);gap:12px;min-height:0;display:grid}.catalog-col{border-radius:var(--radius);flex-direction:column;gap:8px;min-height:0;padding:12px;display:flex;overflow:hidden}.catalog-col h4{margin:0}.catalog-col.editor{display:block;overflow:auto}.catalog-col.editor>*+*{margin-top:10px}.catalog-list{flex:1;align-content:start;gap:2px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.catalog-list button{text-align:left;background:0 0;border-color:#0000;justify-content:flex-start;align-items:center;gap:8px;width:100%;padding:5px 8px;display:flex}.catalog-list button>span:not(.swatch){text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.catalog-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:90px;font-size:12px;overflow:hidden}.catalog-list .swatch{flex:none;width:26px;height:20px}.badge{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:99px;padding:1px 6px;font-size:11px;font-style:normal}.catalog-actions{flex-wrap:wrap;gap:6px;display:flex}.catalog-actions>*{font-size:13px}.catalog-editor-head{align-items:center;gap:8px;display:flex}.catalog-editor-head h3{margin:0}.catalog-grid{grid-template-columns:170px minmax(0,1fr);gap:14px;display:grid}.material-sample{align-content:start;gap:8px;display:grid}.material-sample img,.material-sample .no-picture{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line);width:170px;height:170px}.material-sample .no-picture{color:var(--muted);place-items:center;font-size:13px;display:grid}.fields-block{gap:8px;display:grid}.fields .checks{align-content:end;gap:4px;display:grid}.fields input[type=color]{height:32px;padding:2px!important}.price-table{border-collapse:collapse;width:100%;font-size:14px}.price-table th{text-align:left;color:var(--muted);padding:4px;font-size:12px;font-weight:500}.price-table td{padding:2px 4px}.price-table input:not([type=checkbox]){box-sizing:border-box;width:100%;min-width:0;font-size:14px;padding:5px 6px!important}@media (width<=900px){.catalog{height:auto}.catalog-body{grid-template-columns:1fr}.catalog-list{max-height:260px}.catalog-grid{grid-template-columns:1fr}}.kind-choice{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.kind-choice button{justify-items:center;gap:4px;padding:10px 6px 8px;display:grid}.kind-choice button.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.kind-icon{fill:none;stroke:currentColor;stroke-width:1.6px;width:44px;height:40px}.kind-icon circle{fill:currentColor;stroke:none}.hinge-row{align-items:center;gap:10px;display:flex}.hinge-row>span{flex:1;font-size:14px}.hinge-row button.on{border-color:var(--accent);color:var(--accent)}.stepper{align-items:center;gap:8px;display:flex}.stepper button{width:30px;padding:4px 0;font-size:16px;line-height:1}.stepper b{text-align:center;min-width:18px;font-size:16px}button.link{color:var(--accent);background:0 0;border:none;padding:0 4px;font-size:13px;font-weight:400}.sketch-open{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke;opacity:.7}.sketch-hinge{fill:var(--accent-2)}.actions.two{grid-template-columns:1fr 1fr;gap:6px;display:grid}@media (width<=760px){.kind-choice{grid-template-columns:repeat(2,1fr)}}.placement-bar{border-radius:var(--radius);z-index:15;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:8px 10px;display:flex;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}.ceiling-bar>svg{color:var(--warn);flex:none}.ceiling-bar .mini-number{width:64px;margin:0 4px;padding:3px 6px}.statusbar .status-warn{pointer-events:auto;min-height:0;color:var(--warn);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0 4px;display:inline-flex}.statusbar .status-warn:hover{text-decoration:underline}.stage3d.dropping canvas{cursor:copy!important}.dropper-parts{flex-wrap:wrap;gap:2px 10px;display:flex}.placement-bar .segmented{gap:2px}.placement-bar .segmented button{padding:5px 10px;font-size:13px}.placement-bar>span{max-width:330px}.actions.three{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.beside-plus{width:30px;height:30px;color:var(--accent-fg);background:var(--accent);cursor:pointer;opacity:.85;border:2px solid #fffc;border-radius:50%;padding:0;font-size:20px;font-weight:600;line-height:1;box-shadow:0 4px 14px #0006}.beside-plus:hover{opacity:1;transform:scale(1.12)}.beside-picker{border-radius:var(--radius);z-index:16;flex-direction:column;gap:8px;width:300px;max-height:calc(100% - 140px);padding:12px;display:flex;position:absolute;top:72px;right:16px}.beside-picker header{align-items:center;gap:8px;display:flex}.beside-picker header b{flex:1;font-size:14px}.beside-picker h5{color:var(--muted);margin:4px 0 0;font-size:12px;font-weight:500}.beside-picker .chips{flex-wrap:wrap;gap:4px;display:flex}.beside-picker .chips button{padding:4px 8px;font-size:13px}.beside-picker ul{gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.beside-picker li button{text-align:left;background:0 0;border-color:#0000;justify-content:flex-start;align-items:center;gap:8px;width:100%;padding:5px 8px;font-size:14px;display:flex}.beside-picker li button:hover{background:var(--accent-soft)}.beside-picker li span{flex:1}.beside-picker li small{color:var(--muted);font-size:12px}.mode-switch{border:1px solid var(--line);background:var(--raise);border-radius:999px;gap:2px;padding:2px;display:flex}.mode-switch button{color:var(--muted);background:0 0;border:none;border-radius:999px;padding:4px 11px;font-size:13px}.mode-switch button.on{background:var(--accent-soft);color:var(--accent)}.simple-picker{border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--raise);gap:8px;padding:10px;display:grid}.simple-picker p{margin:0}@media (width<=760px){.mode-switch button{padding:4px 8px}}@media (width<=1750px){.dock.full~.topbar-right .palette-button kbd,.dock.full~.topbar-right .palette-button span{display:none}.dock.full{padding:3px}.dock.full .dock-item{flex-direction:column;gap:1px;padding:4px 7px 3px;position:relative}.dock.full .dock-item span{white-space:nowrap;font-size:10.5px;line-height:1.15}.dock.full .dock-item .lock-mark{position:absolute;top:3px;right:3px}}@media (width<=1300px){.topbar .project-name{width:150px}}@media (width<=1240px){.dock.full .dock-item span{display:none}}.kind-icon .behind,.sketch-front.behind{stroke-dasharray:3 2}.sketch-front.behind{fill:color-mix(in srgb, var(--accent) 10%, transparent)}.layout-dialog .chips{flex-wrap:wrap;gap:6px;display:flex}.layout-dialog .chips button{padding:5px 10px;font-size:13px}.zone-list{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.zone-list li{grid-template-columns:20px 112px minmax(0,1fr) 92px 64px auto;align-items:center;gap:6px;display:grid}.zone-no{background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.zone-size{align-items:center;gap:4px;display:flex}.zone-size input{width:100%;min-width:0}.zone-size small{color:var(--muted);font-size:12px}.zone-got{text-align:right;white-space:nowrap}.zone-tools{gap:2px;display:flex}.stepper.small{gap:4px}.stepper.small button{width:24px;padding:2px 0;font-size:15px}.stepper.small b{font-size:15px}.sketch-board.divider{fill:color-mix(in srgb, var(--accent-2) 45%, transparent)}.sketch-board.divider.strip{fill:color-mix(in srgb, var(--accent-2) 20%, transparent);stroke:var(--accent-2);stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.sketch-front.panel{fill:color-mix(in srgb, var(--muted) 30%, transparent);stroke:var(--muted)}.layout-dialog .strip-field{flex-wrap:wrap;align-items:center;gap:4px}.layout-dialog .strip-field input[type=number]{width:64px}.sketch-label{fill:var(--muted)}@media (width<=760px){.zone-list li{grid-template-columns:20px 80px minmax(0,1fr) auto}.zone-got,.zone-list li>span:empty{display:none}}.layout-dialog .chips button.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.interior-columns{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.interior-column-head{grid-template-columns:minmax(0,1fr) 64px auto;align-items:center;gap:6px;margin-top:8px;display:grid}.interior-column-head .zone-size input{max-width:110px}.sketch-board.shelf{fill:color-mix(in srgb, var(--accent-2) 25%, transparent)}.sketch-lattice line{stroke:color-mix(in srgb, var(--accent-2) 45%, transparent);pointer-events:none}.interior-lattice{border-top:1px solid var(--line);gap:4px;margin-top:10px;padding-top:8px;display:grid}.sketch-rail{fill:var(--fg)}.sketch-opening{fill:none;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.sketch-cell{fill:#0000;cursor:pointer}.sketch-cell.on{fill:var(--accent-soft)}.sketch-pick{fill:#0000;stroke:var(--muted);stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke;cursor:pointer}.sketch-pick:hover{fill:color-mix(in srgb, var(--accent) 10%, transparent)}.lib-categories{scrollbar-width:none;gap:6px;padding:10px 12px 4px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000);mask-image:linear-gradient(90deg,#000 88%,#0000)}.lib-categories::-webkit-scrollbar{display:none}.lib-categories button{background:var(--raise);color:var(--muted);border-color:#0000;border-radius:999px;flex:none;padding:5px 10px;font-size:13px}.lib-categories button small{opacity:.7;font-size:11px}.lib-categories button.on{color:var(--accent);background:var(--accent-soft);font-weight:600}.lib-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px;min-height:0;padding:0 12px 12px;display:grid;overflow-y:auto}.lib-card{border-radius:var(--radius-sm);background:var(--panel-solid);border:1px solid var(--line);white-space:normal;text-align:center;cursor:grab;grid-template-rows:auto auto;justify-items:stretch;gap:6px;padding:6px 6px 8px;display:grid}.lib-card:hover:not(:disabled){border-color:var(--accent);background:var(--panel-solid);box-shadow:var(--shadow-sm)}.lib-card img,.lib-card .thumb-empty{aspect-ratio:4/3;background:var(--canvas-bg);object-fit:contain;border-radius:8px;width:100%}.lib-card .thumb-empty{color:var(--muted);place-items:center;display:grid}.lib-card .thumb-empty.drawing{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.lib-card span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.25;display:-webkit-box;overflow:hidden}.lib-card-wrap{display:grid;position:relative}.lib-card-wrap>.lib-card-more{border:1px solid var(--line);background:var(--panel-solid);color:var(--muted);opacity:0;border-radius:8px;padding:4px;transition:opacity .12s;position:absolute;top:10px;right:10px}.lib-card-wrap:hover>.lib-card-more,.lib-card-wrap>.lib-card-more:focus-visible,.lib-card-wrap>.lib-card-more.on{opacity:1}.lib-card-more:hover{color:var(--fg)}@media (hover:none){.lib-card-wrap>.lib-card-more{opacity:1}}.lib-card-menu{z-index:5;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel-solid);width:max-content;max-width:230px;box-shadow:var(--shadow);padding:4px;display:grid;position:absolute;top:40px}.lib-card-menu.left{left:6px}.lib-card-menu.right{right:6px}.lib-card-menu button{text-align:left;background:0 0;border:0;justify-content:flex-start;gap:8px;font-size:13px}.lib-card-menu button:hover:not(:disabled){background:var(--raise-2)}.lib-group{color:var(--muted);grid-column:1/-1;margin:6px 2px 0;font-size:12px;font-weight:600}.lib-empty{text-align:center;color:var(--muted);grid-column:1/-1;justify-items:center;gap:8px;padding:18px 8px;display:grid}.lib-empty p{margin:0;font-size:13px}.component-dialog{border-radius:16px;width:min(440px,100vw - 32px);display:grid;overflow:hidden}.component-dialog-body{gap:12px;padding:14px 18px;display:grid}.component-dialog-body p{margin:0}.lib-draw{text-align:left;color:var(--accent-fg);background:var(--accent);border-color:var(--accent);border-radius:12px;align-items:center;gap:10px;margin:0 10px 8px;padding:9px 12px;display:flex}.lib-draw:hover:not(:disabled){background:var(--accent-hover)}.lib-draw span{line-height:1.25;display:grid}.lib-draw small{opacity:.85;font-size:.75rem}.lib-bed{color:inherit;background:0 0}.lib-bed:hover:not(:disabled){color:var(--accent-fg)}.lib-import{justify-content:center;gap:8px;margin:0 10px 8px}.library-panel.dropping{outline:2px dashed var(--accent);outline-offset:-4px}.handle-models{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;max-height:260px;display:grid;overflow-y:auto}.handle-models .lib-card{cursor:pointer;font-size:12px}.handle-models .lib-card.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.handle-import{color:var(--muted);align-content:center;justify-items:center}.component-dialog.handle-dialog{grid-template-rows:auto minmax(0,1fr) auto;width:min(520px,100vw - 32px);max-height:calc(88vh - 16px)}.handle-dialog .component-dialog-body{overflow-y:auto}.shape-section{gap:8px;display:grid}.shape-file{cursor:pointer;justify-self:start}.shape-editor-dialog{z-index:70;width:min(1180px,100vw - 32px)}.shape-editor-body{grid-template-columns:minmax(0,1fr) 280px;gap:16px;min-height:0;padding:16px 18px;display:grid;overflow:auto}.shape-canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:min(62vh,640px)}.shape-piece{fill:none;stroke:#0000;stroke-width:12px;vector-effect:non-scaling-stroke;cursor:pointer}.shape-piece:hover,.shape-piece.on{stroke:color-mix(in srgb, var(--accent) 45%, transparent)}.shape-pocket{fill:color-mix(in srgb, var(--accent) 34%, var(--panel-solid));stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.shape-point{fill:var(--panel-solid);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:grab}.shape-point.on{fill:var(--accent)}.shape-arc-handle{fill:var(--accent);stroke:var(--panel-solid);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:move}.shape-editor-side,.shape-editor-group{align-content:start;gap:8px;min-width:0;display:grid}@media (width<=760px){.shape-editor-body{grid-template-columns:1fr}.shape-canvas{height:46vh}}.component-dialog.model-import{grid-template-rows:auto minmax(0,1fr) auto;width:min(520px,100vw - 32px);max-height:calc(88vh - 16px)}.model-import .component-dialog-body{overflow-y:auto}.model-drop{border:1px dashed var(--line);border-radius:var(--radius-sm);text-align:center;white-space:normal;background:0 0;justify-items:center;gap:4px;padding:14px;display:grid}.model-drop.on{border-color:var(--accent);background:var(--raise-2)}.model-files{overflow-wrap:anywhere;font-weight:600}.model-import-view{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--raise-2);place-items:center;height:200px;display:grid;position:relative;overflow:hidden}.model-import-preview{position:absolute;inset:0}.model-import-hint{color:var(--muted);pointer-events:none;font-size:11px;position:absolute;bottom:6px;left:8px}.model-import-grid{grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;font-size:13px;display:grid}.model-import-grid .segmented{justify-self:start}.model-import-size{font-variant-numeric:tabular-nums;font-weight:600}.component-dialog-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.component-dialog.ask-dialog{width:min(400px,100vw - 32px)}.ask-dialog .ask-message{align-items:flex-start;gap:8px;font-weight:600;display:flex}.ask-dialog .ask-message .icon{color:var(--error);flex:none}.ask-dialog .component-dialog-body{padding-top:18px}.warning{color:var(--warn);align-items:flex-start;gap:6px;display:flex}.dim-label{background:var(--hud-bg);border:1px solid var(--line);color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:var(--shadow-sm);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:7px;padding:2px 7px;font:600 12px/1.3 Segoe UI,sans-serif}.dim-label.gap{color:var(--muted);font-weight:500}.dim-label.kote{box-shadow:none;border-radius:5px;padding:0 5px;font-size:11px}.resize-handle{background:var(--accent);box-shadow:var(--shadow-sm);opacity:.9;touch-action:none;border:2px solid #fff;border-radius:999px;padding:0}.resize-handle.horizontal{cursor:ew-resize;width:12px;height:34px}.resize-handle.vertical{cursor:ns-resize;width:34px;height:12px}.resize-handle:hover:not(:disabled),.resize-handle.active{opacity:1;background:var(--accent-hover);transform:scale(1.15)}.kind-choice.three{grid-template-columns:repeat(3,1fr)}.kind-choice.two{grid-template-columns:repeat(2,1fr)}.sketch-wall{fill:none;stroke:var(--fg);stroke-width:6px;vector-effect:non-scaling-stroke;opacity:.35}.kind-icon .room{fill:none;stroke-dasharray:2 2;opacity:.6}.kind-icon .run{fill:currentColor;stroke:none;opacity:.55}.chips.toggles{flex-wrap:wrap;gap:6px;display:flex}.chips.toggles button{color:var(--muted);border-radius:999px;padding:6px 12px;font-size:13px}.chips.toggles button.on{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.chips.toggles .chip-gap{width:10px}.cladding-sketch .cladding-slat{stroke:#00000059;stroke-width:1.5px;vector-effect:non-scaling-stroke}.cladding-sketch .cladding-opening{fill:color-mix(in srgb, var(--accent) 10%, transparent);stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.cutouts{gap:6px;display:grid}.cutout-row{grid-template-columns:minmax(70px,1fr) repeat(4,minmax(0,92px)) auto;align-items:center;gap:6px;display:grid}.cutout-row select{min-width:0}.cutout-name{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.cutout-mark{fill:color-mix(in srgb, var(--warn) 30%, white);stroke:var(--warn);stroke-width:1.5px;vector-effect:non-scaling-stroke}.skirting-run{stroke:var(--accent);stroke-linecap:butt}.plinth-run{fill:var(--accent)}.cladding-sketch .frames-area{fill:none;stroke:var(--line-2);stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.cladding-sketch .frames-frame{fill:none;stroke:#cfc7b8}.cladding-sketch .frames-rail{fill:#cfc7b8}.cladding-sketch .cladding-backing{stroke:#00000080;stroke-width:1px;vector-effect:non-scaling-stroke}.backsplash-run{gap:6px;margin-bottom:14px;display:grid}.backsplash-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.backsplash-strip{width:100%;height:44px}.backsplash-strip rect{fill:color-mix(in srgb, var(--accent) 16%, transparent);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.hood-preview{width:100%;max-height:260px}.hood-preview rect{stroke-width:1.5px;vector-effect:non-scaling-stroke}.hood-carcass{fill:#0000;stroke:var(--muted)}.hood-door{fill:color-mix(in srgb, var(--accent) 16%, transparent);stroke:var(--accent)}.hood-body{fill:color-mix(in srgb, var(--fg) 55%, transparent);stroke:var(--fg)}.hood-body.hidden-hood{fill:#0000;stroke-dasharray:6 4}.style-choice{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.style-card{grid-template-columns:minmax(0,1fr);justify-items:stretch;gap:6px;padding:8px 8px 6px;display:grid}.style-choice .style-card.on{border-color:var(--accent);background:var(--accent-soft)}.style-sample{background-position:50%;background-size:140px;background:var(--line-2);border-radius:5px;grid-template-rows:16px 6px 32px 6px;grid-template-columns:7px 1fr 1fr;gap:2px;width:100%;padding:2px;display:grid}.style-sample>span{background-color:var(--raise-2);background-position:50%;background-size:160px;border-radius:2px;min-width:0}.style-sample .top{grid-column:1/-1}.style-sample .upper,.style-sample .upper-door{margin-bottom:5px}.style-sample .floor{border-radius:0 0 4px 4px;grid-column:1/-1;margin:2px -2px -2px}.style-sample .door,.style-sample .upper-door{position:relative}.style-sample i{background-color:#8a8f94;background-size:cover;border-radius:1px;height:2px;position:absolute;left:30%;right:30%;box-shadow:0 0 0 .5px #00000040}.style-sample .door i{top:4px}.style-sample .upper-door i{bottom:2px}.style-name{text-align:center;overflow-wrap:anywhere;font-size:12.5px;line-height:1.25}.style-choice .style-card.on .style-name{color:var(--accent)}.style-note{min-height:1.4em;margin:6px 0 10px}.fields.two.finish{align-items:start}.suggested{flex-wrap:wrap;align-items:center;gap:5px;margin-top:2px;display:flex}.suggested>span{color:var(--muted);margin-right:2px;font-size:11.5px}.suggested button{border-radius:6px;min-height:0;padding:2px}.suggested button.on,.suggested button.on:hover{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.suggested-swatch{background-color:var(--raise-2);background-position:50%;background-size:cover;border-radius:4px;width:20px;height:20px;display:block}.wide-input{width:100%}.kitchen-sketch .k-worktop{fill:color-mix(in srgb, var(--muted) 18%, transparent);stroke:color-mix(in srgb, var(--muted) 45%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}:is(.kitchen-sketch,.room-sketch) .k-base{fill:color-mix(in srgb, var(--accent) 16%, transparent);stroke:var(--accent);stroke-width:1.2px;vector-effect:non-scaling-stroke}:is(.kitchen-sketch,.room-sketch) .k-tall{fill:color-mix(in srgb, var(--accent) 38%, transparent);stroke:var(--accent);stroke-width:1.2px;vector-effect:non-scaling-stroke}:is(.kitchen-sketch,.room-sketch) .k-upper{fill:none;stroke:var(--accent-2);stroke-width:1px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}:is(.kitchen-sketch,.room-sketch) .k-mark{fill:var(--accent);font-weight:700}.kitchen-sketch .k-panel{fill:var(--accent);stroke:none}.kitchen-sketch .k-bar{fill:color-mix(in srgb, var(--muted) 30%, transparent);stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.kitchen-sketch .k-stool{fill:var(--panel-solid);stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.kitchen-sketch .k-vent{fill:var(--panel-solid);stroke:var(--warn);stroke-width:2px;vector-effect:non-scaling-stroke}.kitchen-sketch .k-duct{fill:none;stroke:var(--warn);stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.swap-sketch .swappable{cursor:pointer;outline:none}.swap-sketch g:not(.swappable,.sketch-plan){pointer-events:none}.swap-sketch .swappable:is(:hover,:focus-visible) rect{fill:color-mix(in srgb, var(--accent) 30%, transparent)}.swap-sketch .swappable.picked rect{fill:color-mix(in srgb, var(--accent) 50%, transparent);stroke-width:2.5px}.swap-hint{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.choice-group{gap:6px;display:grid}.room-sketch .r-floor{fill:color-mix(in srgb, var(--muted) 10%, transparent);stroke:color-mix(in srgb, var(--muted) 35%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.room-sketch .r-bed{fill:color-mix(in srgb, var(--accent) 26%, transparent);stroke:var(--accent);stroke-width:1.2px;vector-effect:non-scaling-stroke}.room-sketch .r-model{fill:color-mix(in srgb, var(--accent-2) 14%, transparent);stroke:var(--accent-2);stroke-width:1px;vector-effect:non-scaling-stroke}.rounding-dialog .drawer-body{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.rounding-boards{gap:3px;margin:0;padding:0;list-style:none;display:grid}.rounding-boards .board-row:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 6%, transparent)}.rounding-boards .board-row:disabled{opacity:.55}.rounding-boards .badge{margin-left:6px}.rounding{gap:12px;display:grid}.rounding.compact{grid-template-columns:minmax(0,1fr)}.rounding,.rounding-controls,.rounding-controls>*{min-width:0}.rounding-sketch{width:100%;max-height:280px}.rounding.compact .rounding-sketch{max-height:120px}.rounding-rect{fill:none;stroke:var(--muted);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;opacity:.6}.rounding-board{fill:color-mix(in srgb, var(--accent) 16%, transparent);stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.rounding-corner{fill:var(--panel-solid);stroke:var(--muted);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:pointer}.rounding-corner.on{fill:var(--accent);stroke:var(--accent)}.rounding-controls{gap:8px;display:grid}.corner-picks{grid-template-columns:1fr 1fr;gap:4px;display:grid}.corner-picks button{text-align:left;white-space:normal;min-width:0;padding:5px 8px;font-size:13px;line-height:1.25;display:block}.corner-picks button span{display:block}.corner-picks button.on,.rounding .chips button.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.corner-all{align-items:center;gap:6px;display:flex}.rounding .chips{flex-wrap:wrap;gap:6px;display:flex}.rounding .chips button{padding:4px 10px;font-size:13px}.rounding-radius .with-unit{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.rounding-radius input{width:90px}.board-editor>*,.rounding .actions.two button{min-width:0}.machining-cut{fill:var(--panel-solid);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:pointer}.machining-cut.pocket{fill:color-mix(in srgb, var(--accent) 34%, var(--panel-solid));stroke-dasharray:4 3}.machining-cut.on{stroke-width:3px}.machining-led{fill:#ffd98a;stroke:#c98a12;stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:pointer}.machining-led.glass{fill:#bfe3ec;stroke:#3f8ea3}.machining-led.on{stroke-width:3px}.machining-hatch{stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.machining-bevel{stroke:none;opacity:.8}.machining-cutout,.machining-led-fields,.machining-edges,.machining-anchor,.machining-style{gap:6px;min-width:0;display:grid}.machining-cutout .link.danger,.machining-led-fields .link.danger{justify-self:start}.machining-num .with-unit{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.machining-num input{width:80px}.machining-back{align-self:end;padding-bottom:6px}.machining-edge{border:1px solid var(--line);border-radius:8px;gap:6px;padding:6px 8px;display:grid}.machining-edge.on{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.machining-style-open{justify-self:start;margin-top:10px}.machining-style{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.machining-checks{flex-wrap:wrap;gap:4px 14px;display:flex}.machining-targets{max-height:180px;overflow:auto}.machining-targets .board-row{width:100%}.group-machining-boards{max-height:340px;overflow:auto}.group-machining-boards li{align-items:flex-start;gap:4px;display:flex}.group-machining-boards .board-row{flex:1;min-width:0}.group-machining-boards li.sample .board-row{background:var(--accent-soft)}.group-machining-boards .mini.on{color:var(--accent);opacity:1}.group-machining-reason{color:var(--warn);align-items:flex-start;gap:4px;margin-top:2px;font-size:12px;display:flex}.group-machining-without{margin-top:8px}.group-machining-parts{margin-top:12px}.group-machining-parts .badge{margin-left:6px}.group-machining-summary{gap:8px;margin:12px 0;display:grid}.group-machining-summary p{margin:0}.group-machining-list{align-items:start;font-size:13px;display:grid}.group-machining-list>span{align-items:center;gap:6px;display:flex}.group-machining-list ul{max-height:180px;margin:4px 0 0;padding-left:20px;overflow:auto}.group-machining-list .link{color:inherit;padding:0;text-decoration:underline}.board-group{gap:3px;display:grid}.board-group+.board-group{margin-top:8px}.board-group-head{letter-spacing:.04em;color:var(--muted);margin:0;padding:2px 8px;font-size:12px;font-weight:600}.board-group-head.part{color:var(--fg);border-left:2px solid var(--accent)}.board-row .badge{margin-left:6px}.auth{box-sizing:border-box;background:var(--canvas-bg);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-top{position:fixed;top:14px;right:16px}.auth-card{border-radius:20px;gap:18px;width:min(420px,100%);padding:28px;animation:.35s ease-out rise;display:grid}.auth-form{gap:12px;display:grid}.auth-form h2{margin:4px 0 0;font-size:20px}.auth-form label{color:var(--muted);gap:5px;font-size:13px;display:grid}.auth-form input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);outline:none;padding:9px 12px;font-size:15px}.auth-form input:focus{border-color:var(--accent);box-shadow:var(--glow)}.auth-notice{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--ok) 12%, transparent);color:var(--ok);margin:0;padding:8px 12px;font-size:14px}.auth-providers{text-align:center;justify-items:stretch;gap:8px;display:grid}.auth-links{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.account{position:relative}.account-button{max-width:260px}.account-firm{text-overflow:ellipsis;overflow:hidden}.account-menu{z-index:50;border-radius:14px;gap:2px;min-width:250px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.account-menu button{border-color:#0000;justify-content:flex-start}.account-who{border-bottom:1px solid var(--line);gap:2px;margin-bottom:4px;padding:6px 10px 10px;display:grid}.account-section{border-bottom:1px solid var(--line);gap:2px;margin-bottom:4px;padding:4px 0 6px;display:grid}.account-section>.muted{padding:2px 10px}.firm-title{margin:0;font-size:24px}.firm-section{border-radius:18px;margin-top:22px;padding:18px}.firm-section h2{margin:0 0 12px;font-size:18px}.firm-table{border-collapse:collapse;width:100%;margin-top:10px}.firm-table td{border-top:1px solid var(--line);vertical-align:middle;padding:8px 6px}.firm-actions{text-align:right}@media (width<=640px){.account-firm{display:none}}.firm-danger{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.firm-rename{align-items:center;gap:10px;display:flex}.firm-rename input.firm-title{font:inherit;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;padding:2px 8px;font-size:24px;font-weight:700}.firm-rename input.firm-title:hover,.firm-rename input.firm-title:focus{border-color:var(--line-2);background:var(--inset);outline:none}.component-dialog.build-dialog{grid-template-rows:auto minmax(0,1fr) auto;width:min(860px,100vw - 32px);max-height:calc(88vh - 16px)}.build-body{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;overflow-y:auto}.build-preview,.build-form{gap:10px;display:grid}.build-preview{position:sticky;top:0}.build-form h5{margin:4px 0 0}.build-starts{flex-wrap:wrap;gap:4px;display:flex}.build-sketches{grid-template-columns:1.6fr 1fr;gap:8px;display:grid}.build-sketch{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--raise-2);gap:4px;margin:0;padding:8px;display:grid}.build-sketch svg{width:100%;height:220px}.build-sketch figcaption{color:var(--muted);text-align:center;font-size:11px}.build-outline{fill:none;stroke:var(--line);stroke-dasharray:6 6;vector-effect:non-scaling-stroke}.build-board{fill:color-mix(in srgb, var(--accent) 22%, transparent);stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke}.build-board.shelf{fill:color-mix(in srgb, var(--accent) 12%, transparent)}.build-board.back{fill:color-mix(in srgb, var(--muted) 30%, transparent);stroke:var(--muted)}.build-board.plinth{fill:color-mix(in srgb, var(--muted) 18%, transparent);stroke:var(--muted)}.build-board.door{fill:color-mix(in srgb, var(--accent) 45%, transparent)}.build-grid{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px;font-size:13px;display:grid}.build-grid .segmented button{white-space:nowrap;padding-inline:6px}.build-number{align-items:center;gap:6px;display:flex}.build-number input{width:100%;min-width:0}.build-number small{white-space:nowrap}.build-back,.build-shelves{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px;display:grid}.build-back .material-button{min-width:0}.boards-bar{align-items:center;gap:6px;display:flex}.boards-bar .search{flex:1}.boards-bar .mini.text.on{border-color:var(--accent);color:var(--accent)}.new-board{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:var(--inset);border-radius:12px;gap:10px;padding:12px;animation:.18s ease-out rise;display:grid}.new-board p{margin:0}.new-board-kinds{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:4px;display:grid}.new-board-kinds button{padding:6px 4px;font-size:12px}.new-board-kinds button.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.new-board-group{gap:3px;display:grid}.new-board .segmented{flex-wrap:nowrap}.new-board .segmented button{min-width:0;padding:6px 4px;font-size:12px}.new-board-preview{gap:4px;display:grid}.new-board-preview p{margin:0}.new-board-sketch{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel-solid);padding:6px}.new-board-sketch.empty{place-items:center;height:150px;display:grid}.new-board-sketch svg{width:100%;height:150px;display:block}.new-board-sketch rect{fill:var(--raise-2);stroke:var(--line-2);stroke-width:1px;vector-effect:non-scaling-stroke}.new-board-sketch rect.outline{fill:none;stroke:var(--muted);stroke-dasharray:4 3}.new-board-sketch .front rect{fill:#0000}.new-board-sketch .moved rect{fill:color-mix(in srgb, var(--warn) 28%, transparent);stroke:var(--warn)}.new-board-sketch .clash rect{fill:color-mix(in srgb, var(--error) 28%, transparent);stroke:var(--error)}.new-board-sketch .new rect{fill:color-mix(in srgb, var(--accent) 55%, transparent);stroke:var(--accent);stroke-width:2px}.new-board-sketch text{fill:var(--muted);text-anchor:middle}.new-board-note.moved{color:var(--warn)}.new-board-note.bad{color:var(--error);margin:0}@media (width<=760px){.build-body{grid-template-columns:1fr}.build-preview{position:static}.build-sketch svg{height:160px}}.s-Inquiry{--st:#6a7894}.s-Offered{--st:#2f6fed}.s-Agreed{--st:#7b4fd6}.s-Production{--st:#c46f17}.s-Installation{--st:#0d8794}.s-Done{--st:#1e9467}.s-Canceled{--st:#8a8f98}:root[data-theme=dark] .s-Inquiry{--st:#9aa5bb}:root[data-theme=dark] .s-Offered{--st:#6d9bff}:root[data-theme=dark] .s-Agreed{--st:#a98bf0}:root[data-theme=dark] .s-Production{--st:#f0a04b}:root[data-theme=dark] .s-Installation{--st:#4cc3cf}:root[data-theme=dark] .s-Done{--st:#4cc38a}:root[data-theme=dark] .s-Canceled{--st:#7d838d}.job-status{white-space:nowrap;color:var(--st);background:color-mix(in srgb, var(--st) 13%, transparent);border-radius:99px;padding:1px 8px;font-size:11.5px;font-weight:600}.job-line{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:8px;font-size:12px;display:flex}.job-line[role=button]{cursor:pointer}.job-line[role=button]:hover .job-status{background:color-mix(in srgb, var(--st) 22%, transparent)}.job-customer{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;color:var(--fg);align-items:center;gap:3px;display:inline-flex;overflow:hidden}.job-due.late{color:var(--error);align-items:center;gap:3px;font-weight:600;display:inline-flex}.job-owed{color:var(--warn);font-weight:600}.home-projects-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.home-projects-head h2{margin:0 auto 0 0}.job-summary{flex-wrap:wrap;gap:6px;display:flex}.job-summary .chip{border:1px solid var(--line);background:var(--raise);cursor:pointer;align-items:center;gap:5px;display:inline-flex}.job-summary .chip b{color:var(--fg)}.job-summary .chip.late,.job-summary .chip.late b{color:var(--error)}.job-summary .chip.owed,.job-summary .chip.owed b{color:var(--warn)}.home-search{width:220px}.job-filter{margin-bottom:14px}.job-board{grid-auto-columns:minmax(170px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.job-column{border-radius:var(--radius);background:var(--raise);border:1px dashed #0000;min-height:220px;padding:10px;transition:background .15s,border-color .15s}.job-column.over{border-color:var(--accent);background:var(--accent-soft)}.job-column>header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.job-cards{gap:8px;display:grid}.job-card{border-left:3px solid var(--st);border-radius:var(--radius-sm);cursor:pointer;gap:2px;padding:10px 12px;display:grid}.job-card[draggable=true]{cursor:grab}.job-card:hover{box-shadow:var(--shadow-sm)}.job-card-head{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.job-card h3{overflow-wrap:anywhere;margin:0;font-size:14px}.job-card .job-line{margin-top:4px}.job-empty{text-align:center;margin:0;padding:18px 0}.component-dialog.job-dialog{background:var(--panel-solid);grid-template-rows:auto auto minmax(0,1fr) auto;width:min(640px,100vw - 32px);max-height:calc(88vh - 16px)}.job-body{gap:18px;overflow-y:auto}.job-body h4{color:var(--muted);margin:0 0 8px;font-size:13px;font-weight:600}.job-body p.muted.small,.job-body p.warning{margin-top:6px}.job-steps{flex-wrap:wrap;gap:4px;display:flex}.job-step{color:var(--muted);border-radius:99px;padding:5px 11px;font-size:13px}.job-step.on{color:var(--st);border-color:var(--st);background:color-mix(in srgb, var(--st) 13%, transparent);font-weight:600}.job-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.job-dialog input[type=date],.job-dialog input[type=tel],.job-dialog input[type=email],.job-dialog textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);outline:none;min-width:0;padding:6px 8px}.job-dialog input:focus,.job-dialog textarea:focus{border-color:var(--accent);box-shadow:var(--glow)}.job-hint{border-radius:var(--radius-sm);background:var(--accent-soft);margin:0 0 8px;padding:8px 10px}.job-customers{gap:2px;max-height:200px;margin:6px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.job-customers button{text-align:left;background:0 0;border-color:#0000;justify-content:flex-start;gap:8px;width:100%;padding:6px 8px}.job-customers button:hover{background:var(--raise-2)}.job-customers small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.job-customers .badge{margin-left:auto}.job-payments{border-collapse:collapse;width:100%;margin-top:12px;font-size:13px}.job-payments th{border-bottom:1px solid var(--line);color:var(--muted);text-align:left;padding:4px 6px;font-size:12px;font-weight:500}.job-payments td{border-bottom:1px solid var(--line);padding:4px 6px}.job-payments .num{text-align:right;font-variant-numeric:tabular-nums}.job-payments td:last-child{width:34px}.job-payments input{width:100%;font-size:13px;padding:4px 6px!important}.job-pay-new td{border-bottom:none}.job-totals{flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:14px;display:flex}.job-totals .owed{color:var(--warn)}.job-totals .over{color:var(--error)}.job-totals .settled{color:var(--ok)}.job-note{resize:vertical;width:100%;font-size:14px}.job-chip{border:1px solid color-mix(in srgb, var(--st) 30%, transparent);background:color-mix(in srgb, var(--st) 13%, transparent);max-width:260px;color:var(--st);white-space:nowrap;border-radius:99px;flex:none;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.job-chip.late svg{color:var(--error)}.job-chip-customer{text-overflow:ellipsis;color:var(--fg);font-weight:400;overflow:hidden}@media (width<=1100px){.job-chip-customer{display:none}}@media (width<=760px){.home-search{width:100%}.job-grid{grid-template-columns:1fr}.job-board{grid-auto-columns:minmax(78vw,1fr)}}.sheet-leftover{fill:#e3f3ea;stroke:#1e9467;stroke-width:3px;stroke-dasharray:18 10}.sheet-drawing text.leftover-text{fill:#146b4a;font-style:italic}.offcut-bar{gap:12px 16px;margin-top:10px}.offcut-bar .button{margin-left:auto}.keep-size{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.keep-size input{width:74px;padding:4px 6px}.with-projects{position:relative}.sheet-bar .with-projects>button{margin:0}.with-projects>button.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft)}.with-projects-menu{z-index:20;border-radius:var(--radius-sm);background:var(--panel-solid);width:min(360px,100vw - 32px);box-shadow:var(--shadow);gap:8px;padding:12px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.with-projects-menu ul{gap:2px;max-height:280px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.with-projects-menu label.check{align-items:center;gap:8px;padding:4px 2px;display:flex}.with-projects-menu label.check span:first-of-type{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.with-projects-menu button.link{justify-self:start}.with-projects-menu footer{justify-content:flex-end;gap:8px;display:flex}.sheet-bar .with-projects-menu footer button{margin:0}.offcut-summary{flex-wrap:wrap;align-items:center;gap:10px 16px;margin:12px 0;display:flex}.offcut-summary p{margin:0}.offcut-summary>.muted{flex:1;min-width:260px}.offcut-confirm{border-radius:var(--radius-sm);background:var(--accent-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.offcut-done{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--ok) 13%, transparent);color:var(--ok);align-items:center;gap:6px;padding:8px 12px;font-weight:600;display:inline-flex}.offcuts-page{grid-template-rows:auto minmax(0,1fr)}.offcuts-body{align-content:start;gap:14px;padding-bottom:24px;display:grid;overflow-y:auto}.offcut-add{border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:12px 14px;display:flex}.offcut-add .grow{flex:200px}.offcut-add .small-field{flex:0 110px}.offcut-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.offcut-tools .search{width:min(320px,100%)}.offcut-group h3{margin:4px 0 6px;font-size:15px}.offcut-table{border-collapse:collapse;width:100%;font-size:14px}.offcut-table th{border-bottom:1px solid var(--line-2);color:var(--muted);text-align:left;white-space:nowrap;padding:5px 8px;font-size:12px;font-weight:500}.offcut-table td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:5px 8px}.offcut-table .num{text-align:right}.offcut-table tr.used td{opacity:.6}.offcut-table td:last-child{text-align:right;width:70px}.inline-note{width:100%;min-width:120px;background:0 0!important;border-color:#0000!important;padding:3px 6px!important}.inline-note:hover,.inline-note:focus{border-color:var(--line)!important;background:var(--inset)!important}@media print{.offcuts-page{height:auto;padding:12mm;display:block}.offcuts-body{overflow:visible}.offcut-table,.offcut-group h3{color:#000}}.purchase-new,.purchase-plan,.purchase-stock,.purchase-suppliers{align-content:start;gap:14px;display:grid}.purchase-projects{border-radius:var(--radius);gap:10px;padding:12px 14px;display:grid}.purchase-projects>header,.purchase-projects>footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.purchase-projects h3{margin:0;font-size:15px}.purchase-projects ul{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px 16px;max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.purchase-projects label.check{align-items:center;gap:8px;min-width:0;padding:4px 2px;display:flex}.purchase-projects .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.badge.warn{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn)}.purchase-cutting{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 14px;display:flex}.purchase-group h3{margin:4px 0 6px;font-size:15px}.purchase-table,.order-table{border-collapse:collapse;width:100%;font-size:14px}.purchase-table th,.order-table th{border-bottom:1px solid var(--line-2);color:var(--muted);text-align:left;white-space:nowrap;padding:5px 8px;font-size:12px;font-weight:500}.purchase-table td,.order-table td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:4px 8px}.purchase-table .num,.order-table .num{text-align:right}.purchase-table td.short{color:var(--error);font-weight:600}.cell-input{width:100%;min-width:90px;font-size:13px;padding:3px 6px!important}input.cell-input.num{text-align:right;min-width:70px;max-width:110px}.kind-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:8px;height:8px;display:inline-block}.kind-dot[data-kind=EdgeBand]{background:var(--warn)}.kind-dot[data-kind=Fitting]{background:var(--ok)}.purchase-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 16px;display:flex}.purchase-actions .muted{flex:1;min-width:240px}.purchase-orders{grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:start;gap:14px;display:grid}.order-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.order-list button{text-align:left;justify-content:flex-start;gap:10px;width:100%}.order-list button.on{border-color:var(--accent);background:var(--accent-soft)}.order-list .grow{flex:1;min-width:0;display:grid}.order-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.order-no{font-variant-numeric:tabular-nums;font-weight:700}.order-status{white-space:nowrap;color:var(--accent-2);background:var(--raise-2);border-radius:99px;padding:1px 8px;font-size:11.5px;font-weight:600}.order-status.st-Sent{color:var(--accent);background:var(--accent-soft)}.order-status.st-Received{color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent)}.order-status.st-Canceled{color:var(--muted);text-decoration:line-through}.order-doc{gap:10px;min-width:0;display:grid}.order-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.order-send{gap:6px;display:inline-flex}.order-send input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);width:220px;padding:6px 8px}.order-paper{max-width:min(210mm,100%);overflow-x:auto}.order-head{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.order-head h2{margin:0 0 4px;font-size:18px}.order-head p{margin:0 0 2px}.order-head .right{text-align:right}.order-table tr.stock-only td{color:var(--muted)}.order-note{margin-top:12px}.order-note textarea{resize:vertical;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);width:100%;padding:6px 8px}.order-note-print{margin:10px 0 0}.supplier-form{border-radius:var(--radius);gap:12px;padding:14px;display:grid}.supplier-form footer{justify-content:flex-end;gap:8px;display:flex}.purchase-suppliers>button{justify-self:start}.supplier-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.supplier-list li{border-radius:var(--radius-sm);align-items:center;gap:8px;padding:10px 12px;display:flex}.supplier-list .grow{flex:1;min-width:0;display:grid}.offcuts-body>*,.purchase-orders>*,.order-doc>*,.purchase-plan>*,.purchase-new>*,.purchase-stock>*,.order-list li{min-width:0}.purchasing-page .catalog-tabs{flex-wrap:wrap;gap:6px;display:flex}@media (width<=900px){.purchase-orders{grid-template-columns:minmax(0,1fr)}.order-send,.order-send input{width:100%}.order-send input{flex:1;min-width:0}.paper.order-paper{padding:6mm}}@media print{.purchasing-page{height:auto;padding:0;display:block}.purchase-orders{display:block}.order-paper{overflow:visible}}.paper .order-table th{color:#555;border-bottom-color:#9aa0a9}.paper .order-table td{border-bottom-color:var(--paper-line)}.paper .order-table tr.stock-only td,.paper .order-head .muted,.paper .order-table td.muted{color:#666}.job-tabs{border-bottom:1px solid var(--line);gap:4px;padding:8px 18px 0;display:flex}.job-tabs button{border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--muted);background:0 0;border-color:#0000;margin-bottom:-1px;padding:7px 14px}.job-tabs button.on{border-color:var(--line);border-bottom-color:var(--panel-solid);background:var(--panel-solid);color:var(--fg);font-weight:600}.profit-compare{border-collapse:collapse;width:100%;font-size:14px}.profit-compare th{color:var(--muted);text-align:left;padding:4px 6px;font-size:12px;font-weight:500}.profit-compare td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:5px 6px}.profit-compare .num{text-align:right}.profit-compare tr.strong td{border-bottom:none;font-weight:700}.profit-compare td.worse{color:var(--warn)}.profit-compare td.loss,.profit-table td.profit{font-weight:700}.profit-compare td.loss,.profit-table tr.loss td.profit{color:var(--error)}.planned-hours{max-width:280px;margin-top:8px}.planned-hours input,.cost-add input,.cost-add select,.rate-field input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);min-width:0;padding:6px 8px}.hours-bar{background:var(--raise-2);border-radius:99px;height:8px;margin-top:8px;overflow:hidden}.hours-bar span{background:var(--ok);border-radius:99px;height:100%;display:block}.hours-bar span.over{background:var(--error)}.cost-add{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.cost-add input[type=date]{width:140px}.cost-add input:not([type]){width:120px}.cost-add input.grow{flex:160px}.cost-add input.num{text-align:right;width:100px}.rate-field{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.rate-field input{text-align:right;width:100px}.profit-summary{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.profit-summary>div{border-radius:var(--radius-sm);gap:4px;padding:12px 14px;display:grid}.profit-summary b{font-variant-numeric:tabular-nums;font-size:17px}.profit-summary .loss b{color:var(--error)}.profit-summary .over b{color:var(--warn)}.profit-table tbody tr{cursor:pointer}.profit-table tbody tr:hover td{background:var(--raise)}.profit-table td.over{color:var(--warn);font-weight:600}@media print{.profit-page{height:auto;padding:10mm;display:block}.profit-page .offcuts-body{overflow:visible}}.measure-page{box-sizing:border-box;height:100vh;padding:12px 12px 40px;overflow-y:auto}.measure-head{z-index:5;border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 12px;display:flex;position:sticky;top:0}.measure-head h2{align-items:center;gap:6px;margin:0;font-size:18px;display:inline-flex}.measure-head>button{text-overflow:ellipsis;white-space:nowrap;max-width:60%;overflow:hidden}.measure-rooms{margin:10px 0 0}.measure-body{gap:22px;max-width:760px;margin:14px auto 0;display:grid}.measure-body>*{min-width:0}.measure-section{gap:10px;display:grid}.measure-section h3{margin:0;font-size:17px}.measure-section p{margin:0}.measure-section>button{justify-self:start}.measure-card{border-radius:var(--radius-sm);gap:10px;padding:12px;display:grid}.measure-card>header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.measure-card>button{justify-self:start}.mm-grid{gap:8px;display:grid}.mm-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.mm-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.mm-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.mm-field{gap:3px;min-width:0;display:grid}.mm-field>span{color:var(--muted);font-size:12px}.mm-field input,.mm-field select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);font-variant-numeric:tabular-nums;width:100%;min-width:0;font-size:16px;padding:10px!important}.mm-field input:focus,.mm-field select:focus{border-color:var(--accent);box-shadow:var(--glow);outline:none}.fixture-dot{vertical-align:middle;border:1px solid #0003;border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.fixture-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fixture-list li{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 12px;display:flex}.fixture-list .grow{flex:1;min-width:0;display:grid}.fixture-kinds{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;display:grid}.fixture-kinds button{justify-content:flex-start;gap:8px;padding:9px 10px;font-size:14px}.fixture-kinds button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.photo-button{justify-self:start;padding:11px 16px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.photo-grid figure{border-radius:var(--radius-sm);margin:0;display:grid;overflow:hidden}.photo-grid img{aspect-ratio:4/3;object-fit:cover;background:var(--raise-2);width:100%;display:block}.photo-grid figcaption{align-items:center;gap:6px;padding:6px 8px;font-size:13px;display:flex}.photo-grid figcaption .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.off-square{color:var(--warn)}.ok-text{color:var(--ok);font-weight:600}.warn-text{color:var(--warn);font-weight:600}.survey-bar{flex-wrap:nowrap;align-items:flex-start;max-width:min(760px,100% - 24px)}.survey-items{gap:4px;min-width:0;max-height:180px;display:grid;overflow-y:auto}.survey-item{text-align:left;align-items:center;gap:6px;font-size:13px;display:flex}button.survey-item{background:0 0;border-color:#0000;justify-content:flex-start;padding:3px 6px}button.survey-item:hover{background:var(--raise-2)}.survey-item.bad{color:var(--error);font-weight:600}@media (width<=520px){.mm-grid.three,.mm-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}.job-chip-approval{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok);border-radius:99px;padding:0 6px;font-size:11.5px}.job-chip-approval.changed{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn)}.job-tabs button svg{margin-left:4px}.approval-changed{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warn) 10%, transparent);gap:6px;padding:10px 12px;display:grid}.approval-diffs{color:var(--fg);gap:2px;margin:0;padding-left:18px;font-size:13px;display:grid}.approval-diffs .diff-Added{color:var(--ok)}.approval-diffs .diff-Removed{color:var(--error)}.approval-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.approval-list>li{border-radius:var(--radius-sm);gap:6px;padding:10px 12px;display:grid}.approval-list>li.approval-Withdrawn{opacity:.6}.approval-list header{align-items:center;gap:8px;display:flex}.approval-list header .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.approval-list p{margin:0}.approval-status{white-space:nowrap;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:1px 8px;font-size:11.5px;font-weight:600}.approval-status.st-Approved{color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent)}.approval-status.st-ChangesRequested{color:var(--warn);background:color-mix(in srgb, var(--warn) 13%, transparent)}.approval-status.st-Withdrawn{color:var(--muted);background:var(--raise-2)}.approval-signed{color:var(--ok);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.approval-link,.approval-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.approval-link input,.approval-actions input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);flex:200px;min-width:0;padding:6px 8px;font-size:13px}.pa{background:var(--bg);min-height:100vh}.pa-center{text-align:center;align-content:center;place-items:center;gap:8px;min-height:100vh;padding:24px;display:grid}.pa-top{z-index:5;border-bottom:1px solid var(--line);background:var(--panel-solid);align-items:center;gap:10px;padding:10px 16px;display:flex;position:sticky;top:0}.pa-top .grow{flex:1}.pa-firm{font-weight:700}.pa-body{gap:16px;max-width:860px;margin:0 auto;padding:20px 16px 48px;display:grid}.pa-body>*{min-width:0}.pa-body h1{margin:0;font-size:26px}.pa-body h2{margin:0 0 8px;font-size:18px}.pa-body>p{margin:0}.pa-kicker{letter-spacing:.04em;text-transform:uppercase;font-size:13px;font-weight:600;color:var(--accent)!important}.pa-banner{border-radius:var(--radius-sm);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.pa-banner p{margin:4px 0 0}.pa-banner.ok{background:color-mix(in srgb, var(--ok) 13%, transparent);color:var(--fg)}.pa-banner.ok svg{color:var(--ok)}.pa-banner.changes{background:color-mix(in srgb, var(--warn) 13%, transparent)}.pa-gallery{gap:8px;display:grid}.pa-gallery>img{border-radius:var(--radius);background:#e4e7eb;width:100%}.pa-thumbs{gap:8px;display:flex}.pa-thumbs button{border:2px solid #0000;width:96px;padding:0;overflow:hidden}.pa-thumbs button.on{border-color:var(--accent)}.pa-thumbs img{width:100%;display:block}.pa-message{border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--raise);white-space:pre-wrap;padding:12px 14px}.pa-facts{flex-wrap:wrap;gap:12px 32px;display:flex}.pa-facts p{margin:2px 0 0}.pa-price b{font-size:24px;display:block}.pa-table{border-collapse:collapse;width:100%;font-size:14px}.pa-table th{border-bottom:1px solid var(--line-2);color:var(--muted);text-align:left;padding:6px 8px;font-size:12px;font-weight:500}.pa-table td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:6px 8px}.pa-table .num{text-align:right}.pa-answer{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-solid);gap:12px;padding:16px;display:grid}.pa-answer p{margin:0}.pa-field{gap:4px;display:grid}.pa-field span{color:var(--muted);font-size:13px}.pa-field input,.pa-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);resize:vertical;width:100%;padding:10px 12px;font-size:16px}.pa-check{align-items:flex-start;gap:10px;font-size:15px;display:flex}.pa-check input{flex:none;width:20px;height:20px;margin-top:1px}.pa-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.pa-buttons button{padding:11px 18px}@media print{.pa,.pa-body{color:#000;background:#fff}.pa-body{max-width:none;padding:12mm}.pa-print-images{grid-template-columns:1fr 1fr;gap:4mm;display:grid!important}.pa-print-images img{width:100%}}.precut-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.precut-item{text-align:left;background:0 0;border-color:#0000;justify-content:flex-start;align-items:flex-start;gap:6px;width:100%;padding:4px 6px;font-size:13px}.precut-item:hover:not(:disabled){background:var(--raise-2)}.precut-item:disabled{opacity:1;cursor:default}.precut-item svg{flex:none;margin-top:2px}.precut-item.bad{color:var(--error)}.precut-actions{flex-wrap:wrap;gap:6px;padding:0 6px 4px 25px;display:flex}.precut-banner{border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warn) 10%, transparent);margin:0 0 12px;padding:8px 12px}.precut-banner summary{color:var(--warn);cursor:pointer;align-items:center;gap:6px;font-weight:600;display:flex}.precut-banner[open] summary{margin-bottom:6px}.install-page{box-sizing:border-box;height:100vh;padding:12px;overflow-y:auto}.install-view{align-content:start;gap:12px;display:grid}.install-view>*{min-width:0}.install-table tr.done td{color:var(--muted)}.big-check{cursor:pointer;width:22px;height:22px}.van-list{gap:10px;max-width:720px;display:grid}.van-list ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.van-list li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-solid);align-items:center;gap:8px;padding:8px 10px;display:flex}.van-list li label{cursor:pointer;flex-wrap:wrap;flex:1;align-items:center;gap:8px;font-size:15px;display:flex}.van-list li.done label{color:var(--muted);text-decoration:line-through}.van-progress{background:var(--raise-2);border-radius:99px;height:10px;overflow:hidden}.van-progress span{background:var(--ok);height:100%;transition:width .2s;display:block}.van-add{gap:8px;display:flex}.van-add input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);flex:1;min-width:0;padding:10px 12px;font-size:15px}.print-sheet-only,.install-labels{display:none}.install-note{white-space:pre-wrap;margin:0 0 10px}.paper .install-facts{margin:0 0 10px;padding-left:18px}.paper section h3{margin:12px 0 6px;font-size:12pt}.tick-cell{border-left:1px solid var(--paper-line);width:12mm}.install-sign{margin-top:14mm;font-size:10pt}@media print{.install-view[data-print=labels]>:not(.install-labels){display:none!important}.install-view[data-print=labels] .install-labels{grid-template-columns:1fr 1fr;gap:0;display:grid!important}.install-view[data-print=sheet] .install-sheet,.install-view[data-print=sheet] .print-sheet-only{display:block!important}.install-view[data-print=sheet]>:not(.install-sheet):not(.print-sheet-only){display:none!important}.install-page>header{display:none}.package-label{color:#000;break-inside:avoid;border:1px dashed #999;gap:5mm;height:70mm;padding:6mm;font-family:Arial,sans-serif;display:flex}.label-number{font-size:40pt;font-weight:700;line-height:1}.label-number small{font-size:16pt;font-weight:400}.label-body{align-content:start;gap:2mm;font-size:12pt;display:grid}.label-body b{font-size:16pt}}.complaint-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.complaint{border-left:3px solid var(--warn);border-radius:var(--radius-sm);gap:6px;padding:10px 12px;display:grid}.complaint-Resolved,.complaint-Rejected{border-left-color:var(--ok)}.complaint header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.complaint header .grow{flex:1}.complaint header select{padding:4px 6px}.complaint p{margin:0}.complaint-text{white-space:pre-wrap}.complaint-photos{flex-wrap:wrap;gap:6px;display:flex}.complaint-photos img{object-fit:cover;border-radius:6px;width:96px;height:72px}.complaint-fields{flex-wrap:wrap;gap:8px;display:flex}.complaint-fields .grow{flex:220px}.complaint-cost{flex:0 120px}.approval-actions .grow{flex:1}.install-view .sheet-bar .bar-buttons{flex-wrap:wrap;gap:6px;display:flex}.install-view .sheet-bar .bar-buttons button{margin:0}.phase-dot{vertical-align:middle;border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.late-text{color:var(--error)}.plan-legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:13px;display:flex}.due-mark{background:var(--error);vertical-align:middle;width:3px;height:12px;display:inline-block}.gantt{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-solid);max-height:calc(100vh - 220px);display:grid;overflow:auto}.gantt>*{border-bottom:1px solid var(--line)}.gantt-corner,.gantt-day{z-index:2;background:var(--panel-solid);position:sticky;top:0}.gantt-corner{z-index:3;left:0}.gantt-day{justify-items:center;padding:4px 0;font-size:11px;line-height:1.2;display:grid}.gantt-day small{color:var(--muted)}.gantt-day.today{color:var(--accent)}.gantt-day.off,.gantt-cell.off,.gantt-load.off{background:var(--raise)}.gantt-job,.gantt-station{z-index:1;border-right:1px solid var(--line-2);background:var(--panel-solid);gap:1px;padding:6px 30px 6px 10px;font-size:13px;display:grid;position:sticky;left:0}.gantt-job .link{text-align:left;justify-self:start;font-weight:600}.gantt-job.late{box-shadow:inset 3px 0 0 var(--error)}.plan-edit{position:absolute;top:6px;right:4px}.gantt-cell{flex-direction:column;gap:1px;padding:6px 1px;display:flex}.gantt-cell span{border-radius:2px;min-height:4px}.gantt-cell.due{box-shadow:inset -3px 0 0 var(--error)}.gantt-station{background:var(--raise)}.gantt-load{font-variant-numeric:tabular-nums;place-items:center;font-size:10px;display:grid}.gantt-editor{background:var(--raise);max-width:min(900px,100vw - 48px);padding:10px;position:sticky;left:0}.plan-editor{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-items:end;gap:8px 14px;display:grid}.plan-phase{align-items:center;gap:6px;font-size:13px;display:flex}.plan-phase-name{flex:1}.plan-phase input:not([type]),.plan-phase input[inputmode]{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);text-align:right;width:64px;padding:4px 6px}.plan-editor input[type=date],.plan-editor input[type=number]{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--inset);padding:6px 8px}.plan-settings{max-width:900px}.plan-settings h3{margin:0}.realistic{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.face-icon .face-on{fill:currentColor;fill-opacity:.3;stroke:none}.face-icon .face-hidden{stroke-dasharray:2 2;opacity:.55}.sketch-face{fill:color-mix(in srgb, var(--accent-2) 15%, transparent);stroke:var(--accent-2);stroke-width:6px;vector-effect:non-scaling-stroke}.part-summary{align-items:center;gap:10px;display:flex}.part-summary p{margin:0}.workshop{margin-left:auto;position:relative}.workshop-chevron{transition:transform .15s;transform:rotate(90deg)}.workshop button.active .workshop-chevron{transform:rotate(-90deg)}.workshop-menu{z-index:50;border-radius:14px;gap:2px;width:min(380px,100vw - 32px);max-height:calc(100vh - 140px);padding:6px;animation:.18s ease-out rise;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:auto}.workshop-menu button{text-align:left;white-space:normal;background:0 0;border-color:#0000;justify-content:flex-start;align-items:flex-start;gap:12px;padding:9px 10px}.workshop-menu button:hover:not(:disabled),.workshop-menu button:focus-visible{background:var(--raise-2);border-color:var(--line);outline:none}.workshop-menu button .icon{color:var(--accent);margin-top:1px}.workshop-menu button span{gap:2px;display:grid}.workshop-menu button small{font-size:12.5px;line-height:1.35}.home-start{margin:34px 0 38px}.home-start h2{margin:0 0 14px;font-size:22px}.start-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.start-card{--tone:var(--accent);min-height:170px;color:var(--fg);text-align:left;white-space:normal;border-radius:18px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px;padding:20px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.start-card.room{--tone:var(--ok)}.start-card.blank{--tone:var(--accent-2)}button.start-card:hover:not(:disabled){background:var(--panel);border-color:color-mix(in srgb, var(--tone) 55%, transparent);transform:translateY(-3px)}button.start-card:focus-visible{border-color:var(--tone);box-shadow:0 0 0 3px color-mix(in srgb, var(--tone) 25%, transparent);outline:none}.start-card.on{border-color:color-mix(in srgb, var(--tone) 55%, transparent)}.start-icon{width:56px;height:56px;color:var(--tone);background:color-mix(in srgb, var(--tone) 14%, transparent);border-radius:16px;place-items:center;margin-bottom:4px;display:grid}.start-title{font-family:Segoe UI Variable Display,Segoe UI,Inter,system-ui,sans-serif;font-size:19px;font-weight:650}.start-text{color:var(--muted);font-size:14px;line-height:1.4}.start-name{gap:8px;width:100%;display:flex}.start-name input{flex:1;min-width:0}.start-more{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.button.start-link,button.start-link{color:var(--muted);border-color:#0000;padding:5px 10px;font-size:14px}.button.start-link:hover,button.start-link:hover:not(:disabled){color:var(--fg)}button.start-link.active{color:var(--accent);border-color:var(--accent)}.home-start .error{margin:10px 0 0}.home-empty{align-items:flex-start}.home-empty p{margin:0 0 4px;line-height:1.45}.home-empty p b{color:var(--fg)}.home-empty-arrow{transform:rotate(-90deg)}@media (width<=900px){.start-cards{grid-template-columns:1fr}.start-card{grid-template-columns:auto 1fr;gap:4px 14px;min-height:0;padding:16px;display:grid}.start-icon{grid-row:span 2;width:48px;height:48px;margin:0}.start-name,.start-card.on .start-text{grid-column:1/-1}}@media (width<=760px){.home{padding:24px 16px 48px}.home-start{margin:24px 0 30px}.home-start h2{font-size:20px}}.stage-start{left:calc((var(--gap) + var(--left-w) + 100% - var(--gap) - var(--right-w)) / 2);z-index:3;width:min(580px, calc(100% - var(--left-w) - var(--right-w) - 4 * var(--gap)));max-height:calc(100% - var(--top) - 120px);border-radius:var(--radius);text-align:center;justify-items:center;gap:10px;padding:22px 20px 16px;transition:left .28s cubic-bezier(.2,.8,.2,1);animation:.2s ease-out stage-start-in;display:grid;position:absolute;top:52%;overflow-y:auto;transform:translate(-50%,-50%)}@keyframes stage-start-in{0%{opacity:0}}.stage-start>.icon{color:var(--accent)}.stage-start h3{margin:0;font-size:18px}.stage-start p{margin:0}.stage-start-close{position:absolute;top:10px;right:10px}.stage-start-buttons{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;width:100%;display:grid}.stage-start-button{white-space:normal;text-align:center;border-radius:12px;align-content:start;justify-items:center;gap:4px;min-height:112px;padding:14px 10px;display:grid}.stage-start-button>.icon{color:var(--accent);margin-bottom:4px}.stage-start-button.primary>.icon{color:inherit}.stage-start-button b{font-size:15px}.stage-start-button span{color:var(--muted);font-size:12px}.stage-start-button.primary span{color:inherit;opacity:.85}@media (width<=760px),(height<=520px){.stage-start{padding:16px 14px 12px}.stage-start-buttons{grid-template-columns:minmax(0,1fr);gap:6px}.stage-start-button{text-align:left;grid-template-columns:auto minmax(0,1fr);justify-items:start;gap:0 12px;min-height:0;padding:10px 12px}.stage-start-button>.icon{grid-row:span 2;align-self:center;margin:0}}.guide-strip{left:calc((var(--gap) + var(--left-w) + 100% - var(--gap) - var(--right-w)) / 2);z-index:4;max-width:calc(100% - var(--left-w) - var(--right-w) - 4 * var(--gap));border-radius:14px;align-items:center;gap:2px;padding:4px;transition:left .28s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;bottom:38px;transform:translate(-50%)}.stage3d:has(.placement-bar) .guide-strip{display:none}.guide-strip ol{gap:2px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.guide-step,.guide-open{color:var(--muted);background:0 0;border-color:#0000;border-radius:10px;gap:6px;padding:4px 9px 4px 5px;font-size:13px}.guide-step:hover:not(:disabled),.guide-open:hover:not(:disabled){color:var(--fg);border-color:#0000}.guide-num{border:1px solid var(--line-2);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-weight:600;display:inline-grid}.guide-step.done .guide-num{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok);border-color:#0000}.guide-step.next{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.guide-step.next .guide-num{background:var(--accent);color:var(--accent-fg);border-color:#0000}.guide-step.warn,.guide-step.warn .guide-num{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.guide-note{background:var(--raise-2);border-radius:8px;padding:1px 6px;font-size:11px}.guide-note.next{background:var(--accent);color:var(--accent-fg);font-weight:600}.guide-step.warn .guide-note{background:color-mix(in srgb, var(--warn) 15%, transparent)}.guide-collapse{flex:none;padding:5px}.guide-chevron.up{transform:rotate(-90deg)}.guide-chevron.down{transform:rotate(90deg)}.guide-open{padding:3px 8px}.guide-count{color:var(--accent);font-weight:600}@media (width<=1400px){.guide-step.done .guide-label,.guide-step:not(.next,.warn) .guide-note{display:none}}@media (width<=1100px){.guide-step:not(.next) .guide-label{display:none}.guide-step:not(.next){padding-right:5px}}@media (width<=520px){.guide-strip{bottom:34px}.guide-note.next,.guide-step.warn .guide-note{display:none}}.stage-sheet{border-radius:var(--radius);outline:none;grid-template-rows:auto minmax(0,1fr);width:min(420px,100vw - 32px);max-height:76vh;animation:.18s ease-out rise;display:grid;overflow:hidden}.stage-sheet-body{overflow-y:auto}.kitchen-wizard .opening-add{flex-wrap:wrap;gap:6px;display:flex}.kitchen-wizard .opening-add button{align-items:center;gap:6px;display:inline-flex}.kitchen-wizard .opening-row{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;margin-top:8px;padding:8px}.kitchen-wizard .opening-row.kind-1{border-left-color:var(--warn)}.kitchen-wizard .opening-head{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:6px;display:flex}.kitchen-wizard .opening-head .segmented{margin:0 0 0 auto}.kitchen-wizard .wizard-note{align-items:flex-start;gap:6px;display:flex}.kitchen-sketch .k-window{fill:color-mix(in srgb, var(--accent) 35%, var(--panel-solid));stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.kitchen-sketch .k-door{fill:var(--panel-solid);stroke:var(--warn);stroke-width:2px;vector-effect:non-scaling-stroke}.kitchen-sketch .k-swing{fill:color-mix(in srgb, var(--warn) 8%, transparent);stroke:var(--warn);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.kitchen-sketch .k-water{fill:color-mix(in srgb, var(--accent) 60%, var(--panel-solid));stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.swap-sketch g.k-opening.k-opening{pointer-events:auto;cursor:grab;touch-action:none}.swap-sketch g.k-opening:active{cursor:grabbing}.swap-sketch g.k-opening:hover :is(rect,circle){stroke-width:3.5px}.kitchen-wizard .drawer-form{grid-template-columns:minmax(0,1fr)}.kitchen-wizard .drawer-form>section,.kitchen-wizard .drawer-form .kind-choice>button{min-width:0}.stage-start-buttons:has(>:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}.stage-start-buttons>:nth-child(4){order:1}.stage-start-buttons>:nth-child(2){order:2}.stage-start-buttons>:nth-child(3){order:3}@media (width<=760px){.stage-start-buttons:has(>:nth-child(4)){grid-template-columns:minmax(0,1fr)}}.cnc-badges span.warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 14%, transparent);font-weight:600}.cnc-warnings,.cnc-program-warnings{gap:4px;display:grid}.sheet-bar input.narrow{width:64px}.sheet-cut.sheet-trim{stroke:#8a5a00;stroke-dasharray:4 6}.relief-row{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:8px;font-size:13px;display:grid}.relief-row select,.relief-row input{min-width:0}.relief-vars{gap:6px;display:grid}.relief-check{align-items:center;gap:6px;font-size:13px;display:flex}.relief-cut{fill:none;stroke:var(--accent);stroke-opacity:.35;stroke-linejoin:round;stroke-linecap:round}.relief-axis{fill:none;stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke}.relief-pocket{fill:color-mix(in srgb, var(--accent) 30%, transparent);stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke}.relief-group{border:1px solid var(--line-2);border-radius:8px;gap:6px;padding:8px 10px;display:grid}.relief-save{gap:6px;display:flex}.relief-save input{flex:1;min-width:0}.relief-delete{justify-self:start}.gcode-dialog{width:min(1180px,100vw - 32px)}.gcode-body{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.gcode-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:6px 10px;font-size:13px;display:grid}.gcode-num{align-items:center;gap:4px;min-width:0;display:inline-flex}.gcode-num input{text-align:right;width:100%;min-width:0}.gcode-num i{color:var(--muted);font-size:12px;font-style:normal}.gcode-lines{gap:4px;font-size:13px;display:grid}.gcode-lines textarea{resize:vertical;font-family:ui-monospace,Consolas,monospace;font-size:12px}.gcode-tools{gap:4px;display:grid}.gcode-tool{grid-template-columns:40px minmax(0,1.3fr) 56px minmax(0,1fr) minmax(0,.8fr) 60px 56px 62px 46px 48px;align-items:center;gap:4px;font-size:12px;display:grid}.gcode-tool>select,.gcode-tool>input{min-width:0}.gcode-tool-head{color:var(--muted)}.gcode-tool-buttons{gap:2px;display:inline-flex}.gcode-edge{border:1px solid var(--line-2);border-radius:8px;grid-template-columns:minmax(0,1fr) 140px;gap:10px;margin:4px 0 8px;padding:8px 10px;display:grid}.gcode-edge-head,.gcode-edge-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 24px;align-items:center;gap:6px;font-size:12px;display:grid}.gcode-edge-head{color:var(--muted)}.gcode-edge-points{gap:4px;display:grid}.gcode-edge-actions{flex-wrap:wrap;gap:10px;display:flex}.gcode-edge-sketch{width:100%;max-height:160px;position:sticky;top:0}.gcode-edge-axis{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.gcode-edge-body{fill:color-mix(in srgb, var(--accent) 22%, transparent);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.gcode-sample{gap:6px;margin-top:12px;display:grid}.gcode-sample>button{justify-self:start}.gcode-sample-text{max-height:260px;overflow:auto}@media (width<=900px){.gcode-body{grid-template-columns:1fr}}.relief-editor .shape-editor-body{grid-template-columns:minmax(0,1fr) 300px}.relief-editor-canvas{gap:10px;min-width:0;display:grid}.relief-editor-canvas .shape-canvas{height:min(52vh,560px)}.relief-editor-samples{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;display:grid}.relief-editor-samples figure{justify-items:center;gap:4px;margin:0;display:grid}.relief-editor-samples svg{width:100%;max-height:150px}.shape-piece.current{stroke:color-mix(in srgb, var(--accent) 22%, transparent)}.shape-piece.locked{cursor:default}.relief-advanced{gap:6px;font-size:13px;display:grid}.relief-advanced summary{cursor:pointer;color:var(--muted)}.relief-var{grid-template-columns:70px 70px minmax(0,1fr) 24px;gap:4px;margin:4px 0;display:grid}.relief-var input{min-width:0}.relief-library{grid-template-rows:auto auto 1fr;gap:12px;min-height:0;display:grid}.relief-library-bar{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.relief-library-bar .relief-row{grid-template-columns:auto auto}.relief-library-bar .grow{flex:1}.relief-size{align-items:center;gap:4px;display:inline-flex}.relief-size input{width:72px}.relief-library-body{min-height:0;padding:0 4px 16px;overflow:auto}.relief-library-body h3{margin:8px 0 10px;font-size:15px}.relief-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.relief-card{border-radius:var(--radius);grid-template-rows:auto 1fr auto;gap:8px;padding:12px;display:grid}.relief-thumb{width:100%;height:190px}.relief-card-text h4{margin:0 0 4px;font-size:14px}.relief-card-text p{margin:2px 0}.relief-card-actions{flex-wrap:wrap;gap:6px;display:flex}.relief-card-actions button{padding:4px 9px}.front-design-dialog{width:min(560px,100vw - 32px)}.front-design-body{grid-template-columns:70px minmax(0,1fr);gap:14px;max-height:min(70vh,640px);padding:4px 16px 12px;display:grid;overflow:auto}.front-design-preview svg{width:64px;height:92px}@media (width<=520px){.front-design-body{grid-template-columns:minmax(0,1fr)}}.quick-card{background:var(--hud-bg);box-shadow:var(--shadow);border:1px solid var(--line);white-space:nowrap;pointer-events:auto;border-radius:14px;gap:4px;padding:5px;display:flex;transform:translateY(34px)}.quick-action{background:0 0;border:none;border-radius:10px;justify-items:center;gap:2px;min-width:58px;padding:6px 8px;font-size:11px;display:grid}.quick-action:hover{background:var(--accent-soft)}.quick-action.danger{color:var(--error)}@media (width<=700px){.quick-action span{display:none}.quick-action{min-width:40px}}.machining-led.decor{fill:#e2c37a;stroke:#9a7426}.niche-card{gap:6px;padding:4px 0 8px;font-size:13px;display:grid}.niche-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.niche-state{font-size:12px;font-weight:600}.niche-state.ok{color:var(--ok)}.niche-state.bad,.niche-table tr.bad,.niche-note{color:var(--error)}.niche-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.niche-table th{color:var(--muted);text-align:left;font-size:11px;font-weight:500}.niche-table td{border-top:1px solid var(--line);padding:3px 4px 3px 0}.niche-table td:first-child{color:var(--muted)}.niche-table tr.bad td:first-child{color:inherit}.niche-mark{text-align:center;width:1.4em;color:var(--ok)}.niche-table tr.bad .niche-mark{color:var(--error)}.niche-card p{margin:0}.dim-label.bad{color:var(--error);border-color:var(--error)}.dim-label.niche-title{color:var(--fg);font-weight:700}.dim-label.niche-opening{box-shadow:none;font-size:11px;font-weight:500}.dim-label.niche-opening.cable{color:var(--warn)}.niche-fits{gap:4px;display:grid}.niche-chips{flex-wrap:wrap;gap:4px;display:flex}.niche-chips .chip{align-items:center;gap:3px;font-size:12px;display:inline-flex}.niche-actions{flex-wrap:wrap;gap:6px;display:flex}.niche-actions>button{align-items:center;gap:6px;display:inline-flex}.niche-card>button.link{justify-self:start}.appliance-card p{margin:4px 0 0}.appliance-form{border-radius:var(--radius);gap:8px;max-width:720px;padding:12px 14px;display:grid}.appliance-form p{margin:0}.appliance-numbers{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-items:end}.appliance-form .approval-actions{justify-content:flex-end}@media (width<=560px){.appliance-form .fields.two{grid-template-columns:1fr}}.install-warn{color:var(--error)}.lib-card .lib-niche{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2;overflow:hidden}.locked{text-align:center;border-radius:18px;justify-items:center;gap:10px;max-width:520px;margin:40px auto;padding:28px 24px;display:grid}.locked .icon{color:var(--accent)}.locked h3,.locked p{margin:0}.locked-page{min-height:100vh}.dock-item .lock-mark,.lock-mark{opacity:.7;flex:none}.home-hero .brand{flex:360px;min-width:0}.plan-badge{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:99px;padding:0 7px;font-size:11.5px;font-weight:600}.plan-note{margin:0 0 8px;font-size:12.5px}.plan-status{gap:4px;margin-bottom:14px;display:grid}.plan-status>div:first-child{font-size:17px;font-weight:600}.plan-status p{margin:0}.plan-packages{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0;display:grid}.plan-package{border:1px solid var(--line);border-radius:12px;align-content:start;gap:6px;padding:12px;display:grid}.plan-package.current{border-color:var(--accent);background:var(--accent-soft)}.plan-package h3{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.plan-package ul{gap:3px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.plan-package li{align-items:baseline;gap:6px;display:flex}.plan-package li:before{content:"✓";color:var(--ok)}.plan-package .plan-price{font-size:12.5px}.project-limit{margin:0;font-size:12.5px}.offer-mark{color:#7a7f88;text-align:center;margin-top:8mm;font-size:8pt}.offer-mark-print{display:none}@media print{.offer-mark-print{color:#7a7f88;text-align:center;font-size:8pt;display:block;position:fixed;bottom:5mm;left:0;right:0}}.report-dialog{width:min(560px,100vw - 32px)}.report-dialog h3{align-items:center;gap:8px;margin:0 0 12px;display:flex}.report-dialog textarea{box-sizing:border-box;resize:vertical;width:100%;font:inherit}.report-picture img{border:1px solid var(--line,#7f7f7f4d);border-radius:8px;max-width:100%;max-height:220px;margin:8px 0;display:block}.report-picture .link-button{color:var(--accent);cursor:pointer;text-decoration:underline}
