:root{
  --dove:#8a9199;--dove-deep:#69727a;--stone:#d9d4cd;--ivory:#f7f3ee;--paper:#fffdfa;
  --charcoal:#34383c;--rose:#b89a93;--sage:#9aa492;--taupe:#b8aea3;--line:#e4dfd8;
  --shadow:0 10px 30px rgba(52,56,60,.08)
}
*{box-sizing:border-box}html{background:var(--ivory)}
body{margin:0;color:var(--charcoal);background:radial-gradient(circle at 92% 6%,rgba(184,154,147,.10),transparent 20%),radial-gradient(circle at 12% 22%,rgba(154,164,146,.08),transparent 22%),linear-gradient(180deg,#eef0f1 0,var(--ivory) 340px);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
button,input,textarea,select{font:inherit}button{cursor:pointer}.shell{max-width:920px;margin:0 auto;padding:14px 14px 110px}
.hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#8b929a,#747e86);color:white;border-radius:28px;min-height:210px;padding:28px 24px 24px;box-shadow:var(--shadow)}
.hero:before{content:"";position:absolute;width:250px;height:250px;right:-75px;top:-75px;border:1px solid rgba(255,255,255,.18);border-radius:50% 50% 38% 62%}
.hero:after{content:"";position:absolute;width:160px;height:88px;left:-30px;bottom:-38px;border:1px solid rgba(255,255,255,.14);border-radius:60% 40% 65% 35%;transform:rotate(-12deg)}
.floral{position:absolute;right:20px;bottom:12px;width:135px;height:110px;opacity:.22}.floral path{stroke:white;stroke-width:1.35;fill:none;stroke-linecap:round}
.kicker{font-size:10px;text-transform:uppercase;letter-spacing:.18em;opacity:.82}.hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:36px;margin:9px 0 2px;letter-spacing:-.02em}.hero .sub{font-family:Georgia,"Times New Roman",serif;font-style:italic;opacity:.92;font-size:16px}
.pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;position:relative;z-index:2}.pill{padding:8px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.11);font-size:12px}
.nav{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;position:sticky;top:6px;z-index:50;margin:12px 0 16px;padding:7px;background:rgba(247,243,238,.94);backdrop-filter:blur(16px);border:1px solid rgba(120,120,120,.06);border-radius:17px;box-shadow:0 5px 18px rgba(0,0,0,.04)}
.nav button{border:0;background:transparent;color:#69727a;border-radius:12px;padding:10px 3px;font-size:11px}.nav button.active{background:white;color:#30363a;font-weight:700;box-shadow:0 3px 10px rgba(0,0,0,.06)}
.panel{display:none}.panel.active{display:block}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.card{position:relative;background:rgba(255,253,250,.97);border:1px solid rgba(118,111,102,.12);border-radius:20px;padding:18px;box-shadow:var(--shadow)}
.card.arch{padding-top:26px}.card.arch:before{content:"";position:absolute;left:16px;right:16px;top:12px;height:30px;border-top:1px solid rgba(184,154,147,.42);border-radius:50% 50% 0 0;pointer-events:none}
.s12{grid-column:span 12}.s8{grid-column:span 8}.s6{grid-column:span 6}.s4{grid-column:span 4}
h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:500;color:#373b3f}h2{font-size:25px;margin:0 0 8px}h3{font-size:19px;margin:0 0 8px}.smallcap{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#80878b}.muted{font-size:13px;line-height:1.5;color:#747b80}.tiny{font-size:11px;color:#8a8f92}.big{font-family:Georgia,serif;font-size:36px}.quote{font-family:Georgia,serif;font-style:italic;line-height:1.55;color:#5f666b}
.sep{height:1px;background:var(--line);margin:15px 0}.soft-line{height:1px;background:linear-gradient(90deg,transparent,var(--stone),transparent);margin:14px 0}
label{display:block;font-size:12px;color:#6d7479;margin:11px 0 5px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px 12px;color:var(--charcoal);outline:none}textarea{min-height:92px;resize:vertical;line-height:1.45}input:focus,textarea:focus,select:focus{border-color:#aeb5ba;box-shadow:0 0 0 3px rgba(138,145,153,.09)}
.primary,.secondary,.danger,.softbtn{border-radius:13px;padding:11px 14px}.primary{border:0;background:var(--dove);color:white}.secondary{border:1px solid var(--line);background:white;color:var(--charcoal)}.softbtn{border:1px solid #e2d7d1;background:#f8f1ee;color:#705f59}.danger{border:1px solid #d7b7b0;background:#fff6f4;color:#8c5850}.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.scripture-card{background:linear-gradient(180deg,#fffdfa,#f8f5f0)}.scripture-ref{font-family:Georgia,serif;font-size:19px;margin-top:8px}.discipline{border-top:1px solid #eee9e2;padding:14px 0}.discipline:first-child{border-top:0}.dhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.tag{font-size:9px;text-transform:uppercase;letter-spacing:.08em;padding:4px 7px;border-radius:999px;background:#edf0f1;color:#59646c;white-space:nowrap}.tag.soft{background:#f5eee9;color:#856d62}.tag.weekly{background:#edf2eb;color:#657160}
.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.actions button{border:1px solid var(--line);background:white;padding:8px 10px;border-radius:10px;font-size:12px}.actions .on.kept{background:#e8efe7;border-color:#a1aea0}.actions .on.struggled{background:#f6eae7;border-color:#c9a097}.actions .on.notdue{background:#eeeeef;border-color:#bec0c3}.progress{height:10px;border-radius:999px;background:#ece9e4;overflow:hidden;margin:10px 0}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--sage),var(--dove));border-radius:999px}
.journal-paper{background:repeating-linear-gradient(180deg,transparent 0,transparent 31px,rgba(138,145,153,.08) 32px),linear-gradient(180deg,#fffdfa,#fbf8f4)}.prompt{margin-top:14px}.prompt-title{font-family:Georgia,serif;font-size:17px;margin-bottom:6px}.day-tabs{display:flex;gap:6px;overflow:auto;padding-bottom:4px;margin-top:8px}.day-tabs button{min-width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:white;font-size:12px}.day-tabs button.active{background:var(--dove);color:white;border-color:var(--dove)}.weekly-box{background:linear-gradient(180deg,#f8f4f1,#fffdfa);border:1px solid #eadfd9}
.prayer-card{border:1px solid #e7e1da;border-radius:16px;background:#fff;padding:14px;margin:9px 0}.prayer-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.prayer-head button{border:0;background:transparent;font-size:20px;color:#70777c}.prayer-body{display:none;padding-top:10px}.prayer-card.open .prayer-body{display:block}.icon-circle{width:34px;height:34px;border-radius:50%;background:#f1eeea;display:grid;place-items:center;font-size:16px}
.timeline{position:relative;padding-left:26px}.timeline:before{content:"";position:absolute;left:9px;top:5px;bottom:5px;width:1px;background:#d7d3cd}.stage{position:relative;margin:0 0 16px;padding:0 0 0 4px}.stage:before{content:"";position:absolute;left:-22px;top:5px;width:9px;height:9px;border-radius:50%;background:#d0cbc5;border:2px solid var(--paper)}.stage.current:before{background:var(--sage);box-shadow:0 0 0 4px rgba(154,164,146,.15)}.stage b{font-family:Georgia,serif;font-size:17px}
.choice{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #e7e2dc;border-radius:14px;margin:8px 0;background:white}.choice input{width:auto;margin-top:3px}.choice .grow{flex:1}.segment{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap}.segment button{border:1px solid var(--line);background:white;padding:7px 9px;border-radius:999px;font-size:11px}.segment button.on{background:#edf0f2;border-color:#aeb8bf}.notice{background:#f2efe9;border:1px solid #e4ddd4;border-radius:14px;padding:12px;font-size:12px;line-height:1.5}.hidden{display:none!important}
.modal{position:fixed;inset:0;background:rgba(34,38,42,.38);display:none;align-items:flex-end;justify-content:center;z-index:100;padding:14px}.modal.show{display:flex}.sheet{background:var(--paper);width:min(720px,100%);max-height:92vh;overflow:auto;border-radius:26px 26px 18px 18px;padding:20px;box-shadow:0 18px 70px rgba(0,0,0,.18)}.footer{text-align:center;color:#8a8f92;font-size:11px;line-height:1.5;margin-top:20px}.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#34383c;color:white;padding:10px 14px;border-radius:999px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:200}.toast.show{opacity:1}
@media(max-width:730px){.s8,.s6,.s4{grid-column:span 12}.hero{min-height:195px;padding:24px 20px}.hero h1{font-size:32px}.nav button{font-size:10px;padding:9px 1px}}


.resource-divider{height:1px;background:linear-gradient(90deg,transparent,var(--stone),transparent);margin:15px 0 13px}
.resource-link{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:10px 11px;border-radius:13px;border:1px solid #e4ddd6;background:rgba(255,255,255,.84);color:var(--charcoal);text-decoration:none}
.resource-link small{display:block;margin-top:2px;font-size:10px;color:#81878a;font-weight:400}
.journal-resource{display:inline-block;margin-top:9px;color:#6e777d;text-decoration:none;border-bottom:1px solid #cfc9c2;padding-bottom:2px;font-size:12px}


.reading-choice{margin-top:12px;padding:11px 12px;border-radius:14px;background:rgba(255,255,255,.78);border:1px solid #e8e2dc}
.reading-label{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#788086;margin-bottom:4px}
.reading-or{text-align:center;font-size:9px;letter-spacing:.16em;color:#9a9691;margin:8px 0 -3px}
.resource-link.compact{margin-top:0}
.journal-readings{margin-top:10px;padding:10px 11px;border-radius:13px;background:#faf7f3;border:1px solid #e8e1da}
.journal-readings>div:not(.journal-or){display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.journal-readings span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7d8488}
.journal-readings b{font-family:Georgia,serif;font-weight:500;text-align:right}
.journal-or{text-align:center!important;display:block!important;font-size:9px;color:#99928d;letter-spacing:.14em;margin:5px 0}


.day-tabs-90{display:grid;grid-template-columns:repeat(10,minmax(34px,1fr));gap:6px;overflow:visible;margin-top:8px}
.day-tabs-90 button{min-width:0;width:100%;height:36px;border-radius:10px}
.journey-days{display:grid;grid-template-columns:repeat(10,minmax(30px,1fr));gap:6px;margin-top:12px}
.journey-days button{height:34px;border:1px solid var(--line);border-radius:10px;background:white;color:#626a6f;font-size:11px}
.journey-days button.done{background:#eef1ed;color:#657160}
.journey-days button.current{background:var(--dove);color:white;border-color:var(--dove);font-weight:700}
.journey-days button.future{opacity:.72}
@media(max-width:730px){
  .day-tabs-90,.journey-days{grid-template-columns:repeat(7,minmax(32px,1fr));gap:5px}
  .day-tabs-90 button,.journey-days button{height:34px}
}


.reading-links{margin-top:9px}
.reading-link{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:var(--charcoal)}
.reading-link .external{color:#8a9199;font-size:14px}
.journal-readings.simple a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;color:var(--charcoal);text-decoration:none}
.journal-readings.simple a b{font-family:Georgia,serif;font-weight:500}
.journal-readings.simple a span{color:#8a9199;font-size:12px}

.tracker-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:6px}
.tracker-percent{font-family:Georgia,serif;font-size:34px;line-height:1;color:#42484c}
.tracker-count{font-size:12px;color:#747b80;text-align:right}
.tracker-note{line-height:1.45;margin-top:7px}
.tracker-card .discipline:first-child{padding-top:4px}
.empty-tracker{padding:8px 0;color:#858b8f;font-size:13px}

a.booklet-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.prayer-quicklinks{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.prayer-quicklinks a{font-size:11px;padding:8px 10px;border-radius:11px;border:1px solid var(--line);background:white;color:var(--charcoal);text-decoration:none}
.reading-link.nonlink{cursor:default;opacity:.75}


.date-display{
  width:min(100%,320px);
  margin:10px auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:12px 18px;
  color:var(--charcoal);
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px;
  box-shadow:none;
}
.date-native-hidden{
  position:absolute!important;
  opacity:0!important;
  pointer-events:none!important;
  width:1px!important;
  height:1px!important;
}
@media(max-width:730px){
  .date-display{width:min(100%,280px);font-size:20px;padding:11px 14px}
}


/* V3.14 setup and daily greeting */
.modal{background:rgba(42,46,49,.42);backdrop-filter:blur(5px)}
.setup-sheet{width:min(760px,100%);padding:0 20px 18px;background:linear-gradient(180deg,#fffdfa 0%,#faf7f2 100%);scrollbar-width:thin}
.setup-top{position:sticky;top:0;z-index:3;margin:0 -20px;padding:21px 20px 15px;background:rgba(255,253,250,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(228,223,216,.78)}
.setup-top h2{margin:3px 0 6px;font-size:26px}
.setup-privacy{margin:15px 0 0;padding:10px 12px;border-radius:13px;background:#f1eee8;border:1px solid #e4ddd4;color:#757b7f;font-size:11px;line-height:1.5}
.setup-section{margin-top:15px;padding:16px;border:1px solid #e8e2da;border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 7px 18px rgba(52,56,60,.035)}
.setup-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:11px}
.setup-section-head h3{margin:3px 0 0;font-size:19px}
.setup-section-head>.tiny{max-width:210px;text-align:right;line-height:1.4}
.setup-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.setup-hint{margin-top:6px}
.choice-list{overflow:hidden;border:1px solid #e8e2da;border-radius:15px;background:#fffdfa}
.choice-list .choice{margin:0;border:0;border-radius:0;padding:12px 13px;background:transparent;border-bottom:1px solid #eee9e2;transition:background .15s ease}
.choice-list .choice:last-child{border-bottom:0}
.choice-list .choice.selected{background:linear-gradient(90deg,rgba(154,164,146,.10),rgba(184,154,147,.055))}
.choice-list .choice input[type="checkbox"]{width:21px;height:21px;margin:2px 2px 0 0;accent-color:#858f86;flex:0 0 auto}
.choice-list .choice b{display:block;font-size:14px;line-height:1.28;color:#3d4246}
.choice-list .choice .muted{font-size:11.5px;line-height:1.4;margin-top:2px}
.choice-list .segment{margin-top:8px;gap:6px}
.choice-list .segment button{padding:6px 9px;font-size:10px;background:#fff;border-radius:999px}
.choice-list .segment button.on{background:#eef1ed;border-color:#b8c1b5;color:#596456}
.setup-custom{padding:0;overflow:hidden}
.setup-custom summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;cursor:pointer}
.setup-custom summary::-webkit-details-marker{display:none}
.setup-custom summary strong{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:18px;margin-top:3px;color:#3d4246}
.summary-mark{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f1ede7;color:#747b80;font-size:18px;transition:transform .18s ease}
.setup-custom[open] .summary-mark{transform:rotate(45deg)}
.setup-custom-body{padding:0 16px 16px;border-top:1px solid #ece6de}
.setup-actions{position:sticky;bottom:-1px;z-index:3;margin:18px -20px -18px;padding:13px 20px calc(13px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1.5fr;gap:9px;background:rgba(255,253,250,.96);backdrop-filter:blur(12px);border-top:1px solid rgba(228,223,216,.84)}
.setup-actions button{width:100%}

.greeting-modal{align-items:center;padding:20px}
.greeting-card{position:relative;overflow:hidden;width:min(430px,100%);padding:28px 24px 23px;text-align:center;border-radius:28px;background:linear-gradient(165deg,#fffdfa 0%,#f7f1eb 100%);border:1px solid rgba(184,174,163,.28);box-shadow:0 28px 80px rgba(38,42,45,.22)}
.greeting-card:before{content:"";position:absolute;width:180px;height:180px;right:-82px;top:-80px;border:1px solid rgba(184,154,147,.23);border-radius:50%}
.greeting-card:after{content:"";position:absolute;width:120px;height:120px;left:-64px;bottom:-66px;border:1px solid rgba(154,164,146,.22);border-radius:50%}
.greeting-mark{position:relative;z-index:1;width:54px;height:54px;margin:0 auto 15px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#929aa1,#7c868d);color:white;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:15px;box-shadow:0 9px 20px rgba(105,114,122,.18)}
.greeting-card h2{position:relative;z-index:1;margin:7px 0 9px;font-size:27px}
.greeting-copy{position:relative;z-index:1;margin:0 auto;max-width:330px;font-family:Georgia,"Times New Roman",serif;font-size:16px;line-height:1.55;color:#60666a}
.greeting-actions{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.greeting-actions button{width:100%;min-height:45px}
@media(max-width:730px){
  .setup-sheet{padding-left:16px;padding-right:16px}
  .setup-top{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
  .setup-section{padding:14px;border-radius:17px}
  .setup-section-head{display:block}.setup-section-head>.tiny{text-align:left;max-width:none;margin-top:4px}
  .setup-fields{grid-template-columns:1fr}
  .choice-list .choice{padding:12px 11px}
  .setup-actions{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
  .greeting-card{padding:26px 18px 20px;border-radius:25px}
  .greeting-actions{grid-template-columns:1fr}
}


/* V3.15 spiritual adoption reminder */
.adoption-reminder{position:relative;margin-top:12px;padding:13px 14px 12px;border:1px solid rgba(184,154,147,.30);border-radius:15px;background:linear-gradient(145deg,rgba(248,241,237,.94),rgba(246,247,242,.96));overflow:hidden}
.adoption-reminder:after{content:"";position:absolute;width:68px;height:68px;right:-34px;top:-36px;border:1px solid rgba(154,164,146,.22);border-radius:50%;pointer-events:none}
.adoption-label{text-transform:uppercase;letter-spacing:.13em;font-size:9px;color:#8c827d}
.adoption-name{margin-top:4px;font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.3;color:#4f5558;overflow-wrap:anywhere}
.adoption-note{margin-top:5px;font-size:11px;line-height:1.45;color:#85817e}
.journal-adoption{margin-top:11px}.prayer-adoption{margin-top:10px}
@media(max-width:730px){.adoption-reminder{padding:12px 13px}.adoption-name{font-size:17px}}
