.snugcut{--fg:var(--text);--sunk:var(--code);--field:var(--muted);--accent:var(--on-bg);--accent-soft:var(--code);--accent-fg:var(--on-fg);--guide:#2d55f0;--f-display:var(--serif);--f-body:var(--sans);--f-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--plate:#e8d6b3;--plate-edge:#bfa77c;--guide-margin:#7a6644;--warn:#a14a07;--warn-soft:#fff1e2;--nohole:#c62828;--ok:#1d7349;padding:1.25rem max(1rem,calc((100% - 1320px)/2))2rem}@media(prefers-color-scheme:dark){.snugcut{--plate:#dcc8a2;--plate-edge:#9c8660;--warn:#f0a35c;--warn-soft:#2f2114;--nohole:#ff6b6b;--ok:#5cc792}}.snugcut{background:var(--bg);color:var(--fg)}.snugcut{font:15px/1.5 var(--f-body)}.snugcut *{box-sizing:border-box}.snugcut .wrap{max-width:1320px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.snugcut header h1{font:700 30px/1.1 var(--f-display);margin:0;letter-spacing:.01em;text-wrap:balance}.snugcut header p{margin:4px 0 0;color:var(--muted);max-width:72ch}.snugcut header ul{margin:4px 0 0;padding-left:20px;color:var(--muted);max-width:72ch}.snugcut .layout{display:grid;grid-template-columns:minmax(300px,370px)minmax(0,1fr);gap:18px;align-items:start}@media(max-width:880px){.snugcut .layout{grid-template-columns:minmax(0,1fr)}}.snugcut .rail{display:flex;flex-direction:column;gap:14px;min-width:0}.snugcut .panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.snugcut .panel-hd{display:flex;justify-content:space-between;align-items:center;gap:8px}.snugcut .panel h2{font:600 13px/1 var(--f-display);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0}.snugcut .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.snugcut .field{display:flex;flex-direction:column;gap:4px;min-width:0}.snugcut .field label{font:500 13px/1.2 var(--f-body);color:var(--muted)}.snugcut input[type=number],.snugcut input[type=text],.snugcut select{width:100%;font:500 15px var(--f-mono);font-variant-numeric:tabular-nums;color:var(--fg);background:var(--sunk);border:1px solid var(--field);border-radius:6px;padding:7px 9px}.snugcut select{font-family:var(--f-body);font-size:14px}.snugcut input:focus-visible,.snugcut select:focus-visible,.snugcut button:focus-visible,.snugcut .drop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.snugcut .unitsw{display:inline-flex;border:1px solid var(--field);border-radius:6px;overflow:hidden}.snugcut .unitsw button{font:600 12px var(--f-mono);background:0 0;color:var(--muted);border:0;padding:4px 10px;cursor:pointer}.snugcut .unitsw button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.snugcut .kerf{background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.snugcut .kerf label{color:var(--fg);font-weight:600}.snugcut .kerf input{font-size:17px;background:var(--surface)}.snugcut .hint{font-size:13px;color:var(--muted);margin:0}.snugcut .ferr{font-size:13px;color:var(--warn);margin:0}.snugcut .part .ferr{grid-column:1/-1}.snugcut details summary{cursor:pointer;font-size:13px;color:var(--accent);font-weight:500}.snugcut details .row{margin-top:8px}.snugcut .check{display:flex;gap:8px;align-items:center;font-size:14px}.snugcut .check input{accent-color:var(--accent);width:16px;height:16px}.snugcut button.btn{font:600 14px var(--f-body);border-radius:6px;padding:7px 12px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--fg)}.snugcut button.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.snugcut button.btn.small{font-size:13px;padding:4px 9px}.snugcut button.btn:disabled,.snugcut button.btn[aria-disabled=true]{opacity:.5;cursor:default}.snugcut .drop{border:1.5px dashed var(--field);border-radius:8px;padding:16px;text-align:center;color:var(--muted);cursor:pointer;font-size:14px}.snugcut .drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--fg)}.snugcut .drop b{color:var(--accent)}.snugcut .parts{display:flex;flex-direction:column;gap:6px;max-height:440px;overflow:auto}.snugcut .part{display:grid;grid-template-columns:44px minmax(0,1fr)64px auto;gap:10px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--sunk)}.snugcut .part img{width:44px;height:44px;object-fit:contain;background:var(--plate);border-radius:4px;padding:3px}.snugcut .part .nm{font-weight:600;font-size:14px;overflow-wrap:anywhere}.snugcut .part .sz{font:12px var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums}.snugcut .part .sz.bad{color:var(--warn)}.snugcut .part .du{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:12px;color:var(--muted)}.snugcut .part .du select{width:auto;min-height:24px;padding:2px 6px;font-size:13px}.snugcut .part input[type=number]{padding:5px 6px;font-size:14px}.snugcut .part .acts{display:flex;gap:4px;padding-top:13px}.snugcut .part .info{min-width:0}.snugcut .qw{display:flex;flex-direction:column;gap:2px;min-width:0}@media(max-width:480px){.snugcut .part{grid-template-columns:44px minmax(0,1fr)auto;grid-template-areas:"info info info" "img qty acts"}.snugcut .part>img{grid-area:img}.snugcut .part>.info{grid-area:info}.snugcut .part>.qw{grid-area:qty;max-width:96px}.snugcut .part>.acts{grid-area:acts}}.snugcut .ql{font-size:11px;line-height:1;color:var(--muted)}.snugcut .icon{width:28px;height:28px;border-radius:6px;border:1px solid var(--field);background:var(--surface);color:var(--muted);cursor:pointer;display:grid;place-items:center;padding:0}.snugcut .icon[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.snugcut .icon.nohole{color:var(--nohole);border-color:var(--nohole);opacity:.4;cursor:default}.snugcut .icon svg{width:15px;height:15px}.snugcut .badge{font:600 11px var(--f-display);letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:99px;background:var(--warn-soft);color:var(--warn)}.snugcut .results{display:flex;flex-direction:column;gap:14px;min-width:0}.snugcut .summary{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.snugcut .stat{display:flex;flex-direction:column}.snugcut .stat .v{font:600 26px/1.1 var(--f-display);font-variant-numeric:tabular-nums}.snugcut .stat .k{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.snugcut .summary .sp{flex:1}.snugcut .search{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 16px}.snugcut .search .st{font:13px var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums;flex:1;min-width:200px}.snugcut .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:8px;vertical-align:middle}.snugcut .dot.on{background:var(--accent)}@media(prefers-reduced-motion:no-preference){.snugcut .dot.on{animation:snugcut-pulse 1s ease-in-out infinite}}@keyframes snugcut-pulse{50%{opacity:.3}}.snugcut .msgs{display:flex;flex-direction:column;gap:6px}.snugcut .msgs:empty{display:none}.snugcut .msg{font-size:14px;padding:8px 12px;border-radius:6px;background:var(--warn-soft);color:var(--warn)}.snugcut .msg ul{margin:6px 0 0;padding-left:18px}.snugcut .msg li{margin-top:4px}.snugcut .msg.has-x{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.snugcut .msg.err{border-left:3px solid var(--warn)}.snugcut .msg .x{flex:none;border:0;background:0 0;color:inherit;cursor:pointer;padding:2px;border-radius:4px;line-height:0}.snugcut .msg .x svg{width:14px;height:14px}.snugcut .plates{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.snugcut .plates.stale .sheet{opacity:.45}.snugcut .plate{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}.snugcut .plate .hd{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.snugcut .plate .t{font:700 17px var(--f-display);margin:0}.snugcut .plate .m{font:12px var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums}.snugcut .sheet{position:relative;width:100%;background:var(--plate);box-shadow:inset 0 0 0 1px var(--plate-edge);border-radius:2px;overflow:hidden}.snugcut .sheet img,.snugcut .sheet svg{position:absolute;inset:0;width:100%;height:100%}.snugcut .plist summary{font-size:13px;color:var(--muted);cursor:pointer}.snugcut .plist ul{margin:6px 0 0;padding-left:18px;font-size:13px}.snugcut .bar{height:5px;border-radius:3px;background:var(--sunk);overflow:hidden}.snugcut .bar i{display:block;height:100%;background:var(--ok)}.snugcut .toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:8px 14px;border-radius:6px;font-size:14px;max-width:calc(100% - 32px)}.snugcut .note{font-size:13px;color:var(--muted)}.snugcut .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.snugcut .fatal{padding:16px;border-radius:10px;background:var(--warn-soft);color:var(--warn)}.snugcut .modesw{display:inline-flex;border:1px solid var(--field);border-radius:8px;overflow:hidden;margin-top:12px;background:var(--surface)}.snugcut .modesw button{font:600 14px var(--f-body);background:0 0;color:var(--muted);border:0;padding:7px 16px;cursor:pointer}.snugcut .modesw button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.snugcut .unitsw button:focus-visible,.snugcut .modesw button:focus-visible{outline:2px solid currentColor;outline-offset:-4px}body[data-mode=bbox] .snugcut [data-only=shape],body[data-mode=shape] .snugcut [data-only=bbox]{display:none!important}.snugcut footer{color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.snugcut footer a,.snugcut header p a{color:var(--accent)}@media(forced-colors:active){.snugcut .unitsw button[aria-pressed=true],.snugcut .modesw button[aria-pressed=true]{background:Highlight;color:HighlightText;forced-color-adjust:none}.snugcut .icon[aria-pressed=true]{outline:2px solid Highlight;outline-offset:-4px}.snugcut .icon.nohole{color:GrayText;border-color:GrayText;opacity:1}.snugcut .part img,.snugcut .sheet{forced-color-adjust:none;outline:1px solid CanvasText}}