/* ================================================================
   Clarity Bible v3.0 — Complete Stylesheet
   Variables · Splash · Ripple · Base · Header · Hero · Quote
   Stats · Memory · Cards · Forms · Tabs · Buttons · Plan
   Progress · Heatmap · Vault · Journal · Mood · Prayer
   Reading Mode · Navigation · Auth · Settings · Achievements
   Toast · Celebration Modal · Animations · Utils
================================================================ */

/* ─── COLOUR THEMES ────────────────────────────────────────── */
:root {
    --primary:       #1a56a4;
    --primary-light: #3b82f6;
    --primary-glow:  rgba(26,86,164,0.18);
    --accent:        #f97316;
    --accent-glow:   rgba(249,115,22,0.15);
    --bg:            #f0f4f9;
    --surface:       #ffffff;
    --surface2:      #f8fafc;
    --text-main:     #0f1e35;
    --text-muted:    #5a7090;
    --border:        #d4e0ee;
    --input-bg:      #eef3f9;
    --today-bg:      rgba(26,86,164,0.06);
    --skeleton-base: #dde6f0;
    --skeleton-shine:#eef3f9;
    --shadow-sm:     0 2px 8px  rgba(26,86,164,0.07);
    --shadow-md:     0 4px 20px rgba(26,86,164,0.12);
    --shadow-lg:     0 8px 40px rgba(26,86,164,0.16);
    --radius-sm:     12px;
    --radius-md:     20px;
    --radius-lg:     28px;
    --scripture-size:1.1rem;
    --reading-size:  1.15rem;
}
/* Dark mode */
body.dark-mode {
    --primary:       #4d8fd6;
    --primary-light: #60a5fa;
    --primary-glow:  rgba(77,143,214,0.2);
    --bg:            #080f1a;
    --surface:       #111c2d;
    --surface2:      #0d1726;
    --text-main:     #e8f0fb;
    --text-muted:    #6e8dac;
    --border:        #1e3050;
    --input-bg:      #0d1726;
    --today-bg:      rgba(77,143,214,0.1);
    --skeleton-base: #1a2d47;
    --skeleton-shine:#1e3353;
    --shadow-sm:     0 2px 8px  rgba(0,0,0,0.3);
    --shadow-md:     0 4px 20px rgba(0,0,0,0.4);
    --shadow-lg:     0 8px 40px rgba(0,0,0,0.5);
}
/* Accent colour themes */
body.theme-purple { --primary:#7c3aed; --primary-light:#8b5cf6; --primary-glow:rgba(124,58,237,0.18); }
body.theme-green  { --primary:#059669; --primary-light:#10b981; --primary-glow:rgba(5,150,105,0.18);  }
body.theme-gold   { --primary:#d97706; --primary-light:#f59e0b; --primary-glow:rgba(217,119,6,0.18);  }
/* Font sizes */
body.font-small  { --scripture-size:0.9rem;  --reading-size:1rem;   }
body.font-medium { --scripture-size:1.1rem;  --reading-size:1.15rem;}
body.font-large  { --scripture-size:1.28rem; --reading-size:1.35rem;}

/* ─── BASE ─────────────────────────────────────────────────── */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
body {
    font-family:'DM Sans',system-ui,sans-serif;
    background:var(--bg); color:var(--text-main);
    height:100dvh; overscroll-behavior-y:none;
    -webkit-tap-highlight-color:transparent;
    transition:background 0.4s,color 0.4s;
}
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }
canvas[style*="display:none"] { position:absolute; opacity:0; pointer-events:none; }

/* ─── RIPPLE EFFECT ────────────────────────────────────────── */
.ripple { position:relative; overflow:hidden; }
.ripple-wave {
    position:absolute; border-radius:50%;
    transform:scale(0); animation:rippleAnim 0.55s linear;
    background:rgba(255,255,255,0.28); pointer-events:none;
}
.ripple-wave.dark-ripple { background:rgba(26,86,164,0.15); }
@keyframes rippleAnim { to { transform:scale(4); opacity:0; } }

/* ─── SPLASH ───────────────────────────────────────────────── */
#splash-screen {
    position:fixed; inset:0; z-index:999;
    background:linear-gradient(160deg,#04091a 0%,#0b1e42 60%,#04091a 100%);
    display:flex; align-items:center; justify-content:center;
    transition:opacity 0.7s ease, visibility 0.7s ease;
}
#splash-screen.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.splash-inner { text-align:center; }
.splash-icon {
    width:84px; height:84px;
    background:linear-gradient(135deg,var(--primary),var(--primary-light));
    border-radius:26px; display:flex; align-items:center; justify-content:center;
    margin:0 auto 22px; font-size:2.6rem; color:white;
    box-shadow:0 0 50px rgba(59,130,246,0.5);
    animation:splashPulse 1.8s ease-in-out infinite;
}
@keyframes splashPulse {
    0%,100% { box-shadow:0 0 50px rgba(59,130,246,0.4); transform:scale(1); }
    50%      { box-shadow:0 0 80px rgba(59,130,246,0.7); transform:scale(1.04); }
}
.splash-title { font-family:'Playfair Display',serif; font-size:2.1rem; color:#fff; font-weight:700; letter-spacing:-0.02em; margin-bottom:8px; }
.splash-title span { color:#f97316; }
.splash-sub { color:rgba(255,255,255,0.5); font-size:0.9rem; margin-bottom:38px; }
.splash-loader { width:150px; height:3px; background:rgba(255,255,255,0.12); border-radius:4px; margin:0 auto; overflow:hidden; }
.splash-bar { height:100%; width:0%; background:linear-gradient(90deg,var(--primary),#f97316); border-radius:4px; animation:splashLoad 1.8s ease forwards; }
@keyframes splashLoad { 0%{width:0%} 100%{width:100%} }

/* ─── APP CONTAINER ────────────────────────────────────────── */
.app-container { display:flex; flex-direction:column; position:relative; max-width:480px; margin:0 auto; height:100%; background:var(--bg); overflow:hidden; }

/* ─── HEADER ───────────────────────────────────────────────── */
header {
    background:var(--surface); padding:14px 20px; z-index:10;
    display:flex; justify-content:space-between; align-items:center;
    border-bottom:1px solid var(--border); box-shadow:var(--shadow-sm); flex-shrink:0;
}
.logo { display:flex; align-items:center; gap:10px; }
.logo-icon {
    width:36px; height:36px;
    background:linear-gradient(135deg,var(--primary),var(--primary-light));
    border-radius:10px; display:flex; align-items:center; justify-content:center;
    color:white; font-size:1.1rem; box-shadow:0 3px 10px var(--primary-glow);
}
header h1 { font-family:'Playfair Display',serif; font-size:1.15rem; color:var(--primary); font-weight:700; letter-spacing:-0.02em; }
header h1 span { color:var(--accent); }
.header-actions { display:flex; gap:8px; align-items:center; }
.header-icon {
    background:var(--input-bg); border:1px solid var(--border);
    font-size:1.2rem; color:var(--text-muted); cursor:pointer;
    width:36px; height:36px; border-radius:10px;
    display:flex; align-items:center; justify-content:center; transition:all 0.2s;
}
.header-icon:hover { color:var(--primary); border-color:var(--primary); background:var(--primary-glow); }
.header-icon:active { transform:scale(0.88); }

/* ─── MAIN ─────────────────────────────────────────────────── */
main { flex:1; overflow-y:auto; padding:20px 18px 110px; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; }
.view-section { display:none; }
.view-section.active { display:block; animation:smoothEnter 0.38s cubic-bezier(0.16,1,0.3,1) forwards; }
@keyframes smoothEnter { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.section-title { font-size:0.78rem; color:var(--text-muted); margin-bottom:14px; display:flex; align-items:center; gap:7px; font-weight:600; text-transform:uppercase; letter-spacing:0.08em; }

/* ─── HERO CARD ────────────────────────────────────────────── */
.hero-card {
    position:relative; background:linear-gradient(160deg,#0a1628,#1a3a6e);
    background-size:cover; background-position:center top;
    border-radius:var(--radius-lg); overflow:hidden; min-height:340px;
    display:flex; flex-direction:column; justify-content:flex-end;
    margin-bottom:14px; box-shadow:var(--shadow-lg);
}
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(5,15,30,0.97) 0%,rgba(5,15,30,0.45) 55%,rgba(5,15,30,0.08) 100%); z-index:1; }
.hero-actions { position:absolute; top:14px; right:14px; z-index:3; display:flex; gap:10px; }
.action-circle {
    background:rgba(255,255,255,0.13); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,0.22); color:white;
    width:42px; height:42px; border-radius:50%;
    display:flex; justify-content:center; align-items:center; font-size:1.3rem; cursor:pointer;
    transition:all 0.2s;
}
.action-circle:hover  { background:rgba(255,255,255,0.22); transform:scale(1.05); }
.action-circle:active { transform:scale(0.88); }
.hero-content { position:relative; z-index:2; padding:28px 22px; }
.reference-badge {
    display:inline-flex; align-items:center; gap:5px; background:var(--accent); color:white;
    padding:5px 14px; border-radius:30px; font-size:0.72rem; font-weight:700;
    text-transform:uppercase; letter-spacing:0.06em; margin-bottom:14px;
}
.hero-content .scripture-text { color:#fff; font-size:var(--scripture-size); font-family:'Playfair Display',serif; font-style:italic; line-height:1.65; }
.photo-credit {
    position:absolute; bottom:12px; left:14px; z-index:4;
    background:rgba(0,0,0,0.42); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    color:rgba(255,255,255,0.72); font-size:0.65rem; font-family:'DM Sans',sans-serif;
    font-weight:500; padding:4px 10px; border-radius:20px;
    display:flex; align-items:center; gap:5px; text-decoration:none;
    transition:all 0.2s; border:1px solid rgba(255,255,255,0.14);
}
.photo-credit:hover { color:white; background:rgba(0,0,0,0.65); }
.photo-credit i { font-size:0.8rem; }

/* ─── QUOTE CARD ───────────────────────────────────────────── */
.quote-card {
    background:linear-gradient(135deg,var(--surface),var(--surface2));
    border:1px solid var(--border); border-radius:var(--radius-md);
    padding:18px 20px; margin-bottom:14px;
    box-shadow:var(--shadow-sm); position:relative; overflow:hidden;
}
.quote-card::before { content:'\201C'; position:absolute; top:-16px; right:10px; font-size:100px; font-family:'Playfair Display',serif; color:var(--primary-glow); line-height:1; pointer-events:none; }
.quote-card-inner { position:relative; z-index:1; }
.quote-icon { color:var(--primary); font-size:1.1rem; margin-bottom:8px; display:block; }
.quote-text { font-family:'Playfair Display',serif; font-style:italic; font-size:0.92rem; color:var(--text-main); line-height:1.6; margin-bottom:8px; }
.quote-author { font-size:0.72rem; font-weight:700; color:var(--primary); text-transform:uppercase; letter-spacing:0.06em; }

/* ─── STATS ROW ────────────────────────────────────────────── */
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:16px; }
.stat-chip { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:14px 8px; text-align:center; box-shadow:var(--shadow-sm); cursor:pointer; transition:transform 0.2s,box-shadow 0.2s; }
.stat-chip:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }
.stat-chip:active { transform:scale(0.94); }
.stat-num { display:block; font-size:1.4rem; font-weight:700; color:var(--primary); line-height:1; margin-bottom:4px; }
.stat-lbl { font-size:0.62rem; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:0.05em; }

/* ─── MEMORY VERSE ─────────────────────────────────────────── */
.memory-card {
    background:linear-gradient(135deg,var(--primary),var(--primary-light));
    border-radius:var(--radius-md); padding:18px 20px; margin-bottom:16px;
    color:white; box-shadow:var(--shadow-md); position:relative; overflow:hidden;
}
.memory-card::before { content:'\201C'; position:absolute; top:-20px; right:10px; font-size:140px; font-family:'Playfair Display',serif; color:rgba(255,255,255,0.07); line-height:1; pointer-events:none; }
.memory-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:rgba(255,255,255,0.7); }
.memory-text { font-family:'Playfair Display',serif; font-style:italic; font-size:1rem; line-height:1.6; color:white; margin-bottom:10px; }
.memory-ref { font-size:0.72rem; background:rgba(255,255,255,0.18); padding:3px 10px; border-radius:20px; font-weight:700; color:rgba(255,255,255,0.9); }

/* ─── SKELETON ─────────────────────────────────────────────── */
.skeleton { background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%); background-size:200% 100%; animation:shimmer 1.5s infinite; border-radius:8px; }
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* ─── JOURNAL BOX ──────────────────────────────────────────── */
.journal-box { background:var(--surface); border-radius:var(--radius-md); padding:16px; border:1px solid var(--border); margin-bottom:20px; box-shadow:var(--shadow-sm); }
.journal-box textarea { width:100%; background:var(--input-bg); border:1.5px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; color:var(--text-main); font-size:0.95rem; font-family:'DM Sans',sans-serif; resize:vertical; min-height:80px; outline:none; margin-bottom:10px; transition:border-color 0.2s; }
.journal-box textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-glow); }

/* ─── CARD ─────────────────────────────────────────────────── */
.card { background:var(--surface); border-radius:var(--radius-lg); padding:22px; margin-bottom:16px; border:1px solid var(--border); box-shadow:var(--shadow-sm); }
.card-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px; }
.card-actions { display:flex; gap:8px; }

/* ─── ICON BUTTON ──────────────────────────────────────────── */
.icon-btn { background:var(--input-bg); border:1px solid var(--border); border-radius:10px; width:38px; height:38px; display:flex; justify-content:center; align-items:center; font-size:1.15rem; color:var(--primary); cursor:pointer; transition:all 0.2s; flex-shrink:0; }
.icon-btn:hover { background:var(--primary-glow); border-color:var(--primary); }
.icon-btn:active { transform:scale(0.88); }
.icon-btn.danger { color:#ef4444; }
.icon-btn.danger:hover { background:#fff0f0; border-color:#ef4444; }

/* ─── SCRIPTURE TEXT ───────────────────────────────────────── */
.scripture-text { font-family:'Playfair Display',serif; font-size:var(--scripture-size); line-height:1.7; color:var(--text-main); }
.verse-num { color:var(--accent); font-weight:bold; font-size:0.7em; vertical-align:super; margin-right:3px; font-family:'DM Sans',sans-serif; }
.highlighted-verse { background:linear-gradient(to right,var(--accent-glow),transparent); border-left:3px solid var(--accent); padding:2px 8px; display:inline; border-radius:0 6px 6px 0; }

/* ─── INPUTS ───────────────────────────────────────────────── */
.input-group { display:flex; gap:10px; margin-bottom:12px; }
select,input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="time"] {
    flex:1; padding:14px 16px; border:1.5px solid var(--border); border-radius:var(--radius-sm);
    background:var(--input-bg); color:var(--text-main); font-size:0.95rem; font-family:'DM Sans',sans-serif;
    outline:none; transition:border-color 0.2s,box-shadow 0.2s;
}
select:focus,input:focus { border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-glow); }
.search-bar-wrap { position:relative; margin-bottom:14px; }
.search-bar-wrap i { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:1.2rem; pointer-events:none; }
.search-bar-wrap input { padding-left:42px; width:100%; }

/* ─── BUTTONS ──────────────────────────────────────────────── */
.btn { background:var(--primary); color:white; border:none; padding:14px 20px; border-radius:var(--radius-sm); font-weight:600; font-size:0.95rem; font-family:'DM Sans',sans-serif; width:100%; cursor:pointer; display:flex; justify-content:center; align-items:center; gap:8px; transition:all 0.2s; box-shadow:0 4px 14px var(--primary-glow); }
.btn:hover { filter:brightness(1.08); transform:translateY(-1px); }
.btn:active { transform:scale(0.97); }
.btn-accent { background:var(--accent); box-shadow:0 4px 14px var(--accent-glow); }
.btn-small { padding:9px 16px; font-size:0.85rem; border-radius:10px; width:auto; }

/* ─── TABS ─────────────────────────────────────────────────── */
.tab-row { display:flex; gap:6px; background:var(--input-bg); border-radius:var(--radius-sm); padding:5px; margin-bottom:16px; }
.tab-btn { flex:1; padding:9px; border:none; background:transparent; color:var(--text-muted); border-radius:9px; font-size:0.82rem; font-weight:600; font-family:'DM Sans',sans-serif; cursor:pointer; transition:all 0.2s; }
.tab-btn.active { background:var(--surface); color:var(--primary); box-shadow:var(--shadow-sm); }

/* ─── TIP BANNER ───────────────────────────────────────────── */
.tip-banner { background:var(--today-bg); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; font-size:0.82rem; color:var(--text-muted); display:flex; gap:10px; align-items:flex-start; margin-bottom:14px; }
.tip-banner i { color:var(--primary); font-size:1.1rem; flex-shrink:0; margin-top:1px; }

/* ─── SORT BAR ─────────────────────────────────────────────── */
.sort-bar { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.sort-label { font-size:0.75rem; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:0.06em; }
.sort-btn { background:transparent; border:1.5px solid var(--border); border-radius:20px; padding:5px 12px; font-size:0.75rem; font-weight:600; color:var(--text-muted); cursor:pointer; font-family:'DM Sans',sans-serif; transition:all 0.2s; }
.sort-btn.active { background:var(--primary); color:white; border-color:var(--primary); }

/* ─── PROGRESS RING ────────────────────────────────────────── */
.progress-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:18px 20px; margin-bottom:16px; display:flex; align-items:center; gap:20px; box-shadow:var(--shadow-sm); }
.progress-ring-wrap { position:relative; width:80px; height:80px; flex-shrink:0; }
.progress-ring-svg { width:100%; height:100%; transform:rotate(-90deg); }
.ring-track { fill:none; stroke:var(--border); stroke-width:7; }
.ring-fill { fill:none; stroke:var(--primary); stroke-width:7; stroke-linecap:round; stroke-dasharray:213.6; stroke-dashoffset:213.6; transition:stroke-dashoffset 1.2s cubic-bezier(0.4,0,0.2,1); }
.progress-ring-text { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.progress-ring-text span { font-size:1.3rem; font-weight:700; color:var(--primary); line-height:1; }
.progress-ring-text small { font-size:0.7rem; color:var(--text-muted); }
.progress-info h4 { font-size:0.95rem; font-weight:700; color:var(--text-main); margin-bottom:4px; }
.progress-info p  { font-size:0.8rem; color:var(--text-muted); margin-bottom:10px; }
.week-dots { display:flex; gap:6px; }
.week-dot { width:28px; height:28px; border-radius:50%; background:var(--input-bg); border:2px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:0.55rem; font-weight:700; color:var(--text-muted); text-transform:uppercase; transition:all 0.3s; }
.week-dot.done  { background:var(--primary); border-color:var(--primary); color:white; }
.week-dot.today { border-color:var(--accent); color:var(--accent); font-weight:800; }

/* ─── HEATMAP ──────────────────────────────────────────────── */
.heatmap-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:18px; margin-bottom:16px; box-shadow:var(--shadow-sm); }
.heatmap-grid { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:10px; }
.heatmap-cell { width:20px; height:20px; border-radius:5px; background:var(--primary); opacity:0.12; transition:opacity 0.3s; cursor:default; }
.heatmap-cell.active-0 { opacity:0.12; }
.heatmap-cell.active-1 { opacity:0.35; }
.heatmap-cell.active-2 { opacity:0.65; }
.heatmap-cell.active-3 { opacity:1; }
.heatmap-cell.today-cell { outline:2px solid var(--accent); outline-offset:1px; }
.heatmap-legend { display:flex; align-items:center; gap:6px; font-size:0.72rem; color:var(--text-muted); }

/* ─── PROFILE BADGE ────────────────────────────────────────── */
.profile-badge { background:linear-gradient(135deg,var(--primary),var(--primary-light)); border-radius:var(--radius-md); padding:20px; margin-bottom:16px; display:flex; align-items:center; gap:16px; color:white; box-shadow:var(--shadow-md); position:relative; overflow:hidden; }
.profile-badge::before { content:''; position:absolute; top:-30px; right:-30px; width:120px; height:120px; border-radius:50%; background:rgba(255,255,255,0.08); }
.profile-avatar { width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center; font-size:1.6rem; flex-shrink:0; }
.profile-info h4 { font-size:1rem; font-weight:600; color:white; }
.profile-info p  { font-size:0.8rem; color:rgba(255,255,255,0.7); margin-top:2px; }
.streak-pill { display:inline-flex; align-items:center; gap:4px; background:rgba(255,255,255,0.2); color:white; padding:4px 10px; border-radius:20px; font-size:0.72rem; font-weight:700; margin-top:6px; }

/* ─── PLAN LIST ────────────────────────────────────────────── */
.list-item { display:flex; align-items:center; padding:16px 18px; border-bottom:1px solid var(--border); cursor:pointer; transition:background 0.2s; position:relative; }
.list-item:last-child { border-bottom:none; }
.list-item:hover  { background:var(--today-bg); }
.list-item.today  { background:var(--today-bg); border-left:3px solid var(--primary); }
.list-icon { font-size:1.5rem; color:var(--primary); margin-right:14px; flex-shrink:0; }
.list-topic { font-weight:600; font-size:0.95rem; color:var(--text-main); display:block; }
.list-ref   { font-size:0.8rem; color:var(--text-muted); margin-top:2px; }
.today-tag  { margin-left:auto; background:var(--primary); color:white; font-size:0.65rem; font-weight:700; padding:3px 8px; border-radius:20px; text-transform:uppercase; }
/* Day completion progress bar under each plan item */
.plan-progress-bar { position:absolute; bottom:0; left:0; height:2px; background:var(--primary); border-radius:2px; transition:width 0.6s ease; }

/* ─── VAULT ────────────────────────────────────────────────── */
.vault-filter-bar { background:var(--surface); border-radius:var(--radius-md); padding:14px; border:1px solid var(--border); margin-bottom:14px; box-shadow:var(--shadow-sm); }
.vault-item { display:flex; flex-direction:column; padding:20px; border-bottom:1px solid var(--border); transition:background 0.3s; }
.vault-item:last-child { border-bottom:none; }
.vault-text { font-family:'Playfair Display',serif; font-size:var(--scripture-size); line-height:1.65; border-left:3px solid var(--primary); padding-left:14px; margin-top:12px; color:var(--text-main); }
.vault-meta { font-size:0.75rem; color:var(--text-muted); margin-top:8px; }
.color-picker { display:flex; gap:8px; margin-top:14px; align-items:center; }
.color-label  { font-size:0.72rem; color:var(--text-muted); font-weight:600; margin-right:4px; }
.color-dot { width:22px; height:22px; border-radius:50%; cursor:pointer; border:2px solid transparent; transition:all 0.2s; }
.color-dot:hover   { transform:scale(1.2); }
.color-dot:active  { transform:scale(0.9); }
.color-dot.selected{ transform:scale(1.15); border-color:var(--text-main) !important; }
.vault-note { width:100%; background:var(--input-bg); border:1.5px solid var(--border); border-radius:10px; padding:10px 12px; color:var(--text-main); font-size:0.88rem; resize:vertical; min-height:72px; outline:none; margin-top:10px; font-family:'DM Sans',sans-serif; transition:border-color 0.2s; }
.vault-note:focus { border-color:var(--primary); }

/* ─── JOURNAL ──────────────────────────────────────────────── */
.journal-entry { background:var(--surface); border-radius:var(--radius-md); padding:18px 20px; border:1px solid var(--border); margin-bottom:12px; box-shadow:var(--shadow-sm); animation:smoothEnter 0.35s ease forwards; }
.journal-entry-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.journal-date { font-size:0.72rem; color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:0.06em; }
.journal-entry p { color:var(--text-main); line-height:1.65; font-size:0.95rem; }
.journal-header-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.count-badge { background:var(--primary-glow); color:var(--primary); border:1px solid var(--border); padding:4px 12px; border-radius:20px; font-size:0.75rem; font-weight:700; }
.journal-mood-badge { display:inline-flex; align-items:center; gap:4px; font-size:0.75rem; color:var(--text-muted); margin-top:8px; }

/* ─── MOOD TRACKER ─────────────────────────────────────────── */
.mood-bar { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:14px 18px; margin-bottom:16px; display:flex; align-items:center; gap:12px; box-shadow:var(--shadow-sm); flex-wrap:wrap; }
.mood-label { font-size:0.78rem; color:var(--text-muted); font-weight:600; white-space:nowrap; }
.mood-emojis { display:flex; gap:8px; }
.mood-btn { background:transparent; border:2px solid var(--border); border-radius:50%; width:38px; height:38px; font-size:1.2rem; cursor:pointer; transition:all 0.2s; display:flex; align-items:center; justify-content:center; }
.mood-btn:hover  { transform:scale(1.12); border-color:var(--primary); }
.mood-btn:active { transform:scale(0.92); }
.mood-btn.selected { background:var(--primary-glow); border-color:var(--primary); transform:scale(1.1); }

/* ─── PRAYER ───────────────────────────────────────────────── */
.prayer-input { width:100%; margin-bottom:10px; padding:12px 14px; border:1.5px solid var(--border); border-radius:12px; background:var(--input-bg); color:var(--text-main); font-family:'DM Sans',sans-serif; font-size:0.95rem; outline:none; transition:border-color 0.2s; }
.prayer-input:focus { border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-glow); }
.prayer-textarea { width:100%; min-height:80px; background:var(--input-bg); border:1.5px solid var(--border); border-radius:12px; padding:12px; color:var(--text-main); font-family:'DM Sans',sans-serif; font-size:0.95rem; resize:vertical; outline:none; transition:border-color 0.2s; }
.prayer-textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-glow); }
.prayer-tags-row { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:8px; }
.prayer-tag-label { font-size:0.72rem; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:0.05em; }
.prayer-tag { background:transparent; border:1.5px solid var(--border); border-radius:20px; padding:4px 12px; font-size:0.75rem; font-weight:600; color:var(--text-muted); cursor:pointer; font-family:'DM Sans',sans-serif; transition:all 0.2s; }
.prayer-tag.active { background:var(--primary); color:white; border-color:var(--primary); }
.prayer-item { background:var(--surface); border-radius:var(--radius-md); padding:18px 20px; border:1px solid var(--border); margin-bottom:12px; box-shadow:var(--shadow-sm); animation:smoothEnter 0.3s ease forwards; position:relative; overflow:hidden; }
.prayer-item::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--primary); border-radius:4px 0 0 4px; }
.prayer-item.answered::before { background:#22c55e; }
.prayer-item-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:8px; }
.prayer-title-text { font-weight:700; font-size:0.95rem; color:var(--text-main); }
.prayer-actions { display:flex; gap:6px; }
.prayer-body-text { font-size:0.88rem; color:var(--text-muted); line-height:1.6; margin-bottom:10px; }
.prayer-date { font-size:0.72rem; color:var(--text-muted); display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.prayer-tag-badge { display:inline-flex; align-items:center; gap:4px; background:var(--primary-glow); color:var(--primary); border:1px solid var(--border); padding:2px 8px; border-radius:20px; font-size:0.68rem; font-weight:700; margin-left:6px; }
.prayer-answered-badge { display:inline-flex; align-items:center; gap:5px; background:rgba(34,197,94,0.12); color:#22c55e; border:1px solid rgba(34,197,94,0.3); padding:3px 10px; border-radius:20px; font-size:0.72rem; font-weight:700; }

/* ─── RECENT SEARCHES ──────────────────────────────────────── */
.recent-searches { margin-bottom:12px; }
.recent-searches-header { font-size:0.72rem; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:8px; display:flex; justify-content:space-between; align-items:center; }
.recent-searches-header button { background:none; border:none; color:var(--accent); font-size:0.72rem; cursor:pointer; font-family:'DM Sans',sans-serif; font-weight:600; }
.recent-chips { display:flex; flex-wrap:wrap; gap:6px; }
.recent-chip { background:var(--input-bg); border:1px solid var(--border); border-radius:20px; padding:5px 12px; font-size:0.78rem; color:var(--text-muted); cursor:pointer; transition:all 0.2s; display:flex; align-items:center; gap:5px; font-family:'DM Sans',sans-serif; }
.recent-chip:hover { background:var(--primary-glow); color:var(--primary); border-color:var(--primary); }

/* ─── KEYWORD RESULTS ──────────────────────────────────────── */
.keyword-results { margin-top:16px; }
.keyword-result-item { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:16px; margin-bottom:10px; animation:smoothEnter 0.3s ease forwards; box-shadow:var(--shadow-sm); }
.keyword-result-ref { font-size:0.75rem; color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:6px; }

/* ─── READING MODE ─────────────────────────────────────────── */
#reading-mode-overlay {
    position:fixed; inset:0; z-index:300;
    background:var(--surface); display:none; flex-direction:column;
    animation:slideUp 0.4s cubic-bezier(0.16,1,0.3,1);
}
#reading-mode-overlay.open { display:flex; }
@keyframes slideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
.reading-mode-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--border); background:var(--surface); position:sticky; top:0; z-index:1; box-shadow:var(--shadow-sm); }
.reading-close-btn { background:var(--input-bg); border:1px solid var(--border); border-radius:10px; width:38px; height:38px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:var(--primary); cursor:pointer; }
.reading-mode-header span { font-weight:700; font-size:1rem; color:var(--text-main); }
.reading-action-btn { background:var(--input-bg); border:1px solid var(--border); border-radius:8px; padding:6px 10px; font-size:0.75rem; color:var(--primary); cursor:pointer; font-family:'DM Sans',sans-serif; font-weight:600; display:flex; align-items:center; gap:4px; }
.reading-mode-content { flex:1; overflow-y:auto; padding:30px 24px 120px; }
.reading-mode-content .scripture-text { font-size:var(--reading-size); line-height:1.85; }
.reading-mode-footer { display:flex; align-items:center; justify-content:space-between; padding:14px 20px calc(14px + env(safe-area-inset-bottom)); border-top:1px solid var(--border); background:var(--surface); }
.reading-nav-btn { background:var(--primary); color:white; border:none; border-radius:10px; padding:10px 16px; font-size:0.85rem; font-weight:600; font-family:'DM Sans',sans-serif; cursor:pointer; display:flex; align-items:center; gap:6px; transition:all 0.2s; }
.reading-nav-btn:hover  { filter:brightness(1.1); }
.reading-nav-btn:active { transform:scale(0.95); }
.reading-chapter-info { font-size:0.82rem; color:var(--text-muted); font-weight:600; }

/* ─── BOTTOM NAV ───────────────────────────────────────────── */
.bottom-nav { position:absolute; bottom:0; width:100%; background:var(--surface); display:flex; justify-content:space-around; padding:8px 0 calc(8px + env(safe-area-inset-bottom)) 0; border-top:1px solid var(--border); border-radius:22px 22px 0 0; z-index:20; box-shadow:0 -4px 24px rgba(0,0,0,0.08); }
.nav-item { display:flex; flex-direction:column; align-items:center; gap:2px; color:var(--text-muted); background:none; border:none; font-size:0.58rem; font-weight:600; font-family:'DM Sans',sans-serif; cursor:pointer; flex:1; padding:4px 0; transition:color 0.2s; text-transform:uppercase; letter-spacing:0.03em; }
.nav-item.active { color:var(--primary); }
.nav-item i { font-size:1.3rem; transition:transform 0.3s; }
.nav-item.active i { transform:translateY(-2px); color:var(--accent); }
/* Notification dot on nav item */
.nav-item .nav-dot { position:absolute; top:3px; right:3px; width:7px; height:7px; background:var(--accent); border-radius:50%; display:none; }
.nav-item { position:relative; }

/* ─── AUTH ─────────────────────────────────────────────────── */
#auth-screen { position:fixed; inset:0; background:var(--bg); z-index:100; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:24px; overflow-y:auto; }
.auth-bg-circles { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.auth-circle { position:absolute; border-radius:50%; background:var(--primary-glow); }
.auth-circle.c1 { width:300px; height:300px; top:-100px; right:-80px; }
.auth-circle.c2 { width:200px; height:200px; bottom:100px; left:-60px; background:var(--accent-glow); }
.auth-circle.c3 { width:150px; height:150px; bottom:-50px; right:40px; }
.auth-card { background:var(--surface); padding:36px 28px; border-radius:var(--radius-lg); width:100%; max-width:420px; border:1px solid var(--border); box-shadow:var(--shadow-lg); position:relative; z-index:1; }
.auth-logo { text-align:center; margin-bottom:28px; }
.auth-logo-icon { width:60px; height:60px; background:linear-gradient(135deg,var(--primary),var(--primary-light)); border-radius:18px; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-size:2rem; color:white; box-shadow:0 6px 20px var(--primary-glow); }
.auth-logo h1 { font-family:'Playfair Display',serif; color:var(--primary); font-size:1.6rem; letter-spacing:-0.02em; }
.auth-logo h1 span { color:var(--accent); }
.auth-logo p  { color:var(--text-muted); font-size:0.88rem; margin-top:4px; }
#signup-form { display:flex; flex-direction:column; }
#login-form  { display:none; flex-direction:column; }
.form-field { position:relative; margin-bottom:12px; }
.form-field i { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:1.15rem; pointer-events:none; }
.form-field input,.form-field select { padding-left:42px; width:100%; }
.auth-switch { text-align:center; margin-top:20px; color:var(--text-muted); font-size:0.9rem; }
.auth-switch span { color:var(--accent); font-weight:700; cursor:pointer; }
.forgot-link { color:var(--primary); font-size:0.82rem; text-align:right; cursor:pointer; font-weight:600; margin-bottom:14px; display:block; }

/* ─── SETTINGS ─────────────────────────────────────────────── */
#settings-overlay { position:fixed; inset:0; z-index:200; background:rgba(0,0,0,0.5); opacity:0; visibility:hidden; transition:all 0.3s; }
#settings-overlay.open { opacity:1; visibility:visible; }
#settings-panel { position:fixed; top:0; right:-100%; bottom:0; width:min(340px,90vw); background:var(--surface); z-index:201; overflow-y:auto; transition:right 0.35s cubic-bezier(0.16,1,0.3,1); box-shadow:var(--shadow-lg); }
#settings-panel.open { right:0; }
.settings-header { display:flex; justify-content:space-between; align-items:center; padding:20px 20px 16px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--surface); z-index:1; }
.settings-header h2 { font-size:1.1rem; font-weight:700; color:var(--text-main); display:flex; align-items:center; gap:8px; }
.settings-section { padding:16px 20px 0; }
.settings-label { font-size:0.68rem; color:var(--text-muted); font-weight:700; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:8px; }
.settings-row { display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--border); cursor:pointer; }
.settings-row:last-child { border-bottom:none; }
.settings-row-left { display:flex; align-items:center; gap:12px; font-size:0.92rem; color:var(--text-main); font-weight:500; }
.settings-row-left i { font-size:1.2rem; color:var(--primary); }
.toggle-switch { width:44px; height:24px; background:var(--border); border-radius:20px; position:relative; transition:background 0.3s; cursor:pointer; }
.toggle-switch.on { background:var(--primary); }
.toggle-knob { position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:white; transition:transform 0.3s; box-shadow:0 1px 4px rgba(0,0,0,0.2); }
.toggle-switch.on .toggle-knob { transform:translateX(20px); }
.font-size-btns { display:flex; gap:6px; }
.font-size-btns button { width:34px; height:34px; border-radius:8px; background:var(--input-bg); border:1.5px solid var(--border); color:var(--text-muted); cursor:pointer; transition:all 0.2s; font-family:'DM Sans',sans-serif; }
.font-size-btns button.active { background:var(--primary); color:white; border-color:var(--primary); }
.font-size-btns button:nth-child(1) { font-size:0.75rem; }
.font-size-btns button:nth-child(2) { font-size:0.95rem; }
.font-size-btns button:nth-child(3) { font-size:1.15rem; font-weight:700; }
.settings-select { background:var(--input-bg); border:1.5px solid var(--border); border-radius:8px; padding:6px 10px; color:var(--text-main); font-family:'DM Sans',sans-serif; font-size:0.85rem; outline:none; }
/* Colour swatches */
.colour-swatches { display:flex; gap:8px; }
.colour-swatch { width:26px; height:26px; border-radius:50%; cursor:pointer; border:3px solid transparent; transition:all 0.2s; }
.colour-swatch.active { border-color:var(--text-main); transform:scale(1.15); }
.colour-swatch:hover  { transform:scale(1.1); }
/* Achievements grid */
.achievements-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:8px 0; }
.achievement-badge { display:flex; flex-direction:column; align-items:center; gap:4px; cursor:default; }
.achievement-icon { width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.6rem; transition:all 0.3s; }
.achievement-icon.locked { background:var(--input-bg); filter:grayscale(1); opacity:0.45; }
.achievement-icon.unlocked { background:linear-gradient(135deg,var(--primary),var(--primary-light)); box-shadow:0 4px 14px var(--primary-glow); }
.achievement-label { font-size:0.6rem; color:var(--text-muted); font-weight:600; text-align:center; line-height:1.2; }
.settings-version { text-align:center; color:var(--text-muted); font-size:0.75rem; margin-top:24px; padding:0 20px 20px; }

/* ─── TOAST ────────────────────────────────────────────────── */
#toast-container { position:fixed; top:16px; left:50%; transform:translateX(-50%); z-index:9999; display:flex; flex-direction:column; gap:10px; width:92%; max-width:380px; pointer-events:none; }
.toast { background:var(--surface); color:var(--text-main); padding:14px 18px; border-radius:var(--radius-sm); display:flex; align-items:center; gap:12px; font-weight:600; font-size:0.88rem; box-shadow:var(--shadow-lg); border:1px solid var(--border); animation:toastIn 0.35s cubic-bezier(0.16,1,0.3,1) forwards; }
.toast.out { animation:toastOut 0.3s ease forwards; }
.toast i { font-size:1.3rem; flex-shrink:0; }
.toast.success { border-left:3px solid #22c55e; } .toast.success i { color:#22c55e; }
.toast.error   { border-left:3px solid #ef4444; } .toast.error   i { color:#ef4444; }
.toast.info    { border-left:3px solid var(--primary); } .toast.info i { color:var(--primary); }
@keyframes toastIn  { from{opacity:0;transform:translateY(-12px) scale(0.96)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes toastOut { from{opacity:1;transform:translateY(0)} to{opacity:0;transform:translateY(-8px)} }

/* ─── CELEBRATION MODAL ────────────────────────────────────── */
.modal-overlay { position:fixed; inset:0; z-index:500; background:rgba(0,0,0,0.65); backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; padding:24px; }
.modal-overlay.open { display:flex; animation:fadeIn 0.3s ease; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.celebration-modal { background:var(--surface); border-radius:var(--radius-lg); padding:36px 28px; text-align:center; max-width:320px; width:100%; box-shadow:var(--shadow-lg); border:1px solid var(--border); animation:popIn 0.45s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes popIn { from{transform:scale(0.5);opacity:0} to{transform:scale(1);opacity:1} }
.celebration-emoji { font-size:4rem; display:block; margin-bottom:16px; animation:bounce 0.8s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes bounce { 0%,100%{transform:translateY(0)} 40%{transform:translateY(-20px)} }
.celebration-title { font-family:'Playfair Display',serif; font-size:1.6rem; color:var(--primary); margin-bottom:8px; }
.celebration-sub { color:var(--text-muted); font-size:0.95rem; line-height:1.5; }
.achievement-badge-large { font-size:3.5rem; display:block; margin:16px auto; }

/* ─── UTILS ────────────────────────────────────────────────── */
.empty-state { text-align:center; padding:40px 24px; color:var(--text-muted); }
.empty-state i { font-size:3rem; display:block; margin-bottom:12px; opacity:0.4; }
.empty-state p { font-size:0.9rem; line-height:1.6; }
.spinner { display:inline-block; width:18px; height:18px; border:2px solid rgba(255,255,255,0.4); border-top-color:white; border-radius:50%; animation:spin 0.7s linear infinite; }
@keyframes spin { to{transform:rotate(360deg)} }
.char-count { font-size:0.72rem; color:var(--text-muted); text-align:right; margin-top:-8px; margin-bottom:10px; }
.char-count.warn { color:var(--accent); }

/* ── RIPPLE ANIMATION ──────────────────────────────────────── */
@keyframes rippleAnim {
    to { transform:scale(2.5); opacity:0; }
}

/* ── PRIMARY-LIGHT VARIABLE (used by achievements + auth) ─── */
:root {
    --primary-light: #3b82f6;
    --reading-size: 20px;
}
body.dark-mode {
    --primary-light: #60a5fa;
}

/* ── READING CHAPTER HEADER ─────────────────────────────────── */
.reading-chapter-header {
    margin-bottom: 8px;
}

/* ── VAULT SORT BUTTONS ────────────────────────────────────── */
.sort-btn {
    padding: 6px 12px;
    border: 1.5px solid var(--border);
    border-radius: 20px;
    background: var(--input-bg);
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}
.sort-btn.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

/* ── MOOD BUTTONS ──────────────────────────────────────────── */
.mood-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.mood-btn {
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 2px solid var(--border);
    background: var(--input-bg);
    font-size: 1.4rem;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.2s;
    position: relative;
}
.mood-btn.active {
    border-color: var(--primary);
    background: var(--primary-glow);
    transform: scale(1.15);
}
.mood-btn:active { transform: scale(0.9); }

/* ── PRAYER TAGS ───────────────────────────────────────────── */
.prayer-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.prayer-tag {
    padding: 5px 12px;
    border-radius: 20px;
    border: 1.5px solid var(--border);
    background: var(--input-bg);
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}
.prayer-tag.active {
    background: var(--primary);
    color: white;
    border-color: var(--primary);
}

/* ── PRAYER ITEM TAG BADGE ─────────────────────────────────── */
.prayer-tag-badge {
    display: inline-flex; align-items: center;
    background: var(--primary-glow);
    color: var(--primary);
    font-size: 0.65rem; font-weight: 700;
    padding: 2px 8px; border-radius: 10px;
    text-transform: capitalize;
    margin-left: 6px;
}
 
