:root{color-scheme:dark;--font: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-head: "Comfortaa", "Manrope", system-ui, sans-serif;--font-dots: "Doto", "Comfortaa", monospace;--bg: #151d29;--grid: rgba(255, 255, 255, .045);--surface: #1b2535;--surface-2: #222d40;--surface-3: #2a3750;--line: rgba(255, 255, 255, .12);--line-strong: rgba(255, 255, 255, .24);--text: #eef2f7;--text-2: rgba(238, 242, 247, .78);--muted: rgba(238, 242, 247, .52);--accent: #d8f34a;--accent-hover: #e4f87a;--accent-ink: #283444;--accent-soft: rgba(216, 243, 74, .16);--accent-line: rgba(216, 243, 74, .5);--ink: #283444;--pill: #e9edf3;--pill-btn: #d6dce5;--menu: rgba(30, 40, 56, .92);--menu-ink: #eef2f7;--scene-1: #1d2f4c;--scene-2: #27385a;--scene-3: #4a4252;--ok: #8fe3a6;--info: #8fc4ff;--warn: #ffc98a;--violet: #d9b8ff;--r-sm: 10px;--r-md: 14px;--r-lg: 22px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 14px 40px rgba(0, 0, 0, .55);--bar-h: 58px;--nav-h: 62px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}:root[data-theme=light]{--bg: #5f7792;--grid: rgba(255, 255, 255, .07);--surface: #6a82a0;--surface-2: #758fac;--surface-3: #819bb8;--line: rgba(255, 255, 255, .34);--line-strong: rgba(255, 255, 255, .58);--text: #ffffff;--text-2: rgba(255, 255, 255, .86);--muted: rgba(255, 255, 255, .62);--pill: #ffffff;--pill-btn: #eceef1;--menu: rgba(255, 255, 255, .84);--menu-ink: #283444;--scene-1: #6aa7e2;--scene-2: #a7c0d6;--scene-3: #e8dec3;--ok: #1c7a4c;--info: #1d5f9e;--warn: #8a5a00;--violet: #6b3fa0;--shadow-1: 0 1px 2px rgba(20, 35, 60, .25);--shadow-2: 0 14px 40px rgba(20, 35, 60, .35)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p,dl,dd{margin:0}canvas{display:block;touch-action:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.center-message{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);padding:24px;text-align:center}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);font-weight:600;font-size:13.5px;line-height:1;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .06s}.btn:hover{background:var(--surface-3)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.vmode{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--glass, rgba(255, 255, 255, .07));border:1px solid var(--glass-line, var(--line))}.vmode .vm{padding:6px 16px;border-radius:999px;font:700 13px/1 Manrope,system-ui,sans-serif;color:var(--text-2);text-decoration:none;cursor:pointer}.vmode a.vm:hover{color:var(--text)}.vmode .vm.on{background:var(--accent);color:var(--accent-ink)}.vmode .vm.is-pending,.vmode .vm.is-none{opacity:.55;cursor:default}.btn.is-on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.btn-sm{height:34px;padding:0 11px;font-size:13px}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;flex:none;border:0;border-radius:10px;background:transparent;color:var(--text-2);transition:background .15s,color .15s}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text-2);font-size:13px;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.chip:hover{background:var(--surface-3)}.chip.is-on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);font-weight:600}.code{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.code b{font-weight:700;opacity:.75}.code-block{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line)}.flag{margin-left:8px;padding:1px 8px;border-radius:999px;background:#ffd23f24;color:var(--warn);font-size:12px}.search{display:flex;flex:1;min-width:0;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--muted)}.search:focus-within{border-color:var(--accent);color:var(--accent)}.search input{flex:1;min-width:0;border:0;outline:0;background:none;color:var(--text)}.search input::placeholder{color:var(--muted)}.select{height:34px;padding:0 28px 0 10px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);font-size:13px}.switches{display:flex;flex-wrap:wrap;gap:4px 16px;margin-left:auto}.switch{display:inline-flex;align-items:center;gap:8px;padding:6px 2px;border:0;background:none;color:var(--text-2);font-size:13px}.switch i{position:relative;width:34px;height:20px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface-3);transition:background .15s,border-color .15s}.switch i:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}.switch[aria-checked=true]{color:var(--text)}.switch[aria-checked=true] i{background:var(--accent-soft);border-color:var(--accent)}.switch[aria-checked=true] i:after{transform:translate(14px);background:var(--accent)}.switch:disabled{opacity:.4;cursor:not-allowed}.section-title{display:flex;align-items:center;gap:7px;margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.app{position:relative;display:flex;flex-direction:column;height:100dvh;min-height:0;overflow:hidden}.appbar{display:flex;align-items:center;gap:12px;height:calc(var(--bar-h) + var(--safe-t));padding:var(--safe-t) 12px 0 16px;background:var(--surface);border-bottom:1px solid var(--line);flex:none}.brand{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.brand-home{display:flex;align-items:center;gap:12px;flex:none;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}.brand-home:active .brand-mark{transform:scale(.94)}.brand-mark{display:block;width:36px;height:36px;flex:none;border-radius:10px}.brand-word{display:none;flex:none;padding-right:14px;border-right:1px solid var(--line-strong);color:var(--text-2);font-size:15px;font-weight:500;letter-spacing:.02em;line-height:36px;white-space:nowrap}.brand-word b{color:var(--text);font-weight:750}@media (min-width: 1100px){.brand-word{display:block}}.brand-text{min-width:0}.brand-text h1{font-size:15px;font-weight:650;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-text p{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar-actions{display:flex;align-items:center;gap:4px}.lang{padding:0 10px}.viewport{position:relative;flex:1;min-height:0;background:linear-gradient(180deg,var(--scene-1) 0%,var(--scene-2) 55%,var(--scene-3) 100%)}.hint{display:flex;align-items:center;gap:8px;max-width:calc(100% - 96px);padding:7px 14px;border-radius:999px;border:1px solid var(--accent-line);background:#14171beb;color:var(--accent);font-size:12.5px;font-weight:600;pointer-events:none;z-index:5}.toast{position:absolute;left:50%;bottom:24px;transform:translate(-50%);max-width:min(92vw,460px);padding:11px 16px;border-radius:12px;border:1px solid var(--line-strong);background:var(--surface-3);box-shadow:var(--shadow-2);font-size:13.5px;z-index:80}.bottomnav{display:none}.tools{position:absolute;top:12px;right:12px;z-index:6;display:flex;flex-direction:column;gap:2px;padding:4px;border-radius:14px;border:1px solid var(--line);background:#14171bdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-1)}.tool{position:relative;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--text-2);transition:background .15s,color .15s}.tool:hover{background:var(--surface-3);color:var(--text)}.tool.is-on{background:var(--accent-soft);color:var(--accent)}@media (hover: hover){.tool:after{content:attr(data-tip);position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:5px 10px;border-radius:8px;background:var(--surface-3);border:1px solid var(--line-strong);color:var(--text);font-size:12.5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s}.tool:hover:after{opacity:1}}.tools-sep{height:1px;margin:3px 6px;background:var(--line)}.tools-views{position:relative}.pop{position:absolute;right:calc(100% + 8px);top:0;min-width:150px;padding:4px;border-radius:12px;border:1px solid var(--line-strong);background:var(--surface-2);box-shadow:var(--shadow-2)}.pop-item{display:block;width:100%;padding:9px 12px;border:0;border-radius:8px;background:none;text-align:left;font-size:13.5px}.pop-item:hover{background:var(--surface-3)}.dim-label,.measure-label{padding:1px 6px;border-radius:4px;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.dim-label{color:var(--text-2);background:#0d0f12c7}.measure-label{color:#1b1408;background:var(--warn)}.sheet{position:absolute;left:16px;bottom:16px;z-index:30;display:flex;flex-direction:column;width:min(470px,calc(100% - 32px));max-height:calc(100% - var(--bar-h) - 32px);border-radius:var(--r-lg);border:1px solid var(--line-strong);background:#14171bf2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-2)}.sheet-grab{align-self:center;width:44px;height:18px;flex:none;border:0;background:none;position:relative}.sheet-grab:after{content:"";position:absolute;left:50%;top:8px;width:34px;height:4px;transform:translate(-50%);border-radius:4px;background:var(--line-strong)}.sheet-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:0 8px 10px 16px;flex:none}.sheet-title{min-width:0}.sheet-title h2{font-size:15.5px;font-weight:650;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-title p{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:0 16px 16px;border-top:1px solid var(--line)}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;padding-top:12px;font-size:13.5px}.facts dt{color:var(--muted)}.facts dd{min-width:0;overflow-wrap:anywhere}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 2px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#050709ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.scrim-side{justify-content:flex-end;padding:0}.drawer{display:flex;flex-direction:column;width:min(450px,100%);height:100%;background:var(--surface);border-left:1px solid var(--line-strong);box-shadow:var(--shadow-2)}.drawer-head,.drawer-header{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 14px;flex:none}.drawer-header{border-bottom:1px solid var(--line)}.drawer-tabs{padding:0 14px 10px;flex:none}.drawer-list{flex:1;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line)}.drawer-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;color:var(--text)}.drawer-item:hover{background:var(--surface-2)}.drawer-item-active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.drawer-item-code{flex:none;min-width:58px;padding:3px 8px;border-radius:7px;background:var(--accent-soft);color:var(--accent);font-size:12.5px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.drawer-item-body{display:flex;flex:1;min-width:0;flex-direction:column}.drawer-item-name{font-weight:600;font-size:14px}.drawer-item-mat{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-item-size{flex:none;color:var(--text-2);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.drawer-item-count{color:var(--accent)}.drawer-empty{padding:24px 16px;color:var(--muted);text-align:center}.tree-head{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface-2);border-bottom:1px solid var(--line)}.tree-head-active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.tree-caret{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:8px;background:none;color:var(--muted)}.tree-caret:hover{background:var(--surface-3)}.tree-name{flex:1;min-width:0;padding:4px 0;border:0;background:none;text-align:left;font-size:13.5px}.tree-name em{margin-left:8px;color:var(--accent);font-style:normal;font-size:11.5px}.tree-count{padding:1px 9px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}.tree-part{display:flex;align-items:baseline;gap:8px;width:100%;padding:7px 12px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text-2);text-align:left;font-size:12.5px}.tree-part:hover,.tree-part-active{background:var(--accent-soft)}.tree-part-name{flex:1;min-width:0}.tree-hw{display:flex;flex-wrap:wrap;gap:4px;padding:6px 12px}.hw-list{margin-top:16px}.hw-item{padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}.hw-item:last-child{border-bottom:0}.hw-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.hw-count{color:var(--accent);font-weight:700}.hw-to{color:var(--muted)}.hw-to em{color:var(--accent);font-style:normal;font-weight:600}.hw-holes{display:flex;flex-wrap:wrap;gap:4px 6px;margin-top:5px}.hw-hole{padding:2px 8px;border-radius:6px;border-left:3px solid var(--accent);background:var(--surface-3);color:var(--text-2);font-size:12px}.hw-hole-B{border-left-color:var(--info)}.hw-hole-edge{border-left-color:var(--violet)}.hw-flat{display:flex;flex-wrap:wrap;gap:5px}.hw-chip{padding:3px 9px;border-radius:7px;background:var(--surface-3);color:var(--text-2);font-size:12px}.hw-chip b{color:var(--accent)}.spec-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:stretch;justify-content:center;padding:20px;background:#050709ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.spec{--spec-bg: var(--surface);--spec-panel: var(--surface-2);--spec-ink: var(--text);--spec-dim: var(--muted);--spec-line: #4a515c;--spec-rule: var(--line);--spec-accent: var(--accent);display:flex;flex-direction:column;width:min(1200px,100%);max-height:100%;overflow:hidden;border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--spec-bg);color:var(--spec-ink);box-shadow:var(--shadow-2);font-size:13px}.spec-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 12px 12px 18px;border-bottom:1px solid var(--spec-rule)}.spec-title{display:flex;flex-direction:column;gap:2px;min-width:0}.spec-title b{font-size:17px;font-weight:650}.spec-title span{color:var(--spec-dim);font-size:12.5px}.spec-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.spec-search{flex:0 1 190px;height:34px}.spec-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 18px 18px}.spec-summary,.spec-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding-top:12px;color:var(--spec-dim)}.spec-summary span{padding:4px 10px;border-radius:8px;background:var(--surface-2)}.spec-summary b{color:var(--spec-ink);font-variant-numeric:tabular-nums}.spec-legend{padding-bottom:12px;font-size:12px}.spec-lg{display:inline-block;width:16px;height:4px;border-radius:2px;vertical-align:middle}.spec-lg-edge{background:var(--accent)}.spec-scroll{overflow-x:auto;border:1px solid var(--spec-rule);border-radius:var(--r-md)}.spec-table{width:100%;min-width:880px;border-collapse:collapse}.spec-table th{position:sticky;top:0;padding:9px 8px;border-bottom:1px solid var(--spec-rule);background:var(--spec-panel);color:var(--spec-dim);font-size:12px;font-weight:600;text-align:center;white-space:nowrap}.spec-table td{padding:6px 8px;border-bottom:1px solid var(--spec-rule);text-align:center;vertical-align:middle}.spec-left{text-align:left!important}.spec-row{cursor:pointer}.spec-row:hover td{background:var(--accent-soft)}.spec-num{color:var(--spec-dim)}.spec-des{color:var(--spec-accent);font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.spec-mat{max-width:250px;color:var(--spec-dim)}.spec-block{color:var(--spec-dim);font-size:11.5px}.spec-dim{font-weight:600;font-variant-numeric:tabular-nums}.spec-qty{font-weight:700}.spec-none{color:#4a515c}.spec-glyph{display:block;margin:0 auto}.spec-link{padding:3px 7px;border:0;border-radius:7px;background:none;font-weight:700}.spec-link:hover{background:var(--accent-soft);color:var(--accent)}.spec-check{width:17px;height:17px;accent-color:var(--accent)}.spec-group td{padding:8px 12px;background:var(--surface-3);font-weight:650;text-align:left}.spec-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:20px}.spec-cols h3{margin-bottom:8px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--spec-dim)}.spec-mini{width:100%;border-collapse:collapse}.spec-mini td{padding:5px 6px;border-bottom:1px solid var(--spec-rule);vertical-align:top}.spec-mini td:not(:first-child){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.spec-cards{display:none}.drilling-panel{display:flex;flex-direction:column;width:min(940px,100%);max-height:100%;overflow:hidden;border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--surface);box-shadow:var(--shadow-2)}.drilling-title{flex:1;min-width:0;font-size:15px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drilling-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 14px;border-bottom:1px solid var(--line)}.drilling-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.drilling-svg{display:block;width:100%;height:auto;max-height:64dvh;background:var(--bg)}.drilling-legend{display:flex;flex-wrap:wrap;gap:4px 16px;padding:11px 16px;border-top:1px solid var(--line);color:var(--text-2);font-size:12.5px}.drilling-section{padding:12px 16px;border-top:1px solid var(--line);color:var(--text-2);font-size:13px}.drilling-section-title{margin-bottom:8px;color:var(--text);font-size:13.5px;font-weight:650}.drilling-muted{color:var(--muted)}.drilling-row{display:flex;align-items:center;gap:8px;padding:2px 0}.drilling-chip{display:inline-block;width:22px;height:5px;flex:none;border-radius:2px}.drilling-keys{display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:10px;color:var(--muted);font-size:12.5px}.drilling-key{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;vertical-align:-1px}.drilling-key-a{background:var(--text-2)}.drilling-key-thru{border:2px solid var(--text-2)}.drilling-key-b{border:2px dashed var(--text-2)}.drilling-key-edge{border-radius:2px;background:var(--text-2)}.drilling-key-cut{border-radius:2px;border:1px solid var(--warn);background:#ffd23f8c}.drilling-key-cut-b{border-radius:2px;border:1px dashed #5fd0c8;background:#5fd0c826}.drilling-table{width:100%;border-collapse:collapse}.drilling-table th,.drilling-table td{padding:6px 10px 6px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.drilling-table th{color:var(--muted);font-weight:500;font-size:12px}.drilling-n{width:30px;color:var(--accent);font-weight:700}.drilling-to{color:var(--muted)}.drilling-to em{color:var(--accent);font-style:normal;font-weight:600}.dg-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.dg-list{border-top:1px solid var(--line)}.dg-item{border-bottom:1px solid var(--line)}.dg-head{display:flex;align-items:center;gap:4px;color:var(--text)}.dg-head:hover{background:var(--hover, rgba(255, 255, 255, .04))}.dg-main{display:flex;flex:1;align-items:center;gap:10px;min-width:0;padding:8px 2px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.dg-focus{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer}.dg-focus:hover,.dg-focus.is-on{background:var(--accent-soft);color:var(--accent)}.dg-head.is-focus{background:var(--accent-soft)}.dg-head.is-dim .dg-main{opacity:.55}.dd-stage{position:relative;width:100%;overflow:hidden;background:var(--bg);cursor:grab;user-select:none;-webkit-user-select:none}.dd-stage:active{cursor:grabbing}.dd-stage .drilling-svg{width:100%;height:100%;max-height:none}.dd-zoom{position:absolute;right:10px;bottom:10px;display:flex;flex-direction:column;gap:4px;padding:4px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:#26162399;-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);cursor:default}.dd-zoom-btn{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:9px;background:none;color:var(--text);cursor:pointer}.dd-zoom-btn:hover:not(:disabled){background:#ffffff1f}.dd-zoom-btn:disabled{opacity:.35;cursor:default}.dd-focus-note{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 5px;border-radius:999px;border:1px solid var(--accent-line);background:#261623b8;-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer}.dd-hint{color:var(--muted)}.dg-badge{--c: var(--accent);display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border:2px solid var(--c);border-radius:50%;background:var(--c);color:#0b0d10;font-size:12px;font-weight:700;line-height:1}.dg-badge-thru{background:transparent;color:var(--c)}.dg-badge-B{border-style:dashed;background:transparent;color:var(--c)}.dg-badge-edge{border-radius:6px}.dg-name{flex:1;min-width:0;overflow-wrap:anywhere}.dg-size{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}.dg-count{min-width:30px;color:var(--muted);text-align:right}.dg-body{margin:0 0 10px 36px}.dg-body .drilling-table{table-layout:fixed}.dg-body .drilling-table th:nth-child(-n+2){width:22%}.dg-side{margin-bottom:4px;color:var(--muted);font-size:12.5px}.est-body{padding:14px 18px 22px;overflow:auto;min-height:0}.est-gate{display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:320px;margin:24px auto}.est-input{width:100%;height:40px;padding:0 12px}.est-error{color:#ff8d8d}.est-totals{display:flex;flex-direction:column;gap:2px;max-width:460px;margin-bottom:18px}.est-total-row{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.est-grand{border-bottom:0;padding-top:10px;font-size:17px;color:var(--accent)}.est-h{margin:4px 0 8px;font-size:14px}.est-scroll{overflow-x:auto}.est-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.est-table th,.est-table td{padding:6px 10px 6px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.est-table th{color:var(--muted);font-weight:500;font-size:12px}.est-table .r{text-align:right;white-space:nowrap}.est-table tfoot td{font-weight:650;border-bottom:0;padding-top:10px}.est-noprice td{color:var(--muted)}.est-noprice em{color:#ffb36b;font-style:normal}.est-ops{margin-top:18px}.est-ops summary{cursor:pointer;margin-bottom:8px;font-weight:600}.est-tabs{margin-bottom:10px}.est-group{margin-bottom:18px}.est-group:last-child{margin-bottom:0}.est-group-h{margin:0 0 6px;font-size:13px;font-weight:650;color:var(--text-2)}.scanner{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:16px;background:#05070a}.scanner-view{position:relative;display:grid;place-items:center;width:min(92vw,520px);aspect-ratio:3 / 4;max-height:62dvh;overflow:hidden;border-radius:24px;background:#000}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-error{padding:24px;text-align:center;color:var(--text-2)}.scanner-frame{position:absolute;top:14%;right:14%;bottom:14%;left:14%;pointer-events:none}.scanner-frame i{position:absolute;width:30px;height:30px;border:3px solid var(--accent)}.scanner-frame i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:10px}.scanner-frame i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:10px}.scanner-frame i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:10px}.scanner-frame i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:10px}.scanner-line{position:absolute;left:4%;right:4%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:scan-line 2.2s ease-in-out infinite alternate}@keyframes scan-line{0%{top:4%}to{top:96%}}.scanner-hint{max-width:340px;color:var(--text-2);text-align:center;font-size:14px}.hide-sm{display:inline}@media (pointer: coarse){.btn,.icon-btn,.tool,.search,.select{min-height:44px}.icon-btn,.tool{width:44px}.chip{height:36px}}@media (max-width: 820px){:root{--bar-h: 54px}.appbar{padding-left:12px}.appbar-actions,.hide-sm{display:none}.bottomnav{position:relative;z-index:35;display:grid;grid-template-columns:1fr 1fr 84px 1fr 1fr;align-items:center;flex:none;height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);border-top:1px solid var(--line);background:var(--surface)}.bn-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:var(--nav-h);border:0;background:none;color:var(--muted);font-size:11px;font-weight:600}.bn-item.is-on{color:var(--accent)}.bn-scan{display:grid;place-items:center;justify-self:center;width:62px;height:62px;margin-top:-26px;border:4px solid var(--surface);border-radius:50%;background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 22px #ff8a1e52}.bn-scan:active{transform:scale(.95)}.sheet{left:8px;right:8px;bottom:calc(var(--nav-h) + var(--safe-b) + 8px);width:auto;max-height:50dvh;border-radius:20px}.toast{bottom:calc(var(--nav-h) + var(--safe-b) + 16px)}.tools{top:8px;right:8px}.hint{top:8px;max-width:calc(100% - 84px);left:8px;transform:none}.scrim,.spec-overlay{padding:0;align-items:stretch}.scrim-side{align-items:flex-end}.drawer{width:100%;height:90dvh;border-left:0;border-top:1px solid var(--line-strong);border-radius:20px 20px 0 0}.spec,.drilling-panel{width:100%;max-height:none;height:100dvh;border:0;border-radius:0}.spec-head{padding:calc(10px + var(--safe-t)) 8px 10px 14px}.drilling-panel .drawer-header{padding-top:calc(10px + var(--safe-t))}.spec-body{padding:0 12px 24px}.spec-search{flex:1 1 100%;order:5}.spec-scroll{display:none}.spec-cards{display:block}.spec-card-group{margin:14px 2px 6px;color:var(--muted);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.spec-card{margin-top:8px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2)}.spec-card:active{background:var(--surface-3)}.spec-card-top{display:flex;align-items:center;gap:8px}.spec-card-top b{flex:1;min-width:0;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spec-card-n{color:var(--muted);font-size:12px;min-width:18px}.spec-card-qty{font-weight:700;color:var(--accent)}.spec-card-mat{margin:6px 0 8px;color:var(--muted);font-size:12.5px}.spec-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px}.spec-card-otk{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted);font-size:12.5px}.spec-check{width:22px;height:22px}.drilling-svg{max-height:58dvh}.drilling-bar{gap:8px}.switches{margin-left:0;width:100%}}@media (max-width: 380px){.brand-mark{display:none}}.viewcube-wrap{position:absolute;top:8px;right:10px;z-index:6;display:flex;flex-direction:column;align-items:center;gap:2px}.viewcube{width:100px;height:100px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.viewcube:active{cursor:grabbing}.vc-scene{display:grid;place-items:center;width:100%;height:100%;perspective:440px}.vc-cube{position:relative;width:58px;height:58px;transform-style:preserve-3d}.vc-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border:1px solid var(--line-strong);background:#1a1e23f0;color:var(--text-2);font-size:10.5px;font-weight:650;letter-spacing:.02em;backface-visibility:hidden;transition:background .12s,color .12s}.vc-face:hover{background:#ff8a1e38;border-color:var(--accent-line);color:var(--accent)}.vc-front{transform:translateZ(29px)}.vc-back{transform:rotateY(180deg) translateZ(29px)}.vc-right{transform:rotateY(90deg) translateZ(29px)}.vc-left{transform:rotateY(-90deg) translateZ(29px)}.vc-top{transform:rotateX(90deg) translateZ(29px)}.vc-bottom{transform:rotateX(-90deg) translateZ(29px)}.vc-home{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line-strong);border-radius:50%;background:#14171be6;color:var(--text-2)}.vc-home:hover{background:var(--surface-3);color:var(--accent)}@media (min-width: 821px){.tools{top:148px}}.viewpad{display:grid;grid-template-areas:". t . ." "l f r b" ". d . ." "i i i i";grid-template-columns:repeat(4,62px);gap:6px;padding:8px}.vp-cell{height:52px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-3);font-size:13px;font-weight:600}.vp-cell:active{background:var(--accent-soft);border-color:var(--accent-line)}.vp-iso{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;color:var(--accent)}.hints{position:absolute;top:12px;left:50%;z-index:5;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:calc(100% - 300px);transform:translate(-50%);pointer-events:none}.hint{position:static;transform:none;max-width:100%}.hint-action{pointer-events:auto;cursor:pointer;border-color:var(--warn);color:var(--warn)}.hint-action b{margin-left:6px;text-decoration:underline;color:var(--text)}.actions-tight{margin-top:8px}.code-group{min-width:30px;justify-content:center;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line)}.similar{position:relative}.pop-fixed{position:fixed;right:auto;top:auto;z-index:90;min-width:260px}.pop-item-2{display:flex;align-items:center;justify-content:space-between;gap:14px}.pop-item-2 small{display:block;color:var(--muted);font-size:11.5px;font-weight:400}.pop-item-2 em{color:var(--accent);font-style:normal;font-weight:700}.pop-item:disabled{opacity:.4;cursor:not-allowed}.rows{margin:0 0 6px;padding:0;list-style:none}.rows li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.rows-main{min-width:0;overflow-wrap:anywhere}.rows-side{color:var(--text-2);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.sheet-body .section-title{margin-top:16px}.picked{display:flex;flex-wrap:wrap;gap:6px}.picked-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--surface-3);font-size:12.5px}.picked-chip b{color:var(--accent)}.picked-chip em{color:var(--muted);font-style:normal}.picked-chip button{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:50%;background:none;color:var(--muted)}.picked-chip button:hover{background:var(--line-strong);color:var(--text)}@media (max-width: 820px){.hints{top:8px;left:8px;align-items:flex-start;max-width:calc(100% - 68px);transform:none}.pop-fixed{min-width:240px}}.spec-card-group,.spec-card{break-inside:avoid}@media print{body *{visibility:hidden!important}.spec-overlay,.spec-overlay *,.drilling-overlay,.drilling-overlay *{visibility:visible!important}.spec-overlay,.drilling-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:block;padding:0;background:#fff!important;-webkit-backdrop-filter:none;backdrop-filter:none}.spec{--spec-bg: #fff;--spec-panel: #f1f2f4;--spec-ink: #111;--spec-dim: #555;--spec-line: #666;--spec-rule: #ccc;--spec-accent: #b45500;width:100%;height:auto;max-height:none;border:0;border-radius:0;box-shadow:none;overflow:visible;font-size:10.5px}.spec-body,.spec-scroll{overflow:visible}.spec-scroll{display:block!important}.spec-cards,.spec-tools .search,.spec-tools .select,.spec-tools .btn,.spec-tools .icon-btn,.spec-tools .chip,.est-tabs{display:none!important}.est-group[hidden]{display:block!important}.spec-summary span{background:none;padding:0}.spec-table{min-width:0}.spec-table th{position:static}.spec-group td{background:#e8e9ec}.spec-row:hover td{background:none}.drilling-overlay{--dd-ink: #111;--dd-dim: #666;--dd-bg: #fff;--dd-fill: #f4f4f4}.drilling-panel{width:100%;height:auto;max-height:none;border:0;border-radius:0;box-shadow:none;background:#fff;color:#111;overflow:visible}.drilling-body{overflow:visible}.drilling-svg{max-height:165mm;background:#fff}.drilling-legend,.drilling-section,.drilling-table td,.drilling-table th,.drilling-title,.drilling-section-title{color:#111!important;border-color:#ccc!important}.drilling-bar,.drilling-panel .btn,.drilling-panel .icon-btn{display:none!important}.drilling-muted,.drilling-keys{color:#444}.dg-head,.dg-size,.dg-count,.dg-side{color:#111!important}.dg-item,.dg-list{border-color:#ccc!important}.dg-head svg,.dg-focus,.dd-zoom,.dd-focus-note,.dd-hint{display:none!important}.dd-stage{height:165mm!important;background:#fff;overflow:visible}@page{size:A4 landscape;margin:10mm}}.preview-stage{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px;font-family:var(--font);color:var(--text)}.preview-glass{background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--glass-line);box-shadow:inset 0 1px 0 var(--glass-shine),0 12px 32px #0a14234d}.preview-head{position:absolute;left:18px;right:18px;top:16px;height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 24px 0 14px;border-radius:26px;z-index:2}.preview-brand{display:flex;align-items:center;gap:14px;flex:none;font-size:27px;letter-spacing:.01em;color:var(--text-2);font-family:var(--font-head)}.preview-brand b{color:var(--accent);font-weight:800}.preview-brand img{display:block;border-radius:13px;box-shadow:0 3px 10px #0a14234d}.preview-title{min-width:0;max-width:58%;font-size:25px;font-weight:650;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-qr{position:absolute;right:24px;bottom:22px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 10px 9px;border-radius:20px}.preview-qr-code{width:150px;height:150px;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px #5b0c401a}.preview-qr-code svg{display:block;width:100%;height:100%}.preview-qr span{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--text-2)}:root{--browser-bar: 0px}.appbar-phone{display:none}.icon-btn-accent,.icon-btn-accent:hover{background:var(--accent);color:var(--accent-ink)}.icon-btn.is-on{background:var(--surface-3);color:var(--text)}.pm{position:relative}.pm-panel{position:fixed;top:calc(var(--bar-h) + var(--safe-t) + 4px);right:8px;z-index:60;width:min(340px,calc(100vw - 16px));max-height:calc(100dvh - var(--bar-h) - var(--safe-t) - var(--browser-bar) - 16px);padding:6px;overflow-y:auto;overscroll-behavior:contain;border-radius:16px;border:1px solid var(--line-strong);background:#181c22fa;box-shadow:var(--shadow-2)}.pm-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 12px;border:0;border-radius:10px;background:none;color:var(--text);font-size:15px;text-align:left}.pm-row:active{background:var(--surface-3)}.pm-row span{flex:1;min-width:0}.pm-row.is-on{color:var(--accent)}.pm-switch{position:relative;flex:none;width:38px;height:22px;border-radius:999px;background:var(--line-strong);transition:background .15s}.pm-switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .15s}.pm-row.is-on .pm-switch{background:var(--accent)}.pm-row.is-on .pm-switch:after{transform:translate(16px);background:var(--accent-ink)}.pm-title{padding:12px 12px 4px;color:var(--muted);font-size:11.5px;font-weight:650;letter-spacing:.05em;text-transform:uppercase}.pm-views{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:4px 6px 8px}.pm-view,.pm-lang button{min-height:44px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-2);color:var(--text);font-size:13px}.pm-view:active{background:var(--surface-3)}.pm-lang{display:flex;gap:6px;padding:4px 6px 8px}.pm-lang button{flex:1}.pm-lang button.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.scanner-miss{position:absolute;left:10px;right:10px;bottom:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--warn);background:#14171bf0;color:var(--warn);font-size:13.5px;text-align:center}.scanner-miss code{display:block;margin-top:4px;color:var(--text-2);font-size:12px;word-break:break-all}.scanner-view.is-label{width:min(94vw,640px);aspect-ratio:4 / 3}.scanner-view.is-label .scanner-frame{top:4%;right:4%;bottom:4%;left:4%}.scanner-note{position:absolute;left:10px;right:10px;bottom:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--glass-line, var(--line));background:#14171bd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--text);font-size:13.5px;text-align:center}.scanner-lock{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.scanner-lock polygon{fill:#ffffff29;stroke:var(--accent);stroke-width:4;stroke-linejoin:round;filter:drop-shadow(0 0 6px var(--accent));animation:lock-pop .26s ease-out}@keyframes lock-pop{0%{opacity:0;stroke-width:12}to{opacity:1;stroke-width:4}}.scanner-manual{display:flex;gap:8px;width:min(92vw,520px)}.scanner-manual .search{height:44px;color:var(--text-2)}@media (max-width: 820px){:root{--bar-h: 52px}.appbar{gap:8px;padding-left:10px;padding-right:6px}.appbar-phone{display:flex;align-items:center;gap:4px;flex:none}.appbar-phone .vmode{gap:2px;padding:3px}.appbar-phone .vm{padding:5px 10px;font-size:12px}.brand{gap:10px}.brand-mark{width:32px;height:32px}.brand-text h1{font-size:15px}.brand-text p,.bottomnav{display:none}.sheet{left:8px;right:8px;bottom:calc(var(--safe-b) + var(--browser-bar) + 8px);max-height:min(56dvh,calc(100dvh - var(--bar-h) - var(--safe-t) - var(--browser-bar) - 24px));transition:transform .18s ease}.sheet.is-dragging{transition:none}.sheet-grab{width:100%;height:24px;touch-action:none}.sheet-grab:after{top:10px;width:40px;height:5px}.sheet-head{touch-action:none}.sheet.is-folded .sheet-head{padding-bottom:8px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.actions .btn-primary{grid-column:1 / -1}.actions .btn{width:100%;height:auto;min-height:44px;padding:8px 10px;justify-content:center;line-height:1.2;text-align:center;white-space:normal}.toast{bottom:calc(var(--safe-b) + var(--browser-bar) + 16px)}.scanner{justify-content:flex-start;padding-top:calc(var(--safe-t) + 16px);overflow-y:auto}}.ext-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;padding:0 4px 0 14px;background:var(--accent-soft);border-bottom:1px solid var(--accent-line)}.ext-bar a{flex:1;padding:11px 0;color:var(--accent);font-size:14px;font-weight:650;text-decoration:none}.hint-slider{pointer-events:auto;gap:10px;border-color:var(--line-strong);color:var(--text-2)}.hint-slider input{width:150px;accent-color:var(--accent)}.hint-slider b{min-width:38px;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 820px){.hint-slider input{width:120px}}@media screen{:root{--glass: rgba(255, 255, 255, .07);--glass-2: rgba(255, 255, 255, .14);--glass-strong: rgba(27, 37, 53, .82);--glass-line: rgba(255, 255, 255, .16);--glass-shine: rgba(255, 255, 255, .18);--glass-blur: blur(22px);--glass-sheen: none;--glass-edge: inset 0 1px 0 var(--glass-shine);--glass-drop: 0 10px 30px rgba(10, 20, 35, .28)}:root[data-theme=light]{--glass: rgba(255, 255, 255, .16);--glass-2: rgba(255, 255, 255, .28);--glass-strong: rgba(95, 119, 146, .86);--glass-line: rgba(255, 255, 255, .38);--glass-shine: rgba(255, 255, 255, .4);--glass-drop: 0 10px 30px rgba(20, 35, 60, .22)}html{accent-color:var(--accent)}body,.app{background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px}.tools,.sheet,.pop,.pm-panel,.hint,.toast,.vc-home,.scanner-miss,.ext-bar{background:var(--glass-sheen),var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);box-shadow:var(--glass-edge),var(--glass-drop)}.hint,.toast{box-shadow:var(--glass-edge),0 8px 24px #0a14234d}.appbar{margin:calc(var(--safe-t) + 8px) 10px 0;height:calc(var(--bar-h) - 6px);padding:0 10px;border:1px solid var(--glass-line);border-radius:20px;background:var(--glass-sheen),var(--glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge),0 10px 30px #0a14234d;position:relative;z-index:40}.viewport{margin-top:8px;border-radius:22px 22px 0 0;overflow:hidden}.drawer,.drilling-panel,.spec{background:var(--glass-sheen),var(--glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge),var(--glass-drop)}.drilling-panel,.spec{border:1px solid var(--glass-line)}.drawer{border-left:1px solid var(--glass-line)}.scrim,.spec-overlay{background:#0a101a80;-webkit-backdrop-filter:blur(8px) saturate(1.2);backdrop-filter:blur(8px) saturate(1.2)}.btn,.chip,.select,.search{background:linear-gradient(180deg,#ffffff1c,#ffffff0a);border-color:#ffffff26;box-shadow:inset 0 1px #fff3}.btn:hover,.chip:hover{background:linear-gradient(180deg,#ffffff2b,#ffffff12)}.btn-ghost{background:transparent;border-color:transparent;box-shadow:none}.btn-ghost:hover{background:#ffffff17}.btn.is-on,.chip.is-on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text);box-shadow:0 0 0 3px #d8f34a24}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 6px 20px #d8f34a38}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.icon-btn:hover,.tool:hover{background:#ffffff1c}.tool.is-on{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}.brand-mark{box-shadow:0 2px 10px #0a142366,0 0 0 1px var(--line)}.vc-face{background:var(--glass-2);border-color:var(--glass-line);color:var(--text)}.vc-face:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.dim-label{background:var(--glass-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.16);color:var(--text)}.pm-row:active,.pop-item:hover,.pm-view:active{background:#ffffff1a}.viewport[data-bg=light] .center-message{color:var(--text-2)}.pm-panel{background:var(--glass-sheen),var(--glass-strong)}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){:root{--glass: rgba(34, 44, 60, .94);--glass-strong: rgba(27, 37, 53, .97)}}}@media screen and (prefers-reduced-transparency: reduce){:root{--glass: rgba(34, 44, 60, .96);--glass-strong: rgba(27, 37, 53, .98)}}.home{min-height:100dvh;padding:calc(var(--safe-t) + 14px) 16px calc(var(--safe-b) + 24px);overflow-y:auto}.home-head{display:flex;align-items:center;gap:12px;max-width:560px;margin:0 auto 18px;font-size:22px;color:var(--text-2)}.home-head>div{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (max-width: 360px){.home-head{font-size:18px}}.home-head b{color:var(--accent);font-weight:800}.home-head{font-family:var(--font-head)}.home-head .home-theme{margin-left:auto}.home-head img{border-radius:12px}.home-main{display:flex;flex-direction:column;gap:14px;max-width:560px;margin:0 auto}.home-scan{display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 18px;border:1px solid var(--accent);border-radius:22px;background:var(--accent);color:var(--accent-ink);font-size:20px;font-weight:750;box-shadow:0 10px 28px #d8f34a38}.home-scan small{font-size:13px;font-weight:500;opacity:.85;text-align:center}.home-card{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--glass-line, var(--line));border-radius:18px;background:var(--glass-sheen, none),var(--glass, var(--surface));-webkit-backdrop-filter:var(--glass-blur, none);backdrop-filter:var(--glass-blur, none);box-shadow:var(--glass-edge, none)}.home-card h2{font-size:14px;font-weight:650;color:var(--text-2)}.home-order-title{margin:8px 0 2px;font-size:12px;color:var(--muted)}.home-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:#ffffff0d;color:var(--text);font:inherit;text-align:left}.home-row em{flex:none;color:var(--accent);font-size:12px;font-style:normal}.home-warn{padding:10px 12px;border:1px solid var(--warn);border-radius:12px;color:var(--warn);font-size:13px;line-height:1.35}.home-choice span{display:flex;flex-direction:column;gap:3px;min-width:0}.home-choice small{color:var(--muted);font-size:12px;line-height:1.3;overflow-wrap:anywhere}.home-muted,.home-tip{color:var(--muted);font-size:13px}.home-tip{text-align:center;margin-top:4px}.admin-icon-legend{display:flex;flex-wrap:wrap;align-items:center;gap:3px 4px;margin:0 2px 6px}.admin-icon-legend svg{flex:none;vertical-align:-2px}.model-group+.model-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.model-group-h{font-size:12.5px;font-weight:650;margin:0 2px 6px}.ver-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.ver-row,.admin-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#ffffff0a}.admin-row-tap{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.admin-row-tap:disabled{opacity:.6;cursor:default}.btn-qr-login{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-bottom:14px;padding:13px;border:0;border-radius:14px;background:var(--ok);color:#0d2616;font:700 14px Manrope,sans-serif;cursor:pointer}.ver-row div:first-child,.admin-row>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}.ver-row span,.admin-row span{font-size:12.5px;color:var(--muted)}.ver-row.is-current{border-color:var(--accent-line)}.ver-row.is-against{background:var(--accent-soft)}.ver-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;flex:0 1 auto}.admin-row>div:first-child{flex:1 1 auto}.ver-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.ver-chip{padding:4px 10px;border:1px solid var(--line-strong);border-radius:999px;font-size:12.5px}.ver-add{color:#6de3a0}.ver-del{color:#ff9a9a}.ver-chg{color:#ffd27a}.ver-h{margin:14px 0 4px;font-size:13px}.admin,.admin-gate{--a-ink: var(--text);--a-muted: var(--muted);--a-line: var(--line);--a-line-strong: var(--line-strong);--a-glass: var(--glass);--a-glass-strong: var(--glass-strong);--a-accent: var(--accent);--a-accent-soft: var(--accent-soft);--a-accent-line: var(--accent-line);--a-shadow: var(--glass-drop), var(--glass-edge);min-height:100dvh;color:var(--a-ink);background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px}.admin{display:flex;align-items:flex-start}.admin.center-message,.admin-gate.center-message{color:var(--a-muted)}.admin-gate{display:flex;align-items:center;justify-content:center;padding:24px}.admin-gate-card{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:32px 24px;border-radius:22px;background:var(--a-glass-strong);border:1px solid var(--a-line);box-shadow:var(--a-shadow);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6)}.admin-gate-card b{font-size:17px}.admin-gate form{display:flex;flex-direction:column;gap:10px;width:100%}.admin-sidebar{position:sticky;top:12px;flex:none;width:240px;display:flex;flex-direction:column;gap:18px;margin:12px 0 12px 12px;padding:18px 12px;height:calc(100dvh - 24px);border-radius:22px;background:var(--a-glass-strong);border:1px solid var(--a-line);box-shadow:var(--a-shadow);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6)}.admin-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 14px;border-bottom:1px solid var(--a-line)}.admin-brand img{flex:none;border-radius:9px}.admin-brand div{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-brand b{font-size:15px}.admin-brand span{font-size:12px;color:var(--a-muted)}.admin-gate-logo{align-self:center;border-radius:12px}.admin-nav{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto}.admin-nav-item{display:flex;align-items:center;gap:8px;padding:10px 14px;border:0;border-radius:999px;background:none;color:var(--a-ink);font-size:13.5px;font-weight:500;text-align:left;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}.admin-nav-item:hover{background:var(--glass)}.admin-nav-item.is-on{background:var(--a-accent-soft);color:var(--a-accent);font-weight:650}.admin-nav-indicator{display:none}.admin-sidebar-foot{display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:1px solid var(--a-line)}.admin-content{flex:1;min-width:0;padding:calc(var(--safe-t) + 20px) 24px 30px}.admin-main{display:flex;flex-direction:column;gap:10px;max-width:900px;margin:0 auto}.admin-nav-label{display:inline}@media (max-width: 820px){.admin{display:block}.admin-sidebar{position:fixed;left:50%;bottom:calc(14px + var(--safe-b));top:auto;right:auto;transform:translate(-50%);width:auto;height:auto;margin:0;padding:8px;border-radius:999px;background:var(--a-glass-strong);border:1px solid var(--a-line);box-shadow:var(--a-shadow);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);flex-direction:row;align-items:center;gap:0;z-index:30}.admin-brand{display:none}.admin-nav{position:relative;flex-direction:row;gap:4px}.admin-sidebar-foot{display:none}.admin-nav-indicator{display:block;position:absolute;top:0;left:0;width:56px;height:56px;border-radius:50%;background:linear-gradient(155deg,#f1fbc2,#e3f78f);box-shadow:0 3px 16px #d8f34a66,inset 0 1px 1px #fff9;transition:transform .28s cubic-bezier(.16,1,.3,1);z-index:0;pointer-events:none}.admin-nav-item{position:relative;flex:none;width:56px;height:56px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;background:var(--a-glass);color:var(--a-muted);z-index:1;transition:color .2s ease}.admin-nav-item.is-on{background:transparent;color:var(--accent-ink)}.admin-nav-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-content{padding:calc(var(--safe-t) + 16px) 14px calc(100px + var(--safe-b))}.admin .admin-row{flex-direction:column;align-items:stretch}.admin .ver-actions{justify-content:flex-start}}.admin-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.admin-tile{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:18px;background:var(--a-glass);border:1px solid var(--a-line);box-shadow:var(--a-shadow)}.admin-tile svg{color:var(--a-accent);opacity:.75}.admin-tile b{font-size:22px;color:var(--a-accent)}.admin-tile span{font-size:12.5px;color:var(--a-muted)}.admin-order{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-order b{display:flex;align-items:center;gap:7px}.admin-order b svg{flex:none;color:var(--a-accent);opacity:.8}.admin-order span{color:var(--a-muted);font-size:13px}.admin-row a{color:var(--a-ink);font-weight:600;text-decoration:none}.admin-failed{border-color:#ff8a8073}.admin-job-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--a-line);border-radius:14px;background:var(--glass)}.admin-job-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.admin-job-body b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-job-body span,.admin .admin-row>div>span{display:flex;align-items:center;gap:4px;font-size:12.5px;color:var(--a-muted)}.admin-job-body span svg,.admin .admin-row>div>span svg{flex:none;opacity:.7}.admin-thumb{width:46px;height:46px;flex:none;border-radius:10px;object-fit:cover;background:var(--glass);border:1px solid var(--a-line)}.admin-thumb-empty{display:grid;place-items:center;color:var(--a-muted)}.admin-status{display:inline-flex;align-items:center;gap:5px;flex:none;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:650;white-space:nowrap}.admin-status-pending{background:var(--glass-2);color:var(--a-muted)}.admin-status-processing{background:var(--a-accent-soft);color:var(--a-accent)}.admin-status-done{background:#8fe3a629;color:var(--ok)}.admin-status-failed{background:#ff8a8029;color:#ff8a80}.btn-toggle{display:inline-flex;align-items:center;gap:6px}@keyframes admin-spin{to{transform:rotate(360deg)}}.spin{animation:admin-spin 1.1s linear infinite}.admin .home-card{background:var(--a-glass);border-color:var(--a-line);box-shadow:var(--a-shadow);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5)}.admin .home-card h2,.admin .home-muted,.admin .admin-row span{color:var(--a-muted)}.admin .admin-row{background:var(--glass);border-color:var(--a-line);transition:background .15s ease}.admin .admin-row:hover,.admin-job-row:hover{background:var(--glass-2)}.admin-job-row{transition:background .15s ease}.admin .btn,.admin-gate .btn,.admin .search,.admin-gate .search{background:var(--glass);border-color:var(--a-line-strong);color:var(--a-ink);box-shadow:none}.admin .btn:hover,.admin-gate .btn:hover{background:var(--glass-2)}.admin .search:focus-within,.admin-gate .search:focus-within{border-color:var(--a-accent);color:var(--a-accent)}.admin .search input,.admin-gate .search input{color:var(--a-ink)}.admin .search input::placeholder,.admin-gate .search input::placeholder{color:var(--a-muted)}.admin .btn-primary,.admin-gate .btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 8px 20px #d8f34a33}.admin .btn-primary:hover,.admin-gate .btn-primary:hover{background:var(--accent)}.btn-toggle.is-on{background:#8fe3a629;border-color:#8fe3a666;color:var(--ok)}.btn-toggle.is-shut{background:#ff8a8029;border-color:#ff8a8066;color:#ff8a80}.btn-danger{color:#ff8a80;border-color:#ff8a8059}.btn-danger:hover{background:#ff8a8024;border-color:#ff8a80}.admin .toast{background:var(--a-glass-strong);border-color:var(--a-line);color:var(--a-ink);box-shadow:var(--a-shadow)}.admin .est-error,.admin-gate .est-error{color:#ff8a80}.admin .ver-add{color:var(--ok)}.admin .ver-del{color:#ff8a80}.asm{display:flex;flex-direction:column;height:100dvh}.asm-bar{display:flex;align-items:center;gap:8px;padding:calc(var(--safe-t) + 8px) 10px 8px}.asm-select{flex:1;min-width:0}.asm-progress{color:var(--muted);font-variant-numeric:tabular-nums}.asm-view{position:relative;flex:1;min-height:0;background:#2b333e}.asm-card{display:flex;flex-direction:column;gap:8px;max-height:46dvh;padding:12px 14px calc(var(--safe-b) + 12px);overflow-y:auto;border-top:1px solid var(--glass-line, var(--line));background:var(--glass-sheen, none),var(--glass-strong, var(--surface))}.asm-card h2{font-size:17px}.asm-step-head{display:flex;align-items:center;justify-content:space-between}.asm-step-n{color:var(--muted);font-size:12.5px}.asm-parts{margin:0;padding-left:18px;font-size:13.5px}.asm-parts li span{color:var(--muted)}.asm-parts b{color:var(--accent)}.asm-hw{display:flex;flex-wrap:wrap;gap:6px}.asm-hw-title{width:100%;color:var(--muted);font-size:12px}.asm-hw-item{padding:3px 9px;border:1px solid var(--line-strong);border-radius:999px;font-size:12.5px}.asm-nav{display:flex;gap:8px}.asm-nav .btn{flex:1}.asm-note{color:var(--muted);font-size:12px}@media (max-width: 1150px){.hide-md{display:none}}.home-fab{position:absolute;left:12px;bottom:calc(var(--safe-b) + var(--browser-bar) + 14px);z-index:6;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--glass-line, var(--line));border-radius:50%;background:var(--glass-sheen, none),var(--glass, var(--surface));-webkit-backdrop-filter:var(--glass-blur, none);backdrop-filter:var(--glass-blur, none);box-shadow:var(--glass-edge, none),0 6px 18px #00000059;color:var(--text);text-decoration:none;-webkit-tap-highlight-color:transparent}.home-fab:active{transform:scale(.94)}@media (pointer: coarse){input,select,textarea{font-size:16px!important}}.drill .home-main{max-width:760px}.drill-order{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:20px}.drill-field input{font-size:26px;padding:14px 8px}.drill-notice{position:fixed;left:50%;top:16px;z-index:500;max-width:min(92vw,640px);transform:translate(-50%);padding:14px 20px;border-radius:14px;background:var(--ink);border:2px solid var(--accent);color:var(--text);font-size:20px;font-weight:650;text-align:center}.drill .scrim,.drill .drilling-panel{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.drill .drilling-panel{background:#14171c}.drill .scrim{background:#0a0b0d}.drill-line{display:flex;align-items:center;gap:14px;text-align:left}.drill-code{flex:none;min-width:96px;font-size:20px;color:var(--accent)}.drill-name{flex:1;min-width:0;font-size:18px}.drill-name small{display:block;margin-top:2px;color:var(--muted);font-size:14px}.scanner-torch{position:absolute;right:12px;top:12px;z-index:3;display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:#0000008c;color:#fff}.scanner-torch.is-on{background:#ffd23f;border-color:#ffd23f;color:#2a2000}.drill-camera{width:100%;margin-bottom:10px;padding:14px;font-size:20px}.home.drill,.home.drill *{transition:none!important;animation:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;text-shadow:none!important}.home.drill{background:#0e090d;-webkit-tap-highlight-color:transparent;padding:calc(var(--safe-t) + 8px) 14px 12px}.drill .home-head{max-width:none;margin:0 0 8px;font-size:20px}.drill .home-head img{width:34px;height:34px}.drill .home-main{max-width:none;margin:0;gap:10px}.drill .home-card{background:#181018;background-image:none;border:1px solid #3a2a35;border-radius:14px;padding:12px 14px}.drill .home-card h2{margin:0;font-size:18px}.drill .home-muted{font-size:16px}.drill .home-row{min-height:60px;padding:10px 14px;border-radius:10px;background:#211721;font-size:20px}.drill .search input{height:58px;font-size:24px}.drill .drill-camera{min-height:62px;font-size:21px;border-radius:12px}.drill .drill-order .btn{min-height:48px;padding:0 18px;font-size:18px}.drill .drill-order{font-size:22px}.drill-list{overflow-y:auto;-webkit-overflow-scrolling:touch}.drill .scrim{padding:0}.drill .drilling-panel{width:100%;max-height:none;height:100dvh;border:0;border-radius:0}.drill .drilling-panel .btn,.drill .drilling-panel .icon-btn,.drill .drilling-panel .chip{min-height:48px}.drill .drilling-panel .icon-btn{min-width:48px}.drill .drilling-title{font-size:20px}@media (min-width: 900px) and (orientation: landscape){.home.drill{height:100dvh;overflow:hidden}.drill .home-main{display:grid;grid-template-columns:minmax(340px,400px) 1fr;align-content:start;align-items:start;gap:10px 12px;max-height:calc(100dvh - 68px)}.drill .home-main>section:only-child{grid-column:1 / -1;width:min(720px,100%);margin:0 auto;max-height:calc(100dvh - 76px);overflow-y:auto}.drill-scan,.drill-choices,.drill-hist{grid-column:1}.drill .home-main>.home-muted{grid-column:1}.drill-list{grid-column:2;grid-row:1 / span 4;max-height:calc(100dvh - 68px)}}@media (max-width: 899px),(orientation: portrait){.drill-list{max-height:52dvh}}@media (orientation: landscape) and (max-height: 720px){.scanner{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;justify-content:center;align-items:center;gap:12px 22px;padding:12px 18px}.scanner-view,.scanner-view.is-label{grid-column:1;grid-row:1 / span 5;width:auto;height:calc(100dvh - 24px);max-height:none;max-width:62vw}.scanner>:not(.scanner-view){grid-column:2}.scanner-hint{max-width:none;text-align:left;font-size:19px}.scanner-manual{width:auto}.scanner-manual input{height:56px;font-size:22px}.scanner .btn{min-height:56px;font-size:20px}}.drill-quick{flex:0 1 260px;min-width:120px;height:48px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:#211721;color:var(--text);font-size:18px}.drill .drilling-panel .drawer-header{flex-wrap:wrap;gap:8px}.inline-scan{position:fixed;left:14px;bottom:12px;z-index:60;width:min(400px,44vw);aspect-ratio:4 / 3;overflow:hidden;border:2px solid var(--accent);border-radius:12px;background:#000}.inline-scan.on-drawing{width:min(300px,36vw)}.inline-scan-wait{display:grid;place-items:center;color:var(--text-2);font-size:20px}.inline-scan .scanner-video{position:absolute;top:0;right:0;bottom:0;left:0}.inline-scan .scanner-lock{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.inline-scan-btn{position:absolute;top:8px;z-index:3;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:#0009;color:#fff}.inline-scan-close{right:8px}.inline-scan-torch{left:8px}.inline-scan-torch.is-on{background:#ffd23f;border-color:#ffd23f;color:#2a2000}.inline-scan-msg{position:absolute;left:8px;right:8px;bottom:8px;padding:8px 10px;border-radius:10px;border:1px solid var(--warn);background:#14171bf0;color:var(--text);font-size:16px;text-align:center}.inline-scan-msg.is-ok{border-color:var(--ok);font-size:24px;font-weight:700}@media (max-width: 820px){.admin-job-row{flex-wrap:wrap}.admin-job-body{order:3;flex-basis:100%}}.admin-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.admin-detail{margin-top:10px;padding-top:10px;border-top:1px solid var(--a-line)}.admin-detail h4{margin:14px 0 6px;font:600 13px var(--font-head);color:var(--a-muted)}.admin-table-wrap{max-height:340px;overflow:auto;border:1px solid var(--a-line);border-radius:12px}.admin-table{width:100%;border-collapse:collapse;font-size:12.5px}.admin-table th,.admin-table td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--a-line);white-space:nowrap}.admin-table td:nth-child(2),.admin-table td:nth-child(3){white-space:normal}.admin-table th{position:sticky;top:0;background:var(--glass-strong);color:var(--a-muted);font-weight:600}.btn.is-pending{opacity:.55;cursor:default}.admin-sub{margin:18px 0 6px;font:600 13px var(--font-head);color:var(--a-muted)}.cabinet-qr{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:8px}.cabinet-qr svg{width:220px;height:220px;background:#fff;border-radius:14px;padding:12px}.nesting-page{max-width:1100px;margin:0 auto;padding:16px;color:var(--text)}.nesting-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.nesting-header h1{display:flex;align-items:center;gap:8px;font-size:20px;margin:0}.nesting-error{background:var(--surface-2);border:1px solid #e06666;color:#ff9a9a;border-radius:var(--r-sm);padding:10px 14px;margin-bottom:12px}.nesting-warn{background:var(--surface-2);border:1px solid var(--warn);color:var(--warn);border-radius:var(--r-sm);padding:8px 12px;margin:8px 0;font-size:14px}.nesting-check{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-size:13px;margin-bottom:10px}.nesting-sheets,.nesting-remnants{margin-top:8px}.nesting-row{display:flex;align-items:center;gap:6px;margin:4px 0}.nesting-row input{width:80px}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;padding:4px 0;font-size:13px;text-align:left}.nesting-order{font-size:13px;color:var(--muted);margin-bottom:10px}.nesting-switcher{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.nesting-switcher .icon-btn{flex:none;color:var(--text)}.nesting-switcher-label{flex:1;text-align:center;min-width:0}.render-panel{width:420px;max-width:94vw}.render-body{display:flex;flex-direction:column;gap:12px}.render-angles{display:flex;flex-wrap:wrap;gap:6px 14px}.render-angle{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.render-interior{padding-top:8px;border-top:1px solid var(--line)}.render-go{align-self:flex-start}.render-results{display:flex;flex-wrap:wrap;gap:10px;padding-top:4px;border-top:1px solid var(--line)}.render-thumb{display:flex;flex-direction:column;align-items:center;gap:4px;width:112px}.render-thumb img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-2)}.render-thumb span{font-size:12px;color:var(--muted);text-align:center}.nesting-switcher-mat{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nesting-switcher-sub{display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;color:var(--muted)}.nesting-layout{display:grid;grid-template-columns:1fr 260px;gap:20px;align-items:start}@media (max-width: 820px){.nesting-layout{grid-template-columns:1fr}}.nesting-panel{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:var(--r-md);padding:14px;background:var(--surface);position:sticky;top:12px}.nesting-panel-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.nesting-panel-field input{width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--line)}.nesting-sheet-inputs{display:flex;align-items:center;gap:6px}.nesting-sheet-inputs input{width:0;flex:1}.nesting-advanced{display:flex;flex-direction:column;gap:10px;padding-top:10px;border-top:1px dashed var(--line)}.nesting-cut-btn{justify-content:center;margin-top:4px}.nesting-parts-table{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}.nesting-parts-head{padding:8px 12px;font-size:13px;font-weight:600;color:var(--text);background:var(--surface-2);border-bottom:1px solid var(--line)}.nesting-parts-table table{width:100%;border-collapse:collapse;font-size:13px;color:var(--text)}.nesting-parts-table th,.nesting-parts-table td{padding:5px 12px;text-align:left;border-bottom:1px solid var(--line)}.nesting-parts-table th{color:var(--muted);font-weight:600}.nesting-parts-table td:not(:first-child),.nesting-parts-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.nesting-parts-table tbody tr:nth-child(2n){background:var(--surface-2)}.nesting-parts-table tfoot td{font-weight:600;border-top:2px solid var(--line-strong);border-bottom:none}.nesting-big{margin-top:8px}.nesting-big-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.nesting-info-panel{display:flex;flex-wrap:wrap;gap:18px;padding:10px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.nesting-info-item{display:flex;flex-direction:column;gap:2px;font-size:12px}.nesting-info-item span{color:var(--muted)}.nesting-info-item b{font-size:15px;color:var(--text)}.nesting-big-sheets{display:flex;flex-direction:column;align-items:center;gap:28px}.nesting-card{display:flex;flex-direction:column;align-items:center;gap:6px}.nesting-card-label{font-size:13px;font-weight:600;color:var(--text)}.nesting-sheet{display:flex;flex-direction:column;align-items:center;gap:4px}.nesting-sheet-label{font-size:12px;color:var(--muted)}.nesting-svg{background:#fff;border-radius:4px}.nesting-svg.is-remnant{background:#f7f0df}.nesting-svg text{font-family:inherit;fill:#222;pointer-events:none}.nesting-inline-number{width:56px;margin:0 4px}.nesting-package-badge{margin-left:6px;padding:1px 6px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:11px}.cnc{width:min(560px,100%)}.cnc-body{padding:16px 18px 20px;display:grid;gap:14px;overflow:auto}.cnc-sum{margin:0;line-height:1.9;color:var(--text-2)}.cnc-dim{color:var(--muted);font-size:13px}.cnc-chip{display:inline-block;margin:0 6px 0 0;padding:2px 10px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent);font-size:13px}.cnc-check{display:flex;gap:8px;align-items:center;cursor:pointer}.cnc-set{border:1px solid var(--line);border-radius:12px;padding:10px 14px 14px;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.cnc-set legend{padding:0 6px;color:var(--muted);font-size:13px}.cnc-set label{display:grid;gap:4px;font-size:13px;color:var(--text-2)}.cnc-set input{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);font:inherit}.cnc-stock{grid-template-columns:1fr}.cnc-row{display:grid;grid-template-columns:minmax(0,2fr) 70px auto 70px 56px auto;gap:6px;align-items:center}.cnc-actions{display:grid;gap:8px}.cnc-err{margin:0;color:#ff8a8a}.cnc-done p{margin:0 0 10px;line-height:1.5}@media (max-width: 560px){.cnc-row{grid-template-columns:1fr 1fr auto 1fr 1fr auto}.cnc-row .cnc-mat{grid-column:1 / -1}}
