:root{--text:#2b2622;--muted:#7a6f66;--bg:#f7f4ef;--surface:#fff;--border:#ddd5ca;--accent:#8a5a2b;--wood:#e2c39b;--wood-edge:#6b4423;--engraving:#5a3a1e;--cut:#d22;--score:#24c;--warning-bg:#fbecd5;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:16px/1.5 system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#ede6dd;--muted:#a3988d;--bg:#1d1a17;--surface:#27231f;--border:#3d3630;--accent:#d39a5f;--cut:#f55;--score:#68f;--warning-bg:#3d2c17}}*{box-sizing:border-box}body{margin:0}main{grid-template-columns:minmax(0,1fr);gap:1.5rem;max-width:40rem;margin:0 auto;padding:1rem;display:grid}main header{justify-content:space-between;align-items:center;gap:1rem;display:flex}main h1,main h2{margin:0;font-size:1.5rem}.tagline{color:var(--muted);margin:-1rem 0 0}.muted{color:var(--muted)}.machine-note{color:var(--text);margin:0}.machine-note strong{color:#f53}.warning{background:var(--warning-bg);border-radius:.25rem;margin:0;padding:.5rem .75rem}button{font:inherit;border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:.25rem;padding:.25rem .75rem}button:hover:not(:disabled){background:#ff55334d}button:disabled{opacity:.5}.preview{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;justify-items:center;gap:.5rem;padding:1.5rem 1rem;display:grid}.preview svg{width:100%;max-height:50vh;overflow:visible}.preview .wood{fill:var(--wood);stroke:var(--wood-edge);stroke-width:.3px}.preview .hole{fill:var(--surface)}.preview .engraving{fill:var(--engraving)}.preview .pattern{fill:none;stroke:var(--engraving);stroke-width:.12px;stroke-linecap:round;stroke-linejoin:round;opacity:.7}.preview .coin .ring{fill:#c9a94e}.preview .coin .core{fill:#c4c4c0}.preview .coin text{text-anchor:middle;fill:#6d6d68;font-size:6px;font-weight:600}.preview .coin .coin-label{font-size:4px}.preview .coin .reference{fill:var(--muted);font-size:3px;font-weight:400}.preview .dimensions{color:var(--muted);margin:0}form{gap:1rem;display:grid}form label{gap:.25rem;display:grid}form label.choice{align-items:flex-start;margin-right:1rem;display:inline-flex}form label.choice input[type=checkbox],form label.choice input[type=radio]{flex:none;margin:0 .5rem 0 0}form label.choice input[type=checkbox]{margin-top:.35em}form fieldset{border:none;margin:0;padding:0}form fieldset legend{margin-bottom:.25rem;padding:0}form textarea,form input[type=number],form input[type=url]{font:inherit;border:1px solid var(--border);background:var(--surface);color:inherit;resize:vertical;border-radius:.25rem;padding:.5rem}form input{accent-color:var(--accent)}form .actions,form .choices{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}form input[type=number]{width:5rem;margin:0 .25rem;padding:.25rem .5rem}form .position-controls{flex-wrap:nowrap;justify-content:center;align-items:center;gap:.75rem;display:flex}form .position-controls label{white-space:nowrap;flex:none;align-items:center;gap:.35rem;display:inline-flex}form .position-controls input[type=number]{text-align:right;width:6.5rem;margin:0;padding:.25rem}.label-options>fieldset{background:var(--surface);border-radius:.35rem;padding:.5rem .75rem}.label-options>fieldset legend{font-weight:600}.label-options>fieldset .choice{color:var(--muted)}.label-options .hole-subsetting{border-left:1px solid var(--border);margin:.75rem 0 0 .75rem;padding:0 0 0 .75rem}.label-options .hole-subsetting legend{color:var(--text);font-size:inherit;font-weight:400}.label-options .hole-subsetting .choice{color:var(--muted)}.label-options .frame-subsetting{border-left:1px solid var(--border);color:var(--muted);margin:.75rem 0 0 .75rem;padding-left:.75rem}.label-options .qr-subsettings{border-left:1px solid var(--border);gap:.75rem;margin:.75rem 0 0 .75rem;padding-left:.75rem;display:grid}.label-options .qr-subsettings p{margin:0}.laser{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1rem}.laser .layer{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.25rem 1rem;display:grid}.laser .bed{touch-action:none;width:100%}.laser .bed .area{fill:var(--bg);stroke:var(--border)}.laser .bed .cut-before{fill:var(--border);cursor:pointer}.laser .bed .cut-before:hover,.laser .bed .cut-before.armed{fill:var(--cut)}.laser .bed .cut-before .cross{stroke:var(--text);stroke-width:1px;stroke-dasharray:100;stroke-dashoffset:100px;animation:.12s ease-out forwards delete-cross-in}.laser .bed .current{fill:var(--wood);stroke:var(--wood-edge);stroke-width:.5px;cursor:move}.laser .bed .current.overlaps{stroke:var(--cut);stroke-width:1.5px}.laser .bed .snap-guide{stroke:#f53;stroke-width:.4px;stroke-dasharray:2 1;opacity:.95;pointer-events:none}.laser .bed .head path{stroke:var(--cut);stroke-width:1px}.laser .bed-map-wrapper{position:relative}.laser .clear-board{z-index:2;width:max-content;transition:top .3s,left .3s,transform .3s;position:absolute}.laser .clear-board.at-top-left{top:.5rem;left:.5rem;transform:none}.laser .clear-board.at-top-right{top:.5rem;left:calc(100% - .5rem);transform:translate(-100%)}.laser .clear-board.at-bottom-left{top:calc(100% - .5rem);left:.5rem;transform:translateY(-100%)}.laser .clear-board.at-bottom-right{top:calc(100% - .5rem);left:calc(100% - .5rem);transform:translate(-100%,-100%)}.laser .status{font-weight:600}.laser .connect-button{padding:.25rem .5rem}.laser .machine-controls{grid-template-columns:max-content minmax(0,1fr);gap:0 .25rem;display:grid}.laser .machine-control-row{grid-column:1/-1;grid-template-columns:subgrid;border-bottom:1px solid var(--border);align-items:start;gap:.5rem 1rem;padding:.5rem 0;display:grid}.laser .machine-control-row .control-label{color:var(--muted)}.laser .machine-control-row .choice{margin:0}.laser .machine-control-row .inactive{color:var(--muted)}.laser .machine-control-row .corner-actions{grid-template-columns:repeat(4,minmax(max-content,1fr));display:grid}.laser .machine-control-row .corner-actions .frame-button{grid-column:1/-1}:is(.laser .connection-row,.laser .framing-row)>.status,:is(.laser .connection-row,.laser .framing-row)>.control-label,:is(.laser .connection-row,.laser .framing-row)>.connection-error{grid-column:2}.laser .connection-error{color:var(--muted);margin:0}.laser .send-row{border-bottom:0}.laser .send-row>button{grid-column:1}.laser .send-row .send-status{grid-column:2;min-width:0}.laser .send-row .send-status p{margin:0}.laser .send-row .send-status p+p{margin-top:.25rem}.laser .settings-override{margin:.25rem 0}.laser .settings-override summary{width:fit-content;color:var(--muted);cursor:pointer;font-size:.9rem}.laser .settings-override .settings-guidance{color:var(--muted);margin:.5rem 0}.laser .settings-override>.actions{margin-top:.75rem}.laser .settings-warning{margin:0;font-size:.9rem}.laser .downloads{margin-top:.5rem}.laser .downloads summary{width:fit-content;color:var(--muted);cursor:pointer;font-size:.8rem}.laser .downloads .actions{margin-top:.5rem}.laser .downloads .download-guide{color:var(--muted);margin:.75rem 0 0;font-size:.9rem}@keyframes delete-cross-in{to{stroke-dashoffset:0}}@media (width<=620px){.laser .position-controls input[type=number]{width:5rem}.laser .machine-controls{grid-template-columns:max-content minmax(0,1fr)}}aside{color:var(--muted)}aside .cut{color:var(--cut)}aside .score{color:var(--score)}
