/* Baptist Safe Church Register – standalone front-end shell (church app + volunteer page).
   Loaded after admin.css / portal.css. Provides the app chrome and the handful of
   WordPress admin utility classes the shared screens use. */

:root {
	--app-navy: #0f3d5e;
	--app-navy-2: #0b2f49;
	--app-accent: #c2410c;
	--app-ink: #1d2433;
	--app-muted: #5b6474;
	--app-line: #e3e0d8;
	--app-wash: #f7f5f0;
	--app-focus: rgba(15, 61, 94, .28);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.bscr-app-body, body.bscr-volunteer-body {
	margin: 0;
	background: var(--app-wash);
	color: var(--app-ink);
	font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}
.bscr-app-body a, .bscr-volunteer-body a { color: var(--app-navy); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.bscr-app-body code { background: #efece4; padding: 1px 5px; border-radius: 4px; font-size: .92em; }

/* ---------- Brand ---------- */
.bscr-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff !important; text-decoration: none; min-width: 0; }
.bscr-brand svg { flex: 0 0 auto; color: #fdba74; }
.bscr-brand span { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.bscr-brand strong { font-size: 16px; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bscr-brand small { font-size: 11px; opacity: .75; letter-spacing: .02em; }

/* ---------- App bar ---------- */
.bscr-appbar { background: var(--app-navy); color: #fff; position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 rgba(0,0,0,.08); }
.bscr-appbar-in { max-width: 1320px; margin: 0 auto; padding: 10px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.bscr-appbar-r { display: flex; align-items: center; gap: 12px; min-width: 0; }
.bscr-appbar-church { font-weight: 600; opacity: .95; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bscr-appbar .bscr-switch select { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 8px; padding: 7px 30px 7px 10px; font: inherit; font-weight: 600; max-width: 360px; min-height: 38px; }
.bscr-appbar .bscr-switch select option { color: var(--app-ink); }
.bscr-usermenu { position: relative; }
.bscr-usermenu > summary { list-style: none; display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 4px 6px; border-radius: 999px; }
.bscr-usermenu > summary::-webkit-details-marker { display: none; }
.bscr-usermenu > summary:hover { background: rgba(255,255,255,.1); }
.bscr-avatar { width: 32px; height: 32px; border-radius: 50%; background: #fdba74; color: var(--app-navy-2); display: grid; place-items: center; font-weight: 700; }
.bscr-usermenu-name { font-weight: 500; }
.bscr-usermenu > div { position: absolute; right: 0; top: calc(100% + 8px); background: #fff; color: var(--app-ink); border-radius: 12px; box-shadow: 0 16px 40px rgba(15,23,42,.2); padding: 8px; min-width: 230px; }
.bscr-usermenu > div p { margin: 6px 10px 10px; }
.bscr-usermenu > div a { display: block; padding: 9px 10px; border-radius: 8px; text-decoration: none; color: var(--app-ink) !important; }
.bscr-usermenu > div a:hover { background: var(--app-wash); }

.bscr-tabs { background: var(--app-navy-2); }
.bscr-tabs-in { max-width: 1320px; margin: 0 auto; padding: 0 14px; display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.bscr-tabs-in::-webkit-scrollbar { display: none; }
.bscr-tabs a { color: rgba(255,255,255,.78) !important; text-decoration: none; padding: 11px 12px; font-weight: 500; white-space: nowrap; border-bottom: 3px solid transparent; }
.bscr-tabs a:hover { color: #fff !important; }
.bscr-tabs a[aria-current="page"] { color: #fff !important; border-bottom-color: #fdba74; }
.bscr-tabs .bscr-tabs-ext { margin-left: auto; color: #fdba74 !important; }

.bscr-app-main { flex: 1; width: 100%; max-width: 1320px; margin: 0 auto; padding: 4px 20px 32px; }
.bscr--front { max-width: none; }
.bscr--front .bscr-top { margin-top: 18px; }

.bscr-appfoot { text-align: center; color: var(--app-muted); font-size: 12.5px; padding: 18px 20px 28px; border-top: 1px solid var(--app-line); }
.bscr-appfoot p { margin: 4px auto; max-width: 640px; }

/* ---------- WordPress utility classes used by the shared screens ---------- */
.bscr-app-body input[type=text], .bscr-app-body input[type=email], .bscr-app-body input[type=tel], .bscr-app-body input[type=date],
.bscr-app-body input[type=number], .bscr-app-body input[type=search], .bscr-app-body input[type=password], .bscr-app-body select, .bscr-app-body textarea {
	font: inherit; font-size: 15px; color: var(--app-ink); background: #fff; border: 1px solid #c9ced6; border-radius: 8px; padding: 8px 10px; min-height: 40px; max-width: 100%;
}
.bscr-app-body textarea { min-height: 0; }
.bscr-app-body input:focus, .bscr-app-body select:focus, .bscr-app-body textarea:focus { outline: 3px solid var(--app-focus); border-color: var(--app-navy); }
.bscr-app-body input[type=checkbox], .bscr-app-body input[type=radio] { width: 18px; height: 18px; accent-color: var(--app-navy); margin: 0; }
.bscr-app-body .small-text { width: 80px; }
.bscr-app-body .button {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	font: inherit; font-weight: 600; font-size: 14px; line-height: 1.2; text-decoration: none; cursor: pointer;
	background: #fff; color: var(--app-navy) !important; border: 1px solid #b9c3cf; border-radius: 8px; padding: 9px 14px; min-height: 40px;
}
.bscr-app-body .button:hover { border-color: var(--app-navy); background: #f4f7fa; }
.bscr-app-body .button-primary { background: var(--app-accent); border-color: var(--app-accent); color: #fff !important; }
.bscr-app-body .button-primary:hover { background: #a8380a; border-color: #a8380a; }
.bscr-app-body .button-small { padding: 5px 10px; min-height: 32px; font-size: 13px; }
.bscr-app-body .button-hero { padding: 13px 22px; font-size: 16px; }
.bscr-app-body .button-link { background: none; border: 0; padding: 0; color: var(--app-navy); text-decoration: underline; cursor: pointer; font: inherit; }
.bscr-app-body summary.button { list-style: none; }
.bscr-app-body summary.button::-webkit-details-marker { display: none; }
.bscr-app-body .notice { background: #fff; border: 1px solid var(--app-line); border-left: 4px solid var(--app-navy); border-radius: 8px; padding: 2px 14px; margin: 0 0 14px; }
.bscr-app-body .notice p { margin: 10px 0; }
.bscr-app-body .notice-success { border-left-color: #15803d; background: #f0fdf4; }
.bscr-app-body .notice-error { border-left-color: #b91c1c; background: #fef2f2; }
.bscr-app-body .notice-warning { border-left-color: #d97706; background: #fffbeb; }
.bscr-app-body h1, .bscr-app-body h2, .bscr-app-body h3 { line-height: 1.25; }

/* ---------- Sign in ---------- */
.bscr-login { flex: 1; display: grid; place-items: center; padding: 32px 16px; background: linear-gradient(180deg, var(--app-navy) 0, var(--app-navy) 46%, var(--app-wash) 46%); }
.bscr-login-card { width: 100%; max-width: 420px; background: #fff; border-radius: 16px; padding: 28px; box-shadow: 0 24px 60px rgba(15,23,42,.18); }
.bscr-login-card .bscr-brand { color: var(--app-navy) !important; }
.bscr-login-card .bscr-brand svg { color: var(--app-accent); }
.bscr-login-card h1 { font-size: 24px; margin: 22px 0 2px; }
.bscr-login-card form p { margin: 0 0 14px; }
.bscr-login-card label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 4px; }
.bscr-login-card input[type=text], .bscr-login-card input[type=password] { width: 100%; min-height: 46px; font-size: 16px; }
.bscr-login-card .login-remember label { display: inline-flex; gap: 8px; align-items: center; font-weight: 400; }
.bscr-login-card .login-submit input { width: 100%; background: var(--app-accent); color: #fff; border: 0; border-radius: 8px; padding: 13px; font: inherit; font-weight: 650; font-size: 16px; cursor: pointer; min-height: 48px; }
.bscr-login-links { font-size: 14px; }
.bscr-login-vol { background: var(--app-wash); border-radius: 10px; padding: 12px 14px; font-size: 14px; margin-top: 18px; }

/* ---------- Volunteer page shell ---------- */
.bscr-vbar { background: var(--app-navy); }
.bscr-vbar-in { max-width: 760px; margin: 0 auto; padding: 12px 16px; }
.bscr-vmain { flex: 1; width: 100%; max-width: 792px; margin: 0 auto; padding: 18px 16px 28px; }
.bscr-volunteer-body .bscrp-hero { margin-top: 2px; }

/* ---------- Phone ---------- */
@media (max-width: 700px) {
	.bscr-appbar-in { padding: 8px 14px; }
	.bscr-appbar .bscr-brand span { display: none; }
	.bscr-usermenu-name { display: none; }
	.bscr-appbar-church { max-width: 42vw; font-size: 14px; }
	.bscr-appbar .bscr-switch select { max-width: 46vw; font-size: 14px; }
	.bscr-app-main { padding: 0 14px 24px; }
	.bscr-tabs .bscr-tabs-ext { margin-left: 0; }
	.bscr--front .bscr-top { margin-top: 14px; }
	.bscr-app-body input[type=search] { width: 100%; }
	.bscr-app-body .bscr-filters select { max-width: none; flex: 1 1 45%; }
}

/* Help links (shown when a theme supplies guides) */
.bscr-tabs .bscr-tabs-help { margin-left: auto; }
.bscr-tabs .bscr-tabs-help + .bscr-tabs-ext { margin-left: 0; }
.bscr-vhelp { text-align: center; margin: -6px auto 18px; max-width: 760px; padding: 0 16px; }
.bscr-vhelp a { font-weight: 600; }
@media (max-width: 700px) { .bscr-tabs .bscr-tabs-help { margin-left: 0; } }
