:root{--bg:#0b0f19;--panel:#111827;--panel2:#0f172a;--text:#e5e7eb;--muted:#94a3b8;--border:#243041;--accent:#4f46e5;--danger:#ef4444;--ok:#10b981}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial}button,input,select{font:inherit}.app{grid-template-columns:280px 1fr 320px;height:100vh;display:grid}.panel{border-right:1px solid var(--border);background:var(--panel);padding:12px;overflow:auto}.panel.right{border-right:none;border-left:1px solid var(--border)}.h1{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:4px 0 10px;font-size:14px}.section{background:var(--panel2);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:10px}.row{align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.small{color:var(--muted);font-size:12px}.btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#0b1220;border-radius:10px;padding:8px 10px}.btn:hover{border-color:#334155}.btn.primary{background:var(--accent);border-color:#0000}.btn.danger{color:#fecaca;background:#2a0b14;border-color:#3b0a12}.input{border:1px solid var(--border);width:100%;color:var(--text);background:#0b1220;border-radius:10px;padding:8px 10px}.label{color:var(--muted);margin:6px 0;font-size:12px}.list{flex-direction:column;gap:8px;display:flex}.center{position:relative;overflow:auto}.stageWrap{min-height:100%;padding:24px}.stage{border:1px solid var(--border);border-radius:14px;margin:0 auto;position:relative;box-shadow:0 10px 40px #00000073}.block{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #ffffff1f;border-radius:10px;padding:10px;position:absolute}.block.selected{outline:2px solid var(--accent);border-color:#0000}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:5;background:#111827e0;align-items:center;gap:8px;padding:10px;display:flex;position:sticky;top:0}.spacer{flex:1}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:4px 8px;font-size:12px}.preview{padding:20px}.preview h2{margin:0 0 10px}.previewFrame{border:1px solid var(--border);border-radius:14px;max-width:980px;margin:0 auto;overflow:hidden}.previewPage{width:100%;position:relative}.help{color:var(--muted);font-size:12px;line-height:1.35}
