/* SMS plugin — structural styles. Colours come from the active theme's tokens. */
.sms-box {
    --sms-primary: var(--color-theme-primary, var(--theme-primary, #4f46e5));
    --sms-on-primary: var(--color-theme-on-primary, var(--theme-on-primary, #fff));
    --sms-muted: var(--color-theme-muted, var(--theme-text-muted, #71717a));
    --sms-border: var(--color-theme-border, var(--theme-border, #e4e4e7));
    color: var(--color-theme-text, var(--theme-text, inherit)); font-size: .9375rem;
}
.sms-box * { box-sizing: border-box; }
.sms-opt-in { position: relative; display: flex; align-items: center; gap: .75rem; margin: .75rem 0; padding: .75rem .9rem; border: 1px solid var(--sms-border); border-radius: .75rem; font-size: .875rem; cursor: pointer; transition: border-color .15s ease; }
.sms-opt-in:hover { border-color: color-mix(in srgb, var(--sms-primary) 45%, var(--sms-border)); }
.sms-switch-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.sms-switch-track { position: relative; flex-shrink: 0; width: 2.5rem; height: 1.4rem; margin-top: .05rem; border-radius: 999px; background: var(--sms-border); transition: background-color .2s ease; }
.sms-switch-thumb { position: absolute; top: .2rem; left: .2rem; width: 1rem; height: 1rem; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / .25); transition: transform .2s ease; }
.sms-switch-input:checked + .sms-switch-track { background: var(--sms-primary); }
.sms-switch-input:checked + .sms-switch-track .sms-switch-thumb { transform: translateX(1.1rem); }
.sms-switch-input:focus-visible + .sms-switch-track { outline: 3px solid var(--sms-primary); outline-offset: 2px; }

.sms-card { margin-top: 1.5rem; padding: 1.5rem; border: 1px solid var(--sms-border); border-radius: 1rem; }
.sms-card h3 { margin: 0; font-size: 1.125rem; font-weight: 600; }
.sms-muted { margin: .3rem 0 0; color: var(--sms-muted); font-size: .875rem; }
.sms-form { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-top: 1rem; }
.sms-form input { width: 9rem; padding: .6rem .75rem; border: 1px solid var(--sms-border); border-radius: .6rem; background: transparent; color: inherit; font: inherit; font-size: 1.125rem; letter-spacing: .3em; text-align: center; }
.sms-button { padding: .65rem 1.25rem; border: 0; border-radius: 999px; background: var(--sms-primary); color: var(--sms-on-primary); font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
.sms-link { border: 0; background: none; color: var(--sms-muted); font: inherit; font-size: .875rem; text-decoration: underline; cursor: pointer; }
.sms-note { margin: .75rem 0 0; font-size: .875rem; }
.sms-note-ok { color: #047857; font-weight: 600; }
.sms-note-error { color: #b91c1c; }
