/* Community pages (accounts, add masjid, terms) — extends prayer-pro.css; uses its --ws-* tokens. */
.ws-input, .ws-textarea {
    width: 100%; height: 2.75rem; padding: 0 .85rem;
    border: 1px solid var(--ws-line-strong); border-radius: 10px; background: var(--ws-surface);
    font: inherit; font-size: .9375rem; color: var(--ws-ink);
}
.ws-textarea { height: auto; min-height: 5.5rem; padding: .7rem .85rem; line-height: 1.5; resize: vertical; }
.ws-input:focus, .ws-textarea:focus { outline: 2px solid var(--ws-brand); outline-offset: 1px; border-color: var(--ws-brand); }
.ws-input::placeholder, .ws-textarea::placeholder { color: var(--ws-muted); }
.ws-field__hint { font-size: .75rem; color: var(--ws-muted); }
.ws-form { display: grid; gap: 1rem; }

.ws-auth { max-width: 440px; margin: 1.5rem auto 0; }
.ws-auth .ws-panel { padding: 1.5rem; }
@media (min-width: 520px) { .ws-auth .ws-panel { padding: 2rem; } }
.ws-auth__title { font-size: 1.5rem; font-weight: 800; letter-spacing: -0.02em; color: var(--ws-ink); }
.ws-auth__lead { margin-top: .35rem; font-size: .875rem; line-height: 1.6; color: var(--ws-muted); }
.ws-auth__switch { margin-top: 1.25rem; text-align: center; font-size: .875rem; color: var(--ws-muted); }
.ws-auth__switch a, .ws-auth__link { color: var(--ws-brand); font-weight: 600; }
.ws-auth__legal { margin-top: 1rem; font-size: .75rem; line-height: 1.55; color: var(--ws-muted); text-align: center; }
.ws-auth__legal a { color: var(--ws-ink-2); text-decoration: underline; text-underline-offset: 2px; }

.ws-btn--block { width: 100%; }
.ws-btn--lg { height: 2.85rem; font-size: .9375rem; }
.ws-btn--google { background: var(--ws-surface); border-color: var(--ws-line-strong); color: var(--ws-ink); }
.ws-btn--google:hover { border-color: var(--ws-ink-2); }
.ws-btn--google svg { width: 1.1rem; height: 1.1rem; }
.ws-btn--danger { background: #b42318; color: #fff; }
.ws-btn--danger:hover { background: #912018; }

.ws-divider { display: flex; align-items: center; gap: .75rem; margin: 1.25rem 0; font-size: .75rem; color: var(--ws-muted); }
.ws-divider::before, .ws-divider::after { content: ""; flex: 1; height: 1px; background: var(--ws-line); }

.ws-alert { padding: .8rem 1rem; border-radius: var(--ws-radius-sm); font-size: .875rem; line-height: 1.55; border: 1px solid; }
.ws-alert--ok { background: #ecfdf3; border-color: #abefc6; color: #05603a; }
.ws-alert--err { background: #fef3f2; border-color: #fecdca; color: #912018; }
.ws-alert--info { background: var(--ws-brand-50); border-color: var(--ws-brand-100); color: var(--ws-brand-800); }
.ws-alert[hidden] { display: none; }

.ws-check { display: flex; gap: .6rem; align-items: flex-start; font-size: .8125rem; line-height: 1.5; color: var(--ws-ink-2); }
.ws-check input { margin-top: .2rem; width: 1rem; height: 1rem; accent-color: var(--ws-brand); flex: none; }
.ws-check a { color: var(--ws-brand); font-weight: 600; }

.ws-map { height: 320px; border-radius: var(--ws-radius-sm); border: 1px solid var(--ws-line-strong); overflow: hidden; z-index: 0; }
@media (min-width: 860px) { .ws-map { height: 380px; } }
.ws-coords { font-size: .75rem; color: var(--ws-muted); font-variant-numeric: tabular-nums; }

.ws-kv { display: grid; gap: .75rem; }
.ws-kv__row { display: flex; justify-content: space-between; gap: 1rem; font-size: .875rem; }
.ws-kv__row dt { color: var(--ws-muted); }
.ws-kv__row dd { color: var(--ws-ink); font-weight: 600; text-align: right; }
.ws-stats4 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
@media (min-width: 640px) { .ws-stats4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ws-stat { padding: .85rem; border-radius: var(--ws-radius-sm); background: var(--ws-surface-2); border: 1px solid var(--ws-line); }
.ws-stat__n { font-size: 1.35rem; font-weight: 800; color: var(--ws-ink); }
.ws-stat__l { font-size: .75rem; color: var(--ws-muted); }
.ws-danger { border-color: #fecdca !important; }
.ws-danger .ws-h2 { color: #912018; }
.ws-candidates { display: grid; gap: .5rem; margin-top: .75rem; }
.ws-candidates a { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem .85rem; border-radius: var(--ws-radius-sm); background: var(--ws-surface); border: 1px solid var(--ws-line); font-size: .875rem; font-weight: 600; color: var(--ws-ink); }
.ws-candidates a:hover { border-color: var(--ws-brand); }
.ws-candidates span { color: var(--ws-muted); font-weight: 500; }
.ws-accountbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; margin-bottom: .75rem; font-size: .8125rem; color: var(--ws-muted); }
.ws-accountbar a { color: var(--ws-brand); font-weight: 600; }
.ws-gallery__del { position: absolute; top: .35rem; right: .35rem; }
.ws-gallery__del button { width: 1.75rem; height: 1.75rem; border-radius: 99px; border: 0; background: rgba(28, 23, 20, .7); color: #fff; font-size: 1.1rem; line-height: 1; cursor: pointer; }
.ws-gallery__del button:hover { background: #b42318; }
.ws-linkbtn { border: 0; background: none; padding: 0; font: inherit; font-size: .75rem; font-weight: 600; color: var(--ws-muted); cursor: pointer; }
.ws-linkbtn:hover { color: #b42318; text-decoration: underline; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
