
        .hide-scrollbar::-webkit-scrollbar { display: none; }
        .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
        button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #dc2626; outline-offset: 2px; }
        @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
        body { background-color: #f5f5f7; color: #1d1d1f; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
        .fade-in { animation: fadeIn 0.25s ease-in-out forwards; }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(4px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .perspective-1000 { perspective: 1000px; }
        .transform-style-3d { transform-style: preserve-3d; }
        .backface-hidden { backface-visibility: hidden; }
        .rotate-y-180 { transform: rotateY(180deg); }
        /* Official Passport / Document Texture */
        .passport-bg {
            background-color: #f7f6f2;
            background-image: radial-gradient(#e5e2d9 1px, transparent 1px);
            background-size: 16px 16px;
        }

        /* TEXX Design System — aplicado de forma transversal a todas as seções */
        :root { --texx-ink:#171717; --texx-muted:#6b7280; --texx-line:#e5e5e5; --texx-surface:#fff; --texx-soft:#f7f7f8; --texx-radius:16px; --texx-accent:#dc2626; }
        #main-content { color:var(--texx-ink); font-size:13px; line-height:1.5; }
        #main-content > div { padding:20px !important; }
        #main-content h1 {font-size:21px !important;line-height:1.2;font-weight:700 !important;letter-spacing:-.035em;}
        #main-content h2 {font-size:17px;line-height:1.3;font-weight:700;letter-spacing:-.02em;}
        #main-content h3 {font-size:14px;line-height:1.35;font-weight:650;letter-spacing:-.01em;}
        #main-content h4 {line-height:1.35;letter-spacing:-.008em;}
        #main-content button, #main-content a {transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;}
        #main-content button:active {transform:scale(.985);}
        #main-content input, #main-content select, #main-content textarea {border-radius:12px;min-height:40px;}
        #main-content [role="tablist"] button {min-height:46px;line-height:1.25;}
        #main-content [role="tablist"] button[aria-selected="true"] {background:#171717;color:white;border-color:#171717;box-shadow:0 2px 7px rgba(0,0,0,.1);}
        #main-content [role="tablist"] button[aria-selected="false"] {background:white;color:#404040;border-color:#e5e5e5;}
        #main-content .rounded-3xl {border-radius:20px;}
        #main-content .shadow-lg {box-shadow:0 5px 20px rgba(0,0,0,.09);}
        #main-content .shadow-sm {box-shadow:0 2px 8px rgba(0,0,0,.045);}
        #main-content .tracking-widest.uppercase {letter-spacing:.13em;}
        #texx-ride-detail-view {font-size:13px;line-height:1.5;color:var(--texx-ink);}
        #texx-ride-detail-view h1 {font-weight:750;letter-spacing:-.035em;}
        @media(max-width:360px){#main-content > div {padding:16px !important;}#main-content [role="tablist"] button{font-size:10px;}}
    
/* TEXX Rider Passport — documento com selo óptico de segurança */
.texx-passport-face{background:repeating-linear-gradient(118deg,rgba(180,154,97,.045) 0px,rgba(180,154,97,.045) 1px,transparent 1px,transparent 9px),linear-gradient(145deg,#faf9f3 0%,#e9e5d8 100%);border:1px solid #b8ad95;box-shadow:inset 0 0 0 3px #f7f4e9,inset 0 0 0 4px #d1c6ae,0 10px 22px rgba(0,0,0,.15);}
.texx-passport-crest{display:flex;align-items:center;justify-content:center;width:41px;height:41px;flex-shrink:0;border:1px solid #aa9b78;border-radius:50%;background:radial-gradient(circle,#fffdf5,#e0d6bb);color:#25221d;font-size:19px;}
.texx-passport-holo{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:5px 7px;border:1px solid rgba(88,83,113,.4);color:#292634;font-size:8px;font-weight:900;letter-spacing:.07em;background:linear-gradient(115deg,#c1f3f2 0%,#e8d5f5 20%,#f8f3bc 42%,#b6dce7 62%,#d9c7f0 82%,#b9f2e4 100%);box-shadow:inset 0 1px 2px #fff9,0 1px 3px #0002;overflow:hidden;}
.texx-passport-holo:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(125deg,transparent 0,transparent 6px,#ffffff55 7px,transparent 9px);mix-blend-mode:screen;}
.texx-passport-micro{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em;font-size:8px;color:#726b5d;text-transform:uppercase;}
.texx-passport-watermark{position:absolute;right:8px;top:50px;font-size:112px;line-height:1;color:rgba(151,137,108,.08);transform:rotate(-12deg);pointer-events:none;}


/* TEXX Comunidade: hierarquia própria de navegação.
   O estilo global de [role=tablist] é intencionalmente sobrescrito SOMENTE nas subabas. */
#main-content #texx-community-subtabs { background: #fff; border-bottom: 1px solid #e5e5e5; }
#main-content #texx-community-subtabs button[role="tab"] {
  border-radius: 9px 9px 0 0;
  box-shadow: none;
  min-height: 44px;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
#main-content #texx-community-subtabs button[role="tab"][aria-selected="true"] {
  background-color: #e5e7eb !important;
  color: #262626 !important;
  border-bottom-color: #a3a3a3 !important;
  box-shadow: none !important;
}
#main-content #texx-community-subtabs button[role="tab"][aria-selected="false"] {
  background-color: #fafafa !important;
  color: #737373 !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}
#main-content #texx-community-subtabs button[role="tab"][aria-selected="false"]:hover {
  background-color: #f1f1f1 !important;
  color: #404040 !important;
}


        /* Botão contextual de retorno ao topo: aparece apenas após rolagem significativa. */
        #texx-back-to-top { position:absolute; right:18px; bottom:88px; z-index:45; width:44px; height:44px; border-radius:50%; background:#171717; color:#fff; box-shadow:0 4px 16px rgba(0,0,0,.23); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:opacity .2s,transform .2s; }
        #texx-back-to-top.texx-top-hidden { opacity:0; pointer-events:none; transform:translateY(8px); }
        #texx-back-to-top:focus-visible { outline:3px solid #9ca3af; outline-offset:3px; }


/* Mobile: manter a navegação principal dentro da viewport visual.
   100vh pode incluir a área sob as barras do navegador Android.
   A barra participa do flex layout para não ficar recortada pelo overflow do app. */
@media (max-width: 639px) {
  /* Impede que o body centralizado se desloque ou crie faixa vazia no topo. */
  html, body {
    width: 100%;
    height: 100%;
    height: 100dvh;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    overscroll-behavior: none;
  }
  body {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    padding: 0;
  }
  #texx-app-shell {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    max-height: 100dvh;
    flex-shrink: 0;
  }
  #main-content {
    min-height: 0;
    overscroll-behavior-y: contain;
  }
  #texx-bottom-navigation {
    position: relative;
    bottom: auto;
    left: auto;
    right: auto;
    width: 100%;
    flex-shrink: 0;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  }
}

@media(max-width:639px){body.flex.items-center.justify-center{align-items:flex-start;justify-content:flex-start}}

/* No celular, a moldura do protótipo desktop não deve criar linhas laterais. */
@media (max-width: 639px) {
  #texx-app-shell { border: 0 !important; border-radius: 0; }
}

/* TEXX Club — cupom destacável V7, integrado ao CMS de benefícios */
.texx-ticket{--tt-accent:#8157ad;--tt-wash:#eee6f5;--tt-line:#d7c8e5;display:grid;grid-template-columns:37px minmax(0,1fr) 126px;min-height:94px;position:relative;isolation:isolate;border:1px solid #e4e0d9;border-radius:0!important;box-shadow:0 3px 10px #29231c0a,0 1px 2px #29231c08;background:#faf8f4;color:#262525;overflow:hidden}
.texx-ticket:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.36;background-image:radial-gradient(#b4a99a .45px,transparent .7px),radial-gradient(#fff .6px,transparent 1px);background-size:6px 6px,9px 9px;background-position:0 0,3px 2px}
.texx-ticket--red{--tt-accent:#bd3339;--tt-wash:#f8e8e9;--tt-line:#edc9cb}
.texx-ticket--orange{--tt-accent:#b66c21;--tt-wash:#f9ecde;--tt-line:#e8d3bb}
.texx-ticket--blue{--tt-accent:#3b8191;--tt-wash:#e5f1f2;--tt-line:#c4dfe3}
.texx-ticket--green{--tt-accent:#49805d;--tt-wash:#e6f1e9;--tt-line:#c6dfcd}
.texx-ticket--neutral{--tt-accent:#68656a;--tt-wash:#eceaeb;--tt-line:#d8d4d7}
.texx-ticket-rail{background:var(--tt-wash);border-right:1px solid var(--tt-line);color:var(--tt-accent);display:flex;align-items:center;justify-content:center;position:relative}
.texx-ticket-rail:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--tt-accent)}
.texx-ticket-rail i{font-size:16px}
.texx-ticket-info{min-width:0;padding:10px 8px 9px 10px;display:flex;flex-direction:column;justify-content:center;gap:3px}
.texx-ticket-category{font-size:8px;letter-spacing:.5px;text-transform:uppercase;font-weight:800;color:var(--tt-accent);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.texx-ticket-partner{font-size:10px;line-height:1.2;font-weight:720;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#55514b}
.texx-ticket-offer{font-size:13px;line-height:1.18;font-weight:850;color:var(--tt-accent);letter-spacing:-.28px;margin:2px 0 3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.texx-ticket-meta{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap;padding:5px 6px;background:#f0ece5a8;border:1px solid #e7dfd5;font-size:9px;font-weight:700;color:#625d55}
.texx-ticket-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.texx-ticket-place{flex:1 1 auto}.texx-ticket-date{flex:0 0 auto}.texx-ticket-dot{flex:0 0 auto;color:#ada398}
.texx-ticket-meta i{font-size:9px;color:#80766d}
.texx-ticket-stub{position:relative;min-width:0;border-left:1.5px dashed #c7beb2;background:linear-gradient(135deg,#f3efe8c7,#f8f5f0a8);padding:9px 8px 9px 9px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.texx-ticket-stub:before,.texx-ticket-stub:after{content:"";position:absolute;left:-6px;width:11px;height:11px;background:#fff;border:1px solid #e4e0d9;border-radius:50%;z-index:2}
.texx-ticket-stub:before{top:-6px}.texx-ticket-stub:after{bottom:-6px}
.texx-ticket-stub-label{font-size:8px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#91877c;text-align:center}
.texx-ticket-code{min-width:0;background:linear-gradient(180deg,#e9e4dc,#f5f1eb);border:1px solid #d9d0c4;border-radius:6px;box-shadow:inset 0 2px 4px #55433316,0 1px 0 #fff;min-height:25px;display:flex;align-items:center;justify-content:center;padding:5px 4px}
.texx-ticket-code strong{font-size:9px;letter-spacing:-.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-weight:800;color:#403c37}
.texx-ticket-copy{border:1px solid #d9d2c9;background:#fffdfa;color:#403b36;font-weight:750;font-size:10px;border-radius:6px;padding:6px;cursor:pointer;min-height:26px}
.texx-ticket-copy:focus-visible{outline:2px solid var(--tt-accent);outline-offset:2px}
.texx-ticket-copy:active{transform:translateY(1px)}
.texx-ticket-locked{font-size:9px;line-height:1.2;text-align:center;color:#8b5e28;font-weight:700}
@media(max-width:370px){.texx-ticket{grid-template-columns:32px minmax(0,1fr) 113px}.texx-ticket-info{padding-left:8px;padding-right:5px}.texx-ticket-stub{padding-left:7px;padding-right:6px}.texx-ticket-code strong{font-size:8px}.texx-ticket-meta{font-size:8px;padding:4px 3px;gap:3px}.texx-ticket-offer{font-size:12px}}
