/* Fares Profile v31.3 — touch targets, focus visibility, QR and Admin authorization polish. */
:root {
  --v31-focus-ring: #7dd3fc;
}

html[data-theme="light"] {
  --v31-focus-ring: #0369a1;
}

html[data-admin-authorization="pending"] [data-dashboard-view],
html[data-admin-authorization="checking"] [data-dashboard-view],
html[data-admin-authorization="denied"] [data-dashboard-view] {
  visibility: hidden !important;
  pointer-events: none !important;
}

html:not([data-admin-authorization="authorized"]) .admin-welcome-v31 {
  display: none !important;
}

:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--v31-focus-ring) !important;
  outline-offset: 3px !important;
}

:where(a, button, input, select, textarea, summary, [role="button"]) {
  -webkit-tap-highlight-color: transparent;
}

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

.share-dialog-close,
.email-dialog-close,
.feedback-close,
.share-nudge-close {
  inline-size: 44px !important;
  block-size: 44px !important;
  min-inline-size: 44px !important;
  min-block-size: 44px !important;
  touch-action: manipulation;
}

.share-nudge:not([hidden]) {
  padding-inline-end: 58px !important;
}

.share-nudge-action,
.share-dialog-options button,
.share-native-option,
.share-dialog-cancel,
.feedback-actions button {
  min-block-size: 46px !important;
  touch-action: manipulation;
}

.share-dialog-panel,
.feedback-dialog-panel,
.email-dialog-panel,
.admin-idle-panel,
.admin-recovery-dialog-panel {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.feedback-rating label {
  min-block-size: 46px !important;
  display: grid;
  place-items: center;
  touch-action: manipulation;
}

.feedback-rating label > span {
  pointer-events: none;
}

.admin-qr-frame img[aria-invalid="true"] {
  display: none !important;
}

.admin-mfa-qr-status-v26:not([hidden]) {
  display: block;
  margin: 10px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(251, 191, 36, .32);
  border-radius: 12px;
  color: #fde68a;
  background: rgba(120, 53, 15, .26);
  line-height: 1.55;
  overflow-wrap: anywhere;
}

html[data-theme="light"] .admin-mfa-qr-status-v26:not([hidden]) {
  color: #854d0e;
  background: #fffbeb;
}

@media (max-width: 760px) {
  .share-nudge:not([hidden]) {
    padding-inline-end: 60px !important;
  }

  .site-footer :where(a, button),
  .admin-main :where(button, .admin-primary-button, .admin-secondary-button),
  .admin-header-actions :where(button, a) {
    min-block-size: 44px;
  }

  :where(input:not([type="hidden"]), select, textarea) {
    font-size: 16px !important;
  }
}

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 3px solid Highlight !important;
  }
}


/* v31.0.0-preview.4 — navigation, sharing, rating, Toast and scrollbar corrections. */
:root {
  --v31-scroll-track: color-mix(in srgb, var(--bg, #090b0f) 94%, transparent);
  --v31-scroll-thumb: color-mix(in srgb, var(--accent, #8fb8ff) 66%, var(--muted, #8c95a3));
  --v31-scroll-thumb-hover: color-mix(in srgb, var(--accent, #8fb8ff) 84%, white 10%);
}

html[data-theme="light"] {
  --v31-scroll-track: color-mix(in srgb, var(--bg, #f8fafc) 92%, #cbd5e1 8%);
  --v31-scroll-thumb: color-mix(in srgb, var(--accent, #245fc5) 68%, #94a3b8);
  --v31-scroll-thumb-hover: color-mix(in srgb, var(--accent, #245fc5) 84%, #0f172a 6%);
}

:where(html, body, dialog, textarea, pre, [class*="scroll"], [class*="modal"], [class*="dialog"]) {
  scrollbar-width: thin !important;
  scrollbar-color: var(--v31-scroll-thumb) var(--v31-scroll-track) !important;
}

:where(html, body, dialog, textarea, pre, [class*="scroll"], [class*="modal"], [class*="dialog"])::-webkit-scrollbar {
  inline-size: 10px !important;
  block-size: 10px !important;
}

:where(html, body, dialog, textarea, pre, [class*="scroll"], [class*="modal"], [class*="dialog"])::-webkit-scrollbar-track {
  border-radius: 999px !important;
  background: var(--v31-scroll-track) !important;
}

:where(html, body, dialog, textarea, pre, [class*="scroll"], [class*="modal"], [class*="dialog"])::-webkit-scrollbar-thumb {
  min-block-size: 40px !important;
  border: 2px solid transparent !important;
  border-radius: 999px !important;
  background: var(--v31-scroll-thumb) !important;
  background-clip: padding-box !important;
}

:where(html, body, dialog, textarea, pre, [class*="scroll"], [class*="modal"], [class*="dialog"])::-webkit-scrollbar-thumb:hover {
  background: var(--v31-scroll-thumb-hover) !important;
  background-clip: padding-box !important;
}

html {
  scroll-padding-block-start: calc(var(--header-height, 80px) + 20px) !important;
}

main section[id] {
  scroll-margin-block-start: calc(var(--header-height, 80px) + 20px) !important;
}

/* All application feedback appears at the visual bottom center. */
#fares-toast-root-v31 {
  inset-block-start: auto !important;
  inset-block-end: max(14px, calc(var(--v31-safe-bottom) + var(--v31-viewport-bottom) + 10px)) !important;
}

.fares-toast-v31 {
  transform: translateY(12px) scale(.985) !important;
}

.fares-toast-v31.is-visible {
  transform: translateY(0) scale(1) !important;
}

/* Cleaner share sheet: compact equal cards and no full-width copy card. */
.share-native-option {
  grid-template-columns: auto minmax(0, max-content) !important;
  justify-content: center !important;
  justify-items: center !important;
  min-block-size: 70px !important;
  padding: 12px 18px !important;
  text-align: center !important;
}

.share-native-option > :where(span, small) {
  text-align: center !important;
}

.share-dialog-options {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.share-dialog-options button {
  min-block-size: 78px !important;
  padding: 12px !important;
}

.share-copy-option {
  grid-column: auto !important;
}

.share-option-description-v31 {
  font-size: .74rem !important;
  line-height: 1.4 !important;
}

/* Laptop rating controls should read as primary interactive targets. */
.feedback-rating > div {
  gap: 12px !important;
}

.feedback-rating label,
.feedback-rating label > span {
  min-block-size: 64px !important;
}

.feedback-rating label > span {
  border-radius: 15px !important;
  font-size: 1.08rem !important;
  font-weight: 800 !important;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease !important;
}

.feedback-rating label:hover > span {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--accent, #8fb8ff) 58%, transparent) !important;
}

.feedback-rating input:focus-visible + span {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent, #8fb8ff) 20%, transparent) !important;
}

@media (max-width: 620px) {
  .share-dialog-options {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .share-dialog-options button {
    min-block-size: 72px !important;
    padding: 10px 8px !important;
  }
  .feedback-rating > div {
    gap: 7px !important;
  }
  .feedback-rating label,
  .feedback-rating label > span {
    min-block-size: 52px !important;
  }
  .feedback-rating label > span {
    font-size: 1rem !important;
  }
}
