/* GlobeFarer — organização responsiva e correções finais */

html { width: 100%; overflow-x: clip; text-size-adjust: 100%; }
body { min-width: 320px; width: 100%; }
body.menu-open { overflow: hidden; touch-action: none; }
svg { display: block; }
img { height: auto; }
.brand-logo-link { display: inline-flex; align-items: center; min-width: 0; }
.brand-logo-img { width: auto; max-width: 172px; object-fit: contain; }

/* Navegação móvel com ícones */
.mobile-drawer-title {
  padding: 8px 14px 10px;
  color: var(--gray-9);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.mobile-nav-icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  border-radius: 10px;
  background: var(--gray-f8);
  color: var(--gray-5);
}
.mobile-nav-icon svg { width: 17px; height: 17px; }
.mobile-drawer a.active .mobile-nav-icon { background: var(--yellow); color: var(--black); }
.hamburger-open-icon,.hamburger-close-icon { display: inline-flex; }
.hamburger-open-icon svg,.hamburger-close-icon svg { width: 20px; height: 20px; }
.hamburger-close-icon { display: none; }
.hamburger.open .hamburger-open-icon { display: none; }
.hamburger.open .hamburger-close-icon { display: inline-flex; }

/* Rodapé sem logotipo */
.footer-brand-text {
  color: var(--white);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -.02em;
  margin-bottom: 10px;
}
.footer-domain {
  display: inline-flex;
  margin-top: 14px;
  color: rgba(255,255,255,.7);
  font-size: .78rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.footer-domain:hover { color: var(--yellow); }
.footer-socials .social-btn { width: 38px; height: 38px; }
.footer-socials .social-btn svg { width: 17px; height: 17px; }

/* Evita espaços vazios quando um ícone dinâmico demora a carregar */
:is(.mini-info-icon,.stat-icon,.quick-icon,.dashboard-service-icon,.overview-hero-icon,.pro-boleto-icon,.pro-gift-icon,.pro-tx-icon,.svc-category-icon,.svc-card-icon):empty::after {
  content: '';
  width: 10px;
  height: 10px;
  border: 2px solid currentColor;
  border-radius: 50%;
  opacity: .55;
}

/* Desktop: o hambúrguer público nunca aparece */
@media (min-width: 769px) {
  nav[data-navbar] .hamburger { display: none !important; }
}

@media (max-width: 900px) {
  nav[data-navbar] .navbar-nav { display: none !important; }
  nav[data-navbar] .hamburger { display: inline-flex !important; }
}

@media (max-width: 768px) {
  :root { --nav-h: 60px; }
  .container,.container-md,.container-sm { width: 100%; padding-left: 16px; padding-right: 16px; }
  .navbar-inner { padding: 0 !important; gap: 10px; }
  nav[data-navbar] .brand-logo-img { max-width: 150px; height: 25px !important; }
  nav[data-navbar] .navbar-actions > [data-guest-show],
  nav[data-navbar] .navbar-actions > [data-auth-show] { display: none !important; }
  nav[data-navbar] .hamburger {
    width: 42px;
    height: 42px;
    color: var(--black);
    border-radius: 12px;
  }
  .mobile-drawer {
    top: var(--nav-h);
    height: calc(100dvh - var(--nav-h));
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: env(safe-area-inset-bottom);
  }
  .mobile-drawer-inner { padding: 12px 14px 28px; }
  .mobile-drawer a,.mobile-drawer button.drawer-link {
    min-height: 48px;
    padding: 7px 9px;
    border-radius: 12px;
    gap: 11px;
  }
  .drawer-ctas .btn { min-height: 46px; gap: 8px; }
  .drawer-ctas .btn svg { width: 17px; height: 17px; }

  /* Conteúdo público */
  .hero { padding-top: var(--nav-h); }
  .page-hero { padding-top: calc(var(--nav-h) + 34px) !important; padding-bottom: 42px !important; }
  .section { padding: 44px 0 !important; }
  .section-h2 { font-size: clamp(1.55rem,7vw,2rem) !important; line-height: 1.12; }
  .section-body { font-size: .92rem; }
  .hero-actions .btn { min-height: 52px; }
  .hero-stats { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px !important; }
  .hero-stat-num { font-size: 1.35rem !important; }
  .hero-stat-label { font-size: .62rem !important; letter-spacing: .05em !important; }
  .hero-card { width: 100%; }
  .transport-grid { gap: 10px !important; }
  .transport-tile { min-width: 0; padding: 15px 10px !important; }
  .services-grid,.contact-grid,.agency-layout { grid-template-columns: 1fr !important; }
  .service-card { padding: 20px 18px; }
  .form-row,.form-row-3 { grid-template-columns: 1fr !important; }
  .form-span-2 { grid-column: auto !important; }
  .form-input,.form-select,.form-textarea { width: 100%; min-width: 0; font-size: 16px !important; }
  .input-wrap { min-width: 0; }

  /* Login e cadastro */
  .auth-layout { display: block !important; min-height: 100dvh; }
  .auth-panel { display: none !important; }
  .auth-form-panel {
    min-height: 100dvh;
    width: 100%;
    padding: 28px 18px 36px !important;
    align-items: flex-start !important;
    overflow: visible;
  }
  .auth-form-wrap { max-width: 440px; margin: 0 auto; }
  .auth-back { margin-bottom: 26px; min-height: 40px; }
  .auth-form-title { font-size: 1.65rem; }
  .steps-wrap { overflow: hidden; }
  .step-lbl { font-size: .68rem; line-height: 1.2; }
  .auth-form-panel .btn { min-height: 46px; }
  .input-toggle { width: 44px; height: 44px; }

  /* Rodapé organizado */
  footer { padding: 38px 0 calc(24px + env(safe-area-inset-bottom)); }
  .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 26px 20px !important; margin-bottom: 30px; }
  .footer-about { grid-column: 1 / -1; }
  .footer-brand-desc { max-width: 100%; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .footer-legal { flex-wrap: wrap; gap: 12px 16px; }

  /* Painel */
  #dash-nav .navbar-inner { padding: 0 12px !important; }
  .dashboard-brand img { height: 24px !important; max-width: 138px; }
  .dashboard-topbar-left,.dashboard-topbar-right { min-width: 0; gap: 5px; }
  .dashboard-topbar-right .topbar-icon-btn { display: none !important; }
  .dashboard-user-chip {
    padding: 4px !important;
    border: 0 !important;
    background: transparent !important;
  }
  .dashboard-user-chip .av { width: 34px; height: 34px; }
  .topbar-main-btn { width: 40px !important; height: 40px; min-width: 40px; padding: 0 !important; border-radius: 12px !important; }
  .topbar-main-btn svg { width: 18px; height: 18px; }
  .sidebar {
    width: min(88vw,320px) !important;
    padding-bottom: calc(30px + env(safe-area-inset-bottom)) !important;
  }
  .sidebar-link { min-height: 46px; padding: 10px 13px; }
  .sidebar-link svg { width: 18px; height: 18px; }
  .dash-page { padding: 18px 12px 36px !important; }
  .dash-page-head { margin-bottom: 18px; }
  .dash-page-head h1 { font-size: 1.35rem !important; }
  .dash-page-head p { font-size: .86rem; }
  .overview-hero-grid { grid-template-columns: 1fr !important; gap: 12px; }
  .overview-hero-card { padding: 22px 20px !important; min-height: 230px; }
  .overview-hero-top { gap: 12px; }
  .overview-hero-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; }
  .overview-hero-actions .btn { width: 100%; min-height: 46px; padding-left: 10px !important; padding-right: 10px !important; }
  .overview-mini-grid { grid-template-columns: 1fr 1fr !important; gap: 10px; }
  .mini-info-card { min-height: 104px; padding: 14px !important; align-items: center; }
  .mini-info-card > div:last-child { min-width: 0; }
  .mini-info-card strong,.mini-info-card span { overflow-wrap: anywhere; }
  .stats-row { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .stat-card { min-height: 132px; padding: 16px !important; }
  .quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px; }
  .quick-btn { min-width: 0; padding: 14px 10px !important; }
  .dashboard-services-grid,.pro-int-grid,.integrations-grid { grid-template-columns: 1fr !important; }
  .toolbar-grid,.track-search-grid,.simulate-shell,.shipment-form-shell,.wallet-layout,.pro-wallet-layout,.profile-layout,.settings-layout { grid-template-columns: 1fr !important; }
  .track-search-grid .btn,.toolbar-grid .btn { width: 100%; }
  .shipment-form-side { order: -1; }
  .sticky-side-card,.agency-map-panel { position: static !important; }
  .shipment-map-card { height: 240px; }
  .t-selector { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .detail-grid { grid-template-columns: 1fr 1fr !important; }
  .detail-address-grid { grid-template-columns: 1fr !important; }
  .modal-overlay { align-items: flex-end !important; padding: 0 !important; }
  .modal {
    width: 100% !important;
    max-width: none !important;
    max-height: 96dvh !important;
    margin: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    overflow: auto;
  }
  .modal-head { padding: 16px !important; }
  .modal-body { padding: 16px !important; }
  .modal-foot { padding: 14px 16px calc(14px + env(safe-area-inset-bottom)) !important; }
  .modal-foot-right { width: 100%; display: grid !important; grid-template-columns: 1fr 1fr; }
  .modal-foot-right .btn { width: 100%; }
  .shipment-mobile-actions { display: grid !important; grid-template-columns: 1fr 1fr; }
  .shipment-mobile-actions .btn { width: 100%; }
}

@media (max-width: 480px) {
  .container,.container-md,.container-sm { padding-left: 14px; padding-right: 14px; }
  .hero-stats { gap: 8px !important; }
  .hero-stat-num { font-size: 1.22rem !important; }
  .hero-stat-label { font-size: .56rem !important; }
  .transport-grid { grid-template-columns: 1fr 1fr !important; }
  .footer-grid { grid-template-columns: 1fr !important; }
  .footer-about { grid-column: auto; }
  .overview-mini-grid,.stats-row { grid-template-columns: 1fr 1fr !important; }
  .quick-grid { grid-template-columns: 1fr 1fr !important; }
  .detail-grid { grid-template-columns: 1fr !important; }
  .modal-foot-right { grid-template-columns: 1fr; }
}

@media (max-width: 360px) {
  .hero-stats { grid-template-columns: 1fr 1fr; }
  .transport-grid,.overview-mini-grid,.stats-row,.quick-grid { grid-template-columns: 1fr !important; }
  .dashboard-brand img { max-width: 118px; }
}

.hint-inline-icon { display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto; }
.hint-inline-icon svg { width:16px;height:16px; }
body.sidebar-open { overflow:hidden; }

.auth-mobile-logo { display:none; }
@media (max-width:768px) {
  .auth-mobile-logo { display:inline-flex;align-items:center;margin-bottom:24px; }
  .auth-mobile-logo img { width:auto;height:28px;max-width:160px; }
}
@media (max-width:480px) {
  #dash-nav .dashboard-user-chip { display:none !important; }
  #dash-nav .dashboard-topbar-right { margin-left:auto;flex:0 0 40px; }
  #dash-nav .topbar-main-btn { display:inline-flex !important; }
}
