:root{color-scheme:light dark;--bg: #f6f5f2;--card: #ffffff;--ink: #1d1d1f;--muted: #6b6b70;--line: #e3e1dc;--accent: #2f6fdb;--accent-ink: #ffffff;--good: #1f8a4c;--bad: #c4362c;--warn: #9a5b00;--warn-bg: #fff4e0;--shade: rgba(0, 0, 0, .04);--stage: #ecebe7;--private: #172033}@media(prefers-color-scheme:dark){:root{--bg: #141416;--card: #1e1e21;--ink: #ececee;--muted: #9a9aa2;--line: #313136;--accent: #6a9cf0;--accent-ink: #0d1424;--good: #4cc27f;--bad: #f0776d;--warn: #f2b45c;--warn-bg: #2e2416;--shade: rgba(255, 255, 255, .04);--stage: #2a2a2e;--private: #d9dde6}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}[hidden]{display:none!important}.wrap{max-width:1180px;margin:0 auto;padding:0 16px 64px}.back{margin-bottom:22px}.bar-link{margin-left:auto}.top{margin-bottom:20px}h1{font-size:26px;margin:0 0 4px;letter-spacing:-.01em}h2{font-size:17px;margin:0 0 14px;display:flex;align-items:center;gap:8px}.sub{margin:0;color:var(--muted);max-width:640px}.muted{color:var(--muted)}.small{font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0}.gate{max-width:460px}.gate p{margin-top:0}.private-tag{display:inline-block;margin-bottom:10px;padding:2px 10px;border-radius:4px;background:var(--private);color:var(--bg);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.step{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--card);font-size:12px}.head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}.grow{flex:1 1 160px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);margin-bottom:16px;min-width:0}input[type=text],input[type=number],select{font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;width:100%;min-height:40px}input[type=range]{width:100%;accent-color:var(--accent)}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled{opacity:.5}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;min-height:40px}button:disabled{cursor:default;opacity:.5}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.link{border:0;background:none;color:inherit;opacity:.7;padding:4px 0;min-height:0;font-size:.82rem}button.link:hover{opacity:1;text-decoration:underline}.status{min-height:1.5em;margin:10px 0 0;font-size:14px}.status.error{color:var(--bad)}.status.ok{color:var(--good)}.note{margin:8px 0 0;padding:8px 11px;border-radius:8px;background:var(--warn-bg);color:var(--warn);font-size:13px}.app{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"drawing options" "result options";gap:18px;align-items:start}.drawing{grid-area:drawing}.options{grid-area:options}.result{grid-area:result}@media(max-width:860px){.app{grid-template-columns:minmax(0,1fr);grid-template-areas:"drawing" "options" "result"}}.drop{position:relative;display:grid;place-items:center;min-height:260px;border:2px dashed var(--line);border-radius:10px;background:var(--stage);cursor:pointer;overflow:hidden;text-align:center}.drop.over{border-color:var(--accent)}.drop.has-image{border-style:solid}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop img{display:block;max-width:100%;max-height:460px;object-fit:contain;pointer-events:none}.drop-hint{display:flex;flex-direction:column;gap:4px;padding:24px;pointer-events:none}.drop.has-image .drop-hint{position:absolute;inset:auto 8px 8px auto;padding:4px 10px;border-radius:6px;background:var(--card);font-size:12px}.drop.has-image .drop-hint .muted{display:none}.toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.toggle button{border:0;border-radius:0;min-height:32px;padding:4px 12px;font-size:13px}.toggle button[aria-pressed=true]{background:var(--ink);color:var(--card)}.presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.presets button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;padding:10px 12px}.presets button span{font-size:12px;color:var(--muted)}.presets button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}@media(max-width:420px){.presets{grid-template-columns:minmax(0,1fr)}}.size-field{width:140px}.unit{display:flex;align-items:center;gap:6px;color:var(--ink)}.check{display:flex;align-items:center;gap:8px;margin-bottom:26px;font-size:14px}.check input{width:18px;height:18px;accent-color:var(--accent)}.colors-head{display:flex;justify-content:space-between;gap:8px}.swatches{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.swatch{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,11rem);align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;color:var(--ink)}.swatch.out{opacity:.55}.chips{display:flex;align-items:center;gap:3px}.chip{width:26px;height:26px;border-radius:6px;border:1px solid rgba(127,127,127,.35)}.chip.small{width:16px;height:16px;border-radius:4px}.arrow{color:var(--muted);font-size:12px}.swatch-name{display:flex;flex-direction:column;min-width:0;line-height:1.25}.swatch-name b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.swatch-name span{font-size:12px;color:var(--muted)}.swatch select{min-height:34px;padding:4px 8px;font-size:13px}@media(max-width:520px){.swatch{grid-template-columns:auto minmax(0,1fr)}.swatch select{grid-column:1 / -1;width:100%}}.label-box{margin-bottom:16px;border:1px solid var(--line);border-radius:9px;padding:10px 12px 0}.label-box summary{cursor:pointer;padding-bottom:10px;font-size:14px}.label-box[open] summary{margin-bottom:4px}.actions{display:flex;gap:10px;flex-wrap:wrap}.stage{position:relative;display:grid;place-items:center;min-height:200px;border-radius:10px;background:var(--stage);overflow:hidden;padding:12px}.stage img{display:block;max-width:100%;border-radius:6px}.stage.is-stale img{filter:grayscale(.7);opacity:.45}#preview-empty{text-align:center;max-width:340px;margin:0}.busy{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--stage) 75%,transparent);font-weight:600}.spinner{width:20px;height:20px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stale{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 11px;border-radius:8px;background:var(--card);border:1px solid var(--line);font-size:13px;text-align:center}.warnings{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px}.warnings li{padding:8px 11px;border-radius:8px;background:var(--warn-bg);color:var(--warn);font-size:13px}.facts{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:12px 0 14px;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px}.slot{display:inline-flex;align-items:center;gap:5px}.result .actions{margin:14px 0 6px}
