/* bydph theme: emerald (green energy) with champagne gold, light and dark. contrast pairs meet wcag aa (body text aaa). */
:root, [data-bs-theme=light] {
  --bp-bg: #f5f6f2; --bp-surface: #ffffff; --bp-surface-2: #eef2ec; --bp-border: #dde4dc;
  --bp-text: #16211c; --bp-muted: #536158; --bp-heading: #0d1a14;
  --bp-primary: #0a6b4c; --bp-primary-rgb: 10,107,76; --bp-primary-hover: #075239; --bp-on-primary: #ffffff;
  --bp-primary-soft: #e2f1e9; --bp-primary-text: #075239;
  --bp-gold: #a9844b; --bp-gold-text: #7a5a26; --bp-gold-soft: #f6efe2;
  --bp-link: #0a6b4c; --bp-link-rgb: 10,107,76; --bp-link-hover: #064a33; --bp-link-hover-rgb: 6,74,51;
  --bp-nav-bg: #0b2a1f; --bp-nav-text: #e9f2ec; --bp-nav-hover: #e6cf9f; --bp-nav-border: transparent;
  --bp-hero-a: #0b2a1f; --bp-hero-b: #0f4532; --bp-hero-text: #f4f8f5; --bp-hero-muted: #c9dccf;
  --bp-shadow: 0 1px 2px rgba(13,26,20,.05), 0 2px 8px rgba(13,26,20,.06);
}
[data-bs-theme=dark] {
  --bp-bg: #0b1210; --bp-surface: #121b18; --bp-surface-2: #18241f; --bp-border: #26352f;
  --bp-text: #e4ece7; --bp-muted: #a2b3aa; --bp-heading: #f3f7f4;
  --bp-primary: #3cc98f; --bp-primary-rgb: 60,201,143; --bp-primary-hover: #5fd8a6; --bp-on-primary: #05140e;
  --bp-primary-soft: #133227; --bp-primary-text: #7fe0b6;
  --bp-gold: #d6b97c; --bp-gold-text: #e3c992; --bp-gold-soft: #2a2416;
  --bp-link: #6fdcae; --bp-link-rgb: 111,220,174; --bp-link-hover: #9be8c7; --bp-link-hover-rgb: 155,232,199;
  --bp-nav-bg: #08100d; --bp-nav-text: #e4ece7; --bp-nav-hover: #e3c992; --bp-nav-border: #1f2c27;
  --bp-hero-a: #0e241b; --bp-hero-b: #123a2b; --bp-hero-text: #f3f7f4; --bp-hero-muted: #b8cdc1;
  --bp-shadow: 0 1px 2px rgba(0,0,0,.4), 0 2px 10px rgba(0,0,0,.25);
}
/* bootstrap tokens mapped to the theme */
:root, [data-bs-theme=light], [data-bs-theme=dark] {
  --bs-body-bg: var(--bp-surface); --bs-body-color: var(--bp-text); --bs-emphasis-color: var(--bp-heading); --bs-heading-color: var(--bp-heading);
  --bs-secondary-color: var(--bp-muted); --bs-secondary-bg: var(--bp-surface-2); --bs-tertiary-bg: var(--bp-surface-2);
  --bs-border-color: var(--bp-border); --bs-border-color-translucent: var(--bp-border);
  --bs-primary: var(--bp-primary); --bs-primary-rgb: var(--bp-primary-rgb); --bs-success: var(--bp-primary); --bs-success-rgb: var(--bp-primary-rgb);
  --bs-primary-text-emphasis: var(--bp-primary-text); --bs-primary-bg-subtle: var(--bp-primary-soft); --bs-primary-border-subtle: var(--bp-primary);
  --bs-link-color: var(--bp-link); --bs-link-color-rgb: var(--bp-link-rgb); --bs-link-hover-color: var(--bp-link-hover); --bs-link-hover-color-rgb: var(--bp-link-hover-rgb);
  --bs-focus-ring-color: rgba(var(--bp-primary-rgb), .3);
  --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
body { background: var(--bp-bg); color: var(--bp-text); line-height: 1.6; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { letter-spacing: -.01em; font-weight: 600; color: var(--bp-heading); }
a { text-underline-offset: .18em; }
.text-muted { color: var(--bp-muted) !important; }
.form-control:focus, .form-select:focus { border-color: var(--bp-primary); }
.form-check-input:checked { background-color: var(--bp-primary); border-color: var(--bp-primary); }

/* navigation */
.navbar-bp { background: var(--bp-nav-bg); border-bottom: 1px solid var(--bp-nav-border);
  --bs-navbar-color: var(--bp-nav-text); --bs-navbar-hover-color: var(--bp-nav-hover); --bs-navbar-active-color: var(--bp-nav-hover);
  --bs-navbar-brand-color: #fff; --bs-navbar-brand-hover-color: #fff; }
.navbar-bp .navbar-brand { letter-spacing: -.01em; }
.navbar-bp .navbar-brand .bi { color: var(--bp-nav-hover); }
.navbar-bp .nav-link { color: var(--bp-nav-text); }
.navbar-bp .nav-link:hover, .navbar-bp .nav-link.show, .navbar-bp .nav-link:focus { color: var(--bp-nav-hover); }
.theme-toggle { background: none; border: 0; }
[data-bs-theme=dark] .theme-toggle .bi-moon-stars, [data-bs-theme=light] .theme-toggle .bi-sun { display: none; }

/* buttons */
.btn-brand, .btn-primary, .btn-success { --bs-btn-bg: var(--bp-primary); --bs-btn-border-color: var(--bp-primary); --bs-btn-color: var(--bp-on-primary);
  --bs-btn-hover-bg: var(--bp-primary-hover); --bs-btn-hover-border-color: var(--bp-primary-hover); --bs-btn-hover-color: var(--bp-on-primary);
  --bs-btn-active-bg: var(--bp-primary-hover); --bs-btn-active-border-color: var(--bp-primary-hover); --bs-btn-active-color: var(--bp-on-primary);
  --bs-btn-disabled-bg: var(--bp-primary); --bs-btn-disabled-border-color: var(--bp-primary); --bs-btn-disabled-color: var(--bp-on-primary); font-weight: 500; }
.btn-outline-primary, .btn-outline-success { --bs-btn-color: var(--bp-primary); --bs-btn-border-color: var(--bp-primary);
  --bs-btn-hover-bg: var(--bp-primary); --bs-btn-hover-border-color: var(--bp-primary); --bs-btn-hover-color: var(--bp-on-primary);
  --bs-btn-active-bg: var(--bp-primary); --bs-btn-active-border-color: var(--bp-primary); --bs-btn-active-color: var(--bp-on-primary);
  --bs-btn-disabled-color: var(--bp-primary); --bs-btn-disabled-border-color: var(--bp-primary); }
.btn-outline-secondary { --bs-btn-color: var(--bp-text); --bs-btn-border-color: var(--bp-border); --bs-btn-hover-bg: var(--bp-surface-2);
  --bs-btn-hover-color: var(--bp-heading); --bs-btn-hover-border-color: var(--bp-border); --bs-btn-active-bg: var(--bp-surface-2);
  --bs-btn-active-color: var(--bp-heading); --bs-btn-disabled-color: var(--bp-muted); --bs-btn-disabled-border-color: var(--bp-border); }
.btn-gold { --bs-btn-bg: #d9bd82; --bs-btn-border-color: #d9bd82; --bs-btn-color: #1b1406; --bs-btn-hover-bg: #e6cf9f; --bs-btn-hover-border-color: #e6cf9f;
  --bs-btn-hover-color: #1b1406; --bs-btn-active-bg: #e6cf9f; --bs-btn-active-color: #1b1406; font-weight: 600; }
.btn-ghost-light { --bs-btn-color: var(--bp-hero-text); --bs-btn-border-color: rgba(255,255,255,.45); --bs-btn-hover-bg: rgba(255,255,255,.12);
  --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: rgba(255,255,255,.7); --bs-btn-active-bg: rgba(255,255,255,.18); --bs-btn-active-color: #fff; }
.btn-tile { --bs-btn-bg: var(--bp-surface); --bs-btn-color: var(--bp-text); --bs-btn-border-color: var(--bp-border); --bs-btn-hover-bg: var(--bp-primary-soft);
  --bs-btn-hover-color: var(--bp-heading); --bs-btn-hover-border-color: var(--bp-primary); --bs-btn-active-bg: var(--bp-primary-soft); --bs-btn-active-color: var(--bp-heading); }
.btn-tile .bi { color: var(--bp-primary); }

/* surfaces */
.card { border: 1px solid var(--bp-border); border-radius: .75rem; box-shadow: var(--bp-shadow); --bs-card-bg: var(--bp-surface); --bs-card-cap-bg: var(--bp-surface); }
.card-header { background: var(--bp-surface); color: var(--bp-heading); font-weight: 600; border-bottom-color: var(--bp-border); }
.card > .card-header:first-child { border-radius: .75rem .75rem 0 0; }
.list-group { --bs-list-group-bg: var(--bp-surface); --bs-list-group-border-color: var(--bp-border); --bs-list-group-color: var(--bp-text);
  --bs-list-group-action-hover-bg: var(--bp-surface-2); }
.dropdown-menu { --bs-dropdown-bg: var(--bp-surface); --bs-dropdown-border-color: var(--bp-border); --bs-dropdown-link-color: var(--bp-text);
  --bs-dropdown-link-hover-bg: var(--bp-primary-soft); --bs-dropdown-link-hover-color: var(--bp-heading); --bs-dropdown-link-active-bg: var(--bp-primary);
  --bs-dropdown-link-active-color: var(--bp-on-primary); box-shadow: var(--bp-shadow); }
.table { --bs-table-bg: transparent; --bs-table-color: var(--bp-text); --bs-table-border-color: var(--bp-border); --bs-table-hover-bg: var(--bp-surface-2);
  --bs-table-hover-color: var(--bp-heading); }
.table > thead > tr > th { --bs-table-bg: var(--bp-surface-2); color: var(--bp-muted); font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.table td, .table th { vertical-align: middle; }
.table-success { --bs-table-bg: var(--bp-primary-soft); --bs-table-color: var(--bp-heading); --bs-table-border-color: var(--bp-border); }
.badge-soft { background: var(--bp-surface-2); color: var(--bp-text); border: 1px solid var(--bp-border); font-weight: 500; }
.bg-soft { background: var(--bp-surface-2); }
.unread { background: var(--bp-primary-soft); }
.bp-progress { width: 100%; height: 8px; border: 0; border-radius: 4px; background: var(--bp-surface-2); accent-color: var(--bp-primary); vertical-align: middle; }
.bp-progress::-webkit-progress-bar { background: var(--bp-surface-2); border-radius: 4px; }
.bp-progress::-webkit-progress-value { background: var(--bp-primary); border-radius: 4px; }
.bp-progress::-moz-progress-bar { background: var(--bp-primary); border-radius: 4px; }
.bp-progress.full::-webkit-progress-value { background: var(--bs-danger); }
.bp-progress.full::-moz-progress-bar { background: var(--bs-danger); }

/* landing hero */
.hero { background: radial-gradient(1200px 400px at 85% -10%, rgba(214,185,124,.18), transparent 60%), linear-gradient(135deg, var(--bp-hero-a), var(--bp-hero-b));
  color: var(--bp-hero-text); border-radius: 1rem; border: 1px solid var(--bp-nav-border); }
.hero h1 { color: #fff; letter-spacing: -.02em; }
.hero .lead { color: var(--bp-hero-muted); max-width: 46rem; }
.hero .hero-note { color: var(--bp-hero-muted); font-size: .85rem; }
.hero-rule { width: 3rem; height: 3px; background: #d6b97c; border-radius: 2px; }
.feature-list li { padding: .45rem 0; }
.feature-list .bi { color: var(--bp-primary); }

/* membership limits: shown only where a feature is unavailable */
.tier-hint { background: var(--bp-gold-soft); color: var(--bp-text); border: 1px solid var(--bp-gold); border-radius: .5rem; padding: .5rem .75rem; font-size: .85rem; }
.tier-hint .bi { color: var(--bp-gold-text); }
.tier-hint a { color: var(--bp-gold-text); font-weight: 600; }

/* misc */
.login-wrap { max-width: 460px; }
.brand-mark { color: var(--bp-primary); }
.qr-box svg { width: 220px; height: 220px; background: #fff; padding: 8px; border-radius: .5rem; }
.font-mono { font-family: SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .04em; }
.text-pre { white-space: pre-wrap; }
.post-body { white-space: pre-wrap; word-break: break-word; }
.reply-children { border-left: 3px solid var(--bp-border); margin-left: 1rem; padding-left: 1rem; }
.badge-prov-PROVIDER_CONFIRMED { background: #0a6b4c; color: #fff; }
.badge-prov-DOCUMENT_SUPPORTED { background: #1d4ed8; color: #fff; }
.badge-prov-OWNER_RECORDED { background: #5b6770; color: #fff; }
.thumb { width: 100%; height: 160px; object-fit: cover; border-radius: .5rem; background: var(--bp-surface-2); }
.thumb-sm { width: 96px; height: 72px; object-fit: cover; border-radius: .375rem; }
.ad-card { border: 1px dashed var(--bp-border) !important; box-shadow: none; }
.ad-note { font-size: .75rem; }
.mw-24 { max-width: 24rem; }
.site-foot { font-size: .85rem; color: var(--bp-muted); border-color: var(--bp-border) !important; }
.site-foot a { color: var(--bp-muted); }
.site-foot a:hover { color: var(--bp-link); }
.stat { font-size: 1.6rem; font-weight: 600; color: var(--bp-heading); }
.w-qty { width: 6rem; }
.text-bg-success { color: var(--bp-on-primary) !important; background-color: var(--bp-primary) !important; }
form legend, fieldset legend { font-size: 1rem; font-weight: 400; margin-bottom: .5rem; }
.bp-map { width: 100%; border-radius: .75rem; border: 1px solid var(--bp-border); z-index: 0; }
.bp-map-full { height: 100%; min-height: 60vh; border-radius: 0; border: 0; }
.bp-map-sm { height: 260px; } .bp-map-md { height: 360px; } .bp-map-lg { height: 460px; }
.leaflet-container { font: inherit; background: var(--bp-surface-2); }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: var(--bp-surface); color: var(--bp-text); }
[data-bs-theme=dark] .leaflet-tile-pane { filter: brightness(.82) contrast(1.05) saturate(.85); }
.navbar-bp .nav-link { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1399.98px) { .navbar-bp .navbar-nav .nav-link > .bi.me-1 { display: none; } }

.brand-logo { height: 32px; width: auto; max-width: 220px; object-fit: contain; }
.brand-logo-lg { height: 48px; width: auto; max-width: 280px; object-fit: contain; }
.brand-preview { max-height: 64px; max-width: 100%; background: var(--bp-surface-2); padding: 4px; border-radius: .375rem; }
.brand-favicon { width: 32px; height: 32px; }
.modal { --bs-modal-bg: var(--bp-surface); --bs-modal-color: var(--bp-text); --bs-modal-border-color: var(--bp-border); }
.rules-body h2 { color: var(--bp-heading); }
.rules-body ol li, .rules-body ul li { margin-bottom: .35rem; }
.rules-scroll { max-height: 50vh; overflow-y: auto; border: 1px solid var(--bp-border); border-radius: .5rem; padding: 1rem; background: var(--bp-surface-2); }
.rules-body > h2:first-child { margin-top: 0 !important; }

/* member rich text (v1.7) */
.rich-body { word-break: break-word; }
.rich-body p:last-child { margin-bottom: 0; }
.rich-figure { margin: 1rem 0; }
.rich-figure img { max-height: 32rem; }
.rich-quote { border-left: 3px solid var(--bs-border-color); padding: .25rem 0 .25rem .9rem; margin: 1rem 0; color: var(--bs-secondary-color); }
.rich-quote p { margin-bottom: .25rem; }
.rich-toolbar .btn { line-height: 1.1; }
.rich-preview { background: var(--bs-tertiary-bg); }
.tag-suggested { font-weight: 600; color: var(--bs-success-text-emphasis); }
.tag-suggested::after { content: " (suggested)"; font-weight: 400; font-size: .8em; }
/* long checkbox lists in two or three columns */
@media (min-width: 576px) {
  #div_id_tags .form-check, #div_id_connector_types .form-check, #div_id_amenities .form-check, #div_id_services .form-check { display: inline-block; width: 49%; }
}
@media (min-width: 992px) {
  #div_id_amenities .form-check, #div_id_services .form-check { width: 32%; }
}
.rw-progress { width: 100%; height: .6rem; accent-color: var(--bs-success); }
.rw-badge { display: inline-flex; align-items: center; gap: .25rem; }

/* ---------- phones and small tablets (v1.11): app-like layout; desktop (>= 992px) unchanged ---------- */
.tabbar { display: none; }
@media (max-width: 991.98px) {
  .sticky-top-sm { position: sticky; top: 0; z-index: 1030; padding-top: env(safe-area-inset-top); }
  .navbar-bp { --bs-navbar-padding-y: .35rem; }
  .navbar-bp .navbar-brand { font-size: 1.05rem; }
  .nav-icon { color: var(--bp-nav-text); font-size: 1.35rem; line-height: 1; padding: .4rem .5rem; border: 0; }
  .nav-icon:hover, .nav-icon:focus { color: var(--bp-nav-hover); }
  .nav-dot { position: absolute; top: .1rem; right: .05rem; min-width: 1.05rem; height: 1.05rem; padding: 0 .25rem; border-radius: 1rem;
    background: var(--bp-gold); color: #1b1404; font-size: .65rem; font-weight: 700; line-height: 1.05rem; text-align: center; }
  .navbar-bp .navbar-toggler { display: none; }
  /* slide-in menu */
  .offcanvas-bp { background: var(--bp-nav-bg); color: var(--bp-nav-text); --bs-offcanvas-width: min(86vw, 340px); padding-top: env(safe-area-inset-top); }
  .offcanvas-bp .offcanvas-header { border-bottom: 1px solid rgba(255,255,255,.08); }
  .offcanvas-bp .offcanvas-title { color: #fff; }
  .offcanvas-bp .nav-link { padding: .7rem .25rem; font-size: 1.02rem; border-bottom: 1px solid rgba(255,255,255,.06); }
  .offcanvas-bp .nav-link .bi { width: 1.6rem; display: inline-block; }
  .offcanvas-bp .dropdown-menu { background: transparent; border: 0; box-shadow: none; padding: 0 0 .5rem 1.6rem; }
  .offcanvas-bp .dropdown-item, .offcanvas-bp .dropdown-item-text { color: var(--bp-nav-text); padding: .55rem .25rem; }
  .offcanvas-bp .dropdown-item:hover, .offcanvas-bp .dropdown-item:focus { background: transparent; color: var(--bp-nav-hover); }
  .offcanvas-bp .dropdown-divider { border-color: rgba(255,255,255,.1); }
  .offcanvas-bp .btn-brand { width: 100%; margin-top: .75rem; padding: .6rem; }
  /* bottom tab bar */
  .tabbar { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
    background: var(--bp-surface); border-top: 1px solid var(--bp-border); box-shadow: 0 -2px 12px rgba(13,26,20,.06);
    padding-bottom: env(safe-area-inset-bottom); }
  .tabbar a, .tabbar button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; min-height: 56px;
    color: var(--bp-muted); text-decoration: none; font-size: .68rem; font-weight: 500; background: none; border: 0; -webkit-tap-highlight-color: transparent; }
  .tabbar .bi { font-size: 1.3rem; line-height: 1; }
  .tabbar .active { color: var(--bp-primary); }
  body.has-tabbar { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
  body.has-tabbar .site-foot { padding-bottom: 1rem !important; }
  /* maps */
  .bp-map-md { height: 240px; } .bp-map-lg { height: 300px; } .bp-map-sm { height: 220px; }
}
@media (max-width: 767.98px) {
  main.container-xl, footer.container-xl { padding-left: .75rem; padding-right: .75rem; }
  h1.h3, .h3 { font-size: 1.35rem; } h1.h4, .h4 { font-size: 1.2rem; }
  /* 16px inputs stop phones from zooming into fields; comfortable touch targets */
  .form-control, .form-select, .input-group-text { font-size: 16px; }
  .form-control, .form-select { min-height: 44px; }
  .form-control-sm, .form-select-sm { min-height: 38px; }
  .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .btn-sm { min-height: 36px; }
  .btn-link.p-0, .btn-close { min-height: 0; }
  .form-check { min-height: 1.75rem; display: flex; align-items: center; gap: .5rem; padding-left: 0; }
  .form-check .form-check-input { float: none; margin: 0; width: 1.25rem; height: 1.25rem; flex: 0 0 auto; }
  .card { border-radius: .85rem; }
  .card-body { padding: 1rem; }
  .list-group-item { padding-top: .8rem; padding-bottom: .8rem; }
  /* section tabs scroll sideways instead of wrapping */
  .nav-scroll { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-left: -.75rem; margin-right: -.75rem; padding: 0 .75rem; }
  .nav-scroll::-webkit-scrollbar { display: none; }
  .nav-scroll .nav-link { white-space: nowrap; }
  .nav-scroll.nav-pills .nav-link { border-radius: 2rem; background: var(--bp-surface); border: 1px solid var(--bp-border); margin-right: .4rem; padding: .4rem .9rem; }
  /* full-width primary actions at the bottom of forms */
  form:not(.d-flex):not(.d-inline) > .btn-brand:last-child { width: 100%; }
  .site-foot { font-size: .8rem; }
  /* tables become stacked cards */
  .table-stack thead { display: none; }
  .table-stack, .table-stack tbody, .table-stack tr, .table-stack td { display: block; width: 100%; }
  .table-stack tr { padding: .75rem 1rem; border-bottom: 1px solid var(--bp-border); }
  .table-stack tr:last-child { border-bottom: 0; }
  .table-stack td { border: 0; padding: .1rem 0; background: transparent !important; box-shadow: none !important; }
  .table-stack td.stack-title { font-weight: 600; font-size: .95rem; padding-bottom: .3rem; }
  .table-stack td[data-label] { position: relative; padding-left: 40%; min-height: 1.6rem; }
  .table-stack td[data-label]::before { content: attr(data-label); position: absolute; left: 0; top: .2rem; width: 37%; color: var(--bp-muted); font-size: .72rem;
    text-transform: uppercase; letter-spacing: .03em; line-height: 1.3; }
  .table-stack td .badge { white-space: normal; text-align: left; }
  /* floating action button above the tab bar */
  .fab { position: fixed; right: 1rem; bottom: calc(72px + env(safe-area-inset-bottom)); z-index: 1025; width: 56px; height: 56px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center; font-size: 1.6rem; box-shadow: 0 4px 14px rgba(13,26,20,.25); }
  .table-stack td[data-label]:empty { display: none; }
}

/* visual article editor (v1.12) */
.wysiwyg { border: 1px solid var(--bp-border); border-radius: .75rem; background: var(--bp-surface); }
.wysiwyg-bar { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; padding: .45rem; border-bottom: 1px solid var(--bp-border);
  background: var(--bp-surface-2); border-radius: .75rem .75rem 0 0; position: sticky; top: 0; z-index: 5; }
.wysiwyg-bar .btn { --bs-btn-padding-x: .55rem; border: 1px solid transparent; color: var(--bp-text); }
.wysiwyg-bar .btn:hover, .wysiwyg-bar .btn.active { background: var(--bp-surface); border-color: var(--bp-border); }
.wysiwyg-style { width: auto; min-width: 9.5rem; }
.wysiwyg-page { min-height: 26rem; padding: 1.5rem 1.75rem; outline: none; font-size: 1.02rem; line-height: 1.7; max-width: 52rem; margin: 0 auto; }
.wysiwyg-page:focus { box-shadow: inset 0 0 0 2px rgba(var(--bp-primary-rgb), .15); }
.wysiwyg-page h2 { font-size: 1.35rem; margin-top: 1.4rem; } .wysiwyg-page h3 { font-size: 1.12rem; margin-top: 1.1rem; }
.wysiwyg-page blockquote { border-left: 3px solid var(--bp-border); padding-left: .9rem; color: var(--bp-muted); }
.wysiwyg-page figure img { max-height: 22rem; width: auto; }
.wysiwyg-page figure { cursor: pointer; border-radius: .5rem; outline-offset: 3px; }
.wysiwyg-page figure:hover { outline: 2px dashed rgba(var(--bp-primary-rgb), .5); }
.wysiwyg-page [data-image]:not(figure) { cursor: pointer; }
.rich-video-ph { display: flex; align-items: center; padding: 1.2rem; margin: 1rem 0; border-radius: .5rem; background: var(--bp-surface-2); color: var(--bp-muted); }
.rich-video-ph .bi { color: #e33; font-size: 1.4rem; }
.wysiwyg-raw { display: none; border: 0; border-radius: 0; }
.wysiwyg-raw.wysiwyg-raw-on { display: block; min-height: 26rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9rem; }
.wysiwyg-foot { display: flex; gap: .5rem; padding: .35rem .75rem; border-top: 1px solid var(--bp-border); }
/* photo library */
.media-item { border: 1px solid var(--bp-border); border-radius: .5rem; background: var(--bp-surface); padding: 0; text-align: left; overflow: hidden; }
.media-item:hover, .media-item:focus { border-color: var(--bp-primary); box-shadow: 0 0 0 3px rgba(var(--bp-primary-rgb), .2); }
.media-thumb { display: block; aspect-ratio: 4 / 3; background: var(--bp-surface-2); overflow: hidden; }
.media-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.media-thumb-lg { border-radius: .75rem .75rem 0 0; }
.media-pdf { display: flex; align-items: center; justify-content: center; font-size: 3rem; color: #c0392b; text-decoration: none; }
.rich-file { display: inline-flex; align-items: center; gap: .1rem; padding: 0 .4rem; border: 1px solid var(--bp-border); border-radius: .4rem; background: var(--bp-surface-2); text-decoration: none; white-space: normal; }
.rich-file .bi { color: #c0392b; }
.media-cap { display: block; padding: .35rem .5rem; font-size: .78rem; line-height: 1.3; color: var(--bp-text); }
@media (max-width: 767.98px) {
  .wysiwyg-page { padding: 1rem; min-height: 20rem; }
  .wysiwyg-bar { top: calc(54px + env(safe-area-inset-top)); }
  .wysiwyg-style { min-width: 8rem; }
}
/* submission lock (app.js): covers the page while a form is being sent */
.submit-lock { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; background: rgba(0, 0, 0, .35); cursor: progress; }
.submit-lock.on { display: flex; }
.submit-lock-box { background: var(--bp-surface, #fff); color: var(--bp-text, #111); border-radius: 1rem; padding: 1.25rem 1.5rem; min-width: min(20rem, 86vw); text-align: center; box-shadow: 0 .5rem 2rem rgba(0, 0, 0, .25); }
.submit-lock-text { margin-top: .75rem; font-size: .95rem; }
.submit-lock-progress { margin-top: .75rem; height: .6rem; }
.submit-lock-progress .progress-bar { width: 0; transition: width .2s; }
