.td-skip-link{position:fixed;left:16px;top:12px;z-index:2147483647;padding:11px 16px;border:2px solid #fff;border-radius:10px;background:#17152d;color:#fff;font:600 15px/1.2 system-ui;text-decoration:none;box-shadow:0 4px 20px #0005;transform:translateY(-160%);transition:transform .16s ease}
.td-skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #2563eb!important;outline-offset:3px!important;box-shadow:0 0 0 5px #fff!important}
:where(button,[role="button"],a,input,select,textarea){touch-action:manipulation}
.td-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[aria-disabled="true"],:disabled{cursor:not-allowed;opacity:.72!important;color:#5b6475!important}

/* El envío del login conserva contraste mientras la solicitud está en curso. */
body.auth-bg #f .btn.primary:disabled{border-color:#5146c9!important;background:#5146c9!important;color:#fff!important;opacity:1!important;box-shadow:0 8px 20px rgba(81,70,201,.2)!important;cursor:wait!important}
.td-field-error{display:block;margin-top:6px;color:#a51d2d;font-size:13px!important;line-height:1.4}
[aria-invalid="true"]{border-color:#b42335!important;box-shadow:0 0 0 1px #b42335!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (forced-colors:active){:where(a,button,input,select,textarea,[role="button"]){border:1px solid ButtonText}.primary,.button{forced-color-adjust:auto}}
html{max-width:100%;overflow-x:clip;scroll-padding-top:80px}
body{max-width:100%;min-height:100dvh;overflow-x:clip;padding-bottom:env(safe-area-inset-bottom)}
.ui-line-icon{width:1.1em;height:1.1em;flex:0 0 1.1em;vertical-align:-.18em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:where(input,select,textarea,button,a,[tabindex]){scroll-margin:96px 12px}
:where(.table-wrap,[class*="table-wrap"],[class*="table-scroll"]){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
:where([role="dialog"],.manual-modal,.qr-modal,.td-confirm,.setup-modal,.client-confirm){max-height:var(--td-viewport-height,100dvh);overscroll-behavior:contain}
@media(max-width:430px){
 :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){max-width:100%;font-size:16px!important}
 :where(button,.btn,.button,[role="button"]){min-width:44px;min-height:44px!important}
 :where([role="dialog"],.manual-modal,.qr-modal,.td-confirm,.setup-modal,.client-confirm){padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}
 :where(.panel-card,.card,form,fieldset){min-width:0}
 img,canvas,svg,video,iframe{max-width:100%}
}
@media(max-width:700px){
 :where(button,.btn,.button,[role="button"],summary){min-width:44px;min-height:44px!important}
 :where(nav a,header a,.actions a,.appointment-links a,.place-controls a,.account-actions a,.unified-actions a){min-height:44px}
}
@media(max-height:430px) and (orientation:landscape){
 :where([role="dialog"],.manual-modal,.qr-modal,.td-confirm,.setup-modal,.client-confirm){align-items:flex-start!important;overflow-y:auto!important}
 .td-skip-link{top:6px}
}
@media(min-resolution:1.5dppx){:where(button,.btn,.button,[role="button"],a){text-rendering:optimizeLegibility}}
/* Contraste AA en acceso, navegación y estados secundarios. */
.auth-passwordless-link{color:#0069b5!important}
.auth-card>p,.auth-card .center,.google-auth-divider{color:#626b7d!important}
.panel-nav .simple-nav button.plan-nav-locked{color:#606979!important}
.feature-plan-label.level-plus{color:#0f6f46!important}
.today-empty p,.panel-main .empty{color:#596376!important}
.mobile-app-nav .mobile-personal-turns{color:#006da8!important}

@media(max-width:700px){
 html.td-keyboard-open body:has(.td-mobile-nav){padding-bottom:env(safe-area-inset-bottom)!important}
 html.td-keyboard-open .td-mobile-nav{transform:translateY(calc(100% + env(safe-area-inset-bottom)))!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
 .td-mobile-nav{transition:transform .18s ease,opacity .18s ease,visibility 0s linear .18s}
 html:not(.td-keyboard-open) .td-mobile-nav{transition-delay:0s}
}

/* Piso tipográfico compartido: evita textos diminutos en panel, app y páginas públicas. */
body{font-size:16px}
:where(small){font-size:12px!important;line-height:1.4}
:where(.field-help,[class*="-help"],[class*="-hint"]){font-size:13px!important;line-height:1.45}
:where(button,.btn,.button,[role="button"]){font-size:14px!important;line-height:1.25}
:where(input,select,textarea){font-size:14px;line-height:1.35}
:where(label){font-size:14px;line-height:1.4}

/* CTAs públicos: legibles sin el aspecto excesivamente pesado de extra-bold. */
body:not(.panel-bg) :where(a.button,a.btn,a.primary-cta,a.top-cta,.actions>a,.cta>a,.nav-actions>a.button){font-weight:600!important}
