:root{--bg:#0b0b0d;--panel:#141518;--raise:#1d1f24;--line:#2a2d34;--text:#e9e7e2;--dim:#9a9ca3;--accent:#ffb224;--accent-ink:#1a1200;--danger:#ff6b5e;--ok:#6fd08c;--radius:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}button,input,select{font:inherit;color:inherit}h2{margin:0 0 12px;font-size:16px}h3{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:20px 0 8px;font-size:11px;font-weight:600}p{margin:0 0 10px}#app{grid-template:"top top top""left stage right"minmax(0,1fr)/270px minmax(0,1fr) 310px;height:100dvh;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--line);grid-area:top;align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.brand{letter-spacing:.02em;white-space:nowrap;font-weight:600}.brand b{background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:2px 6px}.spacer{flex:1}.group{gap:2px;display:flex}.design-name{background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:1;width:190px;min-width:60px;padding:6px 8px;font-weight:600}.design-name:hover,.design-name:focus{border-color:var(--line);background:var(--raise);outline:none}.status{color:var(--dim);white-space:nowrap;font-size:12px}.status[data-state=saved-cloud]:before,.status[data-state=saved-local]:before{content:"● ";color:var(--ok)}.status[data-state=error],.status[data-state=conflict]{color:var(--danger)}button{background:var(--raise);border:1px solid var(--line);cursor:pointer;border-radius:6px;min-height:34px;padding:7px 11px}button:hover:not(:disabled){background:#24272d;border-color:#454953}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:#ffc24f;border-color:#ffc24f}button.ghost{background:0 0}button.ghost[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.icon{padding:4px 9px;font-size:16px;line-height:1}button.danger{color:var(--danger)}.seg{display:flex}.seg button{border-radius:0;margin-left:-1px;padding:7px 10px}.seg button:first-child{border-radius:6px 0 0 6px;margin-left:0}.seg button:last-child{border-radius:0 6px 6px 0}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);position:relative}.panel{background:var(--panel);overscroll-behavior:contain;overflow-y:auto}.panel.left{border-right:1px solid var(--line);grid-area:left}.panel.right{border-left:1px solid var(--line);grid-area:right}@media (min-width:861px){#app[data-right=hidden]{grid-template-columns:270px minmax(0,1fr) 0}#app[data-right=hidden] .panel.right{display:none}}.inspector{padding:14px}.section{border-bottom:1px solid var(--line)}.section summary{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);padding:11px 14px;font-size:11px;font-weight:600}.section-body{padding:0 14px 14px}.field{grid-template-columns:1fr 76px;align-items:center;gap:2px 8px;margin-bottom:10px;display:grid}.field>span:first-child{color:var(--dim);grid-column:1/-1;font-size:12px}.field.wide{grid-template-columns:1fr}.field input[type=text],.field select,.numbox input{background:var(--raise);border:1px solid var(--line);border-radius:6px;width:100%;min-height:32px;padding:6px 8px}.numbox{display:block;position:relative}.numbox input{font-variant-numeric:tabular-nums;appearance:textfield;padding-right:22px}.numbox input::-webkit-inner-spin-button{display:none}.numbox i{color:var(--dim);pointer-events:none;font-size:12px;font-style:normal;position:absolute;top:50%;right:7px;transform:translateY(-50%)}input[type=range]{width:100%;accent-color:var(--accent);min-width:0;height:28px;margin:0}.checks{gap:6px;margin-top:4px;display:grid}.check{cursor:pointer;align-items:center;gap:8px;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px}.hint{color:var(--dim);font-size:12px}.hint-list{color:var(--dim);margin:0 0 12px;padding-left:16px;font-size:12px}.hint-list li{margin-bottom:4px}.adders{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.adders button{padding:6px;font-size:13px}.tree{gap:2px;display:grid}.row{text-align:left;background:0 0;border-color:#0000;align-items:center;gap:8px;width:100%;min-height:32px;padding:5px 8px;display:flex}.row.on{background:#3a2c0c;border-color:#6b5010}.row .grow,.lib-row .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.row.pos{margin-top:4px;font-weight:600}.row .kind{text-transform:uppercase;letter-spacing:.06em;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:10px;font-weight:500}.row .count{color:var(--dim);font-size:12px;font-weight:400}.row .swatch{border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 0 1px #0008}.row.fx{border:1px solid #0000;border-radius:6px;gap:2px;padding:0 0 0 14px}.row.fx>button{background:0 0;border:0;min-height:30px}.row.fx>.grow{text-align:left;align-items:center;gap:8px;padding:5px 8px 5px 4px;display:flex}.row.fx .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row.fx>.swatch{width:24px;height:30px;box-shadow:none;border-radius:6px;place-items:center;padding:0;display:grid}.row.fx>.swatch:before{content:"";background:var(--c);width:12px;height:12px;opacity:var(--o);border-radius:50%;box-shadow:0 0 0 1px #0008}.row.fx>.swatch:hover{background:var(--raise)}.row.fx>.swatch[aria-pressed=false]:before{opacity:1;box-sizing:border-box;border:2px solid var(--c);box-shadow:none;background:linear-gradient(135deg, transparent calc(50% - 1px), var(--c) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px))}.row.fx.off .grow{color:var(--dim)}.level-row{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.level-row .check{padding-bottom:8px}.row .ch{color:var(--dim);font-variant-numeric:tabular-nums;min-width:20px;font-size:12px}.stats{grid-template-columns:1fr auto;gap:6px 12px;margin:0;display:grid}.stats dt{color:var(--dim)}.stats dd{font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:600}.type-grid{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.type-grid button{text-align:left;gap:2px;padding:8px;display:grid}.type-grid b{font-size:13px;font-weight:600}.type-grid small{color:var(--dim)}.actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.actions button{flex:1}.wide-btn{width:100%;margin-bottom:12px}.wide-btn.armed{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.gels{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.gel{aspect-ratio:1;border:2px solid #0006;border-radius:50%;min-height:0;padding:0}.gel.on{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.gel-row{justify-content:space-between;align-items:center;gap:8px;margin:8px 0 0;display:flex}.gel-name{color:var(--dim);font-size:12px}.custom{color:var(--dim);align-items:center;gap:6px;font-size:12px;display:flex}.custom input{border:1px solid var(--line);background:0 0;border-radius:6px;width:34px;height:28px;padding:0}.stage{grid-area:stage;min-width:0;min-height:0;position:relative}.viewport{position:absolute;inset:0;overflow:hidden}.viewport canvas{touch-action:none;display:block}.focusing .viewport canvas{cursor:crosshair}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.labels span{font-variant-numeric:tabular-nums;background:#000b;border:1px solid #fff5;border-radius:9px;padding:0 6px;font-size:11px;position:absolute;top:0;left:0}.fatal{color:var(--dim);max-width:420px;padding:40px}.toast{border:1px solid var(--line);border-radius:var(--radius);opacity:0;pointer-events:none;z-index:30;background:#26282e;max-width:min(92vw,460px);padding:10px 14px;transition:all .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);box-shadow:0 8px 30px #000a}.toast.show{opacity:1;transform:translate(-50%)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;width:min(92vw,480px);max-height:86dvh;padding:18px}dialog::backdrop{background:#000a}dialog header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}dialog header h2{margin:0}.lib{gap:6px;max-height:42dvh;margin-bottom:4px;display:grid;overflow:auto}.lib-row{gap:6px;display:flex}.lib-row .grow,.export button{text-align:left;gap:2px;padding:9px 11px;display:grid}.lib-row.on .grow{opacity:1;background:#3a2c0c;border-color:#6b5010}.lib-row small,.export small{color:var(--dim);font-size:12px}.export{gap:8px;display:grid}.share{margin-bottom:16px}.copy{gap:6px;display:flex}.copy input{background:var(--raise);border:1px solid var(--line);border-radius:6px;flex:1;min-width:0;padding:6px 8px;font-size:12px}.mobile-nav,.narrow-only{display:none}@media (max-width:860px){#app{grid-template:"top""stage"minmax(0,1fr)"sheet""nav"/minmax(0,1fr)}.topbar{flex-wrap:wrap;gap:6px;padding:6px 8px}.topbar button{padding:6px 8px;font-size:13px}.topbar .seg button{padding:6px 7px}.brand,.status,.spacer,.topbar .wide-only{display:none}.topbar .narrow-only{display:inline-block}.design-name{flex:100px;order:-3}.topbar .group{order:-2}.topbar .primary{order:-1}.panel.left,.panel.right{border:0;border-top:1px solid var(--line);grid-area:sheet;max-height:44dvh;display:none}#app[data-sheet=left] .panel.left,#app[data-sheet=right] .panel.right{display:block}.mobile-nav{background:var(--panel);border-top:1px solid var(--line);grid-area:nav;display:flex}.mobile-nav button{min-height:48px;color:var(--dim);background:0 0;border:0;border-radius:0;flex:1;font-size:14px}#app[data-sheet=left] .mobile-nav button[data-for=left],#app[data-sheet=right] .mobile-nav button[data-for=right]{color:var(--accent);font-weight:600}.panel button,.field input[type=text],.field select,.numbox input{min-height:40px}.panel .gel{min-height:0}.toast{bottom:64px}}@media (prefers-reduced-motion:reduce){.toast{transition:none}}
