/* Shared device contract: safe areas, touch, keyboard viewport and native zoom. */
:root {
  --rs-safe-top: env(safe-area-inset-top, 0px);
  --rs-safe-right: env(safe-area-inset-right, 0px);
  --rs-safe-bottom: env(safe-area-inset-bottom, 0px);
  --rs-safe-left: env(safe-area-inset-left, 0px);
  --rs-visual-height: 100dvh;
  --rs-visual-top: 0px;
  --rs-touch-size: 44px;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-block: calc(var(--rs-safe-top) + 76px) calc(var(--rs-safe-bottom) + 24px);
}
body :is(input, textarea) { caret-color: var(--rs-primary, #2563eb); }
body :is(input, textarea)::placeholder { color: var(--rs-muted, #596579); opacity: 1; }
/* Background shortcuts must not cover the dialog's purchase or form actions. */
body:has(.product-modal.active, .modal-overlay.open, .checkout-modal-overlay) :is(.floating-whatsapp-button, .accessibility-widget) {
  visibility: hidden; pointer-events: none;
}
.rs-password-field { position: relative; min-width: 0; width: 100%; }
body .rs-password-field > input { width: 100%; padding-inline-end: 58px; }
body .rs-password-toggle {
  position: absolute; inset-inline-end: 4px; inset-block-start: 50%; transform: translateY(-50%);
  display: grid; place-items: center; width: 44px; height: 44px; min-height: 44px;
  padding: 0; border: 0; border-radius: 8px; color: var(--rs-ink-soft, #344054);
  background: transparent; font-size: 1rem; cursor: pointer; touch-action: manipulation;
}
.rs-password-toggle:focus-visible { outline: 2px solid var(--rs-primary, #2563eb); outline-offset: -2px; }
@media (hover: hover) {
  body .rs-password-toggle:hover { background: var(--rs-primary-soft, #eaf0fe); }
}
@media (max-width: 820px), (pointer: coarse) {
  /* 16px is Safari's input zoom threshold; pinch zoom remains available. */
  body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="button"]):not([type="submit"]), select, textarea) {
    font-size: max(1rem, 16px) !important;
    min-height: var(--rs-touch-size);
    scroll-margin-block: 88px 24px;
  }
  body :is(button, .btn, [role="button"], summary) { min-width: var(--rs-touch-size); min-height: var(--rs-touch-size); touch-action: manipulation; }
  body summary { align-content: center; }
  body .accessibility-trigger { min-width: var(--rs-touch-size); }
  body .site-footer a,
  body .plain-link,
  body .login-footer a,
  body .footer-link a,
  body .store-detail-item a,
  body.contact-page a.info-value,
  body .account-footer a,
  body #page-orders a[href^="mailto:"],
  body .carousel-content > a {
    display: inline-flex; align-items: center; min-height: var(--rs-touch-size); min-width: var(--rs-touch-size);
  }
  body .rs-check-target { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: 0; cursor: pointer; }
  body .rs-check-target input[type="checkbox"] { width: 20px; height: 20px; min-height: 20px; padding: 0; margin: 0; }
  body :is(.btn-icon, .modal-close, .menu-toggle, .account-icon-btn, .cart-close) { min-width: var(--rs-touch-size); }
  body :is(.container, .header-content) {
    padding-left: max(16px, var(--rs-safe-left)); padding-right: max(16px, var(--rs-safe-right));
  }
  body :is(.modal-overlay, .checkout-modal-overlay, .product-modal) {
    inset-block: var(--rs-visual-top) auto; height: var(--rs-visual-height);
    padding-top: max(8px, var(--rs-safe-top)); padding-bottom: var(--rs-safe-bottom);
    overscroll-behavior: contain;
  }
  body .modal-overlay > .modal,
  body .checkout-modal-overlay > .checkout-modal-box,
  body .product-modal > .modal-content {
    max-height: calc(var(--rs-visual-height) - var(--rs-safe-top) - var(--rs-safe-bottom) - 16px);
  }
  body :is(.modal-body, .checkout-flow-body, .modal-details, .cart-items) {
    min-height: 0; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  }
  body :is(.modal-footer, .modal-foot, .cart-footer, .checkout-flow-actions, .wizard-actions) {
    padding-bottom: max(16px, var(--rs-safe-bottom));
  }
  body .cart-sidebar { top: var(--rs-visual-top); height: var(--rs-visual-height); padding-top: var(--rs-safe-top); }
  body .cookie-consent { bottom: max(8px, var(--rs-safe-bottom)); }
  html[data-rs-keyboard="open"] .cookie-consent { position: static; margin: 12px; }
}
@media (max-width: 520px) {
  body:has(.login-wrapper), body.super-admin-login-page {
    min-height: 100svh;
    padding-top: max(16px, var(--rs-safe-top));
    padding-bottom: max(24px, var(--rs-safe-bottom));
    padding-left: max(16px, var(--rs-safe-left)); padding-right: max(16px, var(--rs-safe-right));
  }
  .login-wrapper { width: min(100%, 420px); }
}
