/* DsfX unified */
:root{--container-max:1200px;--radius-lg:12px;--primary-grad:linear-gradient(135deg,#667eea 0%,#764ba2 100%);--shadow-card:0 4px 20px rgba(0,0,0,.08)}
body{background:#fff;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
.container{max-width:var(--container-max);margin:0 auto;padding:2rem}
header{text-align:center;margin-bottom:3rem;padding:2rem 0;background:var(--primary-grad);color:#fff;border-radius:var(--radius-lg);box-shadow:0 4px 20px rgba(102,126,234,.3)}
header h1{font-size:2.25rem;margin-bottom:.5rem;font-weight:700}
header p{font-size:1.05rem;opacity:.9;font-weight:300}
.tool-card{background:#fff;border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-card);border:1px solid #e2e8f0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-card)}
.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.file-label{background:var(--primary-grad);color:#fff;padding:.7rem 1.2rem;border-radius:var(--radius-lg);cursor:pointer;font-weight:600;display:inline-flex;gap:.5rem;align-items:center}
.file-label input{display:none}
.clear-btn,.copy-btn{border:none;border-radius:8px;padding:.6rem 1rem;cursor:pointer;font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:.5rem;color:#fff}
.clear-btn{background:#e53e3e}
.copy-btn{background:linear-gradient(135deg,#3182ce 0%,#2c5282 100%)}
.link-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1rem;border-radius:8px;border:1px solid #e2e8f0;color:#2d3748;text-decoration:none;background:#fff}
.canvas{max-width:100%;border:1px solid #e2e8f0;border-radius:8px;margin-top:.5rem}
.preview{border:1px dashed #e2e8f0;border-radius:8px;min-height:120px;display:flex;align-items:center;justify-content:center;color:#6b7280;margin-top:.5rem}
.video{width:100%;border:1px solid #e2e8f0;border-radius:8px;background:#000;margin-top:.5rem}
.note{color:#6b7280;font-size:.9rem;margin-top:.5rem}
textarea{width:100%;box-sizing:border-box;padding:1rem;border:2px solid #e2e8f0;border-radius:8px;font-family:ui-monospace,monospace;background:#f8fafc}
textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1);background:#fff}
.output-section{background:#fff;border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-card);margin-top:1rem;border:1px solid #e2e8f0}
button{padding:.75rem 1.1rem;border:none;border-radius:var(--radius-lg);background:var(--primary-grad);color:#fff;cursor:pointer;font-weight:600}
button:hover{filter:brightness(1.03);transform:translateY(-1px)}
