:root{--surface:#f6f1e6;--surface-2:#efe8d7;--card:#fbf8f0;--border:#e0d6c2;--text:#2a2620;--text-soft:#6a6252;--text-faint:#938a76;--accent:#615380;--accent-ink:#f3efe4;--shadow:0 1px 3px #3c321e14;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--surface:#17140f;--surface-2:#1f1b15;--card:#232019;--border:#38322a;--text:#ece5d6;--text-soft:#b3a992;--text-faint:#7d7461;--accent:#9a8bc0;--accent-ink:#17140f;--shadow:0 1px 4px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--surface);color:var(--text);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;transition:background .2s,color .2s}button{cursor:pointer;font-family:inherit}.app{max-width:640px;padding:0 1rem calc(2rem + env(safe-area-inset-bottom));min-height:100vh;margin:0 auto}.topbar{background:linear-gradient(var(--surface) 70%, transparent);z-index:5;justify-content:space-between;align-items:center;padding:1rem 0 .5rem;display:flex;position:sticky;top:0}.brand{background:0 0;border:none;align-items:center;gap:.5rem;padding:0;display:flex}.brand__logo{border-radius:8px;flex:none;width:30px;height:30px;display:block}.brand__mark{letter-spacing:-.02em;color:var(--text);font-size:1.35rem;font-weight:800}.brand__sub{color:var(--text-soft);margin-left:.3rem;font-weight:500}.iconbtn{background:var(--card);border:1px solid var(--border);width:2.2rem;height:2.2rem;color:var(--text-soft);box-shadow:var(--shadow);border-radius:999px;font-size:1.1rem}.viewswitch{background:var(--surface-2);border-radius:999px;gap:.25rem;margin:.5rem 0;padding:.25rem;display:flex}.viewswitch__opt{color:var(--text-soft);background:0 0;border:none;border-radius:999px;flex:1;padding:.4rem 0;font-size:.9rem;font-weight:600}.viewswitch__opt--on{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.stepper{justify-content:space-between;align-items:center;margin:.25rem 0 .75rem;display:flex}.stepper__btn{background:var(--card);border:1px solid var(--border);width:2.2rem;height:2.2rem;color:var(--text-soft);border-radius:999px;font-size:1.3rem;line-height:1}.stepper__label{font-size:1.05rem;font-weight:700}.block{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:.85rem;padding:1rem}.block__head{justify-content:space-between;align-items:baseline;margin-bottom:.6rem;display:flex}.block__title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.78rem;font-weight:700}.block__hint{color:var(--text-faint);font-size:.72rem;font-style:italic}.block--identity{background:var(--wash);border-color:color-mix(in srgb, var(--spine) 35%, var(--border));gap:.85rem;padding:1.1rem 1rem;display:flex}:root[data-theme=dark] .block--identity{background:color-mix(in srgb, var(--spine) 20%, var(--card));border-color:color-mix(in srgb, var(--spine) 45%, var(--card))}.identity__spine{background:var(--spine);border-radius:999px;flex:none;width:5px}.identity__date{color:var(--text-soft);margin:0 0 .15rem;font-size:.82rem}.identity__name{color:var(--ink);margin:0 0 .5rem;font-size:1.4rem;line-height:1.2}:root[data-theme=dark] .identity__name{color:color-mix(in srgb, var(--spine) 40%, var(--text))}.identity__meta{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;font-size:.8rem;display:flex}.chip{background:var(--spine);color:#fff;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600}.identity__rank{font-weight:600}.identity__hdo{color:var(--spine);font-weight:600}.identity__optional{color:var(--text-soft);margin:.5rem 0 0;font-size:.82rem;font-style:italic}.identity__optional-lead{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.1rem;font-size:.65rem;font-style:normal;font-weight:700;display:block}.readingset{margin-bottom:.6rem}.readingset__label{color:var(--text-soft);margin:0 0 .25rem;font-size:.78rem;font-weight:700}.citations{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.citation{background:var(--surface-2);border-radius:8px;padding:.4rem .6rem;font-size:1rem;font-weight:600}.response{color:var(--text-soft);margin:.55rem 0 0;font-size:.95rem;font-style:italic}.response__lead{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-right:.35rem;font-size:.7rem;font-style:normal;font-weight:700}.readings__empty{color:var(--text-soft);font-size:.9rem}.readings__attr{color:var(--text-faint);border-top:1px solid var(--border);margin:.7rem 0 0;padding-top:.5rem;font-size:.72rem}.prayer__frame{color:var(--text-soft);margin:0 0 .5rem;font-size:.92rem}.prayer__soon{color:var(--text-faint);background:var(--surface-2);border-radius:8px;margin:0;padding:.5rem .7rem;font-size:.82rem}.savepill{color:var(--text-faint);font-size:.72rem}.savepill--saved{color:#3f6b4c}:root[data-theme=dark] .savepill--saved{color:#86c39b}.journal__area{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:10px;min-height:8rem;padding:.75rem;font-size:1rem}.journal__area:focus{outline:2px solid var(--accent);outline-offset:1px}.journal__note{color:var(--text-faint);margin:.5rem 0 0;font-size:.74rem}.weeklist{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.weekrow{border:1px solid var(--border);text-align:left;background:var(--wash);border-radius:10px;align-items:center;gap:.7rem;width:100%;padding:.7rem .8rem;display:flex}:root[data-theme=dark] .weekrow{background:color-mix(in srgb, var(--spine) 14%, var(--card))}.weekrow--sel{outline:2px solid var(--accent)}.weekrow__spine{background:var(--spine);border-radius:999px;align-self:stretch;width:4px}.weekrow__date{min-width:4.2rem;color:var(--text);font-size:.85rem;font-weight:700}.weekrow__today{text-transform:uppercase;color:var(--accent);font-size:.62rem;font-weight:700;display:block}.weekrow__body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.weekrow__name{color:var(--ink);opacity:.8;font-size:.92rem}:root[data-theme=dark] .weekrow__name{color:color-mix(in srgb, var(--spine) 35%, var(--text))}.weekrow__name--obligatory{opacity:1;font-weight:700}.weekrow__name--major{font-weight:800}.month__optiontoggle{color:var(--text-soft);cursor:pointer;align-items:center;gap:.45rem;margin-bottom:.6rem;font-size:.78rem;display:flex}.month__optiontoggle input{width:1rem;height:1rem;accent-color:var(--accent)}.weekrow__dot{background:var(--accent);border-radius:999px;flex:none;width:8px;height:8px}.month__dow{grid-template-columns:repeat(7,1fr);gap:.3rem;margin-bottom:.3rem;display:grid}.month__dow span{text-align:center;color:var(--text-faint);font-size:.7rem;font-weight:700}.month__grid{grid-template-columns:repeat(7,1fr);gap:.3rem;display:grid}.cell{border:1px solid var(--border);background:var(--wash);text-align:left;border-radius:9px;flex-direction:column;gap:1px;min-height:3.8rem;padding:3px 4px 4px 8px;display:flex;position:relative;overflow:hidden}:root[data-theme=dark] .cell{background:color-mix(in srgb, var(--spine) 20%, var(--card));border-color:color-mix(in srgb, var(--spine) 30%, var(--card))}.cell--blank{background:0 0;border:none;min-height:0}.cell--sel{outline:2px solid var(--accent);outline-offset:-1px}.cell__spine{background:var(--spine);width:4px;position:absolute;top:0;bottom:0;left:0}.cell__top{justify-content:space-between;align-items:center;gap:3px;display:flex}.cell__num{color:var(--ink);font-size:.82rem;font-weight:600}:root[data-theme=dark] .cell__num{color:var(--text)}.cell__num--feast{font-weight:800}.cell--today .cell__num{background:var(--accent);color:var(--accent-ink);border-radius:999px;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;display:inline-flex}.cell__dot{background:var(--accent);border-radius:999px;flex:none;width:5px;height:5px}.cell__feast{color:var(--ink);opacity:.95;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.58rem;font-weight:600;line-height:1.15;display:-webkit-box;overflow:hidden}:root[data-theme=dark] .cell__feast{color:var(--text)}.cell__feast--major{opacity:1;font-weight:800}.cell__feast--optional{opacity:.55;font-size:.54rem;font-style:italic;font-weight:400}.installbanner{background:color-mix(in srgb, var(--accent) 14%, var(--card));border:1px solid color-mix(in srgb, var(--accent) 34%, var(--border));border-radius:var(--radius);color:var(--text);align-items:center;gap:.6rem;margin:.75rem 0 0;padding:.6rem .8rem;font-size:.85rem;display:flex}.installbanner__icon{border-radius:8px;flex:none;width:34px;height:34px}.installbanner__text{flex:1;line-height:1.35}.installbanner__actions{flex:none;align-items:center;gap:.35rem;display:flex}.installbanner__install{background:var(--accent);color:var(--accent-ink);border:none;border-radius:999px;padding:.4rem .9rem;font-size:.82rem;font-weight:700}.installbanner__dismiss{color:var(--text-soft);background:0 0;border:none;padding:0 .3rem;font-size:1.25rem;line-height:1}.backup{background:color-mix(in srgb, #9c6b0a 16%, var(--card));border:1px solid color-mix(in srgb, #9c6b0a 40%, var(--border));border-radius:var(--radius);align-items:center;gap:.6rem;margin-bottom:.85rem;padding:.7rem .9rem;font-size:.85rem;display:flex}.backup span{color:var(--text);flex:1}.backup__btn{color:#fff;background:#9c6b0a;border:none;border-radius:999px;flex:none;padding:.4rem .85rem;font-size:.82rem;font-weight:700}.funnel{background:color-mix(in srgb, var(--accent) 12%, var(--card));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:var(--radius);text-align:center;margin-top:.5rem;padding:.85rem 1rem}.funnel__q{margin:0 0 .6rem;font-size:.95rem;font-weight:700}.funnel__sub{color:var(--text-soft);margin:0 0 .6rem;font-size:.82rem;line-height:1.35}.funnel__link{color:var(--accent);font-size:.82rem;font-weight:700;text-decoration:none}.sitefoot{text-align:center;border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}.sitefoot p{color:var(--text-faint);margin:0 0 .25rem;font-size:.78rem}.sitefoot__by{font-weight:600}.sitefoot a{color:var(--accent);text-decoration:none}.sitefoot a:hover{text-decoration:underline}.sheet__backdrop{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:640px;padding:1rem 1.1rem calc(1.5rem + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;max-height:88vh;overflow-y:auto}.sheet__head{justify-content:space-between;align-items:center;display:flex}.sheet__head h2{margin:.2rem 0;font-size:1.2rem}.sheet__close{color:var(--text-soft);background:0 0;border:none;font-size:1.1rem}.setgroup{border-top:1px solid var(--border);padding:.9rem 0}.setgroup h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:0 0 .6rem;font-size:.78rem}.setgroup__note{color:var(--text-soft);margin:0 0 .6rem;font-size:.82rem}.setgroup__row{flex-wrap:wrap;gap:.5rem;display:flex}.setgroup__row--restore{margin-top:.5rem}.setgroup__label{color:var(--text-soft);margin:0 0 .4rem;font-size:.8rem;font-weight:600}.btn--ghost{color:var(--text-soft);background:0 0;font-weight:500}.setgroup__status{color:var(--accent);margin:.6rem 0 0;font-size:.82rem}.segmented{background:var(--surface-2);border-radius:999px;gap:.25rem;padding:.25rem;display:flex}.segmented__opt{color:var(--text-soft);background:0 0;border:none;border-radius:999px;flex:1;padding:.45rem 0;font-size:.9rem;font-weight:600}.segmented__opt--on{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.toggle{align-items:center;gap:.6rem;padding:.35rem 0;font-size:.9rem;display:flex}.toggle input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:.5rem .9rem;font-size:.88rem;font-weight:600}.sheet__foot{text-align:center;color:var(--text-faint);margin:1rem 0 0;font-size:.72rem;line-height:1.6}.sheet__foot a{color:var(--accent);text-decoration:none}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
