* { box-sizing: border-box; }

:root {
  color-scheme: light;
  --page-start: #eef6ff; --page-end: #dbeafe;
  --surface: rgba(255,255,255,.94); --surface-soft: #f7fbff;
  --text: #334155; --muted: #64748b; --heading: #0f2747;
  --brand: #1769aa; --brand-dark: #0f4f85; --brand-soft: #e8f3ff;
  --border: #c8d8e8; --focus: rgba(23,105,170,.18); --white: #fff;
  --shadow-sm: 0 1px 3px rgba(15,39,71,.08);
  --shadow-lg: 0 20px 55px rgba(30,64,108,.14);
}

html { scroll-behavior: smooth; }

body {
  min-height: 100vh; margin: 0;
  background: radial-gradient(circle at 8% 0%, rgba(255,255,255,.92), transparent 32rem), linear-gradient(145deg, var(--page-start), #e6f1fc 48%, var(--page-end));
  background-attachment: fixed; color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased;
}

body.morning-theme {
  --page-start: #fff8ef; --page-end: #fed7aa;
  --surface: rgba(255,252,247,.96); --surface-soft: #fffaf3;
  --heading: #652b0d; --brand: #dd6b20; --brand-dark: #a8430a; --brand-soft: #ffedd5;
  --border: #edc49e; --focus: rgba(221,107,32,.2);
  background: radial-gradient(circle at 8% 0%, rgba(255,255,255,.94), transparent 32rem), linear-gradient(145deg, var(--page-start), #ffead2 48%, var(--page-end));
}

body.morning-theme .site-header { border-bottom-color: rgba(237,196,158,.78); }

body.home-theme {
  --page-start: #e7f3f2; --page-end: #cbdedc;
  --surface: rgba(252,254,253,.97); --surface-soft: #eff7f6;
  --text: #344b4c; --muted: #627879; --heading: #0c3439;
  --brand: #14756f; --brand-dark: #0b4d52; --brand-soft: #d9efec;
  --border: #b9d3d1; --focus: rgba(20,117,111,.2);
  background: radial-gradient(circle at 7% 0%,rgba(255,255,255,.9),transparent 30rem),radial-gradient(circle at 92% 20%,rgba(42,136,132,.13),transparent 28rem),linear-gradient(145deg,var(--page-start),#dceae8 48%,var(--page-end));
}
body.home-theme .site-header { border-bottom-color: rgba(160,192,190,.72); }
body.home-theme .brand-logo-wrap { box-shadow: inset 0 0 0 3px var(--white),0 5px 12px rgba(11,77,82,.18); }

body.meditation-theme {
  --page-start: #f5f6f7; --page-end: #d9dee3;
  --surface: rgba(252,252,252,.97); --surface-soft: #f3f5f6;
  --text: #3f4852; --muted: #707983; --heading: #252d35;
  --brand: #66717c; --brand-dark: #3d4751; --brand-soft: #e7eaed;
  --border: #cbd1d6; --focus: rgba(102,113,124,.2);
  background: radial-gradient(circle at 8% 0%, rgba(255,255,255,.96), transparent 32rem), linear-gradient(145deg,var(--page-start),#e9ecef 48%,var(--page-end));
}
body.meditation-theme .site-header { border-bottom-color: rgba(190,197,203,.82); }
body.meditation-theme .brand-logo-wrap { box-shadow: inset 0 0 0 3px var(--white),0 5px 12px rgba(43,52,60,.16); }

body.gratitude-theme {
  --page-start: #fff4f6; --page-end: #e8c9d1;
  --surface: rgba(255,251,252,.97); --surface-soft: #fff5f7;
  --text: #523d44; --muted: #826a72; --heading: #511f30;
  --brand: #a52f55; --brand-dark: #711b38; --brand-soft: #f8dfe7;
  --border: #dfb6c3; --focus: rgba(165,47,85,.2);
  background: radial-gradient(circle at 8% 0%,rgba(255,255,255,.94),transparent 31rem),radial-gradient(circle at 92% 18%,rgba(185,71,108,.13),transparent 27rem),linear-gradient(145deg,var(--page-start),#f5e4e9 48%,var(--page-end));
}
body.gratitude-theme .site-header { border-bottom-color: rgba(210,163,178,.74); }
body.gratitude-theme .brand-logo-wrap { box-shadow: inset 0 0 0 3px var(--white),0 5px 12px rgba(113,27,56,.17); }

body.combo-theme {
  --page-start: #fffaf0; --page-end: #dfc477;
  --surface: rgba(255,253,247,.97); --surface-soft: #fff9e9;
  --text: #554a34; --muted: #7f7052; --heading: #4e390d;
  --brand: #c18a18; --brand-dark: #76500d; --brand-soft: #f8e5a7;
  --border: #dfc987; --focus: rgba(183,121,22,.2);
  background: radial-gradient(circle at 8% 0%,rgba(255,255,255,.94),transparent 31rem),radial-gradient(circle at 92% 18%,rgba(210,161,49,.15),transparent 27rem),linear-gradient(145deg,var(--page-start),#f8edc9 48%,var(--page-end));
}
body.combo-theme .site-header { border-bottom-color: rgba(211,187,122,.75); }
body.combo-theme .brand-logo-wrap { box-shadow: inset 0 0 0 3px var(--white),0 5px 12px rgba(118,80,13,.17); }

body.literature-theme {
  --page-start: #f7f5fc; --page-end: #d9d2ec;
  --surface: rgba(253,252,255,.97); --surface-soft: #f6f3fb;
  --text: #494257; --muted: #756d85; --heading: #30234c;
  --brand: #73609b; --brand-dark: #4d3d72; --brand-soft: #eae5f5;
  --border: #cec5df; --focus: rgba(115,96,155,.2);
  background: radial-gradient(circle at 8% 0%,rgba(255,255,255,.95),transparent 31rem),radial-gradient(circle at 92% 18%,rgba(118,98,158,.13),transparent 27rem),linear-gradient(145deg,var(--page-start),#ede9f6 48%,var(--page-end));
}
body.literature-theme .site-header { border-bottom-color: rgba(190,179,213,.76); }
body.literature-theme .brand-logo-wrap { box-shadow: inset 0 0 0 3px var(--white),0 5px 12px rgba(77,61,114,.16); }

.site-header {
  position: static; z-index: 10;
  border-bottom: 1px solid rgba(200,216,232,.82); background: rgba(255,255,255,.91);
  box-shadow: 0 5px 22px rgba(15,39,71,.08); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
.header-inner { position: relative; display: flex; width: min(100%,1180px); min-height: 76px; margin: 0 auto; padding: 10px 14px; align-items: center; justify-content: center; gap: 12px; }
.brand { position: absolute; top: 50%; left: 14px; display: flex; align-items: center; gap: 11px; color: var(--brand-dark); transform: translateY(-50%); }
.brand-logo-wrap {
  display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center;
  border: 2px solid var(--brand); border-radius: 12px; background: var(--brand-soft);
  box-shadow: inset 0 0 0 3px var(--white), 0 5px 12px rgba(15,79,133,.16);
  transition: border-color .2s, background .2s, box-shadow .2s;
}
body.morning-theme .brand-logo-wrap { box-shadow: inset 0 0 0 3px var(--white), 0 5px 12px rgba(168,67,10,.18); }
.brand-logo { display: block; width: 31px; height: 31px; object-fit: contain; }
.brand-copy { display: none; min-width: 0; line-height: 1.15; }
.brand-copy strong { display: block; color: var(--heading); font-size: 15px; letter-spacing: -.01em; }
.brand-copy small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; letter-spacing: .025em; }
.main-nav { display: flex; align-items: stretch; gap: 5px; padding: 5px; border: 1px solid rgba(200,216,232,.9); border-radius: 15px; background: #f4f8fc; box-shadow: inset 0 1px 2px rgba(15,39,71,.04); }
.main-nav-btn {
  position: relative; display: grid; min-width: 0; min-height: 44px; padding: 6px 9px; place-content: center;
  border: 0; border-radius: 11px; background: transparent; color: var(--muted); text-align: left;
  font: inherit; white-space: nowrap; cursor: pointer; transition: color .2s, background .2s, box-shadow .2s, transform .2s;
}
.main-nav-btn:hover { color: var(--brand-dark); background: var(--white); }
.main-nav-btn.is-active { background: linear-gradient(145deg,var(--brand),var(--brand-dark)); color: var(--white); box-shadow: 0 6px 14px rgba(15,79,133,.22); transform: translateY(-1px); }
.main-nav-btn.is-active::after { position: absolute; right: 14px; bottom: -6px; left: 14px; height: 2px; border-radius: 99px; background: var(--brand); content: ""; }
.main-nav-btn:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.nav-eyebrow { display: none; font-size: 9px; font-weight: 750; line-height: 1.1; letter-spacing: .11em; text-transform: uppercase; opacity: .72; }
.nav-label { display: block; margin-top: 3px; font-size: 13px; font-weight: 750; line-height: 1.15; letter-spacing: -.01em; }
.nav-label-mobile { display: none; }

.page-shell { width: min(100%,920px); margin: 0 auto; padding: 18px 12px 40px; }
[hidden] { display: none !important; }
.home-panel {
  overflow: hidden; border: 1px solid rgba(161,194,191,.88); border-radius: 20px;
  background: rgba(250,253,252,.96); box-shadow: 0 22px 58px rgba(11,65,68,.15);
}
.home-hero {
  position: relative; overflow: hidden; padding: 44px 22px 38px;
  background: radial-gradient(circle at 88% 12%,rgba(105,211,192,.25),transparent 14rem),linear-gradient(138deg,#092f3d,#0b5157 48%,#168176);
  color: var(--white); text-align: center;
}
.home-hero::before,
.home-hero::after { position: absolute; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; content: ""; }
.home-hero::before { width: 190px; height: 190px; top: -112px; right: -48px; }
.home-hero::after { width: 120px; height: 120px; bottom: -82px; left: -28px; }
.home-kicker { display: inline-block; margin-bottom: 16px; font-size: 11px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; opacity: .82; }
.home-hero h1 { margin-bottom: 18px; color: var(--white); font-size: clamp(34px,10vw,54px); }
.home-hero h1::after { background: rgba(255,255,255,.78); }
.home-hero h1 em { color: #a9e3da; font-weight: inherit; }
.home-lead { max-width: 610px; margin: 0 auto; color: rgba(255,255,255,.88); font-size: 16px; line-height: 1.7; }
.home-intro { padding: 30px 22px 10px; }
.home-intro p { max-width: 720px; margin: 0 auto 17px; color: #405d5e; font-size: 15px; line-height: 1.75; }
.home-intro strong { color: var(--brand-dark); }
.home-tools { display: grid; gap: 13px; padding: 14px 22px 30px; }
.home-tool-card {
  display: grid; grid-template-columns: 50px minmax(0,1fr) auto; gap: 14px; width: 100%; padding: 18px;
  align-items: center; border: 1px solid #c5ddda; border-radius: 16px; background: linear-gradient(145deg,#fff,#edf7f5);
  color: var(--text); text-align: left; box-shadow: 0 6px 18px rgba(11,77,82,.08); cursor: pointer;
  transition: border-color .2s,box-shadow .2s,transform .2s;
}
.home-tool-card:hover { border-color: #94bdb9; box-shadow: 0 8px 20px rgba(11,77,82,.1); transform: translateY(-1px); }
.home-tool-card:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.home-tool-icon { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid #b9d5d2; border-radius: 14px; background: #e2f0ee; color: #356f6b; font-size: 17px; font-weight: 750; box-shadow: 0 3px 9px rgba(11,77,82,.08); }
.home-tool-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.home-tool-icon-today { background: #e7eeee; color: #4e6d6b; }
.home-tool-icon-gratitude { border-color: #dfc6ce; background: #f3e7eb; color: #8a5063; box-shadow: 0 3px 9px rgba(90,42,58,.07); }
.home-tool-icon-combo { border-color: #ddcfaa; background: #f2ecdd; color: #856b32; box-shadow: 0 3px 9px rgba(91,72,31,.07); }
.home-tool-icon-literature { border-color: #d2c9e1; background: #eeebf5; color: #6a598e; box-shadow: 0 3px 9px rgba(77,61,114,.07); }
.home-tool-copy { display: block; min-width: 0; }
.home-tool-copy small { display: block; margin-bottom: 2px; color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.home-tool-copy strong { display: block; color: var(--heading); font-size: 18px; line-height: 1.25; }
.home-tool-copy > span { display: block; margin-top: 4px; color: #5a7172; font-size: 13px; line-height: 1.45; }
.home-tool-arrow { color: #6f9693; font-size: 20px; opacity: .82; transition: transform .2s; }
.home-tool-card:hover .home-tool-arrow { transform: translateX(3px); }
.inventory-switcher {
  display: grid; grid-template-columns: repeat(2,1fr); gap: 4px; max-width: 360px; margin: 0 auto 16px; padding: 4px;
  border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.78); box-shadow: var(--shadow-sm);
}
.period-btn {
  min-height: 44px; padding: 9px 16px; border: 0; border-radius: 10px; background: transparent; color: var(--muted);
  font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; transition: color .2s, background .2s, box-shadow .2s;
}
.period-btn:hover { color: var(--brand-dark); background: var(--brand-soft); }
.period-btn.is-active { background: var(--brand); color: var(--white); box-shadow: 0 5px 12px rgba(15,79,133,.18); }
.period-btn:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.inventory-card {
  overflow: hidden; padding: 28px 16px 24px; border: 1px solid rgba(200,216,232,.9);
  border-radius: 18px; background: var(--surface); box-shadow: var(--shadow-lg);
}
h1, h2, .inventory-section h3, .closing > p { text-wrap: balance; }
h1 {
  margin: 0 0 30px; color: var(--heading); font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px,7vw,38px); font-weight: 700; line-height: 1.15; text-align: center; letter-spacing: -.025em;
}
h1::after { display: block; width: 44px; height: 3px; margin: 14px auto 0; border-radius: 999px; background: linear-gradient(90deg,#4ba3dc,var(--brand)); content: ""; }
h2 { margin: 0 0 20px; color: var(--heading); font-size: clamp(20px,5vw,27px); font-weight: 700; line-height: 1.25; letter-spacing: -.02em; }

.intro { padding: 18px; border: 1px solid #d8e7f5; border-radius: 14px; background: linear-gradient(145deg,#f8fbff,#edf6ff); }
.intro p { margin: 0 0 15px; color: #3f536b; font-size: 15px; line-height: 1.7; }
.intro p:last-child { margin-bottom: 0; }
.inventory-section {
  margin-top: 28px; padding: 22px 16px 4px; border: 1px solid #dce8f3;
  border-radius: 16px; background: var(--surface-soft); box-shadow: var(--shadow-sm);
}
.inventory-section h3 {
  margin: 0 0 24px; padding: 0 0 17px 14px; border-bottom: 1px solid #dbe7f2; border-left: 4px solid var(--brand);
  color: var(--heading); font-family: Georgia, "Times New Roman", serif; font-size: clamp(20px,5vw,27px); font-weight: 600; line-height: 1.35;
}
.inventory-section h3 em { color: var(--brand-dark); font-weight: 700; }
.section-intro { margin: 0 0 24px; color: #52667c; font-size: 15px; line-height: 1.7; }
.morning-today .section-heading {
  margin: 0 0 24px; padding: 0 0 17px 14px; border-bottom: 1px solid #f1d8bf; border-left: 4px solid var(--brand);
}
.morning-today .section-heading h3 { margin: 0 0 12px; padding: 0; border: 0; color: var(--brand-dark); font-style: italic; }
.morning-today .section-heading .section-intro {
  margin: 0; color: var(--heading); font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(20px,5vw,27px); font-weight: 600; line-height: 1.35;
}
.question { margin-bottom: 22px; }
.question label { display: block; margin-bottom: 8px; color: #263f5e; font-size: 15px; font-weight: 650; line-height: 1.45; }
textarea {
  display: block; width: 100%; min-height: 104px; resize: vertical; padding: 13px 14px;
  border: 1px solid var(--border); border-radius: 11px; outline: none; background: var(--white); color: #1e293b;
  box-shadow: inset 0 1px 2px rgba(15,39,71,.04); font: inherit; font-size: 16px; line-height: 1.5;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
textarea:hover { border-color: #99b8d4; }
textarea:focus { border-color: var(--brand); background: #fff; box-shadow: 0 0 0 4px var(--focus), inset 0 1px 2px rgba(15,39,71,.04); }
textarea::placeholder { color: #94a3b8; }

.closing { margin-top: 32px; padding: 24px 16px; border: 1px solid #cfe1f1; border-radius: 16px; background: linear-gradient(145deg,#eaf5ff,#f8fbff); text-align: center; }
.closing > p { max-width: 660px; margin: 0 auto 28px; color: var(--heading); font-family: Georgia, "Times New Roman", serif; font-size: clamp(20px,5vw,27px); font-weight: 600; line-height: 1.4; }
.closing h3 { margin: 0 0 12px; color: var(--brand-dark); font-size: 17px; letter-spacing: .12em; }
.closing > .closing-prayer { margin: 28px auto 0; }
.notes { min-height: 150px; text-align: left; }

.morning-card h1::after { background: linear-gradient(90deg,#fb923c,var(--brand-dark)); }
.morning-card .intro { margin-bottom: 24px; border-color: #f0cba9; background: linear-gradient(145deg,#fffaf4,#fff0df); }
.morning-card .intro p { color: #713f24; }
.morning-card .inventory-section { border-color: #f2d5b8; }
.morning-card .inventory-section h3 { border-bottom-color: #f1d8bf; }
.morning-card .section-intro { color: #713f24; }
.morning-card .question label { color: #713719; }
.morning-card textarea:hover { border-color: #d99a63; }
.morning-card .closing { border-color: #efc89f; background: linear-gradient(145deg,#ffead2,#fffaf5); }
.morning-card .btn-primary { background: linear-gradient(135deg,#ea7b2c,var(--brand-dark)); box-shadow: 0 8px 18px rgba(168,67,10,.2); }
.morning-card .btn-primary:hover { background: linear-gradient(135deg,#d9681e,#873406); }
.morning-card .btn-secondary { background: #fff6eb; color: #713719; }
.morning-card .btn-secondary:hover { border-color: #d99a63; background: #ffead7; }

.meditation-content { padding: 20px 18px; border: 1px solid #d8e7f5; border-radius: 16px; background: linear-gradient(145deg,#f8fbff,#edf6ff); }
.meditation-date { margin: 0 0 8px; color: var(--brand-dark); font-size: 14px; font-weight: 700; text-transform: capitalize; }
.meditation-content > h2 { margin-bottom: 6px; }
.meditation-quote { margin: 20px 0 8px; color: #334e68; font-size: 16px; line-height: 1.78; }
.meditation-reference { margin: 0 0 24px; color: var(--muted); font-size: 14px; font-style: italic; }
.meditation-text p { margin: 0 0 18px; color: #334e68; font-size: 16px; line-height: 1.78; }
.meditation-text p:last-child { margin-bottom: 0; }
.just-for-today-block { margin-top: 28px; padding: 20px; border-left: 4px solid var(--brand); border-radius: 12px; background: #e7f2fd; }
.just-for-today-block h3 { margin: 0 0 8px; color: var(--brand-dark); font-size: 16px; letter-spacing: .08em; }
.just-for-today-block p { margin: 0; color: #263f5e; font-size: 16px; font-weight: 650; line-height: 1.65; }
.meditation-source { margin: 22px 0 0; font-size: 13px; }
.meditation-source a { color: var(--brand); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.reflection-section { margin-top: 28px; }

body.meditation-theme .inventory-card { border-color: #cfd4d9; box-shadow: 0 20px 55px rgba(43,52,60,.13); }
body.meditation-theme .meditation-content { border-color: #d4d9dd; background: linear-gradient(145deg,#fafafa,#eef0f2); }
body.meditation-theme .meditation-date { color: #4b555f; }
body.meditation-theme .meditation-quote,
body.meditation-theme .meditation-text p { color: #46515b; }
body.meditation-theme .just-for-today-block { border-left-color: #626d77; background: #e4e7e9; }
body.meditation-theme .just-for-today-block h3 { color: #3d4751; }
body.meditation-theme .just-for-today-block p { color: #414b54; }
body.meditation-theme .reflection-section { border-color: #d4d9dd; background: #f3f5f6; }

.gratitude-card { border-color: #e1bec9; box-shadow: 0 20px 55px rgba(102,31,55,.14); }
.gratitude-card h1::after { background: linear-gradient(90deg,#dc7898,var(--brand-dark)); }
.gratitude-intro { padding: 22px 20px; border: 1px solid #e8c6d0; border-radius: 16px; background: linear-gradient(145deg,#fff9fa,#f9e8ed); }
.gratitude-kicker { display: block; margin-bottom: 7px; color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.gratitude-intro h2 { margin-bottom: 10px; }
.gratitude-intro p { margin: 0; color: #6c4b56; font-size: 15px; line-height: 1.7; }
.gratitude-form { margin-top: 24px; padding: 20px; border: 1px solid #e5c4ce; border-radius: 16px; background: var(--surface-soft); }
.gratitude-form label { display: block; margin-bottom: 9px; color: #68283e; font-size: 15px; font-weight: 700; }
.gratitude-form textarea { min-height: 118px; }
.gratitude-add-btn { width: 100%; margin-top: 12px; background: linear-gradient(135deg,#bd496e,var(--brand-dark)); box-shadow: 0 8px 18px rgba(113,27,56,.2); }
.gratitude-add-btn:hover { background: linear-gradient(135deg,#a83b60,#5d142d); }
.gratitude-list-section { margin-top: 24px; padding: 20px; border: 1px solid #e3c0ca; border-radius: 16px; background: linear-gradient(145deg,#fff,#fbf0f3); }
.gratitude-list-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid #ead0d8; }
.gratitude-list-heading h2 { margin: 0; }
.gratitude-count { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; background: #f5dce4; color: var(--brand-dark); font-size: 11px; font-weight: 750; }
.gratitude-empty { margin: 20px 0 4px; color: var(--muted); font-size: 14px; text-align: center; }
.gratitude-list { margin: 18px 0 0; padding-left: 32px; color: #583744; }
.gratitude-list li { margin-bottom: 12px; padding: 12px 14px; border: 1px solid #ead1d9; border-radius: 11px; background: rgba(255,255,255,.82); line-height: 1.55; }
.gratitude-list li::marker { color: var(--brand); font-weight: 800; }
.gratitude-list li:last-child { margin-bottom: 0; }
.actions.gratitude-actions { width: min(100%,680px); margin-right: auto; margin-left: auto; grid-template-columns: repeat(2,minmax(0,1fr)); }
.gratitude-card .btn-primary { background: linear-gradient(135deg,#b94167,var(--brand-dark)); box-shadow: 0 8px 18px rgba(113,27,56,.2); }
.gratitude-card .btn-primary:hover { background: linear-gradient(135deg,#a3375b,#5e142e); }
.gratitude-card .btn-secondary { border-color: #d9a9b8; background: #fff4f7; color: #762441; }
.gratitude-card .btn-secondary:hover { border-color: #be6c87; background: #f9e2e9; }
.btn:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }

.combo-card { border-top: 4px solid #c5962e; border-right-color: #e1ce95; border-bottom-color: #e1ce95; border-left-color: #e1ce95; box-shadow: 0 20px 55px rgba(105,76,16,.16); }
.combo-card h1::after { background: linear-gradient(90deg,#e5b94f,var(--brand-dark)); }
.combo-intro { padding: 22px 20px; border: 1px solid #dfc57b; border-radius: 16px; background: linear-gradient(145deg,#fffdf6,#f7e5aa); box-shadow: inset 0 1px rgba(255,255,255,.8); }
.combo-kicker { display: block; margin-bottom: 9px; color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.combo-intro p { margin: 0; color: #695831; font-size: 16px; line-height: 1.75; }
.combo-form { margin-top: 24px; }
.combo-form fieldset { display: grid; gap: 12px; margin: 0; padding: 0; border: 0; }
.combo-form .combo-section + .combo-section { margin-top: 28px; }
.combo-section legend { width: 100%; margin-bottom: 13px; padding: 0 0 11px; border-bottom: 1px solid #dfc986; color: var(--heading); font-family: Georgia,"Times New Roman",serif; font-size: 21px; font-weight: 700; }
.combo-item {
  display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 13px; padding: 16px; align-items: center;
  border: 1px solid #e5d4a2; border-radius: 14px; background: rgba(255,253,246,.9); color: #594921;
  font-size: 15px; font-weight: 650; line-height: 1.5; box-shadow: 0 3px 10px rgba(105,76,16,.055); cursor: pointer;
  transition: border-color .2s,background .2s,box-shadow .2s,transform .2s;
}
.combo-item:hover { border-color: #cfa94e; box-shadow: 0 6px 15px rgba(105,76,16,.1); transform: translateY(-1px); }
.combo-item:has(input:checked) { border-color: #c7962f; background: #fff3c9; }
.combo-item input {
  display: grid; width: 24px; height: 24px; margin: 0; place-content: center; appearance: none;
  border: 2px solid #b99a50; border-radius: 7px; background: #fff; cursor: pointer;
}
.combo-item input::before { color: #fff; font-size: 16px; font-weight: 900; line-height: 1; content: "✓"; transform: scale(0); transition: transform .15s; }
.combo-item input:checked { border-color: var(--brand-dark); background: var(--brand-dark); }
.combo-item input:checked::before { transform: scale(1); }
.combo-item input:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.combo-progress { display: flex; margin-top: 18px; padding: 14px 16px; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #e2ce91; border-radius: 13px; background: #f7e9bd; color: #665222; }
.combo-progress span { font-size: 13px; font-weight: 700; }
.combo-progress strong { color: var(--brand-dark); font-size: 15px; }
.actions.combo-actions { width: min(100%,680px); margin-right: auto; margin-left: auto; grid-template-columns: repeat(2,minmax(0,1fr)); }
.combo-card .btn-primary { background: linear-gradient(135deg,#c79225,var(--brand-dark)); box-shadow: 0 8px 18px rgba(118,80,13,.2); }
.combo-card .btn-primary:hover { background: linear-gradient(135deg,#ae7915,#5f3e08); }
.combo-card .btn-secondary { border-color: #d7bd72; background: #fffaf0; color: #6b480b; }
.combo-card .btn-secondary:hover { border-color: #bc9131; background: #f8e9b8; }

.literature-card { border-color: #d4cce2; box-shadow: 0 20px 55px rgba(63,47,94,.14); }
.literature-card h1::after { background: linear-gradient(90deg,#a997c8,var(--brand-dark)); }
.literature-intro { padding: 22px 20px; border: 1px solid #d9d1e7; border-radius: 16px; background: linear-gradient(145deg,#fefeff,#eee9f7); }
.literature-kicker { display: block; margin-bottom: 7px; color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.literature-intro h2 { margin-bottom: 10px; }
.literature-intro p { margin: 0; color: #625873; font-size: 15px; line-height: 1.7; }
.literature-selector-section { margin-top: 24px; padding: 22px 20px; border: 1px solid #d9d1e7; border-radius: 16px; background: rgba(255,255,255,.72); }
.literature-selector-section h2 { margin-bottom: 16px; }
.literature-switcher {
  display: grid; max-width: 430px; padding: 4px; border: 1px solid #cec5df; border-radius: 14px;
  background: #f7f4fb; box-shadow: 0 5px 15px rgba(77,61,114,.08);
}
.literature-select-btn {
  min-height: 46px; padding: 10px 16px; border: 0; border-radius: 10px; background: transparent; color: #6d627c;
  font: inherit; font-size: 14px; font-weight: 750; cursor: pointer; transition: color .2s, background .2s, box-shadow .2s;
}
.literature-select-btn:hover { background: #ebe5f4; color: #4d3d72; }
.literature-select-btn.is-active { background: var(--brand); color: #fff; box-shadow: 0 5px 12px rgba(77,61,114,.2); }
.literature-select-btn:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.literature-item { display: grid; margin-top: 24px; padding: 22px 20px; border: 1px solid #d8cfe6; border-radius: 17px; background: rgba(255,255,255,.82); box-shadow: 0 7px 20px rgba(63,47,94,.075); }
.literature-cover { display: grid; width: 58px; height: 68px; margin-bottom: 17px; place-items: center; border: 1px solid #c9bedc; border-radius: 10px 14px 14px 10px; background: #ebe5f4; color: var(--brand-dark); box-shadow: 4px 4px 0 #d8cfe7; }
.literature-cover svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.literature-copy h2 { margin-bottom: 9px; }
.literature-copy p { margin: 0; color: #665d75; font-size: 14px; line-height: 1.65; }
.literature-reader { min-width: 0; margin-top: 24px; }
.literature-loading { margin: 0; padding: 17px; border: 1px dashed #cfc5df; border-radius: 12px; color: #625873; text-align: center; }
.chapter-accordion { display: grid; gap: 10px; }
.chapter-accordion-item { min-width: 0; }
.chapter-tab {
  display: flex; width: 100%; min-height: 50px; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px 16px; border: 1px solid #d5cce4; border-radius: 11px;
  background: #f8f6fc; color: #665a78; font: inherit; font-size: 13px; font-weight: 700; line-height: 1.25;
  text-align: left; cursor: pointer; transition: border-color .2s, background .2s, color .2s, box-shadow .2s;
}
.chapter-tab:hover { border-color: #a999c5; background: #f0ebf8; color: #473865; }
.chapter-tab[aria-expanded="true"] { border-color: var(--brand); background: var(--brand-dark); color: #fff; box-shadow: 0 5px 13px rgba(77,61,114,.2); }
.chapter-arrow { flex: 0 0 auto; font-size: 25px; font-weight: 400; line-height: 1; transition: transform .2s ease; }
.chapter-tab[aria-expanded="true"] .chapter-arrow { transform: rotate(90deg); }
.chapter-panel {
  margin-top: 8px; padding: 24px 20px; border: 1px solid #d8cfe6; border-radius: 16px;
  background: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.9),0 8px 22px rgba(63,47,94,.07);
  scroll-margin-top: 18px;
}
.chapter-counter { display: block; margin-bottom: 7px; color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.chapter-panel h2 { margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #e1daec; color: var(--heading); font-size: clamp(24px,5vw,34px); }
.chapter-content { color: #3f394b; font-family: Georgia,"Times New Roman",serif; font-size: 17px; line-height: 1.85; }
.chapter-content p { margin: 0 0 1.15em; }
.chapter-content p:last-child { margin-bottom: 0; }
.chapter-content .literature-numbered-item { padding-left: 1.7em; text-indent: -1.7em; }
.literature-question-choices { display: flex; gap: 20px; margin-top: 8px; padding-left: 1.7em; text-indent: 0; }
.literature-fake-choice { display: inline-flex; align-items: center; gap: 7px; color: #514761; font-family: Inter,system-ui,-apple-system,"Segoe UI",sans-serif; font-size: 14px; font-weight: 700; }
.literature-fake-checkbox { display: inline-block; width: 17px; height: 17px; border: 1.5px solid #8e80a7; border-radius: 4px; background: #fff; box-shadow: inset 0 0 0 2px #fff; }
.step-accordion { display: grid; gap: 9px; margin-top: 22px; font-family: Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.step-accordion-item { min-width: 0; }
.step-tab {
  display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 16px; border: 1px solid #d9d0e7; border-radius: 10px; background: #f8f6fc; color: #55456f;
  font: inherit; font-size: 14px; font-weight: 800; text-align: left; cursor: pointer;
  transition: border-color .2s, background .2s, color .2s, box-shadow .2s;
}
.step-tab:hover { border-color: #aa99c5; background: #f0ebf8; }
.step-tab[aria-expanded="true"] { border-color: #8d79b1; background: #eae4f4; color: #3e2f5c; box-shadow: 0 4px 12px rgba(77,61,114,.1); }
.step-tab[aria-expanded="true"] .chapter-arrow { transform: rotate(90deg); }
.step-panel {
  padding: 22px 18px 10px; border-right: 1px solid #e1d9ec; border-bottom: 1px solid #e1d9ec;
  border-left: 1px solid #e1d9ec; border-radius: 0 0 12px 12px; background: #fdfcff;
  color: #3f394b; font-family: Georgia,"Times New Roman",serif; font-size: 17px; line-height: 1.85;
  scroll-margin-top: 18px;
}
.step-panel .step-principle {
  margin-bottom: 1.25em; color: #4b3a67; font-size: 18px; line-height: 1.65;
}
.step-principle em { font-style: italic; }
.steps-overview-list { margin: 1.2em 0 1.5em; padding-left: 1.65em; }
.steps-overview-list li { margin-bottom: .7em; padding-left: .35em; }
.steps-overview-list li::marker { color: #6c5a8f; font-family: Inter,system-ui,-apple-system,"Segoe UI",sans-serif; font-weight: 800; }
.steps-overview-list em { font-style: italic; }
.chapter-content .just-for-today-lead { margin-bottom: .7em; color: #4c3c65; font-weight: 700; }
.just-for-today-list { margin: 0 0 1.6em; padding-left: 1.45em; }
.just-for-today-list li { margin-bottom: .85em; padding-left: .35em; }
.just-for-today-list li::marker { color: #74619a; font-size: .85em; }
.just-for-today-list em { font-style: italic; }
.literature-actions { margin-top: 20px; }
.literature-actions .btn { display: grid; place-items: center; text-align: center; text-decoration: none; }
.literature-card .btn-primary { background: linear-gradient(135deg,#806bad,var(--brand-dark)); box-shadow: 0 8px 18px rgba(77,61,114,.19); }
.literature-card .btn-primary:hover { background: linear-gradient(135deg,#705b9b,#3e305e); }
.literature-card .btn-secondary { border-color: #cfc5df; background: #f7f4fb; color: #4f3e73; }
.literature-card .btn-secondary:hover { border-color: #a897c4; background: #ebe5f4; }

.actions { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 20px; }
.btn {
  min-height: 48px; padding: 13px 16px; border: 1px solid transparent; border-radius: 11px; appearance: none;
  font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; transition: background .2s, border-color .2s, box-shadow .2s, transform .15s;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.btn-primary { background: linear-gradient(135deg,#1d78bc,var(--brand-dark)); color: var(--white); box-shadow: 0 8px 18px rgba(15,79,133,.2); }
.btn-primary:hover { background: linear-gradient(135deg,#176ca9,#0c436f); }
.btn-secondary { border-color: var(--border); background: #f4f8fc; color: #29435f; }
.btn-secondary:hover { border-color: #a9c2d8; background: #e8f2fa; }
.back-to-top {
  position: fixed; left: 50%; bottom: max(18px,env(safe-area-inset-bottom)); z-index: 9;
  display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 1px solid rgba(130,146,160,.38);
  border-radius: 50%; background: rgba(255,255,255,.82); color: var(--brand-dark); box-shadow: 0 6px 18px rgba(15,39,71,.14);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font: inherit; font-size: 21px; line-height: 1; cursor: pointer;
  transform: translateX(-50%); transition: background .2s,border-color .2s,box-shadow .2s,transform .2s;
}
.back-to-top:hover { border-color: var(--border); background: var(--white); box-shadow: 0 9px 22px rgba(15,39,71,.18); transform: translate(-50%,-2px); }
.back-to-top:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 599px) {
  .header-inner { padding: 14px 16px; flex-direction: column; align-items: center; gap: 12px; }
  .brand { position: static; align-self: center; transform: none; }
  .brand-copy { display: block; text-align: left; }
  .brand-copy strong { font-size: 14px; }
  .brand-copy small { font-size: 10px; }
  .main-nav {
    width: min(280px,100%); padding: 4px 12px; flex-direction: column; gap: 0;
    border-color: rgba(175,193,198,.55); border-radius: 12px; background: rgba(255,255,255,.46);
    box-shadow: 0 3px 12px rgba(15,39,71,.045);
  }
  .main-nav-btn {
    width: 100%; min-height: 35px; padding: 8px 6px; border-radius: 0; color: var(--muted); text-align: center;
  }
  .main-nav-btn + .main-nav-btn { border-top: 1px solid rgba(175,193,198,.32); }
  .main-nav-btn:hover { background: transparent; color: var(--brand-dark); }
  .main-nav-btn.is-active { background: transparent; color: var(--brand-dark); box-shadow: none; transform: none; }
  .main-nav-btn.is-active::after { right: 50%; bottom: 3px; left: auto; width: 34px; height: 2px; background: var(--brand); transform: translateX(50%); }
  .nav-label { margin-top: 0; }
  .nav-label-desktop { display: none; }
  .nav-label-mobile { display: block; }
  .literature-card { padding-right: 16px; padding-left: 16px; }
  .chapter-panel {
    width: calc(100vw - 24px); margin-right: calc(50% - 50vw + 12px); margin-left: calc(50% - 50vw + 12px);
    padding: 24px 16px; border-right: 0; border-left: 0; border-radius: 12px;
  }
  .chapter-content { font-size: 17px; line-height: 1.75; }
  .step-accordion {
    width: calc(100vw - 24px); margin-right: calc(50% - 50vw + 12px); margin-left: calc(50% - 50vw + 12px);
  }
  .step-panel { padding: 20px 14px 8px; }
}

@media (min-width: 600px) {
  .header-inner { min-height: 84px; padding-inline: 24px; }
  .brand { left: 24px; }
  .brand-logo-wrap { width: 46px; height: 46px; }
  .brand-logo { width: 34px; height: 34px; }
  .main-nav-btn { min-width: 82px; padding-inline: 8px; }
  .nav-eyebrow { display: block; font-size: 9px; }
  .nav-label { font-size: 14px; }
  .page-shell { padding: 30px 24px 56px; }
  .home-hero { padding: 62px 42px 52px; }
  .home-intro { padding: 40px 42px 14px; }
  .home-tools { grid-template-columns: 1fr 1fr; padding: 18px 42px 42px; }
  .literature-home-card { grid-column: auto; }
  .gratitude-intro, .gratitude-form, .gratitude-list-section { padding: 26px 28px; }
  .combo-intro { padding: 27px 30px; }
  .combo-item { padding: 18px 20px; font-size: 16px; }
  .literature-intro, .literature-selector-section, .literature-item { padding: 28px 30px; }
  .literature-item { grid-template-columns: 72px minmax(0,1fr); column-gap: 22px; }
  .literature-cover { grid-row: 1 / 3; margin-bottom: 0; }
  .literature-reader { grid-column: 1 / -1; }
  .literature-actions { grid-column: 1 / -1; justify-self: center; width: min(100%,420px); }
  .chapter-panel { padding: 34px 38px; }
  .chapter-content { font-size: 18px; }
  .inventory-card { padding: 42px 40px 36px; border-radius: 22px; }
  .meditation-content { padding: 28px 30px; }
  .intro, .inventory-section, .closing { padding-left: 26px; padding-right: 26px; }
  .inventory-section { margin-top: 34px; padding-top: 28px; }
  .question { margin-bottom: 26px; }
  .actions { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 24px; }
}

@media (min-width: 1180px) {
  .brand-copy { display: block; }
}

@media (min-width: 900px) {
  .inventory-card { padding: 52px 56px 42px; }
  .inventory-section { padding-right: 32px; padding-left: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

@media print {
  .site-header, .inventory-switcher, .actions, .back-to-top { display: none !important; }
  body, .page-shell { background: #fff; }
  .page-shell { width: 100%; padding: 0; }
  .inventory-card, .inventory-section, .closing { border-color: #b8c7d6; background: #fff; box-shadow: none; }
}
