[hidden]{ display:none !important }
:root{
  --paper:#F7F3EC; --paper-2:#EAF3E6; --ink:#0E2D2C; --ink-soft:#4A6663;
  --line:#C3DACB; --tech:#004645; --tech-soft:#D6EBCE; --done:#004645; --done-ink:#F7F3EC;
  --warn:#8A3B12;
  --he:"Frank Ruhl Libre", "Times New Roman", serif;
  --en:"Source Serif 4", Georgia, serif;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0F1F1E; --paper-2:#16302E; --ink:#E8EFE9; --ink-soft:#9DB5AF;
    --line:#2A4744; --tech:#7FC4BC; --tech-soft:#1F3D3A; --done:#5FAFA6; --done-ink:#0F1F1E; --warn:#E59B6E;
  }
}
:root[data-theme="dark"]{
  --paper:#0F1F1E; --paper-2:#16302E; --ink:#E8EFE9; --ink-soft:#9DB5AF;
  --line:#2A4744; --tech:#7FC4BC; --tech-soft:#1F3D3A; --done:#5FAFA6; --done-ink:#0F1F1E; --warn:#E59B6E;
}
:root{ box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); }
*,*::before,*::after{ box-sizing:inherit }
html{ scroll-padding-top:env(safe-area-inset-top,0px) }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--en); font-size:17px; line-height:1.5; -webkit-text-size-adjust:100% }
[lang="he"],.he{ font-family:var(--he) }
button,input,select{ font:inherit; color:inherit }
a{ color:var(--tech) }
:focus-visible{ outline:2px solid var(--tech); outline-offset:2px }

/* header */
.top{ position:sticky; top:calc(env(safe-area-inset-top,0px) + var(--vvt,0px)); z-index:5; display:flex; align-items:center; gap:.75rem;
  padding:.6rem 1rem; background:var(--paper); border-bottom:1px solid var(--line) }
.mark{ display:flex; flex-direction:column; text-decoration:none; color:var(--ink); line-height:1.15; margin-inline-end:auto }
.mark-he{ font-family:var(--he); font-weight:700; font-size:1.25rem; color:var(--tech) }
.mark-en{ font-size:.78rem; color:var(--ink-soft); letter-spacing:.02em }
.back{ background:none; border:0; color:var(--tech); padding:.3rem 0; cursor:pointer }
.menu{ display:flex; gap:1rem; align-items:center; font-size:.92rem }
.link{ background:none; border:0; padding:0; color:var(--tech); cursor:pointer; text-decoration:underline }

main{ max-width:960px; margin:0 auto; padding:1rem 1rem 4rem }
h1{ font-family:var(--he); font-weight:500; font-size:1.9rem; margin:.4rem 0 .2rem; line-height:1.2 }
h2{ font-size:1.05rem; font-weight:600; margin:1.6rem 0 .5rem; color:var(--ink-soft) }
.sub{ color:var(--ink-soft); margin:0 0 1rem }

/* sign-in */
.signin{ max-width:26rem; margin:12vh auto 0; text-align:center }
.signin .big{ font-family:var(--he); font-size:3rem; font-weight:700; color:var(--tech); margin:0; line-height:1.1 }
.signin p{ color:var(--ink-soft) }
.field{ display:flex; flex-direction:column; gap:.5rem; margin:1.4rem 0 .8rem; text-align:start }
input[type=email],input[type=number],input[type=datetime-local]{ width:100%; padding:.7rem .8rem; border:1px solid var(--line); border-radius:8px; background:var(--paper-2) }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.4rem; padding:.7rem 1.1rem; border-radius:8px;
  border:1px solid var(--tech); background:var(--tech); color:var(--paper); cursor:pointer; font-weight:600 }
.btn.ghost{ background:transparent; color:var(--tech) }
.btn.wide{ width:100% }
.btn:disabled{ opacity:.5; cursor:default }
.or{ margin:1rem 0; color:var(--ink-soft); font-size:.9rem }

/* library */
.shelf{ display:flex; flex-direction:column; border-top:1px solid var(--line) }
.book{ display:grid; grid-template-columns:auto 1fr; gap:.15rem 1rem; align-items:center; padding:.8rem .2rem; border-bottom:1px solid var(--line);
  text-decoration:none; color:inherit; direction:rtl }
.book:hover{ background:var(--paper-2) }
.book .t-he{ grid-column:2; grid-row:1; font-family:var(--he); font-size:1.3rem; font-weight:500; text-align:right }
.book .t-en{ grid-column:2; grid-row:2; font-size:.85rem; color:var(--ink-soft); text-align:right }
.book .pct{ grid-column:1; grid-row:1 / span 2; text-align:left; direction:ltr; font-variant-numeric:tabular-nums; color:var(--ink-soft); font-size:.85rem; min-width:4.5rem }
.book .pct b{ display:block; color:var(--tech); font-size:1.15rem; font-weight:600 }
.book.crown .t-he{ color:var(--tech); font-weight:700 }
.bar{ grid-column:1 / -1; grid-row:3; height:3px; background:var(--tech-soft); border-radius:2px; overflow:hidden }
.bar i{ display:block; height:100%; background:var(--done) }

/* line picker inside an app */
.tabs{ display:flex; flex-wrap:wrap; gap:.4rem; margin:.6rem 0 1rem }
.tab{ padding:.35rem .8rem; border-radius:999px; border:1px solid var(--line); background:transparent; cursor:pointer; font-size:.9rem }
.tab[aria-pressed="true"]{ background:var(--tech); border-color:var(--tech); color:var(--paper) }

/* the grid: one square per unit, right to left for Hebrew sefarim */
.section{ margin:1.2rem 0 .4rem; display:flex; align-items:baseline; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); padding-bottom:.2rem }
.section .sh{ font-family:var(--he); font-size:1.2rem; font-weight:500 }
.section .se{ font-size:.82rem; color:var(--ink-soft) }
.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(3.1rem,1fr)); gap:4px; margin:.5rem 0 }
.grid.rtl{ direction:rtl }
.sq{ aspect-ratio:1; display:flex; align-items:center; justify-content:center; text-align:center; padding:2px;
  border:1px solid var(--line); background:var(--paper); border-radius:4px; cursor:pointer; font-size:.72rem; line-height:1.1;
  color:var(--ink-soft); overflow:hidden; word-break:break-word }
.sq:hover{ border-color:var(--tech) }
.grid.wide .sq{ aspect-ratio:auto; min-height:3.2rem; font-size:.82rem; padding:.3rem .4rem }
.sq.done{ background:var(--done); border-color:var(--done); color:var(--done-ink) }
.sq.part{ background:linear-gradient(to top, var(--tech-soft) var(--p), var(--paper) var(--p)); border-color:var(--tech); color:var(--ink) }

/* daily lines */
.day{ display:flex; justify-content:space-between; align-items:center; padding:.55rem 0; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums }
.day .when{ color:var(--ink-soft); font-size:.9rem }
.streak{ font-size:.95rem; color:var(--ink-soft) }

/* sheet (unit actions) */
.sheet{ border:0; border-radius:14px 14px 0 0; padding:1.2rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom,0px)); width:min(560px,100%);
  margin:auto auto 0; background:var(--paper); color:var(--ink); max-height:85vh }
.sheet::backdrop{ background:rgba(0,0,0,.35) }
.sheet-x{ position:absolute; inset-inline-end:.6rem; top:.4rem }
.sheet-x button{ background:none; border:0; font-size:1.6rem; color:var(--ink-soft); cursor:pointer }
.sheet h3{ font-family:var(--he); font-size:1.5rem; font-weight:500; margin:.2rem 0 .1rem }
.sheet .meta{ color:var(--ink-soft); font-size:.9rem; margin:0 0 1rem }
.timer{ font-size:2.6rem; font-variant-numeric:tabular-nums; text-align:center; margin:.6rem 0 1rem; color:var(--tech) }
.stack{ display:flex; flex-direction:column; gap:.6rem }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem }
.hist{ margin:1rem 0 0; padding:0; list-style:none; font-size:.88rem; color:var(--ink-soft) }
.hist li{ padding:.25rem 0; border-top:1px solid var(--line) }
details summary{ cursor:pointer; color:var(--tech); margin:.8rem 0 .4rem }

/* sharing */
.share{ direction:rtl; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--line) }
.share .nm{ display:flex; flex-direction:column; text-align:right }
.share .nm small{ direction:ltr }
.share .nm small{ color:var(--ink-soft) }
.switch{ appearance:none; width:2.8rem; height:1.6rem; border-radius:999px; background:var(--line); position:relative; cursor:pointer; flex:none; transition:background .15s }
.switch::after{ content:""; position:absolute; top:3px; inset-inline-start:3px; width:1.15rem; height:1.15rem; border-radius:50%; background:var(--paper); transition:inset-inline-start .15s }
.switch:checked{ background:var(--tech) }
.switch:checked::after{ inset-inline-start:calc(100% - 1.15rem - 3px) }
.note{ background:var(--paper-2); border-inline-start:3px solid var(--tech); padding:.7rem .9rem; border-radius:4px; font-size:.92rem; margin:1rem 0 }

.toast{ position:fixed; inset-inline:1rem; bottom:calc(1rem + env(safe-area-inset-bottom,0px)); margin:auto; max-width:420px;
  background:var(--ink); color:var(--paper); padding:.7rem 1rem; border-radius:8px; text-align:center; z-index:20 }
.toast.err{ background:var(--warn) }
.empty{ color:var(--ink-soft); text-align:center; padding:3rem 1rem }
@media (prefers-reduced-motion: reduce){ *{ transition:none!important } }

/* running-recital bar */
.runbar{ position:sticky; top:calc(env(safe-area-inset-top,0px) + 3.6rem); z-index:4; display:flex; align-items:center; gap:.6rem;
  padding:.5rem 1rem; background:var(--tech); color:var(--paper); font-size:.92rem }
.runbar .rt{ font-variant-numeric:tabular-nums; font-weight:600 }
.runbar .rl{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.runbar button{ background:var(--paper); color:var(--tech); border:0; border-radius:6px; padding:.35rem .7rem; font-weight:600; cursor:pointer }
.runbar button.ghost{ background:transparent; color:var(--paper); border:1px solid var(--paper) }

/* reader */
.reader{ max-width:40rem; margin:0 auto; padding-bottom:6rem }
.crumb{ margin:.2rem 0; font-size:.88rem }
.r-title{ font-family:var(--en); font-size:1.7rem }
.reader[dir="rtl"] .r-title{ font-family:var(--he) }
.r-body{ font-size:1.12rem; line-height:1.7 }
.r-body .blk{ margin:0 0 1em }
.r-body h3.blk{ font-size:1.18rem; font-weight:600; color:var(--tech); margin:1.6em 0 .5em; line-height:1.35 }
.r-body .b-hebrew,.r-body [lang="he"]{ font-family:var(--he); font-size:1.3rem; line-height:1.8 }
.r-body .b-list_item{ padding-inline-start:1.6em; position:relative }
.r-body .mk{ position:absolute; inset-inline-start:0; color:var(--ink-soft) }
.r-body .bd{ font-weight:600 } .r-body .it{ font-style:italic }
.r-body pre{ white-space:pre-wrap; font-size:.9rem; background:var(--paper-2); padding:.7rem; border-radius:6px; overflow-x:auto }
.r-body .cont{ display:block; font-size:.8rem; color:var(--ink-soft); margin-top:.2rem }
.r-body sup.fn a{ text-decoration:none; font-size:.75em; padding:0 .1em }
.r-body .notes{ border-top:1px solid var(--line); margin-top:2rem; padding-top:.8rem; font-size:.9rem; color:var(--ink-soft) }
.r-bar{ position:fixed; inset-inline:0; bottom:var(--vvb,0px); z-index:4; display:flex; align-items:center; justify-content:space-between; gap:.5rem;
  padding:.6rem 1rem calc(.6rem + env(safe-area-inset-bottom,0px)); background:var(--paper); border-top:1px solid var(--line) }
.r-bar .nav{ font-size:2rem; line-height:1; text-decoration:none; width:2.4rem; text-align:center; color:var(--tech) }
.r-bar .mid{ display:flex; flex-direction:column; align-items:center; gap:.2rem }
.r-bar .hint{ color:var(--ink-soft); font-size:.9rem }
.r-bar .link{ font-size:.82rem }

.r-body .psk{ font-family:var(--he); font-size:1.42rem; line-height:2.05; text-align:justify; margin:0 0 1em }
.r-body .vn{ font-family:var(--he); font-size:.62em; color:var(--tech); margin-inline-end:.15em; font-weight:700 }
.r-body .rashi{ margin:.2rem 0 1rem; padding-inline-start:.8rem; border-inline-start:2px solid var(--tech-soft) }
.r-body .rashi p{ font-family:var(--he); font-size:1.12rem; line-height:1.8; margin:0 }
.r-body .rashi .rashi-en{ font-family:var(--en); font-size:.95rem; color:var(--ink-soft); margin-top:.3rem; line-height:1.55 }
.r-body .rashi + .psk{ margin-top:1.4rem }
.r-opts{ margin:.2rem 0 1rem }

.r-body .seif{ font-family:var(--he); font-size:1.3rem; line-height:1.95; margin:0 0 1em; text-align:justify }
.r-body .sn{ font-weight:700; color:var(--tech); margin-inline-end:.45em; font-size:.85em }
.r-body .mut{ color:var(--ink-soft); font-size:.88em }
.r-body .parasha{ font-family:var(--he); font-size:.95rem; font-weight:700; color:var(--ink-soft); margin:1.2em 0 .2em; letter-spacing:.02em }
.reader[dir="rtl"] .r-body .blk[lang="he"], .reader[dir="rtl"] .r-body p.blk{ font-family:var(--he); font-size:1.28rem; line-height:1.9 }

.r-body .tr-en{ font-family:var(--en); font-size:1rem; line-height:1.6; color:var(--ink-soft); margin:-.5em 0 1.2em; text-align:left }

.r-body .perek{ font-family:var(--he); font-size:1.25rem; text-align:center; color:var(--tech); margin:1.8em 0 .8em }
.r-body .rema{ font-size:.9em; color:var(--ink-soft) }
.r-body .tg-en{ margin:-.4em 0 1.3em; font-family:var(--en); font-size:1rem; line-height:1.6 }
.r-body .tg-en p{ margin:0 }
.r-body .tg-en .sn{ color:var(--tech); font-weight:600; margin-inline-end:.4em }
.r-body .tg-fn{ font-size:.82rem; color:var(--ink-soft); margin:.4rem 0 0; padding-inline-start:1.4em }

.r-body .fig{ margin:1.2em 0 } .r-body .fig img{ max-width:100%; height:auto; border-radius:6px; display:block; margin:0 auto }
.r-body .fig figcaption{ font-size:.85rem; color:var(--ink-soft); text-align:center; margin-top:.3rem }
.r-body .tbl{ overflow-x:auto; margin:1em 0 } .r-body table{ border-collapse:collapse; font-size:.92rem; min-width:100% }
.r-body th,.r-body td{ border:1px solid var(--line); padding:.4rem .5rem; text-align:start; vertical-align:top } .r-body th{ background:var(--paper-2) }
.r-body blockquote.q{ margin:1.2em 0; padding:.2em 1em; border-inline-start:3px solid var(--tech); font-style:italic }
.r-body blockquote.pull{ font-size:1.25rem; color:var(--tech) } .r-body blockquote cite{ display:block; font-style:normal; font-size:.85rem; color:var(--ink-soft); margin-top:.4rem }
.r-body .x-kicker{ text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; color:var(--tech); margin:1.6em 0 .2em }
.r-body .x-note{ font-size:.9rem; color:var(--ink-soft) } .r-body .x-lead{ font-size:1.2rem } .r-body .x-tagline{ font-style:italic; color:var(--ink-soft) }
.r-body .x-bigheb{ font-family:var(--he); font-size:2rem; text-align:center; color:var(--tech) }

.r-body .base{ font-family:var(--he); font-size:1.18rem; line-height:1.85; background:var(--paper-2); border-inline-start:3px solid var(--tech); padding:.5rem .8rem; margin:1.2em 0 .7em; border-radius:4px }

.r-body .gm{ font-family:var(--he); font-size:1.3rem; line-height:1.9; margin:.9em 0 .35em }
.r-body .cmt{ font-family:var(--he); font-size:1.02rem; line-height:1.75; margin:0 0 .45em; padding-inline-start:.8rem; border-inline-start:2px solid var(--tech-soft); color:var(--ink) }
.r-body .cmt.tosafos{ border-inline-start-color:var(--line); color:var(--ink-soft) }
.r-body .cmt .who{ font-size:.78em; font-weight:700; color:var(--tech); margin-inline-end:.2em }

.ta,.sel{ width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:8px; background:var(--paper-2); font:inherit; color:inherit }
.ta{ resize:vertical; margin-bottom:.5rem }
.notecard{ border:1px solid var(--line); border-radius:8px; padding:.6rem .8rem; margin:.6rem 0; background:var(--paper) }
.notecard .meta{ font-size:.82rem; color:var(--ink-soft); margin:0 0 .3rem } .notecard p{ margin:0 }
.goal{ font-size:1.1rem; border-inline-start:3px solid var(--tech); padding-inline-start:.8rem; margin:.4rem 0 }
.menubtn{ background:none; border:1px solid var(--line); border-radius:8px; font-size:1.2rem; line-height:1; padding:.35rem .6rem; color:var(--tech); cursor:pointer }
.top .menu{ position:absolute; top:100%; inset-inline-end:.8rem; flex-direction:column; align-items:stretch; gap:0; min-width:12rem;
  background:var(--paper); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.12); padding:.3rem 0; z-index:10 }
.top .menu a,.top .menu .link{ display:block; padding:.65rem 1rem; text-decoration:none; text-align:start; font-size:1rem }
.top .menu a:hover,.top .menu .link:hover{ background:var(--paper-2) }

/* check circles */
.r-body .ck{ float:inline-start; width:1.35rem; height:1.35rem; margin-inline-end:.5rem; margin-top:.35em; border-radius:50%; border:1.5px solid var(--tech);
  background:transparent; color:var(--paper); font-size:.8rem; line-height:1; padding:0; cursor:pointer; display:inline-flex; align-items:center; justify-content:center }
.r-body [data-on] > .ck{ background:var(--tech) }
.r-body [data-seg][data-on]{ color:var(--ink-soft) }
.r-body .v[data-on]{ background:var(--tech-soft); border-radius:3px }
.r-body .vn[role="button"]{ cursor:pointer; padding:0 .15em; border-radius:3px }
.r-body .v[data-on] .vn{ color:var(--paper); background:var(--tech) }
.ckbar{ position:relative; font-size:.82rem; color:var(--ink-soft); margin:0 0 1rem; padding-bottom:.35rem }
.ckbar i{ position:absolute; inset-inline-start:0; bottom:0; height:3px; background:var(--done); border-radius:2px }
.ckbar::after{ content:""; position:absolute; inset-inline:0; bottom:0; height:3px; background:var(--tech-soft); z-index:-1 }

/* grid header, sections, heat */
.stats3{ display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; margin:.4rem 0 .6rem }
.stats3 div{ background:var(--paper-2); border-radius:8px; padding:.5rem .6rem; text-align:center }
.stats3 b{ display:block; font-size:1.35rem; color:var(--tech); font-variant-numeric:tabular-nums }
.stats3 span{ font-size:.75rem; color:var(--ink-soft) }
#lineBody > .bar{ height:4px; margin:0 0 .6rem } #lineBody > .bar i{ display:block; height:100%; background:var(--done) }
.chips{ display:flex; gap:.4rem; overflow-x:auto; padding:.2rem 0 .6rem; scrollbar-width:none }
.chip{ flex:none; display:flex; flex-direction:column; align-items:center; gap:.05rem; padding:.35rem .7rem; border:1px solid var(--line); border-radius:10px; background:transparent; cursor:pointer; font-size:.88rem }
.chip [lang="he"]{ font-family:var(--he); font-size:1rem } .chip small{ font-size:.7rem; color:var(--ink-soft) }
.chip.on{ background:var(--tech); border-color:var(--tech); color:var(--paper) } .chip.on small{ color:var(--paper) }
.sq{ position:relative } .sq .cnt{ position:absolute; bottom:1px; inset-inline-end:3px; font-size:.6rem; opacity:.85 }
.sq.h0{ background:var(--paper) } .sq.h1{ background:#D6EBCE; border-color:#B6D6AE } .sq.h2{ background:#9FCDB8; border-color:#86BBA3 }
.sq.h3{ background:#4E9A8C; border-color:#4E9A8C; color:#fff } .sq.h4{ background:#004645; border-color:#004645; color:#F7F3EC }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .sq.h1{ background:#1F3D3A } :root:not([data-theme="light"]) .sq.h2{ background:#2E5F59; color:#E8EFE9 } }
.legend{ display:flex; align-items:center; gap:.3rem; font-size:.75rem; color:var(--ink-soft); margin:0 0 .4rem }
.legend .sq{ width:1rem; height:1rem; aspect-ratio:auto; padding:0; cursor:default }

.tabs.lines{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-bottom:.2rem } .tabs.lines .tab{ flex:none; white-space:nowrap }

/* words, stories, chidushim, search */
.r-body .w{ cursor:pointer; border-radius:2px }
.r-body .w.tr{ text-decoration:underline dotted var(--tech); text-underline-offset:.25em }
.r-body .w.hl{ background:#F3E3A6; color:#2b2416 }
.gl-en{ font-size:1.15rem; color:var(--tech); margin:.2rem 0 .8rem }
.r-body .pen{ background:none; border:0; color:var(--tech); font-size:.95rem; cursor:pointer; padding:0 .25rem; opacity:.75 }
.r-body .story{ display:inline-block; font-family:var(--en); font-size:.8rem; background:var(--tech); color:var(--paper); border-radius:999px; padding:.1rem .6rem; margin:.4rem 0 .2rem; cursor:pointer }
.r-body .v .story{ margin:0 .3rem; vertical-align:middle }
.r-body .chid{ font-family:var(--en); font-size:.92rem; line-height:1.55; background:var(--paper-2); border-inline-start:3px solid var(--tech); border-radius:4px; padding:.45rem .7rem; margin:-.4em 0 1em; cursor:pointer }
.r-body .v + .chid, .r-body .chid{ display:block }
.r-body .chid b{ font-family:var(--he); color:var(--tech); margin-inline-end:.3rem }
.r-body .flash{ animation:flash 2s ease-out } @keyframes flash{ from{ background:#F3E3A6 } to{ background:transparent } }
.tools{ display:flex; gap:.4rem; align-items:center; margin:.2rem 0 .6rem } .tools input{ flex:1; min-width:0; padding:.5rem .7rem; border:1px solid var(--line); border-radius:8px; background:var(--paper-2); font:inherit }
.tools .tab{ text-decoration:none; color:inherit }
#qr{ margin:0 0 .8rem } a.nlink{ display:flex; text-decoration:none; color:inherit } a.notecard.nlink{ display:block }
.tabs a.tab{ text-decoration:none; color:inherit } .tabs a.tab[aria-pressed="true"]{ color:var(--paper) }

/* sheet header: keep titles clear of the × in both directions; no focus box on open */
.sheet{ padding-top:2.6rem }
.sheet-x{ top:.5rem; right:.6rem; left:auto }
.sheet h3{ padding-right:2.6rem; padding-left:2.6rem; margin-top:0 }
.sheet-x button{ width:2.4rem; height:2.4rem; border-radius:50%; display:flex; align-items:center; justify-content:center }
.sheet-x button:focus{ outline:none } .sheet-x button:focus-visible{ outline:2px solid var(--tech) }
#sheetBody:focus{ outline:none }

/* analytics */
details.an{ margin:0 0 .8rem; border:1px solid var(--line); border-radius:8px; padding:.3rem .7rem } details.an summary{ margin:.3rem 0 }
.spark{ width:100%; height:60px; display:block; margin:.2rem 0 .4rem }
/* daily report */
.report{ max-width:760px; margin:0 auto }
.rp-h{ display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; border-bottom:2px solid var(--tech); padding-bottom:.6rem; flex-wrap:wrap }
.rp-k{ text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; color:var(--tech); margin:0 } .rp-h h1{ font-family:var(--en); margin:.1rem 0 0 }
.rp-d{ display:flex; flex-direction:column; text-align:right; font-size:.9rem; color:var(--ink-soft) } .rp-d [lang="he"]{ font-family:var(--he); font-size:1.05rem; color:var(--ink) }
.rp-sum{ display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; margin:1rem 0 }
.rp-sum div{ border:1px solid var(--line); border-radius:8px; padding:.6rem .7rem } .rp-sum p{ margin:0; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft) }
.rp-sum b{ display:block; font-size:1.4rem; color:var(--tech); margin:.15rem 0 } .rp-sum span{ font-size:.78rem; color:var(--ink-soft) }
.rp-t{ width:100%; border-collapse:collapse; font-size:.9rem } .rp-t th{ text-align:start; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); border-bottom:1px solid var(--line); padding:.4rem .3rem }
.rp-t td{ padding:.45rem .3rem; border-bottom:1px solid var(--line); vertical-align:top; font-variant-numeric:tabular-nums } .rp-t td small{ color:var(--ink-soft) }
.rp-t tr.grp td{ background:var(--paper-2); font-weight:600; padding-top:.6rem } .rp-t tr.grp [lang="he"]{ font-family:var(--he); font-size:1.05rem }
.rp-t a{ color:inherit } .st{ font-size:.7rem; padding:.05rem .45rem; border-radius:999px; border:1px solid } .st.current{ color:var(--tech); border-color:var(--tech) }
.st.late{ color:#9a6a00; border-color:#d9b25a } .st.inactive{ color:var(--warn); border-color:var(--warn) }
@media print{ .top,#runbar,.noprint,.r-bar,.toast{ display:none!important } body{ background:#fff; color:#000 } main{ padding:0 } .tbl{ overflow:visible } a{ text-decoration:none } }

/* today strip, kiseder, zmanim */
.today-strip{ display:flex; gap:.5rem; overflow-x:auto; margin:.2rem 0 1rem; scrollbar-width:none }
.today-strip a{ flex:none; display:flex; flex-direction:column; gap:.05rem; min-width:7.5rem; padding:.55rem .75rem; border-radius:10px; background:var(--tech); color:var(--paper); text-decoration:none; position:relative }
.today-strip small{ font-size:.7rem; opacity:.85 } .today-strip span{ font-size:1.05rem } .today-strip [lang="he"]{ font-family:var(--he); font-size:1.2rem }
.today-strip i{ position:absolute; top:.35rem; inset-inline-end:.5rem; font-style:normal }
.kcard{ border:1px solid var(--tech); border-radius:10px; padding:.6rem .8rem; margin:0 0 .8rem }
.kc-top{ display:flex; justify-content:space-between; align-items:center } .kc-k{ font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; color:var(--tech) }
.kc-s{ font-size:.8rem; color:var(--tech) } .kc-s.late{ color:var(--warn) }
.kc-today{ display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:.4rem 0; padding:.5rem .7rem; background:var(--paper-2); border-radius:8px; text-decoration:none; color:inherit }
.kc-today [lang="he"]{ font-family:var(--he); font-size:1.35rem; color:var(--tech) } .kc-today span:last-child{ font-size:.82rem; color:var(--ink-soft) }
.sq.today{ box-shadow:0 0 0 2px var(--paper), 0 0 0 4px #C99A2E }
.znav{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin:.4rem 0 1rem } .zd{ display:flex; flex-direction:column; align-items:center }
.zd b{ font-family:var(--he); font-size:1.25rem } .zd span{ font-size:.85rem; color:var(--ink-soft) }
.zr{ display:flex; justify-content:space-between; align-items:center; padding:.6rem 0; border-bottom:1px solid var(--line) }
.zr b{ display:block; font-family:var(--he); font-size:1.1rem; font-weight:500 } .zr small{ display:block; font-size:.78rem; color:var(--ink-soft) }
.zt{ text-align:right; font-variant-numeric:tabular-nums; font-size:1.1rem; color:var(--tech) }

.pl{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin:.6rem 0 1rem } .pl label{ display:flex; flex-direction:column; gap:.25rem; font-size:.85rem; color:var(--ink-soft) }
.pl label.chk{ flex-direction:row; align-items:center; gap:.5rem; grid-column:1/-1; color:var(--ink) } .pl-res b{ font-size:1.15rem }

.brachos-link{ margin:.2rem 0 .6rem } .brachos-link h2{ font-family:var(--he); font-size:1.15rem; margin:.4rem 0 .3rem; color:var(--ink) } .brachos-link .tab[lang="he"]{ font-family:var(--he); font-size:1rem }

/* tefillah home */
.tef-pin{ display:flex; flex-direction:column; align-items:center; padding:.8rem; margin:0 0 .4rem; border-radius:12px; text-decoration:none;
  background:linear-gradient(160deg,#0B5B57,#004645); color:#F7F3EC } .tef-pin [lang="he"]{ font-family:var(--he); font-size:1.6rem; font-weight:700 } .tef-pin small{ opacity:.85; font-size:.8rem }
.dv{ border:1px solid var(--line); border-radius:12px; padding:.6rem .8rem .8rem; margin:.4rem 0 1rem } .dv h2{ font-family:var(--he); color:var(--ink); margin:.2rem 0 } .dv h2 small{ font-family:var(--en); font-size:.8rem; color:var(--ink-soft) }
.dtef{ padding:.5rem 0; border-top:1px solid var(--line) } .dth b{ font-family:var(--he); font-size:1.15rem; font-weight:500 } .dth small{ color:var(--ink-soft) } .dok{ color:var(--tech) }
.dgrp{ display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; margin:.35rem 0 } .dgn{ font-size:.78rem; color:var(--ink-soft); width:100% }
.dchip{ padding:.35rem .7rem; border:1px solid var(--line); border-radius:999px; background:transparent; cursor:pointer; font-size:.88rem }
.dchip small{ color:var(--ink-soft); font-size:.72rem } .dchip.on{ background:var(--tech); border-color:var(--tech); color:var(--paper) } .dchip.on small{ color:var(--paper) }
.dchip.other.on{ background:var(--ink-soft); border-color:var(--ink-soft) } .dsel{ padding:.35rem .5rem; border:1px solid var(--line); border-radius:8px; background:var(--paper-2); font:inherit; font-size:.88rem } .dsel.on{ border-color:var(--tech); color:var(--tech) }
.tsec{ font-size:1rem; margin:1.2rem 0 .3rem; color:var(--ink) } .tsec [lang="he"]{ font-family:var(--he); font-size:1.15rem } .tsec small{ color:var(--ink-soft); font-weight:400 }
.tlist{ display:flex; flex-direction:column; border-top:1px solid var(--line) }
.tline{ display:grid; grid-template-columns:1fr auto; grid-template-areas:"he st" "en st"; direction:rtl; padding:.6rem .2rem; border-bottom:1px solid var(--line); text-decoration:none; color:inherit }
.tline .tl-he{ grid-area:he; font-family:var(--he); font-size:1.2rem } .tline .tl-en{ grid-area:en; font-size:.8rem; color:var(--ink-soft); direction:ltr; text-align:right }
.tline .tl-st{ grid-area:st; align-self:center; font-size:.82rem; color:var(--tech); direction:ltr } .tline.done .tl-he{ color:var(--tech) }

/* links styled as the master's buttons */
a.teftop,a.crownrow,a.tti{ text-decoration:none } a.crownrow{ color:#3a2611 } .jewel a.jrow{ color:#0E2D2C; display:flex }
.crownrow .bar{ width:100%; height:5px; border-radius:3px; background:rgba(155,110,51,.25); overflow:hidden } .crownrow .bar i{ display:block; height:100%; background:#7a5320 }
.teftop .tti{ text-decoration:none } .dv{ margin-top:0 }
section.crown h2, section.jewel h2, .teftop h2{ color:inherit; font-family:inherit }
section.crown h2{ color:#f7d6ae } section.jewel h2{ color:#E7D8C3 } .teftop h2{ color:#E7D8C3 }
.teftop .tth b, .teftop .ttl, .teftop .tti span, .teftop .q, .teftop h2{ font-family:var(--he) }

.app-band{ margin-bottom:.8rem } .app-band .by{ margin-bottom:0 }

/* header: Dignity green, centered title, locked to the top (as in the app) */
.top{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:.5rem; padding:.55rem .8rem .65rem;
  background:radial-gradient(120% 140% at 50% 0%,#2E6F69 0%,#164C48 55%,#0B3432 100%); border-bottom:1px solid #0B3432; color:#E7D8C3;
  position:sticky; top:0; z-index:20; box-shadow:0 2px 10px rgba(8,40,38,.25) }
.top .hl{ justify-self:start; min-width:0 } .top .hr{ justify-self:end; position:relative }
.top .mark{ margin:0; align-items:center; text-align:center }
.top .mark-he{ color:#E7D8C3; font-size:1.45rem; text-shadow:0 2px 0 rgba(0,0,0,.25) }
.top .mark-en{ color:#CFE3DF; font-size:.82rem; letter-spacing:.06em } .top .mark-en2{ color:#9CC3BC; font-size:.7rem; letter-spacing:.08em }
.top .back{ color:#E7D8C3 } .top .menubtn{ color:#E7D8C3; border-color:rgba(231,216,195,.45); background:rgba(255,255,255,.06) }
.tday{ display:inline-flex; flex-direction:column; padding:.3rem .7rem; border:1px solid rgba(231,216,195,.45); border-radius:999px; text-decoration:none; color:#E7D8C3; line-height:1.15 }
.tday b{ font-weight:500; font-size:.95rem } .tday small{ font-size:.65em } .tday span{ font-size:.68rem; color:#B9D8D2 }
.runbar{ top:calc(var(--hdr,4.4rem)) }
@media (max-width:380px){ .tday span{ display:none } .top .mark-he{ font-size:1.25rem } }

.tday{ white-space:nowrap; max-width:100%; overflow:hidden } .tday span{ font-size:.62rem; overflow:hidden; text-overflow:ellipsis }
main{ padding-top:.8rem }

/* shnayim mikra v'echad targum */
.r-body .sm{ margin:0 0 1.1em; padding-bottom:.6em; border-bottom:1px dotted var(--line) }
.r-body .sm .sn{ font-weight:700; color:var(--tech); margin-inline-end:.4em }
.r-body .sm-m{ display:inline; font-family:var(--he); font-size:1.38rem; line-height:1.95; margin:0 }
.r-body .sm-2{ display:block; margin-top:.25em; color:var(--ink) }
.r-body .sm-tg{ font-family:var(--he); font-size:1.1rem; line-height:1.8; color:var(--ink-soft); margin:.3em 0 0 }
.r-body .sm-x{ font-size:.7em; font-weight:700; color:var(--tech); border:1px solid var(--tech-soft); border-radius:4px; padding:0 .25em; margin-inline-end:.35em; vertical-align:middle }
.r-body .sm[data-on] .sm-m, .r-body .sm[data-on] .sm-tg{ color:var(--ink-soft) }

/* reserve room for the parts of the home page that fill in, so nothing shifts under your finger */
#tstrip:empty{ min-height:66px } #libtop:empty{ min-height:1200px }
html{ overflow-anchor:auto } .r-body{ overflow-anchor:auto }

/* one step back, right under ‹ Library, same arrow; long names end in … */
.top .hl{ display:flex; flex-direction:column; align-items:flex-start; gap:.05rem; overflow:hidden }
.top .up{ display:block; max-width:100%; color:#CFE3DF; font-size:.82rem; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:.1rem 0 }
.top .back{ padding:.15rem 0 }
.top{ grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) } .top .hl{ min-width:0; max-width:100% }

/* bottom timer row */
.r-bar .mid.tr{ flex-direction:row; flex-wrap:wrap; justify-content:center; align-items:center; gap:.4rem .6rem }
.r-bar .clock{ font-variant-numeric:tabular-nums; font-size:1.3rem; color:var(--tech); min-width:3.2rem; text-align:center }
.r-bar .tinfo{ width:100%; text-align:center; font-size:.78rem; color:var(--ink-soft) } .r-bar .tinfo .link{ font-size:.78rem }
.r-bar .btn{ padding:.55rem 1rem } .r-bar .btn.ghost{ background:transparent; color:var(--tech) }
.reader{ padding-bottom:calc(var(--rbar,6.5rem) + 1rem) }   /* room for the bottom bar only; the bar keeps its own padding (it used to get 7.5rem too — a big empty band under it) */
/* missed-recital fields stack on phones so nothing overlaps */
.sheet .row2{ grid-template-columns:1fr; }
.sheet input, .sheet .field{ min-width:0; max-width:100%; width:100% }
.sheet input[type=datetime-local]{ -webkit-appearance:none; appearance:none; min-height:2.8rem; text-align:start; display:block }
.sheet{ position:fixed; inset:auto 0 0 0; width:auto; max-width:560px; margin:0 auto; overflow-x:hidden; overflow-y:auto }
.sheet *{ max-width:100% }
.r-bar .tinfo{ direction:ltr; unicode-bidi:isolate } .r-bar .mid.tr{ direction:ltr }
.sheet .row2{ grid-template-columns:minmax(0,1fr) } .sheet .row2 > *, .sheet .stack > *, .sheet details{ min-width:0 }
.sheet input[type=datetime-local], .sheet input[type=number]{ width:100%; min-width:0; box-sizing:border-box }
.sheet .btn, .sheet .btn.wide{ box-sizing:border-box; width:100% } .sheet details .stack{ margin:0; padding:0 }
.zcity{ display:flex; align-items:center; gap:.6rem; margin:.2rem 0 .6rem } .zcity span{ color:var(--ink-soft); font-size:.9rem } .zcity .sel{ width:auto; flex:1 }
/* smooth scrolling on long pages: the phone skips drawing what's off screen */
.r-body > p, .r-body > .sm, .r-body > .cmt, .r-body > .rashi, .r-body > .tg-en, .r-body > h3, .r-body > .chid, .r-body > .story{ content-visibility:auto; contain-intrinsic-size:auto 3.5em }
.r-body .psk{ content-visibility:auto; contain-intrinsic-size:auto 40em }
.top{ box-shadow:none; border-bottom:1px solid #0B3432 }        /* no shadow repaint under the locked header while scrolling */
.r-body{ -webkit-tap-highlight-color:transparent }

/* installed app: the header reaches under the status bar and is padded clear of it */
:root{ padding-top:0 } .top{ top:0; padding-top:calc(env(safe-area-inset-top,0px) + .55rem) }
.signin{ padding-top:env(safe-area-inset-top,0px) }

/* locked chapter strip */
.rhead{ position:sticky; top:var(--hdr,4.6rem); z-index:15; margin:-.8rem -1rem .6rem; padding:.45rem 1rem .5rem; background:var(--paper); border-bottom:1px solid var(--line) }
.rh-row{ display:flex; align-items:baseline; justify-content:space-between; gap:.8rem }
.rh-t{ font-size:1.25rem; font-weight:500; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 }
.rh-t[lang="he"]{ font-family:var(--he); font-size:1.4rem }
.rh-c{ font-variant-numeric:tabular-nums; font-size:1.05rem; color:var(--tech); font-weight:600; flex:none } .rh-c.idle{ color:var(--ink-soft); font-weight:400; opacity:.7 }
.rh-p{ display:flex; align-items:center; gap:.6rem; margin-top:.25rem; font-size:.78rem; color:var(--ink-soft) } .rh-p span{ flex:none; min-width:6.5em }
.rh-p b{ flex:1; height:4px; background:var(--tech-soft); border-radius:2px; overflow:hidden } .rh-p i{ display:block; height:100%; width:0; background:var(--done); transition:width .2s }
.reader .r-title{ display:none }
.rhead{ top:calc(var(--hdr,4.6rem) + var(--rb,0px) + var(--vvt,0px)) } .runbar{ top:calc(var(--hdr,4.6rem) + var(--vvt,0px)) }

/* text size: only the reading text scales */
.r-body{ font-size:calc(1.12rem * var(--ts,1)) }
.r-body .psk, .r-body .seif, .r-body .gm, .r-body .base, .r-body .sm-m{ font-size:calc(1.35rem * var(--ts,1)) }
.r-body .sm-tg, .r-body .cmt, .r-body .rashi p{ font-size:calc(1.05rem * var(--ts,1)) }
.reader[dir="rtl"] .r-body p.blk, .r-body .b-hebrew, .r-body [lang="he"]{ font-size:calc(1.28rem * var(--ts,1)) }
.r-body .tg-en, .r-body .tr-en{ font-size:calc(1rem * var(--ts,1)) }
html{ touch-action:pan-x pan-y; -webkit-text-size-adjust:100% } .r-body{ touch-action:pan-y }
.rh-z{ display:flex; gap:.25rem; margin-inline-start:auto } .rh-a{ border:1px solid var(--line); background:transparent; border-radius:6px; font-size:.78rem; padding:.1rem .4rem; color:var(--ink-soft); cursor:pointer }
[data-bigtext] .r-body .psk,[data-bigtext] .r-body .seif,[data-bigtext] .r-body p{ text-align:start }
.adm + div .il small, .il small{ color:var(--ink-soft) } .il{ align-items:flex-start }

/* Bavli: where each Mishnah and each Gemara begins (as in the master app) */
.r-body .tdiv{ position:relative; border-top:4px double var(--done); margin:1.7rem 0 1.1rem; text-align:center; height:0 }
.r-body .tdiv span{ position:relative; top:-.85rem; background:var(--paper); padding:0 .7rem; color:var(--done); font-family:var(--he); font-weight:700; font-size:.95rem; letter-spacing:.06em }
.r-body > .tdiv:first-of-type{ margin-top:1.2rem }
/* parsha 6× */
.p6days{ display:grid; grid-template-columns:repeat(6,1fr); gap:.35rem; margin:.5rem 0 .3rem; direction:rtl }
.p6d{ display:flex; flex-direction:column; align-items:center; padding:.4rem .1rem; border:1px solid var(--line); border-radius:8px; text-decoration:none; color:inherit; background:var(--paper) }
.p6d b{ font-family:var(--he); font-size:1.15rem } .p6d small{ font-size:.65rem; color:var(--ink-soft) } .p6d i{ font-style:normal; font-size:.66rem; color:var(--ink-soft); min-height:1em }
.p6d.on{ background:var(--done); border-color:var(--done); color:var(--done-ink) } .p6d.on small,.p6d.on i{ color:var(--done-ink) }
.p6d.today{ box-shadow:0 0 0 2px var(--paper),0 0 0 4px #C99A2E } .p6d.miss i{ color:var(--warn) }
.p6grid{ grid-template-columns:repeat(auto-fill,minmax(4.6rem,1fr)) } .p6sq{ flex-direction:column; cursor:default; aspect-ratio:auto; min-height:3.4rem }
.p6sq [lang="he"]{ font-family:var(--he); font-size:.9rem; line-height:1.1 } .p6sq small{ font-size:.62rem; opacity:.8 }
.p6 .kc-today [lang="he"]{ font-size:1.6rem; color:var(--tech) }

/* reader options live in the locked strip */
.rh-opts:empty{ display:none }
.rh-opts .r-opts.in-strip{ margin:.4rem 0 0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:.3rem }
.rh-opts .tab{ flex:none; padding:.22rem .65rem; font-size:.82rem; white-space:nowrap }
.rh-opts .tab[lang="he"], .rh-opts .tab.amud{ font-family:var(--he); font-size:.9rem }
/* reciting: the text lifts off the page inside a Dignity frame */
.rtext{ transition:transform .35s ease, box-shadow .35s ease, background .35s ease, padding .35s ease, border-color .35s ease; border:2px solid transparent; border-radius:16px; position:relative }
body.reciting .rtext{ background:#FFFDF8; border-color:#004645; box-shadow:0 0 0 4px #F7F3EC, 0 0 0 5.5px #C99A2E, 0 18px 40px rgba(0,70,69,.28), 0 4px 10px rgba(0,70,69,.18);
  transform:translateY(-6px); padding:1.4rem 1rem 1rem; margin:1.2rem -.35rem 1.4rem; scroll-margin-top:calc(var(--hdr,4.6rem) + 7rem) }
body.reciting .rtext::before{ content:"קוֹרֵא עַכְשָׁו · Reciting"; position:absolute; top:-.85rem; left:50%; transform:translateX(-50%); white-space:nowrap;
  background:#004645; color:#F7F3EC; font-family:var(--he); font-size:.78rem; letter-spacing:.04em; padding:.22rem .8rem; border-radius:999px; box-shadow:0 0 0 2px #C99A2E }
body.reciting .reader > :not(.rtext){ opacity:.55; transition:opacity .35s }
body.reciting .rhead .rh-c{ color:#004645; font-weight:700 }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) body.reciting .rtext{ background:#132826; border-color:#7FC4BC; box-shadow:0 0 0 4px #0F1F1E,0 0 0 5.5px #C99A2E,0 18px 40px rgba(0,0,0,.5) } }
@media (prefers-reduced-motion: reduce){ body.reciting .rtext{ transform:none } }
.rhead.logonly .rh-c, .rhead.logonly .rh-z{ display:none }
/* no rubber-band: the page can scroll, but it can't be dragged past the top or bottom */
html, body{ overscroll-behavior:none; overscroll-behavior-y:none }
html{ background:#164C48 }              /* if anything ever peeks above the header, it's header green, not a gap */
body{ min-height:100%; background:var(--paper) }

html{ background:var(--paper) }   /* the edge lock makes a coloured backdrop unnecessary (it showed as a band above the bottom bar) */
.hist .hrow{ display:flex; justify-content:space-between; gap:.6rem; align-items:center } .link.rm{ color:var(--warn); font-size:.82rem }
/* reciting frame, all Dignity palette: Deep Forest #004645 · Soft Sage #A7CECB · Pale Eucalyptus #BFDDDE · Muted Olive #B0D0B9 · Light Pistachio #D6EBCE · Warm Linen #E7D8C3 */
body.reciting .rtext{
  background:linear-gradient(180deg,#FBF8F2 0%,#F4EEE3 100%);
  border-color:#004645;
  box-shadow:0 0 0 4px #E7D8C3, 0 0 0 6px #A7CECB, 0 18px 40px rgba(0,70,69,.26), 0 4px 10px rgba(0,70,69,.16), inset 0 1px 0 #fff, inset 0 -2px 6px rgba(176,208,185,.35) }
body.reciting .rtext::before{ box-shadow:0 0 0 2px #A7CECB; background:#004645; color:#E7D8C3 }
/* embossed letters: raised from the page — light from above, a soft Deep Forest edge below */
body.reciting .rtext, body.reciting .rtext [lang="he"], body.reciting .rtext .psk, body.reciting .rtext .seif, body.reciting .rtext .gm, body.reciting .rtext p{
  color:#0F3433;
  text-shadow: 0 1px 0 rgba(255,255,255,.95), 0 -1px 0 rgba(0,52,51,.32), 0 2px 1px rgba(0,70,69,.18), 0 4px 8px rgba(0,70,69,.14) }
body.reciting .rtext .vn, body.reciting .rtext .sn{ color:#004645; text-shadow:0 1px 0 #fff, 0 -1px 0 rgba(0,52,51,.25) }
body.reciting .rtext [data-on], body.reciting .rtext [data-on] *{ text-shadow:none; color:#4A6663 }   /* lines already checked settle back down */
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) body.reciting .rtext{ background:#132826; box-shadow:0 0 0 4px #0F1F1E,0 0 0 6px #A7CECB,0 18px 40px rgba(0,0,0,.5) }
  :root:not([data-theme="light"]) body.reciting .rtext, :root:not([data-theme="light"]) body.reciting .rtext p{ color:#EAF3EF; text-shadow:0 -1px 0 rgba(0,0,0,.6), 0 1px 0 rgba(167,206,203,.25), 0 3px 8px rgba(0,0,0,.35) } }

/* fold: Al HaNisim and other "only when it applies" sections */
.r-body details.fold{ margin:.6rem 0 .9rem; border:1.5px solid #A7CECB; border-radius:12px; background:rgba(214,235,206,.35); padding:0 .8rem }
.r-body details.fold > summary{ list-style:none; cursor:pointer; padding:.55rem 0; display:flex; align-items:center; gap:.5rem; font-family:var(--he); color:#004645 }
.r-body details.fold > summary::-webkit-details-marker{ display:none }
.r-body details.fold > summary::before{ content:"▸"; font-size:.9rem; transition:transform .2s; display:inline-block }
.r-body details.fold[open] > summary::before{ transform:rotate(90deg) }
.r-body details.fold > summary span{ font-size:1.15rem; font-weight:700 } .r-body details.fold > summary small{ color:#4A6663; font-size:.85rem }
.r-body details.fold .fold-in{ padding:0 0 .6rem }
.r-body details.fold[dir="rtl"] > summary::before{ content:"◂" } .r-body details.fold[dir="rtl"][open] > summary::before{ transform:rotate(-90deg) }
.r-body details.fold > summary{ line-height:1.3; padding:.45rem 0; min-height:0 } .r-body details.fold{ padding-top:0; padding-bottom:0 }
.r-bar .mid.tr .btn{ padding:.5rem .8rem } #hPart{ font-size:.92rem }
.neterr{ text-align:center; padding:2rem 1rem; border:1px dashed var(--line); border-radius:12px; margin:1rem 0 } .neterr .btn{ margin-top:.6rem }
/* Face ID lock screen */
#faceLock{ position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 50% 0%,#2E6F69 0%,#164C48 55%,#0B3432 100%); color:#E7D8C3 }
#faceLock[hidden]{ display:none }
#faceLock .fl-in{ text-align:center; display:flex; flex-direction:column; gap:.8rem; align-items:center; padding:2rem }
#faceLock .big{ font-family:var(--he); font-size:2.4rem; margin:0; text-shadow:0 2px 0 rgba(0,0,0,.25) } #faceLock .fl-sub{ margin:0 0 1.2rem; color:#A7CECB; letter-spacing:.08em }
#faceLock .btn{ background:#E7D8C3; color:#004645; border:0; padding:.8rem 1.6rem; font-size:1.05rem } #faceLock .link{ color:#A7CECB }
html.locked body > *:not(#faceLock):not(script){ filter:blur(14px) }
.adm-r{ display:flex; flex-direction:column; align-items:flex-end; gap:.3rem } .fid{ font-size:.85rem; display:flex; gap:.35rem; align-items:center; color:var(--ink-soft) }
.r-body .credit{ text-align:center; font-style:italic; font-size:.85rem; color:#4A6663; margin:.2rem 0 1rem; padding:.4rem .6rem; border-top:1px solid #A7CECB; border-bottom:1px solid #A7CECB }

/* verse letters sit before the verse, never on top of it */
.r-body p[lang="he"] .mk{ position:static; display:inline; margin-inline-end:.45em; font-weight:700; color:var(--tech); font-size:.85em }
/* English inside a Hebrew section reads left to right */
.r-body p[dir="ltr"], .r-body h3[dir="ltr"]{ text-align:left; direction:ltr }
/* private sefer: 40-Day Seder */
.s40-band{ display:block; text-align:center; text-decoration:none; padding:1rem 1rem .9rem; margin:0 0 1rem; border-radius:16px; color:#E7D8C3;
  background:linear-gradient(160deg,#2E6F69 0%,#004645 60%,#0B3432 100%); border:1.5px solid #A7CECB; box-shadow:0 8px 20px rgba(0,70,69,.18) }
.s40-band .kick{ margin:0; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:#A7CECB }
.s40-band h1, .s40-band h2{ font-family:var(--he); color:#E7D8C3; margin:.2rem 0; font-size:1.8rem } .s40-band .s40-en{ margin:0; color:#D6EBCE; letter-spacing:.06em }
.s40grid{ display:grid; grid-template-columns:repeat(8,1fr); gap:.3rem; margin:.6rem 0 .4rem; direction:ltr }
.s40sq{ aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:7px; border:1px solid var(--line); font-size:.72rem; color:var(--ink-soft); background:var(--paper) }
.s40sq.half{ background:linear-gradient(135deg,#B0D0B9 50%,var(--paper) 50%) } .s40sq.full{ background:#004645; border-color:#004645; color:#E7D8C3 }
.s40sq.miss{ border-color:var(--warn); color:var(--warn) } .s40sq.today{ box-shadow:0 0 0 2px var(--paper),0 0 0 4px #A7CECB }
.s40-band .s40-ded{ margin:.55rem auto 0; padding-top:.5rem; border-top:1px solid rgba(167,206,203,.5); max-width:22rem; font-style:italic; color:#E7D8C3; font-size:1rem; letter-spacing:.02em }
/* Shaina's pink: rose satin, gold filigree edge, a touch of lilac */
.s40-band.pink{ position:relative; overflow:hidden; color:#7A2E48;
  background:radial-gradient(120% 90% at 50% 0%, #FBD9E2 0%, #F4B6C6 45%, #E893AB 100%);
  border:2px solid #D9B26A; box-shadow:0 0 0 4px #FCEEF2, 0 0 0 5.5px #C9A0DC, 0 12px 28px rgba(199,107,133,.32) }
.s40-band.pink::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 12% 18%, rgba(255,255,255,.55) 0 2px, transparent 3px), radial-gradient(circle at 82% 26%, rgba(255,255,255,.5) 0 1.5px, transparent 3px),
             radial-gradient(circle at 70% 78%, rgba(255,255,255,.45) 0 2px, transparent 3px), radial-gradient(circle at 25% 72%, rgba(255,255,255,.4) 0 1.5px, transparent 3px) }
.s40-band.pink .kick{ color:#A8557A } .s40-band.pink h1, .s40-band.pink h2{ color:#8E2F55; text-shadow:0 1px 0 rgba(255,255,255,.7), 0 -1px 0 rgba(142,47,85,.25) }
.s40-band.pink .s40-en{ color:#9C4468 } .s40-band.pink .s40-ded{ color:#7A2E48; border-top-color:rgba(217,178,106,.7); font-weight:500 }
.s40-band.pink .s40-ded::before{ content:"♥ "; color:#D9577E } .s40-band.pink .s40-ded::after{ content:" ♥"; color:#D9577E }
body.s40pink .s40c{ border-color:#E893AB; background:linear-gradient(180deg,#FFF6F8,#FDECF1) }
body.s40pink .s40c .kc-k{ color:#A8557A }
body.s40pink .s40sq{ border-color:#F2C3D0 } body.s40pink .s40sq.full{ background:#E26F92; border-color:#C9577A; color:#fff }
body.s40pink .s40sq.half{ background:linear-gradient(135deg,#F4B6C6 50%,#FFF6F8 50%) } body.s40pink .s40sq.today{ box-shadow:0 0 0 2px #fff,0 0 0 4px #C9A0DC }
body.s40pink .tline.done .tl-he{ color:#C9577A } body.s40pink .tline .tl-st{ color:#A8557A }
/* Shaina's pink, simplified: solid pink, Dignity green lettering, no hearts or sparkles */
.s40-band.pink{ background:#F4B6C6; color:#004645 }
.s40-band.pink::before{ content:none }
.s40-band.pink .kick, .s40-band.pink .s40-en, .s40-band.pink .s40-ded{ color:#004645 }
.s40-band.pink h1, .s40-band.pink h2{ color:#004645; text-shadow:none }
.s40-band.pink .s40-ded{ border-top-color:rgba(0,70,69,.3) }
.s40-band.pink .s40-ded::before, .s40-band.pink .s40-ded::after{ content:none }
.s40-band.pink{ border:1.5px solid #E893AB; box-shadow:0 8px 20px rgba(199,107,133,.22) }
/* pink matched to the heart in the picture (sampled #EC737B; edges #DE5B62) */
.s40-band.pink{ background:#EC737B; border:1.5px solid #DE5B62; box-shadow:0 8px 20px rgba(222,91,98,.28) }
.s40-band.pink .s40-ded{ border-top-color:rgba(0,70,69,.35) }
body.s40pink .s40sq.full{ background:#EC737B; border-color:#DE5B62; color:#fff }
body.s40pink .s40sq.half{ background:linear-gradient(135deg,#F4A3A9 50%,#FFF6F8 50%) }
body.s40pink .s40c{ border-color:#EC737B }
/* the heart's satin: soft shine top-right, deeper rose at the edges, a raised (pillowed) surface, thin gold rim */
.s40-band.pink{
  background:
    radial-gradient(60% 55% at 72% 22%, rgba(255,214,216,.85) 0%, rgba(252,171,174,.55) 35%, rgba(252,171,174,0) 70%),
    radial-gradient(90% 80% at 50% 45%, #EE7880 0%, #EC737B 45%, #DE5B62 85%, #CF4F57 100%);
  border:2px solid #D9A955;
  box-shadow:
    inset 0 2px 3px rgba(255,235,236,.75),      /* light catching the top edge */
    inset 0 -6px 12px rgba(160,40,50,.28),       /* curve falling away at the bottom */
    inset 6px 0 14px rgba(255,190,194,.35),
    inset -6px 0 14px rgba(170,45,55,.18),
    0 0 0 1px #B8873A,                            /* gold rim's dark outer line */
    0 10px 22px rgba(200,70,80,.30) }
.s40-band.pink h1, .s40-band.pink h2{
  color:#004645; text-shadow:0 1px 0 rgba(255,225,226,.85), 0 -1px 0 rgba(0,52,51,.35), 0 2px 4px rgba(120,30,40,.25) }
.s40-band.pink .kick, .s40-band.pink .s40-en, .s40-band.pink .s40-ded{ color:#004645; text-shadow:0 1px 0 rgba(255,225,226,.7) }
.s40-band.pink .s40-ded{ border-top-color:rgba(217,169,85,.8) }
/* private sefarim: custom color = solid, Dignity green letters */
.s40-band.custom{ background:var(--pc); color:#004645; border:1.5px solid color-mix(in srgb, var(--pc) 80%, #000) }
.s40-band.custom .kick, .s40-band.custom .s40-en, .s40-band.custom .s40-ded, .s40-band.custom h1, .s40-band.custom h2{ color:#004645; text-shadow:0 1px 0 rgba(255,255,255,.45) }
/* admin */
.psbox{ margin:1.2rem 0 } .psf{ border:1px solid var(--line); border-radius:12px; padding:.6rem .7rem; margin:.6rem 0 }
.psf-h{ display:flex; justify-content:space-between; gap:.6rem; align-items:flex-start } .psf-h b[lang="he"]{ font-family:var(--he); font-size:1.15rem }
.psf-h small{ color:var(--ink-soft) } .psm{ width:100%; border-collapse:collapse; margin:.5rem 0; font-size:.85rem }
.psm th{ text-align:start; font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); border-bottom:1px solid var(--line); padding:.3rem .2rem }
.psm td{ padding:.4rem .2rem; border-bottom:1px solid var(--line); vertical-align:top } .psm-a{ white-space:nowrap; text-align:end }
.swatch{ display:inline-block; width:.9rem; height:.9rem; border-radius:3px; vertical-align:middle; border:1px solid rgba(0,0,0,.15) } .swatch.pink{ background:#EC737B }
.pslines{ max-height:15rem; overflow:auto; border:1px solid var(--line); border-radius:8px; padding:.4rem .6rem; display:flex; flex-direction:column; gap:.25rem }
.pslines label{ display:flex; gap:.4rem; align-items:center; font-size:.9rem } .pslines [lang="he"]{ font-family:var(--he) } .pslines small{ color:var(--ink-soft) }
.psm{ table-layout:fixed } .psm th:nth-child(1),.psm td:nth-child(1){ width:24% } .psm th:nth-child(3),.psm td:nth-child(3){ width:22% } .psm th:nth-child(4){ width:0 } .psm td.psm-a{ white-space:normal; width:auto; text-align:start } .psm tr{ } .psm td.psm-a{ display:block; border-bottom:0; padding-top:0 } .psm thead th:last-child{ display:none }
.psm{ table-layout:auto } .psm th:nth-child(1),.psm td:nth-child(1),.psm th:nth-child(3),.psm td:nth-child(3){ width:auto }
.psm tr:not(.psm-act) td{ border-bottom:0; padding-bottom:.1rem } .psm tr.psm-act td{ padding-top:.1rem; padding-bottom:.5rem; border-bottom:1px solid var(--line); font-size:.82rem }
.psm thead th:last-child{ display:table-cell } .psm td.psm-a{ display:table-cell }
.badge{ display:inline-block; min-width:1.4em; padding:0 .4em; border-radius:999px; background:#004645; color:#E7D8C3; font-size:.75rem; text-align:center; vertical-align:middle }
.usage b{ font-size:1.8rem; color:var(--tech) } .usage span{ color:var(--ink-soft) } .ubar{ height:8px; border-radius:4px; background:var(--tech-soft); overflow:hidden; margin:.4rem 0 } .ubar i{ display:block; height:100% }
.da .st{ font-size:.68rem } .tried{ color:#9a6a00 }
/* Torah Learning Report — credit-report layout */
.report.cr h2{ font-size:1rem; text-transform:uppercase; letter-spacing:.06em; color:var(--tech); border-bottom:2px solid var(--tech); padding-bottom:.25rem; margin:1.4rem 0 .6rem }
.report.cr .rp-h{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; align-items:flex-start }
.report.cr .meta{ font-size:.82rem; color:var(--ink-soft); line-height:1.5; margin:.2rem 0 0 } .report.cr .rp-r{ text-align:right }
.report.cr .boxes{ display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem }
.report.cr .boxes div{ border:1px solid var(--line); border-radius:8px; padding:.5rem .55rem; background:var(--paper) } .report.cr .boxes b{ display:block; font-size:1.25rem; color:var(--tech) } .report.cr .boxes span{ font-size:.72rem; color:var(--ink-soft) }
.report.cr .rp-t{ width:100%; border-collapse:collapse; font-size:.8rem } .report.cr .rp-t th{ font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); text-align:left; border-bottom:1px solid var(--line); padding:.35rem .3rem; white-space:nowrap }
.report.cr .rp-t td{ padding:.35rem .3rem; border-bottom:1px solid var(--line); vertical-align:top } .report.cr .n{ text-align:right; white-space:nowrap }
.report.cr .rp-t.ytd th small{ text-transform:none; font-weight:400 } .report.cr .rp-t tr.grp td{ background:var(--tech-soft); font-weight:600; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em }
.report.cr .acct small{ display:block; font-family:var(--he); color:var(--ink-soft) } .report.cr .tl{ min-width:46rem } .report.cr .goal{ width:3.2rem; font:inherit; text-align:right }
.report.cr .phw{ min-width:36rem } .report.cr .ph{ display:grid; grid-template-columns:9.5rem repeat(12,1fr); gap:2px; align-items:center; margin:2px 0 }
.report.cr .ph .lb{ font-size:.74rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap } .report.cr .ph.hd div{ font-size:.62rem; text-align:center; color:var(--ink-soft); text-transform:uppercase }
.report.cr .ph .c{ font-size:.64rem; text-align:center; padding:.18rem 0; border-radius:3px; background:#eee; color:#777 }
.report.cr .ph .c.OK{ background:#004645; color:#E7D8C3 } .report.cr .ph .c.d30{ background:#E9C46A; color:#3a2a00 } .report.cr .ph .c.d60{ background:#E28A57; color:#fff } .report.cr .ph .c.d90{ background:#A23B2A; color:#fff }
.report.cr .legend{ font-size:.72rem; color:var(--ink-soft); line-height:1.45 } .report.cr .phg{ margin:.5rem 0 .15rem; text-transform:uppercase; letter-spacing:.05em }
.report.cr .today ul{ margin:.2rem 0 .6rem 1rem; padding:0; font-size:.82rem } .report.cr .foot{ font-size:.72rem; color:var(--ink-soft); margin-top:1rem }
.report.cr .st.late{ background:#F7E7C6 } 
@media print{ .report.cr .tl, .report.cr .phw{ min-width:0 } .report.cr .boxes{ grid-template-columns:repeat(6,1fr) } .report.cr .tbl{ overflow:visible } }
.report.cr .rp-t.ytd td:first-child{ min-width:10rem } .report.cr .rp-t.ytd th{ white-space:normal }
/* Torah Scores */
.sc-wrap{ display:grid; grid-template-columns:repeat(2,1fr); gap:.5rem }
.sc{ border:1px solid var(--line); border-radius:12px; padding:.6rem .7rem .5rem; background:var(--paper); position:relative; overflow:hidden }
.sc:first-child{ grid-column:1/-1; background:linear-gradient(160deg,#2E6F69 0%,#004645 70%); color:#E7D8C3; border-color:#004645 }
.sc:first-child .sc-t, .sc:first-child small, .sc:first-child .sc-b{ color:#D6EBCE } .sc:first-child b{ color:#fff; font-size:2.6rem }
.sc .sc-t{ margin:0; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft) } .sc .sc-t [lang="he"]{ font-family:var(--he); text-transform:none; letter-spacing:0; font-size:.85rem }
.sc b{ display:block; font-size:2rem; line-height:1.1; color:var(--tech); font-variant-numeric:tabular-nums } .sc .sc-b{ font-size:.8rem; font-weight:600 }
.sc .sc-b i{ font-style:normal; font-weight:600; margin-left:.3rem } .sc .up{ color:#2E7D4F } .sc .dn{ color:#A23B2A } .sc:first-child .up{ color:#B0D0B9 } .sc:first-child .dn{ color:#F4B6C6 }
.sc .sc-bar{ height:6px; border-radius:3px; margin:.35rem 0 .2rem; position:relative; background:linear-gradient(90deg,#A23B2A 0%,#E28A57 30%,#E9C46A 50%,#B0D0B9 70%,#2E6F69 100%) }
.sc .sc-bar i{ position:absolute; top:-3px; width:3px; height:12px; background:#0E2D2C; border-radius:2px; transform:translateX(-1px) } .sc:first-child .sc-bar i{ background:#fff }
.sc .spk{ width:100%; height:24px; color:var(--tech); opacity:.7 } .sc:first-child .spk{ color:#D6EBCE }
.sc small{ display:block; font-size:.66rem; color:var(--ink-soft); line-height:1.3 } .sc.none b{ color:var(--ink-soft) }
.sc.exc .sc-b{ color:#004645 } .sc.vg .sc-b{ color:#2E6F69 } .sc.good .sc-b{ color:#4A7F5A } .sc.fair .sc-b{ color:#9A6A00 } .sc.low .sc-b{ color:#A23B2A }
@media print{ .sc-wrap{ grid-template-columns:repeat(4,1fr) } .sc:first-child{ grid-column:span 2 } }
.r-body .tr-en b{ font-weight:700; color:var(--ink) } .r-body .gm-en{ margin-top:.2rem }
.mtime .field input{ text-align:center; font-size:1.1rem }

/* ---------- Hybrid edition: unsent-saves pill, Settings, Storage ---------- */
.top .hr{ display:flex; align-items:center; gap:.4rem }
.obpill{ display:inline-flex; align-items:center; padding:.2rem .5rem; border-radius:999px; font-size:.78rem; font-weight:600; text-decoration:none;
  background:#E7D8C3; color:#004645; border:1px solid rgba(231,216,195,.6); white-space:nowrap }
.obpill.held{ background:#F3D9C9; color:#7A2E12 }
.obpill[hidden]{ display:none }
.modes{ display:grid; gap:.5rem; margin:.4rem 0 .8rem }
.mode{ display:flex; gap:.7rem; align-items:flex-start; padding:.75rem .9rem; border:1px solid var(--line); border-radius:10px; background:var(--paper); cursor:pointer }
.mode.on{ border-color:#004645; box-shadow:0 0 0 2px rgba(0,70,69,.18); background:#F4FAF2 }
.mode input{ margin-top:.25rem; accent-color:#004645 }
.mode span{ display:flex; flex-direction:column; gap:.15rem } .mode small{ color:var(--ink-soft); font-size:.85rem }
.syncst{ font-size:.9rem; color:var(--ink-soft); margin:.2rem 0 .7rem }
.note.warn{ border-inline-start-color:#B5532B; background:#FBF1EA }
.note.warn small{ color:var(--ink-soft) }
a.btn{ text-decoration:none }
.storsum{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin:.4rem 0 .6rem }
.storsum div{ border:1px solid var(--line); border-radius:10px; padding:.7rem .8rem; background:var(--paper); display:flex; flex-direction:column }
.storsum b{ font-size:1.35rem; color:#004645 } .storsum span{ font-size:.8rem; color:var(--ink-soft) }
.stor{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.65rem 0; border-bottom:1px solid var(--line) }
.stor .nm{ display:flex; flex-direction:column; min-width:0 } .stor .nm small{ color:var(--ink-soft); font-size:.8rem }
.stor .act{ display:flex; align-items:center; gap:.6rem; flex:none }
.stor.pink .nm>span{ color:#EC737B } .stor.custom .nm>span{ color:var(--pc) }
.btn.sm{ padding:.35rem .7rem; font-size:.85rem }
.btn.danger{ color:#9A3412; border-color:#E8C2AE }
.stor .nm>span{ text-align:left; font-size:1.05rem }
button.mode{ width:100%; text-align:left; font:inherit; color:inherit }
.updbar{ position:fixed; left:50%; transform:translateX(-50%); bottom:calc(env(safe-area-inset-bottom,0px) + 14px); z-index:60; max-width:92vw;
  background:#004645; color:#E7D8C3; border:0; border-radius:999px; padding:.7rem 1.1rem; font:inherit; font-size:.92rem; box-shadow:0 6px 20px rgba(0,0,0,.25); cursor:pointer }
.updbar[hidden]{ display:none }

/* ---- Semach Zevulun ---- */
.szpick{ display:grid; gap:.6rem; margin:1rem 0 }
.szcard{ display:flex; flex-direction:column; gap:.25rem; text-align:left; padding:1rem; border:1px solid var(--line); border-radius:12px; background:var(--paper-2); cursor:pointer }
.szcard b{ font-size:1.15rem; color:var(--tech) } .szcard span{ color:var(--ink-soft); font-size:.92rem }
.szp{ display:block; color:inherit; text-decoration:none; border:1px solid var(--line); border-radius:12px; padding:.75rem .8rem; margin:.6rem 0; background:var(--paper) }
.szp-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:.6rem }
.szp-sc{ text-align:right } .szp-sc b{ display:block; font-size:1.7rem; line-height:1; color:var(--tech); font-variant-numeric:tabular-nums } .szp-sc small{ font-size:.72rem; color:var(--ink-soft) }
.szp-row{ display:flex; justify-content:space-between; font-size:.85rem; color:var(--ink-soft) } .szp-row b{ color:var(--ink) }
.szheat{ display:grid; grid-template-columns:repeat(auto-fit,minmax(9px,1fr)); gap:3px; margin:.5rem 0 }
.szh{ display:block; aspect-ratio:1; border-radius:3px; background:var(--line); opacity:.45 }
.szh.l1{ background:#B0D0B9; opacity:1 } .szh.l2{ background:#A7CECB; opacity:1 } .szh.l3{ background:#5FA39C; opacity:1 } .szh.l4{ background:#004645; opacity:1 }
.szd{ border-bottom:1px solid var(--line) } .szd summary{ display:flex; justify-content:space-between; padding:.55rem 0; cursor:pointer; list-style:none }
.szd summary::-webkit-details-marker{ display:none } .szd .when{ color:var(--ink-soft); font-size:.9rem }
.szl{ display:flex; justify-content:space-between; gap:.5rem; padding:.3rem 0 .3rem .8rem; font-size:.92rem } .szl .when{ color:var(--ink-soft); white-space:nowrap }
.szbar{ display:grid; grid-template-columns:8.5rem 1fr auto; gap:.5rem; align-items:center; margin:.35rem 0; font-size:.88rem }
.szbar i{ display:block; height:10px; border-radius:5px; background:var(--tech) } .szbar small{ color:var(--ink-soft) }
/* ---------- Highlighter ---------- */
[data-seg][data-mk]{ background:linear-gradient(transparent 8%, rgba(255,214,64,.42) 8%, rgba(255,214,64,.42) 92%, transparent 92%); border-radius:4px; box-shadow:0 0 0 3px rgba(255,214,64,.42) }
body.hlmode #rBody [data-seg]{ cursor:pointer; outline:1px dashed rgba(181,136,0,.45); outline-offset:2px; border-radius:4px }
.tab.hltog[aria-pressed="true"]{ background:#FFD640; color:#3D2E00; border-color:#E0B400 }
.mkb{ display:inline-flex; align-items:center; gap:.2rem; margin:0 .3rem .2rem; padding:.12rem .5rem; border-radius:999px; border:1px solid #E0B400;
  background:#FFF6CC; color:#5A4500; font:inherit; font-size:.72rem; font-family:system-ui,sans-serif; vertical-align:middle; cursor:pointer; direction:ltr }
.hlsnip{ background:rgba(255,214,64,.3); border-radius:4px; padding:.15rem .35rem }
/* ---------- Admin → Activity ---------- */
.actlink{ display:flex; align-items:center; gap:.8rem; padding:.8rem 1rem; margin:.3rem 0 1rem; border:1px solid var(--line); border-radius:10px; background:var(--paper); text-decoration:none; color:inherit }
.actlink b{ color:#004645; font-size:1.05rem } .actlink span{ color:var(--ink-soft); font-size:.88rem; flex:1 } .actlink .go{ flex:none; font-size:1.3rem; color:#004645 }
.actfilters{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:.3rem 0 .8rem }
.actday{ margin:1rem 0 .3rem; font-size:.95rem; color:#004645 }
.actrow{ display:flex; gap:.8rem; padding:.5rem 0; border-bottom:1px solid var(--line) }
.actrow .t{ flex:none; width:4.6rem; color:var(--ink-soft); font-size:.88rem; padding-top:.1rem }
.actrow .m{ display:flex; flex-direction:column; min-width:0 } .actrow small{ color:var(--ink-soft) }
tr.quiet td{ color:var(--ink-soft) }
/* ---------- sticky section buttons on a sefer's page ---------- */
#lineBody .chips{ position:sticky; top:calc(var(--hdr,4.6rem) + var(--rb,0px) + var(--vvt,0px)); z-index:12; background:var(--paper); margin:0 -1rem .4rem; padding:.45rem 1rem .5rem }
#lineBody .chips.stuck{ border-bottom:1px solid var(--line); box-shadow:0 6px 10px -8px rgba(8,40,38,.35) }
#secs > div[id^="g"]{ scroll-margin-top:calc(var(--hdr,4.6rem) + var(--rb,0px) + var(--chipsh,3.4rem) + .5rem) }

/* Sideways rows (sefer lines, section buttons, today strip) on a computer: a visible bar to drag, and a fade + arrow on
   each side that still has more — on a phone you swipe, so they stay clean there. */
.hs{ position:relative }
.hs.more-s{ -webkit-mask-image:linear-gradient(to right,transparent 0,#000 2.6rem); mask-image:linear-gradient(to right,transparent 0,#000 2.6rem) }
.hs.more-e{ -webkit-mask-image:linear-gradient(to left,transparent 0,#000 2.6rem); mask-image:linear-gradient(to left,transparent 0,#000 2.6rem) }
.hs.more-s.more-e{ -webkit-mask-image:linear-gradient(to right,transparent 0,#000 2.6rem,#000 calc(100% - 2.6rem),transparent 100%); mask-image:linear-gradient(to right,transparent 0,#000 2.6rem,#000 calc(100% - 2.6rem),transparent 100%) }
.hs-wrap{ position:relative }
.hs-arr{ display:none }
@media (hover:hover) and (pointer:fine){
  .chips,.tabs.lines,.today-strip,.r-opts.in-strip{ scrollbar-width:thin; scrollbar-color:var(--tech) var(--paper-2) }
  .chips::-webkit-scrollbar,.tabs.lines::-webkit-scrollbar,.today-strip::-webkit-scrollbar,.r-opts.in-strip::-webkit-scrollbar{ display:block; height:9px }
  .chips::-webkit-scrollbar-thumb,.tabs.lines::-webkit-scrollbar-thumb,.today-strip::-webkit-scrollbar-thumb,.r-opts.in-strip::-webkit-scrollbar-thumb{ background:var(--tech); border-radius:6px }
  .chips::-webkit-scrollbar-track,.tabs.lines::-webkit-scrollbar-track,.today-strip::-webkit-scrollbar-track,.r-opts.in-strip::-webkit-scrollbar-track{ background:var(--paper-2); border-radius:6px }
  .hs-arr{ display:flex; align-items:center; justify-content:center; position:absolute; top:50%; transform:translateY(-60%); z-index:13;
    width:2rem; height:2rem; border-radius:50%; border:1px solid var(--line); background:var(--paper); color:var(--tech); font-size:1.2rem; line-height:1;
    cursor:pointer; box-shadow:0 2px 6px rgba(8,40,38,.18); padding:0 }
  .hs-arr[hidden]{ display:none }
  .hs-arr.l{ left:-.4rem } .hs-arr.r{ right:-.4rem }
}
/* ---------- section buttons inside the reader (in the pinned header strip) ---------- */
.rhead .rsecs{ margin:.4rem 0 0; padding:.1rem 0 .1rem; gap:.35rem }
.rhead .rsecs .chip{ padding:.25rem .7rem } .rhead .rsecs .chip [lang="he"]{ font-size:.98rem }
/* ---------- "By chapter" view (Shir HaShirim) ---------- */
.rhead .rview{ margin:.4rem 0 0 }
.chgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr)); gap:.55rem; margin:.4rem 0 1rem }
.chbtn{ display:flex; flex-direction:column; align-items:center; gap:.15rem; padding:.85rem .5rem; border:1px solid var(--line); border-radius:12px; background:var(--paper); cursor:pointer; font:inherit; color:inherit }
.chbtn b{ font-family:var(--he); font-size:1.2rem; font-weight:500 } .chbtn small{ color:var(--ink-soft); font-size:.78rem }
.chbtn.done{ background:#EEF6EC; border-color:#9CC79A }
.chsub{ margin:.2rem 0 .4rem }
.chnav{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin:.2rem 0 .6rem } .chnav b{ font-family:var(--he); font-size:1.25rem; font-weight:500 } .chnav span{ color:var(--ink-soft); font-size:.85rem }
.chfoot{ display:flex; flex-direction:column; gap:.6rem; margin:1.4rem 0 .6rem }
.chpn{ display:flex; justify-content:space-between; gap:.6rem } .chpn .btn{ min-width:7rem }
/* ---------- English under pesukim (Nach, Koren) ---------- */
.psk:has(+ .psk-en){ margin-bottom:.1rem !important }
.psk-en{ margin-top:.1rem !important; margin-bottom:1.3rem !important }
/* ---------- search modes and back-to-results ---------- */
.qmodes{ margin:.4rem 0 .2rem } .qmodes .tab{ font-size:.85rem }
.nlink.last{ outline:2px solid #E0B400; outline-offset:-2px; border-radius:8px; background:#FFF8D6 }
.srbar{ display:flex; align-items:center; flex-wrap:wrap; gap:.4rem .8rem; padding:.5rem .8rem; margin:.2rem 0 .6rem; border:1px solid #E0B400; background:#FFF8D6; border-radius:10px; font-size:.9rem }
.srbar a{ color:#004645; font-weight:600; text-decoration:none } .srbar .srq{ flex:1; color:var(--ink-soft) } .srbar .srq b{ color:var(--ink) }
.srbar .srnav{ display:flex; gap:.9rem }

/* ---- Ahavas Chessed (lane: KHK — Ahavas Chessed) ---- */
.ac-acts{ margin:1rem 0 }
.ac-acts .btn{ text-align:center; text-decoration:none }
.ac-card{ border:1px solid var(--line); border-radius:12px; padding:.8rem .9rem; margin:.7rem 0; background:var(--paper) }
.ac-card .row2{ margin-top:.6rem }
.ac-q{ border-color:var(--tech); box-shadow:0 0 0 1px var(--tech) inset }
.ac-row{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.75rem .2rem; border-bottom:1px solid var(--line); color:inherit; text-decoration:none }
.ac-row .go{ font-size:1.3rem; color:var(--tech) }
.ac-small{ font-size:.85rem }
.ac-note{ white-space:pre-wrap; background:var(--paper-2); border-radius:8px; padding:.5rem .7rem; margin:.4rem 0; font-size:.92rem }
.ac-l{ display:flex; flex-direction:column; gap:.25rem; font-weight:600; font-size:.92rem }
.ac-l .ta, .ac-l .sel{ margin:0; font-weight:400 }
.ac-tg{ display:flex; gap:.6rem; align-items:flex-start; padding:.35rem 0 }
.ac-tg input{ margin-top:.25rem; flex:none }
.ac-calc{ margin:0; color:var(--tech) }
.ac-shtar{ max-height:16rem; overflow:auto; white-space:pre-wrap; border:1px solid var(--line); border-radius:8px; padding:.6rem .7rem; margin:.5rem 0; background:var(--paper-2); font-size:.9rem }
.ac-seats{ margin-top:.5rem }
.ac-pick{ max-width:11rem }
.ac-marks i{ font-style:normal; display:inline-block; margin-left:.3rem; padding:.1rem .5rem; border-radius:999px; background:var(--tech-soft); color:var(--tech); font-size:.8rem }
/* ---------- Usage report ---------- */
.usgvisit{ border:1px solid var(--line); border-radius:10px; padding:.55rem .8rem; margin:.45rem 0; background:var(--paper) }
.usgh{ display:flex; justify-content:space-between; gap:.6rem; flex-wrap:wrap } .usgh span{ color:var(--ink-soft); font-size:.88rem }
.usgp{ list-style:none; margin:.35rem 0 0; padding:0 } .usgp li{ display:flex; gap:.7rem; padding:.15rem 0; font-size:.92rem }
.usgp .t{ flex:none; width:4.6rem; color:var(--ink-soft); font-size:.85rem }
.rp-t td.est{ color:var(--ink-soft); font-style:italic; white-space:nowrap }
.esth{ margin-top:1.4rem } .estdays .day .when{ font-style:italic }
#view .tbl{ overflow-x:auto; -webkit-overflow-scrolling:touch } #view .tbl .rp-t{ min-width:100% }
.umail{ display:block; font-size:.78rem; color:var(--ink-soft); word-break:break-all } .umail1{ margin-top:-.4rem }
/* ---------- the three pillars on the home screen (Avos 1:2) ---------- */
.pillars-wrap{ margin:.2rem 0 .9rem }
.pillars-q{ text-align:center; font-family:var(--he); color:var(--ink-soft); font-size:1rem; margin:0 0 .45rem }
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem }
.pillars.two{ grid-template-columns:repeat(2,1fr) }
.pillar{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem; min-height:5.2rem; padding:.7rem .35rem;
  border-radius:14px; text-decoration:none; text-align:center; color:#F3E9D8; box-shadow:0 4px 12px -6px rgba(0,0,0,.35) }
.pillar b{ font-family:var(--he); font-weight:600; font-size:1.25rem; line-height:1.2 }
.pillar small{ font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; opacity:.85 }
.p-torah{ background:linear-gradient(160deg,#1E6B66,#0B3F3D) }
.p-avodah{ background:linear-gradient(160deg,#2C5E86,#163552) }
.p-gc{ background:linear-gradient(160deg,#B0773A,#6E4419) }
.p-gc b{ font-size:1.05rem }
.pillar:active{ transform:scale(.98) }
/* ---------- Print for Shabbos ---------- */
.pr-next span:first-child, .pr-pack span:first-child{ display:flex; flex-direction:column } .pr-next small, .pr-pack small{ color:var(--ink-soft) }
.pr-next .when, .pr-pack .when{ display:flex; gap:.4rem; align-items:center } .sel.sm{ padding:.25rem .4rem; width:auto }
.pr-pick{ display:grid; grid-template-columns:1fr 1fr auto; gap:.4rem; margin:.3rem 0 .6rem }
.chk{ display:flex; gap:.5rem; align-items:center; margin:.35rem 0 } .pr-pack .ok{ color:#3D7A3A; font-size:.85rem }
#printArea{ display:none }
@media print{
  body.printing > *:not(#printArea){ display:none !important }
  body.printing #printArea{ display:block !important; color:#000; background:#fff }
  .printpack .pp-cover{ text-align:center; padding-top:20vh } .printpack .pp-cover h1{ font-family:var(--he); font-size:28pt; margin:0 0 .3em }
  .printpack .pp-cover ol{ display:inline-block; text-align:left; margin-top:1.5em; font-size:12pt }
  .printpack .pp-item{ break-before:page; page-break-before:always }
  .printpack h2{ font-size:14pt; border-bottom:1px solid #999; padding-bottom:.2em; margin:0 0 .6em }
  .printpack .r-body{ font-size:15pt; line-height:1.7 } .printpack.big .r-body{ font-size:20pt; line-height:1.8 }
  .printpack .ck, .printpack .pen, .printpack .mkb, .printpack .story, .printpack .chid{ display:none !important }
  .printpack summary{ list-style:none; font-weight:600 }
  @page{ margin:16mm 14mm }
}
@media print{ .printpack .tr-en{ color:#222 !important } .printpack .pp-cover p{ color:#333 } }
.prready{ position:fixed; left:.6rem; right:.6rem; bottom:calc(env(safe-area-inset-bottom,0px) + .6rem); z-index:70; display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  background:#FFF8D6; border:1px solid #E0B400; border-radius:14px; padding:.7rem .9rem; box-shadow:0 8px 24px rgba(0,0,0,.25) }
.prready span{ flex:1 1 100% } .prready[hidden]{ display:none }
@media print{ .prready{ display:none !important } }
body.prready-on main{ padding-bottom:9rem }
/* Print for Shabbos: the reader's off-screen skipping (content-visibility) must never apply to the printed copy — on iPhone it left the pages blank */
#printArea *, .printpack *{ content-visibility:visible !important; contain-intrinsic-size:none !important }
@media print{ #printArea *, .printpack *{ content-visibility:visible !important; contain:none !important } }
#szList{ margin-top:.8rem }
.adm-szpairs{ margin:1rem 0 .3rem; font-size:.95rem } #szList summary small{ color:var(--ink-soft); font-size:.8rem }
#acList summary small{ color:var(--ink-soft); font-size:.8rem }
/* ---------- My shortcuts (home, above Tefillah) ---------- */
#myShort{ margin:.2rem 0 1rem }
.msh-head{ display:flex; justify-content:space-between; align-items:baseline; margin:0 .1rem .45rem } .msh-head b{ color:#004645 }
.msh-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.45rem }
.msh{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.15rem; min-height:4.4rem; padding:.55rem .35rem; border-radius:12px; text-decoration:none; text-align:center;
  background:linear-gradient(160deg,#245F5B,#0E3C3A); color:#F3E9D8; box-shadow:0 3px 10px -6px rgba(0,0,0,.35) }
.msh b{ font-family:var(--he); font-weight:600; font-size:1.05rem; line-height:1.2 } .msh small{ font-size:.66rem; letter-spacing:.04em; opacity:.85 }
.msh-empty{ margin:.2rem .1rem }
.msh-pick{ display:grid; grid-template-columns:repeat(2,1fr); gap:.4rem; max-height:55vh; overflow:auto }
.msh-opt{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:.1rem; padding:.5rem .6rem; border:1px solid var(--line); border-radius:10px; background:var(--paper); font:inherit; color:inherit; text-align:left; cursor:pointer }
.msh-opt b{ font-family:var(--he); font-weight:500 } .msh-opt small{ color:var(--ink-soft); font-size:.75rem }
.msh-opt.on{ border-color:#004645; background:#EEF6EC } .msh-opt .n{ position:absolute; top:.3rem; right:.45rem; font-size:.75rem; font-weight:700; color:#004645 }
.msh-tabs{ margin:.3rem 0 } .msh-g{ margin:.7rem 0 .3rem; font-size:.9rem; color:#004645 }
.msh-body{ max-height:52vh; overflow:auto } .msh-body .msh-pick{ max-height:none }
.msh-limud{ display:grid; grid-template-columns:1fr 1fr auto; gap:.4rem; margin:.4rem 0 }
/* ---------- frozen home top (My shortcuts) ---------- */
.hometop{ position:sticky; top:calc(var(--hdr,4.6rem) + var(--rb,0px)); z-index:14; background:var(--paper); margin:0 -1rem; padding:.2rem 1rem .1rem }
.hometop.compact{ box-shadow:0 8px 12px -10px rgba(8,40,38,.45); border-bottom:1px solid var(--line); padding-bottom:.45rem }
/* scrolling: the Avos line, pillars and shortcuts stay exactly as they are; only the today cards fold (below) */





.hometop.compact #myShort{ margin:0 }


/* ---------- Continue button on a sefer's page ---------- */
.cont{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin:.7rem 0 .4rem; padding:.75rem 1rem; border-radius:12px; text-decoration:none;
  background:linear-gradient(160deg,#1E6B66,#0B3F3D); color:#F3E9D8; box-shadow:0 4px 12px -6px rgba(0,0,0,.35) }
.cont span:first-child{ display:flex; flex-direction:column; gap:.1rem } .cont small{ font-size:.75rem; opacity:.85; letter-spacing:.02em }
.cont b{ font-size:1.15rem; font-weight:600 } .cont b[lang="he"]{ font-family:var(--he); font-size:1.3rem }
.cont .go{ font-size:1.6rem; line-height:1 }
.cont-gap{ margin:.1rem 0 .6rem; font-size:.88rem } .cont-done{ margin:.6rem 0 }
html:has(.hometop), html:has(.hometop) body{ overflow-anchor:none }   /* shrinking the frozen top must not make the browser pull the scroll back (it bounced at the top) */
/* ---------- swipe-back hint (left edge) ---------- */
.swipeback{ position:fixed; left:0; top:50%; transform:translateY(-50%); z-index:40; display:flex; flex-direction:column; align-items:center; gap:0;
  padding:.55rem .35rem .5rem .25rem; border:0; border-radius:0 14px 14px 0; background:rgba(247,243,236,.55); color:rgba(0,70,69,.75); box-shadow:0 1px 6px rgba(0,0,0,.12);
  font:inherit; cursor:pointer; -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); transition:background .2s, transform .2s }
.swipeback .ar{ font-size:1.5rem; line-height:1 } .swipeback small{ font-size:.58rem; letter-spacing:.04em; text-transform:uppercase }
.swipeback.go{ background:rgba(0,70,69,.4); color:#fff; transform:translateY(-50%) translateX(4px) }
.swipeback[hidden]{ display:none } body.reciting .swipeback{ opacity:.6 }
@media print{ .swipeback{ display:none !important } }
/* ---------- interactive swipe back ---------- */
body.swiping{ position:relative; z-index:1; background:var(--paper); box-shadow:-10px 0 28px rgba(0,0,0,.28); will-change:transform; overflow-x:visible }
#swipeUnder{ position:fixed; inset:0; z-index:0; display:flex; align-items:center; padding-left:1.1rem; opacity:0; pointer-events:none;
  background:linear-gradient(90deg,#0B3F3D,#1E6B66); color:#E7D8C3; font-size:1.05rem }
#swipeUnder:not(.on){ display:none }
#swipeUnder span{ max-width:45vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
/* tightened home top: the today cards sit centred (auto margins centre them when they fit, and fall back to normal scrolling when they don't) */

/* ---------- the reading bar (timer · Say it · History) rides at the end of the content: right under a short text (no empty band),
   and pinned to the bottom of the screen while a long text scrolls. Same bottom offset as before (--vvb: iPhone keyboard/toolbar). ---------- */
.r-bar{ position:sticky; bottom:var(--vvb,0px); margin:.25rem -1rem 0 }
.reader{ padding-bottom:.5rem }
main:has(> #lineBody > .r-bar), main:has(> .r-bar){ padding-bottom:0 }
/* short text: the page fills the screen and the bar settles near the bottom (the empty space sits between the text and the bar);
   long text: unchanged — pinned while scrolling, right after the last line at the end */
main:has(> .r-bar){ display:flex; flex-direction:column; min-height:calc(100dvh - var(--hdr,4.6rem)) }
main:has(> #lineBody > .r-bar){ display:flex; flex-direction:column; min-height:calc(100dvh - var(--hdr,4.6rem)) }
main:has(> #lineBody > .r-bar) > #lineBody{ flex:1 0 auto; display:flex; flex-direction:column }
main:has(> .r-bar) > .r-bar, #lineBody > .r-bar{ margin-top:auto }

/* Reading pages are a stretchy column (bar rides under the text). A column item may not grow wider than the screen:
   on iPhone a long bar line ("462 words · best 2:21 · avg 3:09 · History / missed") pushed the page past the right edge
   (Oct 18, Birkas Hamazon). min-width:0 lets every row shrink and wrap; clip stops anything left over from widening
   the page — clip, not hidden, so the pinned bar and header keep working. */
main:has(> .r-bar) > *, main:has(> #lineBody > .r-bar) > *, #lineBody > *{ min-width:0 }
main:has(> .r-bar), main:has(> #lineBody > .r-bar){ overflow-x:clip }
.r-bar .tinfo{ overflow-wrap:anywhere }
/* The reading area is centred with auto side margins. Inside the stretchy column, Safari (iPhone) sizes such an item to
   its longest line (up to 40rem) instead of the screen — the page ran past the right edge (Oct 18, Birkas Hamazon). Give it
   the full width explicitly; the 40rem cap still centres it on a computer. */
main:has(> .r-bar) > .reader, #lineBody > .reader, main:has(> #lineBody > .r-bar) > #lineBody{ width:100%; box-sizing:border-box }

/* frozen home top while scrolling: everything stays full size; only the shortcut tiles fold into one "Shortcuts (N) ▾" bar (tap to open) */
.msh-bar{ display:none }
/* while scrolling: the Avos line and pillars stay as they are; the today cards fold away; the shortcuts become one "Shortcuts (N) ▾" dropdown */
.hometop.compact #tstrip{ display:none }
.hometop.compact .msh-head{ display:none }
.hometop.compact .msh-bar{ display:flex; width:100%; align-items:center; justify-content:space-between; gap:.6rem; margin:0 0 .2rem; padding:.55rem .9rem;
  border:1px solid var(--line); border-radius:12px; background:var(--paper); color:#004645; font:inherit; font-weight:600; cursor:pointer }
.hometop.compact .msh-bar small{ font-weight:400; color:var(--ink-soft) } .hometop.compact .msh-bar .ch{ transition:transform .15s }
.hometop.compact.sh-open .msh-bar .ch{ transform:rotate(180deg) }
.hometop.compact:not(.sh-open) .msh-grid, .hometop.compact:not(.sh-open) .msh-empty{ display:none }
.hometop.compact.sh-open .msh-grid{ margin-bottom:.2rem }
/* frozen home top: locked from the first pixel — the page's top padding moves inside the block, so it is already at its pinned
   place at rest (the Avos line used to slide up ~13px before locking) */
main:has(> #homeTop.hometop){ padding-top:0 }
.hometop{ padding-top:calc(.2rem + .8rem) }
.msh.msh-page{ background:linear-gradient(160deg,#3A4F5C,#1F2F38) } .msh.msh-page b{ font-size:1.02rem }
/* shortcut chooser: Arrange (mirrors the home grid, 1 = top right) */
.msh-arr{ display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem; margin:.4rem 0 }
.msh-slot{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.1rem; min-height:4rem; padding:.5rem .3rem;
  border:1px solid var(--line); border-radius:10px; background:var(--paper); font:inherit; color:inherit; cursor:pointer; text-align:center }
.msh-slot b{ font-weight:600; font-size:.95rem; line-height:1.2 } .msh-slot b[lang="he"]{ font-family:var(--he); font-weight:500; font-size:1.02rem }
.msh-slot small{ color:var(--ink-soft); font-size:.7rem } .msh-slot .n{ position:absolute; top:.25rem; right:.4rem; font-size:.72rem; font-weight:700; color:#004645 }
.msh-slot.sel{ border:2px solid #E0B400; background:#FFF8D6 }
.msh-nudge{ display:flex; gap:.4rem; flex-wrap:wrap; justify-content:center; margin:.3rem 0 }
.msh-nudge .btn{ width:auto; flex:1 1 0; min-width:0; padding:.45rem .5rem; font-size:.88rem }
.msh-slot{ padding-top:1.15rem }
.msh.msh-more{ background:linear-gradient(160deg,#7A6A3A,#4A3F1E) } .msh-pages{ margin:.2rem 0 .3rem }
.ac-chainstat{ margin:.2rem 0 .4rem; font-size:1.05rem }
.ac-ok{ color:#1d7a46 }
.ac-bad{ color:var(--warn,#b3261e) }
.ac-fp{ font-size:.75rem; letter-spacing:.02em; color:var(--ink-soft) }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .ac-ok{ color:#7fd6a2 } }
:root[data-theme="dark"] .ac-ok{ color:#7fd6a2 }
