/* School Invoices — light look: airy blue-grey, white cards, Fraunces + Manrope. */
@font-face{font-family:"MB Serif";src:url("fonts/fraunces.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"MB Sans";src:url("fonts/manrope.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
/* Hebrew letters: the bundled Rubik subset steps in for the Latin-only faces, only for Hebrew code points */
@font-face{font-family:"MB Sans";src:url("fonts/rubik-hebrew.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap;unicode-range:U+0590-05FF,U+FB1D-FB4F}
@font-face{font-family:"MB Serif";src:url("fonts/rubik-hebrew.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap;unicode-range:U+0590-05FF,U+FB1D-FB4F}
html[data-theme="light"]{
  --bg:#eaedf4; --card:#ffffff; --card2:#f4f6fa; --line:#e4e8ef; --text:#171a20; --muted:#5f6774;
  --up:#1c7d52; --down:#c63d50; --amber:#a86412; --amber-soft:#fdf3e3; --accent:#2a62fd;
  --g:#2f9e6a; --g-soft:#e6f5ee; --g-edge:rgba(47,158,106,.32); --r:#d4495b; --r-soft:#fcecee;
  --track:#e4e7ef; --tick:#9298a4; --label:#6c7380; --hairline:rgba(23,26,32,.06);
  --edge:rgba(23,26,32,.06); --hi:rgba(255,255,255,0);
  --shadow:0 1px 2px rgba(31,42,68,.04), 0 10px 30px -14px rgba(31,42,68,.16);
  --blue-glow:0 6px 16px -6px rgba(42,98,253,.55);
  --glow-up:none; --glow-down:none; --glow-up-big:none; --glow-down-big:none;
  --bg-paint:radial-gradient(85% 38% at 0% 0%, #d9ebea 0%, rgba(217,235,234,0) 70%), radial-gradient(70% 30% at 100% 0%, #e1e9f6 0%, rgba(225,233,246,0) 70%), linear-gradient(180deg,#e6edf3 0px,#eaedf4 520px);
}
html[data-theme="dark"]{
  --bg:#0d1015; --card:#161a21; --card2:#1d222b; --line:#262c36; --text:#eef1f6; --muted:#9ba3b0;
  --up:#3fb47f; --down:#ff6b7d; --amber:#f2b357; --amber-soft:rgba(242,179,87,.13); --accent:#2f6bff;
  --g:#38ab77; --g-soft:rgba(56,171,119,.16); --g-edge:rgba(56,171,119,.45); --r:#f0606f; --r-soft:rgba(240,96,111,.14);
  --track:#252b35; --tick:#7d8594; --label:#8f98a6; --hairline:rgba(255,255,255,.05);
  --edge:rgba(255,255,255,.06); --hi:rgba(255,255,255,.02);
  --shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 12px 30px -14px rgba(0,0,0,.8);
  --blue-glow:0 6px 18px -6px rgba(47,107,255,.65);
  --glow-up:none; --glow-down:none; --glow-up-big:none; --glow-down-big:none;
  --bg-paint:radial-gradient(85% 38% at 0% 0%, #12241f 0%, rgba(18,36,31,0) 70%), radial-gradient(70% 30% at 100% 0%, #121a2b 0%, rgba(18,26,43,0) 70%), linear-gradient(180deg,#0f1319 0px,#0d1015 520px);
}

*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text)}
body{background:var(--bg-paint) no-repeat,var(--bg);font-family:"MB Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:17px;line-height:1.4;-webkit-text-size-adjust:100%;min-height:100vh}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
[hidden]{display:none!important}
body.locked #app,body.locked .tabbar,body.acct-open #app,body.acct-open .tabbar{visibility:hidden}
#app{max-width:760px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 14px) 16px 20px}
body.has-tb{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.top-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.eyebrow{margin:0;font-size:12px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--label)}
.top h1{margin:2px 0 0;font-family:"MB Serif",Georgia,serif;font-variation-settings:"opsz" 144;font-weight:350;font-size:31px;letter-spacing:-.3px;line-height:1.1}
.icon-btn{width:46px;height:46px;display:grid;place-items:center;background:var(--card);border:1px solid var(--hairline);border-radius:14px;box-shadow:var(--shadow);color:var(--text);cursor:pointer}
.card{background:var(--card);border:1px solid var(--hairline);border-radius:22px;box-shadow:var(--shadow);padding:16px;margin-top:14px}
.lbl{margin:0;font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--label)}
.big{margin:4px 0 2px;font-family:"MB Serif",Georgia,serif;font-variation-settings:"opsz" 144;font-weight:330;font-size:46px;letter-spacing:-.6px;line-height:1.1;font-feature-settings:"lnum" 1,"tnum" 1}
.mid{margin:3px 0 0;font-size:20px;font-weight:750;font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}.small{font-size:14px;margin:4px 0 0}
.up{color:var(--up)}.down{color:var(--down)}
.grid4{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px;margin-top:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
@media (min-width:640px){.grid4{grid-template-columns:repeat(4,1fr)}.big{font-size:54px}}
.bar{height:10px;border-radius:6px;background:var(--track);margin-top:16px;overflow:hidden}
.bar span{display:block;height:100%;width:0;background:var(--g);border-radius:6px;transition:width .3s}
.tithe-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.month-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px;background:var(--track);border-radius:16px;padding:4px}
.chip-btn{width:48px;height:42px;border:0;border-radius:12px;background:transparent;font-size:26px;line-height:1;cursor:pointer;color:var(--text)}
.chip-btn:disabled{opacity:.3}
.month-name{flex:1;height:42px;border:0;border-radius:12px;background:var(--card);box-shadow:var(--shadow);font-weight:800;font-size:17px;cursor:pointer}
.banner{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:var(--card2);color:var(--muted);font-size:15px}
.sec-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:22px 2px 8px}
.sec-head h2,.menu h2{margin:0;font-family:"MB Serif",Georgia,serif;font-weight:400;font-size:23px}
.pill{border:0;background:var(--accent);color:#fff;font-weight:750;padding:10px 16px;border-radius:999px;cursor:pointer;box-shadow:var(--blue-glow)}
.list{display:flex;flex-direction:column;gap:8px}
.row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--hairline);border-radius:18px;box-shadow:var(--shadow);padding:12px 14px;min-height:68px}
.row .main{flex:1;min-width:0;cursor:pointer}
.row .name{font-weight:750;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .sub{font-size:14px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .amt{font-weight:800;font-size:18px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.row .amt small{display:block;font-size:12.5px;font-weight:650;color:var(--muted)}
.day{flex:0 0 46px;height:46px;border-radius:14px;background:var(--card2);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.day b{font-size:19px}.day i{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.6px;color:var(--label);margin-top:3px}
.check{flex:0 0 46px;width:46px;height:46px;border-radius:50%;border:2.5px solid var(--tick);background:transparent;display:grid;place-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:0}
.check svg{opacity:0;transition:opacity .12s}
.row.paid .check{background:var(--g);border-color:var(--g)}
.row.paid .check svg{opacity:1}
.row.paid .name,.row.paid .amt{color:var(--muted)}
.row.paid .name{text-decoration:line-through;text-decoration-thickness:1.5px}
.row.overdue{border-color:var(--r);background:var(--r-soft)}
.row.overdue .day{background:var(--r);color:#fff}.row.overdue .day i{color:#fff}
.row.overdue .sub{color:var(--down);font-weight:700}
.row.today{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset,var(--shadow)}
.row.today .day{background:var(--accent);color:#fff}.row.today .day i{color:#fff}
.tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:var(--g-soft);color:var(--up);margin-left:6px;vertical-align:2px}
.tag.red{background:var(--r-soft);color:var(--down)}.tag.blue{background:rgba(42,98,253,.12);color:var(--accent)}
.empty{padding:22px 16px;text-align:center;color:var(--muted);background:var(--card);border-radius:18px;border:1px dashed var(--line)}
button.primary,button.ghost{border-radius:14px;padding:13px 18px;font-weight:750;cursor:pointer;border:1px solid transparent}
button.primary{background:var(--accent);color:#fff;box-shadow:var(--blue-glow)}
button.primary.alt{background:var(--g);box-shadow:none}
button.ghost{background:var(--card);border-color:var(--line);color:var(--text)}
button.wide{display:block;width:100%;margin-top:14px}
.btn-row{display:flex;gap:10px;margin-top:14px}.btn-row>button{flex:1}
.link-btn{background:none;border:0;color:var(--accent);font-weight:650;cursor:pointer;margin-top:12px;padding:8px}
.link-btn.inline{margin:0;padding:0;font-size:inherit}
.danger-txt{color:var(--down)!important;display:block;margin:12px auto 0}
.seg{display:flex;background:var(--track);border-radius:14px;padding:4px;gap:2px}
.seg button{flex:1;border:0;background:transparent;border-radius:11px;padding:9px 12px;font-weight:750;color:var(--muted);cursor:pointer;font-size:15px}
.seg button[aria-pressed="true"]{background:var(--accent);color:#fff;box-shadow:var(--blue-glow)}
.sec-head .seg{flex:0 1 260px}
.debt .main{flex:1}
.debt .meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;color:var(--muted);margin-top:4px}
.debt .meta b{color:var(--text);font-weight:700}
.debt .payoff{font-size:14px;font-weight:750;margin-top:4px;color:var(--up)}
.debt .payoff.never{color:var(--down)}
.tgrid .trow{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:6px;padding:9px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;font-size:16px}
.tgrid .trow span:not(:first-child){text-align:right}
.tgrid .trow span:first-child{font-weight:750}
.tgrid .trow.head{font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--label);padding-top:0}
.tgrid .trow span.owe{color:var(--amber);font-weight:800}
.tgrid .trow span.ok{color:var(--up);font-weight:800}
.logrow{min-height:58px}
.logrow .amt{font-size:15px;font-weight:700}
.menu p{margin:8px 0 0}
.menu .seg{margin-top:12px}
.count{font-family:"MB Sans",sans-serif;font-size:15px;color:var(--muted);font-weight:600}
.imp-sum{margin-top:12px;font-size:15px}
.imp-sum table{width:100%;border-collapse:collapse;margin-top:8px;font-variant-numeric:tabular-nums}
.imp-sum td{padding:6px 2px;border-bottom:1px solid var(--line)}
.imp-sum td:not(:first-child){text-align:right}
.ok-t{color:var(--up);font-weight:800}.bad-t{color:var(--down);font-weight:800}
/* bottom sheet editor */
.sheet{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg{position:absolute;inset:0;background:rgba(15,20,30,.45)}
.sheet-card{position:relative;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;background:var(--bg);border-radius:24px 24px 0 0;padding:20px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.25)}
@media (min-width:700px){.sheet{align-items:center}.sheet-card{border-radius:24px}}
.sheet-card h2{margin:0 0 12px;font-family:"MB Serif",Georgia,serif;font-weight:400;font-size:25px}
.fld{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:14px;font-weight:700;color:var(--muted)}
.fld input,.fld select{width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 12px;font-size:18px;color:var(--text);font-weight:600}
.fld input:focus{border-color:var(--accent);outline:none}
.fld.chk{flex-direction:row;align-items:center;gap:10px;font-size:16px;color:var(--text)}
.fld.chk input{width:24px;height:24px}
.fld .hint{font-weight:500;font-size:13px}
.form-msg{min-height:18px;margin:8px 0 0;color:var(--down);font-size:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 84px);z-index:80;background:#171a20;color:#fff;padding:11px 18px;border-radius:14px;font-weight:650;font-size:15px;max-width:90vw;box-shadow:0 8px 24px rgba(0,0,0,.25)}
html[data-theme="dark"] .toast{background:#eef1f6;color:#171a20}
/* bottom tab bar */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:48;background:color-mix(in srgb,var(--card) 96%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);border-top:1px solid var(--line);padding:0 0 env(safe-area-inset-bottom)}
html[data-theme="dark"] .tabbar{background:color-mix(in srgb,var(--bg) 95%,transparent)}
.tb-in{display:flex;max-width:640px;margin:0 auto;padding:0 6px}
.tb-btn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:62px;padding:6px 2px 4px;background:none;border:0;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px}
.tb-btn svg{display:block}
.tb-btn span{line-height:1;white-space:nowrap}
.tb-btn[aria-current="page"]{color:var(--accent)}
.tb-btn:active svg{transform:scale(.9)}
@media (min-width:700px){.tb-btn{font-size:13px;height:64px}}
.sync-line{display:block;width:100%;margin:8px 0 0;background:none;border:0;padding:2px 0;text-align:left;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sync-line.bad{color:var(--down);font-weight:600}
/* lock + account screens */
.lock{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;align-items:center;justify-content:center;max-width:none;
  padding:calc(env(safe-area-inset-top) + 16px) 20px calc(env(safe-area-inset-bottom) + 16px);overflow-y:auto}
.lock[hidden]{display:none}
.lock-inner{width:100%;max-width:320px;display:flex;flex-direction:column;align-items:center;text-align:center}
.lock-logo{margin-bottom:14px}
.lock h2{margin:0;font-size:22px;font-weight:650}
.lock-hint{min-height:20px;margin:8px 0 0;color:var(--muted);font-size:14px}
.lock-hint.bad{color:var(--down)}
.lock-dots{display:flex;gap:16px;justify-content:center;margin:22px 0 28px;min-height:16px}
.pd{width:14px;height:14px;border-radius:50%;border:2px solid var(--tick);transition:background .1s,border-color .1s}
.pd.on{background:var(--text);border-color:var(--text)}
.shake{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-9px)}40%,80%{transform:translateX(9px)}}
.keypad{display:grid;grid-template-columns:repeat(3,76px);gap:16px 26px;justify-content:center}
.keypad button{width:76px;height:76px;border-radius:50%;border:0;background:var(--card2);color:var(--text);font-size:30px;font-weight:400;cursor:pointer;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none}
.keypad button:active{background:var(--track)}
.keypad .kp-back{background:transparent;display:grid;place-items:center}
.lock-done{margin-top:22px;min-width:180px}
.link-btn{background:none;border:0;color:var(--accent);font-weight:600;cursor:pointer;margin-top:20px;padding:8px}
.link-btn.inline{margin:0;padding:0;font-size:inherit;font-weight:600}
@media (max-height:640px){.keypad{gap:10px 22px;grid-template-columns:repeat(3,66px)}.keypad button{width:66px;height:66px;font-size:26px}.lock-dots{margin:14px 0 18px}.lock-logo{display:none}}
.acct{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;max-width:none;overflow-y:auto;padding:max(28px,env(safe-area-inset-top)) 20px 28px}
.acct[hidden]{display:none}
body.acct-open{overflow:hidden}
.acct-inner{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:stretch;text-align:center;margin:auto 0}
.acct-inner .lock-logo{align-self:center}
.acct h2{margin:0;font-size:22px;font-weight:650}
.acct-sub{margin:6px 0 16px;color:var(--muted);font-size:14px;min-height:20px}
.acct-tabs{display:flex;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:3px;margin-bottom:14px}
.acct-tabs button{flex:1;border:0;background:transparent;color:var(--muted);padding:9px 0;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer}
.acct-tabs button[aria-pressed=true]{background:var(--card2);color:var(--text)}
.acct-tabs[hidden]{display:none}
.acct-form{display:flex;flex-direction:column;gap:10px;text-align:left}
.acct-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.acct-form label[hidden]{display:none}
.acct-form input{width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px;color:var(--text)}
.acct-form input:focus{border-color:var(--accent);outline:none}
.acct-warn{margin:2px 0 0;font-size:13px;line-height:1.35;color:#8a5a00;background:#fff6e0;border:1px solid #f1d58f;border-radius:10px;padding:8px 10px}
.acct-warn[hidden]{display:none}
.acct-go{width:100%;padding:13px 18px;font-size:16px;margin-top:2px}
.acct-go:disabled{opacity:.6}
.acct-inner .link-btn{margin-top:12px}
.acct-inner .link-btn[hidden]{display:none}
.acct-fine{margin:14px 0 0;font-size:12px;line-height:1.4;color:var(--muted)}
.acct-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.acct-row button{flex:1 1 130px}
.acct-who{margin:10px 0 0;font-size:15px}
.acct-links{margin:12px 0 0;font-size:14px;color:var(--muted);line-height:1.9}
.acct-del{color:var(--down)!important}
.acct-flash{margin:10px 0 0;font-size:13px;color:var(--up)}
.acct-flash[hidden]{display:none}
.sync-line{display:block;width:100%;margin:10px 0 0;background:none;border:0;padding:4px 0;text-align:left;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sync-line.bad{color:var(--down);font-weight:600}
.sync-line[hidden]{display:none}
.acct-go.danger{background:var(--down);color:#fff;margin-right:0;border-color:transparent}

/* portfolio graph */
.pg{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.pg[hidden]{display:none}
.pg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pg-title{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.pg-now{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px}
.pg-chg{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted)}
.pg-chg.up{color:var(--up)}.pg-chg.down{color:var(--down)}
.pg-tog{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap;cursor:pointer;padding-top:2px}
.pg-tog input{width:16px;height:16px;accent-color:var(--accent)}
.pg-chart{position:relative;margin-top:8px;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.pg-svg{display:block;width:100%;height:auto;overflow:visible}
.pg-grid{stroke:var(--line);stroke-width:1}
.pg-ylab,.pg-xlab{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.pg-net{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pg-gross{fill:none;stroke:#8ab4ff;stroke-width:1.5;stroke-dasharray:4 3;opacity:.85}
.pg-mk.buy{fill:var(--up)}.pg-mk.sell{fill:var(--down)}
.pg-cross{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.pg-hdot{fill:var(--text);stroke:var(--bg);stroke-width:2}
.pg-tip{position:absolute;top:0;z-index:2;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:6px 9px;font-size:12px;line-height:1.45;white-space:nowrap;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.35);font-variant-numeric:tabular-nums}
.pg-tip[hidden]{display:none}
.pg-tip .pg-tsub{color:var(--muted)}.pg-tip .up{color:var(--up)}.pg-tip .down{color:var(--down)}
.pg-ranges{display:flex;gap:4px;margin-top:6px;background:var(--card2);border-radius:10px;padding:3px}
.pg-ranges button{flex:1;border:0;background:transparent;color:var(--muted);padding:6px 0;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}
.pg-ranges button[aria-pressed=true]{background:var(--line);color:var(--text)}
.pg-note{margin:6px 0 0;font-size:12px;color:var(--muted);min-height:0}
.pg-note:empty{display:none}

.acct-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.5px}
.acct-forgot{align-self:center;margin-top:4px!important;font-size:14px}
.acct-forgot[hidden]{display:none}
.acct-keybox{display:flex;flex-direction:column;gap:10px}
.acct-keybox[hidden]{display:none}
.acct-key{font-size:21px;font-weight:700;padding:16px 10px;background:var(--card);border:1px dashed var(--accent);border-radius:12px;white-space:nowrap;user-select:all;-webkit-user-select:all;line-height:1.5}
#acct-form[hidden]{display:none}
.acct-fine[hidden]{display:none}
html[data-theme="dark"] .acct-warn{color:#f5c26b;background:rgba(245,194,107,.08);border-color:rgba(245,194,107,.25)}
.lock-logo img{border-radius:14px;box-shadow:var(--shadow)}
.lock h2,.acct h2{font-family:"MB Serif",Georgia,serif;font-weight:400;font-size:26px}
.wide+.list{margin-top:12px}
.logrow .sub{white-space:normal}

/* ---- v2: net worth ---- */
.nw-change{margin:2px 0 0;font-weight:750;font-size:15px}
.nw-change.up{color:var(--up)} .nw-change.down{color:var(--down)}
.big.down{color:var(--down)}
.mix{padding:14px 16px}
.mix-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--track);gap:2px}
.mix-bar span{display:block;height:100%;min-width:3px}
.mix-leg{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-top:12px;font-size:14px}
.leg{display:flex;align-items:center;gap:7px;min-width:0}
.leg i,.grp-head i{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
.leg-n{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.leg-p{font-weight:750;font-variant-numeric:tabular-nums}
.grp-head{display:flex;justify-content:space-between;align-items:center;margin:10px 4px 0;font-size:13px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--label)}
.grp-head:first-child{margin-top:0}
.grp-head span{display:flex;align-items:center;gap:8px}
.grp-head b{font-size:15px;letter-spacing:0;color:var(--text);font-variant-numeric:tabular-nums}
.row.asset .amt,.row.snap .amt{color:var(--text);font-size:18px;font-weight:800}
.row.asset{cursor:pointer}
.row.snap .amt.neg{color:var(--down)}
.x-btn{border:0;background:var(--card2);color:var(--muted);width:36px;height:36px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;flex:none}
.debt-sum{display:grid;grid-template-columns:1.2fr 1.2fr .7fr;gap:10px;margin-top:0}
.debt-sort{margin-top:12px}
.nw-chart-card{margin-top:0;padding:14px 12px 10px}
.nw-svg{display:block;width:100%;height:150px;overflow:visible}
.chart-x{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin-top:6px;font-variant-numeric:tabular-nums}
.chart-empty{margin:18px 6px;text-align:center}
.nw-auto{margin:8px 4px 0}
.nw-mini{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}
.nw-mini>span:first-child{display:flex;flex-direction:column;flex:none}
.nw-mini #h-nw-sub{flex:1;text-align:right;min-width:0}
.nw-mini .chev{font-size:26px;color:var(--muted);line-height:1}
.fld-btn{display:block;margin:6px 0 0;padding:6px 0}
.row.snap .sub{white-space:normal}
.leg-n{white-space:normal}

/* ---- v2: net income history ---- */
.ni-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.ni-avg{margin:0;font-weight:750}
.ni-avg.up{color:var(--up)} .ni-avg.down{color:var(--down)}
.ni-svg{display:block;width:100%;height:auto;margin-top:10px}
.ni-lbl{font-size:11px;fill:var(--muted);font-weight:700;font-family:inherit}
.ni-lbl.on{fill:var(--accent)}
.ni-list{margin-top:10px;display:flex;flex-direction:column}
.ni-row{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:6px;align-items:center;padding:9px 6px;border:0;border-top:1px solid var(--line);background:none;text-align:right;font-size:15px;font-variant-numeric:tabular-nums;cursor:pointer;width:100%;color:inherit;border-radius:0}
.ni-row span:first-child{text-align:left;font-weight:700}
.ni-row b{font-weight:800}
.ni-row b.up{color:var(--up)} .ni-row b.down{color:var(--down)}
.ni-row.on{background:var(--card2);border-radius:10px}
.ni-head{cursor:default;border-top:0;font-size:11.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--label);padding-top:2px}
.ni-so{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);display:block}
.ni-more{display:block;margin:8px auto 0}
.ni-svg{height:120px}
.nw-svg{height:150px}

/* v4: undo new month */
.undo-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-color:var(--down)}
.undo-card p{margin:0;flex:1;font-size:15px;line-height:1.35;color:var(--text)}
.undo-card button.ghost{flex:none;padding:11px 14px;color:var(--down);border-color:var(--down);white-space:nowrap}

/* v5 Maaser tab */
.big.amber{color:var(--amber)}
.big.mdone{font-size:40px}
.mstat-line{margin:6px 0 0;font-size:16px;font-weight:750;color:var(--amber)}
.mcards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mcards .card{margin-top:14px;min-width:0;padding:14px}
.mc-tm{margin:8px 0 2px;font-size:13px;font-weight:700;color:var(--muted)}
.mc-l{margin:2px 0 0;font-size:15px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-l b{color:var(--text);font-weight:800;font-variant-numeric:tabular-nums;font-size:17px}
.mc-bal{margin:10px 0 0;padding-top:9px;border-top:1px solid var(--line);font-size:13.5px;font-weight:750}
.mc-bal.ok{color:var(--up)}.mc-bal.owe{color:var(--amber)}
@media (max-width:359px){.mcards{grid-template-columns:1fr;gap:0}}
.mdetails{padding:0 16px}
.mdetails summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 0;cursor:pointer;font-weight:750;font-size:16px}
.mdetails summary::-webkit-details-marker{display:none}
.mdetails summary svg{color:var(--muted);transition:transform .2s}
.mdetails[open] summary svg{transform:rotate(180deg)}
.mdetails .tgrid{padding-bottom:14px}
.log-mhead{margin:10px 2px 0;font-size:14.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.log-mhead:first-child{margin-top:0}
.log-mhead b{color:var(--text);font-weight:800}

/* v7: Google Sheet card */
.gsx-pill{font-family:"MB Sans",sans-serif;font-size:13px;font-weight:700;color:var(--muted);background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:3px 10px;vertical-align:middle;margin-left:6px;white-space:nowrap}
.gsx-pill.on{color:var(--up);border-color:transparent;background:rgba(28,125,82,.12)}
.gsx-steps{margin:10px 0 4px;padding-left:22px;font-size:15px;line-height:1.5}
.gsx-steps li{margin:0 0 8px}
.gsx-btn{margin-top:6px;padding:8px 14px;font-size:15px;border-radius:10px}
.gsx-warn{margin-top:2px}
.gsx-url{font-weight:500;font-size:13px;color:var(--muted);word-break:break-all}
.gsx-switch{display:flex;align-items:center;gap:12px;margin-top:16px;cursor:pointer;font-size:16px;font-weight:650;color:var(--text)}
.gsx-switch input{position:absolute;opacity:0;width:1px;height:1px}
.gsx-track{flex:none;width:50px;height:30px;border-radius:999px;background:var(--line);position:relative;transition:background .2s}
.gsx-track::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.gsx-switch input:checked+.gsx-track{background:var(--up)}
.gsx-switch input:checked+.gsx-track::after{transform:translateX(20px)}
.gsx-switch input:focus-visible+.gsx-track{outline:2px solid var(--accent);outline-offset:2px}
.gsx-lbl small{display:block;font-size:13px;font-weight:500;color:var(--muted)}
.gsx-status{margin-top:12px}
.gsx-note{margin:6px 0 0;padding:9px 12px;border-radius:12px;font-size:14px;background:var(--card2);color:var(--muted)}
.gsx-note.ok{color:var(--up)}
.gsx-note.calm{background:var(--amber-soft);color:var(--amber)}
.gsx-msg{margin:10px 0 0;font-size:14px;color:var(--muted)}
.gsx-msg.ok{color:var(--up)}.gsx-msg.bad{color:var(--amber)}
.gsx-msg[hidden],.gsx-note[hidden],#gsx-on[hidden],#gsx-off[hidden]{display:none}
.gsx-tok{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.gsx-tok>span{flex-basis:100%}
.gsx-tokv{flex:1 1 180px;min-width:0;font:13px/1.35 ui-monospace,Menlo,monospace;word-break:break-all;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text)}
.gsx-tok .gsx-btn{margin-top:0}
.gsx-codebox{margin-top:10px}
.gsx-codebox summary{cursor:pointer;color:var(--accent);font-weight:650;font-size:15px;padding:6px 0}
.gsx-code{width:100%;box-sizing:border-box;margin-top:6px;font:12px/1.35 ui-monospace,Menlo,monospace;background:var(--card2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px;resize:vertical}

/* v8: fingerprint + daily reminder */
.lock-bio{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;padding:10px 18px;font-size:16px;border-radius:999px}
.lock-bio[hidden]{display:none}
.ntf-time{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.ntf-time label{font-weight:650;color:var(--text)}
.ntf-time input{font:inherit;font-size:16px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--text);min-width:0}
.ntf-time .gsx-btn{margin:0 0 0 auto}
#bio-row[hidden],#ntf-row[hidden]{display:none}

/* v9: Monthly / One-time choice in the bill form */
.fld-seg{margin-top:2px}
.fld-seg button{font-size:16px;padding:11px 12px}
.tag.tag-sub{margin:0 6px 0 0;vertical-align:1px}

/* ---- School Invoices ---- */
html[data-theme="light"]{--accent:#3d4fd6;--blue-glow:0 6px 16px -6px rgba(61,79,214,.5);--bg:#eceef6;
  --bg-paint:radial-gradient(85% 38% at 0% 0%, #e2e4f7 0%, rgba(226,228,247,0) 70%), radial-gradient(70% 30% at 100% 0%, #e4eef3 0%, rgba(228,238,243,0) 70%), linear-gradient(180deg,#e8ebf5 0px,#eceef6 520px)}
html[data-theme="dark"]{--accent:#5b6cff;--blue-glow:0 6px 18px -6px rgba(91,108,255,.6)}
textarea{width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:17px;color:var(--text);font-weight:500;resize:vertical}
.fld textarea:focus,.fld select:focus{border-color:var(--accent);outline:none}
.fld select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
.opt{font-weight:500;color:var(--muted);font-size:12.5px}
.hero .heb{font-size:42px}
.act-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.act-row button{min-height:54px;font-size:17px}
.stat .mid{font-size:24px}
.search input{width:100%;margin-top:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:17px;color:var(--text)}
.search input:focus{outline:none;border-color:var(--accent)}
.f-sum{margin:8px 2px 10px}
.row{cursor:pointer}
.row .av{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--card2);font-weight:800;color:var(--accent);font-size:17px}
.row.off{opacity:.55}
.st{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 8px;border-radius:7px;margin-top:4px}
.st.draft{background:var(--amber-soft);color:var(--amber)}
.st.sent{background:rgba(61,79,214,.12);color:var(--accent)}
html[data-theme="dark"] .st.sent{background:rgba(91,108,255,.18)}
.st.paid{background:var(--g-soft);color:var(--up)}
.grp{margin:18px 4px 6px;font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--label)}
.callout{margin-top:14px;padding:14px;border-radius:18px;background:var(--amber-soft);color:var(--text);border:1px solid var(--hairline)}
.callout b{color:var(--amber)}
.callout .btn-row{margin-top:10px}
.callout.blue{background:rgba(61,79,214,.09)}
.callout.blue b{color:var(--accent)}
.sheet-card .sub-h{margin:18px 0 0;font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--label)}
.kid{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:4px 12px 12px;margin-top:10px;position:relative}
.kid .x-btn{position:absolute;top:8px;right:8px}
.kid .fld:first-child{margin-right:44px}
.kid .fld.chk{margin-top:12px}
.line{display:grid;grid-template-columns:1fr 104px 36px;gap:8px;align-items:end;margin-top:8px}
.line input{width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 10px;font-size:17px;color:var(--text);font-weight:600}
.line input:focus{outline:none;border-color:var(--accent)}
.line .x-btn{margin-bottom:6px}
.tot-row{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--card2);font-weight:800;font-size:19px}
.mini-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.mini-row button{flex:1 1 auto}
button.small-btn{padding:10px 14px;font-size:15px}
.view-card h2{margin-bottom:4px}
.inv-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.inv-lines{margin-top:14px;border-top:1px solid var(--line)}
.inv-lines div{display:flex;justify-content:space-between;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:16.5px}
.inv-lines div span:last-child{font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.inv-lines div.total{border-bottom:0;font-size:20px;font-weight:800}
.send-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.send-grid button{min-height:56px;font-size:17px}
.send-grid .full{grid-column:1/-1}
.stat-seg{margin-top:16px}
.paid-on{margin-top:8px}
.logo-row{display:flex;gap:14px;align-items:center;margin-top:14px}
.logo-prev{width:84px;height:84px;border-radius:16px;border:1px dashed var(--line);display:grid;place-items:center;font-size:12px;color:var(--muted);background:var(--card2);overflow:hidden;flex:none}
.logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
.logo-btns{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.flow{position:fixed;inset:0;z-index:75;background:var(--bg-paint) no-repeat,var(--bg);overflow-y:auto}
.flow-in{max-width:560px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 18px) 18px calc(24px + env(safe-area-inset-bottom))}
.flow-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.flow-step{font-weight:800;color:var(--label);letter-spacing:1px;text-transform:uppercase;font-size:13px}
.flow .bar{margin-top:10px}
.flow-card{margin-top:16px}
.flow-card .fam{margin:0;font-family:"MB Serif",Georgia,serif;font-weight:400;font-size:30px;line-height:1.15}
.flow-card .big{font-size:44px}
.flow-done{text-align:center;padding:40px 10px}
.flow-done .big{font-size:56px}
.warn-t{color:var(--down);font-weight:700}
.ok-line{color:var(--up);font-weight:700}
.bal-row .amt{color:var(--down)}
@media (max-width:360px){.act-row{grid-template-columns:1fr}.send-grid{grid-template-columns:1fr}}
.hero{position:relative}.h-logo{position:absolute;top:14px;right:14px;width:64px;height:64px;border-radius:14px;object-fit:contain;background:#fff;border:1px solid var(--hairline)}
.hero .heb{padding-right:70px}
.inv-logo{width:64px;height:64px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--hairline);flex:none}

/* ---- v2: parents and sons, Hebrew, family card ---- */
.fld textarea{width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:17px;color:var(--text);font-weight:600;resize:vertical}
.fld input[dir=rtl]{text-align:right}
.kid .hint{margin:4px 0 0}
.seg.cls-seg{margin:10px 0 0;overflow-x:auto;scrollbar-width:none}
.seg.cls-seg::-webkit-scrollbar{display:none}
.seg.cls-seg button{flex:1 0 auto;white-space:nowrap}
.seg .n{font-weight:650;opacity:.8;font-variant-numeric:tabular-nums}
.kid-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.kid-chips:empty{display:none}
.kid-chip{font-size:14px;font-weight:650;background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:2px 9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cls-tag{font-size:11.5px;font-weight:800;letter-spacing:.3px;color:var(--accent);text-transform:uppercase;margin-left:2px}
.fam-row .amt{align-self:flex-start;padding-top:2px}
.fc-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.fc-head h2{margin:0;font-family:"MB Serif",Georgia,serif;font-weight:400;font-size:26px;line-height:1.15}
.big-av{flex:0 0 52px;width:52px;height:52px;font-size:19px}
.call-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 12px}
.call-grid .btn{display:flex;align-items:center;justify-content:center;gap:6px;min-height:50px;border-radius:14px;font-weight:750;font-size:16px;text-decoration:none;background:var(--accent);color:#fff}
.call-grid .btn.mail{background:var(--card2);color:var(--text);border:1px solid var(--line)}
.call-grid .btn.call::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center/contain no-repeat}
.fc-box{background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:4px 12px;margin-bottom:10px}
.fc-row{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:16px}
.fc-row:last-child,.fc-kid:last-child{border-bottom:0}
.fc-k{flex:0 0 74px;color:var(--muted);font-weight:700;font-size:14px;padding-top:1px}
.fc-v{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-weight:650;overflow-wrap:anywhere}
.fc-v .muted{font-weight:600}
.he{font-weight:650}
.pre{white-space:pre-line}
.link-sm{color:var(--accent);font-weight:700;font-size:14px;text-decoration:none;align-self:flex-start}
.fc-kid{padding:10px 0;border-bottom:1px solid var(--line)}
.fc-kname{font-weight:750;font-size:17px}
.fc-kid .sub{font-size:14px;color:var(--muted);margin-top:2px}

.kid-top{display:flex;align-items:center;justify-content:space-between;padding-top:8px}
.kid-lbl{font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.kid .kid-top .x-btn{position:static;margin:0}
.two{align-items:end}
.hdob{display:grid;grid-template-columns:1fr;gap:8px}
.kid .two .fld:first-child{margin-right:0}
.fc-head .av{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--card2);font-weight:800;color:var(--accent);font-size:19px}
.kid-chip{white-space:normal}
.fc-v .he{align-self:flex-start}

/* ---- v3: payments, per-line picker, invoice money ---- */
.st.part{background:var(--amber-soft);color:var(--amber);margin-left:4px}
.row .sub.owe{color:var(--down);font-weight:700}
.row .sub.cred,.cred-t{color:var(--up);font-weight:700}
button.big-btn{display:block;width:100%;min-height:56px;font-size:18px;margin-top:14px}
button.wide-btn{display:block;width:100%;min-height:52px;font-size:17px;margin-top:14px}
.bal-box{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin:2px 0 12px}
.bal-box .mid{margin:2px 0 0;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}
.bal-box .mid.down{color:var(--down)}
.bal-box button{flex:none;min-height:50px}
.line{grid-template-columns:1fr 104px 36px;row-gap:6px}
.line input.lsub{grid-column:1/3;font-size:15px;font-weight:500;padding:9px 10px;color:var(--muted)}
.inv-lines div span:first-child{min-width:0}
.inv-lines div span b{font-weight:750}
.inv-lines div small{display:block;font-size:13.5px;color:var(--muted);font-weight:500;margin-top:2px}
.inv-lines i{font-style:normal;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:1px 6px;border-radius:6px;margin-left:6px;vertical-align:2px}
.inv-lines i.ln-paid{background:var(--g-soft);color:var(--up)}
.inv-lines i.ln-part{background:var(--amber-soft);color:var(--amber)}
.inv-lines div.pay-ln{font-size:15px;color:var(--muted);padding:8px 2px}
.inv-lines div.pay-ln span:last-child{font-weight:650}
.inv-lines div.total.due-t{border-top:2px solid var(--line);border-bottom:0}
.pay-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.pay-row:last-child{border-bottom:0}
.pay-row .main{flex:1;min-width:0}
.pay-row .pay-top{font-size:16.5px}
.pay-row .pay-top b{font-variant-numeric:tabular-nums}
.pay-row .sub{font-size:13.5px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.p-lines{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.pl-row{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:10px;align-items:center;background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.pl-txt b{display:block;font-size:16px}
.pl-txt small{display:block;font-size:13px;color:var(--muted);margin-top:1px;overflow-wrap:anywhere}
.pl-in{display:flex;flex-direction:column;gap:4px;align-items:stretch}
.pl-in input[name="pa"]{width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:17px;font-weight:650;color:var(--text);text-align:right}
.pl-in input[name="pa"]:focus{outline:none;border-color:var(--accent)}
.pl-full{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:14px;font-weight:700;color:var(--muted)}
.pl-full input{width:20px;height:20px}
.tot-row.applied{font-size:17px}
.tot-row.applied.ok{background:var(--g-soft);color:var(--up)}
.tot-row.applied.over{background:var(--r-soft);color:var(--down)}

/* v4: Hebrew month next to the English one */
.hm-he{unicode-bidi:isolate;text-transform:none;letter-spacing:0;font-weight:650;margin-inline-start:6px;white-space:nowrap}
.grp .hm-he{font-size:14px;color:var(--label)}
.hero .hm-he{display:block;margin:2px 0 0;font-size:28px;font-weight:600;letter-spacing:0;text-align:left}
.small-links{margin:6px 0 0;text-align:center}
.small-links .link-btn{margin:0;padding:6px 8px;font-size:14px}

/* v5: backup file */
body.bk-open #app,body.bk-open .tabbar{visibility:hidden}
.bk-open{overflow:hidden}
.bk{z-index:65}
.bk-last{margin:2px 0 12px;font-size:15px;font-weight:600}
.bk-last.old{color:#a35b00}
[data-theme=dark] .bk-last.old{color:#f5c26b}
.bk-csv{margin-top:14px}
.bk-preview{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.bk-preview[hidden],.bk-mode[hidden],.bk-ready[hidden]{display:none}
.bk-preview .lbl{margin:0 0 4px}
.bk-counts{list-style:none;margin:0;padding:0}
.bk-counts li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--text)}
.bk-counts li:last-child{border-bottom:0}
.bk-counts li span{color:var(--muted)}
.bk-mode{border:0;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.bk-mode legend{font-size:13px;color:var(--muted);margin-bottom:6px;padding:0}
.bk-opt{flex-direction:row!important;align-items:flex-start;gap:10px!important;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;color:var(--text)!important;font-size:15px!important;cursor:pointer}
.bk-opt input{width:auto!important;padding:0!important;margin:3px 0 0;accent-color:var(--accent);flex:none}
.bk-opt small{display:block;color:var(--muted);font-size:13px;margin-top:3px;line-height:1.35}
.bk-opt:has(input:checked){border-color:var(--accent)}
.bk-ready{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.form-msg.ok{color:var(--muted)}
.bk-nudge{margin-bottom:12px}

/* ---------- v6: family account page ---------- */
#view.fa-on{align-items:stretch}
.view-card.fa{max-width:760px;max-height:none;height:100%;border-radius:0;padding:0;display:flex;flex-direction:column;overflow-y:auto;background:var(--bg)}
@media (min-width:700px){#view.fa-on{align-items:center;padding:20px}.view-card.fa{height:auto;max-height:calc(100vh - 40px);border-radius:24px}}
.fa-head{padding:calc(env(safe-area-inset-top) + 10px) 16px 6px;background:var(--bg-paint) no-repeat,var(--bg)}
.fa-bar{display:flex;justify-content:space-between;align-items:center}
.fa-bar .link-btn{margin:0;padding:8px 4px;font-size:16px}
.fa-back{border:0;background:none;color:var(--accent);font-weight:750;font-size:16px;padding:8px 0;cursor:pointer}
.fa-id{display:flex;gap:12px;align-items:flex-start;margin-top:6px}
.fa-id .av{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--card);font-weight:800;color:var(--accent);font-size:19px;box-shadow:var(--shadow)}
.fa-names{min-width:0;flex:1}
.view-card.fa .fa-names h2{margin:0;font-family:"MB Serif",Georgia,serif;font-weight:400;font-size:26px;line-height:1.15;overflow-wrap:anywhere}
.fa-he{margin:2px 0 0;font-size:19px;font-weight:650;text-align:left}
.fa-contact{margin:4px 0 0;font-size:14.5px;color:var(--muted);overflow-wrap:anywhere}
.fa-contact a{color:var(--accent);text-decoration:none;font-weight:700}
.fa-balbox{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:12px;background:var(--card);border:1px solid var(--hairline);border-radius:20px;box-shadow:var(--shadow);padding:14px 14px 14px 16px;flex-wrap:wrap}
.fa-big{margin:2px 0 0;font-family:"MB Serif",Georgia,serif;font-weight:350;font-size:40px;line-height:1.05;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.fa-big.down{color:var(--down)}
.fa-acts{display:flex;gap:8px;flex-wrap:wrap}
.fa-acts button{padding:11px 14px;font-size:15.5px}
.fa-tabs{position:sticky;top:0;z-index:3;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line)}
.fa-tabs::-webkit-scrollbar{display:none}
.fa-tabs button{flex:none;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:8px 14px;font-weight:750;font-size:15px;cursor:pointer;white-space:nowrap}
.fa-tabs button[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--blue-glow)}
.fa-body{flex:1;padding:12px 16px 18px}
.fa-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px}
.fa-tools .small{margin:0}
button.sm{padding:8px 13px;font-size:14.5px;border-radius:12px}
.empty-s{padding:18px 4px;text-align:center}
.fa-sum{position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;background:var(--card);border-top:1px solid var(--line);padding:9px 8px calc(9px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px -12px rgba(31,42,68,.25)}
.fa-sum div{display:flex;flex-direction:column;align-items:center;min-width:0;text-align:center}
.fa-sum span{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--label);white-space:nowrap}
.fa-sum b{font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:1px}
.fa-sum div:last-child b{color:var(--accent);font-size:14.5px}
.tag.cr{background:rgba(42,98,253,.12);color:var(--accent);margin-left:0;text-transform:none;letter-spacing:0;font-size:12.5px;padding:2px 8px}
/* charges */
.ch-list{display:flex;flex-direction:column;gap:8px}
.ch-row{background:var(--card);border:1px solid var(--hairline);border-radius:14px;box-shadow:var(--shadow);padding:10px 12px;cursor:pointer}
.ch-top,.ch-bot{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ch-top b{font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-amt{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.ch-bot{margin-top:3px;font-size:13px;color:var(--muted)}
.ch-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-meta .tag{margin-left:0;vertical-align:1px}
.ch-po{white-space:nowrap;font-variant-numeric:tabular-nums}
.ch-po b.up{color:var(--up)}.ch-po b.down{color:var(--down)}
.ch-row.done .ch-top b{color:var(--muted)}
.ch-tot{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--card2);font-weight:750;font-size:14px;font-variant-numeric:tabular-nums}
.ch-tot span:nth-child(2){text-align:right}
/* statement */
.st-table{background:var(--card);border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.st-h,.st-r,.st-end{display:grid;grid-template-columns:54px minmax(0,1fr) 82px 82px;gap:8px;align-items:baseline;padding:9px 12px}
.st-h{background:var(--card2);font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--label)}
.st-r{border-top:1px solid var(--line);font-size:14px}
.st-d{color:var(--muted);font-size:13px;white-space:nowrap}
.st-x{overflow-wrap:anywhere}
.st-a,.st-b,.st-h span:nth-child(3),.st-h span:nth-child(4){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.st-r.pay .st-a{color:var(--up)}
.st-b{font-weight:750}
.st-end{grid-template-columns:1fr auto;border-top:2px solid var(--line);font-weight:800;font-size:16px;background:var(--card2)}
.st-end span:last-child{text-align:right;font-variant-numeric:tabular-nums}
/* notes */
.note-add textarea{width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:16px;color:var(--text);resize:vertical}
.note-add textarea:focus{outline:none;border-color:var(--accent)}
.note-add-row{display:flex;gap:8px;margin-top:8px}
.note-add-row input{flex:1;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 10px;font-size:15px;color:var(--text)}
.note-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.note-row{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--hairline);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow)}
.note-main{flex:1;min-width:0}
.note-d{font-size:12.5px;font-weight:800;color:var(--label);text-transform:uppercase;letter-spacing:.5px}
.note-main p{margin:3px 0 0;font-size:15.5px;overflow-wrap:anywhere}
.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 12px;font-weight:700;font-size:14px;cursor:pointer;color:var(--text)}
.view-card.fa>*{flex-shrink:0}

/* ---------- v6.1: Families owing in More ---------- */
.menu-go{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;font:inherit;color:inherit;border:1px solid var(--hairline);min-height:64px}
.menu-go .mg-txt{display:flex;flex-direction:column;gap:2px}
.menu-go .mg-name{font-weight:750;font-size:17px}
.menu-go .mg-arr{font-size:26px;color:var(--accent);line-height:1}
.ow-title{margin:6px 0 2px;font-family:"MB Serif",Georgia,serif;font-weight:400;font-size:26px}
.ow-body{padding:10px 16px calc(18px + env(safe-area-inset-bottom))}

/* v7: contracts + reports */
.ct-its{display:grid;gap:2px;margin:6px 0 4px}
.ct-it{display:flex;justify-content:space-between;gap:10px;font-size:14.5px}
.ct-it.none{color:var(--muted)}
.ct-a,.ch-amt{font-variant-numeric:tabular-nums}
.ct-it .ct-a{font-weight:750}
small.per{font-size:11.5px;font-weight:650;color:var(--muted);margin-left:1px}
.ct-span{white-space:normal}
.ct-span .hm-he{margin-left:3px}
.ct-acts{display:flex;justify-content:flex-start;gap:8px;margin:10px 0 2px}
.ct-help{margin:10px 2px 0;line-height:1.45}
.ch-row.disc{border-style:dashed}
.ct-note{margin-top:-4px}
.ct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 12px}
.it-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.it-row{display:grid;grid-template-columns:minmax(0,1fr) 112px 34px;gap:8px;align-items:center}
.it-row input,.it-row select{margin:0}
.rep-seg{margin:12px 0 4px}
.rep-seg button{padding:9px 6px;font-size:14.5px}
.rep-ctl{margin:4px 0 10px}
.rep-t .st-h,.rep-t .st-r{grid-template-columns:minmax(0,1fr) 84px 84px 84px}
.rep-t .st-h span:not(:first-child){text-align:right}
.rep-t .st-a{text-align:right;font-variant-numeric:tabular-nums}
.rep-t .st-r.zero{color:var(--muted)}
.rep-t .st-r.cur{background:var(--card2)}
.rep-t .rep-tot{border-top:2px solid var(--line);font-weight:800;background:var(--card2)}
.rep-methods .fc-v{display:flex;justify-content:space-between;gap:10px;width:100%}
.rep-methods .rep-gt{border-top:2px solid var(--line);font-weight:800}
.rep-pays{margin-top:12px}
.rep-gt2{grid-template-columns:1fr auto auto auto}
.rep-acts{margin-top:14px}
@media (max-width:380px){.rep-t .st-h,.rep-t .st-r{grid-template-columns:minmax(0,1fr) 72px 72px 72px;font-size:13px}}
.m-go{display:block}
.fold-h{display:flex;width:100%;align-items:center;justify-content:space-between;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.fold-h h2{margin:0}
.fold-arr{font-size:22px;color:var(--muted);transition:transform .15s}
.fold.open .fold-arr{transform:rotate(90deg)}
.fold-b{margin-top:12px}

/* ---------- v8: parents' online registration page (/register/<token>) — Yiddish, right to left ---------- */
body.rg{padding-bottom:28px}
.rg-main{max-width:640px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 16px) 16px 24px}
.rg-head{display:flex;align-items:center;gap:14px;padding:6px 2px 2px}
.rg-logo{width:76px;height:76px;object-fit:contain;border-radius:16px;background:#fff;flex:none;box-shadow:var(--shadow)}
.rg-titles{min-width:0}
.rg-school{margin:0;font-weight:750;font-size:15px;color:var(--muted)}
.rg-h1{margin:2px 0 0;font-family:"MB Serif",serif;font-size:28px;font-weight:650;line-height:1.15}
.rg-en{margin:2px 0 0;font-size:14px;color:var(--label);text-align:right}
.rg-lock{margin:14px 2px 0;font-size:13.5px;color:var(--muted);text-align:left;line-height:1.35}
.rg-sec{padding:16px 16px 18px}
.rg-sh{margin:0 0 2px;font-family:"MB Serif",serif;font-size:21px;font-weight:650;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.rg-sh-en{font-family:"MB Sans",sans-serif;font-size:13px;font-weight:700;color:var(--label);letter-spacing:.2px}
.rg-sub+.rg-sub{margin-top:14px;padding-top:4px;border-top:1px dashed var(--line)}
.rg-f{margin-top:14px}
.rg-lbl{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}
.rg-he{font-size:17px;font-weight:700;color:var(--text);line-height:1.3}
.rg-help{font-size:12.5px;font-weight:600;color:var(--label);text-align:right}
.rg-req{color:var(--down);font-weight:800}
.rg-f input[type=text],.rg-f input[type=tel],.rg-f input[type=email],.rg-f input[type=date]{width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:18px;color:var(--text);font-weight:600;min-height:48px}
.rg-f input[type=date]{text-align:left;-webkit-appearance:none;appearance:none}
.rg-f input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(42,98,253,.14)}
.rg-yn{display:flex;gap:10px}
.rg-yn-o{flex:1;position:relative;cursor:pointer}
.rg-yn-o input{position:absolute;opacity:0;width:1px;height:1px}
.rg-yn-o span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-weight:750;font-size:17px}
.rg-yn-o small{font-size:12px;color:var(--label);font-weight:700}
.rg-yn-o input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--blue-glow)}
.rg-yn-o input:checked+span small{color:rgba(255,255,255,.85)}
.rg-yn-o input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.rg-yr{display:flex;align-items:center;gap:8px}
.rg-yr-p{font-size:20px;font-weight:700}
.rg-yr input{max-width:90px}
.rg-msg{color:var(--down);font-weight:700;font-size:15px;min-height:1em;margin:14px 4px 0}
.rg-send{width:100%;margin-top:10px;font-size:19px;padding:15px 18px;display:flex;align-items:center;justify-content:center;gap:10px}
.rg-send.busy{opacity:.65}
.rg-btn-en{font-size:14px;font-weight:700;opacity:.85}
.rg-note{text-align:center;padding:24px 18px}
.rg-note h2{margin:0 0 8px;font-family:"MB Serif",serif;font-size:22px}
.rg-done .rg-check{width:62px;height:62px;border-radius:50%;margin:0 auto 12px;background:var(--g-soft);color:var(--g);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800}
.rg-done button{margin-top:12px}
/* ---------- v8: in-app registration list + link card ---------- */
.reg-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--down);color:#fff;font-size:13px;font-weight:800;margin-inline-start:6px;vertical-align:2px}
.tb-btn{position:relative}
.tb-dot{position:absolute;top:4px;left:calc(50% + 8px);min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--down);color:#fff;font-size:11px;font-weight:800;line-height:18px;text-align:center}
.rl-link{display:flex;gap:8px;align-items:center;margin-top:12px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px;font-weight:650;word-break:break-all}
.rl-link code{flex:1;font-family:inherit;color:var(--text)}
.rl-off{opacity:.55}
.nr-row{display:flex;align-items:center;gap:12px;width:100%;text-align:inherit;font:inherit;color:inherit;background:var(--card);border:1px solid var(--hairline);border-radius:18px;padding:14px;margin-top:10px;box-shadow:var(--shadow);cursor:pointer}
.nr-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nr-name{font-weight:750;font-size:17px}
.nr-r{cursor:pointer}
.nr-r .nr-arr{font-size:26px;color:var(--accent);font-weight:500}
.nr-sec{margin-top:16px}
.nr-sec h3{margin:0 0 4px;font-size:15px;font-weight:800;color:var(--label)}
.nr-kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:4px 12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.nr-kv .k{color:var(--muted);font-weight:650}
.nr-kv .v{font-weight:700;word-break:break-word}
.nr-acts{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.nr-acts button{width:100%}
.nr-err{color:var(--down)}
.yel-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.yel-row select{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 10px;font-weight:700;color:var(--text)}
.yel-row .lbl{font-weight:750;font-size:15px;flex:1}
.rep-seg{flex-wrap:wrap}

/* ---------- v9: students ---------- */
.m-sec{margin:22px 4px -4px;font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--label)}
.ph{position:relative;flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--card2);color:var(--accent);font-weight:800;font-size:16px}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph img[hidden],.ph .ph-ini[hidden]{display:none}
.kp-ph{width:88px;height:88px;font-size:28px;box-shadow:0 0 0 3px var(--card),0 0 0 4px var(--line)}
.kp-id{display:flex;gap:14px;align-items:center;margin-top:6px}
.kp-phbtns{display:flex;align-items:center;gap:6px;margin:10px 0 4px}
.kp-phbtns .danger-txt{display:inline-block;margin:0}
.kp-allergy{display:flex;flex-direction:column;gap:2px;background:var(--r-soft);border:1px solid var(--r);color:var(--down);border-radius:14px;padding:11px 14px;margin:4px 0 12px;font-weight:700}
.kp-allergy b{font-size:12.5px;letter-spacing:.8px;text-transform:uppercase}
.kp-allergy span{font-size:17px;color:var(--down)}
.kp-call{color:var(--accent);font-weight:750;text-decoration:none;white-space:nowrap}
.kp-call::before{content:"\260E\FE0E  ";font-size:.9em}
.kp-h{margin:18px 0 0;font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--label)}
.kp-h .opt{text-transform:none;letter-spacing:0;font-weight:650}
.kp-body .fc-box{margin-top:6px}
.att-tot{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}
.att-tot div{background:var(--card);border:1px solid var(--hairline);border-radius:14px;padding:9px 6px;text-align:center;display:flex;flex-direction:column}
.att-tot b{font-size:22px;font-variant-numeric:tabular-nums;color:var(--up)}
.att-tot .a b{color:var(--down)} .att-tot .l b{color:var(--amber)} .att-tot div:last-child b{color:var(--text)}
.att-tot span{font-size:12.5px;color:var(--muted);font-weight:700}
.att-h .fc-v{flex-direction:row;flex-wrap:wrap;gap:8px;align-items:baseline}
.att-st{font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:2px 8px;border-radius:6px}
.att-st.st-P{background:var(--g-soft);color:var(--up)} .att-st.st-A{background:var(--r-soft);color:var(--down)} .att-st.st-L{background:var(--amber-soft);color:var(--amber)}
.al-chip{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:2px 7px;border-radius:6px;background:var(--r-soft);color:var(--down);vertical-align:2px;margin-left:4px}
.kid-tap{display:flex;align-items:center;gap:12px;cursor:pointer}
.kid-tap .fk-main{flex:1;min-width:0}
.kid-tap .mg-arr{color:var(--muted);font-size:22px}
.kid-hint{margin:2px 2px 8px}
.dir-row{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--hairline);border-radius:18px;box-shadow:var(--shadow);padding:12px 14px}
.dir-row .main{flex:1;min-width:0}
.dir-row .name{font-weight:750;font-size:17px;margin-bottom:3px}
.dir-par{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:2px 8px;align-items:baseline;font-size:15px;font-weight:600;padding:3px 0}
.dir-par .muted{font-size:13px}
.dir-par .kp-call{justify-self:end}
.dir-ctl input[type=search]{font-size:17px}
.att-sum{margin:6px 2px 4px}
.att-saved{color:var(--up);font-weight:750}
.att-list{display:flex;flex-direction:column;gap:8px}
.att-row{background:var(--card);border:1px solid var(--hairline);border-radius:18px;box-shadow:var(--shadow);padding:10px 12px}
.att-top{display:flex;align-items:center;gap:10px}
.att-top .main{flex:1;min-width:0}
.att-top .name{font-weight:750;font-size:16px;overflow-wrap:anywhere}
.att-top .sub{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att-ph{width:38px;height:38px;font-size:14px}
.att-seg{display:flex;background:var(--track);border-radius:12px;padding:3px;gap:2px;flex:none}
.att-seg button{border:0;background:transparent;border-radius:9px;padding:9px 8px;min-width:44px;font-weight:800;font-size:13px;color:var(--muted);cursor:pointer}
.att-seg button[aria-pressed="true"].st-P{background:var(--g);color:#fff}
.att-seg button[aria-pressed="true"].st-A{background:var(--r);color:#fff}
.att-seg button[aria-pressed="true"].st-L{background:var(--amber);color:#fff}
.att-note{width:100%;margin-top:8px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:15px;color:var(--text)}
.att-note[hidden]{display:none}
.att-addnote{margin:2px 0 0;padding:4px 2px;font-size:13.5px}
.rep-seg{flex-wrap:wrap}
.rep-seg button{flex:1 1 auto}
.rep-att .st-h,.rep-att .st-r{grid-template-columns:minmax(0,1fr) 34px 34px 34px 44px}
.rep-att .st-a{text-align:right}
.bus-av{border-radius:14px;font-size:15px}
.bus-row{cursor:pointer}
.bus-row .mg-arr{color:var(--muted);font-size:22px}
.stop{background:var(--card);border:1px solid var(--hairline);border-radius:18px;box-shadow:var(--shadow);padding:12px 14px;margin-bottom:10px}
.stop-h{display:flex;gap:12px;align-items:center}
.stop-h .main{flex:1;min-width:0}
.stop-h .name{font-size:16px;font-weight:650;overflow-wrap:anywhere}
.stop-h .sub{font-size:13px;color:var(--muted);font-weight:650}
.stop-n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px}
.stop-kids{margin:10px 0 2px 42px;border-top:1px solid var(--line)}
.sk{padding:8px 0;border-bottom:1px solid var(--line)}
.sk-n{font-weight:750;font-size:15.5px}
.sk-al{color:var(--down);font-weight:700;font-size:14px;background:var(--r-soft);border-radius:8px;padding:3px 8px;margin:4px 0;display:inline-block}
.sk-ph{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;margin-top:2px}
.stop-add{margin:10px 0 0 42px}
.st-list{display:flex;flex-direction:column;gap:8px;margin:8px 0}
.st-ed{display:grid;grid-template-columns:104px minmax(0,1fr);gap:6px;background:var(--card2);border-radius:12px;padding:8px}
.st-ed input{width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:16px;color:var(--text);font-weight:600;min-width:0}
.st-mv{grid-column:1 / -1;display:flex;gap:6px;justify-content:flex-end}
.st-mv .x-btn{width:34px;height:34px;font-size:17px}
.em-row{background:var(--card2);border-radius:12px;padding:2px 10px 10px;margin-top:8px}
.em-ph{display:flex;gap:8px;align-items:flex-end}
.em-ph .fld{flex:1}
.as-list{display:flex;flex-direction:column;margin-top:8px}
.as-row{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.as-row[hidden]{display:none}
.as-row input{width:22px;height:22px;flex:none}
.as-row .main{display:flex;flex-direction:column;min-width:0}
.as-row .name{font-weight:750;color:var(--text);font-size:16px}
.as-row .sub{font-size:13px;color:var(--muted);font-weight:600}

.reg-edit-row{margin-top:10px}
.fe-status{color:var(--up);font-weight:700;min-height:1em;margin:4px 0 0}
.fe-sec{background:var(--card);border:1px solid var(--hairline);border-radius:18px;box-shadow:var(--shadow);padding:10px 12px;margin-bottom:12px}
.fe-sh{display:flex;align-items:center;gap:8px;padding:4px 0 8px;border-bottom:1px solid var(--line)}
.fe-sh .main,.fe-q .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fe-sh b{font-size:17px}
.fe-btns{display:flex;gap:4px;flex:none}
.fe-btns .x-btn{width:32px;height:32px;font-size:16px}
.fe-q{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer}
.fe-q .he{font-size:16px;overflow-wrap:anywhere}
.fe-q.fe-hid .he{opacity:.55;text-decoration:line-through}
.fe-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.fe-tags .tag{margin-left:0}
.tag.blue{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.tag.red{background:var(--r-soft);color:var(--down)}
.fe-add{margin-top:10px}
.fe-core{background:var(--amber-soft);color:var(--amber);border-radius:10px;padding:8px 10px;font-weight:650}

.rg-f select{width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:18px;color:var(--text);font-weight:600}
.rg-f.rg-miss input,.rg-f.rg-miss select,.rg-f.rg-miss .rg-yn{border-color:var(--down)!important;box-shadow:0 0 0 3px var(--r-soft)}
.rg-f.rg-miss .rg-he,.rg-f.rg-miss .rg-help{color:var(--down)}
.rg-f.rg-miss .rg-yn{border:1px solid;border-radius:12px}
.fe-star{color:var(--down);font-weight:800;margin-inline-start:4px}

/* ---------- v10: contract page, signatures ---------- */
.ct-addany{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;padding:12px 14px;border-style:dashed}
.ct-addany small{font-weight:600;color:var(--muted);font-size:12px;margin-top:2px}
.ct-acts{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.ct-acts .sm{align-self:flex-start}
.ct-for{font-weight:600;font-size:13px}
.ct-finish{width:100%;margin:14px 0 6px;padding:14px;font-size:16px}
.ct-doc{background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin:14px 0 4px}
.ct-doc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ct-doc p{margin:4px 0}
.ct-doc-acts{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px}
.ct-pill{margin-left:0;white-space:nowrap}
.ct-pill.ct-draft{background:var(--card2);color:var(--muted);border:1px solid var(--line)}
.ct-pill.ct-sent{background:rgba(42,98,253,.12);color:var(--accent)}
.ct-pill.ct-parent{background:var(--amber-soft);color:var(--amber)}
.ct-pill.ct-full{background:var(--g-soft);color:var(--up)}
.ctd-body{padding:0 16px 24px}
.ctd-dates{margin:2px 0 0}
.ctd-lock{margin:10px 0}
.ctd-yr{margin:8px 0}
.ctd-paper{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);padding:18px 16px 20px;margin:10px 0 14px;font-size:14px;overflow-wrap:anywhere}
.ctd-lh{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ctd-logo{width:72px;height:72px;object-fit:contain;border-radius:10px;background:#fff;flex:none}
.ctd-school{display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-size:12.5px;line-height:1.45;min-width:0}
.ctd-school b{font-size:14px}
.ctd-title{display:flex;align-items:center;gap:12px;margin:16px 0 6px}
.ctd-title::before,.ctd-title::after{content:"";flex:1;border-top:3px double var(--tick)}
.ctd-title span{font-family:"MB Serif",Georgia,serif;font-size:22px;border:1.5px solid var(--muted);border-radius:8px;padding:4px 18px;color:var(--muted)}
.ctd-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12.5px;margin:6px 0 4px}
.ctd-h{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--label);margin:14px 0 6px}
.ctd-box{border-top:1px dotted var(--tick)}
.ctd-r{display:flex;gap:10px;padding:5px 0;border-bottom:1px dotted var(--line);align-items:baseline}
.ctd-k{flex:0 0 68px;color:var(--muted);font-size:12.5px}
.ctd-v{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:0 8px}
.ctd-son{justify-content:space-between}
.ctd-lines{border-top:1px solid var(--line)}
.ctd-l{padding:7px 0;border-bottom:1px solid var(--line)}
.ctd-l1{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.ctd-l1 b{font-weight:700}
.ctd-son-n{color:var(--muted);font-size:13px}
.ctd-amt{margin-left:auto;font-weight:750;font-variant-numeric:tabular-nums}
.ctd-l.disc .ctd-amt{color:var(--up)}
.ctd-l2{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12.5px;margin-top:2px;flex-wrap:wrap}
.ctd-tot{margin-top:8px}
.ctd-tot div{display:flex;justify-content:space-between;padding:3px 0;font-weight:700}
.ctd-tot div:last-child{font-size:15.5px;border-top:2px solid var(--text);padding-top:6px;margin-top:2px}
.ctd-terms{margin:0;font-size:13px;line-height:1.5;white-space:pre-wrap}
.ctd-terms-in{width:100%;font:inherit;font-size:13.5px;line-height:1.5;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--text);resize:vertical}
.ctd-sigs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.ctd-sig{min-width:0}
.ctd-sig-ink{height:62px;display:flex;align-items:flex-end;justify-content:center;color:#1a2340}
html[data-theme="dark"] .ctd-sig-ink{color:#dfe6ff}
.ctd-sig-ink .sig-svg{max-width:100%;height:58px;width:auto}
.ctd-sig-line{border-top:1.2px solid var(--text)}
.ctd-sig-role{margin:4px 0 2px;font-weight:700;font-size:12.5px}
.ctd-sig-nd{margin:0;display:flex;flex-direction:column;font-size:12px;color:var(--muted)}
.ctd-sig-nd b{color:var(--text);font-weight:650}
.ctd-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ctd-acts button{min-width:0}
.ctd-acts .danger-txt{color:var(--down)}
.sp-box{margin:6px 0 10px}
.sp-wrap{position:relative;border:1.5px dashed var(--tick);border-radius:14px;background:var(--card2);height:170px}
.sp-canvas{position:absolute;inset:0;width:100%;height:100%;color:#1a2340;touch-action:none;border-radius:14px}
html[data-theme="dark"] .sp-canvas{color:#e8edff}
.sp-hint{position:absolute;left:0;right:0;top:42%;text-align:center;color:var(--tick);font-weight:650;pointer-events:none}
.sp-line{position:absolute;left:16px;right:16px;bottom:38px;border-top:1px solid var(--tick);pointer-events:none}
.sp-clear{position:absolute;right:10px;bottom:6px;font-size:13px}
.sig-saved{color:#1a2340;display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:4px 0}
html[data-theme="dark"] .sig-saved{color:#e8edff}
.sig-saved .sig-svg{height:64px;width:auto;max-width:100%}
.sig-use{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.chk{display:flex;gap:8px;align-items:center;font-size:14px;margin:4px 0}
.ct-share{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:10px 0}
.ct-share .btn,.ct-share button{text-align:center;min-width:0;padding-left:6px;padding-right:6px}
.ctr-seg{flex-wrap:wrap;margin-bottom:10px}
/* the parents' signing page */
body.ctp{padding-bottom:28px}
.ctp-main{max-width:680px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 14px) 14px 24px}
.ctp-sign{margin-top:4px}
.ctp-sign h2{margin:0 0 4px;font-size:18px}
.ctp-sign .fld input{width:100%}
.ctp-sign .primary{width:100%;padding:14px;font-size:16px;margin-top:6px}
.ctp-lock{font-size:12.5px;color:var(--muted);margin:6px 2px}
.ctp-msg{color:var(--down);font-weight:650;min-height:1em}
.ctp-btns{display:flex;gap:8px;margin-top:10px}
.ctp-btns button{flex:1}
@media print{
  body.ctp .ctp-noprint{display:none!important}
  body.ctp,body.ctp .ctd-paper{background:#fff!important;color:#000!important;box-shadow:none!important;border:0!important}
  body.ctp{padding:0}
}

/* v10: parent pages show Yiddish only until "English" is tapped */
.lang-btn{margin-inline-start:auto;flex:none;align-self:flex-start;border:1.5px solid var(--accent);color:var(--accent);background:var(--card);border-radius:999px;padding:6px 14px;font:inherit;font-weight:750;font-size:14px;cursor:pointer}
.lang-btn[aria-pressed="true"]{background:var(--accent);color:#fff}
html:not(.en-on) body.rg .rg-help,html:not(.en-on) body.rg .rg-sh-en,html:not(.en-on) body.rg .rg-en,html:not(.en-on) body.rg .rg-btn-en,html:not(.en-on) body.rg .rg-yn-o small,html:not(.en-on) body.rg .en-l{display:none!important}
html.en-on body.rg .yi-l{display:none!important}
html:not(.en-on) body.ctp .en-l{display:none!important}
body.ctp .en-l{display:block;font-size:11.5px;font-weight:600;color:var(--label);direction:ltr}
body.ctp .yi{display:block;direction:rtl;text-align:start;unicode-bidi:isolate}
body.ctp button .yi,body.ctp .ctd-title .yi,body.ctp button .en-l,body.ctp .ctd-title .en-l{text-align:center}
body.ctp .ctd-meta .yi,body.ctp .ctd-sig-nd .yi{display:inline}
body.ctp .ctd-meta .en-l,body.ctp .ctd-sig-nd .en-l{display:inline;margin-inline-start:4px}
html:not(.en-on) body.ctp .ctd-meta .en-l,html:not(.en-on) body.ctp .ctd-sig-nd .en-l{display:none!important}
body.ctp .ctd-k .en-l,body.ctp .ctd-h .en-l{font-size:10.5px}
.ctp-top{display:flex;justify-content:flex-end;margin:0 0 6px}

/* v11: print an application */
.ap-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:12px 0 4px;font-weight:750}
.ap-ic{flex:none}
.kp-app .ap-btn{margin:6px 0 8px}
.ap-btn.ap-top{margin:10px 0 2px}
.ap-who{display:flex;align-items:center;gap:12px;margin:10px 0 6px}
.ap-photo{width:84px;height:84px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:none;background:#fff}
.ap-who-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.ap-nm-he{font-size:18px;unicode-bidi:isolate;text-align:left}
.ap-nm-en{font-size:15px}
.ap-rcv{color:var(--muted);font-size:12.5px}
.ap-sec{margin:12px 0 4px}
.ap-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 2px;padding:6px 8px;background:var(--chip,rgba(120,130,150,.12));border-radius:4px;font-size:13px;color:var(--text);break-after:avoid;page-break-after:avoid}
.ap-h .ap-yi{font-size:14.5px;margin-left:auto;text-align:right}
.ap-q{padding:6px 2px 7px;border-bottom:1px dotted var(--line);break-inside:avoid;page-break-inside:avoid}
.ap-l{display:flex;justify-content:space-between;align-items:baseline;gap:4px 12px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.ap-l .ap-yi{margin-left:auto;font-size:12.5px;text-align:right}
.ap-en{direction:ltr}
.ap-yi{direction:rtl;unicode-bidi:isolate}
.ap-v{font-size:15px;font-weight:600;margin-top:2px;overflow-wrap:anywhere}
.ap-img{max-width:120px;max-height:120px;border-radius:6px;border:1px solid var(--line)}
.ap-acts.three{grid-template-columns:1fr 1fr 1fr}
#print-root{display:none}
@media print{
  @page{margin:12mm}
  body.printing{background:#fff!important;padding:0!important;margin:0!important;overflow:visible!important;height:auto!important}
  body.printing>*:not(#print-root){display:none!important}
  body.printing #print-root{display:block!important;position:static}
  #print-root .ctd-paper{background:#fff!important;color:#000!important;border:0!important;box-shadow:none!important;margin:0!important;padding:0!important;font-size:11pt}
  #print-root .ctd-paper *{color:#000}
  #print-root .ap-l,#print-root .ap-rcv,#print-root .ctd-title span{color:#444!important}
  #print-root .ap-h{background:#eef0f6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #print-root .ap-q{border-bottom-color:#bbb}
  #print-root .ctd-title::before,#print-root .ctd-title::after{border-top-color:#888}
  #print-root .ap-v{font-size:11.5pt}
}

/* ---------- v12: immunizations ---------- */
.kp-badges{margin:5px 0 0}
.imm-badge{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 8px;border-radius:6px;cursor:pointer}
.imm-badge.ok{background:var(--g-soft);color:var(--up)}
.imm-badge.miss{background:var(--r-soft);color:var(--down);border:1px solid var(--r)}
.imm-badge.none{background:var(--card2);color:var(--muted);border:1px solid var(--line)}
.kp-tabs{margin:12px 0 0}
.kp-tabs button{flex:1}
.up-t{color:var(--up);font-weight:700}
.imm-sum{display:flex;flex-direction:column;gap:2px;border-radius:14px;padding:11px 14px;margin:4px 0 8px;border:1px solid var(--line);background:var(--card)}
.imm-sum b{font-size:15px}
.imm-sum span{font-size:14.5px}
.imm-sum.ok{background:var(--g-soft);border-color:var(--g-edge);color:var(--up)}
.imm-sum.missing{background:var(--r-soft);border-color:var(--r);color:var(--down)}
.imm-sum.missing b{letter-spacing:.6px;text-transform:uppercase;font-size:12.5px}
.imm-sum.none span{color:var(--muted)}
.imm-grp{margin:2px 0 10px}
.imm-grid{display:flex;flex-direction:column;gap:8px}
.imm-row{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow)}
.imm-row.miss{background:#fff6d6;border-color:#e9c75a}
html[data-theme="dark"] .imm-row.miss{background:rgba(242,190,60,.12);border-color:rgba(242,190,60,.5)}
.imm-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.imm-name{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:none;border:0;padding:0;cursor:pointer;min-width:0;flex:1;position:relative}
.imm-name b{font-size:16px;line-height:1.25}
.imm-name small{font-size:13px;color:var(--muted)}
.imm-row.miss .imm-name{padding-left:26px}
.imm-bang{position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;background:var(--r);color:#fff;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center}
.imm-st{flex:none;font-size:12px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:3px 8px;border-radius:6px;white-space:nowrap;background:var(--card2);color:var(--muted)}
.imm-st.st-ok,.imm-st.st-okm{background:var(--g-soft);color:var(--up)}
.imm-st.st-miss,.imm-st.st-missing{background:var(--r-soft);color:var(--down)}
.imm-st.st-miss.pend{background:var(--card2);color:var(--muted)}
.imm-st.st-med{background:var(--amber-soft);color:var(--amber)}
.imm-doses{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.imm-dose{display:flex;flex-direction:column;align-items:flex-start;min-width:74px;padding:5px 9px;border-radius:10px;border:1px dashed var(--tick);background:transparent;cursor:pointer;line-height:1.2}
.imm-dose span{font-size:11px;font-weight:700;color:var(--label);text-transform:uppercase;letter-spacing:.4px}
.imm-dose b{font-size:14px;color:var(--accent);font-weight:700}
.imm-dose.has{border-style:solid;border-color:var(--line);background:var(--card2)}
.imm-dose.has b{color:var(--text)}
.imm-row.miss .imm-dose:not(.has){border-color:var(--r)}
.imm-row.miss .imm-dose:not(.has) b{color:var(--down)}
.imm-note{margin:6px 0 0;font-size:13.5px;color:var(--muted)}
.imm-notes p{margin:4px 0 6px}
.imm-scan .btn-row{margin-top:8px}
.imm-scan-th{display:block;border:1px solid var(--line);border-radius:10px;padding:0;background:var(--card2);overflow:hidden;cursor:zoom-in;max-width:100%}
.imm-scan-th img{display:block;max-width:100%;max-height:220px;object-fit:contain}
.imm-scan-th .ph-ini{display:block;padding:20px;color:var(--muted)}
.imm-scan-big img{display:block;width:100%;height:auto;border-radius:8px;background:#fff}
.imm-dl{display:flex;align-items:flex-end;gap:8px}
.imm-dl .fld{flex:1;margin-bottom:8px}
.imm-dl .x-btn{margin-bottom:12px}
.imm-hint{margin-top:0}
.send-grid.one{grid-template-columns:1fr}
.imm-count{font-size:16px;margin:2px 0 10px}
.imm-count b{color:var(--down);font-size:20px}
.imm-seg{margin-bottom:8px}
.imm-cls-h{margin:16px 0 6px}
.imm-rep .row{cursor:pointer;align-items:flex-start}
.imm-rrow.missing{background:#fff6d6;border-color:#e9c75a}
html[data-theme="dark"] .imm-rrow.missing{background:rgba(242,190,60,.12);border-color:rgba(242,190,60,.5)}
.imm-rrow .main{min-width:0;flex:1}
.imm-miss{font-size:13.5px;color:var(--down);font-weight:650;margin-top:2px}
.imm-rrow .imm-st{align-self:center}
.imm-help{margin-top:14px}
.ir-row{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:8px}
.ir-top{display:flex;gap:8px;align-items:center}
.ir-name{flex:1;min-width:0;font-weight:700;font-size:16px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card2)}
.ir-h{margin:6px 0 0}
.ir-doses{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px}
.ir-doses label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;color:var(--label);text-transform:uppercase;letter-spacing:.2px;line-height:1.15}
.ir-doses label span{min-height:26px;display:flex;align-items:flex-end}
.ir-doses input{width:100%;min-width:0;padding:8px 4px;text-align:center;font-size:16px;border:1px solid var(--line);border-radius:9px;background:var(--card2)}
.ir-form,.ir-cl{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--hairline)}
.ir-form:last-child,.ir-cl:last-child{border-bottom:0}
.ir-form input[type=text]{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card2)}
.ir-req{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}
.ir-cl span{flex:1;min-width:0;font-weight:650}
.ir-cl select{flex:none;max-width:56%;padding:7px 8px;border:1px solid var(--line);border-radius:10px;background:var(--card2)}
#c-imm-box .btn-row{margin-top:6px}
/* the printable immunization record */
.imp-who{margin:10px 0 12px}
.imp-who b{font-size:17px}
.imp-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted);margin-top:3px}
.imp-status{margin-top:8px;font-weight:700}
.imp-status.missing{color:var(--down)} .imp-status.ok{color:var(--up)} .imp-status.none{color:var(--muted)}
.imp-t{width:100%;border-collapse:collapse;font-size:12.5px;margin:8px 0 12px;table-layout:auto}
.imp-t th{background:var(--card2);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.3px;padding:6px 5px;color:var(--label)}
.imp-t td{padding:6px 5px;border-bottom:1px solid var(--line);vertical-align:top}
.imp-t .c{text-align:center;white-space:nowrap}
.imp-t td small{display:block;color:var(--muted);font-size:11px}
.imp-t tr.miss td{background:#fff6d6;font-weight:700}
html[data-theme="dark"] .imp-t tr.miss td{background:rgba(242,190,60,.12)}
.imp-paper{overflow-x:auto}
.imp-notes{margin-top:6px} .imp-notes p{margin:3px 0 0}
.imp-foot{font-size:11.5px;color:var(--muted);margin:14px 0 0}
@media print{
  #print-root .imp-t th{background:#eef0f6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #print-root .imp-t tr.miss td{background:#fff3c4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #print-root .imp-t tr{break-inside:avoid}
  #print-root .imp-t{font-size:10pt}
}

.imm-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:2px 0 10px}
.imm-tile{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:10px 12px;cursor:pointer;text-align:left;box-shadow:var(--shadow)}
.imm-tile b{font-size:24px;line-height:1.1}
.imm-tile span{font-size:12.5px;font-weight:700;color:var(--muted);line-height:1.2}
.imm-tile.ok b{color:var(--up)} .imm-tile.miss b{color:var(--down)} .imm-tile.none b{color:var(--muted)}
.imm-tile.miss{border-color:var(--r)}
.imm-tile[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:1px}
.imm-sec{margin-top:14px}
.imm-sec-h{margin:0 0 4px;font-size:17px;display:flex;align-items:center;gap:8px}
.imm-sec-h .n{font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--card2);color:var(--muted)}
.imm-sec.missing .imm-sec-h{color:var(--down)} .imm-sec.ok .imm-sec-h{color:var(--up)}
.imm-sec .imm-cls-h:first-of-type{margin-top:6px}
.ir-doses input{color:var(--text);font-weight:700;text-transform:none;letter-spacing:0}

/* v13: the doctor's form (Immunizations tab) and the forms report */
.df-box{padding:12px}
.df-count{margin:0 0 10px;font-size:15px}
.df-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin-bottom:12px}
.df-pg{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px;background:var(--card2);border:1px solid var(--line);border-radius:12px;color:var(--text);cursor:pointer;min-width:0}
.df-n{font-size:12.5px;font-weight:650;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.df-th{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:3/4;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}
.df-th img{width:100%;height:100%;object-fit:cover;object-position:top}
.df-th .ph-ini{font-size:13px;color:#888}
.df-th.df-pdf{flex-direction:column;background:#fbeaea;border-color:#efc4c4;color:#b3261e;gap:2px}
.df-th.df-pdf b{font-size:17px;letter-spacing:.04em}
.df-th.df-pdf small{font-size:11px;color:#8a3a35;font-weight:600}
html[data-theme="dark"] .df-th.df-pdf{background:#3a1f22;border-color:#5a2d31;color:#ff8f86}
html[data-theme="dark"] .df-th.df-pdf small{color:#f2b8b3}
.df-th.sm{width:46px;height:60px;aspect-ratio:auto;border-radius:7px;margin-right:12px}
.df-th.sm.df-pdf b{font-size:12px}.df-th.sm.df-pdf small{font-size:9px}
.df-th.sm.empty{background:#fde8ea;border-color:#f3b9c0;color:#be283c;font-weight:800;font-size:20px}
html[data-theme="dark"] .df-th.sm.empty{background:#3a1f24;border-color:#5a2d34;color:#ff8f9c}
.df-th.big{width:140px;height:180px;aspect-ratio:auto;margin:6px auto 10px}
.df-th.big b{font-size:26px}
.df-none{display:flex;flex-direction:column;gap:3px;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--card2);border:1px dashed var(--line)}
.df-none b{font-size:15px}.df-none span{font-size:14px;color:var(--muted)}
.df-none.req{background:#fff4c4;border:1px solid #f0d36b}.df-none.req b{color:#be283c}
html[data-theme="dark"] .df-none.req{background:#3a3214;border-color:#6b5a1d}html[data-theme="dark"] .df-none.req b{color:#ff8f9c}
.df-add{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.df-add button{flex:1 1 30%;min-width:0;white-space:nowrap}
.df-big img{max-width:100%;height:auto;display:block;margin:0 auto;background:#fff;border-radius:8px}
.df-pdfbig{text-align:center;padding:10px 0 4px}
.df-nav,.df-acts{display:flex;gap:10px;margin-top:14px}
.df-nav button,.df-acts button{flex:1}
.df-of{margin-top:2px}
.imm-view{margin-bottom:14px}
.df-red{color:#be283c;font-weight:700}
html[data-theme="dark"] .df-red{color:#ff8f9c}
.df-cls-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:16px}
.df-cls-h .imm-sec-h{margin:0}
.df-cls-h .link-btn{white-space:nowrap}
.df-rrow{align-items:center}
.df-rrow .main{min-width:0;flex:1}
.df-pc{font-size:14px;font-weight:650;color:var(--muted);white-space:nowrap}
.df-rrow.none{background:color-mix(in srgb,#be283c 6%,var(--card))}
.df-prints{margin-top:16px}
.df-out{text-align:center;padding:16px}
.df-out p{margin:4px 0}
.imp-df{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;font-size:15px;font-weight:600}
.imp-df input{width:20px;height:20px}
.ir-df{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.ir-df{white-space:normal}.df-rep .row{margin-top:8px}
.df-rrow .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.df-rrow .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- v14: contract version 2 (per-son table, payment, page 2) ---------- */
.ctg-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 4px;border-top:1px solid var(--line)}
.ctg{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.ctg th,.ctg td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.ctg thead th{background:var(--card2);font-weight:700;text-align:left}
.ctg thead th.ctg-son{text-align:right;min-width:78px}
.ctg thead th.ctg-son b{display:block;font-weight:750}
.ctg thead th.ctg-son .he{display:block;font-weight:600}
.ctg thead .cls-tag{display:inline-block;margin-top:3px}
.ctg tbody th,.ctg tfoot th{text-align:left;font-weight:650}
.ctg td{text-align:right;white-space:nowrap}
.ctg td b{display:block;font-weight:750}
.ctg td small{display:block;color:var(--muted);font-size:11px}
.ctg td.ctg-e{color:var(--muted)}
.ctg td.disc b{color:var(--up)}
.ctg tfoot tr.ctg-m td,.ctg tfoot tr.ctg-m th{color:var(--muted);font-weight:650}
.ctg tfoot tr.ctg-t td,.ctg tfoot tr.ctg-t th{font-weight:800;border-top:2px solid var(--text)}
.ctg tfoot tr.ctg-n td{white-space:normal;text-align:left;font-size:12px}
.ctg tfoot tr.ctg-n th{color:var(--down)}
.ctg-need{color:var(--down);font-weight:650}
.ctd-cb{flex:none;display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border:1.5px solid var(--text);border-radius:3px;font-size:13px;font-weight:900;line-height:1;margin-top:1px}
.ctd-cb.on{background:var(--text);color:var(--card)}
.ctd-pay{border-top:1px dotted var(--tick)}
.ctd-pay-o{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-bottom:1px dotted var(--line)}
.ctd-pay-b{flex:1;min-width:0}
.ctd-pay-f{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:3px;font-size:12.5px}
.ctd-pf{display:inline-flex;align-items:baseline;gap:5px}
.ctd-pf i{font-style:normal;color:var(--muted)}
.ctd-fill{display:inline-block;min-width:5em;border-bottom:1px solid var(--muted);padding:0 3px;font-weight:650}
.ctd-each{color:var(--muted)}
.ctd-hand{color:var(--muted);font-size:11.5px}
.ctd-p2{margin-top:22px;padding-top:6px;border-top:2px dashed var(--line)}
.ctd-cons{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-bottom:1px dotted var(--line)}
.ctd-cons-b{flex:1;min-width:0}
.ctd-cons-b>b{display:block}
.ctd-cons-x{margin:3px 0 0;font-size:13px;line-height:1.45}
.ctd-cons-ok{margin:4px 0 0;font-size:11.5px;color:var(--muted)}
.ctd-pick{width:100%;border-collapse:collapse;margin-top:6px;font-size:12.5px}
.ctd-pick th{text-align:left;background:var(--card2);padding:4px 5px;font-weight:700}
.ctd-pick td{padding:6px 5px;border-bottom:1px solid var(--line);height:16px}
.ctd-once{margin:12px 0 0;font-size:12px;color:var(--muted)}
.ctd-preset{padding:10px 12px;margin:8px 0}
.ctd-ne{margin:8px 0}
.ctpf .chk,.ctpx-sec .chk{display:flex;gap:8px;align-items:flex-start;padding:5px 0}
.ctpf-pay{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.ctpf-pick,.ctpx-pick{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 10px}
.ctpf-pick input:first-child,.ctpx-pick input:first-child{grid-column:1/-1}
.ctpf-pick input,.ctpx-pick input{min-width:0;width:100%;font:inherit;font-size:14px;padding:9px 8px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--text)}
.ctpx-sec{border-top:1px solid var(--line);margin:4px 0 10px;padding-top:8px}
.ctpx-sec h3{font-size:15px;margin:2px 0 6px}
.ctc-item{border:1px solid var(--line);border-radius:12px;padding:8px 12px 4px;margin:0 0 12px}
.ctc-item legend{font-weight:750;padding:0 6px}
.ctc-item .chk{display:flex;gap:8px;align-items:center;padding:3px 0}
body.ctp .en-a{display:block}
body.ctp .yi-i{display:inline}
body.ctp .en-i{display:none}
html.en-on body.ctp .yi-i{display:none}
html.en-on body.ctp .en-i{display:inline}
body.ctp .ctd-cons .en-l{font-size:12px;font-weight:500;color:var(--text);opacity:.85}
body.ctp .ctd-cons-b>b .en-l{font-weight:700}
@media print{
  .ctd-p2{break-before:page;page-break-before:always;border-top:0;margin-top:0}
  .ctg thead th,.ctd-pick th{background:#eef0f6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ctg-wrap{overflow:visible}
  .ctd-cons,.ctd-pay-o,.ctg tr{break-inside:avoid}
}

/* v15: blank application download (parents' page and More → Online registration) */
.rg-blank{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.rg-blank-t{margin:0;font-size:14.5px;line-height:1.4;text-align:right}
.rg-blank-t .en-l{display:block;text-align:left;font-size:13px;color:var(--muted)}
.rg-blank-b{display:flex;gap:8px;flex-wrap:wrap}
.rg-blank-b .primary{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:750}
.rg-blank-b .ghost{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center}
.rg-pdf{font-size:12px;font-weight:800;letter-spacing:.6px;opacity:.9}
.rg-blank-msg{margin:0;font-size:13px;color:var(--muted);min-height:0}
.rg-blank-msg:empty{display:none}
.blank-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.blank-row .primary,.blank-row .ghost{flex:1 1 auto}
/* v15: allergies on the application, the submission and the printouts */
.al-line{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;background:var(--r-soft);border:1px solid var(--r);color:var(--down);border-radius:12px;padding:8px 12px;margin:8px 0;font-weight:700}
.al-line b{font-size:12px;letter-spacing:.7px;text-transform:uppercase}
.ctd-paper .al-line,#print-root .al-line{background:#fdecee;border-color:#c62832;color:#b3141e}
.ap-al{margin:10px 0 4px}
.imp-al{margin:8px 0 2px}
.rg-f[hidden]{display:none!important}
.blank-box{margin-top:14px;padding-top:12px;border-top:1px solid var(--line,rgba(0,0,0,.08))}
.chk-line{display:flex;gap:8px;align-items:center;margin:8px 2px 2px;color:var(--text)}
.chk-line input{width:18px;height:18px;flex:none}
.fe-blank{margin-top:8px}
.ctg-al .ctg-need b{color:#b3141e}
/* v15: an English contract on the parent's link: English only until the parent switches to Yiddish */
html.ct-en body.ctp .yi,html.ct-en body.ctp .yi-i,html.ct-en body.ctp .yi-l{display:none!important}
html.ct-en body.ctp .en-l{font-size:inherit!important;font-weight:inherit!important;color:inherit!important;opacity:1!important}
html.ct-en body.ctp .ctd-k .en-l,html.ct-en body.ctp .ctd-h .en-l{font-size:inherit!important}
.ctc-lang{border:1px solid var(--line,rgba(0,0,0,.12));border-radius:12px;padding:8px 12px;margin:0 0 12px}
.ctc-lang .chk{display:inline-flex;margin-inline-end:18px}

/* v17: Import from Wave */
.st.wave{background:rgba(29,78,216,.08);color:var(--muted);margin-left:4px;text-transform:none;letter-spacing:0}
.wv h2 .wv-yi,.wv .wv-yi{display:block;font-family:"MB Sans",sans-serif;font-size:.78em;font-weight:500;color:var(--muted);margin-top:2px}
.wv .bk-counts li span .wv-yi,.wv button .wv-yi{display:inline;font-size:.8em;margin:0 0 0 6px}
.wv .sub-h{margin:18px 0 6px;font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--label)}
.wv-files{list-style:none;margin:12px 0;padding:0}
.wv-files li{display:flex;flex-direction:column;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px;overflow-wrap:anywhere}
.wv-files li small{color:var(--muted)}
.wv-counts{margin-top:8px}
.wv-counts li b small{font-weight:500}
.wv-list{margin:10px 0 0;padding-left:18px;font-size:13.5px;color:var(--text)}
.wv-list li{margin:4px 0;overflow-wrap:anywhere}
.wv-list.warn li{color:var(--down)}
.wv-tbl{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.wv-tr{display:grid;grid-template-columns:minmax(0,1fr) 84px 92px;gap:8px;padding:8px 10px;border-top:1px solid var(--line);font-size:14px;align-items:start}
.wv-tr:first-child{border-top:0}
.wv-tr>span:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}
.wv-tr small{display:block;color:var(--muted);font-size:11.5px}
.wv-tr .tag{margin-left:0;margin-top:3px}
.wv-tr b{overflow-wrap:anywhere}
.wv-th{background:var(--g-soft);font-size:11.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--label)}
.wv-tr.bad{background:var(--r-soft)}
.wv-x{font-style:normal;color:var(--down)}
.wv-btns button[disabled]{opacity:.55}
.wv .ok-box{background:var(--g-soft)}
.wv .ok-box b{color:var(--up)}

/* v18: staff roles. Teacher: no money anywhere; Office: no school setup, staff, backup or Wave import */
body.role-teacher .money-only,body.role-teacher .tb-btn[data-go="invoices"],body.role-teacher .tb-btn[data-go="owing"]{display:none!important}
body:not(.role-teacher) .teacher-only{display:none!important}
body.role-office .admin-only,body.role-teacher .admin-only{display:none!important}
.acct-me{margin:4px 0 0;font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.role-chip{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:2px 8px;border-radius:6px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.role-chip.teacher{background:var(--g-soft);color:var(--up)}
.role-chip.office{background:color-mix(in srgb,#b26b00 16%,transparent);color:#9a5b00}
.role-chip.off{background:var(--r-soft);color:var(--down)}
.st-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.st-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}
.st-row .main{flex:1;min-width:0}
.st-row .name{font-weight:700;overflow-wrap:anywhere}
.st-row .sub{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.st-row.off{opacity:.62}
.st-yi{font-size:12px;color:var(--muted);margin-inline-start:6px;font-weight:600}
.st-share{border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg)}
.st-roles{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
.st-roles label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer}
.st-roles label small{display:block;color:var(--muted);font-size:13px}
.by-line{margin:6px 0 0}
.pay-row .by-line{font-size:12.5px}
button .st-yi,.primary .st-yi{color:inherit;opacity:.85}
