:root{color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font:14px/1.45 system-ui,sans-serif;background:#15171c;color:#e6e8ec}#app{display:grid;grid-template-columns:340px 1fr;height:100vh}#panel{padding:18px;overflow-y:auto;border-right:1px solid #2a2e36}#viewport{position:relative;min-width:0}canvas{display:block}h1{font-size:17px;margin:0 0 4px}.sub{color:#97a0ad;font-size:12px;margin:0 0 8px}.step{border-top:1px solid #2a2e36;padding:14px 0 4px}.step h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#c2c8d0;margin:0 0 10px;display:flex;align-items:center;gap:8px}.num{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#3b82f6;color:#fff;font-size:12px}label{display:block;margin:6px 0;color:#c2c8d0;font-size:12px}select,input[type=number]{width:100%;margin-top:4px;padding:7px;background:#1d2128;color:#e6e8ec;border:1px solid #353b45;border-radius:6px}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}.check{display:flex;align-items:center;gap:6px}.check input{width:auto;margin:0}.filebtn{position:relative;display:block;padding:10px;text-align:center;background:#2a2e36;border:1px dashed #4b5563;border-radius:8px;cursor:pointer}.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}.opt{color:#7d8794;font-weight:400;text-transform:none;letter-spacing:0}.filebtn.small{padding:7px;font-size:12px}.sliders{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;margin:8px 0}.sliders label{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:6px;margin:2px 0;font-size:11px}.sliders input[type=range]{width:100%}.hint{color:#7d8794;font-size:11px;margin:8px 0 0}.hint a{color:#7fa7d4}code{background:#1a1d23;padding:1px 4px;border-radius:4px;font-size:11px}button{width:100%;padding:10px;margin-top:8px;border:0;border-radius:6px;cursor:pointer;font-weight:600}button.primary{background:#3b82f6;color:#fff}button.secondary{background:#2a2e36;color:#e6e8ec}button:disabled{opacity:.45;cursor:not-allowed}.poses{display:grid;grid-template-columns:1fr 1fr;gap:8px}.poses button{margin:0;background:#1d2128;border:1px solid #353b45;color:#e6e8ec;font-weight:500}.poses button.active{border-color:#3b82f6;background:#24314a}.poses button:disabled{opacity:.4}.stats{font-family:ui-monospace,monospace;font-size:11px;color:#9ad48f;margin-top:8px;white-space:pre-wrap}.advanced,.howto{margin-top:12px;font-size:12px;color:#aeb6c0}.advanced summary,.howto summary{cursor:pointer;color:#97a0ad}.howto ul{margin:8px 0 0;padding-left:18px}.howto li{margin:4px 0}.status{margin-top:14px;padding:10px;background:#1a1d23;border-radius:6px;font-family:ui-monospace,monospace;font-size:11px;color:#9fb3c8;white-space:pre-wrap;min-height:40px}
