.dm-layout{display:grid;grid-template-columns:290px 1fr;gap:24px;margin-top:20px;align-items:start;}
@media(max-width:820px){.dm-layout{grid-template-columns:1fr;}.dm-preview-col{order:-1;}}
.dm-upload{border:2px dashed var(--border-strong);border-radius:var(--r-xl);padding:28px 16px;text-align:center;cursor:pointer;transition:border-color var(--t),background var(--t);background:var(--bg-elevated);user-select:none;}
.dm-upload:hover,.dm-upload.drag{border-color:var(--accent);background:var(--accent-dim);}
.dm-upload__icon{font-size:2rem;margin-bottom:6px;}
.dm-upload__text{font-size:.88rem;color:var(--text-secondary);font-weight:500;}
.dm-upload__hint{font-size:.76rem;color:var(--text-muted);margin-top:3px;}
.dm-section{margin-top:18px;}
.dm-section__label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:9px;}
.dm-devices{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.dm-dev-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 6px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:all var(--t);font-size:.77rem;color:var(--text-secondary);font-family:inherit;}
.dm-dev-btn:hover{border-color:var(--accent-border);color:var(--text-primary);}
.dm-dev-btn.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:700;}
.dm-dev-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;}
.dm-bgs{display:flex;flex-wrap:wrap;gap:6px;}
.dm-bg-swatch{width:30px;height:30px;border-radius:7px;cursor:pointer;border:2px solid transparent;transition:all var(--t);flex-shrink:0;}
.dm-bg-swatch.active{border-color:var(--accent);transform:scale(1.18);}
.dm-bg-custom{display:flex;align-items:center;gap:8px;margin-top:8px;}
.dm-bg-custom input[type=color]{width:30px;height:30px;border-radius:6px;border:1px solid var(--border);padding:1px;cursor:pointer;background:none;}
.dm-bg-custom label{font-size:.8rem;color:var(--text-muted);cursor:pointer;}
.dm-canvas-wrap{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);display:flex;align-items:center;justify-content:center;padding:20px;min-height:420px;}
#dm-canvas{max-width:100%;max-height:600px;border-radius:6px;display:none;}
.dm-empty{color:var(--text-muted);text-align:center;padding:40px 20px;}
.dm-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}