/* San Fran Locksmith: accessibility settings */
.sfa{position:fixed;z-index:59;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(var(--sf-dock,20px) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:flex-start;gap:10px;pointer-events:none;font-family:var(--body);color:var(--ink)}
.sfa *{box-sizing:border-box}
.sfa [hidden]{display:none!important}
.sfa-btn{pointer-events:auto;position:relative;width:48px;height:48px;border-radius:12px;border:2px solid var(--line);background:var(--card);color:var(--navy-2);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px rgba(14,26,40,.22)}
.sfa-btn svg{width:28px;height:28px}
.sfa-dot{position:absolute;top:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:var(--ok);border:2px solid var(--card)}
.sfa-btn:focus-visible,.sfa-panel button:focus-visible,.sfa-panel a:focus-visible{outline:3px solid var(--gg);outline-offset:3px}
.sfa-panel{pointer-events:auto;width:min(330px,calc(100vw - 32px));max-height:calc(100vh - var(--sf-dock,20px) - 90px);overflow:auto;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 22px 56px rgba(14,26,40,.38)}
.sfa-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card)}
.sfa-head h2{margin:0;flex:1;font-family:var(--display);font-weight:800;font-size:19px;color:var(--ink)}
.sfa-x{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:none;color:var(--ink);font-size:18px;cursor:pointer}
.sfa-list{list-style:none;margin:0;padding:4px 16px}
.sfa-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line)}
.sfa-row:last-child{border-bottom:0}
.sfa-row .lab{flex:1;font-size:15px;font-weight:600}
.sfa-sw{position:relative;width:46px;height:26px;border-radius:13px;border:0;background:var(--line);cursor:pointer;flex:none;padding:0}
.sfa-sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .15s}
.sfa-sw[aria-checked=true]{background:var(--ok)}
.sfa-sw[aria-checked=true]::after{left:23px}
[dir=rtl] .sfa-sw::after{left:auto;right:3px}
.sfa-step{display:flex;align-items:center;gap:6px}
.sfa-step button{width:34px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:800;font-size:17px;cursor:pointer}
.sfa-step output{min-width:46px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}
.sfa-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px 14px;border-top:1px solid var(--line);font-size:14px}
.sfa-reset{border:0;background:none;color:var(--red);font:inherit;font-weight:700;cursor:pointer;padding:4px 0}
.sfa-foot a{color:var(--muted)}
@media print{.sfa{display:none}}
/* adjustments */
html.sfa-t1{font-size:115%}html.sfa-t1 body{font-size:115%}
html.sfa-t2{font-size:130%}html.sfa-t2 body{font-size:130%}
html.sfa-contrast body *:not(svg):not(svg *):not(img):not(picture){color:#000!important;background-color:#fff!important;background-image:none!important;border-color:#000!important;text-shadow:none!important;box-shadow:none!important}
html.sfa-contrast a,html.sfa-contrast a *{color:#0033CC!important;text-decoration:underline!important}
html.sfa-contrast .sfm-pill,html.sfa-contrast .sfm-send,html.sfa-contrast .sfm-head,html.sfa-contrast .sfa-sw[aria-checked=true]{background-color:#000!important;color:#fff!important}
html.sfa-contrast .sfm-pill *,html.sfa-contrast .sfm-head *,html.sfa-contrast .sfm-send *{color:#fff!important;background-color:transparent!important}
html.sfa-contrast .sfa-sw::after{background:#000!important}html.sfa-contrast .sfa-sw[aria-checked=true]::after{background:#fff!important}
html.sfa-links a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px}
html.sfa-font body,html.sfa-font body *:not(svg):not(svg *){font-family:Verdana,Tahoma,"Noto Sans TC","Microsoft JhengHei",Arial,sans-serif!important}
html.sfa-spacing body *:not(svg):not(svg *){line-height:1.75!important;letter-spacing:.05em!important;word-spacing:.14em!important}
html.sfa-still *,html.sfa-still *::before,html.sfa-still *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.sfa-cursor,html.sfa-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11-6.5 1 4 7-3 1.5-4-7L4 20z' fill='%23000' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") 6 3,auto!important}
