:root{--bg:#161719;--bg-card:#1e1f23;--bg-well:#101113;--border:#33363f;--hairline:#ffffff12;--shadow:0 8px 28px #00000080;--text:#e6e7ea;--text-dim:#8f939e;--accent:#7aa2f7;--warning:#d9a132;--danger:#e05561;--sp-0:2px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--fs-micro:10px;--fs-small:11.5px;--fs-body:13px;--fs-title:15px;--r-sm:3px;--r-ctl:5px;--r-panel:10px;--r-pill:999px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}.app{flex-direction:column;min-height:100%;display:flex}.app-head{align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.app-head h1{font-size:var(--fs-title);letter-spacing:.02em;margin:0;font-weight:600}.layout{gap:var(--sp-5);padding:var(--sp-4);flex-direction:column;display:flex}.editor-pane,.bank-section{min-width:0}.bank-toggle{align-items:baseline;gap:var(--sp-3);text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;font-family:inherit;display:flex}.bank-toggle:hover .hint{color:var(--text)}.pane{background:var(--bg-card);border:1px solid var(--hairline);border-radius:var(--r-panel);padding:var(--sp-4);min-width:0}.toolbar{gap:var(--sp-2);padding-top:var(--sp-3);margin-top:var(--sp-3);border-top:1px solid var(--border);align-items:center}.rule{border-top:1px solid var(--border);padding-top:var(--sp-3)}.row{display:flex}.col{flex-direction:column;display:flex}.wrap{flex-wrap:wrap}.label-xs{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:var(--sp-2)}.hint{font-size:var(--fs-small);color:var(--text-dim)}.mono{font-family:var(--mono)}.flash{font-size:var(--fs-small);color:var(--accent)}.dirty{font-size:var(--fs-micro);color:var(--warning)}.btn,.btn-sm,.btn-xs{background:var(--bg);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--r-ctl);cursor:pointer;white-space:nowrap;font-family:inherit;transition:color .12s,border-color .12s,background .12s}.btn{font-size:var(--fs-body);padding:var(--sp-1) var(--sp-3)}.btn-sm{font-size:var(--fs-small);padding:var(--sp-0) var(--sp-2)}.btn-xs{font-size:var(--fs-micro);padding:var(--sp-0) var(--sp-2)}.btn:hover:not(:disabled),.btn-sm:hover:not(:disabled),.btn-xs:hover:not(:disabled){color:var(--text);border-color:var(--text-dim)}.btn:disabled,.btn-sm:disabled,.btn-xs:disabled{opacity:.4;cursor:default}.btn.is-on,.btn-sm.is-on,.btn-xs.is-on{background:var(--bg-card);border-color:var(--accent);color:var(--text)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#10131a;font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.1);color:#10131a;background:var(--accent);border-color:var(--accent)}.btn-xs.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:#e055611f}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.name-field,.rename{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctl);padding:var(--sp-1) var(--sp-2);font-family:inherit}.name-field{font-size:var(--fs-body);min-width:150px}.rename{font-size:var(--fs-small);flex:1;min-width:0}input[type=range],input[type=checkbox]{accent-color:var(--accent)}.slider-row{align-items:center;gap:var(--sp-2);font-size:var(--fs-small);color:var(--text-dim);display:flex}.prop-bar{max-width:420px;height:14px;margin-bottom:var(--sp-2);border-radius:var(--r-sm);display:flex;overflow:hidden}.chip{flex-direction:column;align-items:center;display:flex;position:relative}.chip-btn{background:var(--bg-card);border:1px solid var(--border);width:14px;height:14px;color:var(--text-dim);cursor:pointer;border-radius:50%;padding:0;font-family:inherit;font-size:9px;line-height:1;position:absolute;top:-5px}.chip-x{right:-5px}.chip-role{left:-5px}.chip-btn:hover{color:var(--text);border-color:var(--text-dim);background:var(--bg-card)}.sw{border-radius:var(--r-sm);border:1px solid var(--border);flex:none;width:14px;height:14px;display:inline-block}.pig-name{font-size:var(--fs-small);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pig-row{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-ctl);cursor:pointer;font-family:inherit;display:flex}.pig-row:hover{border-color:var(--text-dim)}.pig-row.is-sel{border-color:var(--accent)}.wheel-caption{font-size:var(--fs-small);color:var(--text-dim);max-width:400px;line-height:1.4}.controls{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-panel);background:var(--bg-well);flex-direction:column;display:flex}.ctl-row{gap:var(--sp-3);align-items:flex-start;display:flex}.ctl-label{width:84px;padding-top:var(--sp-1);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);flex:none}.btn-rule{font-family:inherit;font-size:var(--fs-small);padding:var(--sp-1) var(--sp-3);background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctl);cursor:pointer;white-space:nowrap;transition:color .12s,border-color .12s,background .12s}.btn-rule:hover{border-color:var(--text-dim)}.btn-rule.is-on{border-color:var(--accent);color:var(--text)}.view-switch{padding:var(--sp-0);gap:var(--sp-0);border-radius:var(--r-pill);background:var(--bg-well);align-self:flex-start;display:inline-flex}.view-btn{font-family:inherit;font-size:var(--fs-small);padding:var(--sp-1) var(--sp-3);color:var(--text-dim);border-radius:var(--r-pill);cursor:pointer;background:0 0;border:0;transition:background .12s,color .12s}.view-btn:hover{color:var(--text)}.view-btn.is-on{background:var(--accent);color:#10131a;font-weight:600}.pig-tip{z-index:20;pointer-events:none;gap:var(--sp-1);width:320px;max-height:152px;padding:var(--sp-2) var(--sp-3);background:var(--bg-card);border:1px solid var(--hairline);border-radius:var(--r-panel);box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;overflow:hidden}.tip-tie{border-top:1px solid var(--hairline);padding-top:var(--sp-1)}.explainer{font-size:var(--fs-small);color:var(--text-dim);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-panel);background:var(--bg-well);max-width:700px;line-height:1.5}.recipes{gap:var(--sp-0);margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-panel);background:var(--bg-well);flex-direction:column;display:flex}.recipe-row{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.recipe-tube{font-size:var(--fs-small);color:var(--text)}.recipe-derived{font-size:var(--fs-small);color:var(--text-dim);font-style:italic}.bank-card{gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-panel);background:var(--bg-well);border:1px solid #0000;flex-direction:column;display:flex}.bank-card.is-active{border-color:var(--accent)}.bank-bar{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:0 0;width:100%;height:26px;padding:0;display:flex;overflow:hidden}.bank-bar:hover{border-color:var(--text-dim)}.bank-bar span{display:block}.bank-name{font-family:inherit;font-size:var(--fs-small);color:var(--text);cursor:pointer;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;overflow:hidden}.bank-name:hover{color:var(--accent)}.palette-select{font-family:inherit;font-size:var(--fs-small);padding:var(--sp-1) var(--sp-2);background:var(--bg-card);min-width:190px;color:var(--text);border:1px solid var(--border);border-radius:var(--r-ctl);cursor:pointer}.palette-select:hover{border-color:var(--text-dim)}.ctl-note{font-size:var(--fs-small);color:var(--text-dim);max-width:760px;padding-left:96px;line-height:1.45}@media (width<=720px){.ctl-note{padding-left:0}}.remarks{gap:var(--sp-1);margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-panel);background:var(--bg-well);flex-direction:column;display:flex}.remarks-head{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:var(--sp-0)}.remark{font-size:var(--fs-small);color:var(--text-dim);padding-left:var(--sp-2);border-left:2px solid var(--border);line-height:1.45}.remark-advice{border-left-color:var(--warning);color:var(--text)}.remark-note{border-left-color:var(--accent)}.btn-commit{font-size:var(--fs-body);padding:var(--sp-2) var(--sp-4)}@keyframes palette-landed{0%{box-shadow:inset 3px 0 0 var(--accent)}to{box-shadow:inset 3px 0 #0000}}.palette-landed{animation:1.1s ease-out palette-landed}.achro{align-items:center;gap:var(--sp-1);display:inline-flex}.wheel-topline{align-items:center;gap:var(--sp-2);min-width:0;max-width:100%;display:flex}.placing-note{font-size:var(--fs-small);color:var(--accent);max-width:400px}.slider-row.is-disabled{opacity:.45}.slider-row.is-disabled input{cursor:default}.btn-shuffle{color:var(--text-dim)}.btn-shuffle:hover{color:var(--text)}.shop{margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-panel);background:var(--bg-well)}.shop-head{align-items:baseline;gap:var(--sp-3);text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;font-family:inherit;display:flex}.shop-head:hover .hint{color:var(--text)}.shop-row{gap:var(--sp-1);padding-left:var(--sp-2);border-left:2px solid var(--border);flex-direction:column;display:flex}.shop-brands{gap:var(--sp-0);flex-direction:column;display:flex}.shop-brand{color:var(--text);font-weight:500}.inspector{z-index:45;background:var(--bg-card);border:1px solid var(--hairline);border-radius:var(--r-panel);width:340px;max-width:92vw;max-height:70vh;box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;overflow:hidden}.inspector-head{align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--hairline);display:flex}.inspector-sw{border-radius:var(--r-ctl);width:28px;height:28px}.inspector-close{flex:none;margin-left:auto}.inspector-body{gap:var(--sp-1);padding:var(--sp-3);flex-direction:column;display:flex;overflow-y:auto}.inspector-rule{background:var(--hairline);height:1px;margin:var(--sp-2) 0}.inspector-note{font-size:var(--fs-small);color:var(--text);line-height:1.5}.inspector-link{color:var(--accent);text-decoration:none}.inspector-link:hover{text-decoration:underline}.inspector-actions{gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--hairline);display:flex}.paint-menu{z-index:40;min-width:210px;padding:var(--sp-1);background:var(--bg-card);border:1px solid var(--hairline);border-radius:var(--r-panel);box-shadow:var(--shadow);flex-direction:column;gap:1px;display:flex;position:fixed}.paint-menu-head{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-2);border-bottom:1px solid var(--hairline);margin-bottom:var(--sp-1);display:flex}.paint-menu-item{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);font-family:inherit;font-size:var(--fs-small);text-align:left;color:var(--text);border-radius:var(--r-ctl);cursor:pointer;white-space:nowrap;background:0 0;border:0;display:flex}.paint-menu-item:hover:not(:disabled){background:var(--bg-well)}.paint-menu-item:disabled{cursor:default;opacity:.55}.paint-menu-why{margin-left:auto;font-style:italic}.paint-menu-rule{background:var(--hairline);height:1px;margin:var(--sp-1) 0}.paintbox-pop{gap:var(--sp-2);width:330px;max-width:90vw;padding:var(--sp-3)}.paintbox-head{align-items:center;gap:var(--sp-2);display:flex}.paintbox-head .btn-xs{margin-left:auto}.paintbox-list{gap:var(--sp-1);max-height:46vh;padding-right:var(--sp-1);flex-direction:column;display:flex;overflow-y:auto}.paintbox-list .pig-row{cursor:pointer}.find{display:inline-flex;position:relative}.find-pop{z-index:30;top:calc(100% + var(--sp-1));min-width:260px;max-width:340px;padding:var(--sp-1);background:var(--bg-card);border:1px solid var(--hairline);border-radius:var(--r-panel);box-shadow:var(--shadow);flex-direction:column;gap:1px;display:flex;position:absolute;left:0}.wheel-holder{flex:none;position:relative}@keyframes find-pulse{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}15%{opacity:1}70%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.find-ring{pointer-events:none;border:2px solid #fff;border-radius:50%;width:34px;height:34px;margin:0;animation:.85s ease-out 3 forwards find-pulse;position:absolute;box-shadow:0 0 0 2px #0000008c,0 0 10px #0009}.wheel-sliders{gap:var(--sp-1);flex-direction:column;width:100%;max-width:400px;display:flex}.wheel-sliders .slider-row{gap:var(--sp-2)}.slider-name{flex:none;width:74px}.slider-val{text-align:right;font-variant-numeric:tabular-nums;flex:none;width:34px}.filters{gap:var(--sp-3);flex:1;align-items:stretch;min-width:0}.filter{gap:var(--sp-1);min-width:0;max-width:300px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-ctl);cursor:pointer;border:1px solid #0000;flex-direction:column;flex:200px;transition:background .12s,border-color .12s;display:flex}.filter:hover{background:var(--bg-card);border-color:var(--border)}.filter-head{align-items:center;gap:var(--sp-2);font-size:var(--fs-body);color:var(--text);display:flex}.filter-head .hint{margin-left:auto}.filter-desc{font-size:var(--fs-small);color:var(--text-dim);line-height:1.4}.empty{align-items:center;gap:var(--sp-2);padding:var(--sp-5) var(--sp-4);border-radius:var(--r-panel);background:var(--bg-well);text-align:center;flex-direction:column;display:flex}.empty svg{color:var(--text-dim);opacity:.55}.empty-line{font-size:var(--fs-small);color:var(--text-dim);max-width:320px}.empty-line strong{color:var(--text);font-weight:600}input[type=range]{appearance:none;cursor:pointer;background:0 0;height:16px}input[type=range]::-webkit-slider-runnable-track{border-radius:var(--r-pill);background:var(--border);height:4px}input[type=range]::-moz-range-track{border-radius:var(--r-pill);background:var(--border);height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--text-dim);border:0;border-radius:50%;width:12px;height:12px;margin-top:-4px;transition:background .12s}input[type=range]::-moz-range-thumb{background:var(--text-dim);border:0;border-radius:50%;width:12px;height:12px}input[type=range]:hover::-webkit-slider-thumb{background:var(--text)}input[type=range]:hover::-moz-range-thumb{background:var(--text)}input[type=range]:disabled{cursor:default}@media (pointer:coarse){input[type=range]{touch-action:pan-y;height:44px}input[type=range]::-webkit-slider-runnable-track{height:6px}input[type=range]::-webkit-slider-thumb{background:var(--text);width:28px;height:28px;margin-top:-11px;box-shadow:0 1px 4px #00000080}input[type=range]::-moz-range-thumb{background:var(--text);width:28px;height:28px}}.tag{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.04em;padding:0 var(--sp-2);border-radius:var(--r-pill);white-space:nowrap;flex:none}.tag-tube{color:var(--accent);background:#7aa2f729}.tag-mixed{color:var(--text-dim);background:#8f939e29}.pbn{gap:var(--sp-3);flex-direction:column;display:flex}.pbn-head{align-items:center;gap:var(--sp-3);display:flex}.pbn-title{margin:0}.pbn-drop{border:1px dashed var(--border);transition:border-color .12s,background .12s}.pbn-drop.is-over{border-color:var(--accent);background:#7aa2f714}.pbn-failed{color:var(--danger)}.pbn-controls{gap:var(--sp-4);align-items:center}.pbn-slider{min-width:260px}.pbn-slider input{flex:1}.pbn-outline{font-size:var(--fs-small);cursor:pointer}.pbn-pair{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;display:grid}.pbn-view{object-fit:contain;border-radius:var(--r-ctl);border:1px solid var(--border);background:#fff;width:100%;height:auto;max-height:640px}.pbn-caption{max-width:720px}.pbn-actions{gap:var(--sp-3);align-items:center}.save-set{gap:var(--sp-1);flex-direction:column;max-width:340px;display:flex}.save-set .hint{line-height:1.35}.pbn-fig{gap:var(--sp-1);flex-direction:column;margin:0;display:flex}.pbn-figbar{gap:var(--sp-2);align-items:center}.pbn-recipes{gap:var(--sp-2);flex-direction:column;max-width:980px;display:flex}.pbn-recipes-head{gap:var(--sp-3);align-items:center}.pbn-need{align-items:center;gap:var(--sp-1) var(--sp-3);padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--bg);flex-wrap:wrap;display:flex}.pbn-need-title{font-weight:600}.pbn-need-paint{cursor:context-menu;align-items:center;gap:6px;display:inline-flex}.pbn-sw-sm{width:16px;height:16px}.pbn-legend{border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--bg);flex-direction:column;display:flex}.pbn-row{align-items:center;gap:var(--sp-3);padding:5px var(--sp-2);border-top:1px solid var(--border);grid-template-columns:36px 28px minmax(0,1fr);display:grid}.pbn-row:first-child{border-top:0}.pbn-row:hover{background:#ffffff08}.pbn-num{font-size:var(--fs-body);text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.pbn-sw{width:24px;height:24px}.pbn-recipe{font-size:var(--fs-body)}.pbn-note{font-style:italic}.pbn-legend.has-labels .pbn-row{grid-template-columns:36px 28px minmax(0,200px) minmax(0,1fr)}.pbn-label{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.pbn-palname{font-weight:600}.pal-strip{flex-wrap:wrap;gap:2px;display:flex}.pal-strip-sw{border:1px solid var(--border);border-radius:3px;width:22px;height:22px}.pbn-outline.is-disabled{opacity:.45;cursor:default}.wheel-desk{gap:var(--sp-5);align-items:flex-start}.wheel-side{gap:var(--sp-4);flex:1;min-width:300px}[hidden]{display:none!important}.sheet-layer{z-index:100;position:fixed;inset:0}.sheet-back{background:#00000073;animation:.2s ease-out sheet-fade;position:absolute;inset:0}.sheet{max-height:88vh;padding-bottom:env(safe-area-inset-bottom);background:#1c1c1e;border-radius:14px 14px 0 0;flex-direction:column;transition:transform .2s;animation:.28s cubic-bezier(.2,.8,.2,1) sheet-up;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #00000080}.sheet-top{touch-action:none;cursor:grab;flex:none;padding:6px 16px 10px}.sheet-grabber{background:#5a5a5e;border-radius:3px;width:36px;height:5px;margin:0 auto 8px;display:block}.sheet-head{align-items:center;gap:12px;min-height:32px;display:flex}.sheet-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:17px;font-weight:600;overflow:hidden}.sheet-done{cursor:pointer;color:var(--accent);background:0 0;border:0;flex:none;padding:6px 0 6px 12px;font-family:inherit;font-size:17px;font-weight:600}.sheet-body{overscroll-behavior:contain;padding:0 16px 20px;overflow-y:auto}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-fade{0%{opacity:0}}.sheet-list,.group{background:#2c2c2e;border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.sheet-row,.sheet-list .paint-menu-item,.group-row{width:100%;min-height:48px;color:var(--text);text-align:left;background:0 0;border:0;border-top:.5px solid #ffffff1a;border-radius:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-family:inherit;font-size:16px;display:flex}.sheet-row:first-child,.sheet-list .paint-menu-item:first-child,.group-row:first-child{border-top:0}.sheet-row,.sheet-list .paint-menu-item,.group-btn{cursor:pointer}.sheet-row:active,.sheet-list .paint-menu-item:active:not(:disabled),.group-btn:active{background:#ffffff0f}.sheet-list .paint-menu-item{justify-content:flex-start}.sheet-list .paint-menu-rule{background:#1c1c1e;height:8px;margin:0}.sheet-title .paint-menu-head{border:0;padding:0}.group-label{text-transform:uppercase;letter-spacing:.02em;color:var(--text-dim);margin:22px 16px 6px;font-size:13px}.group-label:first-child{margin-top:4px}.group-note{color:var(--text-dim);margin:6px 16px 0;font-size:13px;line-height:1.4}.group-stack{flex-direction:column;align-items:stretch;gap:6px}.group-stack .view-switch{align-self:stretch}.group-switch{cursor:pointer}.explainer-row{color:var(--text-dim);font-size:14px;line-height:1.45;display:block}.group .palette-select{appearance:none;width:100%;min-height:32px;color:var(--text);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238e8e93' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 100% no-repeat;border:0;padding:0 22px 0 0;font-size:16px}.inspector-sheet .inspector-body{max-height:none;padding:0}.inspector-sheet .inspector-actions{border:0;padding:12px 0 0}.paintbox-sheet{gap:10px}.paintbox-sheet .paintbox-list{max-height:none;padding:0;overflow:visible}input.switch{appearance:none;cursor:pointer;background:#39393d;border-radius:16px;flex:none;width:51px;height:31px;margin:0;transition:background .2s;position:relative}input.switch:before{content:"";background:#fff;border-radius:50%;width:27px;height:27px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0000004d}input.switch:checked{background:#30d158}input.switch:checked:before{transform:translate(20px)}@media (width<=720px){:root{--bg:#000;--bg-card:#1c1c1e;--bg-well:#1c1c1e;--border:#3a3a3c;--fs-micro:12px;--fs-small:13px;--fs-body:16px;--fs-title:17px;--r-ctl:10px;--r-panel:12px}html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{-webkit-tap-highlight-color:transparent;padding-top:0;padding-bottom:0}button,label,.tab{-webkit-user-select:none;user-select:none}.app-head{z-index:40;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background:#000000d1;border-bottom:.5px solid #ffffff1f;justify-content:center;position:sticky;top:0}.app-head h1{letter-spacing:0;font-size:17px}.layout{padding:16px 16px calc(84px + env(safe-area-inset-bottom));gap:28px}.pane{background:0 0;border:0;padding:0}.rule{border-top:0;padding-top:0}.btn,.btn-sm,.btn-xs{min-height:40px;color:var(--text);background:#2c2c2e;border:0;border-radius:10px;padding:0 14px;font-size:15px;font-weight:500}.btn-xs{min-height:32px;padding:0 10px;font-size:13px}.btn{border-radius:12px;min-height:50px;font-size:17px;font-weight:600}.btn-primary{background:var(--accent);color:#0b1020}.btn.is-on,.btn-sm.is-on,.btn-xs.is-on{box-shadow:inset 0 0 0 1.5px var(--accent);background:#3a3a3c}.btn:active:not(:disabled),.btn-sm:active:not(:disabled),.btn-xs:active:not(:disabled){filter:brightness(1.3)}.name-field,.rename,.palette-select{min-height:40px;font-size:16px}.view-switch{background:#7676803d;border-radius:9px;flex-wrap:nowrap;gap:0;padding:2px}.view-btn{min-height:32px;color:var(--text);border-radius:7px;flex:1;padding:0 10px;font-size:13px;font-weight:500}.view-btn.is-on{color:#fff;background:#636366;font-weight:600;box-shadow:0 2px 6px #0000004d}.ctl-row{gap:var(--sp-1);flex-direction:column}.ctl-label{width:auto;padding-top:0}.ctl-row>*,.palette-select{min-width:0;max-width:100%}.wheel-screen{gap:14px}.wheel-bar{align-items:center;gap:8px;min-height:36px;display:flex}.wheel-bar-status{flex:1;align-items:center;gap:8px;min-width:0}.round-btn.wheel-settings{position:absolute;top:0;right:0}.wheel-screen .wheel-holder{align-self:center}.node-btns{pointer-events:none;justify-content:space-between;display:flex;position:absolute;bottom:0;left:0;right:0}.round-btn{pointer-events:auto;width:42px;height:42px;color:var(--text);cursor:pointer;background:#2c2c2ef0;border:0;border-radius:50%;place-items:center;padding:0;font-family:inherit;font-size:26px;line-height:1;display:grid;box-shadow:0 2px 8px #00000073}.round-btn.is-on{background:var(--accent);color:#0b1020}.round-btn:disabled{opacity:.35}.scheme-strip{scrollbar-width:none;gap:8px;margin:0 -16px;padding:2px 16px;display:flex;overflow-x:auto}.scheme-strip::-webkit-scrollbar{display:none}.scheme-strip .btn-rule{min-height:36px;color:var(--text);background:#2c2c2e;border:0;border-radius:18px;flex:none;padding:0 14px;font-size:15px}.scheme-strip .btn-rule.is-on{background:var(--accent);color:#0b1020;font-weight:600}.wheel-screen .wheel-sliders{background:#1c1c1e;border-radius:12px;gap:0;max-width:none;padding:2px 14px}.wheel-screen .slider-name{width:82px;color:var(--text);font-size:15px}.wheel-screen .slider-val{width:40px;font-size:15px}.sel-strip{scrollbar-width:none;gap:10px;margin:0 -16px;padding:4px 16px;display:flex;overflow-x:auto}.sel-strip::-webkit-scrollbar{display:none}.sel-chip{width:74px;color:var(--text);cursor:pointer;-webkit-touch-callout:none;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:6px;padding:0;font-family:inherit;display:flex}.sel-sw{border-radius:50%;width:52px;height:52px;box-shadow:inset 0 0 0 1px #ffffff26}.sel-chip.is-sel .sel-sw{box-shadow:0 0 0 3px #000, 0 0 0 5px var(--accent)}.sel-name{text-align:center;color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.25;display:-webkit-box;overflow:hidden}.sel-chip.is-sel .sel-name{color:var(--text)}.wheel-screen .btn-commit{width:100%}.wheel-caption{max-width:none}.edit-bar{z-index:45;left:8px;right:8px;bottom:calc(58px + env(safe-area-inset-bottom));box-shadow:var(--shadow);background:#2c2c2ef7;border-radius:14px;align-items:center;gap:8px;padding:8px 8px 8px 14px;display:flex;position:fixed}.edit-bar-text{flex:1;min-width:0;font-size:14px}.edit-bar .btn{min-height:40px;font-size:15px}.edit-bar .btn-sm{background:#3a3a3c}.pbn{gap:16px}.pbn-head{flex-wrap:wrap;gap:8px}.pbn-title,.palette-section>.row:first-child>.label-xs{text-transform:none;letter-spacing:0;color:var(--text);flex-basis:100%;font-size:28px;font-weight:700;line-height:1.2}.palette-section>.row:first-child{flex-wrap:wrap}.pbn-drop{background:#1c1c1e;border:0;border-radius:14px;padding:28px 20px}.pbn-drop .empty-line{max-width:none;font-size:15px}.pbn-pick{flex-direction:column;align-self:stretch}.pbn-pick .btn{width:100%}.pbn-slider{min-width:100%}.pbn-controls{gap:12px}.pbn-actions{flex-direction:column;align-items:stretch}.pbn-actions>.btn,.pbn-actions>.btn-sm,.save-set .btn{width:100%}.save-set{max-width:none}.save-set .hint{text-align:center}.pbn-actions .view-switch,.pbn-recipes-head .view-switch,.pbn>.view-switch{align-self:stretch}.pbn-recipes-head{flex-direction:column;align-items:stretch;gap:8px}.pbn-outline{color:var(--text);align-items:center;gap:10px;font-size:15px;display:inline-flex}.pbn-need{background:#1c1c1e;border:0;border-radius:12px}.pbn-legend.has-labels .pbn-row{grid-template-columns:36px 28px minmax(0,1fr);row-gap:0}.pbn-legend.has-labels .pbn-recipe{grid-column:3}.pbn-legend{background:#1c1c1e;border:0;border-radius:12px}.toolbar .name-field{flex:100%;min-width:0}.toolbar .btn{flex:1}.chip>div:first-child{border-radius:8px!important;width:44px!important;height:44px!important}.chip-btn{width:22px;height:22px;font-size:12px;top:-8px}.chip-x{right:-8px}.chip-role{left:-8px}.pal-strip-sw{border-radius:6px;width:30px;height:30px}.recipes,.shop,.remarks{border-radius:12px}.prop-bar{border-radius:6px;max-width:none;height:22px}.bank-card{background:#1c1c1e;border:0;border-radius:12px}.toast{z-index:60;left:50%;bottom:calc(66px + env(safe-area-inset-bottom));color:#fff;white-space:nowrap;box-shadow:var(--shadow);background:#3a3a3cf7;border-radius:20px;padding:10px 16px;font-size:14px;animation:.2s ease-out toast-in;position:fixed;transform:translate(-50%)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.tabbar{z-index:50;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background:#161618db;border-top:.5px solid #ffffff1f;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:#8e8e93;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;min-height:50px;padding:6px 0 4px;font-family:inherit;font-size:10px;font-weight:500;display:flex}.tab.is-on{color:var(--accent)}.tab-icon{height:26px;display:block;position:relative}.tab-badge{text-align:center;color:#fff;background:#ff453a;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:18px;position:absolute;top:-3px;left:17px}.pbn-row,.pbn-need-paint,.pig-row,.wheel-holder canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.touch-hint{display:none}@media (hover:none){.touch-hint{display:block}}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
