/* sassi/shared/settings-cards.css - the look of the family settings (shared/php/settings_head.php and the *_card.php files),
 * one file for every assistant (owner 2026-09-15): tasks' rules for every class those files use, scoped under
 * .sassi-settings (the wrapper the head opens and the view closes) so an app's own .row / .badge / .storage list styles
 * never change the family cards. Canonical in sassi/shared, byte-identical in every public_html/assets/, loaded after
 * app.css. Generated from tasks' app.css by the anchor's settings_css.py; edit app.css in tasks, then regenerate. */
html[data-contrast="1"] button,html[data-contrast="1"] .chip,html[data-contrast="1"] .card,html[data-contrast="1"] input,html[data-contrast="1"] select,html[data-contrast="1"] textarea{box-shadow:inset 0 0 0 1px var(--border)}
.sassi-settings input,.sassi-settings select,.sassi-settings textarea,.sassi-settings button{font-family:inherit;font-size:14px;color:var(--txt)}
.sassi-settings input,.sassi-settings select,.sassi-settings textarea{background:var(--sunk);border:0;border-radius:var(--r-input);padding:.6rem .8rem;width:100%;max-width:100%}
.sassi-settings input:focus,.sassi-settings select:focus,.sassi-settings textarea:focus{outline:2px solid var(--ac);outline-offset:-1px}
.sassi-settings input[type=date],.sassi-settings input[type=time],.sassi-settings input[type=number]{width:auto}
.sassi-settings input[type=checkbox],.sassi-settings input[type=radio]{width:auto}
.sassi-settings textarea{min-height:5rem;resize:vertical}
.sassi-settings select{appearance:none;-webkit-appearance:none;padding-inline-end:2rem;background:var(--sunk) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238fa098' stroke-width='2'/></svg>") no-repeat left .8rem center}
.sassi-settings .num,.sassi-settings [dir=ltr]{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}
.sassi-settings button{cursor:pointer;border:0;border-radius:var(--r-input);background:var(--hover);color:var(--txt);padding:9px 14px;font-size:14.5px;font-weight:500;transition:background .15s,color .15s}
@media (hover:hover){.sassi-settings button:hover{background:#2a332e}}
.sassi-settings button.pri{background:var(--ac);color:var(--ink);font-weight:600}
@media (hover:hover){.sassi-settings button.pri:hover{background:var(--acText)}}
.sassi-settings button.sm{padding:6px 11px;font-size:13px}
.sassi-settings button.ghost{background:transparent;color:var(--dim)}
@media (hover:hover){.sassi-settings button.ghost:hover{background:var(--hover);color:var(--txt)}}
.sassi-settings .ibtn{width:34px;height:34px;padding:0;border-radius:50%;background:transparent;color:var(--dim);display:inline-flex;align-items:center;justify-content:center;font-size:14px}
@media (hover:hover){.sassi-settings .ibtn:hover{background:var(--hover);color:var(--txt)}}
@media (hover:hover){.sassi-settings .ibtn.danger:hover{background:rgba(248,113,113,.12);color:var(--bad)}}
.sassi-settings .ibtn.on{background:var(--acSoft);color:var(--ac)}
.sassi-settings .ibtn.lg{width:38px;height:38px}
.sassi-settings .ibtn.outline{border:1px solid var(--border)}
.sassi-settings button:disabled{opacity:.6;cursor:default}
.sassi-settings form.inline{display:inline}
.sassi-settings .card{background:var(--card);border-radius:var(--r-card);padding:20px;margin-bottom:14px}
.sassi-settings .card.tight{padding:16px}
.sassi-settings .card h2{margin:0 0 .8rem;font-size:16px;font-weight:600;display:flex;align-items:center;gap:.5rem}
.sassi-settings .card h2 .cnt{font-size:12px;font-weight:400;color:var(--dim)}
.sassi-settings .card h2 .badge{font-size:11px}
.sassi-settings .row{display:flex;align-items:center;gap:.6rem;padding:10px 0;border-bottom:1px solid var(--line)}
.sassi-settings .row:last-child{border-bottom:0}
.sassi-settings .row .grow{flex:1;min-width:0}
.sassi-settings .row .ttl{font-size:14.5px;font-weight:500;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.sassi-settings .row .meta{font-size:12px;color:var(--dim);font-weight:300;display:flex;flex-wrap:wrap;gap:.25rem .7rem;margin-top:.15rem}
.sassi-settings .row .meta>span,.sassi-settings .row .meta .num{font:inherit;font-size:12px;max-height:999999px;-webkit-text-size-adjust:none;text-size-adjust:none}
.sassi-settings .row .meta .bad{color:var(--bad)}.sassi-settings .row .meta .far{color:var(--far)}.sassi-settings .row .meta .warn{color:var(--warn)}.sassi-settings .row .meta .ac{color:var(--acText)}
.sassi-settings .row .acts{display:flex;gap:.1rem;flex:none}
.sassi-settings .dim{color:var(--dim);font-size:13px;font-weight:300}
.sassi-settings .hint{color:var(--dim);font-size:12px;font-weight:300;margin:.5rem 0 0}
.sassi-settings .ttl.done{text-decoration:line-through;color:var(--dim)}
.sassi-settings .badge{display:inline-block;font-size:12px;font-weight:400;line-height:1.4;padding:.1rem .55rem;border-radius:var(--r-pill);background:var(--hover);color:var(--dim);white-space:nowrap;font-family:inherit}
.sassi-settings .badge.ok{background:rgba(74,222,128,.12);color:var(--ok)}
.sassi-settings .badge.warn{background:rgba(251,191,36,.12);color:var(--warn)}
.sassi-settings .badge.bad{background:rgba(248,113,113,.12);color:var(--bad)}
.sassi-settings .badge.far{background:rgba(196,181,253,.12);color:var(--far)}
.sassi-settings .badge.ac{background:var(--acSoft);color:var(--acText)}
.sassi-settings .flash{border-radius:14px;padding:.7rem 1rem;margin-bottom:14px;display:flex;gap:.6rem;align-items:flex-start;word-break:break-word}
.sassi-settings .flash.err{background:rgba(248,113,113,.12);color:var(--bad)}
.sassi-settings .flash.ok{background:var(--acSoft);color:var(--acText)}
.sassi-settings .flash.warn{background:rgba(251,191,36,.12);color:var(--warn)}
.sassi-settings .frm{display:flex;flex-direction:column;gap:.7rem}
.sassi-settings .frow{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.sassi-settings .frow>*{flex:1;min-width:120px}
.sassi-settings .frow>.fx{flex:none;min-width:0}
.sassi-settings label.f{display:flex;flex-direction:column;gap:.3rem;font-size:12px;color:var(--dim)}
.sassi-settings label.f>input,.sassi-settings label.f>select{font-size:14px;color:var(--txt)}
.sassi-settings .pill-form .ibtn{flex:none}
.sassi-settings .topic{display:flex;align-items:center;gap:.7rem;padding:10px 0;border-bottom:1px solid var(--line)}
.sassi-settings .topic:last-child{border-bottom:0}
.sassi-settings .topic .tile{width:38px;height:38px;border-radius:var(--r-tile);display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
.sassi-settings .topic.ok .tile{background:rgba(74,222,128,.12);color:var(--ok)}.sassi-settings .topic.warn .tile{background:rgba(251,191,36,.12);color:var(--warn)}.sassi-settings .topic.bad .tile{background:rgba(248,113,113,.12);color:var(--bad)}
.sassi-settings .topic .grow{flex:1;min-width:0}
.sassi-settings .topic .name{font-size:14.5px;font-weight:500}
.sassi-settings .topic .sub{font-size:12px;font-weight:300}
.sassi-settings .topic.ok .sub{color:var(--ok)}.sassi-settings .topic.warn .sub{color:var(--warn)}.sassi-settings .topic.bad .sub{color:var(--bad)}
.sassi-settings .topic .bar{height:4px;border-radius:2px;background:var(--hover);margin-top:.35rem;overflow:hidden}
.sassi-settings .topic .bar i{display:block;height:100%;border-radius:2px}
.sassi-settings .topic.ok .bar i{background:var(--ok)}.sassi-settings .topic.warn .bar i{background:var(--warn)}.sassi-settings .topic.bad .bar i{background:var(--bad)}
.sassi-settings details.acc{background:var(--card);border-radius:var(--r-card);margin-bottom:14px}
.sassi-settings details.acc>summary{list-style:none;cursor:pointer;padding:16px 20px;font-size:16px;font-weight:600;display:flex;align-items:center;gap:.5rem}
.sassi-settings details.acc>summary::-webkit-details-marker{display:none}
.sassi-settings details.acc>summary::after{content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.8rem;margin-inline-start:auto;color:var(--dim);transition:transform .15s}
.sassi-settings details.acc[open]>summary::after{transform:rotate(180deg)}
.sassi-settings details.acc>.body{padding:0 20px 16px}
.sassi-settings .card.acc>h2{cursor:pointer;user-select:none;margin:0}
.sassi-settings .card.acc>h2::after{content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.8rem;margin-inline-start:auto;color:var(--dim);transition:transform .15s}
.sassi-settings .card.acc.open>h2{margin-bottom:.8rem}
.sassi-settings .card.acc.open>h2::after{transform:rotate(180deg)}
.sassi-settings .card.acc:not(.open)>:not(h2){display:none !important}
.sassi-settings .inline.att-form{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}
.sassi-settings form.addbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem;align-items:center}
.sassi-settings form.addbar input.grow{flex:1;min-width:160px}
.sassi-settings .modal .acts{display:flex;gap:.6rem;justify-content:flex-end}
.sassi-settings .sheet{position:fixed;bottom:var(--kb,0px);left:50%;width:min(100vw,560px);transform:translate(-50%,100%);z-index:55;background:var(--card);border-radius:24px 24px 0 0;padding:10px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.5);transition:transform .2s;max-height:85vh;max-height:min(85vh,calc(100dvh - var(--kb,0px) - 8px));overflow:auto}
.sassi-settings .sheet.show{transform:translate(-50%,0)}
.sassi-settings .sheet .grip{width:44px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 12px}
.sassi-settings .login button.pri{padding:.8rem}
.sassi-settings .login .err{color:var(--bad)}
.sassi-settings .login .acts{font-size:14px}.sassi-settings .login .ok{color:var(--ok);font-size:13px}
.sassi-settings label.dim{display:flex;flex-direction:column;gap:.3rem;font-size:12px}
.sassi-settings .frm.narrow{max-width:440px}
.sassi-settings .grow{flex:1;min-width:0}
.sassi-settings input.tm{width:6rem;text-align:center}
.sassi-settings .btn-link{display:inline-flex;align-items:center;gap:.5rem;padding:9px 14px;font-size:14.5px;border-radius:var(--r-input);background:var(--ac);color:var(--ink);font-weight:600}
@media (hover:hover){.sassi-settings .btn-link:hover{background:var(--acText);color:var(--ink)}}
.sassi-settings .acts select{width:auto;padding:.35rem 1.8rem .35rem .5rem;font-size:13px;background-position:left .5rem center}
.sassi-settings form.addbar.pill{background:var(--sunk);border-radius:var(--r-pill);padding:4px;gap:.3rem;flex-wrap:nowrap}
.sassi-settings form.addbar.pill input{background:transparent;border-radius:var(--r-pill)}
.sassi-settings form.addbar.pill .send{width:36px;height:36px;border-radius:50%;background:var(--ac);color:var(--ink);padding:0;display:flex;align-items:center;justify-content:center;flex:none;font-size:14px}
.sassi-settings .item summary .grow{flex:1;min-width:0}
.sassi-settings .item summary .ttl{font-size:14px;font-weight:500;line-height:1.35}
.sassi-settings .item summary .meta{font-size:11.5px;color:var(--dim);font-weight:300;display:flex;flex-wrap:wrap;gap:.2rem .6rem;margin-top:.1rem}.sassi-settings .item summary .meta:empty{display:none}
.sassi-settings .item summary .meta .ac{color:var(--acText)}
.sassi-settings .item summary .chev{color:var(--dim);font-size:12px;transition:transform .15s;flex:none}
.sassi-settings .item[open]>summary .chev{transform:rotate(180deg)}
.sassi-settings .item .idea-edit .acts{display:flex;gap:.6rem;justify-content:flex-end}
.sassi-settings .item .iacts.bar{position:sticky;bottom:calc(var(--nav-h) + 8px);z-index:6;display:flex;align-items:stretch;justify-content:space-between;gap:.1rem;margin:.6rem -4px 0;padding:.3rem .2rem;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:0 10px 28px rgba(0,0,0,.5)}
.sassi-settings .item .iacts.bar form.inline,.sassi-settings .item .iacts.bar .att-form,.sassi-settings .item .iacts.bar .att-add{display:contents}
.sassi-settings .devices>summary{display:flex;align-items:center;gap:.6rem;list-style:none;cursor:pointer;padding:.3rem 0}.sassi-settings .devices>summary::-webkit-details-marker{display:none}
.sassi-settings .devices>summary .grow{flex:1;min-width:0;display:flex;flex-direction:column}.sassi-settings .devices>summary .ttl{font-size:14px;font-weight:500}.sassi-settings .devices>summary .meta{font-size:11.5px;color:var(--dim);font-weight:300}
.sassi-settings .devices>summary .chev{color:var(--dim);font-size:11px;transition:transform .15s}.sassi-settings .devices[open]>summary .chev{transform:rotate(180deg)}
.sassi-settings .item .done-items>summary .chev{font-size:11px;transition:transform .15s;transform:none}.sassi-settings .item .done-items[open]>summary .chev{transform:rotate(180deg)}
.sassi-settings .done-items summary button.danger{background:rgba(248,113,113,.12);color:var(--bad)}
.sassi-settings .done-items .row .ttl.done{opacity:.7}
.sassi-settings .item .iacts.bar .att-btn,.sassi-settings .item .iacts.bar .ibtn{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;width:auto;height:auto;min-width:0;padding:.35rem .1rem;border-radius:12px;background:none;font-size:10.5px;line-height:1.1;color:var(--body);white-space:nowrap;user-select:none}
.sassi-settings .item .iacts.bar .att-btn{color:var(--acText)}.sassi-settings .item .iacts.bar .att-btn i,.sassi-settings .item .iacts.bar .ibtn i{font-size:16px}
.sassi-settings .item .iacts.bar .ibtn.danger{color:var(--bad)}.sassi-settings .item .iacts.bar .ibtn.on{color:var(--acText)}
@media (hover:hover){.sassi-settings .item .iacts.bar .att-btn:hover,.sassi-settings .item .iacts.bar .ibtn:hover{background:var(--hover)}}
.sassi-settings .item .iacts.bar .att-paste-hint,.sassi-settings .item .iacts.bar .att-status,.sassi-settings .item .iacts.bar .spacer{display:none}
.sassi-settings .item .iacts.bar.menu{position:absolute;top:44px;bottom:auto;inset-inline-start:10px;width:220px;flex-direction:column;align-items:stretch;padding:.3rem;z-index:45}
.sassi-settings .item .iacts.bar.menu .att-btn,.sassi-settings .item .iacts.bar.menu .ibtn{flex-direction:row;justify-content:flex-start;gap:.7rem;font-size:14px;padding:.5rem .7rem}
.sassi-settings .item .iacts.bar.menu .att-btn i,.sassi-settings .item .iacts.bar.menu .ibtn i{width:20px;text-align:center}
.sassi-settings .ck-head .ac{color:var(--acText);font-weight:600}
.sassi-settings .tile-sm{width:34px;height:34px;border-radius:var(--r-tile);background:var(--hover);color:var(--dim);display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:14px}
@media (hover:hover){.sassi-settings .ibtn.ok:hover{background:rgba(74,222,128,.12);color:var(--ok)}}
.sassi-settings label.switch{display:flex;align-items:center;gap:.6rem;cursor:pointer;font-size:13px}
.sassi-settings .switch input{display:none}
.sassi-settings .switch input+span{width:46px;height:26px;border-radius:13px;background:var(--hover);position:relative;transition:.2s;flex:none}
.sassi-settings .switch input+span::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;border-radius:50%;background:var(--dim);transition:.2s}
.sassi-settings .switch input:checked+span{background:var(--ac)}
.sassi-settings .switch input:checked+span::after{background:var(--ink);transform:translateX(-20px)}
.sassi-settings .card>.row .badge{margin-inline-start:.2rem}
.sassi-settings code{background:var(--sunk);padding:.1rem .4rem;border-radius:6px;font-size:13px}
@media (max-width:700px){.sassi-settings .card{padding:16px}}
.sassi-settings .srow{display:flex;align-items:center;gap:.4rem;margin-bottom:.6rem}
.sassi-settings .srow select{width:auto;flex:1;min-width:0;padding:.45rem 1.6rem .45rem .5rem}
.sassi-settings .srow .sval{width:4.6rem;flex:none;text-align:center;padding:.45rem .3rem}
.sassi-settings .srow .srow-del{flex:none}
.sassi-settings .srow .stime{flex:none}.sassi-settings .srow .stime[hidden]{display:none}.sassi-settings .srow .stime select{flex:none;width:auto}
.sassi-settings .login .auth .circ.ok{background:rgba(74,222,128,.14);color:var(--ok)}
.sassi-settings .login .auth .circ.warn{background:rgba(251,191,36,.14);color:var(--warn)}
.sassi-settings .login .auth input.bad{box-shadow:0 0 0 2px var(--bad) inset}
.sassi-settings .login .ferr{font-size:12.5px;color:var(--bad);display:flex;align-items:center;justify-content:center;gap:6px;margin-top:-12px}
.sassi-settings .login .ferr i{font-size:11px}
.sassi-settings .ckl .it.ok .dot{border:0;background:var(--acSoft2);color:var(--acText)}
.sassi-settings .ckl .it.ok .lbl{color:var(--dim);font-weight:300}
.sassi-settings .ckl .it .lbl{flex:1}
.sassi-settings .seatbar i.warn{background:var(--warn)}.sassi-settings .seatbar i.bad{background:var(--bad)}
.sassi-settings .avatar.sm{width:34px;height:34px;font-size:13px}
.sassi-settings details.sub>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 0;font-size:15px;font-weight:600}
.sassi-settings details.sub>summary::-webkit-details-marker{display:none}
.sassi-settings details.sub>summary i.chev{color:var(--dim);font-size:11px;transition:transform .15s}
.sassi-settings details.sub[open]>summary i.chev{transform:rotate(180deg)}
.sassi-settings .login input.code{font-size:26px;letter-spacing:.35em;font-variant-numeric:tabular-nums;direction:ltr;padding:.7rem}
.sassi-settings .login .err{color:var(--bad);font-size:13px}
.sassi-settings .kpi.warn .v{color:var(--warn)}.sassi-settings .kpi.bad .v{color:var(--bad)}.sassi-settings .kpi.ok .v{color:var(--ok)}
.sassi-settings .alog td.num{white-space:nowrap}
.sassi-settings .row .prog{font-size:13px;color:var(--txt);margin:2px 0 2px;line-height:1.45}.sassi-settings .row .prog i{color:var(--acText);margin-inline-end:.2rem}
.sassi-settings .flash.upd{position:sticky;top:8px;z-index:31;isolation:isolate}.sassi-settings .flash.upd::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--bg);z-index:-1}.sassi-settings .flash.upd a{color:inherit;font-weight:600;text-decoration:underline}
.sassi-settings .navord{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-width:360px}
.sassi-settings .navord li{position:relative;display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-input);user-select:none;-webkit-user-select:none;cursor:grab}
.sassi-settings .navord li .grip{color:var(--dim);touch-action:none;padding:.3rem .2rem;margin:-.3rem 0;cursor:grab}
.sassi-settings .navord li .num{width:1.2rem;text-align:center;color:var(--dim);font-size:12px}
.sassi-settings .navord li .lbl{flex:1;display:flex;align-items:center;gap:.45rem}.sassi-settings .navord li .lbl i{width:1.1rem;text-align:center;color:var(--dim)}
.sassi-settings .navord li.more .lbl{color:var(--dim)}
.sassi-settings .navord li:focus-visible{outline:2px solid var(--ac);outline-offset:1px}
.sassi-settings .navord li.first-more{margin-top:1.4rem}.sassi-settings .navord li.first-more::before{content:'תחת "עוד"';position:absolute;top:-1.15rem;inset-inline-start:.4rem;font-size:11px;color:var(--dim)}
.sassi-settings .navord li.drag{z-index:5;box-shadow:0 8px 24px rgba(0,0,0,.45);border-color:var(--ac);background:var(--hover);cursor:grabbing}
.sassi-settings .navord.dragging li:not(.drag){transition:transform .12s}
body.lbl .bnav a,body.lbl .bnav button{flex-direction:column;gap:3px;height:48px;font-size:16px}
body.lbl .bnav a::after,body.lbl .bnav button::after{content:attr(title);font-size:10px;line-height:1;font-weight:400}
.sassi-settings .row .ie{display:block}
.sassi-settings .badge.soon{background:rgba(251,191,36,.15);color:var(--warn);margin-inline-start:.4rem}
.sassi-settings .help{width:18px;height:18px;padding:0;border-radius:50%;font-size:11px;font-weight:700;line-height:18px;text-align:center;background:var(--hover);color:var(--dim);vertical-align:middle;display:inline-block;flex:none}
.sassi-settings .help.on{background:var(--acSoft);color:var(--acText)}
@media (hover:hover){.sassi-settings .help:hover{background:var(--acSoft);color:var(--acText)}}
.sassi-settings legend .help-pop,.sassi-settings label .help-pop{display:block}
.sassi-settings .att-group .att-grid.sub{padding-inline-start:1.2rem;position:relative}
.sassi-settings .att-group .att-grid.sub::before{content:'';position:absolute;inset-inline-start:.3rem;top:0;bottom:0;border-inline-start:1px dashed var(--border)}
.sassi-settings .sheet{overscroll-behavior:contain}
.sassi-settings .item summary .grip{color:var(--dim);touch-action:none;cursor:grab;padding:.2rem .1rem;margin-inline-end:.1rem;flex:none;opacity:.6}
@media (hover:hover){.sassi-settings .item summary .grip:hover{opacity:1}}
.sassi-settings .sortable.locked .grip{display:none}
.sassi-settings .navord.locked .grip{visibility:hidden}.sassi-settings .navord.locked li{cursor:default}
.sassi-settings .switch{display:inline-flex;align-items:center;gap:.55rem;min-height:40px;margin:.15rem 0}
.sassi-settings .fab.open i{transform:rotate(45deg)}
.sassi-settings button.danger{background:rgba(248,113,113,.15);color:var(--bad)}
.sassi-settings .meta .rem-snooze-btn{width:24px;height:24px;font-size:11px;color:var(--warn)}
.sassi-settings .sub-head{display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem}.sassi-settings .sub-head .head-tools{margin-inline-start:auto;display:flex;align-items:center;gap:.6rem}.sassi-settings .sub-head .head-tools .switch{min-height:auto;margin:0;font-size:12.5px;color:var(--dim)}.sassi-settings .sub-head .head-tools .switch span{width:40px;height:22px;border-radius:11px}.sassi-settings .sub-head .head-tools .switch span::after{width:16px;height:16px}.sassi-settings .sub-head .head-tools .switch input:checked+span::after{transform:translateX(-18px)}.sassi-settings .sub-head h1{margin:0;font-size:18px;font-weight:600;display:flex;align-items:center;gap:.5rem}
.sassi-settings .sq-wrap{position:relative;margin:0 0 14px}.sassi-settings .sq-wrap>i{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}
.sassi-settings .sq{width:100%;padding:11px 40px 11px 14px;border-radius:var(--r-pill);background:var(--card);border:1px solid var(--border);color:var(--txt)}.sassi-settings .sq:focus{border-color:var(--ac);outline:0}
.sassi-settings .sq-results{position:absolute;top:calc(100% + 8px);inset-inline:0;background:var(--hover);border:1.5px solid var(--acSoft2);border-radius:18px;box-shadow:0 18px 44px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.4);z-index:40;max-height:60vh;overflow:auto;padding:4px}
.sassi-settings .sgroups{padding-top:6px;padding-bottom:6px}.sassi-settings a.sgroup{color:inherit;text-decoration:none;align-items:center;gap:.8rem}.sassi-settings a.sgroup .ttl{display:block;font-weight:600}.sassi-settings a.sgroup .meta{display:block;font-weight:300;font-size:12.5px;color:var(--dim)}
@media (hover:hover){.sassi-settings a.sgroup:hover .ttl{color:var(--acText)}}
.sassi-settings .sub-head h1{color:var(--acText)}.sassi-settings .sub-head h1 i{color:var(--ac)}
.sassi-settings .back-pill{width:40px;height:40px;border-radius:50%;background:var(--acSoft);color:var(--ac);display:inline-flex;align-items:center;justify-content:center;font-size:16px;text-decoration:none;flex:none;border:1px solid var(--acSoft2);animation:sassi-nudge 1.6s ease-in-out .4s 2}
.sassi-settings .back-pill:focus-visible{background:var(--ac);color:var(--ink);outline:0}
@media (hover:hover){.sassi-settings .back-pill:hover{background:var(--ac);color:var(--ink);outline:0}}
@media (prefers-reduced-motion:reduce){.sassi-settings .back-pill{animation:none}}
.sassi-settings .sg-chev{color:var(--dim);font-size:12px}
@media (hover:hover){.sassi-settings a.sgroup:hover .sg-chev{color:var(--ac)}}
.sassi-settings button,.sassi-settings .ibtn,.sassi-settings a.row,.sassi-settings .bnav a,.sassi-settings .sq-item,.sassi-settings .sgroup,.sassi-settings .btn-link,.sassi-settings .chk,.sassi-settings .fab{transition:transform .08s,filter .08s,background .15s,color .15s}
.sassi-settings button:not(:disabled):active,.sassi-settings .ibtn:active,.sassi-settings a.row:active,.sassi-settings .bnav a:active,.sassi-settings .sq-item:active,.sassi-settings .sgroup:active,.sassi-settings .btn-link:active,.sassi-settings .chk:active,.sassi-settings .fab:active{transform:scale(.96);filter:brightness(.85)}
.sassi-settings .row.opt-done,.sassi-settings .item.opt-done{opacity:.35;transition:opacity .25s,max-height .35s .2s,margin .35s .2s,padding .35s .2s;overflow:hidden;max-height:0;padding-top:0;padding-bottom:0;margin:0;border-width:0}
.sassi-settings #toast.err{background:rgba(248,113,113,.18);color:var(--bad)}
.sassi-settings .card.pending-sync{border:1px solid rgba(251,191,36,.45)}.sassi-settings .card.pending-sync h2 i{color:var(--warn)}.sassi-settings .card.pending-sync .meta i{color:var(--warn)}
.sassi-settings .sheet input,.sassi-settings .sheet textarea,.sassi-settings .sheet select{scroll-margin-block:90px}
.sassi-settings .card h2.cnt-plain .cnt{font-size:inherit;font-weight:inherit;color:inherit}
.sassi-settings .row.opt-undo,.sassi-settings .item.opt-undo{opacity:.8}
.sassi-settings .undo-btn .cnt{font-variant-numeric:tabular-nums;min-width:1.2em;text-align:center}
.sassi-settings .chips.tfilter a.chip .cnt{font-weight:500;opacity:.7;font-size:11px;background:none;padding:0}
.sassi-settings .chips a.chip .cnt{font-size:11px;font-weight:600;opacity:.8;padding:0 .35rem;border-radius:var(--r-pill);background:rgba(0,0,0,.18)}
.sassi-settings a.row{color:inherit;text-decoration:none}.sassi-settings a.row .chev{color:var(--dim);font-size:12px;flex:none}
.sassi-settings .search-empty a.pri{display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem;text-decoration:none}
.sassi-settings .storage{margin:0 0 .9rem}.sassi-settings .storage .bar{height:4px;border-radius:2px;background:var(--hover);margin-top:.4rem;overflow:hidden}.sassi-settings .storage .bar i{display:block;height:100%;background:var(--ac);border-radius:2px}.sassi-settings .storage .bar.warn i{background:var(--warn)}.sassi-settings .storage .bar.bad i{background:var(--bad)}
.sassi-settings .storage details.heavy{margin-top:.5rem}.sassi-settings .storage details.heavy summary{cursor:pointer;font-size:12.5px;list-style:none}.sassi-settings .storage details.heavy summary::-webkit-details-marker{display:none}.sassi-settings .storage details.heavy summary::before{content:'\25B8';display:inline-block;margin-inline-end:.35rem;transition:transform .15s}.sassi-settings .storage details.heavy[open] summary::before{transform:rotate(90deg)}
.sassi-settings .storage details.heavy a.row{padding:8px 0;gap:.6rem;font-size:13px}.sassi-settings .storage details.heavy a.row .ttl{font-size:13.5px}.sassi-settings .storage details.heavy a.row .meta{gap:.5rem}
body.lock .login input.code{letter-spacing:.4em;font-size:22px;text-align:center}
.sassi-settings .codes{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem .8rem;margin:.6rem 0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;direction:ltr;unicode-bidi:isolate}
.sassi-settings .codes b{display:block;padding:.35rem .5rem;background:var(--card);border-radius:8px;text-align:center;font-weight:500}
.sassi-settings .vault-toggle .hint{margin:0}
.sassi-settings .vault-h{margin:0 0 .4rem;font-size:17px}
.sassi-settings .vault-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start}
.sassi-settings .vault-link{background:none;border:0;padding:0;color:var(--dim);text-decoration:underline;align-self:flex-start;font-size:13px}
.sassi-settings .vault-ack{display:flex;flex-direction:row;align-items:center;gap:6px}
.sassi-settings .vault-key{padding:.6rem .7rem;background:var(--card);border-radius:8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;text-align:center;word-break:break-all;unicode-bidi:isolate}
.sassi-settings .vault-meter{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--dim);margin-top:-2px}
.sassi-settings .vault-meter i{flex:1;height:5px;border-radius:3px;background:var(--card);position:relative;overflow:hidden}
.sassi-settings .vault-meter i::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:calc(var(--s,0) * 25%);background:#ef4444}
.sassi-settings .vault-meter[data-s="2"] i::after{background:#f59e0b}
.sassi-settings .vault-meter[data-s="3"] i::after,.sassi-settings .vault-meter[data-s="4"] i::after{background:#10b981}
.sassi-settings .vault-user{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0;margin:0}
/* resets against an app's own global styles on the same class names (links 2026-09-15: its .card is a flex column, .row a filled
 * rounded card, .badge an absolute corner dot, .storage a grid): the family cards state these explicitly, so no app reset is needed */
.sassi-settings .card{display:block;gap:0}
.sassi-settings .row{background:transparent;border-radius:0}
.sassi-settings .badge{position:static}
.sassi-settings .storage{display:block}
.sassi-settings .card h2 i{color:inherit}
.sassi-settings .hint a,.sassi-settings ol a{color:var(--acText)}
/* the family card (family_card.php, 2026-09-17): the tile sits at the title, the status lives in the meta line, the two actions are small
   pills on one line - the app first (an account that exists), the bot quiet beside it; a join button sits at the row's end */
.sassi-settings .fam-row{align-items:flex-start}
.sassi-settings .fam-row form{align-self:center}
.sassi-settings .row .meta .ok{color:var(--ok)}
.sassi-settings .fam-acts{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}
.sassi-settings .fam-acts .btn-link{flex:none;padding:6px 12px;font-size:13px;font-weight:500;white-space:nowrap;gap:.4rem;min-height:32px}
.sassi-settings .fam-acts .btn-link.ghost{background:var(--hover);color:var(--txt);font-weight:400}
@media (hover:hover){.sassi-settings .fam-acts .btn-link.ghost:hover{background:var(--sunk);color:var(--txt)}}
/* the family strip on the settings root (family_strip.php, 2026-09-17): one card, a quiet title, the assistants as equal tiles in
   their own colours; only a "הצטרפות" tile is a link (to the family card), the others are plain */
.sassi-settings .fam-strip{padding-top:12px;padding-bottom:12px}
.sassi-settings .fam-strip-ttl{font-size:12.5px;color:var(--dim);margin:0 2px 8px}
.sassi-settings .fam-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:.4rem}
.sassi-settings .fam-tile{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.55rem .25rem .5rem;border-radius:var(--r-tile);color:inherit;text-decoration:none;text-align:center;background:var(--sunk)}
.sassi-settings .fam-tile .ic{width:40px;height:40px;border-radius:11px;display:block}
.sassi-settings .fam-row .fam-ic{width:34px;height:34px;border-radius:9px;flex:none;margin-top:1px}
.sassi-settings .fam-tile .nm{font-size:13px;font-weight:500;line-height:1.2}
.sassi-settings .fam-tile .st{font-size:12px;color:var(--dim);line-height:1.2}
.sassi-settings .fam-tile.has .st{color:var(--ok)}
.sassi-settings .fam-tile.join .st{color:var(--acText);font-weight:600}
.sassi-settings a.fam-tile.join{box-shadow:inset 0 0 0 1px var(--acSoft2, var(--acSoft))}
.sassi-settings a.fam-tile.join:active{background:var(--hover)}
@media (hover:hover){.sassi-settings a.fam-tile.join:hover{background:var(--hover)}}
/* the help card (shared/php/help_card.php) and the teaching empty state (help.php learn_box), 2026-09-18 */
.help-tour{display:flex;align-items:center;gap:12px;width:100%;text-align:right;padding:12px 14px;border:1px solid var(--acSoft2, var(--acSoft));border-radius:14px;background:var(--acSoft);font:inherit;color:var(--txt);cursor:pointer} /* stands out (owner 2026-09-18) */
.sassi-settings .help-tour .tile-sm,.help-tour .tile-sm{background:var(--ac);color:var(--ink);font-size:16px}
.help-tour .tile-sm{flex:none}.help-tour > span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.help-tour b{font-size:16px;color:var(--acText)}.help-tour small{color:var(--dim);font-weight:300;font-size:12.5px;line-height:1.5}
@media (hover:hover){.help-tour:hover{filter:brightness(1.15)}}
.help-list{display:flex;flex-direction:column;gap:2px}
.help-item{border-top:1px solid var(--border)}.help-item:first-child{border-top:0}
.help-item summary{cursor:pointer;padding:.55rem 0;font-size:14.5px;list-style:none;display:flex;align-items:center;gap:.5rem}
.help-item summary::-webkit-details-marker{display:none}.help-item summary::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ac);flex:none;transition:transform .15s}
.help-item[open] summary::before{transform:scale(1.4)}
.help-a{color:var(--body);font-weight:300;font-size:14px;line-height:1.65;padding:0 1.1rem .7rem 0}
.empty.learn{text-align:right;padding:.9rem 1rem}
.empty.learn .learn-lead{color:var(--body);font-weight:400;margin-bottom:.55rem;line-height:1.6}
.empty.learn.loud{border-style:solid;border-color:var(--acSoft2, var(--acSoft))}
.empty.learn .learn-ex{display:flex;flex-wrap:wrap;gap:.4rem}
.empty.learn .chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .7rem;border-radius:var(--r-pill);background:var(--acSoft);color:var(--acText);font-size:13px;font-weight:500;border:0;font-family:inherit;cursor:pointer;text-align:right;line-height:1.4}
.empty.learn .chip i{font-size:12px;opacity:.8}
@media (hover:hover){.empty.learn .chip:hover{background:var(--ac);color:var(--ink)}}

/* an owner message in the app (shared/php/broadcast.php notice_strip, 2026-09-19): calm, accent-tinted, until "הבנתי" */
.flash.notice{background:var(--acSoft);color:var(--txt);border:1px solid rgba(59,130,246,.35)}
.flash.notice>i{color:var(--acText);margin-top:.15rem}
/* the text keeps a readable width; when the buttons do not fit beside it they drop below it instead of squeezing it to
   one letter a line (owner 2026-09-21: a phone with a bigger system font, which zooms the page, got exactly that) */
.flash.notice{flex-wrap:wrap}
.flash.notice>.grow{flex:1 1 12em;min-width:0}
