/* --------------------------------------------------------------------------
   Fase 15: responsividade e acessibilidade transversal
   --------------------------------------------------------------------------
   Regras de reflow, zoom, toque, foco e semântica que fecham o redesign Web
   sem alterar os fluxos, contratos de dados ou regras de negócio.
*/

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--sf-topbar-height) + var(--sf-spacing-4));
}

body {
  min-width: 20rem;
  overflow-x: hidden;
}

:where(
  .sf-layout,
  .sf-shell,
  .sf-workspace,
  .sf-main,
  .sf-page-content,
  .sf-card,
  .sf-modal-panel,
  .sf-table-card,
  .sf-listing-card,
  .sf-form-grid,
  .sf-filter-grid,
  .sf-action-group,
  .sf-topbar-inner,
  .sf-topbar-leading,
  .sf-topbar-context
) {
  min-width: 0;
}

:where(
  .sf-card,
  .sf-modal-panel,
  .sf-page-content,
  .sf-table-primary,
  .sf-table-secondary,
  .sf-help-text,
  .sf-alert,
  .sf-note,
  .sf-empty-state,
  .sf-listing-subtitle,
  .sf-topbar-page-description
) {
  overflow-wrap: anywhere;
}

:where(img, svg, video, canvas) {
  max-width: 100%;
}

:where(input, select, textarea, button) {
  font: inherit;
}

:where(textarea) {
  resize: vertical;
}

.sf-a11y-live-region,
.sf-table-scroll-hint {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--sf-ring-secondary);
  outline-offset: 3px;
  scroll-margin-block: calc(var(--sf-topbar-height) + var(--sf-spacing-4));
}

:where(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--sf-danger);
  box-shadow: 0 0 0 3px var(--sf-danger-soft);
}

:where(.sf-field-error, [data-sf-field-error]) {
  color: var(--sf-danger-text);
  font-weight: var(--sf-font-weight-semibold);
}

.sf-skip-link,
.sf-auth-skip,
.sf-public-skip {
  max-width: calc(100vw - (2 * var(--sf-spacing-4)));
}

.sf-table-scroll[data-sf-scrollable="true"] {
  position: relative;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.sf-table-scroll[data-sf-scrollable="true"]:focus-visible {
  border-radius: var(--sf-radius-sm);
}

.sf-table-scroll[data-sf-scrollable="true"]::after {
  content: "";
  position: sticky;
  right: 0;
  display: block;
  width: var(--sf-spacing-6);
  height: 1px;
  margin-left: auto;
  pointer-events: none;
}

:where(.sf-btn, .sf-action-link, .sf-section-tab, .sf-menu-link, .sf-menu-group-summary) {
  touch-action: manipulation;
}

:where(.sf-btn, .sf-action-link, .sf-section-tab, .sf-menu-link, .sf-menu-group-summary, .sf-icon-btn) {
  min-height: var(--sf-touch-target);
}

:where(.sf-icon-btn, .sf-modal-close, .sf-profile-button) {
  min-width: var(--sf-touch-target);
}

.sf-modal-body {
  overscroll-behavior: contain;
}

.sf-modal-actions,
.sf-actions,
.sf-form-actions,
.sf-listing-actions,
.sf-action-group {
  flex-wrap: wrap;
}

.sf-form-grid > *,
.sf-filter-grid > *,
.sf-dashboard-content-grid > *,
.sf-dashboard-kpi-grid > *,
.sf-clients-kpi-grid > *,
.sf-team-kpi-grid > * {
  min-width: 0;
}

.sf-section-tabs-scroll {
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

html.sf-large-text {
  font-size: 112.5%;
}

html.sf-large-text :where(.sf-topbar-inner, .sf-topbar-actions, .sf-action-group) {
  flex-wrap: wrap;
}

html.sf-large-text :where(.sf-table, .sf-input, .sf-select, .sf-textarea, .sf-btn) {
  line-height: var(--sf-line-height-relaxed);
}

html.sf-high-contrast :where(.sf-card, .sf-modal-panel, .sf-input, .sf-select, .sf-textarea) {
  border-width: 2px;
}

@media (max-width: 1023px) {
  .sf-page-content {
    width: 100%;
  }

  :where(.sf-form-grid-3, .sf-form-grid-4, .sf-filter-grid-3, .sf-filter-grid-4) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sf-topbar-actions {
    gap: var(--sf-spacing-2);
  }

  .sf-topbar-store-card {
    max-width: 18rem;
  }
}

@media (max-width: 767px) {
  body {
    min-width: 20rem;
  }

  .sf-main {
    width: 100%;
  }

  .sf-page-content {
    gap: var(--sf-spacing-5);
  }

  :where(
    .sf-form-grid,
    .sf-form-grid-2,
    .sf-form-grid-3,
    .sf-form-grid-4,
    .sf-filter-grid,
    .sf-filter-grid-2,
    .sf-filter-grid-3,
    .sf-filter-grid-4
  ) {
    grid-template-columns: minmax(0, 1fr);
  }

  :where(.sf-input, .sf-select, .sf-textarea) {
    font-size: 1rem;
  }

  .sf-topbar-page-description,
  .sf-topbar-store-item {
    display: none;
  }

  .sf-topbar-inner,
  .sf-topbar-leading {
    min-width: 0;
  }

  .sf-modal-layer {
    align-items: flex-end;
    padding: var(--sf-spacing-3);
  }

  .sf-modal-panel,
  .sf-modal-panel--wide,
  .sf-modal-panel--large {
    width: 100%;
    max-width: none;
    max-height: calc(100dvh - var(--sf-spacing-6));
  }

  .sf-modal-header,
  .sf-modal-body,
  .sf-modal-actions {
    padding-inline: var(--sf-spacing-4);
  }

  .sf-section-tabs-header {
    align-items: flex-start;
  }

  .sf-section-tabs-context-note {
    width: 100%;
  }

  .sf-table-scroll {
    max-width: 100%;
  }

  .sf-action-group,
  .sf-table-actions {
    gap: var(--sf-spacing-2);
  }
}

@media (max-width: 479px) {
  .sf-page-content {
    gap: var(--sf-spacing-4);
  }

  :where(.sf-card-body, .sf-card-body-sm, .sf-listing-card, .sf-table-card) {
    padding-inline: var(--sf-spacing-4);
  }

  :where(.sf-modal-actions, .sf-actions, .sf-form-actions, .sf-listing-actions) {
    align-items: stretch;
    flex-direction: column;
  }

  :where(.sf-modal-actions, .sf-actions, .sf-form-actions, .sf-listing-actions)
    > :where(.sf-btn, a, button) {
    width: 100%;
    justify-content: center;
  }

  .sf-topbar-actions > li:not(.sf-profile-menu-item):not(.sf-topbar-logout-item) {
    display: none;
  }

  .sf-profile-button-copy {
    display: none;
  }

  .sf-profile-button {
    padding-inline: var(--sf-spacing-2);
  }

  .sf-section-tab {
    white-space: normal;
    text-align: center;
  }

  .sf-table-scroll[data-sf-scrollable="true"] {
    padding-bottom: var(--sf-spacing-2);
  }
}

@media (max-width: 359px) {
  .sf-topbar-page-eyebrow,
  .sf-breadcrumbs {
    display: none;
  }

  .sf-modal-layer {
    padding: 0;
  }

  .sf-modal-panel,
  .sf-modal-panel--wide,
  .sf-modal-panel--large {
    min-height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
}

@media (max-height: 560px) and (orientation: landscape) {
  .sf-modal-layer {
    align-items: stretch;
    padding: var(--sf-spacing-2);
  }

  .sf-modal-panel,
  .sf-modal-panel--wide,
  .sf-modal-panel--large {
    max-height: calc(100dvh - (2 * var(--sf-spacing-2)));
  }

  .sf-modal-header {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--sf-surface);
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(*, *::before, *::after) {
    scroll-behavior: auto;
    animation-duration: .001ms;
    animation-iteration-count: 1;
    transition-duration: .001ms;
  }
}

@media (forced-colors: active) {
  :where(.sf-btn, .sf-action-link, .sf-section-tab, .sf-modal-close, .sf-icon-btn) {
    forced-color-adjust: auto;
  }

  :where(.sf-card, .sf-modal-panel, .sf-table-scroll, .sf-input, .sf-select, .sf-textarea) {
    border: 1px solid CanvasText;
  }

  :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline-color: Highlight;
  }
}

/* --------------------------------------------------------------------------
   Fase 1 — base visual e design system
   --------------------------------------------------------------------------
   Camada transversal restrita ao painel administrativo. Consolida densidade,
   espaçamento, dimensões e comportamento responsivo sem alterar fluxos.
---------------------------------------------------------------------------- */

.sf-admin-body,
.sf-admin-body *,
.sf-admin-body *::before,
.sf-admin-body *::after {
  box-sizing: border-box;
}

.sf-admin-body :where(
  .sf-shell,
  .sf-workspace,
  .sf-main,
  .sf-page-content,
  .sf-page,
  .sf-page--wide,
  .sf-field,
  .sf-fieldset
) {
  min-width: 0;
}

.sf-admin-body .sf-page-content {
  container-type: inline-size;
}

/* Ritmo vertical e hierarquia ------------------------------------------- */
.sf-admin-body :where(
  .sf-page-hero,
  .sf-inventory-hero,
  .sf-team-hero,
  .sf-clients-hero,
  .sf-sales-hero
) {
  margin-bottom: var(--sf-spacing-4);
}

.sf-admin-body :where(.sf-page-hero, .sf-inventory-hero) {
  padding: var(--sf-spacing-5) var(--sf-spacing-6);
}

.sf-admin-body :where(
  .sf-page-title,
  .sf-inventory-hero__title,
  .sf-team-hero__title,
  .sf-clients-hero__title
) {
  line-height: 1.12;
}

.sf-admin-body :where(
  .sf-page-description,
  .sf-card-subtitle,
  .sf-listing-subtitle,
  .sf-help-text,
  .sf-field-hint
) {
  line-height: var(--sf-line-height-normal);
}

.sf-admin-body .sf-stack-lg {
  gap: var(--sf-spacing-5);
}

.sf-admin-body .sf-stack-md {
  gap: var(--sf-spacing-4);
}

.sf-admin-body .sf-stack-sm {
  gap: .65rem;
}

/* Cartões e secções ------------------------------------------------------ */
.sf-admin-body :where(
  .sf-card,
  .sf-filter-card,
  .sf-listing-card,
  .sf-kpi-card,
  .sf-overview-card,
  .sf-soft-panel
) {
  min-width: 0;
  border-radius: var(--sf-card-radius-compact);
}

.sf-admin-body :where(
  .sf-card-body,
  .sf-team-form-card__body,
  .sf-settings-section__body
) {
  padding: var(--sf-spacing-4) 1.1rem;
}

.sf-admin-body :where(
  .sf-card-header,
  .sf-filter-card-header,
  .sf-listing-header,
  [data-sf-component="listing-header"].sf-shared-listing-header
) {
  gap: .85rem;
  padding: .9rem 1.1rem;
}

.sf-admin-body :where(
  .sf-card-title,
  .sf-filter-card-title,
  .sf-listing-title,
  .sf-section-title
) {
  line-height: 1.25;
}

/* Formulários e controlos ------------------------------------------------ */
.sf-admin-body :where(.sf-form-grid, .sf-grid, .sf-filter-grid) {
  column-gap: var(--sf-form-column-gap);
  row-gap: var(--sf-form-row-gap);
}

.sf-admin-body :where(.sf-label-text, .sf-label, label.sf-field) {
  font-size: var(--sf-font-size-label);
  line-height: 1.3;
}

.sf-admin-body :where(
  .sf-field .sf-input,
  .sf-field .sf-select,
  .sf-field .sf-textarea
) {
  margin-top: .28rem;
}

.sf-admin-body :where(
  .sf-input,
  .sf-select,
  .sf-textarea,
  .sf-modal-panel input:not([type="checkbox"]):not([type="radio"])
    :not([type="hidden"]):not([type="file"]):not([type="color"])
    :not([type="range"]),
  .sf-modal-panel select,
  .sf-modal-panel textarea
) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: var(--sf-control-height-compact);
  height: auto;
  padding: var(--sf-control-padding-y) var(--sf-control-padding-x);
  border-radius: .62rem;
  font-size: var(--sf-font-size-control);
  line-height: var(--sf-line-height-control);
}

.sf-admin-body :where(.sf-textarea, .sf-modal-panel textarea) {
  min-height: 4.25rem;
  padding-top: .62rem;
  padding-bottom: .62rem;
}

.sf-admin-body .sf-input--readonly {
  min-height: var(--sf-control-height-compact);
}

.sf-admin-body :where(.sf-check, .sf-radio) {
  gap: var(--sf-spacing-2);
  font-size: .78rem;
}

.sf-admin-body :where(
  .sf-check-input,
  input[type="checkbox"],
  input[type="radio"]
) {
  flex: 0 0 auto;
}

.sf-admin-body .sf-form-section {
  padding-top: .9rem;
}

.sf-admin-body :where(
  .sf-form-actions,
  .sf-actions,
  .sf-modal-actions,
  .sf-card-actions,
  .sf-action-group
) {
  gap: .55rem;
}

/* Botões ---------------------------------------------------------------- */
.sf-admin-body .sf-btn {
  min-height: var(--sf-control-height-compact);
  padding: .52rem .82rem;
  border-radius: .62rem;
  font-size: .78rem;
}

.sf-admin-body .sf-btn-sm {
  min-height: 2rem;
  padding: .4rem .65rem;
  font-size: .72rem;
}

.sf-admin-body :where(.sf-icon-btn, .sf-modal-close) {
  flex-shrink: 0;
}

/* Filtros e ferramentas ------------------------------------------------- */
.sf-admin-body :where(
  .sf-filter-bar,
  .sf-filter-card,
  .sf-page-toolbar,
  .sf-inventory-toolbar
) {
  gap: var(--sf-spacing-3);
}

.sf-admin-body .sf-filter-bar {
  margin-bottom: var(--sf-spacing-4);
  padding: .9rem var(--sf-spacing-4);
}

.sf-admin-body .sf-page-toolbar {
  min-height: auto;
  margin-bottom: var(--sf-spacing-4);
}

/* Tabelas --------------------------------------------------------------- */
.sf-admin-body .sf-table-scroll {
  min-width: 0;
  overscroll-behavior-inline: contain;
}

.sf-admin-body :where(.sf-table th, .sf-th) {
  font-size: .69rem;
  line-height: 1.25;
}

.sf-admin-body :where(.sf-table th, .sf-table td, .sf-th, .sf-td) {
  padding: var(--sf-table-cell-padding-y-compact)
    var(--sf-table-cell-padding-x-compact);
}

.sf-admin-body :where(.sf-table-primary, .sf-table-secondary) {
  line-height: var(--sf-line-height-control);
}

.sf-admin-body .sf-table-actions {
  gap: .45rem;
}

/* A responsividade dos modais pertence exclusivamente a modal-system.css. */

/* Paginação, badges e alertas ------------------------------------------ */
.sf-admin-body :where(.sf-pagination, .sf-alert, .sf-note, .sf-attention-strip) {
  border-radius: .8rem;
}

.sf-admin-body :where(.sf-alert, .sf-note) {
  line-height: 1.45;
}

.sf-admin-body .sf-badge {
  line-height: var(--sf-line-height-tight);
}

@media (max-width: 1023px) {
  .sf-admin-body :where(.sf-form-grid-3, .sf-grid-3, .sf-filter-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sf-admin-body .sf-modal-panel {
    width: min(48rem, calc(100vw - 1.5rem));
  }
}

@media (max-width: 767px) {
  .sf-admin-body :where(.sf-page-hero, .sf-inventory-hero) {
    padding: var(--sf-spacing-4);
  }

  .sf-admin-body :where(
    .sf-form-grid-2,
    .sf-form-grid-3,
    .sf-grid-2,
    .sf-grid-3,
    .sf-filter-grid
  ) {
    grid-template-columns: minmax(0, 1fr);
  }

  .sf-admin-body .sf-modal-layer {
    align-items: flex-end;
    padding: 0;
  }

  .sf-admin-body .sf-modal-panel {
    width: 100%;
    max-height: 94dvh;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: var(--sf-radius-lg) var(--sf-radius-lg) 0 0;
  }

  .sf-admin-body .sf-modal-body {
    max-height: calc(94dvh - 7.2rem);
    padding: .9rem;
  }

  .sf-admin-body .sf-modal-actions {
    margin: 0 -.9rem -.9rem;
    padding: .75rem .9rem max(.75rem, env(safe-area-inset-bottom));
  }

  .sf-admin-body .sf-modal-actions .sf-btn {
    flex: 1 1 100%;
    width: 100%;
  }
}

@media (max-width: 420px) {
  .sf-admin-body :where(
    .sf-card-body,
    .sf-team-form-card__body,
    .sf-settings-section__body
  ) {
    padding: .85rem;
  }
}


/* ==========================================================================
   AUDITORIA VISUAL — FASE 14: RESPONSIVIDADE COMPLETA
   ========================================================================== */
.sf-main {
  padding-right: clamp(var(--sf-spacing-3), 2.2vw, var(--sf-spacing-6));
  padding-left: clamp(var(--sf-spacing-3), 2.2vw, var(--sf-spacing-6));
}

.sf-page-content > * {
  min-width: 0;
  max-width: 100%;
}

:where(
  .sf-form-grid,
  .sf-form-grid-2,
  .sf-form-grid-3,
  .sf-filter-grid,
  .sf-kpi-grid,
  .sf-summary-grid
) > * {
  min-width: 0;
}

:where(.sf-table-scroll, .sf-report-table-scroll, .sf-team-table-wrap, .sf-clients-table-wrap) {
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 1365px) {
  :root {
    --sf-page-gutter: var(--sf-spacing-5);
  }

  .sf-topbar-inner {
    padding-inline: var(--sf-spacing-5);
  }

  .sf-profile-button-copy {
    max-width: 8rem;
  }
}

@media (max-width: 1180px) {
  :root {
    --sf-page-gutter: var(--sf-spacing-4);
  }

  .sf-section-tabs {
    max-width: 100%;
  }

  .sf-section-tabs-scroll {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }

  .sf-section-tab {
    flex: 0 0 auto;
  }
}

@media (max-width: 1023px) {
  .sf-topbar-inner {
    padding-inline: var(--sf-spacing-4);
  }

  .sf-main {
    padding-top: var(--sf-spacing-4);
  }

  .sf-mobile-menu-button {
    flex: 0 0 var(--sf-touch-target);
  }
}

@media (max-width: 767px) {
  .sf-main {
    padding-right: var(--sf-spacing-3);
    padding-left: var(--sf-spacing-3);
  }

  .sf-topbar-inner {
    gap: var(--sf-spacing-2);
    padding-inline: var(--sf-spacing-3);
  }

  .sf-main {
    padding-top: var(--sf-spacing-3);
    padding-bottom: var(--sf-spacing-8);
  }

  .sf-page-content {
    width: 100%;
  }

  .sf-section-tabs {
    margin-bottom: var(--sf-spacing-3);
    border-radius: var(--sf-radius-lg);
  }

  .sf-section-tab {
    min-height: var(--sf-touch-target);
    padding-inline: var(--sf-spacing-3);
  }

  :where(.sf-card-header, .sf-listing-header, .sf-section-heading) {
    min-width: 0;
  }

  :where(.sf-card-header, .sf-listing-header, .sf-section-heading) > * {
    min-width: 0;
  }

  .sf-table--responsive-cards {
    min-width: 0;
  }

  .sf-table--responsive-cards thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .sf-table--responsive-cards tbody,
  .sf-table--responsive-cards tr,
  .sf-table--responsive-cards td {
    display: block;
    width: 100%;
  }

  .sf-table--responsive-cards tbody {
    display: grid;
    gap: var(--sf-spacing-3);
    padding: var(--sf-spacing-3);
  }

  .sf-table--responsive-cards tr {
    overflow: hidden;
    border: 1px solid var(--sf-border);
    border-radius: var(--sf-radius-lg);
    background: var(--sf-surface);
  }

  .sf-table--responsive-cards td {
    display: grid;
    grid-template-columns: minmax(7rem, .42fr) minmax(0, 1fr);
    gap: var(--sf-spacing-3);
    padding: .65rem var(--sf-spacing-3);
    border-bottom: 1px solid var(--sf-border-subtle);
    text-align: right;
  }

  .sf-table--responsive-cards td:last-child {
    border-bottom: 0;
  }

  .sf-table--responsive-cards td::before {
    content: attr(data-label);
    color: var(--sf-text-muted);
    font-size: var(--sf-font-size-2xs);
    font-weight: var(--sf-font-weight-bold);
    text-align: left;
    text-transform: uppercase;
  }

  .sf-table--responsive-cards .sf-table-actions {
    justify-content: flex-end;
  }
}

@media (max-width: 420px) {
  .sf-table--responsive-cards td {
    grid-template-columns: 1fr;
    gap: var(--sf-spacing-1);
    text-align: left;
  }

  .sf-table--responsive-cards .sf-table-actions {
    justify-content: flex-start;
  }

  .sf-modal-footer > .sf-btn,
  .sf-modal-actions > .sf-btn {
    flex-basis: 100%;
  }
}

@media (max-height: 700px) and (min-width: 768px) {
  .sf-topbar,
  .sf-topbar-inner {
    min-height: 4rem;
  }

  .sf-workspace {
    padding-top: 4rem;
  }

  .sf-sidebar-brand {
    margin-bottom: var(--sf-spacing-3);
  }

  .sf-primary-navigation {
    padding-bottom: var(--sf-spacing-2);
  }
}

@media (min-width: 1800px) {
  :root {
    --sf-page-wide-max-width: 100rem;
  }

  .sf-main {
    padding-inline: var(--sf-spacing-8);
  }
}

/* --------------------------------------------------------------------------
   Fase 8 — fecho de responsividade, teclado e tecnologias de apoio
   -------------------------------------------------------------------------- */
.sf-topbar-page-title {
  min-width: 0;
  margin: 0;
  padding: 0;
  font: inherit;
}

.sf-topbar-page-title > strong {
  min-width: 0;
}

[data-sf-modal-background="1"] {
  pointer-events: none;
  user-select: none;
}

.sf-profile-dropdown [role="menuitem"] {
  min-height: var(--sf-touch-target);
}

.sf-profile-dropdown [role="menuitem"]:focus-visible {
  position: relative;
  z-index: 1;
}

.sf-table-scroll[data-sf-scrollable="true"]:focus-visible {
  outline: 3px solid var(--sf-primary);
  outline-offset: 3px;
}

:where(button, input, select, textarea):disabled,
:where([aria-disabled="true"]) {
  cursor: not-allowed;
}

@media (hover: none) and (pointer: coarse) {
  :where(.sf-btn, .sf-action-link, .sf-icon-btn, .sf-section-tab, .sf-menu-link) {
    -webkit-tap-highlight-color: transparent;
  }

  :where(.sf-btn, .sf-action-link, .sf-icon-btn, .sf-section-tab, .sf-menu-link):active {
    transform: none;
  }
}

@media (max-width: 359px) {
  .sf-topbar-page-title strong {
    max-width: 42vw;
  }

  .sf-sidebar-mobile {
    width: 100vw;
    max-width: 100vw;
  }
}

@media (max-height: 480px) and (orientation: landscape) {
  .sf-profile-dropdown {
    max-height: calc(100dvh - var(--sf-spacing-4));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

@media (prefers-contrast: more) {
  :where(.sf-badge, .sf-status, .sf-chip, .sf-alert) {
    border-width: 2px;
  }
}

@media (max-width: 767px) {
  .sf-admin-body .sf-mobile-menu-button,
  .sf-admin-body .sf-profile-button,
  .sf-admin-body .sf-btn-sm,
  .sf-auth-page .sf-auth-theme-toggle {
    min-height: var(--sf-touch-target);
  }

  .sf-admin-body .sf-mobile-menu-button,
  .sf-auth-page .sf-auth-theme-toggle {
    min-width: var(--sf-touch-target);
  }
}

/* Custom high-contrast mode deliberately removes decorative light surfaces.
   This is separate from the browser's forced-colors mode and therefore needs
   deterministic foreground/background pairs for every domain stylesheet. */
html.sf-high-contrast body {
  background: Canvas;
  color: CanvasText;
}

html.sf-high-contrast body :where(
  .sf-topbar,
  .sf-sidebar,
  .sf-sidebar-inner,
  .sf-workspace,
  .sf-main,
  .sf-page-content,
  [class*="card"],
  [class*="panel"],
  [class*="section"],
  [class*="summary"],
  [class*="toolbar"],
  [class*="filter"],
  [class*="pagination"],
  [class*="table"],
  [class*="list"],
  [class*="hero"],
  [class*="metric"],
  [class*="kpi"],
  [class*="tile"]
) {
  border-color: CanvasText;
  color: CanvasText;
  background-color: Canvas;
  background-image: none;
  box-shadow: none;
}

html.sf-high-contrast :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .sf-topbar-page-copy strong,
  .sf-table-money,
  .sf-dashboard-kpi-value,
  .sf-sale-total-main,
  .sf-pagination-info,
  .sf-table-meta-count
) {
  color: CanvasText;
}

html.sf-high-contrast :where(
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea
) {
  border-color: CanvasText;
  color: CanvasText;
  background: Canvas;
  -webkit-text-fill-color: CanvasText;
}

html.sf-high-contrast :where(input, textarea)::placeholder {
  color: CanvasText;
  opacity: .78;
}

html.sf-high-contrast option {
  color: CanvasText;
  background: Canvas;
}

html.sf-high-contrast :where(
  .sf-btn-secondary,
  .sf-btn-ghost,
  .sf-icon-btn,
  .sf-action-link,
  .sf-page-dot,
  .sf-profile-button,
  .sf-profile-quick-action,
  .sf-profile-logout-action
) {
  border-color: CanvasText;
  color: CanvasText;
  background: Canvas;
  box-shadow: none;
}

html.sf-high-contrast :where(
  .sf-btn-primary,
  .sf-section-tab.is-active,
  .sf-page-dot.is-current,
  .sf-menu-link.is-active
) {
  border-color: CanvasText;
  color: Canvas;
  background: Highlight;
  background-image: none;
}

html.sf-high-contrast :where(
  .sf-btn-primary,
  .sf-section-tab.is-active,
  .sf-page-dot.is-current,
  .sf-menu-link.is-active
) * {
  color: Canvas;
}

html.sf-high-contrast :where(.sf-badge, .sf-status, .sf-chip, [class*="badge"], [class*="chip"]) {
  border-color: CanvasText;
  color: CanvasText;
  background: Canvas;
}

html.sf-high-contrast :where(a:not(.sf-btn):not(.sf-action-link), .sf-link) {
  color: LinkText;
  text-decoration-color: currentColor;
}

html.sf-high-contrast .sf-action-link--success {
  color: LinkText;
}

html.sf-high-contrast .sf-action-link--danger {
  color: CanvasText;
}

html.sf-high-contrast :where(.sf-page-dot.is-disabled, [aria-disabled="true"], :disabled) {
  color: CanvasText;
  opacity: .65;
}

html.sf-high-contrast .sf-profile-avatar {
  border-color: CanvasText;
  color: Canvas;
  background: Highlight;
}

html.sf-high-contrast :where(table, thead, tbody, tfoot, tr, th, td, caption) {
  border-color: CanvasText;
  color: CanvasText;
  background: Canvas;
}

html.sf-high-contrast :where(.sf-alert, [role="alert"]) {
  border-color: Highlight;
  color: CanvasText;
  background: Canvas;
  background-image: none;
}

html.sf-high-contrast :where(.sf-alert, [role="alert"]) :where(strong, a) {
  color: Highlight;
}

html.sf-high-contrast .sf-section-tabs-scroll {
  background: Canvas;
}

/* Specificity bridge for legacy domain rules with stronger selectors. */
html.sf-high-contrast body.sf-admin-body .sf-table-card,
html.sf-high-contrast body.sf-admin-body .sf-table-scroll,
html.sf-high-contrast body.sf-admin-body table.sf-table,
html.sf-high-contrast body.sf-admin-body table.sf-table thead,
html.sf-high-contrast body.sf-admin-body table.sf-table tbody,
html.sf-high-contrast body.sf-admin-body table.sf-table tfoot,
html.sf-high-contrast body.sf-admin-body table.sf-table tr,
html.sf-high-contrast body.sf-admin-body table.sf-table th,
html.sf-high-contrast body.sf-admin-body table.sf-table td {
  border-color: CanvasText;
  color: CanvasText;
  background: Canvas;
  background-image: none;
}

html.sf-high-contrast body.sf-admin-body .sf-alert,
html.sf-high-contrast body.sf-admin-body [role="alert"] {
  border-color: Highlight;
  color: CanvasText;
  background: Canvas;
  background-image: none;
}

html.sf-high-contrast body.sf-admin-body .sf-section-tabs .sf-section-tab.is-active,
html.sf-high-contrast body.sf-admin-body .sf-page-tabs .sf-section-tab.is-active,
html.sf-high-contrast body.sf-admin-body .sf-page-dot.is-current,
html.sf-high-contrast body.sf-admin-body .sf-menu-link.is-active {
  border-color: CanvasText;
  color: Canvas;
  background: Highlight;
  background-image: none;
}

html.sf-high-contrast body.sf-admin-body .sf-section-tabs .sf-section-tab.is-active *,
html.sf-high-contrast body.sf-admin-body .sf-page-tabs .sf-section-tab.is-active *,
html.sf-high-contrast body.sf-admin-body .sf-page-dot.is-current *,
html.sf-high-contrast body.sf-admin-body .sf-menu-link.is-active * {
  color: Canvas;
}
