*{box-sizing:border-box}html,body{color:#0f172a;background:#f8fafc;height:100%;margin:0;font-family:system-ui,sans-serif}a{color:#2563eb}button,input,select,textarea{font:inherit}button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){background:#f1f5f9}button:disabled{opacity:.4;cursor:default}button.on{background:#dbeafe;border-color:#3b82f6}button.ghost{background:0 0;border-color:#0000;padding:2px 6px}input,select{border:1px solid #cbd5e1;border-radius:6px;padding:6px 10px}small{color:#64748b}.error{color:#dc2626;margin:0}.spacer{flex:1}.row{align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.page{flex-direction:column;gap:12px;max-width:760px;margin:0 auto;padding:24px 16px;display:flex}.page.narrow{max-width:360px;margin-top:12vh}.list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.list li{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px}.center{place-items:center;height:100%;display:grid}.editor{flex-direction:column;height:100vh;display:flex}.topbar{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:12px;padding:8px 12px;display:flex}.body{flex:1;min-height:0;display:flex}.tools{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;gap:6px;width:150px;padding:8px;display:flex;overflow:auto}.tools label{color:#475569;flex-direction:column;gap:2px;font-size:12px;display:flex}.tools input[type=color]{width:100%;height:30px;padding:0}.canvas{flex:1;position:relative}.pen-capture{z-index:5;cursor:crosshair;touch-action:none;position:absolute;inset:0}.pen-capture.disabled{cursor:not-allowed}.layers{background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;gap:6px;width:250px;padding:8px;display:flex;overflow:auto}.layer{cursor:pointer;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:2px;padding:4px;display:flex}.layer.active{background:#eff6ff;border-color:#3b82f6}.layer input{background:0 0;border-color:#0000;flex:1;min-width:0;padding:2px 4px}.hint{color:#64748b;font-size:12px}.avatar{color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.react-flow__node.inactive,.react-flow__edge.inactive{pointer-events:none!important}.shape-label{text-align:center;white-space:pre-wrap;pointer-events:none;place-items:center;padding:8px;display:grid;position:absolute;inset:0;overflow:hidden}.shape-label textarea{resize:none;text-align:center;pointer-events:all;background:0 0;border:none;outline:none;width:100%;height:100%}.react-flow__handle{opacity:0}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle{opacity:1}.cursor{pointer-events:none;z-index:1000;position:absolute}.cursor span{color:#fff;white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:12px;position:absolute;top:12px;left:14px}.ghost-shape{opacity:.6;pointer-events:none;background:#fff8;border:2px dashed;border-radius:6px;place-items:center;width:140px;height:80px;font-size:12px;display:grid;position:absolute;transform:translate(-50%,-50%)}
