@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/catalog/view/theme/meistars/fonts/manrope-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/catalog/view/theme/meistars/fonts/manrope-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/catalog/view/theme/meistars/fonts/manrope-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}html[data-x3dp]{--color-bg: #121a16;--color-bg-elevated: #1e1b18;--color-bg-hover: #2c2823;--color-border: #2f2a25;--color-surface: #1a1815;--color-text: #f3ede4;--color-text-muted: #a29789;--color-primary: #3a5d4a;--color-primary-hover: #47705a;--color-accent: #b9583a;--x3dp-accent: #5f8f6f;--x3-sage: #7aa58d;--x3-terra: #b9583a;--x3-terra-2: #d67854;--line: #2f2a25;--panel-2: #121a16;--accent: #d67854;--font-sans: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--radius: 8px;color-scheme:dark}html[data-x3dp] body{background:linear-gradient(180deg,#0f1613,#121b17 46%,#0f141a) #121b17;font-family:var(--font-sans)}html[data-x3dp] ::selection{background:#b9583a73}html[data-x3dp] button.primary:focus-visible,html[data-x3dp] button:focus-visible,html[data-x3dp] a:focus-visible{outline:2px solid var(--x3-sage);outline-offset:2px}html[data-x3dp] *{scrollbar-color:#3a342e transparent}html[data-x3dp] .design-empty,html[data-x3dp] .sim-msg,html[data-x3dp] .sim-toggle,html[data-x3dp] .view-btns button,html[data-x3dp] .view-btns label{background:#1e1b18eb}html[data-x3dp] .sim-canvas,html[data-x3dp] .relief3d{background:#101713}html[data-x3dp] .relief3d-bar button,html[data-x3dp] .relief3d-toggle{background:#1e1b18eb;border-color:#3a342e;color:var(--color-text)}html[data-x3dp] .toast{background:#1e1b18;border-color:#3a342e}html[data-x3dp] .bed-sketch{background:#121a16}html[data-x3dp] .bit-chip.active{border-color:var(--x3-terra);background:#b9583a29}html[data-x3dp] .linkish{color:#9cc4ad}html[data-x3dp] .tl-tab.active{background:#7aa58d38;border-color:#7aa58d8c}@media (max-width: 900px){html[data-x3dp] .x3dp-price-btn span{display:inline!important}html[data-x3dp] .x3dp-price-btn{font-weight:700}}@media (max-width: 700px){html[data-x3dp] .workspace{padding:8px;gap:8px}html[data-x3dp] .main-area{order:-1;flex:none;height:62vh;min-height:340px}html[data-x3dp] .hintbar{font-size:11.5px;line-height:1.35;max-height:4.2em;overflow:auto}html[data-x3dp] .dock{max-height:46vh;overflow:auto}html[data-x3dp] .dock-rail{position:sticky;top:0}html[data-x3dp] .dk-grid,html[data-x3dp] .dock-panel [class*=grid]{grid-template-columns:repeat(auto-fill,minmax(52px,1fr))!important}html[data-x3dp] .x3dp-drawpanel{left:8px;right:8px;width:auto;bottom:8px;max-height:45%;overflow:auto}html[data-x3dp] .x3dp-ctx{max-width:calc(100vw - 16px)}html[data-x3dp] .statusbar,html[data-x3dp] .status-bar{font-size:11px}html[data-x3dp=customer] .x3dp-price-btn{bottom:16px;right:12px;padding:12px 18px;border-radius:999px;background:linear-gradient(135deg,var(--x3-terra-2),var(--x3-terra));border-color:transparent}}html[data-x3dp][data-theme=light]{--color-bg: #eef1ed;--color-bg-elevated: #ffffff;--color-bg-hover: #e4eae5;--color-border: #d0d8d2;--color-surface: #f6f8f5;--color-text: #17201b;--color-text-muted: #4f5e55;--color-primary: #2f6b4a;--color-primary-hover: #3a7d58;--color-accent: #a94f33;--x3dp-accent: #3f7a55;--x3-sage: #3f7a55;--line: #d0d8d2;--panel-2: #f3f6f2;color-scheme:light}html[data-x3dp][data-theme=light] body{background:linear-gradient(180deg,#f3f5f1,#eef1ed,#e9ede8) #eef1ed}html[data-x3dp][data-theme=light] *{scrollbar-color:#b9c3bc transparent}html[data-x3dp][data-theme=light] ::selection{background:#a94f3340}html[data-x3dp][data-theme=light] .design-wrap,html[data-x3dp][data-theme=light] .sim-canvas,html[data-x3dp][data-theme=light] .viewer-canvas-wrap,html[data-x3dp][data-theme=light] .relief3d,html[data-x3dp][data-theme=light] .bed-sketch{--color-bg: #121a16;--color-bg-elevated: #1e1b18;--color-bg-hover: #2c2823;--color-border: #2f2a25;--color-surface: #1a1815;--color-text: #f3ede4;--color-text-muted: #a29789;--color-primary: #3a5d4a;--color-primary-hover: #47705a;--line: #2f2a25;--panel-2: #121a16;color:var(--color-text);color-scheme:dark}html[data-x3dp][data-theme=light] .app-header{--color-bg: #121a16;--color-bg-elevated: #1e1b18;--color-bg-hover: #2c2823;--color-border: #2f2a25;--color-text: #f3ede4;--color-text-muted: #a29789;color:var(--color-text);color-scheme:dark}html[data-x3dp][data-theme=light] .app-header{background:#151d19;border-bottom:1px solid #2f2a25}html[data-x3dp][data-theme=light] button.primary,html[data-x3dp][data-theme=light] .top-btn.primary{color:#fff}html[data-x3dp][data-theme=light] .statusbar{background:var(--color-bg-elevated)}html[data-x3dp][data-theme=light] .toast{background:#fff;border-color:var(--color-border);color:var(--color-text);box-shadow:0 10px 30px -12px #17201b59}html[data-x3dp][data-theme=light] .x3dp-ctx button{color:var(--color-text)}html[data-x3dp][data-theme=light] .x3dp-ctx button:hover:not(:disabled){background:var(--color-primary);color:#fff}html[data-x3dp][data-theme=light] .live-chip.on{color:var(--color-text)}html[data-x3dp][data-theme=light] .probe-code{background:#f3f6f2;border-color:var(--color-border);color:var(--color-text)}.x3dp-theme{width:32px;height:32px;padding:0;display:inline-grid;place-items:center;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text);cursor:pointer}.x3dp-theme svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}html[data-x3dp]:not([data-theme=light]) .dk-btn.on{box-shadow:inset 0 0 0 2px #a3dcb8;color:#fff}.setup-backdrop{position:fixed;inset:0;z-index:50;background:#020617b8;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}.setup-card{width:min(640px,100%);background:var(--color-surface, #1e293b);border:1px solid var(--color-border);border-radius:12px;padding:20px 22px;box-shadow:0 20px 60px #00000080;max-height:100%;overflow:auto}.setup-card h2{margin:6px 0 2px}.setup-card h4{margin:14px 0 6px}.setup-sub{margin:0 0 8px;color:var(--color-text-muted);font-size:13px}.setup-steps{display:flex;gap:8px;font-size:12px;color:var(--color-text-muted)}.setup-steps span{padding:2px 10px;border-radius:99px;border:1px solid var(--color-border)}.setup-steps span.on{background:#f97316;color:#111;border-color:transparent;font-weight:600}.setup-cols{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.setup-cols>div{flex:1 1 240px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.corner-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.corner-grid button,.chips button{padding:7px 8px;border-radius:8px;border:1px solid var(--color-border);background:transparent;color:inherit;cursor:pointer;font-size:13px}.corner-grid button.active,.chips button.active{background:#f97316;color:#111;border-color:transparent;font-weight:600}.bed-sketch{width:220px;max-width:100%;flex:0 0 auto;background:#0f172a;border-radius:8px}.mat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:8px 0}.mat-card{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:6px;text-align:left;border-radius:10px;border:2px solid var(--color-border);background:transparent;color:inherit;cursor:pointer}.mat-card.active{border-color:#f97316}.mat-card small{color:var(--color-text-muted);font-size:11px;line-height:1.2}.swatch{width:100%;height:auto;border-radius:6px;aspect-ratio:3 / 2}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.chip-sep{width:8px}.setup-warn{color:var(--color-warning, #f59e0b);font-size:13px;margin:8px 0 0}.setup-actions{display:flex;justify-content:space-between;margin-top:18px}.probe-code{background:#0b1017;border:1px solid #2b3445;border-radius:8px;padding:8px 10px;font-size:11px;max-height:140px;overflow:auto;white-space:pre-wrap;color:#cbd5e1}.trace-card{max-width:480px}.trace-prev{display:flex;justify-content:center;margin:8px 0}.trace-prev canvas{max-width:100%;border-radius:8px;border:1px solid var(--color-border)}.trace-row{display:grid;grid-template-columns:110px 1fr 90px;gap:8px;align-items:center;margin:6px 0;font-size:13px}.trace-row.check{display:flex;gap:8px}.trace-row span{color:var(--color-text-muted);font-size:12px}.trace-row input[type=number]{width:100%}.trace-h{margin:14px 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.subject-tools{display:grid;gap:6px;margin:6px 0}.subject-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}.subject-row b{margin-right:4px}.subject-row button{padding:4px 8px;font-size:12px}.subject-row button.active{background:#b45309;border-color:#b45309;color:#fff}.subject-row .hint{flex-basis:100%;margin:0}.toolbar{display:flex;flex-direction:column;gap:6px;width:76px;align-items:stretch}.tool-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;font-size:11px;line-height:1.1;text-align:center}.tool-btn svg{display:block}.tool-btn.active{background:var(--color-primary);border-color:var(--color-primary)}.tool-sep{height:1px;background:var(--color-border);margin:4px 6px}.tool-error{position:fixed;left:96px;bottom:16px;max-width:320px;background:var(--color-danger);color:#fff;padding:8px 12px;border-radius:var(--radius);font-size:12px;margin:0;cursor:pointer;z-index:10}.tool-title{margin:8px 2px 0;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);text-align:center;border-top:1px solid var(--color-border);padding-top:6px}.toolbar .tool-title:first-child{border-top:0;margin-top:0;padding-top:0}.toolbar{overflow-y:auto}.design-wrap{position:relative;flex:1;min-height:320px;background:var(--color-bg);border-radius:var(--radius);overflow:hidden}.design-wrap canvas{position:absolute;inset:0;touch-action:none}.design-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#0f172ae0;border:1px solid var(--color-border);border-radius:var(--radius);padding:16px 22px;pointer-events:none;max-width:360px}.design-empty h3{margin:0 0 8px}.design-empty ol{margin:0;padding-left:20px;color:var(--color-text-muted);font-size:13px;line-height:1.7}.hintbar{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--color-text-muted);padding:2px 4px 8px}.hint-warn{color:var(--color-warning)}.relief3d{position:absolute;inset:0;z-index:5;background:#10151c}.relief3d-bar{position:absolute;top:10px;left:10px;display:flex;gap:6px;z-index:6}.relief3d-bar button,.relief3d-toggle{background:#141a22e6;color:#e5e7eb;border:1px solid #3a4552;border-radius:8px;padding:6px 10px;cursor:pointer;font:inherit;font-size:13px}.relief3d-bar button:hover,.relief3d-toggle:hover{border-color:var(--color-accent, #f97316)}.relief3d-hint{position:absolute;bottom:8px;left:12px;margin:0;font-size:12px;color:#9aa6b5;z-index:6}.relief3d-toggle{position:absolute;top:10px;right:10px;z-index:4}.dock{display:flex;gap:0;flex:none;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.dock-rail{display:flex;flex-direction:column;width:58px;flex:none;background:#0000002e;border-right:1px solid var(--color-border);padding:4px 0;overflow-y:auto}.dock-rail button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 2px 8px;border:0;border-left:3px solid transparent;border-radius:0;background:transparent;font-size:10.5px;line-height:1.1;color:var(--color-text-muted)}.dock-rail button:hover{color:var(--color-text);background:#ffffff0d}.dock-rail button.active{color:var(--color-text);border-left-color:var(--color-primary);background:#ffffff12}.dock-panel{width:214px;overflow-y:auto;padding:4px 8px 12px}.dk-sec{border-bottom:1px solid var(--color-border);padding:4px 0 8px}.dk-sec:last-child{border-bottom:0}.dk-head{display:flex;align-items:center;gap:4px;width:100%;padding:6px 2px;border:0;background:transparent;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-muted);text-align:left}.dk-head.static{cursor:default}.dk-head i{font-style:normal;width:10px}.dk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.dk-btn{display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:0;min-width:0}.dk-btn.wide{aspect-ratio:auto;justify-content:flex-start;gap:8px;padding:8px 10px;font-size:13px;text-align:left}.dk-btn.on{background:var(--color-primary);border-color:var(--color-primary)}.dk-btn.accent{background:#f59e0b;border-color:#f59e0b;color:#111}.dk-btn.danger:not(:disabled):hover{background:var(--color-danger);border-color:var(--color-danger)}.dk-btn:disabled{opacity:.35}.dk-amount{grid-column:1 / -1;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted);margin-top:4px}.dk-amount span{flex:1}.dk-amount input{width:64px;padding:4px 6px}.dk-amount em{font-style:normal}.dk-empty{font-size:12px;color:var(--color-text-muted);margin:8px 2px;line-height:1.4}.dk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.dk-list li{display:flex;align-items:center;gap:2px;border-radius:6px}.dk-list li.sel{background:#3b82f640}.dk-list li.off .dk-name{opacity:.5;text-decoration:line-through}.dk-name{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:0;background:transparent;padding:5px 6px;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dk-name small{color:var(--color-text-muted);font-size:10.5px}.dk-flag{border:0;background:transparent;padding:4px;opacity:.4}.dk-flag svg{width:15px;height:15px}.dk-flag.on{opacity:1;color:#f59e0b}.dock.shut .dock-rail{border-right:0}.viewtabs{display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:8px}.viewtabs button{border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;background:transparent;padding:7px 14px;font-size:13px;color:var(--color-text-muted)}.viewtabs button.active{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);margin-bottom:-1px}.viewtabs button:disabled{opacity:.4}.viewtabs .vt-spacer{flex:1}.viewtabs .vt-note{font-size:12px;color:var(--color-text-muted);padding:0 8px 6px}.statusbar{display:flex;align-items:center;gap:14px;padding:4px 14px;font-size:12px;color:var(--color-text-muted);border-top:1px solid var(--color-border);background:#0003;flex-wrap:wrap}.statusbar b{color:var(--color-text);font-weight:600}.statusbar .sb-spacer{flex:1}.statusbar button{border:0;background:transparent;padding:0 2px;font-size:12px;color:inherit}.statusbar .sb-warn{color:#f59e0b}.statusbar .sb-err{color:var(--color-danger)}@media (max-width: 900px){.dock{flex-direction:row}.dock-panel{width:auto;flex:1}}.menubar{display:flex;gap:2px;margin-right:6px}.menu-wrap{position:relative}.menu-btn{background:transparent;border:1px solid transparent;padding:6px 10px;font-size:13px;color:var(--color-text)}.menu-btn:hover,.menu-btn.open{background:#ffffff14;border-color:var(--color-border)}.menu-pop{position:absolute;top:calc(100% + 2px);left:0;z-index:60;min-width:270px;max-height:75vh;overflow-y:auto;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 10px 30px #00000073;padding:4px}.menu-group+.menu-group{border-top:1px solid var(--color-border);margin-top:4px;padding-top:4px}.menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:0;border-radius:6px;padding:6px 8px;font-size:13px;color:var(--color-text)}.menu-item:hover:not(:disabled){background:var(--color-primary)}.menu-item:disabled{opacity:.4}.menu-check{width:14px;color:var(--color-accent);flex:none}.menu-label{flex:1}.menu-item kbd{font-family:ui-monospace,monospace;font-size:11px;color:var(--color-text-muted)}.palette-backdrop{align-items:flex-start;padding-top:12vh}.palette{width:min(560px,94vw);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 20px 50px #0000008c;overflow:hidden}.palette input{width:100%;box-sizing:border-box;border:0;border-bottom:1px solid var(--color-border);border-radius:0;padding:14px 16px;font-size:15px;background:transparent}.palette ul{list-style:none;margin:0;padding:4px;max-height:50vh;overflow-y:auto}.palette li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px}.palette li small{width:58px;color:var(--color-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;flex:none}.palette li span{flex:1}.palette li.sel{background:var(--color-primary)}.palette li.off{opacity:.45}.palette li kbd{font-family:ui-monospace,monospace;font-size:11px;color:var(--color-text-muted)}.topbar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.topbar .tabs{display:flex;gap:4px;margin-right:6px}.top-group{display:flex;gap:4px;padding-right:6px;border-right:1px solid var(--color-border)}.top-group:last-of-type{border-right:none;padding-right:0}.top-spacer{flex:1}.top-btn{display:flex;align-items:center;gap:5px;padding:6px 8px;font-size:13px;white-space:nowrap}.top-btn svg{width:18px;height:18px}.top-btn.accent{background:var(--color-accent);border-color:var(--color-accent);font-weight:600}.top-btn.accent:hover:not(:disabled){background:#e07400}.top-btn.primary{background:var(--color-primary);border-color:var(--color-primary)}@media (max-width: 900px){.top-btn span{display:none}.top-btn{padding:8px}}.live-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--color-border, #2b3445);border-radius:999px;font-size:12px;color:#9aa6b5}.live-chip.on{color:#e5e7eb;border-color:#2f7d4f}.live-chip small{color:#9aa6b5;font-family:ui-monospace,monospace}.live-chip button{background:#ffffff0f;border:1px solid #3a4552;color:inherit;border-radius:6px;padding:1px 7px;font:inherit;cursor:pointer}.live-chip button:hover{border-color:var(--color-accent, #f97316)}.search-btn{display:flex;align-items:center;gap:10px;padding:6px 10px;font-size:13px;color:var(--color-text-muted);background:var(--color-bg);min-width:190px;justify-content:space-between}.search-btn kbd{font-family:ui-monospace,monospace;font-size:11px;border:1px solid var(--color-border);border-radius:4px;padding:0 5px}@media (max-width: 1100px){.search-btn span{display:none}.search-btn{min-width:0}}.x3dp-setup{max-width:640px}.x3dp-choice{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:10px 0 14px}.x3dp-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:10px;border:1px solid var(--line, #334155);background:transparent;color:inherit;cursor:pointer;text-align:left}.x3dp-opt.on{border-color:var(--x3dp-accent, #2f4a3c);box-shadow:0 0 0 2px var(--x3dp-accent, #2f4a3c) inset}.x3dp-opt small{opacity:.7}.x3dp-field{display:flex;flex-direction:column;gap:4px;margin:0 0 10px;flex:1}.x3dp-field span{font-size:12.5px;opacity:.8}.x3dp-field input,.x3dp-field select,.x3dp-field textarea{padding:8px 10px;border-radius:8px;border:1px solid var(--line, #334155);background:var(--panel-2, #0f172a);color:inherit;font:inherit}.x3dp-row{display:flex;gap:10px;flex-wrap:wrap}.x3dp-price-btn{white-space:nowrap}.x3dp-credit{font-size:11.5px;opacity:.75;white-space:nowrap}a.x3dp-credit,.x3dp-credit a{color:inherit}.x3dp-home{font-weight:600;text-decoration:none;color:inherit;white-space:nowrap}.x3dp-job{font-size:12.5px;padding:3px 8px;border-radius:999px;background:#2f4a3c59;white-space:nowrap}.x3dp-price{max-width:560px}.x3dp-total{font-size:26px;font-weight:700;margin:6px 0}.x3dp-checks{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:4px;font-size:13px}.x3dp-checks li{padding:5px 9px;border-radius:7px;background:#f59e0b26}.x3dp-checks li.error{background:#dc26262e}.x3dp-checks li.info{background:#2f4a3c40}.x3dp-note{font-size:12.5px;opacity:.8}.x3dp-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.x3dp-card{border:1px solid var(--line, #334155);border-radius:10px;padding:10px 12px;margin:10px 0}.x3dp-card h4{margin:0 0 6px}.x3dp-brand{text-decoration:none;color:inherit}html[data-x3dp=customer] .about-unofficial{display:none}.x3dp-price a,.about-card a{color:inherit;text-decoration:underline}.x3dp-price .check{display:flex;gap:8px;align-items:flex-start}@media (max-width: 700px){html[data-x3dp] .app-header{flex-wrap:wrap;row-gap:4px;padding:6px 10px;gap:10px}html[data-x3dp] .header-right{flex-wrap:wrap;gap:8px}html[data-x3dp] .menubar{overflow-x:auto;max-width:100%}html[data-x3dp] .x3dp-job{max-width:100%;overflow:hidden;text-overflow:ellipsis}html[data-x3dp] .x3dp-choice{grid-template-columns:1fr 1fr}}@media (max-width: 700px){html[data-x3dp=customer] .x3dp-price-btn{position:fixed;right:12px;bottom:48px;z-index:40;box-shadow:0 6px 20px #00000073;padding:10px 16px}}.x3dp-dock .dock-panel{width:250px}.x3dp-step .dk-head{display:flex;align-items:center;gap:8px}.x3dp-n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--x3dp-accent, #2f6b4f);color:#fff;font-size:12px}.x3dp-hint{font-size:12px;opacity:.75;margin:2px 2px 6px;line-height:1.35}.x3dp-choice-now{font-weight:600;margin:2px 2px 4px;font-size:13px}.x3dp-row2{display:flex;gap:4px}.x3dp-row2 .dk-btn{flex:1}.x3dp-designs{max-width:760px}.x3dp-dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:10px 0;max-height:60vh;overflow:auto}.x3dp-dcard{display:flex;flex-direction:column;gap:3px;text-align:left;padding:8px;border-radius:10px;border:1px solid var(--line, #334155);background:transparent;color:inherit;cursor:pointer}.x3dp-dcard.on{box-shadow:0 0 0 2px var(--x3dp-accent, #2f6b4f) inset}.x3dp-dcard img,.x3dp-dnone{width:100%;aspect-ratio:4/3;object-fit:contain;background:#e9e1d2;border-radius:6px}.x3dp-dcard small{opacity:.75}@media (max-width: 900px){.x3dp-dock .dock-panel{width:auto}}.x3dp-choice-btn span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.x3dp-gohome{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:999px;background:linear-gradient(135deg,var(--x3-terra-2,#f97316),var(--x3-terra,#ef4444));color:#fff!important;font-weight:700;text-decoration:none;white-space:nowrap;box-shadow:0 6px 18px -8px #b9583abf}.x3dp-gohome:hover{filter:brightness(1.08)}.x3dp-gohome svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.x3dp-ctx{position:absolute;z-index:40;min-width:240px;padding:5px;border-radius:10px;background:var(--color-bg-elevated,#111a28);border:1px solid var(--color-border,#2a3443);box-shadow:0 14px 30px -12px #000c;display:flex;flex-direction:column}.x3dp-ctx button{display:flex;justify-content:space-between;gap:16px;align-items:center;border:0;background:none;color:#e6edf3;font:inherit;font-size:13px;text-align:left;padding:6px 10px;border-radius:6px;cursor:pointer}.x3dp-ctx button:hover:not(:disabled){background:#2f4b3c}.x3dp-ctx button:disabled{opacity:.4;cursor:default}.x3dp-ctx kbd{font:600 11px ui-monospace,monospace;color:var(--color-text-muted,#9aa6b2)}.x3dp-ctx hr{border:0;border-top:1px solid var(--color-border,#2a3443);margin:4px 2px}.x3dp-drawpanel{position:absolute;right:12px;bottom:12px;z-index:30;width:290px;padding:10px 12px;border-radius:10px;background:#1e1b18f7;border:1px solid var(--x3-terra,#ff3df2);color:var(--color-text,#e6edf3);font-size:12.5px;display:flex;flex-direction:column;gap:6px;box-shadow:0 10px 26px -14px #000c}.x3dp-drawpanel p{margin:0;color:var(--color-text-muted,#9aa6b2);line-height:1.4}.x3dp-drawpanel label{display:flex;justify-content:space-between;align-items:center;gap:8px}.x3dp-drawpanel input{width:70px;padding:3px 6px;border-radius:6px;border:1px solid var(--color-border,#334155);background:var(--color-bg,#0f172a);color:inherit}.x3dp-dp-acts{display:flex;flex-wrap:wrap;gap:6px}.x3dp-dp-acts button{border:1px solid var(--color-border,#334155);background:var(--color-bg-elevated,#1e293b);color:inherit;border-radius:7px;padding:4px 10px;cursor:pointer;font:inherit}.x3dp-dp-seg{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.x3dp-dp-seg button{border:1px solid var(--color-border,#334155);background:transparent;color:inherit;border-radius:7px;padding:4px 9px;cursor:pointer;font:inherit;font-size:12px}.x3dp-dp-seg button[aria-pressed=true]{background:var(--color-primary,#2f4b3c);border-color:var(--x3dp-accent,#5f8f6f);color:#fff}.x3dp-dp-help summary{cursor:pointer;color:var(--color-text-muted,#9aa6b2);font-size:12px}.x3dp-dp-help[open] summary{margin-bottom:4px}.x3dp-paused{margin:10px 0;padding:10px 12px;border:1px solid #c9a227;border-left-width:4px;border-radius:8px;background:#c9a2271f;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.x3dp-paused a{color:inherit;font-weight:600;text-decoration:underline;white-space:nowrap}.x3dp-paused-bar{position:fixed;z-index:60;top:104px;left:50%;transform:translate(-50%);width:min(640px,calc(100vw - 24px));display:flex;align-items:flex-start;gap:6px;padding:10px 10px 10px 14px;border:1px solid #6b5a22;border-left:4px solid #c9a227;border-radius:10px;background:#2d2816;color:#f1e6c4;box-shadow:0 8px 24px #00000059;box-sizing:border-box}.x3dp-paused-bar .x3dp-paused{flex:1;min-width:0;margin:0;padding:0;border:0;background:none}.x3dp-paused-x{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer}.x3dp-paused-x:hover{background:#ffffff1f}html[data-x3dp][data-theme=light] .x3dp-paused-bar{background:#fdf8e7;color:#3d3420;border-color:#e3c770;border-left-color:#c9a227;box-shadow:0 8px 24px #0f172a26}html[data-x3dp][data-theme=light] .x3dp-paused-x:hover{background:#0000000f}.x3dp-paused-btn{border:1px dashed #c9a227!important;color:#f1e6c4!important;background:#c9a22724!important}html[data-x3dp][data-theme=light] .x3dp-paused-btn{color:#5c4a12!important;background:#fdf8e7!important}@media (max-width: 760px){.x3dp-paused-bar{top:auto;bottom:132px}}.btn-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.btn-row button{flex:1;padding:6px 8px;white-space:nowrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;margin-bottom:8px}.num-field,.text-field{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted);margin-bottom:6px}.grid2 .num-field{margin-bottom:0}.num-field span,.text-field span{min-width:44px}.num-field input,.text-field input,.text-field select{flex:1;min-width:0;width:100%;padding:4px 6px}.num-field em{font-style:normal;font-size:11px;opacity:.7;min-width:0}.hint{font-size:12px;color:var(--color-text-muted);margin:6px 0 0}.error{font-size:12px;color:var(--color-danger);margin:4px 0 0}.warnings{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--color-warning)}.num-field.wide{grid-column:span 2}.inspector{width:300px;display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius);min-height:0}.insp-tabs{display:flex;border-bottom:1px solid var(--color-border)}.insp-tabs button{flex:1;border:none;border-radius:0;background:transparent;padding:10px 4px;font-size:13px;position:relative;color:var(--color-text-muted)}.insp-tabs button.active{color:var(--color-text);box-shadow:inset 0 -2px 0 var(--color-accent)}.insp-tabs .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-accent);margin-left:5px;vertical-align:middle}.insp-body{padding:12px;overflow-y:auto;min-height:0}.insp-body h4{margin:14px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.insp-body h4:first-child{margin-top:0}.insp-body h4 small{text-transform:none;letter-spacing:0;opacity:.7}.insp-body .empty h3{margin:0 0 8px;font-size:14px}.insp-body .empty p{color:var(--color-text-muted);font-size:13px}.hint.warn{color:var(--color-warning)}.cut-list{display:flex;flex-direction:column;gap:4px}.cut-opt{display:flex;align-items:center;gap:10px;text-align:left;padding:7px 10px}.cut-opt i{width:12px;height:12px;border-radius:3px;border:2px solid currentColor;flex:none}.cut-opt.cut-outside i{color:#38bdf8}.cut-opt.cut-inside i{color:#f59e0b}.cut-opt.cut-surface i{color:#f472b6;background:#f472b655}.dir-list{display:grid;grid-template-columns:1fr 1fr}.cut-opt.cut-pocket i{color:#22c55e;background:#22c55e55}.cut-opt.cut-on i{color:#a78bfa;border-style:dashed}.cut-opt.cut-none i{color:#64748b;border-style:dotted}.cut-opt.active{background:var(--color-primary);border-color:#3b82c4}.insp-body .num-field{margin-bottom:8px}.insp-body .num-field span{min-width:78px}.insp-body .grid2 .num-field span{min-width:40px}@media (max-width: 900px){.inspector{width:auto}}.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:12px 0 4px;cursor:pointer}.check input{width:auto}.chips{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.chips button{padding:4px 10px;min-width:38px}.chips button.active{background:var(--color-primary);border-color:#3b82c4}.cut-opt.mat span{display:flex;flex-direction:column}.cut-opt.mat small{color:var(--color-text-muted);font-size:11px}.cut-opt.mat.active small{color:#cbd5e1}.badge{display:inline-block;font-style:normal;font-size:10px;min-width:16px;padding:0 4px;border-radius:8px;margin-left:5px;color:#fff;line-height:16px}.badge.err{background:var(--color-danger)}.badge.warn{background:var(--color-warning);color:#1e293b}.badge.ok{background:var(--color-success);color:#052e16}.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.check-item{display:flex;gap:10px;padding:8px 10px;border-radius:var(--radius);background:var(--color-bg);border-left:3px solid var(--color-border)}.check-item i{font-style:normal;font-weight:700;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;flex:none;margin-top:1px}.check-item b{font-size:13px;font-weight:600}.check-item p{margin:3px 0 0;font-size:12px;color:var(--color-text-muted)}.check-item.error{border-left-color:var(--color-danger)}.check-item.error i{background:var(--color-danger);color:#fff}.check-item.warn{border-left-color:var(--color-warning)}.check-item.warn i{background:var(--color-warning);color:#1e293b}.check-item.info{border-left-color:#38bdf8}.check-item.info i{background:#38bdf8;color:#082f49}.check-item.ok{border-left-color:var(--color-success)}.check-item.ok i{background:var(--color-success);color:#052e16}.bit-lib{display:flex;flex-wrap:wrap;gap:6px}.bit-chip{display:inline-flex;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.bit-chip button{background:transparent;border:0;color:inherit;padding:5px 9px;font-size:12px;cursor:pointer}.bit-chip.active{border-color:#f97316;background:#f9731626}.bit-chip .x{padding:5px 7px;color:var(--color-text-muted);border-left:1px solid var(--color-border)}.dir-list3{display:grid;grid-template-columns:repeat(3,1fr)}.bit-save{display:flex;gap:6px;margin:10px 0}.bit-save input{flex:1;min-width:0}.preset-row{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.preset-chip{display:inline-flex;border:1px solid var(--color-border);border-radius:999px;overflow:hidden}.preset-chip button{border:0;border-radius:0;background:transparent;padding:4px 10px;font-size:12px}.preset-chip button.x{padding:4px 8px;color:var(--color-text-muted)}.cost-card{border:1px solid var(--line, #2b3445);border-radius:10px;padding:10px 12px;margin-bottom:12px;background:#ffffff08}.cost-card h4{margin:0 0 6px}.cost-row{display:flex;justify-content:space-between;gap:12px;padding:2px 0;font-size:13px}.cost-row.total{border-top:1px solid var(--line, #2b3445);margin-top:6px;padding-top:6px;font-size:15px}.cost-card .link{background:none;border:0;padding:0;color:var(--accent, #f97316);text-decoration:underline;cursor:pointer;font:inherit}.align-row{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.align-row button{min-width:34px}.flag-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0}.obj-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.obj-list li{display:flex;gap:4px;align-items:center}.obj-list li.off .obj-name{opacity:.45;text-decoration:line-through}.obj-name{flex:1;text-align:left;display:flex;justify-content:space-between;gap:8px}.obj-name small{opacity:.6}.obj-flag{padding:2px 6px;opacity:.45}.obj-flag.on{opacity:1;background:#f59e0b40}.insp-body h4.acc{cursor:pointer;user-select:none;display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--color-border)}.insp-body h4.acc:before{content:"▾";font-size:11px;width:10px;color:var(--color-text-muted)}.insp-body h4.acc.acc-closed:before{content:"▸"}.insp-body h4.acc:hover{color:var(--color-text)}.insp-body h4.acc:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.insp-body .acc-hide{display:none!important}.start-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;max-width:200px}.start-grid .cut-opt{justify-content:center;padding:8px 4px}.simple-cuts{display:grid;grid-template-columns:1fr 1fr;gap:5px}.simple-cut{position:relative;display:flex;align-items:center;text-align:left;padding:7px 6px 7px 36px;min-height:36px}.simple-cut b{font-size:13px;font-weight:600;line-height:1.15}.simple-cut i{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:4px;border:3px solid currentColor}.cut-desc{margin:6px 0 0!important}.inspector.simple{width:370px}.insp-body.simple{padding:8px 12px}.insp-body.simple h4{margin:9px 0 5px}.insp-body.simple .hint:not(.warn):not(.keep){display:none}.insp-body.simple .hint{margin:4px 0;font-size:13px}.insp-body.simple .num-field,.insp-body.simple .text-field,.insp-body.simple .check{font-size:13px}.insp-body.simple .simple-cut b{font-size:14px}.insp-body.simple h4{font-size:12.5px}.insp-body.simple .num-field{margin-bottom:5px}.insp-body.simple .text-field{margin-bottom:4px}.insp-body.simple .grid2{gap:5px 8px;margin-bottom:5px}.insp-body.simple .check{margin:3px 0}.insp-body.simple .align-row,.insp-body.simple .flag-row{margin-bottom:4px}.simple-cut.cut-outside i{color:#38bdf8}.simple-cut.cut-inside i{color:#f59e0b}.simple-cut.cut-pocket i{color:#22c55e;background:#22c55e66}.simple-cut.cut-on i{color:#a78bfa;border-style:dashed}.simple-cut.cut-none i{color:#64748b;border-style:dotted}.simple-cut.cut-relief i,.simple-cut.cut-vcarve i,.simple-cut.cut-surface i{color:#f472b6;background:#f472b655}.simple-cut.active{background:var(--color-primary);border-color:#3b82c4}.next-step{border-top:1px solid var(--color-border);padding:8px 12px 10px;display:flex;flex-direction:column;gap:4px;flex:none}.linkish{border:0;background:transparent;padding:2px 0;color:#7cb7ff;text-decoration:underline;text-align:left;font-size:12.5px;cursor:pointer}.insp-wrap{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.order-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.order-row .num-field{flex:1;margin:0!important}.order-row button{width:30px;padding:4px 0}.order-row .of{font-size:12px;color:var(--color-text-muted);white-space:nowrap}.start-depth{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.start-depth button{text-align:left}.next-step .big{padding:11px;font-size:15px}.timeline{display:flex;align-items:center;gap:8px;margin-top:6px;padding:3px 6px;border-top:1px solid var(--color-border);min-height:32px}.timeline.empty{min-height:28px}.tl-label{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;opacity:.8}.tl-hint{font-size:12px;color:var(--color-text-muted);opacity:.8}.tl-strip{flex:1;min-width:0;display:flex;align-items:center;gap:4px;overflow-x:auto;padding:2px 0;scrollbar-width:none}.tl-strip::-webkit-scrollbar{display:none}.tl-tab{flex:none;display:flex;align-items:center;gap:6px;padding:2px 9px 2px 3px;max-width:150px;text-align:left;border-radius:999px;border-color:transparent;background:transparent;font-size:12px}.tl-tab:hover{background:#ffffff0f}.tl-tab b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#f59e0bd9;color:#111;font-size:10.5px;flex:none}.tl-tab i{width:9px;height:9px;border-radius:2px;border:2px solid currentColor;flex:none}.tl-tab.cut-outside i{color:#38bdf8}.tl-tab.cut-inside i{color:#f59e0b}.tl-tab.cut-pocket i{color:#22c55e;background:#22c55e66}.tl-tab.cut-on i{color:#a78bfa;border-style:dashed}.tl-tab.cut-relief i,.tl-tab.cut-vcarve i,.tl-tab.cut-surface i{color:#f472b6;background:#f472b655}.tl-tab.cut-drill i,.tl-tab.cut-thread i{color:#94a3b8;border-radius:50%}.tl-tab span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.tl-tab small{display:none}.tl-tab.active{background:#3b82f647;border-color:#3b82f699}.tl-tab.active span{color:var(--color-text)}.tl-tab.over{outline:2px dashed #f59e0b;outline-offset:1px}.tl-actions{display:flex;gap:2px;flex:none}.tl-actions button{padding:1px 7px;font-size:11px;border-color:transparent;background:transparent;color:var(--color-text-muted)}.tl-actions button:hover:not(:disabled){color:var(--color-text);background:#ffffff0f}.sim-wrap{flex:1;display:flex;flex-direction:column;gap:8px;min-height:0}.sim-canvas{position:relative;flex:1;min-height:320px;background:#0b1220;border-radius:var(--radius);overflow:hidden}.sim-canvas canvas{position:absolute;inset:0;cursor:grab;touch-action:none}.sim-msg{z-index:5;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#0f172ae6;border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 18px;font-size:13px;color:var(--color-text-muted)}.sim-msg.err{color:var(--color-danger)}.sim-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px}.sim-play{display:flex;align-items:center;gap:6px;min-width:92px;justify-content:center}.sim-play svg{width:16px;height:16px}.sim-slider{flex:1;min-width:120px;accent-color:var(--color-accent)}.sim-info{font-size:12px;color:var(--color-text-muted)}.check.inline{margin:0}.chips.small button{padding:3px 8px;min-width:0}.fit-btn{position:absolute;right:10px;top:10px;padding:3px 10px;font-size:12px}.segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;margin-bottom:8px;align-self:flex-start}.segmented button{border:none;border-radius:0;background:transparent;padding:5px 14px;font-size:13px}.segmented button.active{background:var(--color-primary)}.sim-toggle{position:absolute;left:10px;top:10px;background:#0f172acc;padding:3px 8px;border-radius:var(--radius);font-size:12px}.view-btns{z-index:5;position:absolute;left:10px;top:10px;display:flex;gap:4px;flex-wrap:wrap}.view-btns button,.view-btns label{background:#0f172ad9;padding:3px 9px;font-size:12px;border-radius:var(--radius);border:1px solid var(--color-border);color:var(--color-text);display:flex;align-items:center;gap:5px;cursor:pointer}.sim-help{z-index:5;position:absolute;right:10px;bottom:8px;font-size:11px;color:var(--color-text-muted);pointer-events:none}.sim-canvas-3d{background:radial-gradient(ellipse at 50% 35%,#26364d,#121a29 55%,#090d15)}.view-sep{width:1px;background:var(--color-border);margin:0 2px}.view-btns button.on{background:var(--color-primary);border-color:#3b82c4}.live-hint{font-size:12px;color:var(--color-text-muted);padding:0 4px 6px}.gm{width:270px;flex:0 0 270px;display:flex;flex-direction:column;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);min-height:0;overflow:hidden}.gm-head{display:flex;align-items:center;gap:10px;padding:6px 10px;font-size:12px;border-bottom:1px solid var(--color-border);color:var(--color-text-muted)}.gm-head b{color:var(--color-text);white-space:nowrap}.gm-head span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gm-head .check{margin-left:auto}.gm-body{flex:1;overflow:auto;position:relative;font:12px/18px ui-monospace,SFMono-Regular,Menlo,monospace}.gm-row{position:absolute;left:0;right:0;height:18px;white-space:pre;display:flex}.gm-n{min-width:44px;flex:none;text-align:right;padding-right:8px;color:#64748b;user-select:none}.gm-t{color:#cbd5e1}.gm-row.done .gm-t{color:#64748b}.gm-row.cur{background:#f97316}.gm-row.cur .gm-t,.gm-row.cur .gm-n{color:#111;font-weight:600}.gm-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:13px}.preview-row{flex:1;display:flex;gap:12px;min-height:0}.preview-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:60;max-width:min(560px,92vw);background:#0f172a;border:1px solid var(--color-border);border-left:4px solid #f97316;border-radius:8px;padding:10px 14px;font-size:13px;box-shadow:0 8px 30px #00000080;cursor:pointer}@media (max-width: 900px){.gm{display:none}}.viewer-panel{flex:1;display:flex;flex-direction:column;min-height:320px}.viewer-actions{display:flex;align-items:center;gap:10px}.viewer-stats{font-size:12px;color:var(--color-text-muted)}.viewer-canvas-wrap{position:relative;flex:1;min-height:260px;background:var(--color-bg);border-radius:var(--radius);overflow:hidden}.viewer-canvas-wrap canvas{position:absolute;inset:0;cursor:grab;touch-action:none}.viewer-canvas-wrap canvas:active{cursor:grabbing}.viewer-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);pointer-events:none;padding:16px;text-align:center}.proj-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow:auto}.proj-list li{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap}.proj-list li.cur{border-color:#f97316}.proj-name{flex:1 1 160px;min-width:0}.proj-list small{color:var(--color-text-muted);font-size:11px}.proj-tag{font-size:11px;color:#f97316;padding:0 6px}.setup-card button.danger{background:#b91c1c;border-color:#b91c1c;color:#fff}.mstat{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;border:1px solid var(--color-border);background:transparent;color:inherit;font-size:12px;cursor:pointer}.mstat i{width:8px;height:8px;border-radius:50%;background:#64748b}.mstat.ok i{background:#22c55e}.mstat.unreachable i{background:#ef4444}.mstat.blocked i{background:#f59e0b}.mstat.checking i{background:#38bdf8}.offcut-card{max-width:520px}.off-path{display:flex;align-items:center;gap:8px;margin:6px 0}.off-path code{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis}.off-list{list-style:none;margin:6px 0;padding:0;max-height:28vh;overflow:auto;display:flex;flex-direction:column;gap:4px}.off-list button{width:100%;display:flex;justify-content:space-between;gap:8px;text-align:left}.off-list small,.off-empty{color:var(--color-text-muted);font-size:12px}.off-manual{display:flex;gap:8px;margin:6px 0}.off-manual input{flex:1;min-width:0}.off-summary p{margin:6px 0;font-size:13px}.off-error{background:var(--color-danger);color:#fff;padding:8px 10px;border-radius:var(--radius);font-size:12px;margin:8px 0 0}.about-btn{margin-left:auto;width:26px;height:26px;border-radius:50%;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);font:600 14px/1 Georgia,serif;font-style:italic;cursor:pointer}.about-btn:hover{color:inherit;border-color:currentColor}.about-unofficial{margin-left:auto;font-size:12px;color:#f59e0b;text-decoration:none;border:1px solid #f59e0b55;border-radius:99px;padding:3px 10px;white-space:nowrap}.about-unofficial+.about-btn{margin-left:8px}.about-card h3{margin:14px 0 4px;font-size:14px}.about-card p{font-size:13px;line-height:1.5}.about-src{color:var(--color-text-muted)}.about-small{color:var(--color-text-muted);font-size:12px!important}.about-links{display:flex;gap:16px;flex-wrap:wrap}.webui-link{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 9px;border-radius:999px;border:1px solid rgba(38,172,255,.45);background:#26acff1f;color:#8fd3ff;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.webui-link svg{width:17px;height:17px}.webui-link:hover{background:#26acff38;border-color:#26acff;color:#fff}.webui-link:focus-visible{outline:2px solid #26acff;outline-offset:2px}.webui-dot{width:7px;height:7px;border-radius:50%;background:var(--color-text-muted);opacity:.5}.webui-link.on .webui-dot{background:var(--color-success);opacity:1;box-shadow:0 0 6px var(--color-success)}.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}.header-right .about-btn,.header-right .about-unofficial{margin-left:0}@media (max-width: 600px){.webui-link span{display:none}.webui-link{padding:6px 9px}}.edition-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;vertical-align:middle;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted, #94a3b8)}.edition-badge.pro{background:#b45309;border-color:#b45309;color:#fff}button.edition-badge.basic{cursor:pointer}button.edition-badge.basic:hover{border-color:#d97706;color:#d97706}.pro-list{margin:8px 0 14px 18px;padding:0;line-height:1.5}.gate{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--color-bg, #0f172a);color:var(--color-text, #e2e8f0)}.gate-card{width:min(520px,100%);background:var(--color-bg-elevated, #1e293b);border:1px solid var(--color-border, #334155);border-radius:12px;padding:24px;display:grid;gap:12px}.gate-card h1{margin:0;font-size:22px}.gate-card textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,monospace;font-size:12px;padding:8px;border-radius:6px;border:1px solid var(--color-border, #334155);background:var(--color-bg, #0f172a);color:inherit}.gate-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.gate-actions a{color:#d97706}a.primary{display:inline-block;padding:7px 14px;border-radius:6px;background:#b45309;color:#fff;text-decoration:none;font-weight:600}.app{display:flex;flex-direction:column;height:100%}.app-header{padding:8px 16px;display:flex;align-items:baseline;gap:16px}.app-header h1{margin:0;font-size:18px}.logo{display:flex;align-items:center;gap:10px;margin:0}.logo-img{height:34px;width:auto;display:block}.logo-studio{font-size:15px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);border-left:1px solid var(--color-border);padding-left:10px}.app-header{align-items:center}.logo-dp{color:#f59e0b}.tagline{color:var(--color-text-muted);font-size:13px}.workspace{flex:1;display:flex;gap:12px;padding:12px;min-height:0}.main-area{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}@media (max-width: 900px){.tagline{display:none}.workspace{flex-direction:column;overflow-y:auto}.toolbar{flex-direction:row;width:auto;flex-wrap:wrap}.toolbar .tool-btn{flex:1;min-width:70px}.tool-sep{display:none}.main-area{flex:none;min-height:420px}.inspector{flex:none}}.part-note{margin:0 0 8px;padding:8px 12px;border-radius:8px;border:1px solid var(--color-border);background:#f973161f;font-size:13px;line-height:1.4}:root{--color-bg: #0f172a;--color-bg-elevated: #1e293b;--color-bg-hover: #334155;--color-border: #334155;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-primary: #1a4d80;--color-primary-hover: #2563a3;--color-accent: #cc6600;--color-success: #22c55e;--color-warning: #f59e0b;--color-danger: #ef4444;--color-idle: #94a3b8;--color-run: #22c55e;--color-alarm: #ef4444;--color-hold: #f59e0b;--color-jog: #3b82f6;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "Monaco", "Cascadia Code", "Roboto Mono", Consolas, monospace;--radius: 6px;--radius-sm: 4px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;font-size:inherit;background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:6px 12px;cursor:pointer;transition:background .15s}button:hover:not(:disabled){background:var(--color-bg-hover)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--color-primary);border-color:var(--color-primary)}button.primary:hover:not(:disabled){background:var(--color-primary-hover)}button.danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}button.accent{background:var(--color-accent);border-color:var(--color-accent)}input,select{font-family:inherit;font-size:inherit;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 8px}input:focus,select:focus{outline:none;border-color:var(--color-primary)}.mono{font-family:var(--font-mono)}.panel{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.panel-header h2{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}
