:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e9ecf1;--panel:#f6f7f9;--panel-2:#fff;--surface:#fff;--surface-2:#f6f8fb;--surface-3:#e9edf2;--border:#c9cfd8;--border-soft:#e3e8ef;--text:#1d2430;--text-strong:#0f1f33;--muted:#6b7686;--accent:#1f6fd1;--accent-soft:#dbe8fa;--accent-bg:#e8f1fc;--accent-line:#a9c4e6;--accent-ink:#2a5ea8;--brand:#0a8cff;--brand-ink:#1e2840;--ok:#2e9c48;--ok-bg:#eaf6ee;--ok-line:#8cc9a0;--ok-ink:#1d6b3a;--warn-bg:#fff4e6;--warn-line:#ffc078;--warn-ink:#8a5a00;--danger:#d12f2f;--danger-bg:#fdecec;--danger-line:#f1b5b5;--danger-ink:#b42318;--hover:#e6eef8;--shadow:#0f1f3324;--viewport-bg:linear-gradient(#fff 0%, #eef1f4 45%, #c3cbd3 100%);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}input,select{font:inherit}.app{flex-direction:column;height:100%;display:flex}.main{flex:1;min-height:0;display:flex}.cm{background:var(--panel);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none}.titlebar{background:linear-gradient(var(--surface), var(--surface-3));border-bottom:1px solid var(--border);align-items:center;gap:16px;height:34px;padding:0 10px;display:flex}.logo{align-items:center;display:flex}.logo img{width:auto;height:30px;display:block}.quick{align-items:center;gap:2px;display:flex}.quick button{background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;padding:3px;display:grid}.quick button svg{width:18px;height:18px}.quick button.text{color:var(--accent);align-items:center;gap:4px;padding:3px 7px;font-size:12px;font-weight:600;display:inline-flex}.quick button.text svg{width:15px;height:15px}.quick button:not(:disabled):hover{background:var(--hover);border-color:var(--accent-line)}.sep{background:var(--border);width:1px;height:18px;margin:0 4px}.doc-title{color:var(--muted);margin-left:auto}.cm-body{height:74px;padding:4px 6px;display:flex}.cm-group{align-items:stretch;gap:2px;display:flex}.cm-sep{background:var(--border);width:1px;margin:4px 6px}.cm-btn{text-align:center;width:76px;color:var(--accent-ink);background:0 0;border:1px solid #0000;border-radius:4px;flex-direction:column;justify-content:flex-start;align-items:center;gap:3px;padding:6px 2px 2px;font-size:11.5px;line-height:1.15;display:flex}.cm-btn svg{width:30px;height:30px;color:var(--accent-ink)}.cm-btn:not(:disabled):hover{background:var(--hover);border-color:var(--accent-line)}.cm-btn.active{background:var(--accent-bg);border-color:var(--accent-line)}.cm-tabs{border-top:1px solid var(--border);background:var(--accent-bg);gap:1px;padding:0 6px 3px;display:flex}.cm-tabs button{color:var(--accent-ink);background:0 0;border:1px solid #0000;border-radius:0 0 5px 5px;margin-top:-1px;padding:4px 14px 5px;font-size:12px;position:relative}.cm-tabs button:hover:not(.on):not(:disabled){background:var(--accent-bg)}.cm-tabs button.on{background:var(--panel);border-color:var(--border);border-top-color:var(--panel);color:var(--text);font-weight:600}.side{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;width:280px;min-width:220px;display:flex;overflow:hidden}.side-tabs{border-bottom:1px solid var(--border);background:var(--accent-bg);gap:2px;padding:3px 4px 0;display:flex}.side-tabs span{color:var(--muted);border:1px solid #0000;border-bottom:none;border-radius:5px 5px 0 0;align-items:center;gap:5px;margin-bottom:-1px;padding:4px 10px 5px;font-size:12px;display:inline-flex}.side-tabs span svg{width:15px;height:15px}.side-tabs span.on{background:var(--panel);color:var(--text);border-color:var(--border);font-weight:600}.tree{-webkit-user-select:none;user-select:none;flex:1;padding:4px 0;overflow:auto}.tree.dragging{cursor:ns-resize}.tree-row{cursor:default;white-space:nowrap;align-items:center;gap:5px;height:24px;padding-right:8px;display:flex}.tree-row:hover{background:var(--hover)}.tree-row.sel{background:var(--accent-soft)}.tree-row.editing{background:var(--accent-bg)}.tree-row.rolled{color:var(--muted)}.tree-row.rolled .ticon{opacity:.4}.tree-row.suppressed .tname{color:var(--muted);text-decoration:line-through}.tree-row.root{padding-left:8px;font-weight:600}.tree-row input{flex:1;min-width:0;padding:1px 3px}.twisty{width:10px;color:var(--muted);text-align:center;font-size:10px}.ticon{width:18px;color:var(--accent-ink);place-items:center;display:grid}.ticon svg{width:16px;height:16px}.tname{text-overflow:ellipsis;overflow:hidden}.terr{background:var(--danger);color:#fff;border-radius:50%;place-items:center;width:16px;height:16px;margin-left:auto;font-size:11px;font-weight:700;display:grid}.rollback{cursor:ns-resize;opacity:.85;background:#2a5ea8;border-radius:2px;height:5px;margin:2px 8px}.rollback:hover{opacity:1;height:6px}.ctx{z-index:50;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;min-width:190px;padding:4px 0;position:fixed;box-shadow:0 6px 18px #0000002e}.ctx button{text-align:left;background:0 0;border:none;width:100%;padding:6px 14px;display:block}.ctx button:hover{background:var(--hover)}.ctx hr{border:none;border-top:1px solid var(--border);margin:4px 0}.danger{color:var(--danger)!important}.pm{flex:1;overflow:auto}.pm-head{border-bottom:1px solid var(--border);background:var(--panel-2);align-items:center;padding:8px 10px;display:flex}.pm-title{font-size:14px;font-weight:600}.pm-actions{gap:4px;margin-left:auto;display:flex}.pm-actions button,.confirm-corner button{border:1px solid var(--border);background:var(--panel-2);border-radius:4px;place-items:center;width:32px;height:30px;display:grid}.ok{color:var(--ok)}.cancel{color:var(--danger)}.pm section{border-bottom:1px solid var(--accent-line);padding:0 12px 10px}.pm h4{text-transform:none;color:var(--accent-ink);background:linear-gradient(var(--accent-bg), var(--accent-bg));border-top:1px solid var(--border-soft);border-bottom:1px solid var(--accent-line);align-items:center;margin:0 -12px 8px;padding:4px 10px;font-size:12px;font-weight:600;display:flex}.pm h4:after{content:"▾";color:var(--muted);margin-left:auto;font-size:10px}.pm section>:not(h4)+h4{margin-top:10px}.pm p{margin:4px 0}.muted{color:var(--muted)}.err{color:var(--danger)}.row{align-items:center;gap:6px;margin:6px 0;display:flex}.row select,.pm select{flex:1;padding:3px}.lbl{width:22px;color:var(--muted)}.dir{border:1px solid var(--border);background:var(--panel-2);border-radius:4px;width:30px;height:26px}.dir.on{background:var(--accent-soft);border-color:var(--accent)}.numfield{border:1px solid var(--border);background:var(--surface);border-radius:3px;flex:1;align-items:center;min-width:0;display:flex}.numfield input{border:none;outline:none;flex:1;min-width:0;padding:4px 6px}.numfield span{color:var(--muted);padding:0 6px}.numfield:focus-within{border-color:var(--accent)}.sel-list{margin:0;padding:0;list-style:none}.sel-list li{align-items:center;gap:6px;padding:2px 0;display:flex}.sel-list .x{color:var(--danger);background:0 0;border:none;margin-left:auto;font-size:15px}.rel-buttons{flex-wrap:wrap;gap:4px;display:flex}.rel-buttons button{border:1px solid var(--border);background:var(--panel-2);border-radius:3px;padding:3px 8px}.rel-buttons button:hover{background:var(--hover)}.check{align-items:center;gap:6px;margin:6px 0;display:flex}.link{color:var(--accent);background:0 0;border:none;padding:2px 0}.help ul{color:var(--muted);margin:0;padding-left:16px}.help li{margin:3px 0}.viewport{background:var(--viewport-bg);flex:1;min-width:0;position:relative;overflow:hidden}.viewport canvas{outline:none;display:block}.hud{z-index:5;background:color-mix(in srgb, var(--surface) 85%, transparent);border:1px solid var(--border);border-radius:5px;align-items:center;gap:1px;padding:2px 4px;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #00000014}.hud button{width:28px;height:26px;color:var(--accent-ink);background:0 0;border:1px solid #0000;border-radius:3px;place-items:center;display:grid}.hud button:hover{background:var(--hover);border-color:var(--accent-line)}.hud button.on{background:var(--accent-soft)}.hud-sep{background:var(--border);width:1px;height:18px;margin:0 3px}.hud-drop{position:relative}.hud-menu{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;min-width:170px;padding:4px 0;position:absolute;top:28px;left:0;box-shadow:0 6px 18px #0000002e}.hud-menu button{text-align:left;width:100%;height:auto;color:var(--text);border-radius:0;padding:5px 12px;display:block}.confirm-corner{z-index:5;gap:4px;display:flex;position:absolute;top:8px;right:10px}.confirm-corner button{background:color-mix(in srgb, var(--surface) 90%, transparent);width:38px;height:34px}.confirm-corner button svg{width:22px;height:22px}.selbox{pointer-events:none;background:#1f6fd114;border:1px solid #1f6fd1;position:absolute}.cursor-hint{pointer-events:none;background:var(--warn-bg);border:1px solid var(--warn-line);white-space:nowrap;border-radius:3px;padding:1px 5px;font-size:11px;position:absolute}.dim-label{pointer-events:auto;color:var(--text-strong);background:color-mix(in srgb, var(--surface) 75%, transparent);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:2px;padding:0 3px;font-size:12px;font-weight:600}.dim-label:hover{color:var(--warn-ink)}.dim-label.selected{color:#fff;background:#00a6ff}.dim-label.conflict{color:#fff;background:var(--danger)}.dim-label.preview{color:var(--warn-ink);pointer-events:none}.dim-label.driven{color:var(--muted);font-weight:500}.rel-glyph{pointer-events:auto;min-width:15px;height:15px;color:var(--ok-ink);background:var(--ok-bg);border:1px solid var(--ok-line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:2px;place-items:center;padding:0 2px;font-size:10px;line-height:1;display:grid}.rel-glyph.selected{color:#fff;background:#00a6ff;border-color:#00a6ff}.rel-glyph.conflict{background:var(--danger);color:#fff}.plane-label{color:var(--accent-ink);white-space:nowrap;padding:2px 4px;font-size:11px}.plane-label.std{color:var(--text-strong);background:color-mix(in srgb, var(--surface) 92%, transparent);pointer-events:none;border:1px solid #ff8a00;border-radius:2px;padding:1px 5px}.plane-label.std.sel{border-color:#1f6fd1}.dim-modify{z-index:10;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;transform:translate(-50%,-120%);box-shadow:0 6px 18px #0003}.dim-modify.below{transform:translate(-50%,40%)}.dim-modify .dm-title{color:var(--muted);font-size:11px;position:absolute;top:-18px;left:0}.dim-modify input{border:1px solid var(--accent);border-radius:3px;width:90px;padding:3px 5px}.dim-modify .unit{color:var(--muted)}.dim-modify button{border:1px solid var(--border);background:var(--panel-2);border-radius:3px;place-items:center;width:26px;height:24px;display:grid}.dim-modify button svg{width:16px;height:16px}.status{background:var(--accent-bg);border-top:1px solid var(--border);align-items:center;gap:16px;height:24px;padding:0 10px;font-size:12px;display:flex}.status .grow{flex:1}.status .msg.error{color:var(--danger);font-weight:600}.status .mono{font-variant-numeric:tabular-nums}.status .units{color:var(--muted);font-weight:600}.status .maker{color:var(--muted);white-space:nowrap}.sel-list.boxed{border:1px solid var(--border);background:var(--surface);border-radius:3px;max-height:160px;padding:2px 6px;overflow:auto}.err.pad{padding:0 12px}.seg-buttons{flex-wrap:wrap;gap:0;margin:4px 0 6px;display:flex}.seg-buttons button{border:1px solid var(--border);background:var(--panel-2);flex:1;margin-left:-1px;padding:4px 6px;font-size:12px}.seg-buttons button:first-child{border-radius:3px 0 0 3px;margin-left:0}.seg-buttons button:last-child{border-radius:0 3px 3px 0}.seg-buttons button.on{background:var(--accent-soft);border-color:var(--accent);z-index:1;font-weight:600;position:relative}.quick-drop{position:relative}.quick-menu{z-index:60;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;min-width:210px;padding:4px 0;position:absolute;top:26px;left:0;box-shadow:0 6px 18px #0000002e}.quick-menu button{text-align:left;background:0 0;border:none;width:100%;padding:6px 12px;font-size:12.5px;display:block}.quick-menu button:hover{background:var(--hover)}.account{align-items:center;gap:12px;margin-left:auto;display:flex}.doc-state{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-size:12.5px;overflow:hidden}.doc-state em{color:var(--muted);font-style:normal}.doc-state b{font-weight:600}.doc-kind{vertical-align:1px;background:var(--accent-bg);color:var(--accent-ink);border-radius:9px;margin-right:8px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.doc-kind.asm{background:var(--warn-bg);color:#c2410c}.acct-btn{border:1px solid var(--border);background:var(--panel-2);border-radius:14px;align-items:center;gap:6px;padding:2px 10px 2px 3px;font-size:12.5px;display:flex}.acct-btn.login{background:var(--brand);color:#fff;border-color:var(--brand);padding:3px 12px;font-weight:600}.acct-btn.buy{color:#8a5a00;background:#fff7e0;border-color:#e6b94a;padding:3px 12px;font-weight:650}.acct-btn.buy:hover{background:#ffefc2}.avatar.wait{background:#fff3d6;font-size:11px}.menu-info .menu-wait{color:#8a5a00;white-space:normal;background:#fff7e0;border-radius:5px;margin-top:4px;padding:4px 7px;font-size:11.5px}.acct-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.avatar{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-grid}.quick-menu.right{min-width:240px;left:auto;right:0}.quick-menu hr{border:none;border-top:1px solid var(--border);margin:4px 0}.menu-info{border-bottom:1px solid var(--border);color:var(--muted);flex-direction:column;margin-bottom:4px;padding:6px 12px 8px;font-size:12px;display:flex}.menu-info b{color:var(--text);font-size:13px}.modal-back{z-index:100;background:#0f172a59;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel-2);border-radius:8px;flex-direction:column;width:min(420px,100%);max-height:calc(100vh - 32px);display:flex;box-shadow:0 20px 60px #0000004d}.modal.wide{width:min(860px,100%)}.modal-head{border-bottom:1px solid var(--border);align-items:center;padding:12px 16px;font-size:15px;display:flex}.modal-head .x{color:var(--muted);background:0 0;border:none;margin-left:auto;font-size:20px}.modal-body{padding:14px 16px;overflow:auto}.modal-body h4{color:var(--accent-ink);margin:16px 0 6px}.form{flex-direction:column;gap:10px;margin-top:10px;display:flex}.field{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.field input,.search,.invite-link input{border:1px solid var(--border);color:var(--text);border-radius:4px;padding:7px 9px;font-size:13px}.field input:focus,.search:focus{border-color:var(--accent);outline:none}.search{flex:1;min-width:0}button.primary{background:var(--accent);color:#fff;border:none;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-weight:600;display:inline-flex}button.primary svg{width:16px;height:16px}.small{font-size:11.5px}.doc-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:12.5px}.doc-table td{border-bottom:1px solid var(--accent-line);white-space:nowrap;padding:6px 8px}.doc-table td.name{white-space:normal;width:40%}.doc-table td.name .link{text-align:left;align-items:center;gap:6px;display:inline-flex}.doc-table td.name svg{width:15px;height:15px}.doc-table tr.current td{background:var(--accent-soft)}.doc-table td.actions{text-align:right}.doc-table td.actions .link{margin-left:10px}.doc-table tr.versions td{background:var(--accent-bg)}.version-row{align-items:center;gap:14px;padding:3px 0;font-size:12px;display:flex}.invite-link{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.invite-link input{flex:1;min-width:200px}.invite-link button{border:1px solid var(--border);background:var(--panel-2);border-radius:4px;padding:6px 10px}.col-buttons{flex-direction:column;gap:8px;margin-top:12px;display:flex}.col-buttons button:not(.primary):not(.link){border:1px solid var(--border);background:var(--panel-2);text-align:left;border-radius:4px;padding:7px 12px}.splash{background:var(--bg);place-items:center;height:100%;display:grid}.splash img{opacity:.7;height:40px}.login-page{-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#0d2b57 0%,#0a4ea6 55%,#0a8cff 100%);grid-template-columns:1.1fr 1fr;height:100%;display:grid;overflow:auto}.login-brand{color:#eaf3ff;flex-direction:column;justify-content:center;gap:18px;padding:64px 56px;display:flex}.login-brand img{background:var(--surface);border-radius:10px;align-self:flex-start;width:auto;height:64px;padding:10px 14px}.login-brand h1{color:#fff;max-width:520px;margin:8px 0 0;font-size:30px;line-height:1.2}.login-brand ul{color:#cfe3ff;max-width:520px;margin:0;padding-left:18px;font-size:15px;line-height:1.8}.login-manual{color:#fff;background:color-mix(in srgb, var(--surface) 12%, transparent);border:1px solid #ffffff8c;border-radius:6px;align-self:flex-start;padding:8px 14px;font-weight:600;text-decoration:none}.login-manual:hover{background:color-mix(in srgb, var(--surface) 22%, transparent)}span.login-manual{opacity:.6;cursor:default}span.login-manual:hover{background:color-mix(in srgb, var(--surface) 12%, transparent)}.login-downloads{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.login-card{background:var(--surface);border-radius:12px;place-self:center;width:min(400px,100% - 32px);margin:24px 0;padding:28px 28px 20px;box-shadow:0 24px 60px #0000004d}.login-card h2{margin:0 0 14px;font-size:20px}.login-card .form button.primary{padding:10px;font-size:14px}.login-card .guest{margin:14px auto 0;font-size:12.5px;display:block}@media (width<=820px){.login-page{grid-template-columns:1fr;grid-auto-rows:auto;align-content:start}.login-brand{gap:12px;padding:24px 20px 8px}.login-brand h1{font-size:22px}.login-card{margin:8px auto 32px}}.cm-btn.locked{opacity:.35}.feature-row{flex-wrap:wrap;gap:4px 18px;display:flex}.doc-table.admin td{vertical-align:top}.doc-table.admin td .check{margin:2px 10px 2px 0;display:inline-flex}.doc-table.admin tr.disabled td{opacity:.55;background:var(--danger-bg)}.cm-body{overflow-x:auto}.cm-btn{flex-shrink:0;width:70px}.tool-params{background:var(--warn-bg);border-bottom:1px solid var(--warn-line)}.cmd-row{align-items:center;gap:6px;margin:6px 0;display:flex}.cmd-row .numfield{max-width:120px}.cmd-row button.small-btn{border:1px solid var(--border);background:var(--panel-2);border-radius:3px;padding:4px 10px}.cmd-row button.small-btn:hover{background:var(--hover)}.num-input{z-index:8;pointer-events:none;background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--accent-line);border-radius:5px;flex-direction:column;gap:2px;padding:4px;font-size:12px;display:flex;position:absolute;box-shadow:0 4px 14px #00000026}.num-field{border-radius:3px;grid-template-columns:62px 64px 18px;align-items:center;gap:4px;padding:1px 4px;display:grid}.num-field .nl{color:var(--muted)}.num-field .nv{font-variant-numeric:tabular-nums;text-align:right;border:1px solid #0000;border-radius:3px;padding:1px 4px}.num-field .nu{color:var(--muted)}.num-field.active .nv{border-color:var(--accent);background:var(--surface)}.num-field.locked .nv{color:var(--accent-ink);font-weight:700}.num-help{color:var(--muted);padding:1px 4px;font-size:10.5px}.viewport-wrap{flex:1;min-width:0;display:flex;position:relative}.eval-panel{z-index:9;background:color-mix(in srgb, var(--surface) 97%, transparent);border:1px solid var(--border);border-radius:6px;width:360px;max-width:calc(100% - 24px);padding:8px 12px 10px;font-size:12.5px;position:absolute;bottom:34px;right:12px;box-shadow:0 8px 24px #0000002e}.eval-head{align-items:center;margin-bottom:6px;display:flex}.eval-head .x{color:var(--muted);background:0 0;border:none;margin-left:auto;font-size:18px}.eval-table{border-collapse:collapse;width:100%}.eval-table td{border-bottom:1px solid var(--accent-line);vertical-align:top;padding:4px}.eval-table td:first-child{color:var(--muted);white-space:nowrap;padding-right:10px}.eval-table select{width:100%}.sel-list li .grow{flex:1}.sel-list li .x{margin-left:2px}.cm-tabs .tab-sep{flex:1}.cm-tabs button.mode{color:var(--accent);font-weight:600}.cm-tabs button.mode.on{background:var(--accent);color:#fff}.drawing-mode{flex:1;min-width:0;display:flex}.dw-side .pm section{padding:8px 12px}.dw-side .field{margin:4px 0}button.wide{width:100%}.pm button.wide+button.wide{margin-top:4px}.dw-canvas{background:radial-gradient(at 50% 35%,#d5dce5,#aeb8c4);flex:1;place-items:center;min-width:0;padding:16px 16px 30px;display:grid;position:relative;overflow:auto}.dw-canvas.dim-tool{cursor:crosshair}.dw-paper{transform-origin:50%;background:var(--surface);box-shadow:0 8px 30px #00000059}.dw-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.dw-view{cursor:move}.dim-tool .dw-view{cursor:crosshair}.dw-dim{cursor:pointer}.dw-empty{text-align:center;color:var(--muted);pointer-events:none;place-content:center;gap:10px;display:grid;position:absolute;inset:0}.dw-empty button{pointer-events:auto}.dw-empty button:not(.primary){background:var(--surface);color:var(--accent-ink);border:1px solid var(--accent-line)}.asm-title{color:var(--muted);margin-left:16px;font-weight:600}.tree-name{font:inherit;background:0 0;border:1px solid #0000;width:100%;padding:1px 3px;font-weight:600}.tree-name:hover,.tree-name:focus{border-color:var(--border);background:var(--surface)}.seg-buttons.wrap button{flex:30%;margin-bottom:2px}.seg-buttons button:disabled{opacity:.4}.asm-help{pointer-events:none;font-size:11.5px;position:absolute;bottom:8px;left:12px}.eval-panel.bom{width:320px}.eval-panel.bom table{margin:4px 0 8px}.ctx .danger{color:var(--danger)}.def-full{color:var(--text-strong);font-weight:600}.def-under{color:var(--accent-ink)}.cm-group{flex:auto;min-width:0}.cm-btn{flex:0 70px;width:auto;min-width:50px;overflow:hidden}.cm-btn span{overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual}@media (width<=1500px){.cm-btn svg{width:24px;height:24px}.cm-btn{font-size:10.5px}}.eq-table input{border:1px solid var(--border);width:100%;font:inherit;border-radius:3px;padding:4px 6px}.eq-table td{vertical-align:middle}.eq-icon{color:var(--accent-ink);text-align:center;font-weight:700}.numfield input[value^=\=]{color:var(--accent-ink);font-style:italic}.note-input{width:100%;font:inherit;border:1px solid var(--border);resize:vertical;border-radius:4px;margin:4px 0;padding:5px 7px}.explode-bar{z-index:6;background:color-mix(in srgb, var(--surface) 95%, transparent);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;max-width:calc(50% - 80px);padding:5px 10px;font-size:12.5px;display:flex;position:absolute;top:8px;left:12px;box-shadow:0 2px 10px #0000001f}.explode-bar button{border:1px solid var(--border);background:var(--panel-2);border-radius:4px;padding:3px 9px}.explode-bar button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.ok-text{color:var(--ok-ink)}.props-form{flex-direction:column;gap:8px;min-width:360px;display:flex}.props-form select{border:1px solid var(--border);font:inherit;border-radius:4px;padding:7px 9px}.section-bar{z-index:6;background:color-mix(in srgb, var(--surface) 95%, transparent);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;display:flex;position:absolute;top:44px;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #0000001f}.section-bar button{border:1px solid var(--border);background:var(--panel-2);border-radius:4px;padding:2px 8px}.section-bar button.on{background:var(--accent-soft);border-color:var(--accent)}.section-bar input[type=range]{width:180px}.lbl.wide-lbl{min-width:78px}.nest-opts{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.small-field{width:110px}.small-field input,.small-field select{border:1px solid var(--border);width:100%;font:inherit;border-radius:4px;padding:5px 7px}.nest-preview{flex-wrap:wrap;gap:14px;max-height:460px;padding:6px 0;display:flex;overflow:auto}.nest-sheet svg{background:var(--surface);border-radius:4px;box-shadow:0 2px 10px #0f1f331f}.text-input{border:1px solid var(--border);width:100%;font:inherit;border-radius:4px;padding:6px 8px;font-size:14px}.nest-jobs input:not([type=checkbox]){border:1px solid var(--border);border-radius:4px;width:80px;padding:3px 6px}.nest-jobs th{text-align:left;color:var(--muted);white-space:nowrap;border-bottom:1px solid var(--accent-line);padding:6px 8px 4px;font-size:12px;font-weight:650}.nest-jobs th:last-child,.nest-jobs td:last-child{text-align:right;width:1%}.nest-jobs td:first-child{white-space:normal}.nest-jobs label.check{align-items:center;gap:6px;margin:0;display:inline-flex}.nest-h{color:var(--accent-ink);margin:8px 0 4px;font-size:12.5px}.cut-table-wrap{border:1px solid var(--border);border-radius:4px;max-height:300px;margin-top:6px;overflow:auto}.cut-table input{border:1px solid var(--border);font:inherit;border-radius:3px;padding:3px 5px}.cut-table td{padding:2px 4px}.cut-result{max-height:420px;margin-top:10px;overflow:auto}.cut-result section{margin-bottom:10px}.cut-result h4{margin:4px 0;font-size:13px}.cut-bar-row{align-items:center;gap:8px;margin:2px 0;display:flex}.cut-bar-label{text-align:right;width:80px;color:var(--muted);font-size:11.5px}.cut-bar{flex:0 auto;height:22px}.cut-bar-row .cut-bar{min-width:40px}.cut-bar-left{color:var(--muted);white-space:nowrap;font-size:11px}.dw-pages{z-index:3;gap:2px;display:flex;position:absolute;bottom:6px;left:8px}.dw-pages button{border:1px solid var(--border);background:var(--panel);border-radius:0 0 4px 4px;padding:3px 10px;font-size:12px}.dw-pages button.on{background:var(--surface);border-top-color:var(--border-soft);font-weight:600}.dw-pages button.danger{color:var(--danger-ink)}.cfg-select{margin-left:auto;padding:1px 4px;font-size:11.5px}.ctx-sub{border-top:1px solid var(--border);flex-direction:column;padding-top:2px;display:flex}.ctx-sub .on{font-weight:700}.hint-box{background:var(--accent-bg);border:1px solid var(--accent-line);border-radius:4px;margin:4px 0;padding:4px 6px;font-size:12px}.radial{z-index:40;pointer-events:none;width:0;height:0;position:absolute}.radial-ring{opacity:0;filter:drop-shadow(0 10px 24px #0f172a38)drop-shadow(0 1px 3px #0f172a1f);transition:transform .15s cubic-bezier(.2,.9,.3,1.15),opacity .11s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(.75)}.radial.shown .radial-ring{opacity:1;transform:translate(-50%,-50%)scale(1)}.radial-bg{fill:#fffffff0;stroke:var(--accent-line);stroke-width:1px}.radial-sep{stroke:var(--accent-line);stroke-width:1px}.radial-hub{fill:#ffffffe6;stroke:var(--accent-line);stroke-width:1px}.radial-arc{fill:var(--accent-ink);fill-opacity:.14;stroke:#1f6fd1;stroke-opacity:.55;stroke-width:1px}.radial-item{pointer-events:auto;width:34px;height:34px;color:var(--accent-ink);opacity:0;background:0 0;border:none;border-radius:50%;place-items:center;padding:0;transition:opacity .12s,transform .12s;display:grid;position:absolute;top:0;left:0}.radial.shown .radial-item{opacity:1}.radial-item svg{width:21px;height:21px;transition:transform .12s}.radial-item.on svg,.radial-item:hover svg{transform:scale(1.18)}.radial-item.on,.radial-item:hover{color:var(--accent-ink)}.radial-item:disabled{opacity:.3!important}.radial-center{text-align:center;pointer-events:none;width:200px;position:absolute;top:98px;left:0;transform:translate(-50%)}.radial-center b{color:#f1f5fa;letter-spacing:.2px;white-space:nowrap;background:#0f1f33;border-radius:7px;padding:4px 11px;font-size:11.5px;font-weight:600;display:inline-block;box-shadow:0 6px 16px #0f172a40}:is(.modal.manual-modal,.modal.wide:has(.manual)){width:min(1180px,100%)}.manual-bar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.manual-body{grid-template-columns:200px 1fr 1fr;gap:12px;min-height:420px;display:grid}.manual-steps{border:1px solid var(--border);border-radius:6px;max-height:60vh;margin:0;padding:0;list-style:none;overflow:auto}.manual-steps li{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.manual-steps li.on{background:var(--accent-bg)}.op-dot{background:#64748b;border-radius:50%;flex:none;width:9px;height:9px;margin-left:auto}.op-dot.op-weld{background:#e8590c}.op-dot.op-bolt{background:#2f9e44}.op-dot.op-fit{background:#1971c2}.manual-edit textarea{width:100%;font:inherit;margin-top:6px}.manual-cols{grid-template-columns:1fr 1fr;gap:8px;display:grid}.manual-cols h4{margin:8px 0 4px;font-size:12px}.manual-list{border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:2px;max-height:210px;padding:4px 6px;font-size:12px;display:flex;overflow:auto}.manual-preview .img{border:1px solid var(--border);background:var(--surface);border-radius:6px;position:relative;overflow:hidden}.manual-preview .img img{width:100%;display:block}.manual-preview .bal{background:var(--surface);width:22px;height:22px;color:var(--accent-ink);border:2px solid #0a6ad6;border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid;position:absolute;transform:translate(-50%,-50%)}.nest-sheet{flex-direction:column;align-items:center;margin:0;display:inline-flex}.nest-sheet figcaption{color:var(--accent-ink);font-size:11px;font-weight:700}.modal.wide:has(.start){width:min(900px,100%)}.start-cards{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.start-card{border:1px solid var(--border);background:linear-gradient(180deg, var(--surface), var(--accent-bg));text-align:center;cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:18px 14px;transition:box-shadow .12s,border-color .12s,transform .12s;display:flex}.start-card:hover{border-color:#0a8cff;transform:translateY(-1px);box-shadow:0 6px 22px #0a8cff2e}.start-card b{font-size:16px}.start-card span{color:var(--muted);font-size:12px;line-height:1.35}.start-card.drawing{cursor:default}.start-sub{flex-direction:column;gap:4px;width:100%;margin-top:4px;display:flex}.start-sub button{text-align:left;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.start-foot{align-items:center;gap:8px;margin-top:14px;display:flex}.warn-bar{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;font-size:13px;display:flex}.warn-bar span{flex:1;min-width:240px}:where(.modal,.pm) :is(button:not([class]),button.wide:not(.primary)){border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:5px 12px;line-height:1.3;transition:background .12s,border-color .12s;display:inline-flex}:where(.modal,.pm) :is(button:not([class]),button.wide:not(.primary)):not(:disabled):hover{background:var(--accent-soft);border-color:var(--accent-line)}:where(.modal,.pm) :is(button:not([class]),button.wide:not(.primary)):active{background:var(--accent-bg)}:where(.modal) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea):not([class]){border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;padding:4px 6px}:where(.modal) :is(input,select,textarea):not([class]):focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}:where(.modal) button.primary:not(:disabled):hover{filter:brightness(1.08)}:where(.modal) p.err{background:var(--danger-bg);border:1px solid var(--danger-line);border-radius:6px;padding:8px 10px}.confirm-text{margin:0 0 16px;line-height:1.5}.confirm-foot{justify-content:flex-end;gap:8px;display:flex}:where(.modal,.pm) :is(button:not([class]),button.wide:not(.primary)) svg{flex:none;width:16px;height:16px}.help-btn{border:1px solid var(--border);background:var(--panel-2);width:24px;height:24px;color:var(--accent);border-radius:50%;place-items:center;padding:0;font-weight:700;display:grid}.help-btn:hover{background:var(--accent-soft)}.help-dialog{grid-template-columns:1fr 1.3fr;gap:20px;display:grid}.help-dialog h4{color:var(--accent-ink);margin:4px 0 6px}.help-dialog table{border-collapse:collapse;width:100%;margin-bottom:12px}.help-dialog td{border-bottom:1px solid var(--border);vertical-align:top;padding:4px 6px;font-size:12.5px}.help-dialog td:first-child{width:48%;color:var(--muted)}.help-dialog td:has(kbd){white-space:nowrap;width:1%}.help-dialog ul{margin:0 0 10px;padding-left:18px}.help-dialog li{margin:3px 0;font-size:12.5px;line-height:1.45}.help-dialog kbd{border:1px solid var(--border);background:var(--surface);color:var(--text);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font:600 11.5px ui-monospace,monospace}@media (width<=760px){.help-dialog{grid-template-columns:1fr}}.cm-btn svg [fill=currentColor]{fill:#f7b955;fill-opacity:.75}.cm-btn svg [fill=currentColor][stroke=none]{fill:var(--accent-ink);fill-opacity:1}.cm-btn:disabled svg [fill=currentColor]{fill:currentColor;fill-opacity:.15}.cm-flyout{flex-shrink:0;align-items:stretch;display:flex;position:relative}.cm-flyout>.cm-btn{border-top-right-radius:0;border-bottom-right-radius:0}.cm-arrow{width:13px;color:var(--text);background:0 0;border:1px solid #0000;border-left:none;border-radius:0 4px 4px 0;padding:0 0 2px;font-size:10px}.cm-flyout:hover .cm-arrow:not(:disabled),.cm-flyout.open .cm-arrow{background:var(--hover);border-color:var(--accent-line)}.cm-flyout:hover>.cm-btn:not(:disabled){border-right-color:#0000}.cm-arrow:disabled{opacity:.35}.cm-menu{z-index:60;background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:1px;min-width:200px;padding:4px;display:flex;position:fixed;box-shadow:0 6px 18px #0000002e}.cm-menu button{text-align:left;white-space:nowrap;color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:5px 8px;font-size:12px;display:flex}.cm-menu button svg{width:22px;height:22px;color:var(--accent-ink);flex-shrink:0}.cm-menu button:not(:disabled):hover{background:var(--hover);border-color:var(--accent-line)}.cm-menu button.current{background:var(--accent-bg);font-weight:600}.cm-menu button:disabled{opacity:.4}.has-tip{cursor:help}.field.small-field>span.has-tip,label.has-tip{-webkit-text-decoration:underline dotted var(--border);text-decoration:underline dotted var(--border);text-underline-offset:3px}.status .flat-note{color:var(--warn-ink);background:var(--warn-bg);border:1px solid var(--warn-line);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:46vw;padding:0 6px;overflow:hidden}.pm-sub{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:8px 0 2px;font-size:11px;font-weight:600}.numfield{position:relative}.numfield .spin{border-left:1px solid var(--border);flex-direction:column;align-self:stretch;display:flex}.numfield .spin button{background:var(--panel);cursor:pointer;border:none;flex:1;place-items:center;width:16px;padding:0;display:grid}.numfield .spin button+button{border-top:1px solid var(--border)}.numfield .spin button:hover{background:var(--accent-soft)}.numfield .spin button:active{background:var(--accent-bg)}.numfield .spin svg{width:7px;height:5px;fill:var(--accent-ink)}.cmd-row button.small-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.cmd-row button.small-btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.cmd-row button.small-btn.primary:disabled{opacity:.5}.cmd-row button.small-btn.on{background:var(--accent-soft);border-color:var(--accent)}svg.fi{color:inherit}.cm-btn:disabled svg.fi,.cm-btn.locked svg.fi,.cm-menu button:disabled svg.fi{filter:grayscale();opacity:.45}.modal-back:has(>.modal.wide){place-items:start center;padding-top:24px}.modal-back:has(>.modal.wide)>.modal{max-height:calc(100vh - 48px)}.modal-body{overflow-anchor:none}.sel-box{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:3px;min-height:44px;max-height:120px;margin:2px 0 6px;padding:3px 6px;font-size:12px;overflow:auto}.sel-box.on{background:#ffe3ef;border-color:#e07aa5}.sel-item{justify-content:space-between;align-items:center;display:flex}.sel-item .x{cursor:pointer;color:var(--muted,#6b7785);background:0 0;border:0;padding:0 4px;font-size:14px}.sel-item .x:hover{color:#c0392b}.module-picker{flex-wrap:wrap;gap:4px;display:flex}.module-picker .chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:3px;padding:1px 6px;font-size:11px;display:inline-flex}.module-picker .chip.on{background:var(--accent-soft);border-color:var(--accent)}.module-picker .chip input{margin:0}.modules-cell{max-width:340px}.doc-table.admin tr.pending{background:var(--warn-bg)}.badge-pending{color:var(--warn-ink);background:var(--warn-bg);border-radius:8px;margin-left:4px;padding:0 7px;font-size:11px;font-weight:600;display:inline-block}.nest-opts{align-items:flex-end}.nest-opts .small-field>span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.nest-opts .wide-field{width:150px}.nest-opts>label.check{align-self:center}.nest-run{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 10px;display:flex}.nest-stale{color:#a35a00;font-size:12.5px;font-weight:600}.share-page{background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.share-head{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 14px;display:flex}.share-head img{height:30px}.share-title{flex-direction:column;line-height:1.25;display:flex}.share-title b{font-size:15px}.share-badge{color:var(--accent-ink);background:var(--accent-soft);border-radius:10px;padding:2px 9px;font-size:11px;font-weight:600}.share-head .seg-buttons{margin-left:auto}.share-model{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.share-viewbar{flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;display:flex}.share-viewbar button{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:4px 10px}.share-canvas{background:var(--viewport-bg);flex:1;min-height:0;position:relative}.share-msg{padding:16px}.share-msg.overlay{text-align:center;position:absolute;top:50px;left:0;right:0}.share-sheets{flex-direction:column;flex:1;align-items:center;gap:16px;padding:16px;display:flex;overflow:auto}.share-sheet{background:var(--surface);max-width:100%;box-shadow:0 4px 18px #00000026}.share-sheet svg{width:min(1200px,100%);height:auto;display:block}.share-foot{color:var(--muted);text-align:right;padding:4px 14px;font-size:11px}.share-panel{flex-direction:column;gap:6px;padding:6px 4px;display:flex}.share-head .seg-buttons button{white-space:nowrap}.rel-list li{cursor:pointer}.rel-list li:hover{background:var(--hover)}.gen-layout{grid-template-columns:minmax(300px,1fr) minmax(240px,360px);gap:18px;display:grid}@media (width<=760px){.gen-layout{grid-template-columns:1fr}}.gen-form h4{margin:10px 0 4px}.gen-row{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.gen-field>span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.gen-field select{border:1px solid var(--border);border-radius:3px;width:100%;padding:4px 6px}.gen-preview{background:var(--accent-bg);border:1px solid var(--border);border-radius:6px;align-self:start;padding:8px}.gen-preview svg{width:100%;height:auto;display:block}.gen-preview p{text-align:center;margin:6px 0 0}.modal-back.sidepanel{pointer-events:none;background:0 0;place-items:start;padding:96px 0 0 8px}.modal-back.sidepanel>.modal.sidepanel{pointer-events:auto;width:min(560px,100vw - 16px);max-height:calc(100vh - 110px);box-shadow:0 10px 40px #00000040}.modal.sidepanel .gen-layout{grid-template-columns:1fr}.modal.sidepanel .gen-preview{justify-self:center;max-width:260px}@media (width>=1100px){.modal.sidepanel .gen-layout{grid-template-columns:1fr 200px}.modal.sidepanel .gen-preview{max-width:none}}.modal p.warn{color:var(--warn-ink);background:var(--warn-bg);border-radius:4px;margin:4px 0;padding:3px 7px;font-size:12px}.gen-field{width:165px}.gen-field>span{white-space:normal;align-items:flex-end;min-height:2.4em;line-height:1.2;display:flex;overflow:visible}.gen-preview svg{max-height:340px}.gen-layout.jacket{grid-template-columns:minmax(320px,420px) 1fr}.jacket-pieces{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:8px;max-height:70vh;display:grid;overflow:auto}.jacket-piece{border:1px solid var(--border);background:var(--accent-bg);border-radius:6px;margin:0;padding:6px}.jacket-piece figcaption{margin-bottom:4px;font-size:12px}.jacket-piece svg{width:100%;height:160px;display:block}.jacket-piece p{margin:4px 0 0}.jacket-totals{background:var(--accent-bg);border-radius:6px;margin-top:8px;padding:6px 8px;font-size:12px}@media (width<=760px){.gen-layout.jacket{grid-template-columns:1fr}}.picto-choice{margin:4px 0 6px}.picto-buttons{flex-wrap:wrap;gap:4px;display:flex}.picto-buttons button{border:1px solid var(--border);background:var(--panel-2);border-radius:3px;place-items:center;width:38px;height:36px;padding:2px;display:grid}.picto-buttons button:hover{border-color:var(--accent)}.picto-buttons button.on{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.picto-label{color:var(--muted,var(--muted));margin-top:2px;font-size:11px;display:block}.tree-row.hidden-ref{color:var(--muted,var(--muted));font-style:italic}.admin-users{max-height:320px;margin-bottom:10px;overflow:auto}.admin-users th{text-align:left;color:var(--muted,var(--muted));background:var(--panel,var(--surface));font-size:11px;font-weight:600;position:sticky;top:0}h4.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.appearance{gap:6px;display:grid}.appearance .swatches{grid-template-columns:repeat(9,20px);gap:4px;display:grid}.appearance .swatch{cursor:pointer;border:1px solid #00000040;border-radius:3px;width:20px;height:20px;padding:0}.appearance .swatch.on{outline:2px solid var(--accent);outline-offset:1px}.appearance input[type=range]{flex:1;min-width:100px}.admin-phone-bar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.admin-tools{border-top:1px solid var(--border);margin-top:14px;padding-top:8px}.admin-tools summary{cursor:pointer;color:var(--accent-ink);padding:6px 0;font-weight:600}@media (width<=760px),(pointer:coarse) and (width<=1024px){.modal-back:has(.admin-panel){place-items:stretch stretch;padding:0}.modal-back:has(.admin-panel) .modal{border-radius:0;width:100%;height:100%;max-height:none}.admin-panel .row{flex-wrap:wrap}.admin-panel .search,.admin-panel select{width:100%;font-size:16px}.admin-panel .doc-table,.admin-panel .doc-table tbody,.admin-panel .doc-table tr,.admin-panel .doc-table td{width:100%;display:block}.admin-panel .doc-table thead{display:none}.admin-panel .doc-table tr{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-bottom:8px;padding:4px 2px}.admin-panel .doc-table td{white-space:normal;border:none;padding:3px 8px}.admin-panel .doc-table td.actions{text-align:left}.admin-panel .doc-table td.actions button{padding:8px 12px}.admin-panel .admin-users{max-height:none;overflow:visible}.admin-panel label.check.small{margin:2px 10px 2px 0;padding:4px 0;display:inline-flex}.admin-panel .doc-table td[data-label]:before{content:attr(data-label);color:var(--muted,var(--muted));font-size:11px;display:block}}.cm-rows{flex-shrink:0;grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column;gap:2px;display:grid}.cm-rows .cm-flyout{min-width:0}.cm-rows .cm-btn{text-align:left;flex-direction:row;flex:auto;justify-content:flex-start;align-items:center;gap:5px;width:auto;min-width:0;max-width:124px;padding:1px 6px 1px 3px;font-size:11.5px;line-height:1.1}.cm-rows .cm-btn svg{flex-shrink:0;width:22px;height:22px}.cm-rows .cm-btn span{overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}.cm-rows .cm-arrow{padding:0}@media (width<=1500px){.cm-rows .cm-btn{gap:4px;max-width:104px;padding:1px 4px 1px 2px;font-size:11px}.cm-rows .cm-btn svg{width:20px;height:20px}}.gen-layout.plate{grid-template-columns:minmax(330px,440px) 1fr}@media (width<=860px){.gen-layout.plate{grid-template-columns:1fr}}.plate .wide-gen{width:230px}.plate .wide-gen input,.plate .gen-field input:not([type]){border:1px solid var(--border);border-radius:3px;width:100%;padding:4px 6px}.plate-list{border:1px solid var(--border);resize:vertical;border-radius:4px;width:100%;min-height:110px;margin:4px 0;padding:6px;font:12px/1.4 ui-monospace,Consolas,monospace}.plate-side{flex-direction:column;gap:8px;min-width:0;display:flex}.plate-preview{background:repeating-conic-gradient(var(--accent-bg) 0 25%, var(--surface) 0 50%) 0 0 / 16px 16px;border:1px solid var(--border);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:6px;width:100%;height:auto;max-height:280px}.plate-info{background:var(--accent-bg);border-radius:6px;padding:6px 8px;font-size:12.5px}.plate-info .warn{color:var(--warn-ink);margin-top:2px}.plate-list-preview{flex-wrap:wrap;align-content:flex-start;gap:3px;max-height:150px;display:flex;overflow:auto}.plate-list-preview button{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:3px;padding:2px 6px;font:11.5px ui-monospace,Consolas,monospace}.plate-list-preview button.on{background:var(--accent);border-color:var(--accent);color:#fff}.plate-list-preview .n{opacity:.6}.modal.wide:has(.gen-layout.plate){width:min(1280px,96vw);max-width:none}.plate .gen-field{width:128px}.plate .gen-form .seg-buttons{margin:2px 0 6px}.plate-preview{max-height:340px}.confirm-foot button.danger{color:var(--danger)}.ribbon-tip{z-index:80;background:var(--warn-bg);border:1px solid var(--border);width:300px;color:var(--text);pointer-events:none;border-radius:6px;gap:10px;padding:9px 11px;font-size:12px;display:flex;position:fixed;box-shadow:0 6px 20px #0000002e}.ribbon-tip b{margin-bottom:2px;font-size:12.5px;display:block}.ribbon-tip p{color:var(--text);margin:0;line-height:1.35}.ribbon-tip-icon svg{width:40px;height:40px;color:var(--accent-ink);flex-shrink:0}.view-cube{z-index:6;pointer-events:none;place-items:center;width:100px;height:100px;display:grid;position:absolute;top:10px;right:12px}.vc-stage{pointer-events:auto;width:60px;height:60px;position:relative}.vc-cube{transform-style:preserve-3d;position:absolute;inset:0}.vc-face{backface-visibility:hidden;border:1px solid var(--accent-line);width:60px;height:60px;color:var(--accent-ink);cursor:pointer;background:#ecf1f7eb;place-items:center;padding:0;font-size:11px;font-weight:600;display:grid;position:absolute;inset:0}.vc-face:hover{background:var(--accent-bg);color:var(--accent-ink);border-color:#2a5ea8}.vc-corner{border:2px solid var(--border-soft);cursor:pointer;opacity:.75;z-index:2;background:#2a5ea8;border-radius:50%;width:10px;height:10px;padding:0;position:absolute;top:25px;left:25px;box-shadow:0 0 0 1px #2a5ea8}.vc-corner:hover{opacity:1;transform-origin:50%;background:#f59e0b}.ctx-bar{z-index:7;background:color-mix(in srgb, var(--surface) 96%, transparent);border:1px solid var(--accent-line);border-radius:6px;gap:1px;padding:3px;animation:.12s ease-out ctx-in;display:flex;position:absolute;box-shadow:0 3px 12px #00000029}.ctx-bar button{width:30px;height:30px;color:var(--accent-ink);background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;padding:0;display:grid}.ctx-bar button:hover{background:var(--hover);border-color:var(--accent-line)}.ctx-bar svg{width:22px;height:22px}@keyframes ctx-in{0%{opacity:0;transform:translateY(4px)}}.tree-kids{position:relative}.tree-kids:before{content:"";left:var(--guide);border-left:1px dotted var(--accent-line);pointer-events:none;position:absolute;top:0;bottom:11px}.tree-row.err .tname{color:var(--danger);font-weight:600}.tree-row.err .ticon{filter:drop-shadow(0 0 #d33)saturate(.4)}.tree-row.suppressed .ticon{filter:grayscale();opacity:.45}.tree-errbar{text-align:left;width:calc(100% - 12px);color:var(--danger-ink);background:var(--danger-bg);border:1px solid var(--danger-line);border-radius:4px;margin:2px 6px 6px;padding:4px 8px;font-size:11.5px;display:block}.tree-errbar:hover{background:var(--danger-bg)}.cm-flyout:has(>.cm-arrow:hover:not(:disabled))>.cm-btn:not(:disabled){border-color:var(--accent-line);background:0 0}.cm-flyout>.cm-arrow:hover:not(:disabled){background:var(--hover);border-color:var(--accent-line)}.modal-body .dialog-foot{z-index:4;background:var(--panel-2);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:14px -16px -14px;padding:10px 16px;display:flex;position:sticky;bottom:-14px}.modal.sidepanel .gen-form .dialog-foot{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.modal.sidepanel .gen-field{width:136px}.ribbon-tip{background:var(--surface);border:1px solid var(--accent-line);border-radius:10px;gap:12px;width:320px;padding:12px 14px;animation:.14s ease-out tip-in;box-shadow:0 12px 32px #0f172a29,0 2px 6px #0f172a0f}.ribbon-tip b{color:var(--text-strong);letter-spacing:.1px;margin-bottom:4px;font-size:13px;font-weight:650}.ribbon-tip p{color:var(--text);font-size:12px;line-height:1.45}.ribbon-tip-icon{background:linear-gradient(180deg, var(--accent-bg), var(--accent-bg));border:1px solid var(--accent-line);border-radius:9px;flex-shrink:0;place-items:center;width:48px;height:48px;display:grid}.ribbon-tip-icon svg{width:32px;height:32px}@keyframes tip-in{0%{opacity:0;transform:translateY(-3px)}}.ctx-bar{border-color:var(--accent-line);border-radius:9px;gap:2px;padding:4px;box-shadow:0 10px 28px #0f172a29,0 2px 6px #0f172a0f}.ctx-bar button{border-radius:6px}.vc-stage{cursor:grab;touch-action:none}.vc-stage:active{cursor:grabbing}.custom-plate .gen-form{margin-top:4px}.custom-plate-preview{background:var(--accent-bg);border:1px solid var(--border);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:6px;width:100%;height:auto;max-height:300px;display:block}.hole-groups{flex-direction:column;gap:4px;display:flex}.hole-group{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;padding:5px 8px}.hole-group.on{border-color:var(--accent-line);background:var(--accent-bg);cursor:default}.hole-group-head{align-items:center;gap:8px;display:flex}.hole-group-head .muted{flex:1}.cost{border-top:1px solid var(--border);margin-top:14px;padding-top:8px}.cost-toggle{color:var(--accent-ink);background:0 0;border:none;padding:4px 0;font-size:13px;font-weight:650}.cost-table{margin-top:8px}.cost-table .r{text-align:right;white-space:nowrap}.cost-sum{background:var(--accent-bg);border:1px solid var(--accent-line);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:8px 0;padding:8px 12px;display:flex}.cost-total{font-size:14px}.cost-total b{color:var(--text-strong)}.quote-form{border:1px solid var(--accent-line);background:var(--surface);border-radius:10px;margin-top:8px;padding:10px 12px;box-shadow:0 6px 18px #0f172a14}.quote-form h4{margin:0 0 6px}.company{grid-template-columns:220px 1fr;gap:20px;display:grid}@media (width<=700px){.company{grid-template-columns:1fr}}.company-logo{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.company-logo-box{border:1px dashed var(--accent-line);background:var(--accent-bg);border-radius:10px;place-items:center;width:100%;height:120px;padding:10px;display:grid}.company-logo-box img{object-fit:contain;max-width:100%;max-height:100%}.company-fields{grid-template-columns:1fr 1fr;gap:8px 14px;display:grid}.company-fields .field input,.company-fields textarea{border:1px solid var(--border);width:100%;font:inherit;border-radius:4px;padding:5px 7px}.company-fields .wide-field{grid-column:1/-1}.shortcut-bar{z-index:70;background:color-mix(in srgb, var(--surface) 97%, transparent);border:1px solid var(--accent-line);border-radius:10px;align-items:flex-start;gap:2px;padding:5px;animation:.12s ease-out tip-in;display:flex;position:fixed;box-shadow:0 12px 32px #0f172a2e,0 2px 6px #0f172a0f}.sb-grid{grid-template-columns:repeat(4,34px);gap:2px;display:grid}.sb-grid button,.sb-gear{width:34px;height:34px;color:var(--accent-ink);background:0 0;border:1px solid #0000;border-radius:7px;place-items:center;padding:0;display:grid}.sb-grid button:hover{background:var(--hover);border-color:var(--accent-line)}.sb-grid svg{width:22px;height:22px}.sb-gear{width:22px;color:var(--muted);font-size:13px}.sb-gear:hover{color:var(--accent-ink)}.shortcut-bar.editing{width:300px;padding:10px 12px}.sb-edit b{font-size:13px}.sb-choices{grid-template-columns:1fr 1fr;gap:3px;max-height:260px;margin-top:4px;display:grid;overflow:auto}.sb-choices button{border:1px solid var(--accent-line);background:var(--surface);text-align:left;color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:3px 6px;font-size:11.5px;display:flex}.sb-choices button svg{width:18px;height:18px;color:var(--accent-ink);flex-shrink:0}.sb-choices button.on{background:var(--accent-bg);border-color:var(--accent-line);font-weight:600}.library{grid-template-columns:190px 1fr;gap:16px;min-height:320px;display:grid}@media (width<=700px){.library{grid-template-columns:1fr}}.lib-cats{border-right:1px solid var(--border);flex-direction:column;gap:2px;padding-right:10px;display:flex}.lib-cats button{text-align:left;color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:space-between;padding:6px 9px;font-size:12.5px;display:flex}.lib-cats button span{color:var(--muted);font-size:11px}.lib-cats button:hover{background:var(--hover)}.lib-cats button.on{background:var(--accent-bg);color:var(--accent-ink);font-weight:600}.lib-main .search{width:100%;margin-bottom:10px}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.lib-card{border:1px solid var(--accent-line);background:var(--surface);text-align:left;color:var(--text);border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;transition:box-shadow .12s,border-color .12s;display:flex}.lib-card:hover{border-color:var(--accent-line);box-shadow:0 6px 18px #0f172a1a}.lib-icon{background:linear-gradient(180deg, var(--accent-bg), var(--accent-bg));border:1px solid var(--accent-line);width:38px;height:38px;color:var(--accent-ink);border-radius:9px;place-items:center;display:grid}.lib-icon svg{width:24px;height:24px}.tree-bar{z-index:60;background:var(--surface);border:1px solid var(--accent-line);border-radius:8px;gap:1px;padding:3px;animation:.12s ease-out tip-in;display:flex;position:fixed;transform:translateY(-50%);box-shadow:0 8px 22px #0f172a29,0 1px 3px #0f172a0f}.tree-bar button{width:28px;height:28px;color:var(--accent-ink);background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;padding:0;display:grid}.tree-bar button:hover{background:var(--hover);border-color:var(--accent-line)}.tree-bar svg{width:18px;height:18px}.measure-tag{pointer-events:none;background:color-mix(in srgb, var(--surface) 97%, transparent);border:1px solid var(--accent-line);white-space:nowrap;font-variant-numeric:tabular-nums;border-left:3px solid #1f6fd1;border-radius:9px;flex-direction:column;align-items:center;gap:1px;padding:6px 12px 7px;animation:.14s ease-out tip-in;display:flex;box-shadow:0 10px 26px #0f172a2e,0 2px 5px #0f172a14}.measure-tag b{color:var(--text-strong);letter-spacing:.2px;font-size:15px;font-weight:650}.measure-tag span{color:var(--text);font-size:11px}.measure-tag.small{color:var(--text-strong);padding:4px 10px;font-size:12px;font-weight:600}.eval-panel{inset:12px auto auto 12px}.lib-thumb{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--accent-line);background:var(--accent-bg);border-radius:7px;width:100%}.quotes-table .r{text-align:right;white-space:nowrap}.workshop{flex-direction:column;flex:1;gap:12px;width:100%;max-width:640px;margin:0 auto;padding:12px;display:flex;overflow:auto}.ws-card{background:var(--surface);border:1px solid var(--accent-line);border-radius:14px;padding:14px 16px;box-shadow:0 6px 18px #0f172a12}.ws-card h3{text-transform:uppercase;letter-spacing:1.1px;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:650}.ws-card h3+*{margin-top:0}.ws-head{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.ws-head>div:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-name{color:var(--text-strong);overflow-wrap:anywhere;font-size:19px}.ws-count{text-align:right;line-height:1}.ws-count b{color:var(--accent-ink);font-variant-numeric:tabular-nums;font-size:34px}.ws-count span{color:var(--text);margin-top:4px;font-size:12px;display:block}.ws-bar{background:var(--accent-bg);border-radius:6px;grid-column:1/-1;height:8px;overflow:hidden}.ws-bar i{background:linear-gradient(90deg,#2aa0ff,#1f6fd1);border-radius:6px;height:100%;display:block}.ws-qty{grid-template-columns:56px 1fr 56px;gap:8px;display:grid}.ws-qty button{border:1px solid var(--accent-line);background:var(--accent-bg);height:52px;color:var(--accent-ink);border-radius:12px;font-size:26px}.ws-qty input{border:1px solid var(--accent-line);text-align:center;font-variant-numeric:tabular-nums;border-radius:12px;height:52px;font-size:24px;font-weight:650}.ws-who{border:1px solid var(--accent-line);width:100%;height:42px;font:inherit;border-radius:10px;margin-top:8px;padding:0 12px}.ws-done{color:#fff;background:linear-gradient(#2b8af0,#1f6fd1);border:none;border-radius:12px;width:100%;height:56px;margin-top:10px;font-size:19px;font-weight:650;box-shadow:0 8px 20px #1f6fd14d}.ws-done:disabled{opacity:.6}.ws-msg{color:var(--ok-ink);margin:8px 0 0;font-weight:600}.ws-log{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.ws-log li{border-top:1px solid var(--accent-line);align-items:baseline;gap:8px;padding:4px 0;display:flex}.ws-log li .muted{margin-left:auto;font-size:12px}.ws-facts{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.ws-facts div{background:var(--accent-bg);border-radius:10px;padding:8px 10px}.ws-facts span{color:var(--muted);font-size:11px;display:block}.ws-facts b{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:16px}.ws-bends{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ws-bends li{border:1px solid var(--accent-line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;grid-template-columns:38px 70px 1fr auto;align-items:center;gap:8px;padding:10px 12px;display:grid}.ws-bends li.on{background:var(--ok-bg);border-color:var(--ok-line)}.ws-check{background:var(--accent-bg);width:30px;height:30px;color:var(--accent-ink);border-radius:50%;place-items:center;font-weight:700;display:grid}.ws-bends li.on .ws-check{color:#fff;background:#2f9e57}.ws-angle{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.ws-pad{padding:0 6px}.doc-table .produced{color:var(--ok-ink);font-weight:600}@media (width<=600px){.share-head img{height:24px}.share-head .seg-buttons{width:100%;margin-left:0}.share-head .seg-buttons button{flex:1}.share-badge{display:none}}.viewport:has(.confirm-corner) .view-cube{top:64px}.cut-profile-bar{background:var(--accent-bg);border:1px solid var(--accent-line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 8px;padding:10px 12px;display:flex}.cut-profile-bar b{color:var(--accent-ink);font-size:13px}.cut-profile-bar select,.cut-profile-bar input{min-width:140px}.cut-prof{white-space:nowrap;font-size:12px}.numfield.bad{box-shadow:0 0 0 2px #d6454526;border-color:var(--danger-line)!important}.numfield.bad input{color:var(--danger-ink)}.dw-dangling{border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn-ink);border-radius:6px;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;font-size:12px;display:flex}.dw-dangling button{flex:none}@media (width<=700px){.main{flex-direction:column}.main>.viewport-wrap{flex:1 1 0;min-height:0}.main>.side{border-right:none;border-top:1px solid var(--border);flex:none;order:2;width:100%;min-width:0;height:38vh}.titlebar{scrollbar-width:none;overflow-x:auto}.titlebar::-webkit-scrollbar{display:none}.view-cube{transform-origin:100% 0;transform:scale(.75)}}.model-handle-tag{pointer-events:auto;background:color-mix(in srgb, var(--surface) 96%, transparent);border:1px solid var(--accent-line);color:var(--accent-ink);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:4px 6px 4px 10px;font-size:12px;display:flex;transform:translate(14px,-50%);box-shadow:0 6px 18px #0f1f332e}.model-handle-tag span{color:var(--muted)}.model-handle-tag input{border:1px solid var(--accent-line);width:64px;color:var(--text-strong);text-align:right;border-radius:5px;padding:3px 6px;font:600 13px/1.2 inherit}.model-handle-tag input:focus{border-color:#1a7cf0;outline:none;box-shadow:0 0 0 3px #1a7cf026}.model-handle-tag input.bad{border-color:var(--danger-line);color:var(--danger-ink)}.model-handle-tag em{color:var(--muted);font-style:normal}.fold-bar{z-index:6;background:color-mix(in srgb, var(--surface) 96%, transparent);border:1px solid var(--border-soft);box-shadow:0 10px 28px var(--shadow);color:var(--muted);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.fold-bar input[type=range]{width:280px;accent-color:var(--accent)}.fold-play{background:var(--accent);color:#fff;border:0;border-radius:50%;place-items:center;width:34px;height:34px;font-size:13px;display:grid;box-shadow:0 3px 10px #1f6fd159}.fold-play:disabled{background:var(--border);box-shadow:none}.fold-end{white-space:nowrap}.fold-progress{color:var(--accent-ink);white-space:nowrap}.fold-close{color:var(--muted);background:0 0;border:0;padding:2px 4px;font-size:18px;line-height:1}.fold-close:hover{color:var(--text)}.search-btn{border:1px solid var(--border);background:var(--surface);height:24px;color:var(--muted);border-radius:6px;align-items:center;gap:6px;margin-right:6px;padding:0 6px 0 8px;font-size:12px;display:flex}.search-btn svg{width:15px;height:15px}.search-btn kbd,.palette-search kbd{border:1px solid var(--border);color:var(--muted);background:var(--surface-2);border-bottom-width:2px;border-radius:4px;padding:2px 5px;font:10.5px/1 inherit}.search-btn:hover{border-color:var(--accent-line);color:var(--text)}@media (width<=1100px){.search-btn span{display:none}}.palette-back{z-index:120;background:#0f1f332e;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette{background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;width:min(600px,100vw - 32px);animation:.12s ease-out palette-in;overflow:hidden;box-shadow:0 24px 60px #0f1f3347}@keyframes palette-in{0%{opacity:0;transform:translateY(-6px)scale(.99)}}.palette-search{border-bottom:1px solid var(--border-soft);color:var(--muted);align-items:center;gap:10px;padding:12px 14px;display:flex}.palette-search svg{flex:none;width:18px;height:18px}.palette-search input{color:var(--text-strong);background:0 0;border:0;outline:none;flex:1;font-size:15px}.palette-list{max-height:min(420px,60vh);margin:0;padding:6px;list-style:none;overflow:auto}.palette-list li{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:7px 10px;display:flex}.palette-list li.on{background:var(--accent-bg)}.palette-icon{background:var(--surface-2);border:1px solid var(--border-soft);width:28px;height:28px;color:var(--accent-ink);border-radius:7px;flex:none;place-items:center;display:grid}.palette-icon svg{width:20px;height:20px}.palette-label{color:var(--text-strong);flex:1;font-size:13.5px}.palette-group{color:var(--muted);font-size:11.5px}.palette-empty{color:var(--muted);justify-content:center;cursor:default!important}.timeline{z-index:5;transform-origin:100%;background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border-soft);max-width:calc(100% - 140px);box-shadow:0 6px 20px var(--shadow);border-radius:10px;align-items:center;gap:2px;padding:4px 6px;animation:.22s cubic-bezier(.2,.8,.2,1) tl-open;display:flex;position:absolute;bottom:12px;right:12px}.tl-track{scrollbar-width:none;scroll-behavior:smooth;align-items:center;gap:2px;padding:1px 2px;display:flex;overflow-x:auto}.tl-track::-webkit-scrollbar{display:none}.tl-item{background:0 0;border:1px solid #0000;border-radius:6px;flex:none;place-items:center;width:28px;height:28px;padding:0;display:grid;position:relative}.tl-item svg{width:20px;height:20px}.tl-item.sketch svg{opacity:.85;width:17px;height:17px}.tl-item:hover{background:var(--hover)}.tl-item.on{background:var(--accent-bg);border-color:var(--accent-line)}.tl-item.rolled{opacity:.32}.tl-item.suppressed{opacity:.45;filter:grayscale()}.tl-item.error:after{content:"";background:var(--danger);width:7px;height:7px;box-shadow:0 0 0 1.5px var(--surface);border-radius:50%;position:absolute;top:2px;right:2px}.tl-marker{background:var(--accent);cursor:ew-resize;width:6px;height:30px;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:3px;flex:none;margin:0 1px}.tl-step{width:24px;height:26px;color:var(--muted);background:0 0;border:0;border-radius:5px;flex:none;padding:0;font-size:11px}.tl-step:hover:not(:disabled){background:var(--hover);color:var(--text)}@keyframes tl-open{0%{opacity:0;transform:scaleX(.15)}to{opacity:1;transform:none}}.tl-toggle-wrap{z-index:5;position:absolute;bottom:12px;right:12px}.tl-toggle{border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface) 94%, transparent);height:34px;color:var(--accent-ink);box-shadow:0 6px 18px var(--shadow);border-radius:17px;align-items:center;gap:6px;padding:0 11px 0 9px;font-size:12px;font-weight:600;animation:.18s ease-out tl-pop;display:flex;position:relative}.tl-toggle svg{width:18px;height:18px}.tl-toggle:hover{border-color:var(--accent-line);background:var(--surface)}.tl-toggle.error{color:var(--danger-ink);border-color:var(--danger-line)}@keyframes tl-pop{0%{opacity:0;transform:scale(.8)}}.tl-close{border:0;border-left:1px solid var(--border-soft);width:28px;height:28px;color:var(--accent-ink);background:0 0;border-radius:0 6px 6px 0;flex:none;place-items:center;margin-left:2px;padding:0;display:grid}.tl-close svg{width:17px;height:17px}.tl-close:hover{background:var(--hover)}.tl-tip{background:var(--surface);border:1px solid var(--border-soft);width:300px;color:var(--text);opacity:0;pointer-events:none;border-radius:12px;padding:12px 14px 10px;font-size:12.5px;line-height:1.45;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 10px);right:0;transform:translateY(6px);box-shadow:0 16px 40px #0f1f3333}.tl-toggle-wrap:hover .tl-tip{opacity:1;transition-delay:.25s;transform:none}.tl-tip:after{content:"";background:var(--surface);border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);width:10px;height:10px;position:absolute;bottom:-6px;right:26px;transform:rotate(45deg)}.tl-tip-head{color:var(--accent-ink);align-items:center;gap:8px;margin-bottom:6px;display:flex}.tl-tip-head svg{width:20px;height:20px}.tl-tip-head b{color:var(--text-strong);font-size:14px}.tl-tip-head span{color:var(--muted);margin-left:auto;font-size:11.5px}.tl-tip p{color:var(--muted);margin:0 0 6px}.tl-tip ul{gap:5px;margin:0 0 6px;padding-left:0;list-style:none;display:grid}.tl-tip li{padding-left:14px;position:relative}.tl-tip li:before{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;top:7px;left:2px}.tl-tip-marker{background:var(--accent);border-radius:2px;width:5px;height:13px;margin:0 2px -2px 0;display:inline-block}.tl-tip-note{font-weight:600;color:var(--accent-ink)!important}.tl-tip-note.err{color:var(--danger-ink)!important}.tl-tip em{color:var(--muted);text-align:right;margin-top:4px;font-size:11.5px;font-style:normal;display:block}.kpi-row{flex-wrap:wrap;align-items:stretch;gap:8px;margin:10px 0 12px;display:flex}.kpi{background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;flex-direction:column;flex:104px;gap:2px;min-width:0;padding:9px 12px 10px;display:flex;box-shadow:0 1px 2px #0f1f330d;container-type:inline-size}.kpi-label{color:var(--muted);letter-spacing:.2px;font-size:11px}.kpi-value{white-space:nowrap;text-overflow:ellipsis;color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:clamp(13px,17cqi,20px);font-weight:650;line-height:1.15;overflow:hidden}.kpi-value small{color:var(--muted);margin-left:3px;font-size:12px;font-weight:500}.kpi-meter{background:var(--surface-3);border-radius:2px;height:4px;margin-top:4px;display:block;overflow:hidden}.kpi-meter i{border-radius:2px;height:100%;display:block}.kpi-meter.good i{background:#2f9e57}.kpi-meter.mid i{background:#f59e0b}.kpi-meter.low i{background:#e03131}.kpi-note{color:var(--muted);align-self:flex-end;margin-left:auto;font-size:11px}.cost-kpis{align-items:stretch;gap:8px;margin:6px 0 10px;display:flex}.cost-kpis .kpi-row{flex:1;margin:0}.kpi.kpi-total{background:linear-gradient(#1f6fd1,#1a5fb8);border-color:#1a5fb8;flex:none;min-width:150px;box-shadow:0 6px 16px #1f6fd147}.kpi.kpi-total .kpi-label{color:#fffc}.kpi.kpi-total .kpi-value{color:#fff;font-size:22px}.kpi.kpi-total .kpi-value small{color:#fffc}.cut-remnant-hint{max-width:720px;margin:-2px 0 8px}.dw-side .dw-dup{display:none!important}.dw-ribbon .quick-drop{display:flex}.mate-pm .mate-picks{border:1px solid var(--accent-line);background:var(--surface);border-radius:6px;grid-template-columns:minmax(0,1fr);gap:3px;min-height:58px;margin:0;padding:4px;list-style:none;display:grid;overflow:hidden}.mate-picks li{border-radius:4px;align-items:center;gap:7px;padding:4px 6px;font-size:12.5px;display:flex}.mate-picks li.mp-a{background:#fff1d6}.mate-picks li.mp-b{background:#e3eefc}.mate-picks .mp-dot{border-radius:50%;flex:none;width:9px;height:9px}.mate-picks .mp-a .mp-dot{background:#f59f00}.mate-picks .mp-b .mp-dot{background:var(--accent)}.mate-picks .mp-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.mate-picks .mp-prompt{color:var(--muted);font-style:italic}.mate-types{gap:1px;display:grid}.mate-type{text-align:left;width:100%;min-height:32px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:9px;padding:3px 8px;font-size:13px;display:flex}.mate-type svg{flex:none;width:22px;height:22px}.mate-type:not(:disabled):hover{background:var(--hover);border-color:var(--accent-line)}.mate-type.on{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.mate-type:disabled{opacity:.35}.mate-type .mate-val{width:104px;margin-left:auto;font-weight:400}.mate-align{align-items:center;gap:4px;margin-top:8px;display:flex}.mate-align .lbl{color:var(--muted);flex:1;font-size:12px}.mate-align button{border:1px solid var(--border-soft);background:var(--surface);border-radius:5px;place-items:center;width:34px;height:30px;padding:0;display:grid}.mate-align button.on{border-color:var(--accent);background:var(--accent-bg)}.mate-align svg{width:22px;height:22px}.mate-created{gap:2px;margin:0;padding:0;list-style:none;display:grid}.mate-created li{background:var(--surface-2);border-radius:4px;align-items:center;gap:8px;padding:3px 6px;font-size:12.5px;display:flex}.mate-created svg{width:18px;height:18px}.mate-created .muted{margin-left:auto}.mate-popup{z-index:30;background:color-mix(in srgb, var(--surface) 97%, transparent);border:1px solid var(--border-soft);border-radius:9px;align-items:center;gap:2px;padding:4px;animation:.14s ease-out tl-pop;display:flex;position:fixed;box-shadow:0 10px 28px #0f1f3338}.mate-popup button{background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;width:32px;height:32px;padding:0;font-size:16px;display:grid}.mate-popup button svg{width:22px;height:22px}.mate-popup button:hover{background:var(--hover);border-color:var(--accent-line)}.mate-popup button.on{background:var(--accent-bg);border-color:var(--accent)}.mate-popup button.ok{color:#fff;background:#2f9e57;font-weight:700}.mate-popup button.ok:hover{background:#278a4b}.mate-popup button.cancel{color:var(--danger-ink)}.mate-popup-val{width:100px;margin:0 2px}.mate-popup-sep{background:var(--border-soft);align-self:stretch;width:1px;margin:2px 3px}.import-progress{z-index:60;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;width:min(420px,100vw - 32px);padding:12px 14px 11px;animation:.16s ease-out tl-pop;position:fixed;bottom:46px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #0f1f3338}.ip-head{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.ip-head b{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-strong);flex:1;font-size:13px;overflow:hidden}.ip-head .muted{font-variant-numeric:tabular-nums;font-size:12px}.ip-bar{background:var(--accent-bg);border-radius:4px;height:8px;overflow:hidden}.ip-bar i{background:linear-gradient(90deg,#2aa0ff,#1f6fd1);border-radius:4px;height:100%;transition:width .22s ease-out;display:block;position:relative;overflow:hidden}.ip-bar i.busy:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);animation:1.1s linear infinite ip-shine;position:absolute;inset:0}@keyframes ip-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.import-progress.error .ip-bar i{background:#e03131}.ip-steps{color:var(--muted);gap:14px;margin:9px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.ip-steps li{white-space:nowrap;align-items:center;gap:5px;display:flex}.ip-steps li.on{color:var(--accent-ink);font-weight:600}.ip-steps li.done{color:#2f9e57}.ip-dot{border:1px solid;border-radius:50%;place-items:center;width:17px;height:17px;font-size:10.5px;display:grid}.ip-steps li.on .ip-dot{background:var(--accent);border-color:var(--accent);color:#fff}.ip-steps li.done .ip-dot{color:#fff;background:#2f9e57;border-color:#2f9e57}.ip-err{color:var(--danger-ink);margin:8px 0 0;font-size:12.5px}@media (width<=520px){.ip-steps{flex-wrap:wrap;gap:6px 12px}}.scale-picker{gap:6px;display:grid}.scale-picker select{width:100%}.scale-size{background:var(--accent-bg);color:var(--text);font-variant-numeric:tabular-nums;border-radius:6px;margin:2px 0 0;padding:6px 8px;font-size:12.5px}.scale-size b{color:var(--accent-ink)}.import-scale .is-foot{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:8px;padding:10px 16px 14px;display:flex}.scale-picker .row{align-items:center;gap:8px;display:flex}.scale-picker .row .lbl{flex:none}.scale-picker .row>:last-child{flex:1;min-width:0}.scale-picker .row .lbl{white-space:nowrap;width:auto;min-width:0;overflow:visible}.timeline.locked .tl-marker{background:var(--muted);cursor:not-allowed;opacity:.6}.tree-group{flex-wrap:wrap;row-gap:0;height:auto;min-height:24px}.tree-group .tree-acts{white-space:normal;flex-basis:100%;padding:0 0 3px 22px;line-height:18px;display:none}.tree-group .tree-acts .link{margin-right:8px}.tree-group:hover .tree-acts,.tree-group.sel .tree-acts{display:block}.bom-sub td{background:#f3f6fa;font-weight:600}.bom-sub-icon svg{vertical-align:-2px;width:14px;height:14px;margin-right:4px}.lib-tabs{max-width:360px;margin-bottom:12px}.lib-card.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.lib-card .lib-icon svg{width:34px;height:34px}.std-pick{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:14px 0 6px;display:flex}.std-pick label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.std-pick select{min-width:110px}.rev-edit{margin-top:10px}.rev-row{grid-template-columns:30px 1fr 1fr 18px;gap:3px;margin-bottom:6px;display:grid}.rev-row .rev-letter{grid-area:1/1}.rev-row .rev-desc{grid-area:1/2/auto/4}.rev-row .rev-date{grid-area:2/2}.rev-row .rev-by{grid-area:2/3}.rev-row .x{grid-area:1/4}.rev-row input{min-width:0;padding:2px 4px;font-size:12px}.rev-row .x{cursor:pointer;color:var(--muted);background:0 0;border:0}.brk-edit{margin:6px 0}.brk-edit .cmd-row input[type=number]{width:64px}.brk-edit .lbl{width:auto}.busy-bar{z-index:55;pointer-events:none;position:fixed;top:108px;left:0;right:0}.busy-track{background:#1f6fd11f;height:3px;overflow:hidden}.busy-track i{background:var(--accent,#1f6fd1);border-radius:2px;width:35%;height:100%;animation:1.1s ease-in-out infinite busy-slide;display:block}@keyframes busy-slide{0%{transform:translate(-100%)}to{transform:translate(290%)}}.busy-pill{background:var(--surface,#fff);border:1px solid var(--border-soft,#dde3ea);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:5px 12px;font-size:12px;animation:.16s ease-out tl-pop;display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #0f1f3324}.busy-spin{border:2px solid #1f6fd140;border-top-color:var(--accent,#1f6fd1);border-radius:50%;width:11px;height:11px;animation:.8s linear infinite busy-rot}@keyframes busy-rot{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.busy-track i,.busy-spin{animation-duration:3s}}.lic-new{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.lic-new input{flex:1;min-width:150px}.lic-soon{color:#b45309;font-weight:600}.lic-code{background:var(--accent-bg,#eef5fe);border:1px solid var(--accent-line,#cfe0f5);border-radius:8px;margin:6px 0 10px;padding:10px 12px}.lic-code code{letter-spacing:.5px;word-spacing:6px;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;font:600 14px/1.7 Cascadia Mono,Consolas,monospace;display:block}.lic-code .row{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;display:flex}.menu-online{border-bottom:1px solid var(--border-soft,#e5e9ef);padding:4px 12px 8px}.online-list{margin:4px 0 0;padding:0;font-size:12.5px;list-style:none}.online-list li{padding:2px 0}.dot-on{vertical-align:1px;background:#2f9e44;border-radius:50%;width:7px;height:7px;margin-right:4px;display:inline-block}.seats-full .row{flex-wrap:wrap;gap:8px;margin:10px 0 6px;display:flex}.web-seats input{width:46px;margin-left:3px;padding:1px 3px}.lic-chip{border:1px solid var(--border-soft,#dde3ea);background:var(--surface,#fff);cursor:pointer;border-radius:999px;margin-right:6px;padding:3px 10px;font-size:12px}.lic-chip.ok{color:#2b8a3e;border-color:#b2f2bb}.lic-chip.soon{color:#b45309;background:#fff8eb;border-color:#fcd9a8}.lic-chip.free{color:#1f6fd1;background:#eef5fe;border-color:#cfe0f5}.desk-lic{overflow-wrap:anywhere;flex-direction:column;gap:12px;min-width:0;display:flex}.desk-lic textarea::placeholder{text-transform:none}.desk-lic .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.desk-lic .spacer{flex:1}.desk-lic textarea{box-sizing:border-box;text-transform:uppercase;width:100%;font:13px/1.5 Cascadia Mono,Consolas,monospace}.machine-id{letter-spacing:1px;-webkit-user-select:all;user-select:all;background:#eef5fe;border-radius:6px;padding:4px 10px;font:700 18px Cascadia Mono,Consolas,monospace}.lic-state{border-radius:8px;padding:10px 12px;font-size:13px}.lic-state.ok{background:#ebfbee;border:1px solid #b2f2bb}.lic-state.free{background:#eef5fe;border:1px solid #cfe0f5}.ok-msg{color:#2b8a3e;margin:0}.auth-back{-webkit-backdrop-filter:blur(6px)saturate(1.1);backdrop-filter:blur(6px)saturate(1.1);background:#0c18306b;animation:.18s ease-out auth-fade}@keyframes auth-fade{0%{opacity:0}to{opacity:1}}@keyframes auth-pop{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:none}}.auth-premium{background:#fff;border-radius:18px;grid-template-columns:340px minmax(0,1fr);width:min(880px,100%);max-height:calc(100vh - 32px);animation:.26s cubic-bezier(.2,.9,.3,1.1) auth-pop;display:grid;overflow:hidden;box-shadow:0 30px 80px #08142d73,inset 0 0 0 1px #fff9}.auth-side{color:#fff;background:linear-gradient(150deg,#0a8cff 0%,#1f6fd1 45%,#12357a 100%);flex-direction:column;padding:34px 30px 26px;display:flex;position:relative;overflow:hidden}.auth-side:before{content:"";opacity:.13;background-image:linear-gradient(#ffffffb3 1px,#0000 1px),linear-gradient(90deg,#ffffffb3 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(170deg,#0000 25%,#000 80%);mask-image:linear-gradient(170deg,#0000 25%,#000 80%)}.auth-logo{filter:drop-shadow(0 3px 6px #0000004d);width:52px;height:52px;position:relative}.auth-brand{letter-spacing:.3px;margin-top:10px;font-size:32px;font-weight:300;position:relative}.auth-brand b{font-weight:800}.auth-tag{opacity:.92;margin:6px 0 18px;font-size:14px;line-height:1.45;position:relative}.auth-points{margin:0;padding:0;font-size:13px;line-height:1.9;list-style:none;position:relative}.auth-points li:before{content:"✓";text-align:center;background:#fff3;border-radius:50%;width:18px;height:18px;margin-right:8px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}.auth-machine{filter:drop-shadow(0 14px 18px #00000059);width:118%;margin:auto -6% 8px -4%;position:relative}.auth-maker{letter-spacing:.4px;opacity:.85;font-size:12px;font-weight:700;position:relative}.auth-main{padding:38px 40px 30px;position:relative;overflow-y:auto}.auth-main h2{color:var(--brand-ink,#1e2840);margin:0;font-size:26px;font-weight:700}.auth-sub{color:var(--muted,#6b7785);margin:6px 0 20px;font-size:14px;line-height:1.45}.auth-x{color:#8a96a6;cursor:pointer;background:0 0;border:0;border-radius:50%;width:32px;height:32px;font-size:22px;line-height:1;position:absolute;top:14px;right:16px}.auth-x:hover{color:#1e2840;background:#f1f4f8}.auth-main .seg-buttons{background:#f1f4f8;border:0;border-radius:10px;margin-bottom:16px;padding:4px}.auth-main .seg-buttons button{color:#5b6676;background:0 0;border:0;border-radius:7px;padding:8px;font-weight:600}.auth-main .seg-buttons button.on{color:var(--accent,#1f6fd1);background:#fff;box-shadow:0 1px 3px #0f1f3326}.auth-main .field span{color:#4a5565;font-size:12.5px;font-weight:600}.auth-main .field input{background:#fbfcfe;border:1px solid #d5dce5;border-radius:10px;height:44px;padding:0 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}.auth-main .field input:focus{background:#fff;border-color:#1f6fd1;outline:none;box-shadow:0 0 0 4px #1f6fd124}.auth-main form .primary{background:linear-gradient(135deg,#0a8cff,#1f6fd1);border:0;border-radius:10px;height:46px;margin-top:6px;font-size:15.5px;font-weight:700;transition:transform .12s,box-shadow .12s;box-shadow:0 8px 20px #1f6fd159}.auth-main form .primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 26px #1f6fd16b}.auth-guest{width:100%;color:var(--accent,#1f6fd1);cursor:pointer;background:0 0;border:1px dashed #c9d3df;border-radius:10px;flex-direction:column;align-items:center;margin-top:18px;padding:10px;font-size:14px;font-weight:600;display:flex}.auth-guest span{color:var(--muted,#6b7785);font-size:12px;font-weight:400}.auth-guest:hover{background:#f5f8fc;border-color:#9fb6d4}@media (width<=720px){.auth-premium{grid-template-columns:1fr}.auth-side{display:none}.auth-main{padding:30px 22px 24px}}.view-display button{flex:45%;padding:4px 6px;font-size:12px}.update-banner{z-index:70;background:var(--surface,#fff);border:1px solid #cfe0f5;border-left:4px solid #1f6fd1;border-radius:10px;align-items:center;gap:10px;padding:12px 14px;animation:.18s ease-out tl-pop;display:flex;position:fixed;bottom:40px;right:16px;box-shadow:0 12px 32px #0f1f3338}.update-banner>div{flex-direction:column;gap:2px;margin-right:6px;display:flex}.quick-menu a.menu-link{color:inherit;padding:7px 12px;font-size:13px;text-decoration:none;display:block}.quick-menu a.menu-link:hover{background:var(--hover)}.quick-menu span.menu-link{opacity:.55;cursor:default;padding:7px 12px;font-size:13px;display:block}.saved-banner{border-left-color:#2f9e44;max-width:min(640px,100vw - 32px)}.saved-banner span{overflow-wrap:anywhere}.lic-howto{border-top:1px solid #cfe0f5;margin-top:10px;padding-top:10px;font-size:13px;line-height:1.5}.lic-howto ol{margin:4px 0 8px;padding-left:20px}.version-link{font-size:inherit;color:inherit;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.lic-version{justify-content:space-between}.ud-progress{min-width:300px}.ud-bar{background:#e3ebf5;border-radius:3px;height:6px;margin:6px 0 4px;overflow:hidden}.ud-bar i{background:linear-gradient(90deg,#0a8cff,#1f6fd1);border-radius:3px;height:100%;transition:width .3s;display:block}.update-installing{z-index:400;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c18308c;place-items:center;display:grid;position:fixed;inset:0}.update-installing .ui-card{text-align:center;color:#fff;background:linear-gradient(135deg,#0a8cff,#1f6fd1 50%,#163f86);border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:min(420px,90vw);padding:28px 34px;display:flex;box-shadow:0 30px 80px #08142d80}.update-installing img{width:52px;height:52px}.update-installing b{font-size:18px}.update-installing span{opacity:.9;font-size:13px}.ui-bar{background:#ffffff40;border-radius:2px;width:240px;height:4px;margin-top:8px;position:relative;overflow:hidden}.ui-bar i{background:#fff;border-radius:2px;width:35%;animation:1.1s ease-in-out infinite busy-slide;position:absolute;inset:0 auto 0 0}.lic-intro{background:#f5f8fc;border-radius:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.5}.auth-offline{margin:10px auto 0;font-size:13px;display:block}.upd-dialog{flex-direction:column;gap:8px;min-width:0;display:flex}.upd-dialog .row{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.upd-dialog .ud-bar{height:8px}.ud-bar.indeterminate{position:relative}.ud-bar.indeterminate i{animation:1.1s ease-in-out infinite busy-slide;position:absolute;width:35%!important}.badge-local{color:#8a5a00;white-space:nowrap;background:#fff4d6;border-radius:9px;margin-left:8px;padding:1px 7px;font-size:11px}.offline-chip{color:#8a5a00;background:#fff4d6;border-radius:10px;padding:2px 9px;font-size:12px;font-weight:600}.plasma{grid-template-columns:300px minmax(0,1fr);gap:18px;display:grid}.plasma-side{flex-direction:column;gap:14px;min-width:0;display:flex}.plasma-side section{background:var(--surface-2,#f6f8fb);border:1px solid var(--border-soft);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.plasma-side h4{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);margin:0;font-size:11.5px}.plasma-side select{width:100%}.plasma-btns{flex-wrap:wrap;gap:6px;display:flex}.plasma-btns button{padding:4px 9px;font-size:12px}.plasma-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.plasma-grid .field>span{font-size:11px}.plasma-grid input,.plasma-grid select{width:100%}.plasma-learnt{background:#eef7f0;border:1px solid #bfdcc6;border-radius:8px;padding:8px 10px;font-size:12px}.plasma-learnt ul{margin:4px 0 0;padding-left:18px}.plasma-main{flex-direction:column;gap:10px;min-width:0;display:flex}.plasma-view{border:1px solid var(--border-soft);background:linear-gradient(#fbfcfe,#eef2f7);border-radius:12px;justify-content:center;padding:12px;display:flex;overflow:auto}.plasma-view svg{max-width:100%;height:auto}.pl-sheet{fill:#fff;stroke:#9aa8ba;stroke-width:1px}.pl-part{fill:#dfe8f5;stroke:#b5c6de;stroke-width:.6px}.pl-cut{fill:none;stroke:#e2572b;stroke-width:1.4px;stroke-linejoin:round}.pl-rapid{fill:none;stroke:#6b7c93;stroke-width:.8px;stroke-dasharray:3 3}.pl-pierce{fill:#fff;stroke:#c0392b;stroke-width:1.4px}.pl-torch{fill:#ffb300;stroke:#e2572b;stroke-width:2px;filter:drop-shadow(0 0 4px #ffb300)}.pl-origin path{stroke:#1a7cf0;stroke-width:2px;fill:none}.pl-origin text{fill:#1a7cf0;font-size:10px}.plasma-play{align-items:center;gap:10px;display:flex}.plasma-play input[type=range]{accent-color:var(--accent);flex:1}.pl-playbtn{background:var(--accent);color:#fff;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 3px 10px #1f6fd159}.pl-key{vertical-align:middle;border-top:2px solid #e2572b;width:16px;height:0;margin:0 3px 0 8px;display:inline-block}.pl-key.rapid{border-top:2px dashed #6b7c93}.pl-key.pierce{border:1.5px solid #c0392b;border-radius:50%;width:8px;height:8px}.plasma-code pre{color:#d6e4f5;background:#0f1f33;border-radius:8px;max-height:220px;padding:10px 12px;font-size:11.5px;overflow:auto}.plasma-code summary{cursor:pointer;color:var(--accent-ink);font-size:12px}.plasma-warn{margin:10px 0 0}@media (width<=900px){.plasma{grid-template-columns:1fr}}.plasma-sheets{background:var(--surface-3,#eef2f7);border-radius:10px;flex-wrap:wrap;align-self:flex-start;gap:4px;padding:3px;display:flex}.plasma-sheets button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:5px 12px;font-size:12px}.plasma-sheets button.on{background:var(--surface);color:var(--accent-ink);font-weight:650;box-shadow:0 1px 3px #0f1f3326}.busy-center{z-index:56;border:1px solid var(--border-soft);pointer-events:none;background:#fffffff0;border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:18px 26px 14px;animation:.25s ease-out busy-in;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 50px #0f1f332e}.busy-center img{width:116px;height:auto}.busy-center span{color:var(--accent-ink);text-align:center;max-width:260px;font-size:12.5px;font-weight:600}@keyframes busy-in{0%{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}.splash img.splash-anim{opacity:1;width:150px;height:auto}.promo-box{flex-direction:column;gap:6px;display:flex}.promo-box .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.promo-input{letter-spacing:.08em;text-transform:uppercase;flex:1;min-width:160px;font:600 14px/1.2 Consolas,Courier New,monospace}.lic-chip.trial{color:#8a5a00;background:#fff6dc;border-color:#f0d48a}.offer{flex-direction:column;gap:10px;max-width:560px;display:flex}.offer-cards{grid-template-columns:1fr 1fr;gap:12px;margin:4px 0;display:grid}.offer-card{border:1.5px solid var(--border);background:linear-gradient(#fbfdff,#f3f7fc);border-radius:12px;padding:14px 16px 10px;position:relative}.offer-card.best{border-color:var(--accent);box-shadow:0 6px 18px #1f6fd124}.offer-card.lifetime{background:linear-gradient(#fffdf6,#fff6e0);border-color:#e6b94a;grid-column:1/-1;grid-template-columns:auto 1fr;align-items:center;gap:18px;display:grid}.offer-card.lifetime p{margin:0}@media (width<=600px){.offer-card.lifetime{grid-template-columns:1fr;gap:6px}}.offer-card h4{color:var(--accent-ink);margin:0 0 4px}.offer-card .amt{color:var(--text-strong);font-size:22px;font-weight:800}.offer-card .amt small{color:var(--muted);font-size:12px;font-weight:600}.offer-card .ribbon{background:var(--accent);color:#fff;border-radius:10px;padding:2px 9px;font-size:10.5px;font-weight:700;position:absolute;top:-10px;right:12px}a.btn{border-radius:6px;align-items:center;padding:6px 14px;text-decoration:none;display:inline-flex}a.btn.primary{background:var(--accent);color:#fff}.admin-promo{flex-direction:column;gap:10px;margin-top:18px;display:flex}.admin-promo h3{color:var(--accent-ink);margin:0}.promo-form{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.promo-form .field{width:150px}.promo-made{background:#eef7f0;border:1px solid #bfdcc6;border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.promo-made code{white-space:pre-wrap;font-size:13px}.promo-stats td,.promo-stats th{text-align:left}.admin-promo td.actions{white-space:nowrap;gap:8px;display:flex}@media (width<=600px){.offer-cards{grid-template-columns:1fr}}.cut2{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:18px;display:grid}.cut2-side{flex-direction:column;gap:12px;min-width:0;display:flex}.cut2-card{background:var(--surface-2,#f6f8fb);border:1px solid var(--border-soft);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.cut2-card h4{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);margin:0;font-size:11.5px}.cut2-card select,.cut2-card>input{width:100%}.cut2-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cut2-grid .field>span{font-size:11px}.cut2-grid input,.cut2-grid select{width:100%}.cut2-grid .cut2-wide{grid-column:1/-1}.cut2-hint{color:var(--muted);margin:0;font-size:11.5px;line-height:1.4}.cut2-run{border-radius:10px;height:42px;font-size:14px;font-weight:650;box-shadow:0 4px 12px #1f6fd147}.cut2-busy{align-items:center;gap:10px;display:flex}.cut2-busy .ud-bar{flex:1;height:6px}.cut2-main{flex-direction:column;gap:8px;min-width:0;display:flex}.cut2-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.cut2-tabs{background:var(--surface-3,#eef2f7);border-radius:10px;gap:3px;padding:3px;display:inline-flex}.cut2-tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:6px 14px;font-size:12.5px}.cut2-tabs button.on{background:var(--surface);color:var(--accent-ink);font-weight:650;box-shadow:0 1px 3px #0f1f3326}.cut2-tabs em{background:var(--accent-soft);color:var(--accent-ink);border-radius:8px;margin-left:4px;padding:0 6px;font-size:11px;font-style:normal}.cut2-chips{gap:6px;display:flex}.cut2-chips span{background:var(--accent-bg);border:1px solid var(--accent-line);color:var(--accent-ink);border-radius:12px;padding:3px 10px;font-size:12px}.cut2-table-wrap{border:1px solid var(--border-soft);background:var(--surface);border-radius:10px;max-height:340px;overflow:auto}.cut2-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.cut2-table th{z-index:1;background:var(--surface-2,#f6f8fb);text-align:left;color:var(--muted);border-bottom:1px solid var(--border-soft);white-space:nowrap;padding:7px 6px;font-size:11.5px;font-weight:600;position:sticky;top:0}.cut2-table td{border-bottom:1px solid var(--border-soft);padding:3px 6px}.cut2-table tr:last-child td{border-bottom:0}.cut2-table tbody tr:hover td{background:var(--accent-bg)}.cut2-table input{font:inherit;background:0 0;border:1px solid #0000;border-radius:5px;width:100%;padding:4px 6px}.cut2-table input:hover{border-color:var(--border)}.cut2-table input:focus{border-color:var(--accent);background:var(--surface);outline:none;box-shadow:0 0 0 3px #1f6fd11f}.cut2-table .num{width:42px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.cut2-swatch{vertical-align:middle;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.cut2-del{color:var(--muted);background:0 0;border:0;border-radius:5px;padding:2px 6px;font-size:16px;line-height:1}.cut2-del:hover{background:var(--danger-bg,#fde8e8);color:var(--danger-ink,#c92a2a)}.cut2-empty{text-align:center;padding:18px!important}.cut2-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cut2-tools .grow,.cut2-actions .grow{text-align:right;flex:1}.cut2-result{border-top:1px solid var(--border-soft);max-height:480px;margin-top:14px;padding-top:12px;overflow:auto}.cut2-legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:0 0 10px;font-size:11.5px;display:flex}.cut2-legend span{align-items:center;gap:5px;display:inline-flex}.cut2-legend i{border:1px solid #00000026;border-radius:3px;width:12px;height:12px}.cut2-legend i.keep{background:#bfe3c0}.cut2-legend i.scrap{background:repeating-linear-gradient(135deg,#d8dbe0 0 4px,#c4c8cf 4px 8px)}.cut2-legend em{opacity:.8;font-style:normal}.cut2-profile{border:1px solid var(--border-soft);background:var(--surface);border-radius:12px;margin-bottom:10px;padding:10px 12px}.cut2-profile header{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.cut2-profile header b{color:var(--text-strong);margin-right:4px;font-size:13.5px}.cut2-tag{background:var(--surface-3,#eef2f7);color:var(--muted);border-radius:10px;padding:2px 9px;font-size:11.5px}.cut2-tag.keep{color:#2f7a3a;background:#e6f4e7}.cut2-tag.ok{background:var(--accent-soft);color:var(--accent-ink)}.cut2-bar-row{grid-template-columns:96px minmax(0,1fr) 118px;align-items:center;gap:10px;margin:3px 0;display:grid}.cut2-bar-label{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px}.cut2-bar-label b{color:var(--text-strong)}.cut2-bar-label em{color:#2f7a3a;font-style:normal}.cut2-bar-track{min-width:0}.cut2-bar{background:#eef1f5;border:1px solid #b9c2ce;border-radius:4px;height:24px;position:relative;overflow:hidden}.cut2-piece{border-right:1px solid #141e2d8c;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.cut2-piece span{color:#13233a;white-space:nowrap;text-shadow:0 1px #ffffff80;font-size:10.5px;font-weight:650}.cut2-left{position:absolute;top:0;bottom:0}.cut2-left.keep{background:#bfe3c0}.cut2-left.scrap{background:repeating-linear-gradient(135deg,#d8dbe0 0 4px,#c4c8cf 4px 8px)}.cut2-bar-end{color:var(--muted);white-space:nowrap;font-size:11px}.cut2-bar-end.keep{color:#2f7a3a;font-weight:600}.cut2-actions{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 10px;display:flex}@media (width<=900px){.cut2{grid-template-columns:1fr}.cut2-bar-row{grid-template-columns:70px minmax(0,1fr)}.cut2-bar-end{grid-column:2}}.cut2 .cut2-table input{min-width:44px;box-shadow:none;background:0 0;border:1px solid #0000;width:100%!important}.cut2 .cut2-table input:hover{border-color:var(--border);background:var(--surface)}.cut2 .cut2-table input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px #1f6fd11f}.cut2-table td:nth-child(2){min-width:120px}.nest-progress{align-items:center;gap:10px;margin:6px 0;display:flex}.nest-progress .ud-bar{flex:0 0 220px;height:6px}.nest-remnants{color:#2f7a3a;margin:4px 0;font-size:12.5px}.nest-summary{background:var(--accent-bg);border:1px solid var(--accent-line);color:var(--accent-ink);border-radius:8px;margin:8px 0 4px;padding:8px 12px;font-size:12.5px}.nest-material>span{display:block}.nest-seg{background:var(--surface-3,#eef2f7);border-radius:9px;gap:3px;padding:3px;display:inline-flex}.nest-seg button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:5px 11px;font-size:12px}.nest-seg button.on{background:var(--surface);color:var(--accent-ink);font-weight:650;box-shadow:0 1px 3px #0f1f3326}.search-panel{color:#fff;background:linear-gradient(120deg,#0f2747 0%,#123f86 55%,#1f6fd1 100%);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;margin:10px 0;padding:14px 20px;display:grid;box-shadow:0 10px 28px #0f274740}.sp-count{flex-direction:column;min-width:150px;display:flex}.sp-count b{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1}.sp-count span{opacity:.85;margin-top:4px;font-size:12px}.sp-bar{background:#ffffff2e;border-radius:6px;height:10px;overflow:hidden}.sp-bar i{background:linear-gradient(90deg,#7cc4ff,#ffd54a);border-radius:6px;height:100%;transition:width .3s linear;display:block;box-shadow:0 0 12px #ffd54a99}.sp-meta{opacity:.9;justify-content:space-between;gap:10px;margin-top:6px;font-size:12px;display:flex}.sp-best{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.sp-best span{opacity:.8;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.sp-best b{color:#ffd54a;font-variant-numeric:tabular-nums;font-size:18px;font-weight:750}.sp-best em{opacity:.85;font-size:11.5px;font-style:normal}@media (width<=760px){.search-panel{grid-template-columns:1fr}.sp-best{text-align:left;align-items:flex-start}}
