:root{--neon:#ff2fd6;--on-neon:#fffaf6;--ink:#1c1916;--muted:#6f675f;--sheet:#f6f1ea;--line:#1c19161f;--dock:#161311;--stage:#5c5c62;color:var(--ink);background:var(--stage);font-family:system-ui,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{height:100dvh;max-height:100dvh;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{background:var(--stage);grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 64px;height:100%;max-height:100%;display:grid;overflow:hidden}.stage-wrap{grid-area:1/1;min-width:0;min-height:0;position:relative;overflow:hidden}#stage,#stage canvas{width:100%!important;height:100%!important;min-height:0!important}#stage{position:absolute;inset:0}#path-editor{z-index:2;position:absolute;inset:0;width:100%!important;height:100%!important}.shell:not([data-sheet=config]) #path-editor{display:none!important}.shell:not(:has(.section[data-section=more][open])) #path-editor{display:none!important}.hud{z-index:3;top:calc(10px + env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;left:12px;right:12px}.hud>*{pointer-events:auto}.hud-view{flex:none;position:relative}.diffuser-switch{width:max-content;font-size:.78rem;position:absolute;top:calc(100% + 6px);left:0}.wall-field{color:#f6f1ea;white-space:nowrap;background:#12100ec7;border-radius:999px;flex:none;justify-content:center;align-self:flex-start;align-items:center;gap:6px;min-height:42px;margin-inline:auto;padding:0 10px;font-size:.82rem;display:flex}.wall-field input{width:4.4rem;min-height:32px;color:inherit;text-align:center;background:#000;border:0;border-radius:999px}@media (max-width:480px){.hud{gap:6px}.mode-switch{font-size:.82rem}.mode-switch label{padding:0 8px}.diffuser-switch{font-size:.72rem}.wall-field{flex-direction:column;gap:1px;min-height:0;padding:4px 8px;font-size:.68rem}.wall-field input{width:3.2rem;min-height:28px}#open-request{min-height:40px;padding:0 12px;font-size:.85rem}}.mode-switch{color:#f6f1ea;background:#12100ec7;border-radius:999px;padding:3px;display:flex}.mode-switch label{cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;align-items:center;min-height:36px;padding:0 14px;display:flex;position:relative}.mode-switch input{opacity:0;margin:0;position:absolute;inset:0}.mode-switch label:has(input:checked){color:#1c1916;background:#f6f1ea}.mode-switch span{border-radius:999px;align-items:center;min-height:32px;padding:0 2px;display:flex}.mode-switch input:focus-visible+span{outline:2px solid var(--neon);outline-offset:2px}#open-request{background:var(--neon);min-height:44px;color:var(--on-neon);box-shadow:0 0 18px color-mix(in srgb, var(--neon) 72%, transparent);cursor:pointer;border:0;border-radius:999px;flex:none;padding:0 18px;font-weight:650}#open-request[aria-pressed=true]{box-shadow:0 0 0 2px #12100e, 0 0 0 4px var(--neon), 0 0 18px color-mix(in srgb, var(--neon) 72%, transparent)}.stage-meta{z-index:3;pointer-events:none;justify-content:space-between;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}#preview-status,#preview-supply{color:#f6f1ea;background:#1c1916;border-radius:999px;max-width:calc(100% - 24px);margin:0;padding:7px 12px;font-size:.85rem;line-height:1.3}.stage-meta:has(#preview-supply:not([hidden])) #preview-status{max-width:calc(50% - 4px)}#preview-supply{white-space:nowrap;color:#f6f1ea;pointer-events:auto;margin-left:auto;text-decoration:none}#preview-supply:hover,#preview-supply:focus-visible{text-underline-offset:3px;text-decoration:underline}.stage-power{align-items:center;gap:6px;margin-left:auto;display:flex}.stage-power #preview-supply{margin-left:0}.plug-pill{color:#f6f1ea;pointer-events:auto;cursor:pointer;background:#1c1916;border-radius:999px;align-items:center;gap:4px;padding:4px 8px 4px 9px;font-size:.85rem;line-height:1.3;display:flex}.plug-icon svg{width:20px;height:20px;display:block}.plug-icon .plug-face{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linejoin:round}.plug-icon .plug-pin{fill:currentColor}.plug-pill select{appearance:auto;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0}.plug-pill select option{color:var(--ink)}.plug-pill:focus-within{outline:2px solid var(--neon);outline-offset:2px}#preview-supply.is-over{color:#fff;background:#b3261e}.sheet{background:var(--sheet);min-height:0;max-height:48dvh;color:var(--ink);border-radius:18px 18px 0 0;flex-direction:column;grid-area:2/1;display:flex;overflow:hidden}.shell[data-sheet=""] .sheet{display:none}.sheet-bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:6px 12px;display:flex}.sheet-bar h2{margin:0;font-size:1.05rem}.sheet-body{min-height:0;padding:12px 14px 14px;overflow:auto}.pane{flex-direction:column;gap:12px;display:flex}.sections{flex-direction:column;display:flex}.section{border-bottom:1px solid var(--line)}.section>summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:48px;font-size:1rem;font-weight:600;list-style:none;display:flex}.section>summary::-webkit-details-marker{display:none}.section>summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:8px;height:8px;margin-right:6px;transition:transform .15s;transform:rotate(45deg)}.section[open]>summary:after{transform:rotate(-135deg)}.section>summary:focus-visible{outline:2px solid var(--neon);outline-offset:2px;border-radius:6px}.section>.pane{padding-bottom:16px}.primary,#sheet-close,#submit-order,#back-to-text{background:var(--neon);min-height:44px;color:var(--on-neon);cursor:pointer;border:0;border-radius:999px;padding:0 16px;font-weight:650}#sheet-close{min-height:40px}button:disabled{opacity:.45;cursor:default}input[name=text]{width:100%;box-shadow:inset 0 0 0 1px var(--line);background:#fff;border:0;border-radius:14px;padding:14px 16px;font-size:1.7rem}.font-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.font-card{text-align:center;min-width:0;min-height:76px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;background:#fff;border:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 10px;display:flex}.font-card[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--neon)}.font-sample{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:1.9rem;line-height:1.1;overflow:hidden}.font-card[data-font=sacramento] .font-sample{font-family:sacramento,cursive;font-size:2.4rem}.font-card[data-font=neonderthaw] .font-sample{font-family:neonderthaw,cursive}.font-name{color:var(--muted);font-size:.75rem}.sizes{gap:8px;display:flex}.size-chip{min-height:64px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;background:#fff;border:0;border-radius:14px;flex:1}.size-chip span{color:var(--muted);font-size:.75rem;display:block}.size-chip[aria-pressed=true]{background:var(--neon);color:var(--on-neon);box-shadow:none}.size-chip[aria-pressed=true] span{color:inherit}.height-step{align-items:center;gap:8px;display:flex}.height-step input{text-align:center;min-width:0;min-height:48px;box-shadow:inset 0 0 0 1px var(--line);background:#fff;border:0;border-radius:12px;flex:1;font-size:1.2rem}.height-step button{width:48px;height:48px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;background:#fff;border:0;border-radius:12px;font-size:1.4rem}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;border:0;border-radius:50%;width:36px;height:36px;padding:0}.swatch[data-color=\#ff2fd6]{background:#ff2fd6}.swatch[data-color=\#ff3b30]{background:#ff3b30}.swatch[data-color=\#ff9500]{background:#ff9500}.swatch[data-color=\#ffd60a]{background:#ffd60a}.swatch[data-color=\#30d158]{background:#30d158}.swatch[data-color=\#64d2ff]{background:#64d2ff}.swatch[data-color=\#0a84ff]{background:#0a84ff}.swatch[data-color=\#bf5af2]{background:#bf5af2}.swatch[data-color=\#f5f5f7]{background:#f5f5f7}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--sheet), 0 0 0 4px var(--neon)}.color-free{align-items:center;gap:10px;display:flex}input[type=color]{cursor:pointer;background:0 0;border:0;width:48px;height:48px;padding:0}.choice{gap:8px;display:flex}.choice label{min-height:44px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;background:#fff;border-radius:999px;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.choice input{opacity:0;position:absolute}.choice input:checked+span{color:var(--on-neon)}.choice label:has(input:checked){background:var(--neon);color:var(--on-neon);box-shadow:none}.image-drop{text-align:center;cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:148px;padding:16px;font-size:1.15rem;display:flex;box-shadow:inset 0 0 0 1.5px #c9bfb4}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.field select,.field input[type=number],.field input[type=range]{min-height:40px;color:var(--ink)}#threshold-preview{image-rendering:pixelated;background:#111;max-width:220px}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions button{min-height:44px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;background:#fff;border:0;border-radius:999px;padding:0 14px}#path-toolbar{flex-wrap:wrap;gap:6px;display:flex}#path-toolbar button{min-height:40px}#summary{grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:0;display:grid}#summary dt{color:var(--muted)}#summary dd{overflow-wrap:anywhere;margin:0}#blocked-reason{color:#9d1c1c;margin:0}.plate-shape,.plate-material{flex-wrap:wrap}.plate-shape label,.plate-material label{text-align:center;flex:140px;padding:0 12px;font-size:.92rem}.pane .is-dimmed{opacity:.4;pointer-events:none}.tech-note{color:var(--muted);margin:0;font-size:.85rem}.tech-group{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:6px;margin:0;padding:8px 12px 12px;display:flex}.tech-group legend{padding:0 4px;font-weight:600}.tech-field{justify-content:space-between;align-items:center;gap:10px;min-height:44px;display:flex}.tech-field>span:first-child{flex-direction:column;min-width:0;font-size:.95rem;display:flex}.tech-field small{color:var(--muted);font-family:ui-monospace,monospace;font-size:.7rem}.tech-input{color:var(--muted);flex:none;align-items:center;gap:6px;font-size:.85rem;display:flex}.tech-input span{width:1.6em}.tech-field input,.tech-field select{border:1px solid var(--line);background:var(--sheet);min-height:40px;color:var(--ink);border-radius:10px;padding:0 8px}.tech-field input{text-align:right;width:5.5rem}.tech-field select{max-width:12rem}.tech-field input[aria-invalid=true]{border-color:#c4302b;box-shadow:0 0 0 1px #c4302b}.request-actions{background:var(--sheet);border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin:0 -14px -14px;padding:10px 14px 14px;display:flex;position:sticky;bottom:-14px}@media (max-width:899px){.hud{flex-wrap:nowrap}.wall-field{flex-direction:row;min-height:36px;margin:0;position:absolute;top:calc(100% + 54px);left:0}#open-request{margin-left:auto}}.dock{min-width:0;min-height:0;padding:calc(4px + env(safe-area-inset-top)) calc(4px + env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) 4px;background:var(--dock);color:#f6f1ea;grid-area:1/2/span 2;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(52px,auto);align-content:center;gap:4px;display:grid;overflow-y:auto}.dock button{min-width:0;min-height:48px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:.68rem;line-height:1.1;display:flex}.dock button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.dock button[aria-pressed=true]{background:var(--neon);color:var(--on-neon)}.dock button.is-dimmed{opacity:.38}@media (min-width:900px){.shell{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 400px 76px}.stage-wrap{grid-area:1/1}.dock{grid-area:1/3;grid-auto-rows:minmax(60px,auto)}.dock button{font-size:.72rem}.sheet{border-left:1px solid #ffffff14;border-radius:0;grid-area:1/2;height:100%;max-height:none;display:flex}.shell[data-sheet=""] .sheet{display:flex}.shell[data-sheet=config] #sheet-close{display:none}}
