#ds-app{--bd: var(--border-strong);margin-top:.5rem}.ds-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.5rem;border:1px solid var(--bd);border-radius:var(--radius-md);background:var(--surface);margin-bottom:.75rem}.ds-tb-group{display:flex;gap:.35rem;align-items:center}.ds-tb-right{margin-left:auto}.ds-tb-btn{display:inline-flex;align-items:center;gap:.35rem;font:inherit;font-size:.84rem;font-weight:600;color:var(--text);background:var(--bg);border:1px solid var(--bd);border-radius:var(--radius-sm);padding:.42rem .7rem;cursor:pointer;white-space:nowrap}.ds-tb-btn:hover{background:var(--surface-hover)}.ds-tb-btn:disabled{opacity:.45;cursor:not-allowed}.ds-tb-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.ds-tb-primary:hover:not(:disabled){background:var(--accent-hover)}.ds-main{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}.ds-stage{position:relative;display:flex;align-items:center;justify-content:center;background:#0c0c0f;border:1px solid var(--bd);border-radius:var(--radius-md);overflow:hidden;min-height:340px;aspect-ratio:3/2}#ds-canvas{max-width:100%;max-height:64vh;object-fit:contain;display:block;cursor:crosshair}.ds-badge{position:absolute;top:.5rem;left:.5rem;font-family:var(--font-mono);font-size:.7rem;color:var(--text);background:color-mix(in srgb,var(--bg) 80%,transparent);border:1px solid var(--bd);border-radius:var(--radius-pill);padding:.18rem .55rem;pointer-events:none}.ds-hint{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);font-size:.72rem;color:var(--text-muted);background:color-mix(in srgb,var(--bg) 80%,transparent);border:1px solid var(--bd);border-radius:var(--radius-pill);padding:.16rem .6rem;pointer-events:none}.ds-stage-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;padding:1.5rem;background:color-mix(in srgb,var(--bg) 88%,transparent)}.ds-stage-empty.ds-hide{display:none}.ds-se-ic{color:var(--accent-text)}.ds-se-ic svg{width:44px;height:44px}.ds-se-title{font-weight:700;font-size:1.05rem}.ds-se-sub{font-size:.84rem;color:var(--text-muted);max-width:32ch}.ds-se-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:.4rem}.ds-busy{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;gap:.3rem;padding:.7rem .9rem;background:color-mix(in srgb,var(--bg) 92%,transparent);border-top:1px solid var(--bd)}.ds-busy-bar{height:7px;border-radius:4px;background:var(--surface);overflow:hidden}.ds-busy-bar i{display:block;height:100%;width:0%;background:var(--accent);transition:width .15s var(--ease)}.ds-busy span{font-size:.76rem;color:var(--text-secondary);font-family:var(--font-mono)}.ds-rail{display:flex;flex-direction:column;gap:.6rem}.ds-card{border:1px solid var(--bd);border-radius:var(--radius-md);background:var(--surface);padding:.7rem .75rem .8rem}.ds-card-h{font-weight:600;font-size:.84rem;margin-bottom:.55rem}.ds-ctl{display:flex;flex-direction:column;gap:.25rem;font-size:.76rem;color:var(--text-muted);margin-top:.5rem}.ds-ctl output{font-family:var(--font-mono);font-size:.72rem;color:var(--text)}.ds-ctl input[type=range]{width:100%}.ds-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.78rem;color:var(--text-muted);margin-top:.5rem}.ds-row input[type=color]{width:42px;height:26px;padding:0;border:1px solid var(--bd);border-radius:var(--radius-sm);background:none;cursor:pointer}.ds-seg{display:inline-flex;border:1px solid var(--bd);border-radius:var(--radius-sm);overflow:hidden}.ds-seg-wrap{flex-wrap:wrap;display:flex}.ds-seg-mode{flex-wrap:wrap}.ds-seg button{flex:1;font:inherit;font-size:.76rem;font-weight:600;color:var(--text-muted);background:var(--bg);border:none;border-right:1px solid var(--bd);padding:.42rem .55rem;cursor:pointer;white-space:nowrap}.ds-seg button:last-child{border-right:none}.ds-seg button[aria-pressed=true]{background:var(--accent);color:#fff}.ds-note{font-size:.74rem;color:var(--text-muted);line-height:1.5;margin:.55rem 0 0}.ds-privacy{display:flex;gap:.5rem;align-items:flex-start}.ds-privacy svg,.ds-priv-line svg{width:17px;height:17px;flex:none;color:var(--accent-text);margin-top:1px}.ds-light{position:relative;width:100%;aspect-ratio:1;max-width:120px;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 50% 50%,#2a2a30,#15151a);border:1px solid var(--bd);cursor:crosshair}.ds-light-dot{position:absolute;width:14px;height:14px;border-radius:50%;background:#ffe9b0;box-shadow:0 0 10px #ffd166;transform:translate(-50%,-50%);left:75%;top:30%;pointer-events:none}.ds-pp-row{display:flex;align-items:center;gap:.6rem;margin-top:.6rem;flex-wrap:wrap}.ds-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c}.ds-modal-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--bd);border-radius:var(--radius-lg);box-shadow:0 18px 60px #0006;display:flex;flex-direction:column;max-height:92vh}.ds-modal-head{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-bottom:1px solid var(--bd)}.ds-modal-head h3{margin:0;font-size:1.02rem}.ds-modal-x{background:none;border:none;font-size:1rem;color:var(--text-muted);cursor:pointer}.ds-modal-body{padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem}.ds-priv-line{display:flex;gap:.45rem;align-items:flex-start;font-size:.76rem;color:var(--text-muted);margin:.2rem 0 0}.ds-export-progress{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem}.ds-export-progress span{font-family:var(--font-mono);font-size:.74rem;color:var(--text-muted)}.ds-result{display:flex;flex-direction:column;gap:.5rem;align-items:center;text-align:center;margin-top:.5rem}.ds-result img,.ds-result video{max-width:100%;max-height:200px;border-radius:var(--radius-sm);border:1px solid var(--bd)}.ds-result-ok{color:var(--accent-text);font-weight:600;font-size:.82rem}.ds-result-meta{font-family:var(--font-mono);font-size:.78rem;color:var(--text)}.ds-modal-foot{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1rem;border-top:1px solid var(--bd)}@media(max-width:820px){.ds-main{grid-template-columns:1fr}.ds-rail{order:3}#ds-canvas{max-height:50vh}}
