/* Phase 5: minimum-impact extension, preserving existing tool engines */
.p5-preview{display:flex;align-items:center;justify-content:center;min-height:220px;padding:12px;background:repeating-conic-gradient(#d7dce4 0 25%,#fff 0 50%) 50% / 18px 18px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.p5-preview canvas{max-width:100%;max-height:480px;object-fit:contain;cursor:crosshair}.p5-preview canvas[hidden]{display:none}.p5-details{white-space:pre-wrap;overflow-wrap:anywhere;font:0.87rem ui-monospace,monospace}.p5-output{margin-top:12px}.p5-tool .actions{display:flex;gap:12px;flex-wrap:wrap}.p5-tool input[type=number]{width:min(240px,100%)}.p5-tool .status.error{color:#a31e37}.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.guide-grid a{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface);text-decoration:none}.guide-grid a strong{display:block}.offline-choices{display:flex;gap:12px;flex-wrap:wrap}.offline-choices button{padding:11px 16px}
