
:root{--green:#1b3a32;--green2:#2a5246;--green-tint:#e6eee9;--cream:#f5f3ee;--card:#f7f5f0;--line:#e7e2d6;--bg:#fbfaf7;--gold:#b8975a;--gold-soft:#efe5d2;--ink:#18231f;--muted:#6c7570;--simcha:#2f7d4f;--simcha-soft:#e3f1e8;--danger:#a3412f;
--r:22px;--tabh:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--green)}
#app{max-width:640px;margin:0 auto;padding:calc(18px + var(--safe-t)) 18px calc(var(--tabh) + var(--safe-b) + 28px)}
.label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 6px}
h1{font-size:32px;line-height:1.1;margin:0 0 6px;font-weight:800;letter-spacing:-.02em}
h2{font-size:21px;line-height:1.2;margin:0 0 10px;font-weight:750;letter-spacing:-.01em}
h3{font-size:17px;margin:0 0 6px;font-weight:700}
.sub{color:var(--muted);margin:0 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:0 0 14px}
.card.dark{background:var(--green);border-color:var(--green);color:#fff}
.card.dark .label{color:#d9bf8c}
.card.dark .muted{color:#c9d6d0}
.muted{color:var(--muted)}
.small{font-size:13px}
.row{display:flex;align-items:center;gap:10px}
.between{justify-content:space-between}
.wrap{flex-wrap:wrap}
.grow{flex:1;min-width:0}
.btn{text-decoration:none;appearance:none;border:0;background:var(--green);color:#fff;border-radius:14px;padding:12px 18px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px}
.btn.block{width:100%}
.btn.ghost{background:transparent;color:var(--green);border:1.5px solid var(--green)}
.btn.soft{background:var(--gold-soft);color:#6b5326}
.btn.light{background:#fff;color:var(--green);border:1px solid var(--line)}
.btn.danger{background:transparent;color:var(--danger);border:1.5px solid #e2c2bb}
.btn.sm{min-height:36px;padding:8px 13px;font-size:14px;border-radius:12px}
.btn:disabled{opacity:.5}
.chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:14px;cursor:pointer;margin:0 6px 8px 0;color:var(--ink);text-align:left}
.chip b{font-weight:650}
.chip .yr{color:var(--muted);font-size:12px}
.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--gold-soft);color:#7a5e28;vertical-align:middle}
.badge.green{background:var(--simcha-soft);color:var(--simcha)}
.badge.grey{background:#ecebe6;color:#5f6662}
.field{display:block;margin:0 0 12px}
.field span{display:block;font-size:13px;font-weight:650;color:var(--muted);margin:0 0 5px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;font-size:16px;outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,151,90,.18)}
.search{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 16px 13px 42px;font-size:16px;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%236c7570' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px center}
.search:focus{border-color:var(--gold)}
.list-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);cursor:pointer;background:none;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left}
.list-item:first-child{border-top:0}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.dot.gold{background:var(--gold)}.dot.green{background:var(--simcha)}
.ev{border-radius:16px;padding:12px 14px;margin:0 0 8px;display:flex;gap:12px;align-items:flex-start;cursor:pointer;border:1px solid transparent;background:#fff;width:100%;text-align:left}
.ev.yz{background:#fbf6ec;border-color:#eadbbd}
.ev.sm{background:var(--simcha-soft);border-color:#c8e3d2}
.ev .t{font-weight:700}
.ev .d{font-size:13px;color:var(--muted)}
.ev .ic{font-size:18px;line-height:1.2;flex:none;width:22px;text-align:center}
.empty{color:var(--muted);font-size:14px;padding:6px 0}
/* tab bar */
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(251,250,247,.96);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--line);padding-bottom:var(--safe-b)}
nav.tabs .in{max-width:640px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);height:var(--tabh)}
nav.tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#8a918d;text-decoration:none;font-size:10.5px;font-weight:600}
nav.tabs a svg{width:23px;height:23px}
nav.tabs a.on{color:var(--green)}
nav.tabs a.on svg{stroke:var(--green)}
/* home */
.clock{font-size:40px;white-space:nowrap;font-weight:800;letter-spacing:-.03em;line-height:1}
.hebdate{font-size:20px;font-weight:650;direction:rtl;text-align:left}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15px}
.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600}
.zm{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line)}
.zm:first-child{border-top:0}
.zm .n{color:var(--ink)}.zm .v{font-weight:700;font-variant-numeric:tabular-nums}
.zm.next{color:var(--green)}
.zm.next .n::after{content:" · next";color:var(--gold);font-size:12px;font-weight:700}
.seg{display:flex;background:#ecebe5;border-radius:14px;padding:4px;margin:0 0 16px}
.seg button{flex:1;border:0;background:transparent;border-radius:11px;padding:9px;font-weight:650;color:var(--muted);cursor:pointer}
.seg button.on{background:#fff;color:var(--green);box-shadow:0 1px 3px rgba(0,0,0,.08)}
/* calendar */
.cal-h{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}
.cal-h .mid{text-align:center}
.cal-h .mid b{font-size:20px;display:block}
.iconbtn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.grid .wd{font-size:11px;font-weight:700;color:var(--muted);text-align:center;padding:4px 0;text-transform:uppercase;letter-spacing:.05em}
.day{aspect-ratio:1/1.18;border-radius:12px;background:#fff;border:1px solid var(--line);padding:4px 3px;display:flex;flex-direction:column;align-items:center;cursor:pointer;position:relative;min-width:0}
.day.out{opacity:.35}
.day .g{font-size:15px;font-weight:700;line-height:1.1}
.day .h{font-size:10.5px;color:var(--muted);direction:rtl;line-height:1.2}
.day .dots{display:flex;gap:3px;margin-top:auto;margin-bottom:2px;height:7px}
.day .dots i{width:7px;height:7px;border-radius:50%;display:block}
.day .dots i.y{background:var(--gold)}.day .dots i.s{background:var(--simcha)}.day .dots i.h{background:#9bb3aa}
.day.today{border-color:var(--green);box-shadow:inset 0 0 0 1.5px var(--green)}
.day.sel{background:var(--green);border-color:var(--green)}
.day.sel .g,.day.sel .h{color:#fff}
.day.shabbos .g{color:var(--green)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:10px 0 14px}
.legend span{display:inline-flex;align-items:center;gap:6px}
/* tree */
.tree-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.tree-wrap{position:relative;border:1px solid var(--line);border-radius:var(--r);background:#fdfcf9;overflow:hidden}
.tree-scroll{height:62vh;min-height:380px;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.tree-zoom{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px;z-index:5}
.tree-zoom button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:20px;font-weight:700;color:var(--green);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.tree-inner{position:relative}
.tree-content{position:absolute;left:0;top:0;transform-origin:0 0}
.tnode{position:absolute;width:156px;min-height:62px;border-radius:14px;background:var(--cream);border:1px solid var(--line);border-top:3px solid var(--gold);padding:7px 9px 7px;text-align:left;cursor:pointer;box-shadow:0 1px 3px rgba(30,40,35,.06)}
.tnode .nm{font-size:13px;font-weight:700;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tnode .ds{font-size:11.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tnode.direct{background:var(--green);border-color:var(--green);border-top-color:var(--gold)}
.tnode.direct .nm{color:#fff}.tnode.direct .ds{color:#cfe0d8}
.tnode.unc{border-style:dashed;border-top-style:dashed}
.tnode.user{background:#fff;border:1.5px dashed var(--simcha);border-top:3px solid var(--simcha)}
.tnode.hl{box-shadow:0 0 0 4px rgba(184,151,90,.55)}
.tlabel{position:absolute;font-size:11px;font-weight:700;color:#a3413a;letter-spacing:.05em;text-transform:uppercase;background:#fdfcf9;padding:0 4px}
.tree-results{position:absolute;left:0;right:0;top:100%;z-index:20;background:#fff;border:1px solid var(--line);border-radius:16px;margin-top:6px;max-height:300px;overflow:auto;box-shadow:0 10px 30px rgba(0,0,0,.1)}
.tree-results button{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 14px;border-top:1px solid var(--line);cursor:pointer}
.tree-results button:first-child{border-top:0}
.gen-h{margin:18px 0 8px}
.prof{display:flex;align-items:center;gap:12px;padding:12px 2px;border-top:1px solid var(--line)}
.prof:first-of-type{border-top:0}
/* person */
.back{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--green);font-weight:650;padding:6px 0;margin:0 0 8px;cursor:pointer}
.story p{margin:0 0 12px}
.story p:last-child{margin:0}
.flag{border-left:4px solid var(--gold);background:#fbf6ec;border-radius:0 14px 14px 0;padding:10px 12px;margin:0 0 8px;font-size:14.5px}
figure{margin:0 0 14px}
figure img{width:100%;border-radius:16px;border:1px solid var(--line);display:block;background:#fff}
figcaption{font-size:13px;color:var(--muted);margin-top:6px}
.heb{direction:rtl;unicode-bidi:isolate;font-size:18px;font-weight:600}
/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(15,25,21,.45);z-index:100;display:flex;align-items:flex-end;justify-content:center}
.modal{background:var(--bg);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:26px 26px 0 0;padding:22px 18px calc(22px + var(--safe-b))}
@media(min-width:700px){.modal-bg{align-items:center}.modal{border-radius:26px}}
.toast{position:fixed;left:50%;bottom:calc(var(--tabh) + var(--safe-b) + 16px);transform:translateX(-50%);background:var(--green);color:#fff;padding:11px 18px;border-radius:14px;z-index:200;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.18);max-width:90vw}
.member .nm{font-weight:750;font-size:17px}
.member .rel{color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.member .line{display:flex;gap:8px;align-items:center;font-size:15px;margin-top:6px;word-break:break-word}
.member .line a{text-decoration:none;font-weight:600}
details{border-top:1px solid var(--line);padding:10px 0}
details:first-of-type{border-top:0}
summary{cursor:pointer;font-weight:650}
.hide{display:none!important}

/* v2 */
body.locked nav.tabs{display:none}
body.locked #app{padding-bottom:40px}
.login{max-width:420px;margin:0 auto;padding-top:min(6vh,48px)}
.login-logo{display:block;margin:0 auto;border-radius:22px;box-shadow:0 6px 20px rgba(27,58,50,.18)}
input.pin{letter-spacing:.5em;font-size:22px;text-align:center;font-weight:700;-webkit-text-security:disc;text-security:disc}
input.pin:placeholder-shown{-webkit-text-security:none;letter-spacing:.3em}
input.pin[name=pin][placeholder^=Leave]:placeholder-shown{letter-spacing:0;font-size:16px;font-weight:400}
.linkbtn{border:0;background:none;padding:0;color:var(--green);text-decoration:underline;font-weight:650;cursor:pointer;font-size:inherit}
.nowcard{background:#f1efe9;border-color:#e6e1d5;padding:20px}
.nc-greet{font-size:24px;margin:0 0 6px}
.nc-date{font-size:17px;color:var(--ink);font-weight:600}
.nc-time{font-size:60px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:0 0 8px;white-space:nowrap;font-variant-numeric:tabular-nums}
.nc-heb{font-size:15px;color:var(--muted);margin:4px 0 0}
.nc-hebhe{font-size:19px;color:var(--ink);margin:2px 0 0;text-align:left}
.nc-hol{font-size:13.5px;color:var(--green);font-weight:650;margin:-4px 0 10px}
.owner-link{display:block;text-decoration:none;color:inherit;background:var(--gold-soft);border-color:#e6d6b6}
.mrow{display:flex;gap:10px;padding:12px 0;border-top:1px solid var(--line)}
.mrow:first-of-type{border-top:0}
select.rank{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 10px;font-size:15px;font-weight:600;color:var(--green);min-height:36px;max-width:100%}
.rin{flex:1;min-width:0;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px;font-size:16px;outline:none}
.rin:focus{border-color:var(--gold)}
.rk .cnt{min-width:18px;text-align:center}
.loclist{max-height:46vh;overflow:auto;margin-top:4px}
.loclist .list-item{padding:11px 2px}

/* v3 */
nav.tabs a{position:relative}
.tbadge{position:absolute;top:5px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:#b3261e;color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center}
.pendcard{border:1.5px solid var(--gold-soft)}
.switchrow{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.switchrow input{width:22px;height:22px;accent-color:var(--green)}

.cal-key{margin:12px 2px 0;gap:8px 16px;color:var(--ink);font-size:13px}
.cal-key .kd{width:9px;height:9px;border-radius:50%;display:inline-block}
.cal-key .kt{width:14px;height:14px;border-radius:4px;display:inline-block;border:1.5px solid var(--green);background:#fff}

/* v5: Rav Mordechai's family */
.seg{display:flex;background:var(--green-tint);border-radius:999px;padding:4px;margin:0 0 16px;gap:4px}
.seg button{flex:1;border:0;background:none;border-radius:999px;padding:9px 8px;font-size:14px;font-weight:650;color:var(--green2);cursor:pointer}
.seg button.on{background:#fff;color:var(--green);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.zl{font-size:.72em;font-weight:600;color:var(--muted);letter-spacing:.02em}
.bdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--bc,var(--gold));margin-right:7px;flex:none;vertical-align:0}
.bchips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;margin:0 0 6px;scrollbar-width:none}
.bchips::-webkit-scrollbar{display:none}
.bchips .chip{flex:none;margin:0;white-space:nowrap}
.bchips .chip.on{background:var(--green);color:#fff;border-color:var(--green)}
.xsec{margin:6px 0 4px}
.xsech{display:block;font-weight:750;font-size:17px;margin:18px 0 10px;color:var(--ink)}
.xsech .bdot{background:var(--bc)}
.xsub{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}
.card.xh{border-left:5px solid var(--bc,var(--gold))}
.card.xh .nm{font-size:18px;font-weight:700;line-height:1.25}
.xroot{background:var(--green);color:#fff;border-radius:var(--r);padding:16px 18px;margin:4px 0 12px}
.xroot .xname{color:#fff;font-weight:800;font-size:19px;text-decoration:none}
.xroot .zl{color:#c9d6d0}
.xroot .small.muted{color:#c9d6d0;margin-top:2px}
.xbranches > .xn{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--bc);border-radius:16px;padding:6px 10px 6px 6px;margin:0 0 10px}
.xn{position:relative}
.xrow{display:flex;align-items:center;gap:4px;min-height:40px;border-radius:10px}
.xrow.hit,.chip.hit{background:var(--gold-soft)}
.xtog{flex:none;width:32px;height:32px;border:0;background:none;font-size:15px;color:var(--green2);cursor:pointer;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}
.xtog.sp{display:inline-block}
.xname{color:var(--ink);text-decoration:none;font-weight:600;font-size:15.5px;line-height:1.3;display:block;padding:6px 0;flex:1 1 auto;min-width:0}
.xn.d1 > .xrow .xname{font-weight:750;font-size:16.5px}
.xcnt{margin-left:auto;flex:none;font-size:12px;font-weight:700;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.xkids{margin-left:15px;padding-left:10px;border-left:2px solid var(--line)}
.xbranches > .xn > .xkids{border-left-color:var(--bc)}
.xchips{padding:4px 0 4px 6px}
.chip.sm{padding:5px 10px;font-size:13.5px;text-decoration:none}
.xlb{margin:0 0 6px}
.xlb .xsub .bdot{background:var(--bc)}
.xloose .xn.d2{background:var(--card);border:1px dashed var(--line);border-radius:14px;padding:2px 8px 2px 2px;margin:0 0 8px}

/* v6 directory: A-Z list, index bar, pull-down search, A-Z | By family switch */
.dbar{position:sticky;top:0;z-index:30;margin:calc(-18px - var(--safe-t)) -18px 0;padding:calc(var(--safe-t) + 12px) 18px 10px;background:rgba(251,250,247,.92);backdrop-filter:saturate(1.5) blur(16px);-webkit-backdrop-filter:saturate(1.5) blur(16px);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.dbar.sc{border-bottom-color:var(--line);box-shadow:0 6px 18px -14px rgba(0,0,0,.35)}
.dbar-in{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.dttl h1{margin:2px 0 0;font-size:30px;line-height:1.05;letter-spacing:-.02em}
.dbtns{display:flex;align-items:center;gap:8px;padding-bottom:2px}
.dplus{width:34px;height:34px;border-radius:50%;border:0;background:var(--green-tint);color:var(--green);font-size:22px;font-weight:500;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 2px}
.dplus:active{transform:scale(.92)}
.dseg{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#ebe7de;border-radius:11px;padding:2px;user-select:none;-webkit-user-select:none}
.dseg i{position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 2px);background:#fff;border-radius:9px;box-shadow:0 1px 3px rgba(0,0,0,.14),0 0 0 .5px rgba(0,0,0,.05);transition:transform .32s cubic-bezier(.3,1.25,.4,1)}
.dseg[data-m=fam] i{transform:translateX(100%)}
.dseg button{position:relative;z-index:1;border:0;background:none;font:inherit;font-size:13px;font-weight:650;color:var(--muted);padding:7px 11px;white-space:nowrap;cursor:pointer;transition:color .2s;-webkit-tap-highlight-color:transparent}
.dseg[data-m=az] [data-dm=az],.dseg[data-m=fam] [data-dm=fam]{color:var(--ink)}
.dsearch{padding:10px 0 8px;will-change:opacity}
.dsrow{display:flex;align-items:center;gap:0;transform-origin:50% 0;will-change:transform}
.dsrow .search{margin:0;padding-top:10px;padding-bottom:10px;border-radius:12px;background-color:#efece5;border-color:transparent;flex:1;min-width:0;-webkit-appearance:none;appearance:none;transition:background-color .2s}
.dsrow .search:focus{background-color:#fff;border-color:var(--gold)}
.dsrow .search::-webkit-search-decoration{-webkit-appearance:none}
.dcancel{border:0;background:none;color:var(--green);font:inherit;font-size:16px;font-weight:600;padding:0;max-width:0;overflow:hidden;opacity:0;white-space:nowrap;transition:max-width .25s,opacity .2s,padding .25s;cursor:pointer}
.dsearch.act .dcancel{max-width:90px;opacity:1;padding:0 2px 0 12px}
.dlist{padding-right:14px;min-height:40px}
.dfade{animation:dfade .28s ease}
@keyframes dfade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.dlh{position:sticky;top:var(--dbarh,74px);z-index:5;margin:0 -14px 0 -18px;padding:5px 18px 4px;font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--green);background:rgba(243,240,233,.97)}
.dgh{display:flex;align-items:center;gap:8px;font-size:15px;letter-spacing:0;color:var(--ink);padding-top:8px;padding-bottom:7px}
.dgh .bdot{background:var(--bc)}
.dgf{color:var(--muted);font-weight:600}
.dcnt{margin-left:auto;font-size:12px;font-weight:700;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.dgsub{margin:6px 0 0;font-size:12.5px;color:var(--muted)}
.drow{position:relative}
.drow+.drow::before{content:"";position:absolute;left:52px;right:0;top:0;border-top:1px solid var(--line)}
.dhead{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;margin:0;padding:9px 0;text-align:left;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px}
.dhead:active{background:rgba(27,58,50,.05)}
.dav{flex:none;width:40px;height:40px;border-radius:50%;background:var(--bc);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;letter-spacing:.03em;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18)}
.dtx{flex:1;min-width:0;display:flex;flex-direction:column}
.dnm{font-size:16px;font-weight:620;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dnm .zl{font-weight:500}
.dsub{font-size:13px;color:var(--muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsub .bdot{background:var(--bc);width:7px;height:7px;margin:0 4px 1px 0;vertical-align:middle}
.dun{color:var(--gold);font-weight:650}
.dchev{flex:none;color:#b9bdb8;font-size:22px;line-height:1;transition:transform .25s;margin-right:2px}
.drow.open .dchev{transform:rotate(90deg)}
.dexp{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}
.drow.open .dexp{grid-template-rows:1fr}
.din{overflow:hidden;min-height:0}
.din .card{margin:0 0 12px 52px;padding:12px 14px;border-radius:16px;background:#fff}
.din .card .nm{display:none}
.dfoot{padding-right:14px}
.didx{position:fixed;z-index:40;right:calc(max(0px,(100vw - 640px) / 2) + 1px);top:calc(var(--dbarh,74px) + 6px);bottom:calc(var(--tabh) + var(--safe-b) + 6px);width:24px;display:flex;flex-direction:column;justify-content:center;align-items:stretch;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer;border-radius:12px;transition:background .15s}
.didx.none{display:none}
.didx.drag{background:rgba(27,58,50,.07)}
.didx b{flex:0 1 16px;min-height:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1;color:var(--green)}
.didx b.off{color:#c9cdca}
.dhud{position:fixed;left:50%;top:44%;z-index:60;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:22px;background:rgba(27,58,50,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:44px;font-weight:750;display:grid;place-items:center;opacity:0;transform:scale(.8);pointer-events:none;transition:opacity .15s,transform .18s cubic-bezier(.3,1.4,.5,1)}
.dhud.on{opacity:1;transform:none}
@media (max-width:360px){.dttl h1{font-size:25px}.dseg button{padding:7px 8px;font-size:12.5px}}

/* v8 stage A */
.nc-parsha{font-size:17px;font-weight:650;color:var(--green);margin:6px 0 0;text-align:left}
.nc-parsha:empty{display:none}
.nc-parsha .heb{font-size:18px;font-weight:700}
.ppick{margin:-6px 0 14px}
.ppcur{background:var(--green-tint);border-radius:12px;padding:9px 12px;margin:0 0 8px;font-size:15px}
.pplist{position:relative;max-height:260px;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px;background:#fff;margin-top:8px}
.ppopt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:11px 12px;font-size:15px;cursor:pointer}
.pplist>.ppopt:first-child{border-top:0}
.ppopt.on{background:var(--simcha-soft);font-weight:650}
.ppopt.on::after{content:'✓';color:var(--simcha);font-weight:800}
.pptag{font-size:11px;color:var(--muted);white-space:nowrap}
.pplet{position:sticky;top:0;background:#f1efe9;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.1em;padding:3px 12px;z-index:1}

/* v8 simchas */
.smseg{margin:2px 0 14px}
.smfile{position:relative;overflow:hidden;text-align:center}
.smfile input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.smthumb{display:block;max-width:100%;max-height:320px;margin:10px auto 0;border-radius:12px;border:1px solid var(--line)}
.smpdfchip{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-weight:600}
.smnote{margin:-4px 2px 14px;color:var(--simcha);font-weight:600}
.sminv{display:block;width:100%;border:0;padding:0;margin:12px 0 0;background:none;cursor:zoom-in}
.sminv img{display:block;width:100%;border-radius:12px;border:1px solid var(--line)}
.smdl{margin:12px 0 0;border-top:1px solid var(--line)}
.smr{padding:9px 2px;border-bottom:1px solid var(--line)}
.smr a{color:var(--green);font-weight:600;text-decoration:none}
.imgzoom{position:fixed;inset:0;z-index:300;background:#111;display:flex;flex-direction:column}
.imgzoom .zs{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;display:flex;align-items:flex-start}
.imgzoom img{width:100%;margin:auto}
.imgzoom .zx{position:absolute;top:calc(env(safe-area-inset-top) + 10px);right:12px;z-index:2;background:rgba(255,255,255,.9)}
/* v8 pdf viewer */
.pdfv{position:fixed;inset:0;z-index:250;background:#e9e7e1;display:flex;flex-direction:column}
.pdfbar{display:flex;align-items:center;gap:6px;padding:calc(env(safe-area-inset-top) + 8px) 10px 8px;background:var(--green);color:#fff}
.pdfbar .iconbtn{background:rgba(255,255,255,.16);color:#fff;font-size:20px}
.pdft{font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}
.pdfsub{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;background:#fff;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted)}
.pdfsub input{width:84px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;font-size:16px}
.pdfsc{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:8px 6px calc(env(safe-area-inset-bottom) + 20px)}
.pdfin{width:100%}
.pdfpg{position:relative;width:100%;background:#fff;margin:0 0 10px;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.pdfpg canvas{position:absolute;inset:0;width:100%;height:100%}
.pdfno{position:absolute;top:45%;left:0;right:0;text-align:center;color:#bbb;font-size:22px}

[hidden]{display:none!important}

/* v8 account button + settings */
.avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--green);color:#fff;font-weight:750;font-size:15px;letter-spacing:.5px;border:0;flex:none}
#homeav{margin-left:auto;cursor:pointer;box-shadow:none;-webkit-font-smoothing:antialiased}
.avatar.big{width:58px;height:58px;border-radius:16px;font-size:21px}
.avatar.sm{width:36px;height:36px;border-radius:10px;font-size:13px}
.acct{display:flex;gap:14px;align-items:center;margin:6px 0 14px}
.acn{font-size:18px}
.menu{border-top:1px solid var(--line)}
.menu a,.menu button{display:flex;gap:12px;align-items:center;width:100%;padding:14px 4px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;text-align:left}
.menu svg{color:var(--green)}
.card.warn{display:block;background:#fbf1df;border-color:#ecd3a6;color:var(--ink);text-decoration:none}
.slist{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.srow{display:flex;gap:12px;align-items:center;padding:14px 12px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.srow:last-child{border-bottom:0}
.srow .grow{display:flex;flex-direction:column;gap:2px}
.sic{width:38px;height:38px;border-radius:11px;background:var(--green-tint);color:var(--green);display:flex;align-items:center;justify-content:center;flex:none}
.sbadge{min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--danger);color:#fff;font-size:13px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
.sbadge.zero{background:var(--simcha)}
.urow{display:flex;gap:12px;align-items:center;width:100%;padding:11px 2px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;color:var(--ink);cursor:pointer}
.urow:last-child{border-bottom:0}
.urow.on{background:var(--green-tint);border-radius:10px}
.urow .grow{display:flex;flex-direction:column;gap:1px;min-width:0}
.urow .grow > *{overflow:hidden;text-overflow:ellipsis}
.ulog{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.ulog .small{white-space:nowrap}
.ngrp summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}
.ngrp summary::-webkit-details-marker{display:none}
.nrow{display:flex;align-items:center;gap:8px;padding:10px 2px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.nrow .grow{display:flex;flex-direction:column}

/* v8 torah */
.card.rav{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--ink);padding:18px 16px}
.card.rav .grow{display:flex;flex-direction:column;gap:3px}
.card.rav b{font-size:18px}
.ravic{width:50px;height:50px;border-radius:14px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.ravic svg{stroke:#fff}
.sefer{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line)}
.sefer:last-child{border-bottom:0}
.sopen{flex:1;display:flex;gap:12px;align-items:center;padding:12px 2px;border:0;background:none;text-align:left;color:var(--ink);cursor:pointer}
.sopen .grow{display:flex;flex-direction:column;gap:2px}
.sbook{font-size:26px}

/* v8c: three-way Directory switch + green add button (bottom right) */
.dseg.dseg3{grid-template-columns:auto auto auto}
.dseg.dseg3 i{width:0;transform:none;transition:transform .32s cubic-bezier(.3,1.25,.4,1),width .32s cubic-bezier(.3,1.25,.4,1)}
.dseg.dseg3 button{padding:7px 9px}
.dseg[data-m=town] [data-dm=town]{color:var(--ink)}
.dpin{width:14px;height:14px;flex:none;fill:none;stroke:var(--green);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;margin-right:2px}
.dfab{position:fixed;z-index:45;right:calc(max(0px,(100vw - 640px) / 2) + 16px);bottom:calc(var(--tabh) + var(--safe-b) + 16px);width:56px;height:56px;border-radius:50%;border:0;padding:0;background:#2e9a5c;background:linear-gradient(180deg,#36ab67,#278b51);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 16px rgba(24,96,55,.32),0 2px 5px rgba(0,0,0,.14);-webkit-tap-highlight-color:transparent;transition:transform .12s}
.dfab svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round}
.dfab:active{transform:scale(.92)}
body.locked .dfab{display:none}
.didx{bottom:calc(var(--tabh) + var(--safe-b) + 84px)}
.dfoot{padding-bottom:64px}
@media (max-width:360px){.dseg.dseg3 button{padding:7px 6px;font-size:12px}}
.req{color:#c0392b;font-weight:700}

/* v8d: contact pills (phone menu, email), See full profile, Child of picker fold, sheet lock */
.cline{margin-top:8px;position:relative}
.cpill{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:1px solid #cfe3d8;background:#eef7f1;color:#1f7a4a;border-radius:999px;padding:7px 13px 7px 10px;font:inherit;font-size:15px;font-weight:650;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;overflow-wrap:anywhere;text-align:left}
.cpill span{text-decoration:underline;text-decoration-color:rgba(31,122,74,.35);text-underline-offset:3px}
.cpill svg{flex:0 0 18px;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.cpill:active{background:#dff0e6}
.phm{display:none;gap:6px;flex-wrap:nowrap;margin:8px 0 2px}
.cline.on .phm{display:flex}
.cline.on [data-phm]{background:#dff0e6;border-color:#9fcdb2}
.phm a{flex:1 1 auto;min-width:0;white-space:nowrap;text-align:center;text-decoration:none;font-weight:650;font-size:14px;color:var(--green);background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 6px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.phm a:active{background:#f3f1ec}
.cfull{margin-top:12px;display:flex;justify-content:center;width:100%}
.ppcur{display:flex;align-items:center;gap:8px}
.ppchg{display:none;border:1px solid var(--line);background:#fff;color:var(--green);font:inherit;font-size:14px;font-weight:650;border-radius:10px;padding:6px 12px;cursor:pointer}
.ppick.picked .ppchg{display:inline-block}
.ppick.picked .ppbody{display:none}
.modal-bg{height:100%;overscroll-behavior:contain}
.modal{-webkit-overflow-scrolling:auto;overscroll-behavior:contain}
.modal input,.modal select,.modal textarea{font-size:16px}
