*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:#0b0c10;color:#e6e7eb;line-height:1.5}#app{max-width:1240px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:20px}header h1{margin:0 0 4px;font-size:22px}.subtitle{margin:0;color:#9aa0aa;font-size:13px}.subtitle code{background:#1b1d24;padding:1px 5px;border-radius:3px;font-size:12px}.banner{margin-top:12px;padding:10px 14px;border-radius:6px;font-size:13px}.banner.hidden{display:none}.banner.error{background:#3a1a1a;border:1px solid #7a2a2a;color:#ffb4b4}.banner.warn{background:#2a2416;border:1px solid #6a5824;color:#ffd79a}.inputs{display:grid;grid-template-columns:1fr 1fr;gap:16px}.input-card{display:flex;flex-direction:column;gap:6px}.input-card label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#9aa0aa}textarea{width:100%;min-height:160px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#15171d;color:#e6e7eb;border:1px solid #262933;border-radius:6px;resize:vertical}textarea:focus{outline:none;border-color:#4c8dff}.actions{display:flex;align-items:center;gap:12px}button{background:#2d6cdf;color:#fff;border:none;border-radius:6px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:background .12s ease}button:hover:not(:disabled){background:#4181f3}button:disabled{opacity:.5;cursor:not-allowed}.status{font-size:13px;color:#9aa0aa}.status.error{color:#ffb4b4}.canvases{display:grid;grid-template-columns:1fr 1fr;gap:16px}figure{margin:0;padding:12px;background:#15171d;border:1px solid #262933;border-radius:8px}figcaption{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#9aa0aa;margin-bottom:8px}figure.diff{grid-column:span 2}canvas{display:block;background:#fff;width:100%;height:auto;max-width:480px;border-radius:4px}figure.diff canvas{max-width:720px;background:#000}.stats{margin:10px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:#c8ccd6}.crumbs a{color:#8ab4ff;font-size:13px;text-decoration:none}canvas[layoutsubtree]{width:auto;max-width:none}.canvases figure{overflow-x:auto;min-width:0}
