.bmc-math{--cc-surface:#fff;--cc-surface-muted:#f8fafc;--cc-border:#e2e8f0;--cc-text-main:#0f172a;--cc-text-muted:#64748b;--cc-primary:#2563eb;--cc-primary-dark:#1d4ed8;--cc-shadow:0 2px 8px rgba(0,0,0,.06);--cc-accent:#2563eb;}
.spf-wrap{max-width:640px;margin-bottom:2rem;}
.spf-panel{background:var(--surface,var(--cc-surface));border:1px solid var(--border,var(--cc-border));border-radius:16px;padding:1.25rem;box-shadow:var(--shadow-soft,var(--cc-shadow));}
@media (min-width:480px){.spf-panel{padding:1.5rem;}}
@media (min-width:768px){.spf-panel{padding:2rem;border-radius:20px;}}
.spf-label{display:block;font-size:0.9375rem;font-weight:600;color:var(--text-main,var(--cc-text-main));margin-bottom:0.5rem;}
.spf-hint{font-size:0.875rem;color:var(--text-muted,var(--cc-text-muted));margin:0.5rem 0 0;}
.spf-input{width:100%;min-height:120px;padding:1rem 1.125rem;font-size:1rem;line-height:1.5;color:var(--text-main,var(--cc-text-main));background:var(--surface-muted,var(--cc-surface-muted));border:1px solid var(--border,var(--cc-border));border-radius:12px;box-sizing:border-box;resize:vertical;font-family:inherit;-webkit-appearance:none;appearance:none;}
.spf-input:focus{outline:0;border-color:var(--primary,var(--cc-primary));box-shadow:0 0 0 3px rgba(37,99,235,.15);}
.spf-input::placeholder{color:var(--text-muted,var(--cc-text-muted));}
@media (min-width:480px){.spf-input{min-height:140px;font-size:1.0625rem;}}
.spf-actions{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.25rem;}
.spf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.5rem;font-size:1rem;font-weight:600;border-radius:12px;cursor:pointer;transition:background 0.2s,color 0.2s,transform 0.1s;-webkit-tap-highlight-color:transparent;border:0;}
.spf-btn--primary{color:#fff;background:var(--primary,var(--cc-primary));}
.spf-btn--primary:hover{background:var(--primary-dark,var(--cc-primary-dark));}
.spf-btn--secondary{color:var(--text-main,var(--cc-text-main));background:var(--surface-muted,var(--cc-surface-muted));border:1px solid var(--border,var(--cc-border));}
.spf-btn--secondary:hover{background:var(--border,var(--cc-border));}
.spf-btn:active{transform:scale(0.98);}
.spf-btn:focus{outline:0;box-shadow:0 0 0 3px rgba(37,99,235,.25);}
.spf-results{margin-top:1.5rem;}
.spf-results[hidden]{display:none;}
.spf-result-summary{font-size:0.9375rem;color:var(--text-muted,var(--cc-text-muted));margin-bottom:1rem;}
.spf-result-cards{display:flex;flex-direction:column;gap:1rem;}
.spf-card{background:var(--surface-muted,var(--cc-surface-muted));border-left:4px solid var(--primary,var(--cc-primary));border-radius:0 12px 12px 0;padding:1rem 1.25rem;}
.spf-card-title{font-size:1rem;font-weight:700;color:var(--primary,var(--cc-primary));margin:0 0 0.75rem;}
.spf-card p{margin:0 0 0.5rem;font-size:0.9375rem;line-height:1.5;color:var(--text-main,var(--cc-text-main));}
.spf-card p:last-child{margin-bottom:0;}
.spf-step{display:flex;align-items:flex-start;gap:0.75rem;margin-top:0.75rem;padding:0.75rem;background:var(--surface,var(--cc-surface));border-radius:10px;border:1px solid var(--border,var(--cc-border));font-size:0.875rem;line-height:1.5;color:var(--text-main,var(--cc-text-main));}
.spf-step-num{flex-shrink:0;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:700;color:#fff;background:var(--primary,var(--cc-primary));border-radius:50%;}
.spf-examples{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border,var(--cc-border));}
.spf-examples-title{font-size:0.875rem;font-weight:600;color:var(--text-muted,var(--cc-text-muted));margin:0 0 0.75rem;}
.spf-pills{display:flex;flex-wrap:wrap;gap:0.5rem;}
.spf-pill{padding:0.5rem 1rem;font-size:0.8125rem;color:var(--text-main,var(--cc-text-main));background:var(--surface-muted,var(--cc-surface-muted));border:1px solid var(--border,var(--cc-border));border-radius:999px;cursor:pointer;transition:background 0.2s,border-color 0.2s;-webkit-tap-highlight-color:transparent;}
.spf-pill:hover{background:var(--border,var(--cc-border));border-color:var(--primary,var(--cc-primary));}
.spf-pill:focus{outline:0;box-shadow:0 0 0 2px rgba(37,99,235,.3);}
.spf-no-pattern .spf-card{border-left-color:var(--text-muted,var(--cc-text-muted));}
.spf-no-pattern .spf-card-title{color:var(--text-main,var(--cc-text-main));}
