.badge-row.svelte-te88oy{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.pattern-card.svelte-te88oy{background:var(--bg-secondary);border:1px solid var(--border);padding:1.5rem;margin:1.5rem 0}.pattern-header.svelte-te88oy{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.pattern-header.svelte-te88oy h3:where(.svelte-te88oy){margin:0;font-size:1.1rem}.pattern-description.svelte-te88oy{color:var(--text-secondary);margin-bottom:1rem}.pattern-link.svelte-te88oy{display:inline-flex;align-items:center;gap:.5rem;color:var(--green-dim);font-size:.875rem;text-decoration:none;margin-top:1rem}.pattern-link.svelte-te88oy:hover{color:var(--green)}.code-comparison.svelte-te88oy{display:grid;gap:1rem;margin:1rem 0}.code-block.vulnerable.svelte-te88oy .code-block-header:where(.svelte-te88oy){border-left:3px solid var(--red)}.code-block.secure.svelte-te88oy .code-block-header:where(.svelte-te88oy){border-left:3px solid var(--green)}.status-bad.svelte-te88oy{color:var(--red)}.status-good.svelte-te88oy{color:var(--green)}.copy-btn.small.svelte-te88oy{font-size:.7rem;padding:.25rem .5rem}.cta-box.svelte-te88oy{background:var(--bg-secondary);border:1px solid var(--green-dim);padding:2rem;text-align:center;margin:2rem 0}.cta-box.svelte-te88oy p:where(.svelte-te88oy){margin:0 0 .5rem;color:var(--text-primary)}.cta-subtext.svelte-te88oy{color:var(--text-secondary)!important;font-size:.9rem;margin-bottom:1.5rem!important}.numbered-list.svelte-te88oy{counter-reset:step;list-style:none;padding:0}.numbered-list.svelte-te88oy li:where(.svelte-te88oy){position:relative;padding-left:2.5rem;margin-bottom:1.5rem}.numbered-list.svelte-te88oy li:where(.svelte-te88oy):before{counter-increment:step;content:counter(step);position:absolute;left:0;top:0;width:1.75rem;height:1.75rem;background:var(--bg-tertiary);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;color:var(--text-primary)}.numbered-list.svelte-te88oy li:where(.svelte-te88oy) strong:where(.svelte-te88oy){display:block;margin-bottom:.25rem}.numbered-list.svelte-te88oy li:where(.svelte-te88oy) p:where(.svelte-te88oy){margin:0;color:var(--text-secondary);font-size:.9rem}.faq-list.svelte-te88oy{margin-top:1rem}.faq-item.svelte-te88oy{padding:1.5rem 0;border-bottom:1px solid var(--border)}.faq-item.svelte-te88oy:last-child{border-bottom:none}.faq-item.svelte-te88oy h3:where(.svelte-te88oy){font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:1.0625rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary);line-height:1.5;letter-spacing:-.01em}.faq-item.svelte-te88oy p:where(.svelte-te88oy){margin:0;font-size:.9375rem;line-height:1.7;color:var(--text-secondary)}.badge-critical.svelte-te88oy{background:var(--red);color:#fff}.badge-high.svelte-te88oy{background:var(--orange, #f97316);color:#fff}.badge-medium.svelte-te88oy{background:var(--yellow, #eab308);color:#000}@media(max-width:768px){.pattern-header.svelte-te88oy{flex-direction:column;gap:.5rem}}
