@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-display: var(--font);--bg: #F4F6F9;--surface: #FFFFFF;--surface-2: #EEF2F7;--surface-3: #E6EBF2;--line: #D9E0EA;--line-strong: #B7C3D3;--tline: #13203A;--ink: #13203A;--ink-2: #56647A;--ink-3: #5F6D82;--muted: #56647A;--primary: #2C5A8C;--primary-hover: #234A75;--on-primary: #FFFFFF;--accent: var(--primary);--accent-hover: var(--primary-hover);--accent-ink: var(--on-primary);--accent-soft: #E3ECF6;--copper: #B8673F;--copper-text: #A1552F;--copper-soft: #F6E6DC;--laser: var(--copper);--laser-soft: var(--copper-soft);--danger: #B42318;--danger-soft: #FBE4E2;--on-danger: #FFFFFF;--success: #2F6F62;--ok: var(--success);--ok-soft: #E1F0EC;--warn: #9A5B00;--warn-soft: #FBEFD9;--focus: var(--primary);--canvas: #E9EEF4;--board: #F3F4F6;--board-edge: #33496A;--offcut: #FBF1E6;--offcut-line: #C98E6B;--offcut-dot: rgba(184, 103, 63, .32);--offcut-ink: #8A4A2A;--waste: #EDF0F4;--waste-line: #C9D1DC;--part-line: #2B3E5C;--band: #B8673F;--p1: #8FC1F0;--p2: #F6AE80;--p3: #7DD3BC;--p4: #BCA9F5;--p5: #F2D06E;--p6: #F39EBF;--p7: #A9D88A;--p8: #D9B48C;--part-ink: #13203A;--r-sm: 5px;--r: 7px;--r-lg: 10px;--shadow-pop: 0 8px 24px rgba(10, 17, 29, .16);--titlebar-h: 40px;--row-h: 32px;color-scheme:light}:root[data-theme=dark]{--bg: #0A111D;--surface: #111B2B;--surface-2: #172437;--surface-3: #1D2C42;--line: #24344B;--line-strong: #34496A;--tline: #9AA8BB;--ink: #E6EAF0;--ink-2: #9AA8BB;--ink-3: #8494AA;--muted: #9AA8BB;--primary: #7FAEDB;--primary-hover: #9CC2E6;--on-primary: #0A111D;--accent: var(--primary);--accent-hover: var(--primary-hover);--accent-ink: var(--on-primary);--accent-soft: #1B2D45;--copper: #E19A72;--copper-text: #E19A72;--copper-soft: #3A2A22;--laser: var(--copper);--laser-soft: var(--copper-soft);--danger: #F2877B;--danger-soft: #3A1D1B;--on-danger: #0A111D;--success: #7CC4B0;--ok: var(--success);--ok-soft: #16302B;--warn: #E8B25A;--warn-soft: #3A2D14;--focus: var(--primary);--canvas: #0D1522;--board: #131D2C;--board-edge: #9FB6D1;--offcut: #2A2119;--offcut-line: #B98059;--offcut-dot: rgba(224, 160, 122, .3);--offcut-ink: #F0C3A3;--waste: #111A28;--waste-line: #2C3C53;--part-line: #A9BEDA;--band: #E39A6E;--p1: #2E6399;--p2: #9C5530;--p3: #1E7A66;--p4: #5C4AA8;--p5: #8A6B12;--p6: #97385F;--p7: #48782C;--p8: #7C5A38;--part-ink: #F3F6FA;--shadow-pop: 0 8px 24px rgba(0, 0, 0, .45);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:13px;line-height:1.4;color:var(--ink);background:var(--bg);overflow:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}button{cursor:default}a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:var(--accent-soft)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.ink2{color:var(--ink-2)}.grow{flex:1;min-width:0}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column;gap:8px}.wrap{flex-wrap:wrap}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.scroll{overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px;border:3px solid transparent;background-clip:content-box}.no-select{user-select:none;-webkit-user-select:none}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:600}h2{font-size:18px}h3{font-size:14px}p{margin:0}kbd{font-family:inherit;font-size:11px;color:var(--ink-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--ink);font-weight:500;white-space:nowrap;transition:background .08s,border-color .08s}.btn:hover:not(:disabled){background:var(--surface-3);border-color:color-mix(in srgb,var(--line-strong) 65%,var(--accent))}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.45}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600;box-shadow:inset 0 -2px #0000002e}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost{box-shadow:none}.btn.ghost:hover:not(:disabled){background:var(--surface-3);border-color:transparent}.btn.danger{color:var(--danger)}.btn.icon{width:30px;padding:0}.btn.sm{height:26px;padding:0 9px;font-size:12px}.btn.sm.icon{width:26px;padding:0}.btn.lg{height:40px;padding:0 18px;font-size:15px;border-radius:var(--r-lg)}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.input,.select{height:30px;padding:0 9px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);min-width:0;width:100%}.input:focus,.select:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--focus) 25%,transparent)}.input.bad{border-color:var(--danger);background:var(--danger-soft)}textarea.input{height:auto;padding:7px 9px;resize:vertical}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>label,.field>.label{font-size:12px;color:var(--ink-2);font-weight:500}.field .hint{font-size:11.5px;color:var(--ink-3)}.with-unit{position:relative}.with-unit .input{padding-right:34px}.with-unit .u{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:12px;pointer-events:none}.check{display:inline-flex;align-items:center;gap:8px;user-select:none}.check input{width:16px;height:16px;accent-color:var(--accent);margin:0}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;background:var(--surface)}.seg button{height:28px;padding:0 10px;border:0;background:transparent;border-right:1px solid var(--line);color:var(--ink-2);white-space:nowrap}.seg button:last-child{border-right:0}.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 0 -3px 0 var(--copper)}.seg.full{display:flex}.seg.full button{flex:1 1 auto;padding:0 8px}.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--surface-3);color:var(--ink-2);white-space:nowrap}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}:root[data-theme=dark] .badge.warn{color:var(--warn)}.badge.bad{background:var(--danger-soft);color:var(--danger)}.swatch{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.25);flex:none}.menu{position:fixed;z-index:1000;min-width:220px;max-width:340px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);user-select:none}.menu-item{display:flex;align-items:center;gap:10px;width:100%;height:30px;padding:0 10px;border:0;border-radius:var(--r);background:transparent;text-align:left;color:var(--ink)}.menu-item:hover:not(:disabled),.menu-item.active{background:var(--surface-3)}.menu-item:disabled{color:var(--ink-3)}.menu-item .k{margin-left:auto;color:var(--ink-3);font-size:11.5px}.menu-item .icon{color:var(--ink-2);flex:none}.menu-sep{height:1px;margin:4px 6px;background:var(--line)}.menu-title{padding:6px 10px 4px;font-size:11.5px;color:var(--ink-3);font-weight:600}.backdrop{position:fixed;inset:0;z-index:900;background:#10161461;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{width:min(560px,100%);max-height:min(86vh,900px);display:flex;flex-direction:column;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-pop);overflow:hidden}.dialog.wide{width:min(860px,100%)}.dialog-head{display:flex;align-items:center;gap:10px;padding:14px 16px 10px}.dialog-head h2{flex:1;font-size:16px}.dialog-body{padding:4px 16px 16px;overflow:auto}.dialog-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface-2)}.toasts{position:fixed;z-index:1100;left:50%;bottom:40px;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;padding:9px 12px 9px 14px;border-radius:var(--r-lg);background:#13203a;color:#f4f6f9;box-shadow:var(--shadow-pop);max-width:min(520px,92vw)}.toast button{background:transparent;border:0;color:#9cc2e6;font-weight:600;padding:4px 6px}.desk{display:grid;height:100vh;grid-template-columns:52px minmax(0,1fr);grid-template-rows:var(--titlebar-h) minmax(0,1fr) 26px;grid-template-areas:"title title" "rail main" "status status"}.titlebar{grid-area:title;display:flex;align-items:center;gap:2px;padding:0 8px 0 10px;background:var(--surface-2);border-bottom:1px solid var(--line);user-select:none;-webkit-app-region:drag;app-region:drag}@media(display-mode:window-controls-overlay){.titlebar{padding-left:max(10px,env(titlebar-area-x,0px));padding-right:calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw) + 8px)}}.titlebar>*{-webkit-app-region:no-drag;app-region:no-drag}.titlebar .spacer{flex:1;-webkit-app-region:drag;app-region:drag;height:100%}.brand{display:flex;align-items:center;gap:8px;padding-right:8px;font-weight:600;font-family:var(--font-display);font-size:13px;white-space:nowrap}.brand-mark{display:block;width:auto;flex:none}.brand .wordmark{font-weight:600;font-size:13px;letter-spacing:.14em;color:var(--ink)}.menubar{display:flex;align-items:center}.menubar>button{height:28px;padding:0 9px;border:0;border-radius:var(--r);background:transparent;color:var(--ink)}.menubar>button:hover,.menubar>button.open{background:var(--surface-3)}.title-project{display:flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--r);border:0;background:transparent;font-weight:600;max-width:340px}.title-project:hover{background:var(--surface-3)}.title-project span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail{grid-area:rail;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;background:var(--surface-2);border-right:1px solid var(--line)}.rail button{position:relative;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--ink-2)}.rail button:hover{background:var(--surface-3);color:var(--ink)}.rail button.on{background:var(--accent-soft);color:var(--accent)}.rail button.on:before{content:"";position:absolute;left:-6px;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--copper)}.rail .rail-sep{flex:1}.main{grid-area:main;min-height:0;min-width:0;display:flex;flex-direction:column}.statusbar{grid-area:status;display:flex;align-items:center;gap:16px;padding:0 12px;font-size:12px;color:var(--ink-2);background:var(--surface-2);border-top:1px solid var(--line);white-space:nowrap;overflow:hidden}.statusbar .st{display:inline-flex;align-items:center;gap:5px}.statusbar .st b{color:var(--ink);font-weight:600}.statusbar .sep{width:1px;height:12px;background:var(--line-strong)}.dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none}.dot.ok{background:var(--ok)}.dot.busy{background:var(--laser)}.dot.bad{background:var(--danger)}.toolbar{display:flex;align-items:center;gap:5px;min-height:46px;padding:6px 10px;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar .vsep{width:1px;height:22px;margin:0 4px;background:var(--line)}.split{flex:1;min-height:0;display:flex}.pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--surface)}.splitter{flex:none;width:6px;margin:0 -3px;z-index:5;cursor:col-resize;position:relative}.splitter:after{content:"";position:absolute;top:0;bottom:0;left:2.5px;width:1px;background:var(--line)}.splitter:hover:after,.splitter.drag:after{background:var(--accent);width:2px;left:2px}.pane-head{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--surface)}.pane-head h3{font-size:13px;white-space:nowrap}.grid{flex:1;min-height:0;overflow:auto;outline:none;background:var(--surface)}.grid table{border-collapse:separate;border-spacing:0;width:100%;min-width:946px;table-layout:fixed}.grid th{position:sticky;top:0;z-index:2;height:30px;padding:0 8px;background:var(--surface-3);border-bottom:2px solid var(--tline);border-right:1px solid var(--tline);font-weight:600;font-size:12.5px;color:var(--ink);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid th.r,.grid td.r{text-align:right}.grid td.r{font-size:15px;font-variant-numeric:tabular-nums}.grid th.c,.grid td.c{text-align:center}.grid td{height:var(--row-h);padding:0 8px;font-size:14px;border-bottom:1px solid var(--tline);border-right:1px solid var(--tline);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;background:var(--surface)}.grid tr:hover td{background:var(--surface-2)}.grid tr.selrow td{background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface))}.grid td.idx{color:var(--ink-2);font-weight:600;text-align:right;font-size:13px;padding-right:6px;user-select:none}.grid td.idx .chip-color{pointer-events:none;display:inline-block;width:4px;height:16px;border-radius:2px;vertical-align:middle;margin-right:6px}.grid td.cur{box-shadow:inset 0 0 0 2px var(--focus);z-index:1}.grid td.invalid{background:var(--danger-soft)!important}.grid td.editing{padding:0;box-shadow:inset 0 0 0 2px var(--focus)}.grid td.editing input,.grid td.editing select{width:100%;height:calc(var(--row-h) - 1px);border:0;padding:0 8px;background:var(--surface);outline:none}.grid td.r.editing input{text-align:right}.grid tr.ghost td{color:var(--ink-3);font-style:italic}.grid .warn-ico{color:var(--danger);vertical-align:-3px;margin-left:4px}.grid .sub{color:var(--ink-3);font-size:11.5px;margin-left:6px}.edgeglyph{display:inline-block;vertical-align:middle}.edgeglyph rect.body{fill:var(--surface-3);stroke:var(--line-strong)}.edgeglyph .side{stroke:var(--line-strong);stroke-width:2;stroke-linecap:round}.edgeglyph .side.on{stroke:var(--band);stroke-width:3.2}.edgeglyph .hit{stroke:transparent;stroke-width:12;cursor:pointer}.plan{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface)}.plan-body{flex:1;min-height:0;display:flex}.thumbs{width:132px;flex:none;border-right:1px solid var(--line);background:var(--surface-2);padding:8px;display:flex;flex-direction:column;gap:8px}.thumb{display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid transparent;border-radius:var(--r);background:transparent;text-align:left}.thumb:hover{background:var(--surface-3)}.thumb.on{border-color:var(--accent);background:var(--surface)}.thumb .t1{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-2)}.thumb svg{width:100%;height:auto;display:block}.group-title{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink-2);padding:2px 2px 0}.canvas{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;background:var(--canvas);touch-action:none;cursor:grab}.canvas.panning{cursor:grabbing}.canvas svg.board{position:absolute;left:0;top:0;transform-origin:0 0}.canvas-tools{position:absolute;right:10px;bottom:10px;display:flex;gap:4px;padding:3px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 1px 4px #00000026}.canvas-info{position:absolute;left:10px;top:10px;display:flex;gap:6px;align-items:center;padding:5px 9px;border-radius:var(--r);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 1px 4px #0000001f;font-size:12px;color:var(--ink-2);pointer-events:none}.canvas-info b{color:var(--ink)}.plan-empty{flex:1;display:grid;place-items:center;padding:32px;text-align:center;color:var(--ink-2);background:var(--canvas)}.plan-empty .box{max-width:380px;display:flex;flex-direction:column;gap:10px;align-items:center}.running-bar{position:relative;height:3px;overflow:hidden;background:repeating-linear-gradient(90deg,var(--line-strong) 0 6px,transparent 6px 10px)}.running-bar:after{content:"";position:absolute;inset:0 auto 0 0;width:0;background:var(--copper);box-shadow:2px 0 0 var(--surface),4px 0 0 var(--copper);animation:run 1.6s cubic-bezier(.45,0,.35,1) infinite}@keyframes run{0%{width:0}to{width:100%}}@media(prefers-reduced-motion:reduce){.running-bar:after{animation:none;width:100%}}.bd-board{fill:var(--board);stroke:var(--board-edge)}.bd-trim{fill:url(#hatch-waste);stroke:none;opacity:.8}.bd-part{stroke:var(--part-line)}.bd-part.hl{stroke:var(--laser)}.bd-label{font-family:var(--font);font-variant-numeric:tabular-nums}.bd-num{font-weight:600}.bd-offcut{fill:url(#hatch-offcut);stroke:var(--offcut-line);stroke-dasharray:6 3}.bd-waste{fill:url(#hatch-waste);stroke:var(--waste-line);stroke-dasharray:3 3}.bd-oclabel{font-family:var(--font);font-weight:600}.bd-wlabel{font-family:var(--font)}.bd-cut{stroke:var(--part-line);stroke-dasharray:2 4}.bd-cut.now{stroke:var(--laser);stroke-dasharray:none}.bd-cut.done{stroke:var(--line-strong)}.bd-piece{fill:var(--laser);fill-opacity:.12;stroke:var(--laser);stroke-dasharray:8 4}.bd-cutnum{fill:#fff;font-family:var(--font);font-weight:600}.bd-cutbadge{fill:#33496a}.bd-cutbadge.now{fill:var(--laser)}.inspector{flex:none;border-top:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-height:0}.tabs{display:flex;align-items:stretch;gap:2px;padding:0 8px;border-bottom:1px solid var(--line);min-height:36px}.tabs button{position:relative;padding:0 10px;border:0;background:transparent;color:var(--ink-2);font-weight:500}.tabs button.on{color:var(--ink);font-weight:600}.tabs button.on:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:3px;border-radius:2px;background:var(--copper)}.tabs .count{margin-left:5px;color:var(--ink-3);font-weight:500}.tbl{width:100%;border-collapse:collapse}.tbl th{position:sticky;top:0;z-index:1;background:var(--surface-3);text-align:left;font-weight:600;font-size:12.5px;color:var(--ink);padding:6px 10px;border:1px solid var(--tline);border-bottom-width:2px;white-space:nowrap}.tbl td{padding:6px 10px;border:1px solid var(--tline);white-space:nowrap}.tbl tr.clickable:hover td{background:var(--surface-2)}.tbl tr.on td{background:var(--laser-soft)}.tbl .r{text-align:right}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.kpi{background:var(--surface);padding:10px 12px}.kpi .v{font-size:20px;font-weight:600;font-family:var(--font-display);line-height:1.15}.kpi .l{font-size:12px;color:var(--ink-2)}.kpi .s{font-size:11.5px;color:var(--ink-3)}.page{flex:1;min-height:0;overflow:auto;background:var(--surface)}.page-inner{max-width:1080px;margin:0 auto;padding:20px 24px 40px;display:flex;flex-direction:column;gap:16px}.page-head{display:flex;align-items:center;gap:10px}.page-head h2{flex:1}.section{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}.section-head{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--line)}.section-head h3{flex:1}.section-body{padding:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.empty{padding:28px 16px;text-align:center;color:var(--ink-2)}.list-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface);text-align:left;width:100%;border-left:0;border-right:0;border-top:0}.list-row:last-child{border-bottom:0}.list-row.btnlike:hover{background:var(--surface-2)}.list-row .title{font-weight:600}.list-row .meta{color:var(--ink-3);font-size:12px}.op{position:fixed;inset:0;z-index:800;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);background:var(--bg)}.op-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line)}.op-main{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.4fr);min-height:0}.op-card{display:flex;flex-direction:column;gap:14px;padding:22px 26px;background:var(--surface);border-right:1px solid var(--line);overflow:auto}.op-step{font-size:15px;color:var(--ink-2)}.op-dir{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:600;font-family:var(--font-display)}.op-fence{display:flex;align-items:baseline;gap:10px;padding:14px 18px;border-radius:12px;background:#0a111d;color:#e19a72;font-family:var(--font-display)}.op-fence .v{font-size:clamp(56px,9vw,112px);font-weight:600;line-height:1;letter-spacing:-.02em}.op-fence .u{font-size:22px;color:#c9a28c}.op-piece{font-size:15px;color:var(--ink-2)}.op-piece b{color:var(--ink)}.op-board{position:relative;min-height:0}.op-foot{display:flex;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.op-foot .btn{flex:1;height:56px;font-size:17px;border-radius:12px}.progress{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}.progress>i{display:block;height:100%;background:var(--copper)}.mob{display:flex;flex-direction:column;height:100vh;height:100dvh;font-size:15px;background:var(--bg)}.mob .btn{height:38px;border-radius:9px}.mob .btn.icon{width:38px}.mob .input,.mob .select{height:42px;font-size:16px;border-radius:9px}.mtop{display:flex;align-items:center;gap:4px;height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 6px 0 6px;background:var(--surface);border-bottom:1px solid var(--line);flex:none}.mtop .ttl{flex:1;min-width:0;display:flex;align-items:center;gap:4px;height:40px;padding:0 8px;border:0;background:transparent;font-size:17px;font-weight:600;font-family:var(--font-display)}.mtop .ttl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mcontent{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.mnav{flex:none;display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}.mnav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:56px;border:0;background:transparent;color:var(--ink-3);font-size:11.5px;font-weight:600}.mnav button.on{color:var(--accent);position:relative}.mnav button.on:before{content:"";position:absolute;top:0;left:28%;right:28%;height:3px;border-radius:0 0 3px 3px;background:var(--copper)}.mstats{display:flex;gap:6px;padding:8px 12px;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--line);flex:none;scrollbar-width:none}.mstats .badge{height:26px;font-size:13px;padding:0 10px;border-radius:13px}.mlist{flex:1;min-height:0;overflow:auto;background:var(--surface)}.mpart{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;width:100%;min-height:58px;padding:8px 12px;border:0;border-bottom:1px solid var(--tline);background:var(--surface);text-align:left}.mpart:active{background:var(--surface-2)}.mpart .n{font-weight:600;color:var(--ink-3);text-align:right;font-size:14px}.mpart .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mpart .dm{font-size:17px;font-weight:600;font-family:var(--font-display)}.mpart .dm .q{color:var(--accent);margin-left:8px;font-size:15px}.mpart .mt{font-size:12.5px;color:var(--ink-3)}.mpart.bad .dm{color:var(--danger)}.entry{flex:none;padding:8px 10px;background:var(--surface-2);border-top:1px solid var(--line);box-shadow:0 -4px 14px #0000000f}.kb-open .entry{padding-bottom:8px}.entry-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 64px 52px;gap:6px;align-items:end}.entry .field>label{font-size:11.5px}.entry .input{height:48px;font-size:20px;font-weight:600;text-align:center;padding:0 6px}.entry .add{height:48px;width:52px;border-radius:10px}.entry-extra{display:flex;align-items:center;gap:8px;margin-bottom:8px}.entry-extra .input{min-width:0;height:40px;font-size:15px;text-align:left;font-weight:500}.sheet-sw{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--surface);border-bottom:1px solid var(--line);flex:none}.sheet-sw .t{flex:1;text-align:center;font-weight:600}.drawer{flex:none;background:var(--surface);border-top:1px solid var(--line);display:flex;flex-direction:column;max-height:46vh}.drawer.open{height:40vh}.drawer-handle{display:flex;align-items:center;gap:8px;padding:8px 12px;border:0;background:transparent;width:100%;text-align:left}.drawer-handle:before{content:"";position:absolute}.bottom-sheet{position:fixed;inset:auto 0 0;z-index:950;max-height:92dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:16px 16px 0 0;box-shadow:var(--shadow-pop);padding-bottom:env(safe-area-inset-bottom)}.bottom-sheet .grab{width:40px;height:4px;border-radius:2px;background:var(--line-strong);margin:8px auto 2px}.bottom-sheet .dialog-body{padding:8px 14px 14px}.mob .op-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.mob .op-card{border-right:0;border-bottom:1px solid var(--line);padding:14px 16px;gap:10px}.mob .op-dir{font-size:18px}.edge-pick{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto auto;gap:6px;align-items:center;justify-items:center}.edge-pick .mid{width:120px;height:64px;border:1.5px solid var(--line-strong);border-radius:4px;display:grid;place-items:center;font-size:12px;color:var(--ink-2);background:var(--surface-2)}.edge-pick .sb{min-width:96px}@media(max-width:1180px){.thumbs{width:108px}}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.md{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px;align-items:start}.md-list{position:sticky;top:0;max-height:calc(100vh - 170px);overflow:auto}.list-row.on{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.list-row:disabled{opacity:.45}.list-row.dim .title,.tbl tr.dim td{opacity:.55}.search{position:relative}.search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.search .input{padding-left:32px}.proj-row{cursor:default}.proj-ico{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-2);flex:none}.band-chip{width:26px;height:10px;border-radius:2px;border:1px solid rgba(0,0,0,.25);flex:none}input.color{width:44px;height:30px;padding:2px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface)}.btn.chip{border-color:var(--line);border-radius:14px}.sizes-tbl td{padding-top:4px;padding-bottom:4px}.sizes-tbl .input{height:28px}.tip{display:flex;gap:8px;align-items:flex-start;padding:9px 11px;border-radius:var(--r);background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);line-height:1.45}.tip svg{flex:none;margin-top:1px}.rem-add{display:grid;grid-template-columns:minmax(180px,1.6fr) repeat(2,minmax(100px,1fr)) 70px minmax(120px,1fr) auto;gap:10px;align-items:end}@media(max-width:900px){.rem-add{grid-template-columns:1fr 1fr}.rem-add>:first-child,.rem-add>:last-child{grid-column:1 / -1}}fieldset.fs{margin:0;padding:12px 14px 14px;border:1px solid var(--line);border-radius:var(--r-lg)}fieldset.fs>legend{padding:0 6px;font-weight:600;font-family:var(--font-display);font-size:13.5px}.textarea{font:inherit;line-height:1.45}.mono-area,.mono-code{font-family:ui-monospace,Cascadia Mono,Consolas,SF Mono,Menlo,monospace;font-size:12.5px}.mono-area{white-space:pre;overflow-wrap:normal}.keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px 22px}.keys h3{margin-bottom:6px}kbd.key{display:inline-block;min-width:22px;padding:1px 6px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);color:var(--ink);font-size:11.5px;text-align:center}.stepper{display:grid;grid-template-columns:44px 1fr 44px;gap:6px;max-width:220px}.stepper .input{text-align:center;font-weight:600;font-size:18px}.mob .stepper .btn.icon{width:44px;height:42px}.op.embedded{position:relative;inset:auto;z-index:auto;flex:1;min-height:0;min-width:0;width:100%}.op-title{display:flex;flex-direction:column;min-width:0;line-height:1.25}.op-title b{font-family:var(--font-display);font-size:15px}.op-title .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.op-times{height:24px;font-size:13px;padding:0 9px}.op-note{padding:9px 11px;border-radius:var(--r);background:var(--warn-soft);color:var(--warn);font-weight:600;line-height:1.4}:root[data-theme=dark] .op-note{color:var(--warn)}.op-fence{flex-wrap:wrap}.op-fence .l{flex-basis:100%;font-size:13px;color:#c9a28c;font-family:var(--font);font-weight:600;margin-bottom:-4px}.op-hint{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 10px;border-radius:16px;background:var(--accent-soft);color:var(--accent);font-weight:600}.op-done{display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:var(--ink-2)}.op-done>svg{color:var(--ok)}.op-done h3{font-size:22px;color:var(--ink)}.op-board .canvas{position:absolute;inset:0}.mob .op-fence{padding:10px 14px}.mob .op-fence .v{font-size:clamp(48px,17vw,84px)}.mob .op-card{max-height:52%}.mob .op-foot .btn{height:52px}.mob .op-head{padding:6px 8px}.mob{position:fixed;left:0;right:0;top:var(--vvt, 0px);height:var(--vvh, 100dvh)}.mnav-ico{position:relative;display:inline-flex}.mnav-dot{position:absolute;top:-1px;right:-5px;width:8px;height:8px;border-radius:50%;background:var(--laser);border:2px solid var(--surface)}.mnav-dot.busy{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.mnav-dot.busy{animation:none}}.mempty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:36px 24px;text-align:center;color:var(--ink-2)}.mempty h3{font-size:17px;color:var(--ink)}.mempty p{max-width:300px;line-height:1.45}.mpart>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.mpart .n{align-self:stretch;display:flex;align-items:center;justify-content:flex-end;padding-right:2px}.mpart .mt{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;white-space:nowrap}.mpart .mt:empty{display:none}.mpart .dm{white-space:nowrap}.entry-extra .btn.icon{width:44px;height:40px;flex:none}.entry-extra .select{height:40px;font-size:14px;flex:none}.entry .field>label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-row{min-height:56px}.more-group{display:flex;flex-direction:column;gap:6px}.more-group-title{padding:0 4px;font-size:13px;font-weight:600;color:var(--ink-2)}.badge.pro{background:var(--accent-soft);color:var(--accent);letter-spacing:.02em}.more-row>svg:first-child{color:var(--accent)}.mob .page-inner{padding:14px 12px 28px;gap:12px}.mob .page-head h2{font-size:19px}.mob .section-head{flex-wrap:wrap}.mob .tbl .input{height:36px}.mob .drawer .tabs button{height:40px}.mob .mtop .btn.ghost.icon{width:40px;height:40px}.mob .dialog-foot{flex-wrap:wrap}.update-bar{position:fixed;left:50%;bottom:40px;transform:translate(-50%);z-index:1200;display:flex;align-items:center;gap:12px;padding:8px 10px 8px 14px;background:var(--ink);color:var(--surface);border-radius:10px;box-shadow:var(--shadow-pop)}.update-bar .btn{height:28px}.splash{height:100%;display:grid;place-items:center;color:var(--ink-3);font-family:var(--font-display);font-size:15px}.title-project{padding:0 2px 0 8px;gap:4px;max-width:460px}.title-project:hover{background:transparent}.title-name{min-width:60px;max-width:380px;height:26px;padding:0 6px;border:1px solid transparent;border-radius:var(--r);background:transparent;font-weight:600;text-overflow:ellipsis}.title-name:hover{border-color:var(--line)}.title-name:focus{outline:none;border-color:var(--focus);background:var(--surface)}.sel-ico{position:relative;display:inline-flex;align-items:center}.sel-ico>svg{position:absolute;left:8px;color:var(--ink-3);pointer-events:none}.sel-ico .select{padding-left:29px}.kpis{background:var(--surface);gap:0}.kpi{box-shadow:inset -1px -1px 0 var(--line)}@media(pointer:coarse){.canvas-tools .zoom{display:none}.canvas-tools{right:8px;bottom:8px}}.mob .canvas-tools .btn.icon{width:34px;height:34px}.op-line{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.op-next{margin-top:6px;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:2px}.op-next-h{font-size:12px;color:var(--ink-3);font-weight:600;margin-bottom:4px}.op-next-row{display:grid;grid-template-columns:28px 20px 1fr auto;align-items:center;gap:8px;height:30px;color:var(--ink-2);border-bottom:1px solid var(--line)}.op-next-row .n{text-align:right;font-weight:600;color:var(--ink-3)}.op-next-row b{font-size:16px;color:var(--ink);font-family:var(--font-display)}.mob .op-card{max-height:none;overflow:visible;padding:10px 14px 12px;gap:8px}.mob .op-next{display:none}.mob .op-line .op-step,.mob .op-piece{font-size:14px}.mob .op-note{font-size:13px;padding:7px 9px}.title-name{field-sizing:content}.mob .canvas-tools{background:transparent;box-shadow:none;padding:0;gap:6px}.mob .canvas-tools .btn{background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 1px 3px #0000002e}.field>.seg:not(.full){align-self:flex-start;max-width:100%;overflow-x:auto}.pv-demo{max-width:340px;font-size:12px;line-height:1.35}:root{--kp-h: 156px}.keypad-slot{flex:none;position:relative;overflow:hidden;transition:height .18s ease-out}.keypad-slot.closed{pointer-events:none}.keypad{position:absolute;left:0;right:0;bottom:0;z-index:950;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--surface-3);border-top:1px solid var(--tline);box-shadow:0 -6px 18px #0000001f;user-select:none;-webkit-user-select:none;touch-action:manipulation}.kp-chips{display:flex;align-items:center;gap:6px;height:36px;padding:0 2px 4px;overflow-x:auto;scrollbar-width:none}.kp-chips::-webkit-scrollbar{display:none}.kp-chip{flex:none;height:30px;min-width:46px;padding:0 12px;border:1px solid var(--line-strong);border-radius:15px;background:var(--surface);color:var(--ink);font-size:16px;font-weight:600}.kp-chip:active{background:var(--accent-soft);border-color:var(--accent)}.kp-hint{flex:1;font-size:12.5px;color:var(--ink-2);padding-left:6px;white-space:nowrap}.kp-close{position:sticky;right:0;flex:none;margin-left:auto;width:44px;height:30px;border:0;border-radius:8px;background:var(--surface-3);color:var(--ink-2);display:grid;place-items:center}.kp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.kp-key{height:54px;border:0;border-radius:9px;background:var(--surface);color:var(--ink);font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1;display:grid;place-items:center;box-shadow:0 1px #0000002e}.kp-key:active{background:var(--accent-soft);transform:translateY(1px)}.kp-fn{background:color-mix(in srgb,var(--surface) 70%,var(--surface-3));color:var(--ink-2)}.kp-blank{visibility:hidden}.kp-enter{background:var(--accent);color:var(--accent-ink)}.kp-enter:active{background:var(--accent-hover)}.kp-letters{display:flex;flex-direction:column;gap:4px}.kp-letter-row{display:flex;gap:4px}.kp-letter-row .kp-key{flex:1;min-width:0;height:35px;font-size:20px}.kp-letter-row.row-1,.kp-letter-row.row-2{padding:0 4.5%}.kp-letter-row .kp-key.on{background:var(--accent-soft);color:var(--accent)}.kp-space{flex:1}@media(prefers-reduced-motion:reduce){.keypad-slot{transition:none}}:root.kp-open .entry{padding-bottom:8px}:root.kp-open .mnav{padding-bottom:0;position:relative;z-index:951}:root.kp-open .bottom-sheet{margin-bottom:calc(var(--kp-h) + 56px);max-height:calc(100% - var(--kp-h) - 80px)}@media(max-width:1799px){.wide-only{display:none}}@media(max-width:1380px){.mid-only{display:none}}@media(max-width:1440px){.roomy-only{display:none}.toolbar .sel-ico>svg{display:none}.toolbar .sel-ico .select{padding-left:9px}.toolbar .seg button{padding:0 8px}}.toolbar[data-fit="1"] .wide-only,.toolbar[data-fit="1"] .roomy-only,.toolbar[data-fit="2"] .wide-only,.toolbar[data-fit="2"] .roomy-only,.toolbar[data-fit="2"] .mid-only,.toolbar[data-fit="3"] .wide-only,.toolbar[data-fit="3"] .roomy-only,.toolbar[data-fit="3"] .mid-only,.toolbar[data-fit="2"] .sel-ico>svg,.toolbar[data-fit="3"] .sel-ico>svg{display:none}.toolbar[data-fit="2"] .sel-ico .select,.toolbar[data-fit="3"] .sel-ico .select{padding-left:9px}.toolbar[data-fit="3"]{gap:3px}.toolbar[data-fit="3"] .sel-ico .select{width:128px!important}.toolbar[data-fit="3"] .seg button{padding:0 7px}.grid td.del,.grid th.del{position:sticky;right:0;padding:0;border-right:0;border-left:1px solid var(--tline);box-shadow:-3px 0 6px -4px #00000059}.grid td.del{z-index:1}.grid th.del{z-index:3}.row-del{display:inline-grid;place-items:center;width:30px;height:26px;padding:0;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--ink-2);cursor:pointer}.row-del:hover,.row-del:focus-visible{color:var(--on-danger);background:var(--danger);border-color:var(--danger)}.grid tr:hover .row-del,.grid tr.selrow .row-del{color:var(--danger)}.grid tr:hover .row-del:hover{color:var(--on-danger)}.selbar{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface);border-top:2px solid var(--tline);box-shadow:0 -4px 12px #00000014}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.btn.danger-solid:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 85%,#000)}.btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.mrow{display:flex;align-items:stretch;border-bottom:1px solid var(--tline);background:var(--surface)}.mrow .mpart{flex:1;min-width:0;border-bottom:0}.mdel{flex:none;width:52px;display:grid;place-items:center;border:0;border-left:1px solid var(--line);background:transparent;color:var(--danger)}.mdel:active{background:var(--danger-soft)}.dialog.xl{width:min(1240px,100%);max-height:min(92vh,1000px)}.import-foot{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:8px}.import-body{position:relative;min-height:120px}.drop-veil{position:absolute;inset:-4px;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed var(--accent);border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent-soft) 88%,transparent);color:var(--accent);font-size:15px;pointer-events:none}.import-busy{display:flex;align-items:center;gap:14px;padding:36px 8px;justify-content:center;font-size:14px}.spinner{width:26px;height:26px;border:3px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pdfimp{display:flex;flex-direction:column;gap:12px;min-width:0}.pdfimp-file{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface-2)}.pdfimp-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.banner{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-lg);border:2px solid;line-height:1.45}.banner>.icon{flex:none;margin-top:1px}.banner-title{font-size:15px;font-weight:600}.banner-body{margin-top:3px;color:var(--ink)}.banner-line{display:flex;align-items:center;gap:6px;margin-top:4px;font-weight:600}.banner.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.banner.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}:root[data-theme=dark] .banner.warn{color:var(--warn)}.banner.bad{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.banner-line.ok{color:var(--ok)}.banner-line.warn{color:var(--warn)}:root[data-theme=dark] .banner-line.warn{color:var(--warn)}.pdfimp-facts{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-start}.pdfimp-facts .field{min-width:220px}.pdfimp-facts .fact{height:30px;display:flex;align-items:center;font-weight:600}.pdfimp-main{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-height:0}.pdfimp-main.two{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.pdfimp-rows{max-height:58vh;border:2px solid var(--tline);border-radius:var(--r)}.tbl.strong td{font-size:13.5px}.tbl.strong td.name{white-space:normal;min-width:140px}.tbl.strong tr.bad td{background:var(--danger-soft)}.tbl.strong tr.warn td{background:var(--laser-soft)}.tbl.strong tfoot td{position:sticky;bottom:0;background:var(--surface-3);border-top:2px solid var(--tline);font-weight:600}.tbl .raw{display:block;font-size:11px;color:var(--ink-2);font-weight:400}.tbl .row-del{width:28px;height:24px;color:var(--danger)}.pdfprev-wrap{display:flex;flex-direction:column;min-width:0;border:2px solid var(--tline);border-radius:var(--r);overflow:hidden}.pdfprev-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-3);border-bottom:1px solid var(--tline)}.pdfprev-bar .icon{vertical-align:-3px}.pdfprev{max-height:58vh;min-height:240px;padding:12px;background:var(--canvas)}.pdfpage{margin:0 auto 14px;width:max-content}.pdfpage canvas{display:block;background:#fff;box-shadow:0 1px 3px #00000040,0 0 0 1px #00000059}.pdfpage figcaption{margin-top:4px;text-align:center;font-size:12px;color:var(--ink-2)}.tbl.compact .opt{display:none}.tbl.compact th,.tbl.compact td{padding:6px 7px}.tbl.compact td.name{min-width:0;word-break:break-word}.small{font-size:12px}.link{border:0;padding:0;background:none;color:var(--accent);text-decoration:underline;font:inherit;cursor:pointer}.spinner.sm{width:15px;height:15px;border-width:2px}.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:24px;align-items:start}@media(max-width:860px){.auth{grid-template-columns:minmax(0,1fr)}.auth-pitch{order:2}}.auth-pitch{padding:8px 4px}.auth-pitch h3{font-size:20px;line-height:1.3;margin-bottom:12px}.auth-pitch ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14.5px}.auth-pitch li{display:flex;gap:8px;align-items:flex-start}.auth-pitch li .icon{color:var(--ok);flex:none;margin-top:2px}.auth-card{padding:18px}.auth-card .input{height:40px;font-size:15px}.auth-or{display:flex;align-items:center;gap:10px;margin:16px 0 12px;color:var(--ink-3);font-size:12px}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--line)}.g-logo{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;color:#4285f4;font-weight:600;font-size:13px;border:1px solid var(--line-strong)}.turnstile{min-height:65px}.device-row{gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.device-row:last-of-type{border-bottom:0}.codes{margin:0;padding:12px;border:1px solid var(--tline);border-radius:var(--r);background:var(--surface-2);font-size:15px;line-height:1.7;columns:2}.secret{font-size:15px;letter-spacing:.06em;word-break:break-all}.danger-zone{padding:12px;border:1px solid var(--danger);border-radius:var(--r);background:color-mix(in srgb,var(--danger-soft) 55%,transparent)}.plan-line{font-size:15px;font-weight:600}.rail-account{position:relative}.rail-plan{position:absolute;right:6px;bottom:6px;width:14px;height:14px;border-radius:7px;background:var(--accent);color:var(--accent-ink);font-size:9px;font-style:normal;font-weight:600;display:grid;place-items:center}.rail-plan.free{background:var(--ink-3)}.notice{flex:none;display:flex;align-items:center;gap:10px;padding:7px 12px;font-size:13px;border-bottom:1px solid var(--line)}.notice.info{background:var(--accent-soft);color:var(--ink)}.notice.warn{background:var(--laser-soft)}.notice.bad{background:var(--danger-soft);color:var(--danger);font-weight:600}.mob .notice{font-size:13.5px;padding:8px 10px}.plan-lock{position:relative;flex:1;min-width:0;min-height:0;display:flex}.plan-lock-blur{flex:1;min-width:0;display:flex;filter:blur(9px) saturate(.7);pointer-events:none;user-select:none}.lock-card{position:absolute;inset:0;margin:auto;width:min(380px,calc(100% - 24px));height:max-content;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;text-align:center;background:var(--surface);border:1px solid var(--tline);border-radius:var(--r-lg);box-shadow:var(--shadow-pop)}.dialog .lock-card,.plan-empty .lock-card{position:static;box-shadow:none;border:0;margin:0 auto}.lock-card h3{font-size:18px}.lock-card .icon{color:var(--accent)}.meter{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--line)}.meter.good{color:var(--copper-text);font-weight:600;background:var(--surface)}.meter.compact{border:0;border-radius:var(--r)}.lock-card .meter{border-radius:var(--r);border:0}.kpis-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.kpis-inline>div{display:flex;flex-direction:column;gap:2px}.kpis-inline b{font-size:20px;font-family:var(--font-display)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.plan-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--tline);border-radius:var(--r-lg);background:var(--surface)}.plan-card.best{border:2px solid var(--accent)}.plan-top{display:flex;align-items:center;gap:8px}.plan-top h3{font-size:18px;flex:1}.plan-price b{font-size:26px;font-family:var(--font-display)}.plan-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;flex:1}.plan-feats li{display:flex;gap:7px;align-items:flex-start}.plan-feats .icon{color:var(--ok);flex:none;margin-top:2px}.pass-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:var(--r-lg)}.plain-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.upsell{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border:1px dashed var(--accent);border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}.upsell h3{font-size:16px}.quote-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:760px){.quote-grid{grid-template-columns:minmax(0,1fr)}}.quote-summary{display:flex;flex-direction:column;gap:10px;position:sticky;top:0}.quote-summary .tbl td{white-space:normal}.quote-summary tr.warnrow td{background:var(--laser-soft)}.quote-totals{border:1px solid var(--tline);border-radius:var(--r);overflow:hidden}.quote-totals>div{display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--tline)}.quote-totals>div:last-child{border-bottom:0}.quote-totals .grand{background:var(--surface-3);font-size:17px}.brand-logo{max-height:48px;max-width:200px;border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:4px}.qr-scan{width:min(520px,100%)}.qr-video{width:100%;max-height:60vh;border-radius:var(--r);background:#000;object-fit:cover}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0A111D;--surface: #111B2B;--surface-2: #172437;--surface-3: #1D2C42;--line: #24344B;--line-strong: #34496A;--tline: #9AA8BB;--ink: #E6EAF0;--ink-2: #9AA8BB;--ink-3: #8494AA;--muted: #9AA8BB;--primary: #7FAEDB;--primary-hover: #9CC2E6;--on-primary: #0A111D;--accent: var(--primary);--accent-hover: var(--primary-hover);--accent-ink: var(--on-primary);--accent-soft: #1B2D45;--copper: #E19A72;--copper-text: #E19A72;--copper-soft: #3A2A22;--laser: var(--copper);--laser-soft: var(--copper-soft);--danger: #F2877B;--danger-soft: #3A1D1B;--on-danger: #0A111D;--success: #7CC4B0;--ok: var(--success);--ok-soft: #16302B;--warn: #E8B25A;--warn-soft: #3A2D14;--focus: var(--primary);--canvas: #0D1522;--board: #131D2C;--board-edge: #9FB6D1;--offcut: #2A2119;--offcut-line: #B98059;--offcut-dot: rgba(224, 160, 122, .3);--offcut-ink: #F0C3A3;--waste: #111A28;--waste-line: #2C3C53;--part-line: #A9BEDA;--band: #E39A6E;--p1: #2E6399;--p2: #9C5530;--p3: #1E7A66;--p4: #5C4AA8;--p5: #8A6B12;--p6: #97385F;--p7: #48782C;--p8: #7C5A38;--part-ink: #F3F6FA;--shadow-pop: 0 8px 24px rgba(0, 0, 0, .45);color-scheme:dark}}.tour{position:fixed;left:70px;bottom:44px;z-index:60;width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;padding:14px;background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-lg);box-shadow:0 10px 30px #0000002e}.tour.m{left:10px;right:10px;width:auto;bottom:auto;top:calc(58px + env(safe-area-inset-top,0px));padding:12px;gap:6px}.tour.m p{font-size:13.5px}.kp-open .tour,.kp-open .tour-ring{display:none}.tour h3{font-size:15px}.tour p{margin:0;line-height:1.45}.tour-head{display:flex;align-items:center;justify-content:space-between}.tour-import{display:flex;align-items:center;gap:6px;margin-top:2px;padding:8px 0 0;border:0;border-top:1px solid var(--line);background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-align:left}.tour-ring{position:fixed;z-index:59;pointer-events:none;border:2px solid var(--accent);border-radius:10px;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent);animation:tour-pulse 1.6s ease-in-out infinite;transition:all .2s ease}@keyframes tour-pulse{50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--accent) 10%,transparent)}}@media(prefers-reduced-motion:reduce){.tour-ring{animation:none;transition:none}}.switch-card{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:12px 14px;border:1px dashed var(--accent);border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent-soft) 45%,transparent);color:inherit;font:inherit;text-align:left;cursor:pointer}.switch-card .grow{display:flex;flex-direction:column;gap:2px}.ref-link{min-width:0;flex:1 1 220px;font-family:var(--mono, ui-monospace, monospace);font-size:13px}.xlsx-bar{gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);min-width:0}.xlsx-bar .select{width:auto;max-width:220px}.cmp-grid{display:grid;gap:12px;align-items:stretch}.cmp-card{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-width:0}.cmp-card.base{background:var(--surface-2)}.cmp-card .field{display:flex;flex-direction:column;gap:4px}.cmp-card .seg button{padding-inline:6px}.cmp-letter{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:13px}.cmp-add{display:flex;align-items:center;justify-content:center;gap:8px;min-height:120px;border:1px dashed var(--line-strong, var(--line));border-radius:var(--r-lg);background:none;color:var(--ink2, inherit);font:inherit;cursor:pointer}.cmp-add:hover{border-color:var(--accent);color:var(--accent)}.cmp-table td.cmp-best{background:color-mix(in srgb,var(--accent-soft) 70%,transparent);font-weight:600}.mod-kinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.mod-kind{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px 12px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);font:inherit;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.mod-kind:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface));transform:translateY(-1px)}.mod-kind:disabled{opacity:.55;cursor:not-allowed}.mod-glyph{width:72px;height:58px;margin-bottom:4px;fill:color-mix(in srgb,var(--accent-soft) 70%,transparent);stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.mod-glyph .knob{stroke-width:2.2}@media(prefers-reduced-motion:reduce){.mod-kind{transition:none}}.auth-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r-lg);padding:84px 16px 28px;background:radial-gradient(70% 40% at 50% 0%,rgba(224,160,122,.16),transparent 70%),radial-gradient(120% 100% at 50% 35%,#15233b,#0a111d 55%,#060a12)}.auth-stage-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}.auth-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(rgba(224,160,122,.07) 1px,transparent 1px);background-size:140px 90px,140px 90px,560px 360px;-webkit-mask-image:radial-gradient(75% 65% at 50% 40%,#000 20%,transparent 100%);mask-image:radial-gradient(75% 65% at 50% 40%,#000 20%,transparent 100%)}.auth-watermark{position:absolute;width:min(1000px,130%);height:auto;right:-22%;bottom:-18%;opacity:.09;transform:rotate(-9deg)}.auth-main{min-width:0}.auth-stage .auth{grid-template-columns:minmax(0,1fr);max-width:440px;margin:0 auto;gap:22px}.auth-stage .auth-card{position:relative;width:100%;overflow:visible;max-width:440px;margin:0 auto;padding:72px 24px 22px;border:0;border-radius:22px;box-shadow:0 30px 80px #00000073,0 0 0 1px #ffffff0f;animation:auth-in .5s cubic-bezier(.2,.8,.2,1) both}.auth-stage .auth-card>.section-body{padding:0}.auth-stage .auth-card:before{content:"";position:absolute;inset:0 22px auto;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,transparent,#E0A07A 30%,#B56A44 70%,transparent)}.auth-head{position:absolute;top:-58px;left:50%;width:116px;height:116px;margin-left:-58px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 50% 32%,#22365a,#0d1626 62%,#070c16);box-shadow:0 0 0 6px var(--surface),0 0 0 7.5px #e0a07aa6,0 22px 40px #0006,0 0 70px #e0a07a47}.auth-head img{width:82%;height:auto;margin-top:4%;filter:drop-shadow(0 8px 10px rgba(0,0,0,.55));animation:auth-float 6s ease-in-out infinite}.auth-brandline{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0 0 16px;text-align:center}.auth-brandline b{font-size:15px;letter-spacing:.34em;margin-right:-.34em;background:linear-gradient(90deg,#8e5434,#c98e6b 45%,#8e5434);-webkit-background-clip:text;background-clip:text;color:transparent}.auth-brandline span{font-size:12px;color:var(--ink-3)}.auth-stage .auth-pitch{order:2;color:#d5dce6;padding:0 6px}.auth-stage .auth-pitch h3{color:#f3f5f8;font-size:17px}.auth-stage .auth-pitch li .icon{color:#e0a07a}@keyframes auth-in{0%{opacity:0;transform:translateY(14px)}}@keyframes auth-float{50%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.auth-stage .auth-card,.auth-head img{animation:none}}@media(max-width:760px){.auth-stage{padding:76px 10px 20px;margin:0 -4px}.auth-stage .auth-card{padding:66px 16px 18px;border-radius:18px}.auth-head{width:100px;height:100px;top:-50px;margin-left:-50px}}.pw-field{position:relative;display:block}.pw-field .input,.pw-field input{width:100%;padding-right:46px}.pw-eye{position:absolute;top:50%;right:3px;width:38px;height:34px;transform:translateY(-50%);display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--ink-3);cursor:pointer}.pw-eye:hover{background:var(--surface-2);color:var(--ink)}.pw-eye:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.pw-eye[aria-pressed=true]{color:var(--copper-text, #A1552F)}.grid tr.speaking td{background:var(--copper-soft)}.grid tr.speaking td.idx{box-shadow:inset 3px 0 0 var(--copper);color:var(--ink)}.speak-btn{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:2px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--ink-2);vertical-align:middle;cursor:pointer;opacity:0}.grid tr:hover .speak-btn,.grid tr:focus-within .speak-btn,.speak-btn:focus-visible,.speak-btn.on{opacity:1}.speak-btn:hover{background:var(--surface-3);color:var(--ink)}.speak-btn.on{color:var(--copper-text)}@media(pointer:coarse){.speak-btn{opacity:1}}.mspeak{flex:none;width:36px;display:grid;place-items:center;padding:0;border:0;background:var(--surface);color:var(--ink-2)}.mspeak.on{color:var(--copper-text)}.mrow.speaking,.mrow.speaking .mpart,.mrow.speaking .mspeak,.mrow.speaking .mdel{background:var(--copper-soft)}.mrow.speaking .mspeak{box-shadow:inset 3px 0 0 var(--copper)}.btn.on{border-color:var(--copper);color:var(--copper-text)}.dictation{position:fixed;left:50%;bottom:40px;transform:translate(-50%);z-index:700;width:min(640px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--copper);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-pop)}.dictation.m{left:8px;right:8px;width:auto;transform:none;bottom:calc(76px + env(safe-area-inset-bottom,0px))}.kp-open .dictation.m{display:none}.dict-head{display:flex;align-items:center;gap:8px;color:var(--copper-text)}.dict-head b{color:var(--ink)}.dict-auto{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}.dict-auto .select{width:auto;height:26px}.dict-text{margin:0;font-size:16px;line-height:1.45;font-variant-numeric:tabular-nums}.dict-ctrl{display:flex;gap:6px;flex-wrap:wrap}.dictation.m .dict-ctrl .btn{flex:1 1 auto;height:40px}.dict-keys{font-size:12px}.warn-btn{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:4px;padding:0;border:0;border-radius:5px;background:var(--warn-soft);color:var(--warn);vertical-align:-4px;cursor:pointer}.warn-btn:hover{outline:1px solid var(--warn)}.warn-row{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--r);background:var(--surface)}.warn-line{display:flex;align-items:center;gap:6px;margin-top:4px;color:var(--warn)}.mpart .mt .mwarn{display:inline-flex;align-items:center;gap:4px;color:var(--warn);font-weight:500}.vinput-listen{display:flex;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600}.vinput-part{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--copper);border-radius:var(--r);font-size:15px;font-variant-numeric:tabular-nums}.entry-extra>.btn:first-child{flex:none}.order-summary{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.first-tip{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r);background:var(--accent-soft);color:var(--ink);font-size:13px}.first-tip>svg{color:var(--accent);flex:none}.grid tr.checked td.idx:after,.mrow.checked .mpart .n:after{content:" ✓";color:var(--success);font-weight:600}.merge-list{max-height:46vh;overflow:auto}.merge-list .list-row{gap:10px}.shop-tag{font-size:11px;padding:1px 7px}@page{size:A4 portrait;margin:0}#print-root{display:none}.pr-doc{color:#141414;font-family:var(--font);font-size:9pt;line-height:1.3;font-variant-numeric:tabular-nums;-webkit-print-color-adjust:exact;print-color-adjust:exact;text-align:left}.pr-doc *,.pr-doc *:before,.pr-doc *:after{box-sizing:border-box}.pr-page{position:relative;width:210mm;height:296.6mm;padding:8mm;background:#fff;overflow:hidden;display:flex;flex-direction:column;break-after:page;page-break-after:always;break-inside:avoid}.pr-page:last-child{break-after:auto;page-break-after:auto}.pr-hardware{table-layout:fixed;font-size:8.5pt}.pr-hardware th:nth-child(1){width:35%}.pr-hardware th:nth-child(2){width:45%}.pr-hardware th:nth-child(3),.pr-hardware th:nth-child(4){width:10%}.pr-hardware td{overflow-wrap:anywhere;white-space:normal}.pr-muted{color:#6b6b6b;font-weight:400}.pr-doc .grow{flex:1}.pr-doc .r{text-align:right}.pr-doc .c{text-align:center}.pr-head{flex:none;height:13mm;margin-bottom:4mm;display:flex;align-items:flex-end;justify-content:space-between;gap:6mm;padding-bottom:1.6mm;border-bottom:.5mm solid #141414}.pr-company{display:flex;align-items:center;gap:1.6mm;font-size:8.5pt;color:#555}.pr-mark{height:4.2mm;width:auto;color:#141414}.pr-project{font-size:16pt;font-weight:700;line-height:1.1}.pr-head-right{min-width:0;max-width:45%;overflow-wrap:anywhere;text-align:right;font-size:8.5pt;line-height:1.35}.pr-head-left{min-width:0;flex:1}.pr-summary-first{padding-top:20mm}.pr-summary-first .pr-head{margin-bottom:8mm}.pr-foot{position:absolute;left:8mm;right:8mm;bottom:5mm;display:flex;justify-content:space-between;gap:6mm;font-size:7pt;color:gray}.pr-kpis{flex:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(27mm,1fr));gap:2mm;margin-bottom:5mm}.pr-kpis>div{height:18mm;padding:2mm 3mm;border:.3mm solid #b9b9b9;border-radius:1.6mm;overflow:hidden}.pr-kpis b{display:block;font-size:15pt;line-height:1.15;white-space:nowrap}.pr-kpis span{display:block;font-size:8pt;color:#444}.pr-kpis small{display:block;font-size:7pt;color:#666}.pr-h{flex:none;height:6.5mm;margin:0 0 1.5mm;display:flex;align-items:flex-end;gap:2mm;font-size:11pt;font-weight:700;font-family:var(--font)}.pr-tbl{flex:none;width:100%;border-collapse:collapse;margin-bottom:4mm;font-size:9pt}.pr-tbl th{height:6mm;padding:0 1.5mm;font-size:8pt;font-weight:700;color:#141414;text-align:left;border:.25mm solid #141414;border-bottom-width:.5mm;white-space:nowrap}.pr-tbl td{height:6mm;padding:0 1.5mm;border:.25mm solid #141414}.pr-tbl th.r,.pr-tbl td.r{text-align:right}.pr-tbl th.c,.pr-tbl td.c{text-align:center}.pr-qty{font-size:11pt}.pr-parts{table-layout:fixed;font-size:9.5pt}.pr-parts td{height:6.4mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pr-parts tbody tr:nth-child(2n) td{background:#f4f4f1}.pr-parts td .edgeglyph{display:block;margin:0 auto}.pr-doc .edgeglyph .body{fill:#fff;stroke:#9a9a9a;stroke-width:1}.pr-doc .edgeglyph .side{stroke:transparent;stroke-width:2.6}.pr-doc .edgeglyph .side.on{stroke:#141414}.pr-tag{display:inline-block;padding:0 1.2mm;border:.25mm solid #141414;border-radius:1mm;font-size:7pt;font-weight:600;line-height:1.5;vertical-align:middle}.pr-alert{flex:none;margin-bottom:4mm;padding:2mm 3mm;border:.45mm solid #b8402c;border-radius:1.6mm;color:#7d2617;font-size:8.5pt}.pr-note{flex:none;margin-top:1mm;font-size:7.5pt;color:#555}.pr-board,.pr-cont{display:grid;grid-template-rows:13mm minmax(0,1fr) 6mm;row-gap:3mm}.pr-cont{grid-template-rows:13mm minmax(0,1fr)}.pr-board-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6mm;padding-bottom:1.6mm;border-bottom:.5mm solid #141414;min-width:0}.pr-board-title{display:flex;align-items:center;gap:3mm;white-space:nowrap}.pr-big{font-size:17pt;font-weight:750;letter-spacing:-.01em}.pr-times{display:inline-block;padding:.8mm 2.4mm;border-radius:1.4mm;background:#141414;color:#fff;font-size:10.5pt;font-weight:700}.pr-cont .pr-times{background:#fff;color:#141414;border:.35mm solid #141414}.pr-board-meta{display:flex;align-items:center;flex-wrap:wrap;gap:1.4mm 5mm;font-size:9.5pt;min-width:0}.pr-matname{display:inline-flex;align-items:center;gap:1.6mm}.pr-matsw{width:3.4mm;height:3.4mm;border-radius:.6mm;border:.25mm solid #555}.pr-board-proj{text-align:right;font-size:8.5pt;line-height:1.35;white-space:nowrap}.pr-board-body{display:flex;gap:5mm;min-height:0}.pr-drawing{flex:none;min-width:0;min-height:0;position:relative}.pr-drawing>svg{position:absolute;inset:0;width:100%;height:100%}.pr-side{flex:none;min-height:0;overflow:hidden;padding-left:4mm;border-left:.35mm solid #141414;font-size:8.5pt}.pr-side h3,.pr-cont-body h3{height:7mm;margin:0;padding-top:2mm;font-size:9pt;font-weight:700;font-family:var(--font);border-bottom:.3mm solid #141414;break-after:avoid}.pr-side h3:first-child{height:5mm;padding-top:0}.pr-plist,.pr-cuts,.pr-offcuts{list-style:none;margin:0;padding:0}.pr-plist li,.pr-cuts li,.pr-offcuts li{height:4.6mm;display:flex;align-items:center;gap:1.6mm;border-bottom:.2mm solid #141414;white-space:nowrap;overflow:hidden;break-inside:avoid}.pr-plist .pr-pn{flex:none;width:7.5mm;text-align:right}.pr-plist .pr-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.pr-plist .pr-pd{flex:none;font-weight:600}.pr-plist .pr-pq{flex:none;width:9mm;text-align:right}.pr-cuts.two{columns:2;column-gap:3mm}.pr-cn{flex:none;width:5.5mm;text-align:right;font-weight:700}.pr-cd{flex:none;position:relative;width:4.4mm;height:3.2mm;border:.25mm solid #777}.pr-cd:after{content:"";position:absolute;background:#141414}.pr-cd.h:after{left:-.6mm;right:-.6mm;top:calc(50% - .3mm);height:.6mm}.pr-cd.v:after{top:-.6mm;bottom:-.6mm;left:calc(50% - .3mm);width:.6mm}.pr-ct{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#3c3c3c}.pr-cf{margin-left:auto;font-size:10pt;font-weight:800}.pr-cuts li.trim .pr-cf{font-weight:600;color:#555}.pr-box{flex:none;width:3.3mm;height:3.3mm;border:.3mm solid #141414;border-radius:.5mm}.pr-offcuts li{gap:2mm}.pr-offcuts li.ok b{font-size:9pt}.pr-sw{flex:none;display:inline-block;width:4mm;height:2.8mm;vertical-align:middle;border:.2mm solid #c4c7cc;background:#f1f2f3}.pr-sw.ok{border:.15mm solid #111;background:#fff radial-gradient(circle,#111 .17mm,transparent .22mm) 0 0 / .9mm .9mm}.pr-sw.part{border:.3mm solid #222;background:#f4f4f2}.pr-band{display:inline-block;width:6mm;height:0;vertical-align:middle;border-top:.35mm dashed #111}.pr-cutline{display:inline-block;width:6mm;vertical-align:middle;border-top:.2mm dashed #9aa0a6}.pr-more{margin-top:1.6mm;font-size:8pt;font-weight:700}.pr-legend{display:flex;align-items:center;gap:4.5mm;padding-top:1.2mm;border-top:.3mm solid #c9c9c9;font-size:7.5pt;color:#444;white-space:nowrap}.pr-legend>span{display:inline-flex;align-items:center;gap:1.4mm}.pr-dense .pr-side{font-size:7.6pt}.pr-dense .pr-side h3{height:6mm;padding-top:1.4mm;font-size:8.3pt}.pr-dense .pr-side h3:first-child{height:4.6mm;padding-top:0}.pr-dense .pr-plist li,.pr-dense .pr-cuts li,.pr-dense .pr-offcuts li{height:4mm}.pr-dense .pr-cf{font-size:8.8pt}.pr-cont-body{min-height:0;overflow:hidden;columns:3;column-gap:6mm;column-fill:auto;font-size:8.3pt}.pr-cont-body li{height:4.2mm}.pr-labels{padding:0;display:grid;grid-template-columns:repeat(3,70mm);grid-template-rows:repeat(8,37.07mm)}.pr-label{display:flex;flex-direction:column;gap:.6mm;padding:3mm 4mm;overflow:hidden;border:.1mm dashed #e0e0e0}.pr-l1{display:flex;align-items:baseline;gap:2mm;min-width:0}.pr-ln{font-size:16pt;line-height:1}.pr-lname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11pt;font-weight:700}.pr-ldims{font-size:17pt;font-weight:750;line-height:1.1;white-space:nowrap;flex:none}.pr-l3{display:flex;align-items:center;gap:2mm;font-size:7.4pt;line-height:1.25;min-width:0}.pr-l3>span{min-width:0;overflow:hidden}.pr-lboard{display:block;overflow-wrap:anywhere}.pr-l3>svg{flex:none}.pr-lmat{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pr-lproj{margin-top:auto;font-size:7pt;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv{position:fixed;inset:0;z-index:900;display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--canvas)}.pv-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--line)}.pv-bar h2{font-size:16px}.pv-opts{display:flex;flex-wrap:wrap;gap:4px 14px}.pv-scroll{overflow:auto;padding:24px 12px 48px}.pv-scroll .pr-doc{display:flex;flex-direction:column;align-items:center;gap:20px;zoom:var(--pv-zoom, 1)}.pv-scroll .pr-page{flex:none;box-shadow:0 2px 4px #0000001f,0 8px 26px #00000029}@media print{html,body{height:auto!important;overflow:visible!important;background:#fff!important}body>*:not(#print-root){display:none!important}#print-root{display:block!important}.pr-page{box-shadow:none!important}}.pr-page.pr-board{padding:8mm 5mm}.pr-board .pr-board-body{gap:3mm}.pr-board .pr-side{padding-left:3mm}.pr-page:after{position:absolute;left:0;right:0;bottom:2.2mm;text-align:center;font-size:7pt;color:#6b6b6b}.pr-label.qr{display:grid;grid-template-columns:minmax(0,1fr) 19mm;align-items:center;gap:1.5mm;padding-right:2.5mm}.pr-lcol{display:flex;flex-direction:column;gap:.6mm;min-width:0;height:100%}.pr-lqr{width:19mm;height:19mm}.pr-label.offcut .pr-ln{font-size:10pt;letter-spacing:.06em}.pr-logo{display:block;max-height:11mm;max-width:50mm;margin-bottom:1mm;object-fit:contain;width:auto;height:auto}.pr-company-meta{font-size:7.5pt;color:#444}
