:root{color:#0f172a;background:#f8fafc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.4}*{box-sizing:border-box}body{margin:0}#app{min-height:100vh;padding:20px}.layout{grid-template-columns:minmax(320px,420px) 1fr;gap:16px;display:grid}.panel,.preview-section{background:#fff;border:1px solid #dbe3ef;border-radius:12px;padding:16px}h1{margin:0;font-size:24px}.subtitle{color:#475569;margin-top:8px}.form-grid{gap:10px;margin-top:12px;display:grid}label{gap:6px;font-size:14px;display:grid}input,select,button{font:inherit}input[type=number],select{border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px}input[type=range]{width:100%}input:disabled{opacity:.5}.inline{align-items:center;gap:8px;display:flex}.slider-field{gap:4px;display:grid}.slider-value{color:#475569;justify-self:end;font-size:12px}.controls{gap:10px;margin-top:14px;display:grid}.zoom{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.zoom input{grid-column:1/2}.zoom span{grid-column:2/3}button{color:#fff;cursor:pointer;background:#1d4ed8;border:1px solid #1d4ed8;border-radius:8px;padding:8px 12px}button:hover{filter:brightness(.96)}.result{background:#eff6ff;border:1px dashed #bfdbfe;border-radius:8px;gap:4px;margin-top:14px;padding:10px;display:grid}.hint{color:#334155;margin-top:10px;font-size:13px}.preview-section{min-height:70vh;display:flex}.preview-stage{background-color:#0000;background-image:linear-gradient(90deg,#e2e8f0 1px,#0000 1px),linear-gradient(#e2e8f0 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;flex:1;justify-content:center;align-items:center;padding:10px;display:flex;overflow:auto}.preview-stage svg{background:#fff;box-shadow:0 10px 30px #0f172a29}.empty-state{color:#64748b;background:#f8fafc;border:1px dashed #94a3b8;border-radius:10px;place-items:center;width:220px;height:140px;display:grid}@media (width<=1100px){.layout{grid-template-columns:1fr}}
