/* Shared accessibility layer (Karen). Load after Roy's theme. */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:.5rem;top:-3rem;padding:.75rem 1rem;background:var(--primary);color:var(--on-primary);z-index:1000;border-radius:.375rem}
.skip-link:focus{top:.5rem}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
button,.btn,a.btn,input[type=radio]+*,.slot-option,select,input:not([type=radio]):not([type=checkbox]){min-height:44px}
.btn,button{min-width:44px;padding:.625rem 1rem;font-size:1rem}
.slot-option{display:flex;align-items:center;gap:.5rem;padding:.5rem}
input[type=radio],input[type=checkbox]{width:1.25rem;height:1.25rem}
.field-error{color:var(--danger);font-weight:600;margin:.25rem 0}   
[aria-invalid=true]{border-color:var(--danger);border-width:2px}
.hint{color:var(--muted);margin:.25rem 0}                          
.btn-danger{background:var(--danger);color:var(--on-primary)}                    
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus{outline:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.btn,button{border:1px solid ButtonText}}
.slot-pick,.slot-day{border:0;padding:0;margin:0 0 1rem}.slot-day{display:grid;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.25rem}
.appt-summary{display:grid;grid-template-columns:max-content 1fr;gap:.25rem 1rem}
.action-error{padding:.5rem .75rem;border-left:4px solid var(--danger);background:var(--surface-2);border-radius:var(--radius-sm)}
.action-error::before{content:"\26A0\FE0E  "}
