*{box-sizing:border-box}
body{margin:0;font:14px system-ui,Arial,sans-serif;background:#1b1d21;color:#e6e6e6}
.app{display:flex;min-height:100vh}
.panel{width:290px;padding:16px;background:#25282e;display:flex;flex-direction:column;gap:12px;flex-shrink:0;overflow-y:auto;max-height:100vh;position:sticky;top:0}
h1{margin:0;font-size:18px}
.hint{margin:0;color:#9aa0a8;font-size:12px;line-height:1.4}
label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#b8bec7}
input[type=text],input:not([type]){padding:7px;border:1px solid #3b4049;border-radius:6px;background:#1b1d21;color:#fff}
input[type=color]{width:100%;height:30px;border:none;background:none;padding:0}
.row{display:flex;gap:8px}.row label{flex:1}
label.chk{flex-direction:row;align-items:center;gap:8px}
button{flex:1;padding:8px;border:0;border-radius:6px;background:#0a78d1;color:#fff;cursor:pointer}
button:hover{background:#1b8ae6}
.stage{flex:1;overflow:auto;height:100vh;padding:12px;text-align:center}
canvas{width:100%;height:auto;touch-action:none;cursor:crosshair;background:#000}
@media(max-width:800px){.app{flex-direction:column}.panel{width:100%;max-height:none;position:static}.stage{height:auto}}
