/* Fares Profile 31.0.0-preview.5 — consolidated mobile, sharing, toast and Admin fixes. */
:root {
  --app-viewport-height: 100dvh;
  --app-browser-ui-bottom: 0px;
  --app-header-height: 72px;
  --app-bottom-clearance: calc(max(14px, env(safe-area-inset-bottom)) + var(--app-browser-ui-bottom));
  scrollbar-color: color-mix(in srgb, var(--accent, #79a9ff) 58%, transparent) color-mix(in srgb, var(--surface, #10141d) 75%, transparent);
  scrollbar-width: thin;
}
* { scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--accent, #79a9ff) 58%, transparent) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: color-mix(in srgb, var(--surface, #10141d) 72%, transparent); }
*::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: color-mix(in srgb, var(--accent, #79a9ff) 62%, transparent); background-clip: padding-box; }
*::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--accent, #79a9ff) 82%, transparent); background-clip: padding-box; }

main section[id] { scroll-margin-top: calc(var(--app-header-height) + 16px) !important; }
.site-footer, footer { position: static !important; inset: auto !important; transform: none !important; }
.site-footer { padding-bottom: calc(32px + var(--app-bottom-clearance)) !important; }

/* One toast location across public and Admin routes. */
.fares-toast-root-preview5 {
  position: fixed;
  z-index: 2147483600;
  left: 50%;
  bottom: calc(16px + var(--app-bottom-clearance));
  width: min(560px, calc(100vw - 28px));
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--accent, #79a9ff) 45%, var(--line, transparent));
  border-radius: 16px;
  color: var(--text, #f8fafc);
  background: color-mix(in srgb, var(--surface-strong, #111827) 96%, transparent);
  box-shadow: 0 18px 60px rgba(0,0,0,.38);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 16px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.fares-toast-root-preview5.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.fares-toast-root-preview5[data-type="success"] { border-color: color-mix(in srgb, #31c48d 65%, transparent); }
.fares-toast-root-preview5[data-type="warning"] { border-color: color-mix(in srgb, #f5b942 72%, transparent); }
.fares-toast-root-preview5[data-type="error"] { border-color: color-mix(in srgb, #ff5d68 72%, transparent); }
.fares-toast-message-preview5 { min-width: 0; overflow-wrap: anywhere; font-weight: 720; line-height: 1.45; text-align: start; }
.fares-toast-close-preview5 { flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center; border: 0; border-radius: 12px; color: inherit; background: color-mix(in srgb, currentColor 10%, transparent); font: inherit; font-size: 1.35rem; cursor: pointer; }
html[data-theme="light"] .fares-toast-root-preview5 { color: #172033; background: rgba(255,255,255,.98); box-shadow: 0 18px 50px rgba(37,52,79,.2); }
[data-toast], [data-admin-toast], .admin-toast, .toast, #fares-toast-root-v26, #fares-toast-root-v31 { display: none !important; }

/* Share dialog: visual-viewport aware and never hidden behind Safari controls. */
.share-dialog {
  width: min(720px, calc(100vw - 24px)) !important;
  max-width: 720px !important;
  max-height: calc(var(--app-viewport-height) - 20px) !important;
  margin: auto !important;
  padding: 0 !important;
  overflow: visible !important;
}
.share-dialog-panel {
  max-height: calc(var(--app-viewport-height) - 20px - var(--app-bottom-clearance)) !important;
  overflow: auto !important;
  overscroll-behavior: contain;
  padding-bottom: calc(20px + env(safe-area-inset-bottom)) !important;
}
.share-native-option { justify-content: center !important; text-align: center !important; }
.share-dialog-options { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
.share-dialog-options > button {
  min-width: 0 !important;
  min-height: 104px !important;
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  align-items: center !important;
  justify-content: stretch !important;
  gap: 12px !important;
  padding: 14px !important;
  text-align: start !important;
}
.share-platform-icon { width: 42px !important; height: 42px !important; display: grid !important; place-items: center !important; }
.share-platform-icon svg { width: 34px !important; height: 34px !important; }
.share-option-copy-preview5 { min-width: 0; display: grid; gap: 5px; }
.share-option-copy-preview5 strong { color: inherit; font-size: clamp(.96rem, 3.4vw, 1.08rem); line-height: 1.25; overflow-wrap: anywhere; }
.share-option-copy-preview5 small { color: var(--text-secondary, #aeb8c9); font-size: clamp(.76rem, 2.9vw, .88rem); font-weight: 560; line-height: 1.4; overflow-wrap: anywhere; }
html[data-theme="light"] .share-option-copy-preview5 small { color: #536176; }
[data-share-target="whatsapp"] .share-platform-icon { color: #25d366 !important; }
[data-share-target="telegram"] .share-platform-icon { color: #2aabee !important; }
[data-share-target="linkedin"] .share-platform-icon { color: #0a66c2 !important; }
[data-share-target="sms"] .share-platform-icon { color: #34c759 !important; }
[data-share-target="snapchat"] .share-platform-icon { color: #f5e400 !important; }
.share-dialog-cancel { min-height: 50px !important; }

/* Selected-text share card stays above the real visual viewport bottom. */
.share-nudge {
  z-index: 2147483400 !important;
  inset-inline: 14px !important;
  bottom: calc(14px + var(--app-bottom-clearance)) !important;
  width: auto !important;
  max-width: 620px !important;
  margin-inline: auto !important;
  padding: 16px 52px 16px 16px !important;
  grid-template-columns: 46px minmax(0, 1fr) !important;
}
.share-nudge[hidden] { display: none !important; }
.share-nudge-action { grid-column: 1 / -1 !important; width: 100% !important; min-height: 48px !important; }
.share-nudge-close { inset-inline-end: 10px !important; top: 10px !important; width: 38px !important; height: 38px !important; }

/* Admin loading is a compact status, never a full-screen blocking rectangle. */
.admin-loading:not([hidden]) {
  position: fixed !important;
  z-index: 2147483300 !important;
  inset: auto auto calc(14px + var(--app-bottom-clearance)) 50% !important;
  width: min(440px, calc(100vw - 28px)) !important;
  min-height: 58px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  padding: 12px 16px !important;
  border: 1px solid color-mix(in srgb, var(--accent, #79a9ff) 44%, var(--line, transparent)) !important;
  border-radius: 16px !important;
  color: var(--text, #f8fafc) !important;
  background: color-mix(in srgb, var(--surface-strong, #111827) 97%, transparent) !important;
  box-shadow: 0 18px 60px rgba(0,0,0,.38) !important;
  transform: translateX(-50%) !important;
  pointer-events: none !important;
}
.admin-loading[hidden] { display: none !important; }
html[data-theme="light"] .admin-loading:not([hidden]) { color: #172033 !important; background: rgba(255,255,255,.98) !important; }
.admin-auth-card, .admin-dashboard { isolation: isolate; }

/* Broken avatar never renders the browser's missing-image icon. */
.brand-avatar { overflow: hidden; background: color-mix(in srgb, var(--accent, #79a9ff) 14%, var(--surface, #111827)); }
.brand-avatar img:not([src]) { display: none !important; }
.brand-avatar.is-fallback-text::after { content: "FT"; display: grid; place-items: center; width: 100%; height: 100%; color: var(--accent, #79a9ff); font-weight: 850; }

@media (max-width: 620px) {
  .share-dialog { width: calc(100vw - 16px) !important; max-height: calc(var(--app-viewport-height) - 8px) !important; }
  .share-dialog-panel { max-height: calc(var(--app-viewport-height) - 8px - var(--app-bottom-clearance)) !important; padding: 18px 14px calc(18px + env(safe-area-inset-bottom)) !important; border-radius: 22px !important; }
  .share-dialog-options { gap: 10px !important; }
  .share-dialog-options > button { min-height: 96px !important; grid-template-columns: 36px minmax(0, 1fr) !important; gap: 9px !important; padding: 12px 10px !important; }
  .share-platform-icon { width: 36px !important; height: 36px !important; }
  .share-platform-icon svg { width: 30px !important; height: 30px !important; }
  .share-option-copy-preview5 strong { font-size: .94rem; }
  .share-option-copy-preview5 small { font-size: .75rem; }
  .site-footer {
    padding-block: 20px calc(20px + var(--app-bottom-clearance)) !important;
  }
  .site-footer .footer-inner {
    gap: 12px !important;
  }
  .site-footer .footer-inner > div:first-child p {
    margin-block: 4px 0 !important;
  }
  .site-footer .footer-meta {
    gap: 8px !important;
  }
  .site-footer :where(.copyright-button, .share-profile, .back-to-top) {
    min-height: 46px !important;
    padding: 9px 13px !important;
    border-radius: 14px !important;
  }
}

@media (max-width: 370px) {
  .share-dialog-options { grid-template-columns: 1fr !important; }
  .share-dialog-options > button { min-height: 82px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .fares-toast-root-preview5 { transition: none !important; }
}
