/* MEDIOUSAO · shared control scale. Load after page styles.
   Action capsules, compact filters, circular icon controls, and text links
   keep distinct roles. Cards, navigation rows, maps and form fields are excluded. */
:root {
  --med-control-radius: 999px;
  --med-action-height: 44px;
  --med-action-font: 14px;
  --med-control-padding: 18px;
  --med-filter-height: 36px;
  --med-filter-font: 12px;
  --med-focus-color: #916b32;
}
body.admin-body, body.med-delivery-admin {
  --med-action-height: 36px;
  --med-action-font: 12px;
  --med-control-padding: 14px;
  --med-filter-height: 34px;
  --med-filter-font: 12px;
}

/* Storefront actions, including controls created when a dialog opens. */
body.med-controls :is(.primary-button,.secondary-button,.auth-primary,
  .med-card-action,.med-cart-continue,.med-cart-checkout,.med-confirm-order,
  .admin-login-submit,.profile-logout,.account-address-actions button,
  .account-session-row button,#continueShopping,#applyCoupon,#removeCoupon,
  #editProfileButton,#notificationButton,
  #verifyDeliveryLocation,#deliveryChoosePickup,#confirmDeliveryPin,#locateDelivery,
  #activateTeamForm>button):not([hidden]) {
  box-sizing: border-box !important;
  min-height: var(--med-action-height) !important;
  height: auto !important;
  max-width: 100%;
  border-radius: var(--med-control-radius) !important;
  padding: 10px var(--med-control-padding) !important;
  font-family: inherit !important;
  font-size: var(--med-action-font) !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  text-align: center !important;
  display: inline-flex;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
/* Two-column product cards need a smaller label without a smaller touch target. */
body.med-controls :is(#featuredTrack,#noveltiesGrid,#upcomingTrack) .med-card-action {
  padding-inline: 10px !important;
  font-size: 13px !important;
}
body.med-controls .med-cart-actions { align-items: stretch !important; gap: 10px !important; }
body.med-controls .med-cart-footer .med-cart-actions>a,
body.med-controls .med-cart-footer .med-cart-actions>button { align-self: stretch; }

/* Reusable admin actions. No universal button rule: rows and cards are not CTAs. */
body.med-controls.admin-body :is(.admin-primary,.admin-secondary,.admin-danger,
  .admin-workbar-primary,.admin-workbar-secondary,.admin-exit,.admin-settings-back,
  .med-clients-back,.admin-team-member-actions button,
  .admin-product-workspace-actions>button,.admin-bulk-toolbar>button,
  .admin-photo-actions>button,.admin-image-actions>button,
  [data-make-cover],[data-replace-photo],[data-remove-photo],
  #saveProductButton,#clearProductFilter):not([hidden]) {
  box-sizing: border-box !important;
  min-height: var(--med-action-height) !important;
  height: auto !important;
  border-radius: var(--med-control-radius) !important;
  padding: 7px var(--med-control-padding) !important;
  font-family: inherit !important;
  font-size: var(--med-action-font) !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  text-align: center !important;
  display: inline-flex;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px;
  max-width: 100%;
  touch-action: manipulation;
}
/* Reservation grid used to impose a fixed height that could clip wrapped text. */
body.med-controls.admin-body #adminReservationsList .med-admin-reservation-actions>button {
  height: auto !important;
  min-height: var(--med-action-height) !important;
  padding: 7px 10px !important;
  font-size: var(--med-action-font) !important;
  line-height: 1.35 !important;
  white-space: normal !important;
}

/* Filter and tab hierarchy: same scale, existing selected states are preserved. */
body.med-controls :is(.auth-tab,.category-chip,.account-order-filters>button,.admin-filter-tabs>button),
body.med-controls.home-dark.med-custom-design .category-chip,
body.med-controls.admin-body .admin-catalog-filters .admin-filter-tabs>button,
body.med-controls.admin-body :is(#adminOrderGroups,#adminReservationFilters)>button {
  box-sizing: border-box !important;
  min-height: var(--med-filter-height) !important;
  height: auto !important;
  border-radius: var(--med-control-radius) !important;
  padding: 7px 12px !important;
  font-size: var(--med-filter-font) !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  display: inline-flex;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: normal !important;
  text-align: center;
  touch-action: manipulation;
}
/* Category labels stay on one line; long labels can widen without growing taller. */
body.med-controls .category-strip .category-chip,
body.med-controls.home-dark.med-custom-design .category-strip .category-chip {
  flex: 0 0 auto !important;
  width: max-content !important;
  min-width: 142px !important;
  height: var(--med-filter-height) !important;
  white-space: nowrap !important;
}
@media (max-width:760px) {
  body.med-controls .category-strip .category-chip,
  body.med-controls.home-dark.med-custom-design .category-strip .category-chip {
    min-width: 132px !important;
  }
}
body.med-controls .auth-tabs { border-radius: var(--med-control-radius); gap: 4px; padding: 4px; }
body.med-controls .auth-tab { min-height: 40px !important; font-size: 13px !important; }
body.med-controls.admin-body :is(.admin-filter-tabs,.admin-sort-controls) { gap: 6px !important; }
body.med-controls.admin-body :is(.admin-product-workspace-actions,.admin-bulk-toolbar,
  .admin-order-actions,.admin-team-member-actions) { align-items: center; gap: 8px; }
body.med-controls.admin-body .admin-nav-toggle {
  border-radius: var(--med-control-radius) !important;
  min-height: 44px;
  padding: 8px 14px;
  font-size: 12px;
}

/* Destructive actions remain secondary, visibly different from save/publish. */
body.med-controls.admin-body :is(.admin-primary,.admin-workbar-primary) {
  background: #805d2f !important;
  border-color: #805d2f !important;
  color: #fff !important;
  box-shadow: none;
}
body.med-controls.admin-body .admin-danger,
body.med-controls #deleteAccountSubmit {
  color: #96372d !important;
  background: #fff !important;
  border: 1px solid #dcb6b1 !important;
}
body.med-controls :is(.auth-text-action,.admin-text-link,.med-cart-remove,
  .admin-reservation-history) {
  min-height: 32px;
  line-height: 1.4;
  border-radius: 0 !important;
  text-underline-offset: 3px;
}

/* Keep icon-only actions round instead of turning arrows into wide pills. */
body.med-controls.admin-body :is(.admin-sort-controls>button,
  .admin-featured-controls>button,.admin-photo-move-row>button,.admin-mini-danger,#medVariantClose) {
  box-sizing: border-box;
  width: 34px !important;
  min-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  display: inline-grid !important;
  place-items: center !important;
  line-height: 1 !important;
}
body.med-controls.admin-body .admin-photo-move-row {
  display: flex;
  justify-content: center;
  gap: 8px;
}
body.med-controls #closeDeliveryPicker {
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border-radius: 50% !important;
}
body.med-controls .med-choice-card {
  box-sizing: border-box;
  min-height: 44px !important;
  border-radius: var(--med-control-radius) !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}

/* Delivery editor is a standalone admin page; map handles/results keep their role. */
body.med-delivery-admin button:not(.place-result):not(.leaflet-interactive):not(.zone-handle):not(.zone-midpoint) {
  min-height: var(--med-action-height) !important;
  border-radius: var(--med-control-radius) !important;
  padding: 7px 14px !important;
  font-size: var(--med-action-font) !important;
  line-height: 1.35 !important;
  font-weight: 650;
  white-space: normal;
}
body.med-delivery-admin .map-tools { border-radius: 18px !important; }

/* Keyboard and disabled states remain recognizable across light and dark pages. */
body.med-controls :is(button,a[role="button"],a.primary-button,a.secondary-button,a.med-cart-checkout):not(.med-cart-close):focus-visible {
  outline: 2px solid var(--med-focus-color) !important;
  outline-offset: 3px !important;
}
body.med-controls :is(button,[role="button"]):disabled,
body.med-controls [aria-disabled="true"] { cursor: not-allowed !important; }
body.med-controls button:disabled { opacity: .5; }

@media (max-width:700px), (pointer:coarse) {
  body.med-controls { --med-filter-height: 40px; }
  body.med-controls.admin-body, body.med-delivery-admin {
    --med-action-height: 44px;
    --med-filter-height: 44px;
  }
  body.med-controls.admin-body :is(.admin-sort-controls>button,
    .admin-featured-controls>button,.admin-photo-move-row>button,.admin-mini-danger,#medVariantClose) {
    width: 40px !important; min-width: 40px !important;
    height: 40px !important; min-height: 40px !important;
  }
  body.med-controls .auth-tab { min-height: 44px !important; }
}
@media (max-width:620px) {
  body.med-controls :is(#featuredTrack,#noveltiesGrid,#upcomingTrack) .med-card-action { font-size: 12px !important; }
}
