/* r10 safe: styles of this area; logical properties only, colours from the tokens */

/* PR-28 text size: every size in the app is in rem, so the root carries the choice to every screen */
html.ts-l{font-size:112.5%}
html.ts-xl{font-size:125%}

/* ---------- screens of this area (#xv) ---------- */
#xv .sf-bar{gap:.75rem}
.sf-scroll{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:1rem;padding-block:1rem;font-size:var(--fs-m);color:var(--ink)}
html.m .sf-scroll{padding-inline:16px;overflow:visible}
.sf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:1rem;align-items:start}
.sf-b{padding:1.25rem;border-radius:var(--r-card);display:flex;flex-direction:column;gap:.75rem;min-width:0}
.sf-b h2{margin:0;font-size:1.125rem;font-weight:700;display:flex;align-items:center;gap:.625rem;color:var(--ink)}
.sf-bic{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;flex:none;background:var(--action-soft);color:var(--action)}
.sf-b p{margin:0;line-height:1.6}
.sf-h3{margin:0;font-size:var(--fs-m);font-weight:600}
.sf-bh{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.sf-note{display:flex;gap:.5rem;align-items:flex-start;margin:0;font-size:var(--fs-s);line-height:1.6;color:var(--body)}
.sf-warn{display:flex;gap:.5rem;align-items:flex-start;margin:0;padding:.75rem .875rem;border-radius:12px;background:var(--s-owe-f);color:var(--ink);font-size:var(--fs-m);line-height:1.5;border-inline-start:4px solid var(--s-owe-e)}
.sf-act{display:flex;flex-wrap:wrap;gap:.5rem}
.sf-act .pbtn,.sf-act a.pbtn{min-height:44px}
.sf-dl{display:grid;gap:.375rem;margin:0}
.sf-dl>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding-block:.375rem;border-block-end:1px solid var(--line-soft)}
.sf-dl dt{color:var(--body);font-size:var(--fs-s)}
.sf-dl dd{margin:0;font-weight:600}
.sf-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sf-rows>li{display:flex;align-items:center;gap:.75rem;min-height:56px;padding-block:.5rem;border-block-end:1px solid var(--line-soft);flex-wrap:wrap}
.sf-rows>li:last-child{border-block-end:0}
.sf-m{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.sf-m b{font-weight:600}
.sf-m>span{font-size:var(--fs-s);color:var(--body)}
.sf-b .tg.ok{background:var(--s-done-f);color:var(--ink)}
.sf-empty{color:var(--body)}
.sf-st{display:flex;gap:.375rem;align-items:center;color:var(--ink);font-weight:500}
.sf-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:.75rem}
.sf-f{display:flex;flex-direction:column;gap:.5rem}
.sf-l{font-weight:600}
.sf-sample{font-size:var(--fs-m);color:var(--ink);padding:.625rem .875rem;border-radius:12px;background:var(--band)}
.sf-saved{min-height:1.25rem;font-size:var(--fs-s);color:var(--body)}
.sf-sel select{max-width:16rem}
.sf-sw .sf-swv{margin-inline-start:auto;font-size:var(--fs-s);color:var(--body)}
.sf-sw{padding-inline:0}
/* a segmented choice made of real radios (arrow keys move inside, the choice is announced) */
.sf-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:999px;background:var(--band);max-width:100%;align-self:flex-start}
.sf-sg{position:relative;display:inline-flex}
.sf-sg input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.sf-sg span{display:inline-flex;align-items:center;min-height:44px;padding-inline:1rem;border-radius:999px;font-size:var(--fs-m);color:var(--body)}
.sf-sg input:checked+span{background:var(--sheet);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(var(--sh),.2)}
.sf-sg input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.sf-steps{display:flex;gap:.5rem;list-style:none;margin:0 0 .5rem;padding:0;flex-wrap:wrap}
.sf-steps li{padding:.25rem .75rem;border-radius:999px;background:var(--band);font-size:var(--fs-s);color:var(--body)}
.sf-steps li.on{background:var(--action-soft);color:var(--ink);font-weight:600}
.sf-qr{width:144px;height:144px;border-radius:12px;display:grid;place-items:center;background:var(--band);color:var(--ink);margin-block:.5rem}
.sf-qr .i{width:64px;height:64px}
.sf-codes{list-style:none;margin:0;padding:.75rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;border-radius:12px;background:var(--band);font-size:var(--fs-m)}
.sf-mail{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-radius:12px;background:var(--band)}
.sf-mail a{color:var(--action-text,var(--ink))}
.sf-ul{margin:0;padding-inline-start:1.25rem;list-style:disc;display:flex;flex-direction:column;gap:.25rem}
.sf-filt{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:.75rem;align-items:end}
.sf-day{margin:0;font-size:var(--fs-m);font-weight:700;color:var(--ink)}
.sf-log{padding:0}
.sf-ac{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap}
.sf-ac .ac-src{margin-inline-start:auto}
html.m .sf-ac .ac-src{margin-inline-start:0}
.sf-pn{filter:blur(4px);user-select:none}
.sf-sk{display:flex;flex-direction:column;gap:.75rem}
.sf-sk .shm{display:block;height:56px;border-radius:16px}

/* the bar one minute before the lock (PR-18) */
.sf-cd{position:fixed;z-index:80;inset-block-end:16px;inset-inline:16px;max-width:520px;margin-inline:auto;display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem .625rem 1rem;border-radius:16px;background:var(--sheet);color:var(--ink);box-shadow:0 10px 30px -12px rgba(var(--sh),.5),0 0 0 1px var(--line);font-size:var(--fs-m)}
.sf-cd span{flex:1}
/* the lock and the sign-in page: opaque, nothing of the page behind shows (PR-18) */
.sf-over{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:var(--page);overflow:auto}
.sf-ocard{width:min(100%,440px);display:flex;flex-direction:column;gap:.875rem;padding:1.5rem;border-radius:var(--r-sheet,24px);background:var(--sheet);color:var(--ink);box-shadow:0 20px 50px -24px rgba(var(--sh),.5),0 0 0 1px var(--line-soft)}
.sf-ocard h2{margin:0;font-size:1.375rem;line-height:1.3}
.sf-ocard p{margin:0;line-height:1.6}
.sf-oic{width:56px;height:56px;border-radius:999px;display:grid;place-items:center;background:var(--action-soft);color:var(--action)}
.sf-oic .i{width:26px;height:26px}
.sf-ocard .lnk{align-self:flex-start;min-height:44px}

/* requests, the export and the yearly check (PR-08, PR-09, PR-13) */
.sf-q{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.sf-q legend{font-weight:600;margin-block-end:.5rem;width:100%}
.sf-q .chip{min-height:44px}
.sf-cmp{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;border-radius:12px;background:var(--band)}
.sf-split{display:flex;flex-direction:column;gap:.75rem}
.sf-split>section{padding:.75rem .875rem;border-radius:12px;background:var(--band)}
.sf-ext summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--body)}
.sf-ext{display:flex;flex-direction:column;gap:.5rem}
.sf-cnt{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:.375rem}
.sf-cnt li{display:flex;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-radius:10px;background:var(--band);font-size:var(--fs-m)}
.sf-rv{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}
.sf-err{color:var(--s-no-k,var(--ink));font-weight:600}
.st-card.sf-myreq{display:flex;flex-direction:column;gap:.75rem}
.st-card.sf-myreq h2{margin:0;font-size:var(--fs-m);font-weight:700;display:flex;align-items:center;gap:.5rem}

/* the patient's AI consent row and chip (PR-23): status in words, never colour alone */
.cons-ai{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.75rem;margin-block-start:.5rem;border-radius:12px;background:var(--band)}
.cons-ai .sf-m{min-width:12rem}
.cons-ai small{flex-basis:100%}
.tg.sf-aioff{background:var(--sheet);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.tg.sf-aiok{background:var(--s-done-f);color:var(--ink)}

/* the keyboard board (PR-31): a centred dialog, focus kept inside */
.sf-keys{position:fixed;z-index:95;inset-block-start:50%;inset-inline-start:50%;transform:translate(50%,-50%);width:min(calc(100% - 32px),420px);display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;border-radius:var(--r-sheet,24px);background:var(--sheet);color:var(--ink);box-shadow:0 20px 50px -24px rgba(var(--sh),.5),0 0 0 1px var(--line-soft)}
html[dir="ltr"] .sf-keys{transform:translate(-50%,-50%)}
.sf-keys h2{margin:0;font-size:1.125rem}
.sf-keys .hp-h{display:flex;align-items:center;gap:.5rem}

/* buttons inside the lock and sign-in cards (outside the shared sheet, which sizes its own) */
.sf-ocard .dr-btns{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.sf-ocard .primary{padding-inline:1.5rem;min-width:7rem;white-space:nowrap}
.sf-keys .dr-btns{display:flex;justify-content:flex-start}

/* the user menu (this area owns its privacy and display rows): a select stays readable in dark mode */
html[data-pal="dark"] .umenu select{background-color:var(--sheet);color:var(--ink)}

/* r10 fix PR-08: the card banner while a request on the patient's data is open, and the request type in פניות */
.sf-reqb{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;padding:.5rem .75rem;border-radius:12px;background:var(--s-conf-f);color:var(--s-conf-k);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--s-conf-e) 24%,transparent);font-size:var(--fs-m);line-height:1.5}
.sf-reqb>span{display:flex;flex-direction:column;flex:1;min-width:12rem}
.sf-reqb small{font-size:var(--fs-s);color:inherit}
.sf-reqb .pbtn{min-height:44px}
.sf-lpv{padding:1rem}
.sf-lpv .sf-log{display:grid;gap:.75rem;margin-top:.75rem}
.sf-lpv .tp-foot a{color:var(--action)}
/* r10 fix PR-34: the team pane's header link to the valid permission list; on a narrow screen it takes its own row */
.st-ph .st-rights{min-height:44px;white-space:nowrap;text-decoration:none}
.st-ph:has(.st-rights){flex-wrap:wrap}
.st-ph:has(.st-rights) .t{flex:1 1 10rem}
html.m .st-ph .st-rights{order:4;flex:1 1 100%;justify-content:center}
