:root{
  --bg:#0b0d10;
  --sidebar:#0f1114;
  --surface:#121519;
  --surface-2:#161a1f;
  --surface-3:#1b2026;
  --line:#252a31;
  --line-soft:#1e2329;
  --text:#f1f3f5;
  --muted:#858d98;
  --quiet:#626a75;
  --accent:#b9fbcf;
  --accent-ink:#102218;
  --danger:#ffaaa7;
  --danger-bg:#2a1718;
  --radius:18px;
  --radius-sm:12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:var(--bg);
  color:var(--text);
  font-family:"DM Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{
  width:min(100%,430px);
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:22px;
  padding:30px;
}
.brand-mark{
  width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  background:var(--text);color:#101214;font:800 12px/1 "Manrope",sans-serif;letter-spacing:.02em
}
.brand-mark.small{width:38px;height:38px;border-radius:11px;font-size:10px}
.auth-copy{margin:28px 0 24px}
.auth-copy h1,.topbar h2,.panel h3,.section-heading h3,.hero-card h3{
  font-family:"Manrope",sans-serif;letter-spacing:-.035em
}
.auth-copy h1{font-size:clamp(30px,7vw,42px);line-height:1.08;margin:8px 0 13px}
.eyebrow{margin:0;font-size:10px;letter-spacing:.15em;font-weight:800;color:#747d88}
.muted{color:var(--muted)}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:#0d1013;margin-bottom:18px;border:1px solid var(--line-soft)}
.auth-tab{border:0;background:transparent;color:var(--muted);padding:10px;border-radius:9px;font-weight:700}
.auth-tab.active{background:var(--surface-3);color:var(--text)}
.auth-form{display:none;gap:14px}.auth-form.active{display:grid}
label{display:grid;gap:7px;color:#c8cdd4;font-size:12px;font-weight:700}
input,textarea{
  width:100%;color:var(--text);background:#0e1114;border:1px solid var(--line);
  border-radius:11px;padding:13px 14px;outline:none;transition:border-color .16s ease,background .16s ease
}
input:focus,textarea:focus{border-color:#48515c;background:#101419}
input[type="date"],input[type="month"]{color-scheme:dark}
.primary-btn,.secondary-btn,.ghost-btn,.text-btn,.menu-btn{border:0;border-radius:11px;font-weight:800;transition:.15s ease}
.primary-btn{background:var(--text);color:#111418;padding:13px 16px}.primary-btn:hover{background:#fff}
.secondary-btn{background:var(--surface-3);color:#dce1e7;padding:12px 15px;border:1px solid var(--line)}
.ghost-btn{background:transparent;color:#9ba3ad;padding:11px 14px;border:1px solid var(--line)}
.text-btn{background:transparent;color:#b8c0ca;padding:7px 0}
.full{width:100%}
.form-message{min-height:20px;font-size:12px;margin:14px 0 2px}.form-message.error{color:var(--danger)}.form-message.success{color:var(--accent)}
.tiny-note{font-size:10px;color:#626b76;margin:17px 0 0;text-align:center}
.app-shell{min-height:100vh;display:grid;grid-template-columns:236px 1fr}
.sidebar{
  position:sticky;top:0;height:100vh;padding:22px 16px;border-right:1px solid var(--line-soft);
  background:var(--sidebar);display:flex;flex-direction:column;justify-content:space-between
}
.side-brand{display:flex;align-items:center;gap:11px;padding:0 8px 24px}.side-brand strong{display:block;font-family:"Manrope";font-size:13px}.side-brand span{display:block;color:var(--quiet);font-size:10px;margin-top:2px}
.nav-list{display:grid;gap:3px}.nav-item{display:flex;gap:11px;align-items:center;width:100%;border:0;background:transparent;color:#7e8792;padding:11px 12px;border-radius:10px;text-align:left;font-weight:700;font-size:13px}.nav-item:hover{color:#d1d6dc;background:#14181d}.nav-item.active{background:#1a1f25;color:#f5f6f7}.nav-icon{width:18px;text-align:center;font-size:13px;color:#6f7883}
.sidebar-bottom{display:grid;gap:10px}.profile-chip{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid var(--line-soft);border-radius:13px;background:#111418}.avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#20252b;font-weight:800;color:#dce0e5}.profile-chip strong,.profile-chip span{display:block}.profile-chip strong{font-size:12px}.profile-chip span{font-size:9px;color:var(--quiet);margin-top:2px}
.main-content{padding:30px 38px 56px;max-width:1420px;width:100%;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.topbar h2{margin:4px 0 0;font-size:27px}.date-pill{padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:#969faa;font-size:11px;font-weight:700}.menu-btn{display:none;background:var(--surface-2);color:white;width:40px;height:40px}
.page{display:none}.page.active{display:block;animation:fadeIn .18s ease}@keyframes fadeIn{from{opacity:.3;transform:translateY(3px)}to{opacity:1;transform:none}}
.hero-grid{display:grid;grid-template-columns:1.55fr .8fr;gap:14px;margin-bottom:32px}
.hero-card,.stat-card,.panel,.summary-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius)}
.hero-card{padding:26px;display:flex;justify-content:space-between;align-items:center;min-height:212px}.hero-card h3{font-size:34px;line-height:1.06;margin:11px 0 10px}.soft-label{display:inline-flex;color:#a4acb6;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.hero-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:19px}.hero-meta span{font-size:11px;color:#777f89;border:1px solid var(--line);border-radius:999px;padding:7px 9px}.hero-meta b{color:#dfe3e8;margin-right:3px}
.stat-card,.summary-card{padding:22px;display:flex;flex-direction:column;justify-content:center;min-height:170px}.stat-card strong,.summary-card strong{font:800 clamp(27px,4vw,38px)/1 "Manrope";margin:15px 0 8px;letter-spacing:-.04em}
.ring{width:124px;height:124px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) 0deg,#20252a 0deg);padding:7px}.ring-inner{width:100%;height:100%;border-radius:50%;background:var(--surface);display:grid;place-items:center;align-content:center}.ring-inner strong{font:800 25px "Manrope"}.ring-inner span{font-size:10px;color:var(--quiet);margin-top:3px}
.section-heading,.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.section-heading{margin:28px 2px 14px}.section-heading h3,.panel h3{margin:5px 0 0}.section-note{margin:7px 0 0;color:#707985;font-size:11px;line-height:1.45;font-weight:500}.section-note b{color:#aeb5be}
.prayer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.prayer-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:15px;min-height:145px;transition:border-color .14s ease,background .14s ease}.prayer-card.done{background:#111b17;border-color:#254235}.prayer-card.missed{background:#1b1213;border-color:#462528}.prayer-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.prayer-card strong{font:700 16px "Manrope"}.prayer-card span{font-size:10px;color:var(--quiet)}.prayer-state{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.prayer-choice{border:1px solid var(--line);background:#0f1215;color:#767f8a;border-radius:9px;padding:8px 6px;font-size:10px;font-weight:800}.prayer-choice:hover{border-color:#3a4149;color:#bfc5cc}.prayer-choice.done.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.prayer-choice.missed.active{background:var(--danger-bg);border-color:#6b3034;color:var(--danger)}.prayer-status{display:block;margin-top:12px;font-size:10px!important;color:#6f7781!important}.prayer-card.done .prayer-status{color:#8dbca0!important}.prayer-card.missed .prayer-status{color:#c88787!important}
.two-col,.page-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.panel{padding:21px}.mini-list,.data-list,.journal-list{display:grid;gap:8px;margin-top:15px}.empty-state{padding:17px;border:1px dashed var(--line);border-radius:12px;color:#646d78;font-size:12px;text-align:center}.mini-item,.data-row,.journal-card{border:1px solid var(--line-soft);background:#101317;border-radius:12px;padding:12px 13px}.mini-item{display:flex;justify-content:space-between;gap:12px;align-items:center}.mini-item strong,.data-row strong{font-size:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:#9aa9bd}.stack-form{display:grid;gap:14px;margin-top:17px}.summary-card{min-height:100%}.data-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.data-main{min-width:0}.data-main p{margin:5px 0 0;color:var(--muted);font-size:11px;white-space:normal}.data-side{display:flex;align-items:center;gap:7px;flex-shrink:0}.amount{font-weight:800;color:#c7eed5}.icon-btn{border:1px solid var(--line);background:#14181d;color:#808995;border-radius:9px;width:32px;height:32px}.icon-btn.danger{color:#c98181}.project-row.done{opacity:.56}.project-row.done .data-main strong{text-decoration:line-through}.project-check{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:#14181d;color:#737c87}.project-check.done{background:#142119;color:#a8d8b8;border-color:#294534}
.journal-area{min-height:190px;resize:vertical;line-height:1.62}.journal-area.small{min-height:118px}.journal-area.tiny{min-height:100px}.journal-layout{align-items:start}.journal-card h4{margin:0 0 6px;font:700 13px "Manrope"}.journal-card p{margin:0;color:#939ca7;font-size:12px;line-height:1.58;white-space:pre-wrap}.journal-meta{display:flex;justify-content:space-between;align-items:center;margin-top:12px;color:#68717c;font-size:10px}
.recap-filter{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.recap-filter input{max-width:180px}.recap-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.recap-grid .summary-card{min-height:150px;padding:18px}.recap-grid .summary-card strong{font-size:30px}.recap-prayer-list{display:grid;gap:11px;margin-top:18px}.recap-prayer-row{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:12px}.progress-track{height:6px;background:#1d2228;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:#a7c8b2;border-radius:999px}.recap-num{font-size:10px;min-width:155px;text-align:right}
.toast{position:fixed;right:20px;bottom:20px;transform:translateY(15px);opacity:0;pointer-events:none;background:#1b2026;border:1px solid var(--line);color:#e1e4e8;padding:11px 14px;border-radius:10px;transition:.18s ease;font-size:12px;z-index:20}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1120px){.prayer-grid{grid-template-columns:repeat(3,1fr)}.recap-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.app-shell{display:block}.sidebar{position:fixed;left:-270px;top:0;z-index:30;width:236px;transition:.2s ease;box-shadow:20px 0 50px rgba(0,0,0,.35)}.sidebar.open{left:0}.main-content{padding:20px 16px 42px}.menu-btn{display:grid;place-items:center;margin-right:12px}.topbar{justify-content:flex-start}.topbar .date-pill{margin-left:auto}.hero-grid,.two-col,.page-grid{grid-template-columns:1fr}.hero-card h3{font-size:29px}}
@media(max-width:560px){.auth-card{padding:23px 19px}.topbar h2{font-size:22px}.date-pill{display:none}.hero-card{padding:20px;min-height:190px}.hero-progress{display:none}.prayer-grid{grid-template-columns:1fr}.prayer-card{min-height:auto}.prayer-state{grid-template-columns:1fr 1fr}.recap-grid{grid-template-columns:1fr 1fr}.summary-card{min-height:138px;padding:18px}.summary-card strong{font-size:26px}.data-row{align-items:flex-start}.recap-prayer-row{grid-template-columns:78px 1fr;gap:9px}.recap-prayer-row .recap-num{grid-column:2;text-align:left;min-width:0}.recap-filter{align-items:flex-start;gap:14px;flex-direction:column}.recap-filter input{max-width:none}.section-heading{align-items:flex-start}.section-heading>#prayerDateText{display:none}}
