:root {
  --le-navy: #0f172a;
  --le-navy-2: #111827;
  --le-indigo: #4f46e5;
  --le-indigo-2: #4338ca;
  --le-gold: #facc15;
  --le-surface: #ffffff;
  --le-bg: #f8fafc;
  --le-border: #e2e8f0;
  --le-muted: #64748b;
  --le-text: #0f172a;
  --shadow-material: 0 2px 10px rgba(15,23,42,.05);
  --shadow-material-md: 0 12px 34px rgba(15,23,42,.09);
  --shadow-material-lg: 0 22px 70px rgba(15,23,42,.14);
}
* { box-sizing: border-box; }
html { background: var(--le-bg); }
body {
  min-height: 100vh;
  background: var(--le-bg);
  color: var(--le-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
}
.font-serif { font-family: Merriweather, Georgia, serif; }
a, button, input, textarea, select { transition: color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease, opacity .18s ease; }
button, a { -webkit-tap-highlight-color: transparent; }

/* Shared layout */
.page-shell { min-height: 70vh; background: var(--le-bg); color: var(--le-text); }
.section-wrap { margin-left:auto; margin-right:auto; max-width:80rem; padding-left:1rem; padding-right:1rem; }
@media (min-width:640px){ .section-wrap{ padding-left:1.5rem; padding-right:1.5rem; } }
@media (min-width:1024px){ .section-wrap{ padding-left:2rem; padding-right:2rem; } }

/* Premium navigation */
.site-header,
header.sticky {
  background: rgba(15,23,42,.98) !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: 0 10px 30px rgba(15,23,42,.14) !important;
  backdrop-filter: blur(18px);
}
.nav-link {
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border-radius: .9rem;
  padding:.6rem .82rem;
  color:rgb(226 232 240);
  font-size:.925rem;
  font-weight:800;
  letter-spacing:-.01em;
}
.nav-link:hover,
.nav-link-active {
  background:rgba(255,255,255,.10);
  color:white;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.nav-dropdown-wrap { position:relative; isolation:isolate; }
.nav-dropdown-wrap::after {
  content:"";
  position:absolute;
  top:100%;
  left:50%;
  width:min(36rem, calc(100vw - 2rem));
  height:1.65rem;
  transform:translateX(-50%);
  z-index:94;
}
.nav-dropdown-wrap:has(.desktop-dropdown-account)::after {
  left:auto;
  right:0;
  width:16rem;
  transform:none;
}
.desktop-dropdown {
  position:absolute;
  left:50%;
  top:calc(100% + .55rem);
  z-index:95;
  width:min(36rem, calc(100vw - 2rem));
  transform:translateX(-50%) translateY(.35rem);
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  border:1px solid rgba(226,232,240,.96);
  border-radius:1.25rem;
  background:rgba(255,255,255,.98);
  padding:.7rem;
  box-shadow:0 22px 70px rgba(15,23,42,.16);
  backdrop-filter:blur(18px);
}
.nav-dropdown-wrap:hover > .desktop-dropdown,
.nav-dropdown-wrap:focus-within > .desktop-dropdown {
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
  transition-delay:.05s;
}
.desktop-dropdown-account {
  left:auto;
  right:0;
  width:16rem;
  transform:translateY(.35rem);
}
.nav-dropdown-wrap:hover > .desktop-dropdown-account,
.nav-dropdown-wrap:focus-within > .desktop-dropdown-account { transform:translateY(0); }
.dropdown-link,
.dropdown-link-card {
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  border-radius:1rem;
  padding:.85rem;
  color:#0f172a;
  font-size:.92rem;
  font-weight:800;
  border:1px solid transparent;
  background:transparent;
}
.dropdown-link:hover,
.dropdown-link-card:hover {
  background:#f8fafc;
  border-color:#e2e8f0;
  color:#3730a3;
  box-shadow:var(--shadow-material);
}
.dropdown-link-card .dropdown-icon,
.dropdown-icon {
  display:grid;
  flex:0 0 auto;
  place-items:center;
  width:2.25rem;
  height:2.25rem;
  border-radius:.85rem;
  background:#eef2ff;
  color:#4f46e5;
  font-size:1rem;
}
.dropdown-link strong,
.dropdown-link-card strong {
  display:block;
  color:#0f172a;
  line-height:1.15;
  letter-spacing:-.015em;
}
.dropdown-link small,
.dropdown-link-card small,
.dropdown-link span small {
  display:block;
  margin-top:.25rem;
  color:#64748b;
  font-size:.75rem;
  font-weight:700;
  line-height:1.25;
}
.mobile-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-radius:1rem;
  padding:.85rem 1rem;
  color:#e2e8f0;
  font-weight:800;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.06);
}
.mobile-link:hover { background:rgba(255,255,255,.11); color:white; }
#menu-overlay.open { display:block; }
#mobile-menu.open { transform: translateX(0) !important; }

/* Buttons */
.btn-primary,
.btn-gold,
.btn-ghost,
.btn-soft,
.btn-secondary,
.btn-danger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  border-radius:1rem;
  padding:.78rem 1.05rem;
  font-weight:900;
  letter-spacing:-.01em;
  line-height:1.1;
}
.btn-primary {
  background:linear-gradient(180deg,#6366f1,#4f46e5);
  color:white;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 22px rgba(79,70,229,.22), inset 0 1px 0 rgba(255,255,255,.20);
}
.btn-primary:hover { transform:translateY(-1px); background:linear-gradient(180deg,#5b5ff0,#4338ca); box-shadow:0 16px 34px rgba(79,70,229,.28); }
.btn-gold {
  background:linear-gradient(180deg,#fde047,#facc15);
  color:#0f172a;
  border:1px solid rgba(250,204,21,.65);
  box-shadow:0 10px 22px rgba(250,204,21,.22), inset 0 1px 0 rgba(255,255,255,.40);
}
.btn-gold:hover { transform:translateY(-1px); background:linear-gradient(180deg,#fef08a,#facc15); }
.btn-ghost {
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  color:white;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.btn-ghost:hover { transform:translateY(-1px); background:rgba(255,255,255,.14); }
.btn-soft,
.btn-secondary {
  border:1px solid #dbe3ef;
  background:white;
  color:#334155;
  box-shadow:var(--shadow-material);
}
.btn-soft:hover,
.btn-secondary:hover { transform:translateY(-1px); border-color:#c7d2fe; color:#3730a3; box-shadow:var(--shadow-material-md); }
.btn-danger { background:#e11d48; color:white; border:1px solid #be123c; box-shadow:0 12px 28px rgba(225,29,72,.20); }
.btn-danger:hover { transform:translateY(-1px); background:#be123c; }

/* Surfaces and form controls */
.content-card,
.surface-card {
  border:1px solid var(--le-border);
  background:white;
  border-radius:1.25rem;
  box-shadow:var(--shadow-material);
}
.content-card:hover { box-shadow:var(--shadow-material-md); }
.hero-card {
  position:relative;
  overflow:hidden;
  border-radius:1.5rem;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(135deg,#0f172a,#1e1b4b);
  box-shadow:0 24px 70px rgba(15,23,42,.24);
}
.glass-card { border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.08); backdrop-filter:blur(18px); }
.label { display:block; margin-bottom:.45rem; color:#334155; font-size:.875rem; font-weight:900; }
.help-text { color:#64748b; font-size:.88rem; line-height:1.55; }
.input,
input[type="text"].input,
input[type="email"].input,
input[type="password"].input,
input[type="date"].input,
input[type="url"].input,
select.input,
textarea.input,
.form-input {
  width:100%;
  border-radius:1rem;
  border:1px solid #cbd5e1;
  background:#fff;
  padding:.88rem 1rem;
  color:#0f172a;
  outline:none;
  box-shadow:0 1px 2px rgba(15,23,42,.03);
}
.input:focus,
.form-input:focus { border-color:#6366f1; box-shadow:0 0 0 4px rgba(99,102,241,.13), var(--shadow-material); }
.form-field { display:grid; gap:.5rem; }
.form-field > span { color:#334155; font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.badge { display:inline-flex; align-items:center; gap:.38rem; border-radius:999px; padding:.35rem .72rem; font-size:.74rem; font-weight:900; letter-spacing:-.01em; }
.badge-gold { background:#fef3c7; color:#92400e; border:1px solid #fde68a; }
.badge-indigo { background:#eef2ff; color:#3730a3; border:1px solid #e0e7ff; }
.badge-slate { background:#f1f5f9; color:#475569; border:1px solid #e2e8f0; }

/* Blog/post cards */
.post-card {
  overflow:hidden;
  border-radius:1.25rem;
  border:1px solid #e2e8f0;
  background:white;
  box-shadow:var(--shadow-material);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.post-card:hover { transform:translateY(-4px); border-color:#c7d2fe; box-shadow:var(--shadow-material-lg); }
.post-card img { height:13rem; width:100%; object-fit:cover; background:#e2e8f0; }
.skeleton { position:relative; overflow:hidden; background:#e2e8f0; border-radius:1rem; }
.skeleton:after { content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent); animation:shimmer 1.25s infinite; }
@keyframes shimmer { 100% { transform:translateX(100%); } }
.pagination-container, .pagination { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; }
.pagination-btn { border:1px solid #cbd5e1; border-radius:.9rem; background:white; color:#334155; padding:.58rem .82rem; font-size:.875rem; font-weight:900; box-shadow:var(--shadow-material); }
.pagination-btn:hover:not(:disabled) { border-color:#6366f1; color:#4338ca; transform:translateY(-1px); }
.pagination-btn.active,
.pagination-btn:disabled.active { background:#4f46e5; color:white; border-color:#4f46e5; }
.pagination-btn:disabled { opacity:.45; cursor:not-allowed; }

/* Reading content */
.prose-content { color:#334155; font-size:1.065rem; line-height:1.86; }
.prose-content h1, .prose-content h2, .prose-content h3, .prose-content h4 { color:#0f172a; font-weight:900; line-height:1.18; margin-top:2.1rem; margin-bottom:.85rem; letter-spacing:-.035em; }
.prose-content h1 { font-size:2.45rem; }
.prose-content h2 { font-size:1.8rem; }
.prose-content h3 { font-size:1.35rem; }
.prose-content p { margin:1rem 0; }
.prose-content a { color:#4f46e5; font-weight:800; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.prose-content ul, .prose-content ol { margin:1rem 0; padding-left:1.5rem; }
.prose-content li { margin:.45rem 0; }
.prose-content blockquote { margin:1.5rem 0; border-left:4px solid #facc15; border-radius:1rem; background:#fffbeb; padding:1rem 1.2rem; color:#78350f; }
.prose-content img { border-radius:1rem; max-width:100%; height:auto; box-shadow:var(--shadow-material-md); }
.prose-content table { width:100%; border-collapse:collapse; margin:1.5rem 0; overflow:hidden; border-radius:1rem; }
.prose-content th, .prose-content td { border:1px solid #e2e8f0; padding:.75rem; }
.prose-content th { background:#f8fafc; }
.prose-content pre { overflow:auto; border-radius:1rem; background:#020617; color:white; padding:1rem; }
.iframe-container, .video-shell { position:relative; overflow:hidden; border-radius:1.15rem; background:#020617; aspect-ratio:16/9; }
.iframe-container iframe, .video-shell iframe, .video-shell video { position:absolute; inset:0; width:100%; height:100%; }

/* Notifications, comments, modals */
.notification { position:fixed; right:1rem; bottom:1rem; z-index:9999; max-width:min(26rem,calc(100vw - 2rem)); transform:translateY(1rem); opacity:0; border-radius:1rem; padding:.9rem 1rem; color:white; font-weight:900; box-shadow:var(--shadow-material-lg); transition:opacity .25s ease, transform .25s ease; }
.notification.show { transform:translateY(0); opacity:1; }
.comment-card { border:1px solid #e2e8f0; background:white; border-radius:1.15rem; padding:1rem; margin-bottom:.9rem; box-shadow:var(--shadow-material); }
.comment-header { display:flex; align-items:center; gap:.7rem; color:#64748b; font-size:.875rem; }
.comment-author { font-weight:900; color:#0f172a; }
.comment-date { margin-left:auto; }
.avatar { height:2.5rem; width:2.5rem; border-radius:999px; object-fit:cover; background:#e2e8f0; }
.comment-text { margin-top:.8rem; color:#334155; line-height:1.65; }
.comment-actions { margin-top:.85rem; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.comment-actions button, .reply-form button, .save-edit,
.comment-actions .like-btn,
.comment-actions .like-static {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  min-height:2.25rem;
  border-radius:.9rem;
  border:1px solid #e2e8f0;
  background:#f8fafc;
  padding:.45rem .78rem;
  font-size:.84rem;
  font-weight:900;
  color:#334155;
  line-height:1;
}
.comment-actions button:hover, .reply-form button:hover, .save-edit:hover { border-color:#6366f1; color:#4338ca; background:#eef2ff; }
.comment-actions .delete-btn:hover { border-color:#fecdd3; background:#fff1f2; color:#be123c; }
.comment-actions .like-btn:hover, .comment-actions .like-btn.liked { border-color:#fecdd3; background:#fff1f2; color:#be123c; }
.like-heart { font-size:1.12rem; line-height:1; }
.like-count { min-width:.65rem; text-align:left; }
.heart-icon.filled-heart path { fill:#e11d48; stroke:#e11d48; }
.reply-section { margin-top:.75rem; margin-left:1rem; padding-left:1rem; border-left:2px solid #e2e8f0; }
.reply-form textarea, .edit-input { margin-top:.75rem; width:100%; min-height:5rem; border-radius:1rem; border:1px solid #cbd5e1; padding:.75rem; }
.comment-card .edit-input { font:inherit; color:#0f172a; background:#fff; }
.modal { display:none; position:fixed; inset:0; z-index:9998; align-items:center; justify-content:center; padding:1rem; background:rgba(15,23,42,.72); backdrop-filter:blur(8px); opacity:0; transition:opacity .2s ease; }
.modal.show { opacity:1; }
.modal-content { width:min(34rem,100%); border-radius:1.25rem; background:white; padding:1.5rem; color:#0f172a; box-shadow:var(--shadow-material-lg); }
.switch { position:relative; display:inline-flex; width:3.3rem; height:1.85rem; }
.switch input { opacity:0; width:0; height:0; }
.slider { position:absolute; cursor:pointer; inset:0; background:#cbd5e1; border-radius:999px; transition:.2s; }
.slider:before { content:""; position:absolute; height:1.35rem; width:1.35rem; left:.25rem; top:.25rem; background:white; border-radius:999px; box-shadow:0 2px 8px rgba(15,23,42,.18); transition:.2s; }
.switch input:checked + .slider { background:#4f46e5; }
.switch input:checked + .slider:before { transform:translateX(1.45rem); }

/* Landing page premium system */
.home-hero-shell {
  position:relative;
  overflow:hidden;
  background:#0f172a;
  border-bottom:1px solid #e2e8f0;
}
.home-hero-shell::before {
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(135deg,#0f172a 0%,#111827 55%,#1e1b4b 100%);
  background-size: 44px 44px, 44px 44px, auto;
}
.home-hero-card {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.5rem;
  background:rgba(255,255,255,.055);
  box-shadow:0 28px 90px rgba(2,6,23,.28);
}
.home-topic-card {
  border:1px solid #e2e8f0;
  background:#ffffff;
  color:#0f172a;
  border-radius:1.25rem !important;
  box-shadow:var(--shadow-material);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.home-topic-card:hover { transform:translateY(-3px); border-color:#c7d2fe; box-shadow:var(--shadow-material-md); }
.home-orbit-card {
  position:relative;
  overflow:hidden;
  border:1px solid #e2e8f0;
  border-radius:1.5rem;
  background:#fff;
  box-shadow:var(--shadow-material-lg);
}
.home-orbit-card::after { content:""; position:absolute; right:-4rem; top:-4rem; width:14rem; height:14rem; border-radius:999px; background:radial-gradient(circle, rgba(79,70,229,.12), transparent 65%); }
.home-feature-ribbon { display:grid; gap:1rem; }
@media (min-width:768px){ .home-feature-ribbon { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.home-feature-chip {
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.1rem;
  background:rgba(255,255,255,.08);
  padding:1rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.home-feature-chip strong { display:block; color:white; font-size:1rem; }
.home-feature-chip span { display:block; margin-top:.25rem; color:#cbd5e1; font-size:.88rem; line-height:1.45; }
.home-search-panel { border:1px solid rgba(255,255,255,.14); border-radius:1.25rem; background:rgba(255,255,255,.08); padding:.85rem; backdrop-filter:blur(18px); }
.home-search-panel a { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-radius:1rem; background:white; color:#0f172a; padding:1rem 1.15rem; font-weight:900; box-shadow:var(--shadow-material); }
.home-search-panel a:hover { transform:translateY(-1px); box-shadow:var(--shadow-material-md); }

/* Prayer Circle / Prayer Wall */
.prayer-page { background:#f8fafc; color:#0f172a; }
.prayer-hero-section {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-bottom:1px solid #e2e8f0;
  background:#0f172a;
}
.prayer-hero-section::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(135deg,#0f172a 0%,#111827 55%,#1e1b4b 100%);
  background-size:44px 44px,44px 44px,auto;
}
.prayer-hero-panel {
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.5rem;
  background:rgba(255,255,255,.07);
  box-shadow:0 24px 70px rgba(2,6,23,.24);
  backdrop-filter:blur(18px);
}
.prayer-submit-card,
.prayer-video-feature {
  border:1px solid rgba(255,255,255,.12);
  border-radius:1.5rem;
  background:rgba(255,255,255,.08);
  box-shadow:0 24px 70px rgba(2,6,23,.20);
  backdrop-filter:blur(18px);
}
.prayer-submit-card .form-input { border-color:rgba(226,232,240,.9); background:white; }
.prayer-video-container { max-width:none; margin:0; overflow:hidden; border-radius:1.15rem; border:1px solid rgba(255,255,255,.12); background:#020617; box-shadow:0 18px 50px rgba(0,0,0,.22); }
.prayer-video-container video { border-radius:1.15rem; aspect-ratio:16/9; object-fit:cover; }
.prayer-stat-tile { border:1px solid rgba(255,255,255,.12); border-radius:1.1rem; background:rgba(255,255,255,.07); padding:1rem; }
.prayer-wall-section { background:#f8fafc; color:#0f172a; }
.prayer-item { position:relative; display:grid; gap:1rem; border:1px solid #e2e8f0; background:white; border-radius:1.25rem; padding:1rem; box-shadow:var(--shadow-material); }
.prayer-item:hover { border-color:#c7d2fe; box-shadow:var(--shadow-material-md); }
@media (min-width:768px){ .prayer-item{ grid-template-columns:minmax(0,1fr) auto; align-items:start; } }
.prayer-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.pray-btn, .save-btn, .cancel-btn { border-radius:.9rem; border:1px solid #e2e8f0; background:#f8fafc; padding:.55rem .8rem; font-size:.82rem; font-weight:900; color:#334155; }
.pray-btn:hover, .save-btn:hover, .cancel-btn:hover { border-color:#6366f1; color:#4338ca; background:#eef2ff; }
.prayer-dropdown { display:none; position:absolute; right:1rem; top:3rem; z-index:20; min-width:11rem; border:1px solid #e2e8f0; border-radius:1rem; background:white; box-shadow:var(--shadow-material-lg); overflow:hidden; }
.prayer-dropdown button { display:block; width:100%; padding:.75rem 1rem; text-align:left; font-weight:800; color:#334155; }
.prayer-dropdown button:hover { background:#f8fafc; color:#4338ca; }
.prayer-mini-key { display:inline-flex; align-items:center; gap:.4rem; border:1px solid #e2e8f0; background:white; border-radius:.9rem; padding:.45rem .7rem; box-shadow:var(--shadow-material); }
.prayer-action-stack { align-content:start; min-width:12rem; }
.prayer-icon-button { display:flex; align-items:center; gap:.7rem; width:100%; border:1px solid #e2e8f0; border-radius:1rem; background:#f8fafc; padding:.75rem .9rem; color:#334155; font-weight:900; text-align:left; box-shadow:var(--shadow-material); }
.prayer-icon-button:hover { transform:translateY(-1px); border-color:#a5b4fc; background:#eef2ff; color:#3730a3; box-shadow:var(--shadow-material-md); }
.prayer-button-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:2.45rem; height:2.45rem; border-radius:.85rem; background:white; font-size:1.2rem; box-shadow:inset 0 0 0 1px rgba(226,232,240,.85); }
.prayer-button-copy { display:grid; gap:.1rem; min-width:0; }
.prayer-button-copy strong { line-height:1.1; color:#0f172a; }
.prayer-button-copy small { color:#64748b; font-size:.72rem; font-weight:800; }
.prayer-status-row { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
.prayer-status-card { display:inline-flex; align-items:center; gap:.65rem; border-radius:1rem; padding:.65rem .75rem; border:1px solid #e2e8f0; background:#fff; box-shadow:var(--shadow-material); }
.prayer-status-card strong { display:block; color:#0f172a; font-size:.8rem; line-height:1.1; }
.prayer-status-card small { display:block; margin-top:.12rem; color:#64748b; font-size:.7rem; font-weight:800; }
.prayer-status-emoji { display:inline-flex; align-items:center; justify-content:center; width:2.15rem; height:2.15rem; border-radius:.8rem; background:#f8fafc; font-size:1.1rem; }
.prayer-status-answered { border-color:#fde68a; background:#fffbeb; }
.prayer-status-answered .prayer-status-emoji { background:#fef3c7; }
.prayer-status-keep { border-color:#c7d2fe; background:#eef2ff; }
.prayer-status-keep .prayer-status-emoji { background:#e0e7ff; }
.share-modal-backdrop { position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(15,23,42,.72); backdrop-filter:blur(8px); }
.share-modal { width:min(34rem,100%); border-radius:1.25rem; background:white; color:#0f172a; padding:1.4rem; box-shadow:var(--shadow-material-lg); }
.share-modal-close { display:inline-flex; align-items:center; justify-content:center; width:2.35rem; height:2.35rem; border-radius:.9rem; border:1px solid #e2e8f0; background:#f8fafc; color:#334155; font-size:1.5rem; line-height:1; font-weight:900; }
.share-modal-close:hover { border-color:#a5b4fc; color:#3730a3; }
.share-option { display:flex; align-items:center; gap:.55rem; border:1px solid #e2e8f0; background:#f8fafc; border-radius:1rem; padding:.85rem 1rem; color:#334155; font-weight:900; }
.share-option:hover { border-color:#a5b4fc; background:#eef2ff; color:#3730a3; }
@media (max-width:767px) { .prayer-action-stack { min-width:0; width:100%; } .prayer-icon-button { width:auto; flex:1 1 10rem; } .prayer-video-feature { border-radius:1.25rem; padding:1rem; } .home-hero-card, .prayer-hero-panel { border-radius:1.25rem; } }

/* Admin/editor utility styling */
.ql-container { min-height:420px; font-family:Inter, ui-sans-serif, system-ui; font-size:1rem; border-bottom-left-radius:1rem; border-bottom-right-radius:1rem; }
.ql-toolbar { border-top-left-radius:1rem; border-top-right-radius:1rem; background:#f8fafc; }
.admin-grid { display:grid; gap:1rem; }
@media (min-width:768px){ .admin-grid.two{ grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-grid.three{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.table-modern { width:100%; border-collapse:separate; border-spacing:0 .75rem; }
.table-modern th { padding:.5rem .75rem; text-align:left; font-size:.75rem; text-transform:uppercase; letter-spacing:.14em; color:#64748b; }
.table-modern td { background:white; border-top:1px solid #e2e8f0; border-bottom:1px solid #e2e8f0; padding:1rem .75rem; color:#334155; }
.table-modern td:first-child { border-left:1px solid #e2e8f0; border-top-left-radius:1rem; border-bottom-left-radius:1rem; }
.table-modern td:last-child { border-right:1px solid #e2e8f0; border-top-right-radius:1rem; border-bottom-right-radius:1rem; }
.footer-link { color:#cbd5e1; font-weight:700; }
.footer-link:hover { color:#fff; }
[v-cloak] { display:none !important; }
@media print { nav, footer, .btn-primary, .btn-secondary, .btn-gold, .btn-ghost { display:none !important; } body { background:white !important; color:#0f172a !important; } }

/* V12 prayer list + prayer wall UX refinements */
.prayer-wall-card {
  gap: 1rem !important;
}
@media (min-width: 1024px) {
  .prayer-wall-card {
    grid-template-columns: minmax(0, 1fr) 10.75rem !important;
  }
}
.prayer-action-stack {
  width: 100%;
  min-width: 0 !important;
  align-content: start;
}
@media (min-width: 1024px) {
  .prayer-action-stack {
    width: 10.75rem;
  }
}
.prayer-icon-button {
  min-height: 3.65rem;
  padding: .62rem .68rem !important;
  border-radius: .9rem !important;
}
.prayer-button-icon {
  width: 2.15rem !important;
  height: 2.15rem !important;
  border-radius: .75rem !important;
  font-size: 1rem !important;
}
.prayer-button-copy strong {
  font-size: .95rem;
}
.prayer-button-copy small {
  font-size: .68rem !important;
}
@media (max-width: 767px) {
  .prayer-actions {
    border-top: 1px solid #e2e8f0;
    padding-top: .8rem;
  }
  .prayer-icon-button {
    min-width: 0;
  }
}

/* V13 article upload + readable highlight refinements */
::selection {
  background: rgba(250, 204, 21, 0.55) !important;
  color: #0f172a !important;
  text-shadow: none !important;
}
::-moz-selection {
  background: rgba(250, 204, 21, 0.55) !important;
  color: #0f172a !important;
  text-shadow: none !important;
}
.prose-content ::selection,
.ql-editor ::selection,
.form-input::selection,
.input::selection,
textarea::selection,
input::selection {
  background: rgba(250, 204, 21, 0.62) !important;
  color: #0f172a !important;
}
.prose-content mark,
.search-result mark,
mark {
  background: #fde68a !important;
  color: #0f172a !important;
  border-radius: .35rem;
  padding: .05rem .25rem;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.article-upload-zone {
  display: flex;
  align-items: center;
  gap: .9rem;
  cursor: pointer;
  border: 1px dashed #a5b4fc;
  border-radius: 1rem;
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  padding: 1rem;
  box-shadow: var(--shadow-material);
}
.article-upload-zone:hover,
.article-upload-zone:focus-within {
  border-color: #4f46e5;
  background: #eef2ff;
  box-shadow: var(--shadow-material-md);
  transform: translateY(-1px);
}
.article-upload-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: .95rem;
  background: #4f46e5;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 900;
  box-shadow: 0 12px 26px rgba(79, 70, 229, .22);
}
.article-upload-copy {
  display: grid;
  gap: .2rem;
  min-width: 0;
}
.article-upload-copy strong {
  color: #0f172a;
  font-size: .95rem;
  font-weight: 900;
  letter-spacing: -.01em;
}
.article-upload-copy small {
  color: #64748b;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.45;
}
.article-image-preview-wrap {
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #f8fafc;
  box-shadow: var(--shadow-material);
}
.article-image-preview {
  display: block;
  width: 100%;
  max-height: 15rem;
  object-fit: cover;
}


/* V14 article editor + article rendering refinements */
::selection {
  background: rgba(250, 204, 21, .82);
  color: #020617;
  text-shadow: none;
}
.ql-editor ::selection,
.prose-content ::selection,
input::selection,
textarea::selection {
  background: rgba(250, 204, 21, .88);
  color: #020617;
  text-shadow: none;
}
.prose-content mark,
mark.search-highlight {
  border-radius: .45rem;
  background: linear-gradient(180deg, rgba(254, 240, 138, .95), rgba(250, 204, 21, .82));
  box-shadow: 0 0 0 .16rem rgba(250, 204, 21, .20);
  color: #020617;
  padding: .05rem .22rem;
}
.article-editor-shell {
  overflow: hidden;
  border: 1px solid #cbd5e1;
  border-radius: 1.15rem;
  background: #fff;
  box-shadow: var(--shadow-material);
}
.article-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
  border: 0 !important;
  border-bottom: 1px solid #e2e8f0 !important;
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  padding: .7rem .8rem !important;
}
.article-editor-toolbar .ql-formats {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  margin-right: .45rem !important;
  border-right: 1px solid #e2e8f0;
  padding-right: .55rem;
}
.article-editor-toolbar .ql-formats:last-child { border-right: 0; }
.article-editor-toolbar button,
.article-editor-toolbar .ql-picker-label {
  border-radius: .7rem !important;
}
.article-editor-toolbar button:hover,
.article-editor-toolbar button.ql-active,
.article-editor-toolbar .ql-picker-label:hover {
  background: #eef2ff !important;
  color: #3730a3 !important;
}
.article-editor-toolbar .article-table-button {
  display: inline-grid !important;
  place-items: center;
  width: 2rem !important;
  height: 1.75rem !important;
  border: 1px solid #c7d2fe !important;
  background: linear-gradient(180deg, #eef2ff, #e0e7ff) !important;
  color: #3730a3 !important;
  font-size: 1.08rem !important;
  font-weight: 900 !important;
}
.article-editor-shell .ql-container.ql-snow {
  border: 0 !important;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 1rem;
}
.article-editor-shell .ql-editor {
  min-height: 420px;
  color: #0f172a;
  line-height: 1.76;
}
.article-editor-shell .ql-editor table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
}
.article-editor-shell .ql-editor th,
.article-editor-shell .ql-editor td {
  border: 1px solid #cbd5e1;
  padding: .65rem;
}
.article-editor-shell .ql-editor th {
  background: #eef2ff;
  color: #1e1b4b;
  font-weight: 900;
}
.btn-danger-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border: 1px solid #fecdd3;
  border-radius: 1rem;
  background: #fff;
  color: #be123c;
  padding: .78rem 1.05rem;
  font-weight: 950;
  letter-spacing: -.01em;
  box-shadow: var(--shadow-material);
}
.btn-danger-outline:hover,
.btn-danger-outline.is-confirming {
  transform: translateY(-1px);
  background: #e11d48;
  border-color: #be123c;
  color: #fff;
  box-shadow: 0 14px 34px rgba(225, 29, 72, .22);
}
.editor-category-chip {
  position: relative;
  overflow: hidden;
  background: #fff;
}
.editor-category-chip::before {
  content: "";
  display: inline-block;
  width: .72rem;
  height: .72rem;
  border-radius: 999px;
  background: #c4b5fd;
  box-shadow: 0 0 0 .22rem #f5f3ff;
}
.editor-category-chip:nth-child(4n+1)::before { background:#c4b5fd; box-shadow:0 0 0 .22rem #f5f3ff; }
.editor-category-chip:nth-child(4n+2)::before { background:#f9a8d4; box-shadow:0 0 0 .22rem #fdf2f8; }
.editor-category-chip:nth-child(4n+3)::before { background:#86efac; box-shadow:0 0 0 .22rem #f0fdf4; }
.editor-category-chip:nth-child(4n+4)::before { background:#fdba74; box-shadow:0 0 0 .22rem #fff7ed; }

.prose-content ul,
.prose-content ol {
  margin: 1.25rem 0;
  padding-left: 1.8rem;
}
.prose-content ul { list-style: none; padding-left: 0; }
.prose-content ul > li,
.prose-content ol > li[data-list="bullet"] {
  position: relative;
  list-style: none;
  padding-left: 2rem;
}
.prose-content ul > li::before,
.prose-content ol > li[data-list="bullet"]::before {
  content: "";
  position: absolute;
  left: .15rem;
  top: .78em;
  width: .72rem;
  height: .72rem;
  border-radius: .35rem;
  background: linear-gradient(135deg, #facc15, #6366f1);
  box-shadow: 0 0 0 .24rem rgba(224, 231, 255, .92), 0 8px 18px rgba(79, 70, 229, .16);
  transform: translateY(-50%) rotate(12deg);
}
.prose-content ol {
  list-style: decimal outside;
  counter-reset: le-article-list;
}
.prose-content ol > li[data-list] { list-style: none; }
.prose-content ol > li[data-list="ordered"] {
  position: relative;
  list-style: none;
  counter-increment: le-article-list;
  padding-left: 2.65rem;
}
.prose-content ol > li[data-list="ordered"]::before {
  content: counter(le-article-list);
  position: absolute;
  left: 0;
  top: .18rem;
  display: grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: .72rem;
  background: linear-gradient(180deg, #eef2ff, #e0e7ff);
  border: 1px solid #c7d2fe;
  color: #3730a3;
  font-size: .78rem;
  font-weight: 950;
  box-shadow: var(--shadow-material);
}
.prose-content .ql-ui { display: none !important; }
.prose-content li.ql-indent-1 { margin-left: 1.5rem; }
.prose-content li.ql-indent-2 { margin-left: 3rem; }
.prose-content li.ql-indent-3 { margin-left: 4.5rem; }
.prose-content li.ql-indent-4 { margin-left: 6rem; }
.prose-content li.ql-indent-5 { margin-left: 7.5rem; }
.article-table-wrap {
  margin: 1.6rem 0;
  overflow-x: auto;
  border: 1px solid #dbe3ef;
  border-radius: 1rem;
  background: #fff;
  box-shadow: var(--shadow-material);
}
.article-table-wrap table,
.prose-content table {
  min-width: 38rem;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
  background: #fff;
}
.prose-content table th,
.prose-content table td {
  border: 0;
  border-bottom: 1px solid #e2e8f0;
  border-right: 1px solid #e2e8f0;
  padding: .9rem .95rem;
  vertical-align: top;
}
.prose-content table th:last-child,
.prose-content table td:last-child { border-right: 0; }
.prose-content table tr:last-child td { border-bottom: 0; }
.prose-content table th {
  background: linear-gradient(180deg, #eef2ff, #f8fafc);
  color: #1e1b4b;
  font-size: .82rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.prose-content table tr:nth-child(even) td { background: #fbfdff; }
@media (max-width: 640px) {
  .article-editor-toolbar { gap: .35rem; padding: .58rem !important; }
  .article-editor-toolbar .ql-formats { margin-right: .25rem !important; padding-right: .35rem; }
  .prose-content li.ql-indent-3,
  .prose-content li.ql-indent-4,
  .prose-content li.ql-indent-5 { margin-left: 2.5rem; }
}

/* V15 global soft-accent polish: black/blue/yellow foundation with restrained pastel highlights */
:root {
  --le-lavender: #ede9fe;
  --le-lavender-strong: #8b5cf6;
  --le-pink: #fce7f3;
  --le-pink-strong: #ec4899;
  --le-mint: #dcfce7;
  --le-mint-strong: #22c55e;
  --le-peach: #ffedd5;
  --le-peach-strong: #f97316;
  --le-sky-soft: #e0f2fe;
  --le-sky-strong: #0ea5e9;
}
::selection { background:#fde047; color:#020617; }
.content-card,
.surface-card,
.post-card,
.comment-card,
.prayer-item,
.prayer-wall-card,
.calendar-app-card,
.calendar-explanation-card {
  position: relative;
  isolation: isolate;
}
.content-card::before,
.surface-card::before,
.post-card::before,
.comment-card::before,
.prayer-item::before,
.prayer-wall-card::before,
.calendar-app-card::before,
.calendar-explanation-card::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,#facc15,#6366f1) left top / 4px 100% no-repeat;
  opacity:.48;
  pointer-events:none;
}
.post-card:nth-child(4n+1)::before,
.content-card:nth-child(4n+1)::before,
.prayer-item:nth-child(4n+1)::before { background:linear-gradient(180deg,var(--le-lavender-strong),#c4b5fd) left top / 4px 100% no-repeat; }
.post-card:nth-child(4n+2)::before,
.content-card:nth-child(4n+2)::before,
.prayer-item:nth-child(4n+2)::before { background:linear-gradient(180deg,var(--le-pink-strong),#f9a8d4) left top / 4px 100% no-repeat; }
.post-card:nth-child(4n+3)::before,
.content-card:nth-child(4n+3)::before,
.prayer-item:nth-child(4n+3)::before { background:linear-gradient(180deg,var(--le-mint-strong),#86efac) left top / 4px 100% no-repeat; }
.post-card:nth-child(4n+4)::before,
.content-card:nth-child(4n+4)::before,
.prayer-item:nth-child(4n+4)::before { background:linear-gradient(180deg,var(--le-peach-strong),#fdba74) left top / 4px 100% no-repeat; }
.badge {
  border-width:1px;
  box-shadow:0 1px 2px rgba(15,23,42,.03), inset 0 1px 0 rgba(255,255,255,.65);
}
.badge-gold { background:#fef3c7; color:#92400e; border-color:#fde68a; }
.badge-indigo { background:#eef2ff; color:#3730a3; border-color:#c7d2fe; }
.badge-slate { background:#f8fafc; color:#475569; border-color:#e2e8f0; }
.badge-lavender { background:var(--le-lavender); color:#5b21b6; border-color:#ddd6fe; }
.badge-pink { background:var(--le-pink); color:#be185d; border-color:#fbcfe8; }
.badge-mint { background:var(--le-mint); color:#166534; border-color:#bbf7d0; }
.badge-peach { background:var(--le-peach); color:#9a3412; border-color:#fed7aa; }
.post-categories .badge:nth-child(4n+1),
.search-result .badge:nth-child(4n+1),
#category-filters label:nth-child(4n+1) { background:var(--le-lavender); color:#5b21b6; border-color:#ddd6fe; }
.post-categories .badge:nth-child(4n+2),
.search-result .badge:nth-child(4n+2),
#category-filters label:nth-child(4n+2) { background:var(--le-pink); color:#be185d; border-color:#fbcfe8; }
.post-categories .badge:nth-child(4n+3),
.search-result .badge:nth-child(4n+3),
#category-filters label:nth-child(4n+3) { background:var(--le-mint); color:#166534; border-color:#bbf7d0; }
.post-categories .badge:nth-child(4n+4),
.search-result .badge:nth-child(4n+4),
#category-filters label:nth-child(4n+4) { background:var(--le-peach); color:#9a3412; border-color:#fed7aa; }
.dropdown-link-card:nth-child(4n+1) .dropdown-icon,
.home-topic-card:nth-child(4n+1) > span { background:var(--le-lavender); color:#6d28d9; }
.dropdown-link-card:nth-child(4n+2) .dropdown-icon,
.home-topic-card:nth-child(4n+2) > span { background:var(--le-pink); color:#db2777; }
.dropdown-link-card:nth-child(4n+3) .dropdown-icon,
.home-topic-card:nth-child(4n+3) > span { background:var(--le-mint); color:#16a34a; }
.dropdown-link-card:nth-child(4n+4) .dropdown-icon,
.home-topic-card:nth-child(4n+4) > span { background:var(--le-peach); color:#ea580c; }
.category-filter-chip {
  position:relative;
  overflow:hidden;
}
.category-filter-chip::before {
  content:"";
  width:.62rem;
  height:.62rem;
  border-radius:999px;
  background:currentColor;
  opacity:.55;
  box-shadow:0 0 0 .22rem rgba(255,255,255,.58);
}
.category-filter-chip:has(input:checked) {
  border-color:#4f46e5 !important;
  background:#eef2ff !important;
  color:#3730a3 !important;
  box-shadow:0 10px 24px rgba(79,70,229,.16);
}
.home-topic-card,
.dropdown-link-card,
.prayer-icon-button,
.pagination-btn,
.btn-soft,
.btn-secondary,
.form-input,
.input { border-radius:1rem; }
.btn-danger-outline {
  background:#fff;
  color:#be123c;
  border-color:#fecdd3;
}
.btn-danger-outline:hover,
.btn-danger-outline.is-confirming {
  background:#be123c;
  border-color:#be123c;
  color:#fff;
}

/* Embedded Biblical Calendar page */
.biblical-calendar-page .hero-card::before {
  content:"";
  position:absolute;
  inset:auto -10% -45% auto;
  width:28rem;
  height:28rem;
  border-radius:999px;
  background:radial-gradient(circle, rgba(250,204,21,.22), transparent 65%);
  pointer-events:none;
}
.calendar-hero-stat {
  border:1px solid rgba(255,255,255,.14);
  border-radius:1rem;
  background:rgba(255,255,255,.08);
  padding:1rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.calendar-hero-stat strong { display:block; color:#fde047; font-size:1.7rem; line-height:1; font-weight:950; letter-spacing:-.04em; }
.calendar-hero-stat span { display:block; margin-top:.35rem; color:#cbd5e1; font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }
.calendar-app-card,
.calendar-explanation-card {
  overflow:hidden;
  border:1px solid #e2e8f0;
  border-radius:1.25rem;
  background:#fff;
  box-shadow:var(--shadow-material-md);
}
.calendar-card-header {
  display:grid;
  gap:1.25rem;
  padding:1.25rem;
  border-bottom:1px solid #e2e8f0;
  background:linear-gradient(180deg,#fff,#f8fafc);
}
@media (min-width:768px){ .calendar-card-header{ grid-template-columns:minmax(0,1fr) auto; align-items:end; padding:1.5rem; } }
.calendar-controls { display:flex; flex-wrap:wrap; gap:.75rem; }
.calendar-select {
  min-width:9rem;
  border:1px solid #cbd5e1;
  border-radius:1rem;
  background:#fff;
  padding:.78rem .9rem;
  color:#0f172a;
  font-weight:800;
  box-shadow:var(--shadow-material);
  outline:none;
}
.calendar-select:focus { border-color:#6366f1; box-shadow:0 0 0 4px rgba(99,102,241,.14), var(--shadow-material); }
.calendar-wrapper {
  width:100%;
  overflow-x:auto;
  padding:1rem;
  background:linear-gradient(180deg,#fff,#f8fafc);
}
.calendar-wrapper::-webkit-scrollbar { height:10px; }
.calendar-wrapper::-webkit-scrollbar-track { background:#f1f5f9; border-radius:999px; }
.calendar-wrapper::-webkit-scrollbar-thumb { background:#c7d2fe; border-radius:999px; border:2px solid #f1f5f9; }
.calendar-grid {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:.5rem;
  min-width:760px;
}
.calendar-day-header {
  border-radius:.85rem;
  background:#0f172a;
  color:#fff;
  padding:.78rem .45rem;
  text-align:center;
  font-size:.78rem;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.calendar-day-cell {
  min-height:8.2rem;
  border:1px solid #e2e8f0;
  border-radius:1rem;
  background:#fff;
  padding:.75rem;
  display:flex;
  flex-direction:column;
  box-shadow:0 1px 3px rgba(15,23,42,.035);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.calendar-day-cell:hover { transform:translateY(-2px); border-color:#c7d2fe; box-shadow:var(--shadow-material-md); }
.calendar-day-cell.empty { background:transparent; border-color:transparent; box-shadow:none; }
.calendar-day-cell.feast { background:#fff7ed; border-color:#fed7aa; box-shadow:0 10px 28px rgba(249,115,22,.08); }
.calendar-day-cell.leap-week { background:#eff6ff; border-color:#bfdbfe; box-shadow:0 10px 28px rgba(14,165,233,.08); }
.greg-date { font-size:1.25rem; font-weight:950; color:#0f172a; letter-spacing:-.04em; }
.solar-date { margin-top:.25rem; color:#64748b; font-size:.76rem; font-weight:800; }
.feast-label { margin-top:auto; color:#9a3412; font-size:.73rem; line-height:1.25; font-weight:950; }
.leap-label { color:#075985; }
.scripture-ref { display:block; margin-top:.1rem; color:#64748b; font-size:.64rem; font-weight:800; }
.calendar-explanation-card { padding:1.25rem; }
@media (min-width:768px){ .calendar-explanation-card{ padding:1.5rem; } }
.calendar-note-card {
  border:1px solid #e2e8f0;
  border-radius:1rem;
  background:#fff;
  padding:1.1rem;
  box-shadow:var(--shadow-material);
}
.calendar-note-card:nth-child(4n+1){ background:linear-gradient(180deg,#fff,#faf5ff); }
.calendar-note-card:nth-child(4n+2){ background:linear-gradient(180deg,#fff,#fdf2f8); }
.calendar-note-card:nth-child(4n+3){ background:linear-gradient(180deg,#fff,#f0fdf4); }
.calendar-note-card:nth-child(4n+4){ background:linear-gradient(180deg,#fff,#fff7ed); }
.calendar-note-card h3 { margin:0 0 .6rem; color:#0f172a; font-size:1rem; font-weight:950; letter-spacing:-.025em; }
.calendar-note-card p,
.calendar-note-card li { color:#475569; font-size:.92rem; line-height:1.65; }
.calendar-note-card ul { margin:.8rem 0 0; padding-left:1.1rem; }
@media (max-width:640px){ .calendar-wrapper{ padding:.75rem; } .calendar-grid{ min-width:680px; } .calendar-day-cell{ min-height:7.6rem; } }

/* V16: Biblical calendar today/current-month highlight */
.calendar-control-panel {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  align-items: flex-start;
}
@media (min-width: 768px) {
  .calendar-control-panel { align-items: flex-end; }
}
.calendar-today-note {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2rem;
  border: 1px solid #fde68a;
  border-radius: 999px;
  background: linear-gradient(180deg, #fffbeb, #fef3c7);
  color: #854d0e;
  padding: .45rem .75rem;
  font-size: .75rem;
  font-weight: 900;
  box-shadow: 0 8px 22px rgba(234, 179, 8, .12);
}
.today-dot {
  width: .55rem;
  height: .55rem;
  border-radius: 999px;
  background: #facc15;
  box-shadow: 0 0 0 .22rem rgba(250, 204, 21, .22);
  flex: 0 0 auto;
}
.calendar-day-cell.today {
  position: relative;
  border-color: #facc15 !important;
  background: linear-gradient(180deg, #fffdf4, #fffbeb) !important;
  box-shadow: 0 0 0 3px rgba(250, 204, 21, .28), 0 18px 38px rgba(15, 23, 42, .12) !important;
  transform: translateY(-1px);
}
.calendar-day-cell.today::after {
  content: "";
  position: absolute;
  inset: .35rem;
  border: 1px solid rgba(79, 70, 229, .22);
  border-radius: .75rem;
  pointer-events: none;
}
.calendar-day-cell.today .greg-date {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  color: #1e1b4b;
}
.today-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #4f46e5;
  color: #fff;
  padding: .22rem .5rem;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: 0 8px 18px rgba(79, 70, 229, .22);
}
.calendar-day-cell.today.feast {
  background: linear-gradient(180deg, #fff7ed, #fffbeb) !important;
}
.calendar-day-cell.today.leap-week {
  background: linear-gradient(180deg, #eff6ff, #fffbeb) !important;
}

/* V17: Uplifting hero refresh
   Purpose: keep the premium structure while removing the heavy dark mood from page hero sections. */
.home-hero-shell,
.page-shell > section.bg-slate-900.text-white,
.page-shell > section.bg-slate-950.text-white,
.page-shell article > section.bg-slate-950.text-white,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white,
.prayer-hero-section {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96) 0%, rgba(248,250,252,.98) 40%, rgba(238,242,255,.95) 72%, rgba(254,243,199,.76) 100%) !important;
  color:#0f172a !important;
  border-bottom:1px solid #e2e8f0 !important;
}
.home-hero-shell::before,
.page-shell > section.bg-slate-900.text-white::before,
.page-shell > section.bg-slate-950.text-white::before,
.page-shell article > section.bg-slate-950.text-white::before,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white::before,
.prayer-hero-section::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 14% 18%, rgba(250,204,21,.26), transparent 24rem),
    radial-gradient(circle at 84% 12%, rgba(129,140,248,.20), transparent 26rem),
    radial-gradient(circle at 78% 90%, rgba(45,212,191,.13), transparent 22rem),
    linear-gradient(rgba(15,23,42,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,23,42,.035) 1px, transparent 1px);
  background-size:auto, auto, auto, 52px 52px, 52px 52px;
}
.home-hero-shell .section-wrap,
.page-shell > section.bg-slate-900.text-white > .section-wrap,
.page-shell > section.bg-slate-950.text-white > .section-wrap,
.page-shell article > section.bg-slate-950.text-white > .section-wrap,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white > .section-wrap,
.prayer-hero-section .section-wrap {
  position:relative;
  z-index:1;
}
.home-hero-shell .text-white,
.page-shell > section.bg-slate-900.text-white .text-white,
.page-shell > section.bg-slate-950.text-white .text-white,
.page-shell article > section.bg-slate-950.text-white .text-white,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .text-white,
.prayer-hero-section .text-white {
  color:#0f172a !important;
}
.home-hero-shell .text-slate-300,
.page-shell > section.bg-slate-900.text-white .text-slate-300,
.page-shell > section.bg-slate-950.text-white .text-slate-300,
.page-shell article > section.bg-slate-950.text-white .text-slate-300,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .text-slate-300,
.prayer-hero-section .text-slate-300,
.home-hero-shell .text-slate-400,
.page-shell > section.bg-slate-900.text-white .text-slate-400,
.page-shell > section.bg-slate-950.text-white .text-slate-400,
.page-shell article > section.bg-slate-950.text-white .text-slate-400,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .text-slate-400,
.prayer-hero-section .text-slate-400 {
  color:#475569 !important;
}
.home-hero-shell .text-gold-300,
.page-shell > section.bg-slate-900.text-white .text-gold-300,
.page-shell > section.bg-slate-950.text-white .text-gold-300,
.page-shell article > section.bg-slate-950.text-white .text-gold-300,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .text-gold-300,
.prayer-hero-section .text-gold-300 {
  color:#b45309 !important;
}
.hero-card,
.prayer-hero-panel,
.prayer-submit-card,
.prayer-video-feature {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(203,213,225,.88) !important;
  background:rgba(255,255,255,.82) !important;
  color:#0f172a !important;
  box-shadow:0 20px 60px rgba(15,23,42,.10) !important;
  backdrop-filter:blur(18px);
}
.hero-card::after,
.prayer-hero-panel::after,
.prayer-submit-card::after,
.prayer-video-feature::after {
  content:"";
  position:absolute;
  inset:auto -6rem -8rem auto;
  width:18rem;
  height:18rem;
  border-radius:999px;
  background:radial-gradient(circle, rgba(250,204,21,.18), transparent 65%);
  pointer-events:none;
}
.hero-card > *,
.prayer-hero-panel > *,
.prayer-submit-card > *,
.prayer-video-feature > * { position:relative; z-index:1; }
.home-feature-chip,
.prayer-stat-tile,
.calendar-hero-stat,
.home-search-panel,
.page-shell > section.bg-slate-900.text-white .bg-white\/10,
.page-shell > section.bg-slate-950.text-white .bg-white\/10,
.page-shell article > section.bg-slate-950.text-white .bg-white\/10,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .bg-white\/10,
.prayer-hero-section .bg-white\/10,
.home-hero-shell .bg-white\/10,
.page-shell > section.bg-slate-900.text-white .bg-white\/5,
.page-shell > section.bg-slate-950.text-white .bg-white\/5,
.page-shell article > section.bg-slate-950.text-white .bg-white\/5,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .bg-white\/5,
.prayer-hero-section .bg-white\/5,
.home-hero-shell .bg-white\/5 {
  border-color:#e2e8f0 !important;
  background:rgba(255,255,255,.78) !important;
  color:#0f172a !important;
  box-shadow:var(--shadow-material) !important;
}
.home-feature-chip strong,
.prayer-stat-tile strong,
.calendar-hero-stat strong { color:#0f172a !important; }
.home-feature-chip span,
.prayer-stat-tile span,
.calendar-hero-stat span { color:#64748b !important; }
.calendar-hero-stat strong { color:#4f46e5 !important; }
.home-search-panel {
  padding:.85rem;
  backdrop-filter:blur(18px);
}
.home-search-panel p { color:#b45309 !important; }
.home-search-panel a {
  border:1px solid #e2e8f0;
  background:#fff;
  color:#0f172a;
}
.home-hero-shell .btn-ghost,
.page-shell > section.bg-slate-900.text-white .btn-ghost,
.page-shell > section.bg-slate-950.text-white .btn-ghost,
.page-shell article > section.bg-slate-950.text-white .btn-ghost,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .btn-ghost,
.prayer-hero-section .btn-ghost {
  border-color:#cbd5e1 !important;
  background:rgba(255,255,255,.88) !important;
  color:#334155 !important;
  box-shadow:var(--shadow-material) !important;
}
.home-hero-shell .btn-ghost:hover,
.page-shell > section.bg-slate-900.text-white .btn-ghost:hover,
.page-shell > section.bg-slate-950.text-white .btn-ghost:hover,
.page-shell article > section.bg-slate-950.text-white .btn-ghost:hover,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .btn-ghost:hover,
.prayer-hero-section .btn-ghost:hover {
  border-color:#a5b4fc !important;
  color:#3730a3 !important;
  transform:translateY(-1px);
  box-shadow:var(--shadow-material-md) !important;
}
.page-shell > section.bg-slate-900.text-white .border-white\/10,
.page-shell > section.bg-slate-950.text-white .border-white\/10,
.page-shell article > section.bg-slate-950.text-white .border-white\/10,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white .border-white\/10,
.prayer-hero-section .border-white\/10,
.home-hero-shell .border-white\/10 {
  border-color:#e2e8f0 !important;
}
.prayer-video-container,
.page-shell article > section.bg-slate-950.text-white .video-shell {
  border-color:#e2e8f0 !important;
  background:#0f172a !important;
  box-shadow:0 18px 50px rgba(15,23,42,.16) !important;
}
.prayer-submit-card .\!text-slate-200,
.prayer-submit-card .form-field > span { color:#475569 !important; }
.prayer-submit-card .text-slate-300 { color:#64748b !important; }
.prayer-submit-card .rounded-2xl.border-gold-400\/20 {
  border-color:#fde68a !important;
  background:#fffbeb !important;
}
.prayer-submit-card .rounded-2xl.border-gold-400\/20 h2 { color:#0f172a !important; }

/* Give the lighter hero sections a gentle, hopeful lower edge instead of a hard dark block. */
.home-hero-shell::after,
.prayer-hero-section::after,
.page-shell > section.bg-slate-900.text-white::after,
.page-shell > section.bg-slate-950.text-white::after,
.page-shell article > section.bg-slate-950.text-white::after,
.page-shell > section.relative.overflow-hidden.bg-slate-950.text-white::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(99,102,241,.28), rgba(250,204,21,.35), transparent);
  pointer-events:none;
}

/* V18: Streamlined landing hero
   The hero now carries one message and two decisions. Heavier discovery/search blocks live below the fold. */
.home-preview-shell {
  position:relative;
  isolation:isolate;
}
.home-preview-shell::before {
  content:"";
  position:absolute;
  inset:1.25rem -1.25rem -1.25rem 1.25rem;
  border-radius:1.6rem;
  background:linear-gradient(135deg, rgba(129,140,248,.16), rgba(250,204,21,.14), rgba(45,212,191,.12));
  filter:blur(.2px);
  z-index:-1;
}
.home-preview-card {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(203,213,225,.86);
  border-radius:1.45rem;
  background:rgba(255,255,255,.88);
  box-shadow:0 24px 70px rgba(15,23,42,.11);
  padding:1.25rem;
  backdrop-filter:blur(18px);
}
@media (min-width:640px){ .home-preview-card{ padding:1.5rem; } }
.home-preview-card::after {
  content:"";
  position:absolute;
  width:14rem;
  height:14rem;
  right:-6rem;
  top:-7rem;
  border-radius:999px;
  background:radial-gradient(circle, rgba(250,204,21,.22), transparent 66%);
  pointer-events:none;
}
.home-preview-card > * { position:relative; z-index:1; }
.home-preview-row {
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  border:1px solid #e2e8f0;
  border-radius:1rem;
  background:#fff;
  padding:.9rem;
  box-shadow:var(--shadow-material);
}
.home-preview-row > span {
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:2.1rem;
  height:2.1rem;
  border-radius:.8rem;
  font-weight:950;
  font-size:.85rem;
}
.home-preview-row strong {
  display:block;
  color:#0f172a;
  font-weight:950;
  line-height:1.15;
  letter-spacing:-.02em;
}
.home-preview-row small {
  display:block;
  margin-top:.25rem;
  color:#64748b;
  font-weight:650;
  line-height:1.45;
}
.home-search-panel-light {
  border:1px solid #e2e8f0;
  border-radius:1.25rem;
  background:linear-gradient(180deg,#fff,#f8fafc);
  padding:1rem;
  box-shadow:var(--shadow-material);
}
.home-search-panel-light a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border:1px solid #dbe3ef;
  border-radius:1rem;
  background:#fff;
  color:#0f172a;
  padding:.95rem 1rem;
  font-size:.93rem;
  font-weight:900;
  box-shadow:var(--shadow-material);
}
.home-search-panel-light a:hover {
  transform:translateY(-1px);
  border-color:#a5b4fc;
  color:#3730a3;
  box-shadow:var(--shadow-material-md);
}
#study-paths .home-topic-card {
  min-height:12rem;
}
.home-hero-shell .btn-soft {
  background:rgba(255,255,255,.92) !important;
  border-color:#cbd5e1 !important;
}
@media (max-width:639px){
  .home-preview-shell::before { inset:.75rem -.5rem -.75rem .5rem; }
  .home-hero-shell .section-wrap { padding-top:2.25rem; padding-bottom:2.75rem; }
}

/* V20 fixes: keep accent strips as narrow left borders and make the slide-out mobile menu visible. */

/* V22: Streamlined Prayer Wall hero
   Keeps the Prayer Wall focused above the fold and moves video/form content into a dedicated section. */
.prayer-hero-streamlined {
  background:
    linear-gradient(135deg, rgba(255,255,255,.97) 0%, rgba(248,250,252,.98) 42%, rgba(238,242,255,.94) 73%, rgba(254,243,199,.78) 100%) !important;
}
.prayer-hero-streamlined::before {
  background:
    radial-gradient(circle at 12% 20%, rgba(250,204,21,.22), transparent 24rem),
    radial-gradient(circle at 88% 12%, rgba(129,140,248,.18), transparent 26rem),
    radial-gradient(circle at 76% 92%, rgba(45,212,191,.12), transparent 22rem),
    linear-gradient(rgba(15,23,42,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,23,42,.035) 1px, transparent 1px) !important;
  background-size:auto, auto, auto, 52px 52px, 52px 52px !important;
}
.prayer-preview-shell {
  position:relative;
  isolation:isolate;
}
.prayer-preview-shell::before {
  content:"";
  position:absolute;
  inset:1.25rem -1.25rem -1.25rem 1.25rem;
  border-radius:1.6rem;
  background:linear-gradient(135deg, rgba(250,204,21,.16), rgba(129,140,248,.14), rgba(45,212,191,.12));
  z-index:-1;
}
.prayer-preview-card {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(203,213,225,.88);
  border-radius:1.45rem;
  background:rgba(255,255,255,.9);
  box-shadow:0 24px 70px rgba(15,23,42,.11);
  padding:1.25rem;
  backdrop-filter:blur(18px);
}
@media (min-width:640px){ .prayer-preview-card{ padding:1.5rem; } }
.prayer-preview-card::after {
  content:"";
  position:absolute;
  width:14rem;
  height:14rem;
  right:-6rem;
  top:-7rem;
  border-radius:999px;
  background:radial-gradient(circle, rgba(250,204,21,.20), transparent 66%);
  pointer-events:none;
}
.prayer-preview-card > * { position:relative; z-index:1; }
.prayer-preview-row {
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  border:1px solid #e2e8f0;
  border-radius:1rem;
  background:#fff;
  padding:.9rem;
  box-shadow:var(--shadow-material);
}
.prayer-preview-row > span {
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:2.1rem;
  height:2.1rem;
  border-radius:.8rem;
  font-weight:950;
  font-size:.85rem;
}
.prayer-preview-row strong {
  display:block;
  color:#0f172a;
  font-weight:950;
  line-height:1.15;
  letter-spacing:-.02em;
}
.prayer-preview-row small {
  display:block;
  margin-top:.25rem;
  color:#64748b;
  font-size:.82rem;
  line-height:1.5;
  font-weight:650;
}
.prayer-entry-section {
  background:linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  border-bottom:1px solid #e2e8f0;
}
.prayer-entry-card {
  position:relative;
  overflow:hidden;
  border:1px solid #e2e8f0;
  border-radius:1.45rem;
  background:rgba(255,255,255,.94);
  box-shadow:var(--shadow-material-lg);
}
.prayer-entry-card::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(90deg, rgba(250,204,21,.32) left top / 4px 100% no-repeat, transparent 0);
  pointer-events:none;
}
.prayer-entry-card > * { position:relative; z-index:1; }
.prayer-entry-video .prayer-video-container {
  border-color:#e2e8f0 !important;
  box-shadow:0 18px 45px rgba(15,23,42,.13) !important;
}
@media (max-width:767px) {
  .prayer-hero-streamlined .section-wrap { padding-top:2.25rem; padding-bottom:2.75rem; }
  .prayer-preview-shell::before { inset:.8rem -.6rem -.6rem .8rem; }
  .prayer-preview-card,
  .prayer-entry-card { border-radius:1.25rem; }
}

/* V24: KeenIcons, warmer brand chrome, button loading, article reader */
.ki-duotone,
.ki-outline,
.ki-solid,
.ki-filled {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  font-size:1.15em;
}
.icon-badge {
  display:grid;
  place-items:center;
  width:3rem;
  height:3rem;
  border-radius:1rem;
  font-size:1.35rem;
  box-shadow:var(--shadow-material);
  border:1px solid rgba(226,232,240,.9);
}
.icon-badge-indigo { background:#eef2ff; color:#4f46e5; }
.icon-badge-mint { background:#dcfce7; color:#059669; }
.icon-badge-peach { background:#ffedd5; color:#ea580c; }
.icon-badge-lavender { background:#f3e8ff; color:#7c3aed; }
.icon-badge-pink { background:#fce7f3; color:#db2777; }

.site-header,
header.sticky {
  background:linear-gradient(90deg, rgba(21,62,117,.98), rgba(30,64,175,.96)) !important;
  border-bottom:1px solid rgba(191,219,254,.22) !important;
  box-shadow:0 14px 38px rgba(30,64,175,.18) !important;
}
#menu-overlay.open { display:block; }
#mobile-menu {
  background:linear-gradient(180deg,#153e75 0%, #1e40af 58%, #0f766e 125%) !important;
  border-color:rgba(255,255,255,.16) !important;
}
.mobile-link {
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.10);
}
.mobile-link:hover { background:rgba(255,255,255,.16); }
.site-footer {
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#153e75 0%, #1e40af 58%, #0f766e 135%) !important;
}
.site-footer::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 12% 8%, rgba(250,204,21,.18), transparent 25rem),
    radial-gradient(circle at 92% 84%, rgba(45,212,191,.16), transparent 22rem);
}
.site-footer > * { position:relative; z-index:1; }
.footer-link { color:rgba(219,234,254,.86) !important; }
.footer-link:hover { color:#fff !important; }

.le-spinner {
  width:1em;
  height:1em;
  border-radius:999px;
  border:2px solid currentColor;
  border-right-color:transparent;
  display:inline-block;
  animation:leSpin .75s linear infinite;
}
@keyframes leSpin { to { transform:rotate(360deg); } }
button.is-loading,
a.is-loading {
  pointer-events:none;
  opacity:.82;
}

.article-reader-card {
  border-left:4px solid #facc15;
  background:linear-gradient(180deg,#fff,#f8fafc);
}
.article-read-toggle .ki-duotone,
.article-read-stop .ki-duotone { font-size:1.15rem; }

.share-option {
  display:flex;
  align-items:center;
  gap:.55rem;
}
.share-option .ki-duotone { color:#4f46e5; }

/* Softer branded pastel tabs without flooding card content. */
.content-card::before,
.post-card::before,
.prayer-entry-card::before {
  border-radius:inherit !important;
  background:linear-gradient(90deg, rgba(250,204,21,.55) 0 4px, transparent 4px) !important;
}

@media (max-width: 1023px) {
  .site-header nav { height:64px; }
  #mobile-menu.open { transform:translateX(0) !important; }
}

/* V29: Enhanced article reader progress, resume, and current paragraph highlighting */
.le-range {
  -webkit-appearance:none;
  appearance:none;
  height:.55rem;
  border-radius:999px;
  background:linear-gradient(90deg,#4f46e5 0%,#facc15 0%,#e2e8f0 0%);
  outline:none;
  cursor:pointer;
}
.le-range::-webkit-slider-thumb {
  -webkit-appearance:none;
  appearance:none;
  width:1.2rem;
  height:1.2rem;
  border-radius:999px;
  background:#ffffff;
  border:3px solid #4f46e5;
  box-shadow:0 8px 20px rgba(79,70,229,.24);
}
.le-range::-moz-range-thumb {
  width:1.2rem;
  height:1.2rem;
  border-radius:999px;
  background:#ffffff;
  border:3px solid #4f46e5;
  box-shadow:0 8px 20px rgba(79,70,229,.24);
}
.prose-content .tts-reading-now {
  position:relative;
  border-radius:1rem;
  background:linear-gradient(90deg,rgba(254,240,138,.62),rgba(238,242,255,.74));
  box-shadow:0 0 0 1px rgba(250,204,21,.32),0 16px 38px rgba(15,23,42,.08);
  padding:.65rem .95rem;
  margin-left:-.95rem;
  margin-right:-.95rem;
  transition:background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.prose-content li.tts-reading-now {
  padding-left:1.4rem;
}
.prose-content .tts-reading-now::before {
  content:"";
  position:absolute;
  left:.35rem;
  top:.7rem;
  bottom:.7rem;
  width:4px;
  border-radius:999px;
  background:linear-gradient(180deg,#facc15,#4f46e5);
}
.article-reader-progress .btn-soft {
  min-height:2.45rem;
}
@media (max-width:640px) {
  .prose-content .tts-reading-now {
    margin-left:0;
    margin-right:0;
  }
}
