.brand {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 190px;
  height: 58px;
  overflow: hidden;
}

.brand img {
  display: block;
  width: 190px;
  height: auto;
  max-width: none;
  flex: 0 0 auto;
}

.sidebar > .brand {
  width: 218px;
  height: 72px;
  padding: 0;
  margin: 0 0 18px;
  background: #fff;
  border-radius: 14px;
}

.sidebar > .brand img { width: 202px; }

@media (max-width: 600px) {
  .public-nav > .brand { width: 154px; height: 54px; }
  .public-nav > .brand img { width: 154px; }
}

.permission-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:9px; }
.permission-item { display:flex; align-items:center; gap:8px; padding:8px; border:1px solid var(--line); border-radius:10px; font-size:12px; font-weight:650; }
.permission-item input { accent-color:var(--primary); width:17px; height:17px; }
.modal:has(#adminForm) { padding:20px; }
.modal:has(#adminForm) .form { gap:10px; }
@media (max-width:600px) { .permission-grid { grid-template-columns:1fr; } }
.btn-delete { background:#b42332; color:#fff; box-shadow:0 7px 16px #b4233230; }
.btn-delete:hover { background:#941d29; }
.btn-delete:disabled { opacity:.55; cursor:not-allowed; }
.danger-eyebrow { background:#ffeaec; color:#a92634; }
.delete-warning { margin:18px 0; padding:14px; border:1px solid #ffc9ce; border-radius:12px; background:#fff5f6; color:#80202a; }
.delete-warning p { margin:6px 0 0; font-size:13px; line-height:1.5; }
.avatar { overflow:hidden; flex:0 0 auto; }
.avatar img { width:100%; height:100%; object-fit:cover; }
.profile-layout { display:grid; grid-template-columns:300px minmax(360px,620px); gap:18px; align-items:start; }
.profile-card { text-align:center; }
.profile-card h2 { margin:15px 0 5px; }
.profile-card p { margin:0 0 12px; color:var(--muted); }
.profile-photo { width:150px; height:150px; margin:0 auto; border-radius:50%; overflow:hidden; display:grid; place-items:center; background:linear-gradient(135deg,var(--light),var(--primary)); color:#fff; font-size:54px; font-weight:850; box-shadow:0 12px 30px #6f1dff30; }
.profile-photo img { width:100%; height:100%; object-fit:cover; }
.profile-upload { display:grid; gap:15px; }
.photo-drop { min-height:180px; border:2px dashed #cfc5e3; border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; background:#faf8ff; color:var(--dark); cursor:pointer; transition:.2s; }
.photo-drop:hover { border-color:var(--primary); background:#f5f0ff; }
.photo-drop span { font-size:30px; color:var(--primary); }
.photo-drop small { color:var(--muted); }
@media (max-width:760px) { .profile-layout { grid-template-columns:1fr; } }
.support-layout { display:grid; grid-template-columns:minmax(300px,430px) 1fr; gap:18px; align-items:start; }
.support-layout form { display:grid; gap:14px; }
.ticket-list { display:grid; gap:13px; }
.admin-tickets { grid-template-columns:repeat(2,minmax(320px,1fr)); }
.ticket-card { display:grid; gap:13px; }
.ticket-head { display:flex; justify-content:space-between; gap:14px; align-items:start; }
.ticket-head h3 { margin:9px 0 4px; }
.ticket-message { padding:13px; border-radius:11px; background:#f8f6fb; line-height:1.55; white-space:pre-wrap; }
.reply-list { display:grid; gap:8px; padding-left:14px; border-left:3px solid #ded3f4; }
.reply { padding:10px 12px; border-radius:10px; background:#f3edff; }
.reply strong { color:var(--dark); }
.reply strong small { font-weight:600; color:var(--muted); }
.reply p { margin:5px 0; white-space:pre-wrap; line-height:1.5; }
.reply>span { color:var(--muted); font-size:11px; }
.ticket-actions,.support-filters,.table-actions { display:flex; flex-wrap:wrap; gap:8px; }
.wallet-topup-card form { align-items:end; }
.badge.open { background:#fff4df; color:#a76500; }
.badge.answered { background:#eee7ff; color:var(--primary); }
.badge.closed { background:#eceaf0; color:#5f5969; }
@media (max-width:1000px) { .support-layout,.admin-tickets { grid-template-columns:1fr; } }
.integration-grid { display:grid; grid-template-columns:repeat(2,minmax(320px,1fr)); gap:18px; }
.integration-card { display:grid; gap:14px; }
.integration-card h2 { margin:0; }
.integration-logo { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:#4285f4; color:#fff; font-size:22px; font-weight:900; }
.integration-logo.mp { background:#009ee3; font-size:15px; }
.integration-logo:not(.mp) { font-size:15px; }
.integration-lines { display:grid; gap:8px; }
.integration-lines>div { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-size:13px; }
.integration-check { font-weight:750; }
.integration-check.ready,.money-positive { color:var(--good); }
.integration-check.pending,.money-negative { color:var(--bad); }
.route-summary { padding:11px; border-radius:10px; background:#f5f0ff; color:var(--dark); font-size:12px; font-weight:750; }
.route-summary.pending { background:#f4f2f7; color:var(--muted); font-weight:650; }
.use-current-location { width:100%; padding:9px 12px; font-size:12px; }
.map-error { position:absolute; inset:0; display:grid; place-items:center; padding:32px; text-align:center; color:var(--bad); background:#fff7f8; font-weight:750; }
.field { position:relative; }
.address-suggestions { display:none; position:absolute; z-index:1000; top:calc(100% - 1px); left:0; right:0; max-height:245px; overflow:auto; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 16px 38px #21153f24; }
.address-suggestions.open { display:grid; }
.address-suggestions button { padding:11px 12px; border:0; border-bottom:1px solid var(--line); background:#fff; color:var(--ink); text-align:left; }
.address-suggestions button:last-child { border-bottom:0; }
.address-suggestions button:hover,.address-suggestions button:focus { background:#f7f3ff; outline:none; }
.address-suggestions strong,.address-suggestions small { display:block; }
.address-suggestions strong { font-size:12px; line-height:1.35; }
.address-suggestions small { margin-top:3px; color:var(--muted); font-size:11px; }
.address-suggestions-empty { padding:13px 12px; color:var(--muted); font-size:12px; line-height:1.4; background:#faf8ff; }
.rating-modal { text-align:center; }
.rating-modal .modal-head { text-align:left; }
.rating-stars { display:flex; align-items:center; justify-content:center; gap:7px; padding:18px 8px 8px; }
.rating-star { border:0; padding:2px; background:transparent; color:#d9d3e5; font-size:clamp(38px,10vw,52px); line-height:1; filter:drop-shadow(0 3px 5px #35176318); transition:transform .15s,color .15s; }
.rating-star:hover,.rating-star:focus-visible,.rating-star.selected { color:#ffb526; transform:translateY(-2px) scale(1.06); outline:none; }
.rating-selection { min-height:24px; margin-bottom:12px; color:var(--dark); font-weight:850; }
.rating-modal .field { text-align:left; }
.ride-rating-done { display:inline-flex; padding:8px 11px; border-radius:11px; background:#fff6dd; color:#9b6200; font-size:12px; font-weight:850; white-space:nowrap; }
.participant-rating { display:inline-flex; align-items:center; gap:4px; margin:4px 0; color:#9b6200; font-size:12px; font-weight:850; }
.live-map { height:590px; align-self:start; }
.live-map.leaflet-container { background:#e9edf1; font-family:inherit; }
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg,.leaflet-pane>canvas { position:absolute; left:0; top:0; }
.leaflet-tile-pane { z-index:200; }
.leaflet-overlay-pane { z-index:400; }
.leaflet-shadow-pane { z-index:500; }
.leaflet-marker-pane { z-index:600; }
.leaflet-tooltip-pane { z-index:650; }
.leaflet-popup-pane { z-index:700; }
.confirm-ride:disabled,.btn:disabled { opacity:.58; cursor:not-allowed; transform:none; box-shadow:none; }
.settings-benefits { display:grid; grid-template-columns:minmax(340px,.72fr) minmax(560px,1.28fr); gap:18px; align-items:start; margin-top:18px; }
.settings-benefits h3 { margin-top:0; }
.document-grid { display:grid; grid-template-columns:repeat(2,minmax(280px,1fr)); gap:18px; }
.driver-document-form { display:grid; gap:12px; }
.driver-document-form .document-status { padding:12px; border-radius:11px; background:#f8f6fb; color:var(--muted); line-height:1.5; }
.driver-document-form .document-status strong { color:var(--dark); }
.ticket-actions .btn,.table-wrap .btn { padding:9px 12px; font-size:12px; white-space:nowrap; }
.pix-modal { text-align:center; }
.pix-qr { width:220px; height:220px; object-fit:contain; margin:15px auto; border:10px solid #fff; border-radius:14px; box-shadow:var(--shadow); }
.pix-modal textarea { font-size:11px; word-break:break-all; }
.pix-modal .btn { width:100%; margin-top:9px; }
.card-payment-modal { width:min(680px,100%); }
#cardPaymentBrick_container { min-height:330px; margin:18px 0 10px; }
.destination-tools { display:flex; align-items:center; gap:7px; }
.destination-map-link { border:0; background:transparent; color:var(--primary); padding:5px 6px; font-size:11px; line-height:1; font-weight:850; white-space:nowrap; }
.destination-map-link:hover,.destination-map-link:focus-visible { text-decoration:underline; outline:none; }
.destination-map-link:disabled { color:var(--muted); opacity:.55; cursor:not-allowed; text-decoration:none; }
body.destination-picker-open { overflow:hidden; }
.destination-picker-wrap { z-index:120; padding:0; background:#fff; backdrop-filter:none; }
.destination-picker-modal { width:100vw; height:100vh; height:100dvh; min-height:0; overflow:hidden; background:#fff; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.destination-picker-head,.destination-picker-footer { position:relative; z-index:1001; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px clamp(18px,4vw,54px); background:#fff; }
.destination-picker-head { border-bottom:1px solid var(--line); }
.destination-picker-head h2 { margin:5px 0 2px; font-size:clamp(22px,3vw,32px); }
.destination-picker-head p { margin:0; color:var(--muted); font-size:13px; }
.destination-picker-head .close { flex:0 0 auto; width:42px; height:42px; font-size:24px; }
.destination-picker-map { position:relative; min-height:0; width:100%; height:100%; background:#e9edf1; }
.destination-picker-map.leaflet-container { font-family:inherit; }
.destination-picker-map .map-loading,.destination-picker-map .map-error { height:100%; }
.destination-picker-footer { border-top:1px solid var(--line); box-shadow:0 -8px 28px #21153f12; }
.destination-picker-footer>div { min-width:0; display:grid; gap:4px; }
.destination-picker-footer small { color:var(--muted); font-size:10px; font-weight:850; letter-spacing:.08em; }
.destination-picker-footer strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.destination-picker-go { min-width:132px; min-height:50px; border-radius:15px; font-size:19px; }
.permission-section { display:grid; gap:10px; padding:14px; border:1px solid var(--line); border-radius:14px; background:#fcfbfe; }
.permission-section p { margin:4px 0 0; }
.report-permission-section { border-color:#d8c9f7; background:#faf7ff; }
.admin-access-modal { width:min(760px,100%); }
.reports-welcome { align-items:center; }
.report-selector { display:grid; grid-template-columns:repeat(4,minmax(180px,1fr)); gap:10px; margin-bottom:16px; }
.report-type { min-height:98px; padding:14px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); text-align:left; display:grid; align-content:start; gap:6px; box-shadow:0 3px 14px #25104d08; transition:.18s; }
.report-type:hover { border-color:#b898ef; transform:translateY(-1px); }
.report-type.active { border:2px solid var(--primary); background:#f7f2ff; box-shadow:0 8px 22px #6f1dff18; }
.report-type strong { font-size:13px; line-height:1.25; }
.report-type small { color:var(--muted); font-size:10px; line-height:1.4; }
.report-filters { display:grid; grid-template-columns:minmax(260px,1fr) 160px 160px auto auto; gap:12px; align-items:end; margin-bottom:16px; }
.report-filters p { margin:5px 0 0; }
.report-summary { margin-bottom:16px; }
.report-spreadsheet { max-width:100%; overflow:auto; background:#fff; border:1px solid var(--line); border-radius:17px; box-shadow:0 5px 20px #25104d0b; }
.report-spreadsheet table { min-width:980px; }
.report-spreadsheet th { position:sticky; top:0; z-index:1; background:#f0e9fb; color:#3d238c; }
.report-spreadsheet tbody tr:nth-child(even) { background:#fbf9fd; }
.report-spreadsheet tbody tr:hover { background:#f5f0ff; }
.report-spreadsheet td { white-space:nowrap; max-width:260px; overflow:hidden; text-overflow:ellipsis; }
.report-spreadsheet td:nth-child(n+4) { font-variant-numeric:tabular-nums; }
.report-id { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--muted); }
.report-generated { margin:10px 3px 0; color:var(--muted); font-size:11px; text-align:right; }
.badge.refunded { background:#e8f4ff; color:#17669e; }
@media (max-width:1000px) { .settings-benefits { grid-template-columns:1fr; } }
@media (max-width:1100px) { .report-selector { grid-template-columns:repeat(2,minmax(180px,1fr)); } .report-filters { grid-template-columns:1fr 1fr; } .report-filters>div:first-child { grid-column:1/-1; } }
@media (max-width:760px) { .integration-grid,.document-grid { grid-template-columns:1fr; } .report-selector { display:flex; overflow:auto; padding-bottom:5px; scroll-snap-type:x proximity; } .report-type { flex:0 0 230px; scroll-snap-align:start; } }
@media (max-width:960px) { .live-map { height:500px; min-height:500px; } }
@media (max-width:600px) {
  .live-map { height:410px; min-height:410px; }
  .destination-map-link { font-size:10px; padding-inline:3px; }
  .destination-picker-head { padding:12px 16px; align-items:flex-start; }
  .destination-picker-head .eyebrow { padding:5px 8px; font-size:9px; }
  .destination-picker-head h2 { margin-top:4px; font-size:21px; }
  .destination-picker-head p { max-width:270px; font-size:11px; line-height:1.35; }
  .destination-picker-head .close { width:38px; height:38px; }
  .destination-picker-footer { padding:12px 14px; gap:12px; }
  .destination-picker-footer strong { max-width:calc(100vw - 135px); font-size:12px; }
  .destination-picker-go { min-width:96px; min-height:46px; padding:10px 16px; }
  .reports-welcome .download-report-pdf { width:100%; }
  .report-filters { grid-template-columns:1fr; }
  .report-filters>div:first-child { grid-column:auto; }
  .report-summary { grid-template-columns:1fr 1fr; }
}

/* Solicitação do passageiro: endereços sempre visíveis e mapa em destaque. */
.driver-controls-only { display:flex; justify-content:flex-end; margin-bottom:16px; }

.passenger-request { margin-top:-4px; }
.request-form { display:grid; gap:14px; }
.request-address-card { padding:15px 17px; box-shadow:0 5px 22px #25104d0d; }
.request-address-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; align-items:start; }
.request-address-card .additional-stops { margin-top:13px; }
.request-ride-layout { grid-template-columns:minmax(0,1fr) 380px; align-items:start; }
.request-options { align-self:start; }
.passenger-request .live-map { height:calc(100dvh - 275px); min-height:600px; }

@media (max-width:960px) {
  .request-ride-layout { grid-template-columns:1fr; }
  .passenger-request .live-map { height:55dvh; min-height:440px; }
}

@media (max-width:600px) {
  .driver-controls-only .driver-controls { width:100%; }
  .driver-controls-only .btn { flex:1; }
  .passenger-request { margin-top:0; }
  .request-form { gap:12px; }
  .request-address-card { padding:13px; border-radius:15px; }
  .request-address-grid { grid-template-columns:1fr; gap:12px; }
  .request-address-card .additional-stops { margin-top:12px; }
  .request-ride-layout { gap:12px; }
  .passenger-request .live-map { height:44dvh; min-height:340px; border-radius:16px; }
}

/* Acompanhamento seguro da corrida em tempo real. */
.passenger-tracking-page { display:grid; gap:16px; }
.passenger-driver-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:center; padding:18px 20px; border-color:#d8c9f7; box-shadow:0 12px 32px #6f1dff18; }
.passenger-driver-card.waiting { grid-template-columns:auto 1fr; border-color:var(--line); }
.passenger-driver-card h2 { margin:5px 0 3px; font-size:22px; }
.passenger-driver-card p,.passenger-driver-card small { display:block; margin:3px 0 0; color:var(--muted); }
.driver-live-avatar { width:68px; height:68px; overflow:hidden; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,var(--light),var(--primary)); color:#fff; font-size:28px; font-weight:900; box-shadow:0 8px 20px #6f1dff2b; }
.driver-live-avatar img { width:100%; height:100%; object-fit:cover; }
.live-tracking-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:18px; align-items:start; }
.live-ride-map { height:590px; min-height:590px; border:1px solid var(--line); border-radius:20px; overflow:hidden; position:relative; background:#e9edf1; box-shadow:var(--shadow); }
.passenger-map-waiting { min-height:100%; display:grid; grid-template-columns:58px minmax(0,1fr); align-content:start; align-items:start; gap:14px; padding:19px; border:1px dashed #cdbbea; border-radius:20px; background:linear-gradient(145deg,#fff,#f5efff); color:var(--dark); text-align:left; }
.passenger-searching-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#ece2ff; font-size:26px; animation:driver-demand-float 2.1s ease-in-out infinite; }
.passenger-map-waiting-copy { display:grid; align-content:start; justify-items:start; gap:8px; min-width:0; }
.passenger-map-waiting strong { font-size:18px; line-height:1.3; }
.passenger-map-waiting p { max-width:360px; margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.live-tracking-layout.waiting-driver { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
.live-tracking-layout.waiting-driver .live-ride-details { height:100%; align-self:stretch; }
.live-ride-details { display:grid; gap:13px; align-self:start; }
.live-ride-details h3 { line-height:1.4; margin-bottom:2px; }
.tracking-freshness { display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius:11px; background:#eefaf5; color:#087a51; font-size:12px; font-weight:750; }
.tracking-freshness i { width:9px; height:9px; border-radius:50%; background:var(--good); box-shadow:0 0 0 5px #18a56d18; }
.pickup-countdown-card { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; overflow:hidden; padding:16px 18px 20px; border:1px solid #d3bdf9; border-radius:17px; background:linear-gradient(135deg,#fff 0%,#f5efff 100%); box-shadow:0 10px 28px #6f1dff16; }
.pickup-countdown-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; background:#6f1dff; color:#fff; font-size:23px; font-weight:900; box-shadow:0 8px 18px #6f1dff2d; }
.pickup-countdown-copy { min-width:0; display:grid; gap:2px; }
.pickup-countdown-copy>span { color:var(--primary); font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.pickup-countdown-copy>strong { color:var(--dark); font-size:14px; line-height:1.35; }
.pickup-countdown-copy>small { color:var(--muted); font-size:11px; line-height:1.35; }
.pickup-countdown-time { min-width:82px; text-align:right; }
.pickup-countdown-time strong { display:block; color:var(--primary); font-size:30px; font-variant-numeric:tabular-nums; line-height:1; letter-spacing:-.03em; }
.pickup-countdown-time span { display:block; margin-top:3px; color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; }
.pickup-countdown-track { position:absolute; right:0; bottom:0; left:0; height:5px; background:#e7dcfa; }
.pickup-countdown-track i { display:block; height:100%; background:linear-gradient(90deg,#6f1dff,#a64dff); transition:width .45s linear,background .2s; }
.pickup-countdown-card.urgent { border-color:#f0bd68; background:linear-gradient(135deg,#fff 0%,#fff8ea 100%); }
.pickup-countdown-card.urgent .pickup-countdown-icon,.pickup-countdown-card.urgent .pickup-countdown-track i { background:#e59218; }
.pickup-countdown-card.urgent .pickup-countdown-time strong,.pickup-countdown-card.urgent .pickup-countdown-copy>span { color:#a45c00; }
.pickup-countdown-card.expired { border-color:#e9aab1; background:linear-gradient(135deg,#fff 0%,#fff0f1 100%); }
.pickup-countdown-card.expired .pickup-countdown-icon,.pickup-countdown-card.expired .pickup-countdown-track i { background:#b42332; }
.pickup-countdown-card.expired .pickup-countdown-time strong,.pickup-countdown-card.expired .pickup-countdown-copy>span { color:#9d1f2d; }
.live-ride-actions { display:flex; gap:8px; flex-wrap:wrap; }
.live-ride-actions .btn { flex:1; }
.borala-map-marker { border:0!important; background:transparent!important; }
.borala-map-marker>span { position:relative; width:44px; height:50px; display:grid; place-items:center; border:3px solid #fff; border-radius:50% 50% 50% 13px; background:var(--marker-color,#6f1dff); color:#fff; box-shadow:0 8px 22px #21153f4d; transform:rotate(-45deg); transform-origin:50% 50%; }
.borala-map-marker svg { width:25px; height:25px; overflow:visible; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transform:rotate(calc(45deg + var(--marker-heading,0deg))); }
.borala-map-marker.driver { --marker-color:#6f1dff; }
.borala-map-marker.passenger { --marker-color:#1687d9; }
.borala-map-marker.destination { --marker-color:#3d238c; }
.borala-map-marker.stop { --marker-color:#ed9d26; }
.borala-map-marker.official-map-marker>span { width:52px; height:65px; border:0; border-radius:0; background:transparent; box-shadow:none; transform:none; }
.borala-map-marker.official-map-marker img { width:100%; height:100%; display:block; object-fit:contain; filter:drop-shadow(0 8px 8px #21153f42); }
.borala-map-marker.demand>span { animation:driver-demand-float 2.1s ease-in-out infinite; }
.borala-map-marker.demand b { position:absolute; right:-5px; top:-5px; min-width:20px; height:20px; padding:0 5px; display:grid; place-items:center; border:2px solid #fff; border-radius:999px; background:#22104d; color:#fff; font-size:10px; line-height:1; transform:rotate(45deg); }
.borala-map-marker.official-map-marker.demand b { right:-2px; top:1px; transform:none; }
.external-navigation-card { margin:-3px 0 18px; display:flex; justify-content:space-between; align-items:center; gap:18px; border-color:#d8c9f7; }
.external-navigation-card h3 { margin:5px 0 3px; }
.external-navigation-card p { margin:0; }
.external-navigation-actions { display:flex; gap:9px; flex:0 0 auto; }
.btn-google { background:#e8f0fe; color:#174ea6; }
.btn-waze { background:#e5f9ff; color:#006c86; }
.ride-history-divider { margin:24px 0; }

@media (max-width:960px) {
  .live-tracking-layout,.live-tracking-layout.waiting-driver { grid-template-columns:1fr; }
  .live-ride-map { height:55dvh; min-height:440px; }
  .external-navigation-card { align-items:flex-start; }
}

@media (max-width:600px) {
  .passenger-tracking-page { gap:12px; }
  .passenger-driver-card { grid-template-columns:auto minmax(0,1fr); padding:14px; gap:12px; }
  .passenger-driver-card>.badge { grid-column:1/-1; justify-self:start; }
  .driver-live-avatar { width:56px; height:56px; font-size:23px; }
  .passenger-driver-card h2 { font-size:18px; }
  .pickup-countdown-card { grid-template-columns:auto minmax(0,1fr); gap:11px; padding:13px 13px 18px; }
  .pickup-countdown-icon { width:38px; height:38px; font-size:20px; }
  .pickup-countdown-time { grid-column:1/-1; min-width:0; text-align:center; }
  .pickup-countdown-time strong { font-size:33px; }
  .live-ride-map { height:48dvh; min-height:360px; border-radius:16px; }
  .external-navigation-card { display:grid; margin-bottom:12px; }
  .external-navigation-actions { width:100%; }
  .external-navigation-actions .btn { flex:1; padding-inline:10px; }
}

/* Painel imersivo do motorista: mapa integral, demanda e controles flutuantes. */
.topbar-leading { display:flex; gap:12px; align-items:center; }
.driver-map-shell { display:block; min-height:100dvh; }
.driver-map-shell .main { width:100%; height:100dvh; overflow:hidden; }
.driver-map-shell .sidebar { position:fixed; z-index:1100; top:0; left:-270px; width:250px; height:100dvh; transition:left .22s ease; box-shadow:16px 0 45px #1209264d; }
.driver-map-shell .sidebar.open { left:0; }
.driver-map-shell .mobile-menu { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid #ffffffba; border-radius:13px; background:#ffffffd9; color:var(--dark); box-shadow:0 8px 24px #21153f26; backdrop-filter:blur(12px); font-size:20px; }
.driver-map-shell .driver-map-topbar { position:fixed; z-index:900; top:0; right:0; left:0; height:auto; min-height:0; padding:16px 18px; border:0; background:transparent; pointer-events:none; }
.driver-map-shell .driver-map-topbar button { pointer-events:auto; }
.driver-map-shell .driver-map-topbar .logout { min-height:42px; padding:9px 15px; border:1px solid #ffffffba; border-radius:13px; background:#ffffffd9; color:var(--dark); box-shadow:0 8px 24px #21153f26; backdrop-filter:blur(12px); }
.driver-map-content { width:100%; max-width:none; height:100dvh; margin:0; padding:0!important; overflow:hidden; }
.driver-map-content>.empty { height:100%; display:grid; place-items:center; margin:0; }
.driver-map-stage { position:relative; width:100%; height:100dvh; min-height:540px; overflow:hidden; background:#e9edf1; }
.driver-map-stage>.driver-route-map { position:absolute; inset:0; width:100%; height:100%; min-height:0; border:0; border-radius:0; box-shadow:none; }
.driver-map-stage>.driver-route-map.live-ride-map { height:100%; min-height:0; border:0; border-radius:0; box-shadow:none; }
.driver-map-stage .leaflet-top,.driver-map-stage .leaflet-bottom { position:absolute!important; z-index:800; pointer-events:none; }
.driver-map-stage .leaflet-left { left:10px!important; }
.driver-map-stage .leaflet-right { right:10px!important; }
.driver-map-stage .leaflet-top { top:0; }
.driver-map-stage .leaflet-bottom { bottom:54px!important; }
.driver-map-stage .leaflet-top.leaflet-left { top:66px!important; }
.driver-map-stage .leaflet-control { position:relative; z-index:800; clear:both; pointer-events:auto; }
.driver-map-stage .leaflet-left .leaflet-control { float:left; }
.driver-map-stage .leaflet-right .leaflet-control { float:right; }
.driver-map-stage .leaflet-control-zoom { overflow:hidden; border:1px solid #ffffffc7; border-radius:12px; background:#ffffffdd; box-shadow:0 6px 20px #21153f24; backdrop-filter:blur(10px); }
.driver-map-stage .leaflet-control-zoom a { width:34px; height:32px; display:grid; place-items:center; border-bottom:1px solid var(--line); color:var(--dark); text-decoration:none; font-size:20px; line-height:1; }
.driver-map-stage .leaflet-control-zoom a:last-child { border-bottom:0; }
.driver-map-stage .leaflet-control-attribution { padding:3px 6px; border-radius:7px; background:#ffffffc9; color:#5d566a; font-size:9px; }
.driver-demand-status { position:absolute; z-index:500; top:20px; left:50%; transform:translateX(-50%); display:grid; grid-template-columns:auto auto; align-items:center; gap:2px 8px; max-width:min(520px,calc(100% - 180px)); padding:9px 14px; border:1px solid #ffffffc7; border-radius:15px; background:#ffffffdc; box-shadow:0 8px 25px #21153f20; backdrop-filter:blur(12px); pointer-events:none; }
.driver-demand-status strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.driver-demand-status small { grid-column:2; color:var(--muted); font-size:9px; }
.driver-demand-pulse { grid-row:1/3; width:10px; height:10px; border-radius:50%; background:var(--primary); box-shadow:0 0 0 0 #6f1dff70; animation:driver-demand-pulse 1.8s infinite; }
@keyframes driver-demand-pulse { 70% { box-shadow:0 0 0 11px #6f1dff00; } 100% { box-shadow:0 0 0 0 #6f1dff00; } }
.driver-demand-marker { border:0!important; background:transparent!important; }
.driver-demand-marker span { width:42px; height:42px; display:grid; place-items:center; border:3px solid #fff; border-radius:50%; background:linear-gradient(135deg,var(--light),var(--primary)); color:#fff; font-size:13px; font-weight:900; box-shadow:0 7px 24px #5420a966; animation:driver-demand-float 2.1s ease-in-out infinite; }
@keyframes driver-demand-float { 50% { transform:translateY(-4px) scale(1.04); } }
.driver-map-selected { position:absolute; z-index:480; top:82px; left:18px; width:min(520px,calc(100% - 36px)); margin:0; padding:12px 14px; border-color:#ffffffc7; background:#ffffffdc; box-shadow:0 8px 25px #21153f20; backdrop-filter:blur(12px); }
.driver-map-selected h3 { max-width:380px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.driver-call-tray { position:absolute; z-index:510; right:14px; bottom:64px; left:14px; display:grid; gap:8px; padding:10px; border:1px solid #ffffffbd; border-radius:18px; background:#ffffffc9; box-shadow:0 12px 34px #21153f30; backdrop-filter:blur(15px); }
.driver-call-tray-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 5px; font-size:12px; }
.driver-call-tray-head span { min-width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:var(--primary); color:#fff; font-size:11px; font-weight:900; }
.driver-call-scroll { display:flex; gap:10px; overflow-x:auto; overflow-y:hidden; padding:1px 1px 4px; scrollbar-width:thin; scroll-snap-type:x proximity; }
.driver-call-scroll .driver-call-card { flex:0 0 min(340px,85vw); padding:13px; border-radius:14px; box-shadow:0 3px 12px #25104d12; scroll-snap-align:start; }
.driver-call-scroll .driver-trip-points { grid-template-columns:1fr; gap:8px; margin:10px 0; }
.driver-call-scroll .driver-trip-points>div { min-width:0; }
.driver-call-scroll .driver-trip-points .trip-point-stop { display:none; }
.driver-call-scroll .driver-trip-points .trip-point>div { min-width:0; }
.driver-call-scroll .driver-trip-points strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.driver-call-scroll .driver-call-head>div { min-width:0; }
.driver-call-scroll .driver-call-head h3 { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.25; }
.driver-call-scroll .driver-call-meta { gap:5px; }
.driver-call-scroll .driver-call-meta span { padding:5px 7px; font-size:10px; }
.driver-call-scroll .driver-call-actions { margin-top:9px; }
.driver-call-scroll .driver-call-actions .btn { padding:8px 9px; font-size:10px; }
.driver-call-tray-empty { right:auto; max-width:min(430px,calc(100% - 28px)); }
.driver-demand-empty { padding:7px 5px 3px; color:var(--muted); font-size:11px; }
.driver-bottom-controls { position:absolute; z-index:540; left:50%; bottom:max(12px,env(safe-area-inset-bottom)); display:flex; justify-content:center; transform:translateX(-50%); pointer-events:none; }
.driver-bottom-controls .driver-controls { position:relative; width:auto; padding:0; border:0; background:transparent; box-shadow:none; pointer-events:none; }
.driver-bottom-controls .btn { flex:0 0 auto; white-space:nowrap; pointer-events:auto; }
.driver-bottom-controls .toggle-online { min-width:158px; min-height:54px; padding:13px 24px; border:3px solid #fff; border-radius:18px; font-size:15px; font-weight:900; box-shadow:0 10px 28px #21153f42; }
.driver-bottom-controls .enable-ride-notifications { position:absolute; left:calc(100% + 10px); bottom:5px; min-height:34px; padding:7px 10px; border:1px solid #ffffffc7; border-radius:11px; background:#ffffffe6; color:#5e566b; font-size:9px; opacity:.78; box-shadow:0 6px 18px #21153f1f; backdrop-filter:blur(10px); }
.driver-active-panel { position:absolute; z-index:520; top:76px; right:16px; bottom:64px; width:min(390px,calc(100% - 32px)); overflow:auto; padding:14px; border:1px solid #ffffffbd; border-radius:19px; background:#ffffffd9; box-shadow:0 14px 38px #21153f35; backdrop-filter:blur(15px); }
.driver-active-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.driver-active-panel-head>div { min-width:0; }
.driver-active-panel .driver-details-toggle { flex:0 0 auto; min-height:34px; padding:7px 9px; color:#5e566b; font-size:9px; }
.driver-active-panel h1 { margin:4px 0 12px; font-size:20px; }
.driver-active-panel .ride-progress { margin:0 0 12px; padding:10px 7px; }
.driver-active-panel .ride-progress>div { display:grid; justify-items:center; gap:4px; text-align:center; }
.driver-active-panel .ride-progress>div:not(:last-child):after { position:absolute; top:12px; left:65%; right:-35%; margin:0; }
.driver-active-panel .ride-progress i { position:relative; z-index:1; }
.driver-active-panel .pickup-countdown-card { grid-template-columns:auto minmax(0,1fr) auto; gap:9px; margin:0 0 10px; padding:11px 11px 15px; border-radius:13px; box-shadow:none; }
.driver-active-panel .pickup-countdown-icon { width:34px; height:34px; border-radius:10px; font-size:18px; }
.driver-active-panel .pickup-countdown-copy>strong { font-size:11px; }
.driver-active-panel .pickup-countdown-copy>small { font-size:9px; }
.driver-active-panel .pickup-countdown-time { min-width:62px; }
.driver-active-panel .pickup-countdown-time strong { font-size:24px; }
.driver-active-primary { position:sticky; top:-14px; z-index:4; display:grid; margin:0 0 10px; padding:8px 0; background:linear-gradient(180deg,#fffffff8 72%,#ffffff00); }
.driver-active-primary .btn { width:100%; min-height:43px; box-shadow:0 8px 20px #6f1dff2b; }
.driver-active-panel .external-navigation-card { display:grid; margin:0 0 10px; padding:12px; }
.driver-active-panel .external-navigation-actions { width:100%; }
.driver-active-panel .external-navigation-actions .btn { flex:1; padding:8px; font-size:10px; }
.driver-active-panel .driver-call-card { padding:13px; box-shadow:none; }
.driver-active-compact { position:absolute; z-index:550; left:50%; bottom:max(16px,env(safe-area-inset-bottom)); display:flex; align-items:center; gap:9px; transform:translateX(-50%); }
.driver-active-compact .driver-details-toggle { min-height:48px; padding:10px 13px; border:2px solid #fff; background:#ffffffe8; color:var(--dark); box-shadow:0 9px 24px #21153f35; backdrop-filter:blur(12px); }
.driver-active-compact .driver-details-toggle span { font-size:10px; }
.driver-active-compact .compact-primary { position:static; min-width:220px; margin:0; padding:0; background:none; }
.driver-active-compact .compact-primary .btn { min-height:54px; border:3px solid #fff; border-radius:17px; font-size:15px; font-weight:900; box-shadow:0 11px 30px #6f1dff45; }
.driver-map-stage.driver-details-collapsed .leaflet-bottom { bottom:78px!important; }
.driver-map-shell .pwa-floating-install { display:none; }

@supports(padding:max(0px)) {
  .driver-map-shell .driver-map-topbar { padding-top:max(16px,env(safe-area-inset-top)); padding-right:max(18px,env(safe-area-inset-right)); padding-left:max(18px,env(safe-area-inset-left)); }
}

@media (max-width:600px) {
  .driver-map-shell .driver-map-topbar { padding:10px 12px; }
  .driver-map-shell .mobile-menu,.driver-map-shell .driver-map-topbar .logout { min-height:38px; height:38px; }
  .driver-map-shell .mobile-menu { width:38px; font-size:18px; }
  .driver-map-shell .driver-map-topbar .logout { padding:7px 12px; font-size:11px; }
  .driver-demand-status { top:57px; max-width:calc(100% - 24px); }
  .driver-demand-status strong { white-space:normal; line-height:1.25; }
  .driver-map-selected { top:136px; left:12px; width:calc(100% - 24px); padding:9px 11px; }
  .driver-map-selected .eyebrow { display:none; }
  .driver-map-selected h3 { margin:0; font-size:11px; }
  .driver-map-selected>strong { font-size:10px; }
  .driver-call-tray { right:8px; bottom:58px; left:8px; padding:8px; border-radius:15px; }
  .driver-call-scroll .driver-call-card { flex-basis:min(300px,88vw); }
  .driver-call-scroll .driver-call-head h3 { margin-top:5px; font-size:13px; }
  .driver-call-scroll .driver-call-value strong { font-size:15px; }
  .driver-call-scroll .driver-call-value small { font-size:9px; }
  .driver-bottom-controls { left:50%; bottom:max(9px,env(safe-area-inset-bottom)); }
  .driver-bottom-controls .driver-controls { width:auto; }
  .driver-bottom-controls .toggle-online { min-width:148px; min-height:50px; padding:11px 20px; font-size:14px; }
  .driver-bottom-controls .enable-ride-notifications { left:calc(100% + 7px); bottom:5px; min-height:30px; max-width:78px; overflow:hidden; padding:6px 8px; font-size:8px; text-overflow:ellipsis; }
  .driver-active-panel { top:auto; right:8px; bottom:57px; left:8px; width:auto; max-height:48dvh; padding:11px; }
  .driver-active-panel .driver-details-toggle { padding:6px 8px; }
  .driver-active-panel .pickup-countdown-card { grid-template-columns:auto minmax(0,1fr) auto; }
  .driver-active-panel .pickup-countdown-time { grid-column:auto; text-align:right; }
  .driver-active-panel .pickup-countdown-time strong { font-size:22px; }
  .driver-active-compact { right:8px; bottom:max(10px,env(safe-area-inset-bottom)); left:8px; width:auto; transform:none; }
  .driver-active-compact .driver-details-toggle { min-width:46px; padding:8px; }
  .driver-active-compact .driver-details-toggle span { display:none; }
  .driver-active-compact .compact-primary { min-width:0; flex:1; }
  .driver-map-stage .leaflet-top.leaflet-left { top:98px!important; }
  .driver-map-stage .leaflet-bottom { bottom:50px!important; }
  .driver-ride-modal-wrap { padding:10px; }
  .driver-ride-modal-wrap .ride-request-modal { max-height:calc(100dvh - 20px); padding:18px; border-radius:20px; }
  .driver-ride-modal-wrap .ride-request-modal .modal-head { gap:12px; }
  .driver-ride-modal-wrap .ride-request-modal .modal-head h2 { font-size:21px; }
  .driver-ride-modal-wrap .ride-request-modal .driver-trip-points { margin:14px 0; }
  .driver-ride-modal-wrap .ride-request-actions { position:sticky; bottom:-18px; margin-right:-18px; margin-left:-18px; padding:12px 18px 18px; background:linear-gradient(180deg,#fffffff2,#fff 28%); }
}

/* Demonstrativo financeiro do motorista e cotação automática do passageiro. */
.driver-period-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 18px; padding:13px 15px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.driver-period-toolbar>div:first-child { display:grid; gap:3px; }
.driver-period-toolbar span { color:var(--muted); font-size:11px; }
.driver-period-selector { display:flex; gap:6px; padding:4px; border-radius:12px; background:#f2eef9; }
.driver-period-selector .btn { min-width:66px; padding:8px 11px; font-size:11px; }

.backup-welcome { align-items:center; }
.backup-welcome .eyebrow { margin-bottom:10px; }
.backup-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.backup-summary .card { display:flex; align-items:center; gap:13px; box-shadow:none; }
.backup-summary .card p { margin:4px 0 0; }
.backup-summary-icon { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; border-radius:13px; background:#eee5ff; color:var(--primary); font-size:19px; font-weight:900; }
.backup-form { padding:22px; }
.backup-form-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:17px; }
.backup-form-head h3 { margin-bottom:5px; }
.backup-form-head p { margin:0; }
.backup-level-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.backup-level-card { position:relative; min-height:220px; display:flex; flex-direction:column; gap:10px; padding:19px; border:1px solid var(--line); border-radius:16px; background:#fbfafd; cursor:pointer; transition:.2s; }
.backup-level-card:hover { border-color:#c9b3f4; transform:translateY(-2px); }
.backup-level-card:has(input:checked) { border:2px solid var(--primary); padding:18px; background:#f7f3ff; box-shadow:0 10px 28px #6f1dff17; }
.backup-level-card input { position:absolute; opacity:0; pointer-events:none; }
.backup-level-select { position:absolute; top:14px; right:14px; width:24px; height:24px; display:grid; place-items:center; border:1px solid #d8d1e4; border-radius:50%; background:#fff; color:transparent; font-size:12px; }
.backup-level-card:has(input:checked) .backup-level-select { background:var(--primary); border-color:var(--primary); color:#fff; }
.backup-level-icon { width:45px; height:45px; display:grid; place-items:center; border-radius:14px; background:#eee5ff; color:var(--primary); font-size:21px; }
.backup-level-card strong { padding-right:28px; }
.backup-level-card p { flex:1; margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.backup-level-card small { color:var(--dark); font-weight:750; }
.backup-action-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.backup-action-bar p { margin:4px 0 0; }
.backup-history { margin-top:18px; }
.backup-history .table-wrap { box-shadow:none; }
.backup-checksum { padding:5px 7px; border-radius:7px; background:#f2eff7; color:var(--dark); font-size:11px; }
.backup-security-note { margin-top:18px; padding:17px 19px; border:1px solid #f0d29b; border-radius:15px; background:#fff9ed; color:#704600; }
.backup-security-note p { margin:5px 0 0; font-size:13px; line-height:1.5; }
.backup-confirm-detail,.backup-sensitive-warning { margin:18px 0; padding:15px; border-radius:13px; background:#f7f4ff; }
.backup-confirm-detail p,.backup-sensitive-warning p { margin:6px 0 0; color:var(--muted); font-size:13px; line-height:1.5; }
.backup-sensitive-warning { border:1px solid #f0d29b; background:#fff9ed; color:#704600; }

/* Reset controlado do sistema */
.system-reset-card { margin-top:18px; border:1px solid #efb3b9; background:linear-gradient(135deg,#fff 0%,#fff6f7 100%); box-shadow:0 14px 34px #a4202f12; }
.system-reset-copy { display:flex; align-items:flex-start; gap:15px; }
.system-reset-copy h3 { margin:2px 0 6px; color:#7d1723; }
.system-reset-copy p { max-width:850px; margin:0; color:#76565a; font-size:13px; line-height:1.55; }
.system-reset-icon { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border-radius:14px; background:#b42332; color:#fff; font-size:22px; font-weight:950; box-shadow:0 8px 18px #b4233230; }
.system-reset-preview { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; margin-top:18px; }
.system-reset-preview>div { min-width:0; padding:12px 10px; border:1px solid #f0d6d9; border-radius:12px; background:#fff; text-align:center; }
.system-reset-preview strong,.system-reset-preview span { display:block; }
.system-reset-preview strong { color:#8b1e2a; font-size:18px; }
.system-reset-preview span { margin-top:3px; color:#82656a; font-size:10px; line-height:1.3; }
.system-reset-actions { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-top:17px; padding-top:16px; border-top:1px solid #efd4d7; }
.system-reset-actions p { max-width:850px; margin:0; color:#76565a; font-size:12px; line-height:1.5; }
.system-reset-actions .btn { flex:0 0 auto; box-shadow:0 9px 22px #b4233226; }
.system-reset-modal { width:min(640px,100%); }
.system-reset-warning { margin:18px 0; padding:16px; border:1px solid #e8a6ad; border-radius:13px; background:#fff0f1; color:#7d1723; }
.system-reset-warning p { margin:6px 0; font-size:13px; line-height:1.55; }
.system-reset-warning small { display:block; color:#936068; line-height:1.45; }
.system-reset-ack { border:1px solid #efd0d4; background:#fff8f8; }
.system-reset-progress { margin-bottom:14px; padding:12px 14px; border-radius:11px; background:#fff0f1; color:#981f2d; font-size:12px; font-weight:800; }
.system-reset-success>span { background:#eef8f2; color:var(--good); }

/* Dashboard financeiro do Administrador Master */
.master-dashboard-welcome { align-items:center; }
.dashboard-freshness { display:grid; gap:3px; min-width:160px; padding:12px 15px; border:1px solid var(--line); border-radius:14px; background:#fff; text-align:right; }
.dashboard-freshness strong { color:var(--dark); font-size:12px; }
.dashboard-freshness span { color:var(--muted); font-size:11px; }
.dashboard-section-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:24px 0 12px; }
.dashboard-section-head h2 { margin:0 0 4px; font-size:19px; }
.dashboard-section-head p { margin:0; color:var(--muted); font-size:12px; }
.master-gross-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
.master-gross-metrics .metric { border-top:3px solid var(--primary); }
.master-finance-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
.master-finance-metrics .metric .value { font-size:25px; }
.master-dashboard-grid { grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr); margin-top:18px; }
.master-movement-card { grid-row:span 2; min-width:0; }
.card-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }
.card-title-row h3 { margin-bottom:4px; }
.card-title-row p { margin:0; }
.card-title-row>strong { color:var(--primary); font-size:17px; white-space:nowrap; }
.master-movement-chart { height:255px; display:grid; grid-template-columns:repeat(7,minmax(44px,1fr)); align-items:end; gap:9px; margin-top:20px; overflow-x:auto; }
.master-day-column { height:100%; min-width:44px; display:grid; grid-template-rows:24px minmax(130px,1fr) 24px; gap:6px; align-items:end; text-align:center; }
.master-day-column>strong { overflow:hidden; color:var(--muted); font-size:9px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.master-day-column>div { height:100%; display:flex; align-items:end; justify-content:center; border-radius:11px; background:#f5f1fb; overflow:hidden; }
.master-day-column i { width:100%; min-height:3px; border-radius:11px 11px 0 0; background:linear-gradient(180deg,#a64dff,#5e17d7); }
.master-day-column>span { color:var(--muted); font-size:10px; font-weight:800; text-transform:capitalize; }
.fee-reconciliation { display:grid; gap:2px; margin:18px 0 14px; }
.fee-reconciliation>div { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); }
.fee-reconciliation span { color:var(--muted); font-size:12px; }
.fee-reconciliation strong { color:var(--dark); }
.fee-reconciliation .minus strong { color:var(--bad); }
.fee-reconciliation .total { padding:13px 12px; border:0; border-radius:12px; background:#efe8ff; }
.fee-reconciliation .total span,.fee-reconciliation .total strong { color:var(--primary); font-weight:850; }
.dashboard-definition { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.master-operation-card .activity { margin-top:12px; }
.finance-quality { display:grid; gap:4px; align-content:center; padding:10px 13px; border-radius:12px; font-size:12px; font-weight:850; }
.finance-quality small { color:inherit; font-size:10px; font-weight:650; opacity:.78; }
.finance-quality.ok { background:#e9f8f1; color:#087a51; }
.finance-quality.warning { background:#fff2df; color:#a76500; }
.dashboard-freshness .finance-quality { margin-top:5px; padding:6px 8px; text-align:center; }
.admin-flow-table table { min-width:980px; }
.admin-flow-table td:not(:first-child) { white-space:nowrap; }
.money-positive { color:#087a51!important; }
.money-negative { color:var(--bad)!important; }
.money-commitment { color:#9a6500!important; }
.metric-negative .value,.metric-negative .delta { color:var(--bad); }
.commission-breakdown-card { align-self:stretch; }
.finance-scope-note { margin-top:16px; padding:12px 14px; border-left:3px solid var(--primary); border-radius:0 11px 11px 0; background:#f8f5ff; }

/* Carteira e conciliação financeira administrativa */
.finance-welcome { align-items:center; }
.admin-wallet-hero { display:grid; grid-template-columns:minmax(250px,.75fr) minmax(0,1.25fr); gap:22px; padding:24px; border-radius:22px; color:#fff; background:linear-gradient(135deg,#291052 0%,#5e17d7 58%,#8f3dff 100%); box-shadow:0 18px 45px #4c16913b; }
.admin-wallet-hero>div:first-child { display:grid; align-content:center; }
.admin-wallet-hero span { font-size:10px; font-weight:850; letter-spacing:.08em; opacity:.78; }
.admin-wallet-hero>div>strong { display:block; margin:9px 0 6px; font-size:34px; line-height:1; }
.admin-wallet-hero>div>strong.negative { color:#ffd2d6; }
.admin-wallet-hero p { max-width:460px; margin:0; color:#e5dafa; font-size:12px; line-height:1.5; }
.admin-wallet-hero-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.admin-wallet-hero-grid article { display:grid; align-content:center; gap:8px; min-width:0; padding:15px; border:1px solid #ffffff26; border-radius:15px; background:#ffffff12; }
.admin-wallet-hero-grid article strong { overflow-wrap:anywhere; font-size:18px; }
.admin-finance-metrics { margin-top:18px; }
.admin-reconciliation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:18px; }
.finance-breakdown { display:grid; gap:2px; }
.finance-breakdown>div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.finance-breakdown span { color:var(--muted); font-size:12px; }
.finance-breakdown strong { color:var(--dark); white-space:nowrap; }
.finance-breakdown .minus strong { color:var(--bad); }
.finance-breakdown .total { margin-top:5px; padding:12px; border:0; border-radius:11px; background:#f1ebff; }
.finance-breakdown .total span,.finance-breakdown .total strong { color:var(--primary); font-weight:850; }
.finance-ledger-table table { min-width:1180px; }
.finance-scope { display:inline-flex; padding:5px 8px; border-radius:999px; color:#514b5e; background:#f0edf5; font-size:10px; font-weight:850; white-space:nowrap; }
.finance-scope.scope-cash { color:#087a51; background:#e7f8f0; }
.finance-scope.scope-revenue { color:#4d20a1; background:#eee7ff; }
.finance-scope.scope-commission,.finance-scope.scope-commitment { color:#9a6500; background:#fff2dc; }
.finance-scope.scope-adjustment { color:#17669e; background:#e7f3ff; }

/* Restauração controlada do backup completo */
.backup-restore-card { margin-top:18px; border:1px solid #dcccfb; background:linear-gradient(135deg,#fff 0%,#faf7ff 100%); }
.backup-restore-copy { display:flex; align-items:flex-start; gap:14px; }
.backup-restore-copy h3 { margin:2px 0 5px; }
.backup-restore-copy p { max-width:800px; margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.backup-restore-picker { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:stretch; margin-top:17px; }
.backup-restore-picker input { display:none; }
.backup-restore-picker .btn { min-width:205px; }
.backup-restore-picker .btn:disabled { opacity:.5; cursor:not-allowed; }
.backup-restore-picker label { display:grid; gap:4px; padding:13px 15px; border:1px dashed #bfa4ed; border-radius:13px; background:#fff; cursor:pointer; }
.backup-restore-picker label strong { color:var(--primary); font-size:13px; }
.backup-restore-picker label span { overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.backup-restore-warning { margin-top:13px; padding:11px 13px; border-radius:11px; background:#fff1f2; color:#8c2933; font-size:12px; line-height:1.45; }
.backup-restore-modal { width:min(600px,100%); }
.backup-restore-progress { margin-bottom:14px; padding:12px 14px; border-radius:11px; background:#eee7ff; color:var(--primary); font-size:12px; font-weight:800; }
.restore-success { min-height:270px; display:grid; place-items:center; align-content:center; gap:10px; text-align:center; }
.restore-success>span { width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#e8f8f0; color:var(--good); font-size:28px; font-weight:900; }
.restore-success h2,.restore-success p { margin:0; }
.restore-success small { max-width:390px; color:var(--muted); line-height:1.5; }

@media(max-width:1050px){.admin-wallet-hero,.admin-reconciliation-grid{grid-template-columns:1fr}.admin-wallet-hero-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.backup-summary,.backup-level-grid,.master-gross-metrics,.master-finance-metrics,.admin-finance-metrics{grid-template-columns:1fr}.backup-level-card{min-height:0}.backup-action-bar{align-items:flex-start;flex-direction:column}.backup-action-bar .btn{width:100%}.system-reset-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.system-reset-actions{align-items:flex-start;flex-direction:column}.system-reset-actions .btn{width:100%}.master-dashboard-grid{grid-template-columns:1fr}.master-movement-card{grid-row:auto}}
@media(max-width:600px){.dashboard-freshness{width:100%;text-align:left}.dashboard-section-head,.finance-welcome{align-items:flex-start;flex-direction:column}.backup-restore-picker{grid-template-columns:1fr}.backup-restore-picker .btn{width:100%}.system-reset-preview{grid-template-columns:1fr 1fr}.system-reset-copy{gap:11px}.master-movement-chart{gap:6px}.card-title-row{flex-direction:column}.card-title-row>strong{white-space:normal}.admin-wallet-hero{padding:18px}.admin-wallet-hero-grid{grid-template-columns:1fr}.admin-wallet-hero>div>strong{font-size:29px}.finance-quality{width:100%}}
.driver-period-selector .active { background:var(--primary); color:#fff; box-shadow:0 6px 16px #6f1dff30; }
.driver-earnings-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
.driver-earnings-metrics .metric .value { font-size:24px; }
.driver-earnings-metrics .metric-negative .value,
.driver-earnings-metrics .metric-negative .delta { color:var(--bad); }
.driver-finance-grid { grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); }
.driver-payment-breakdown>p { line-height:1.55; }
.earning-share { display:grid; gap:8px; margin-top:18px; }
.earning-share>div { display:flex; justify-content:space-between; gap:12px; font-size:13px; }
.earning-share>i { height:10px; overflow:hidden; border-radius:999px; background:#f0ebf8; }
.earning-share>i>b { height:100%; display:block; border-radius:inherit; background:linear-gradient(90deg,#ed9d26,#ffc55f); }
.earning-share.platform>i>b { background:linear-gradient(90deg,var(--primary),var(--light)); }
.wallet-accounting-note { display:grid; gap:4px; margin-bottom:18px; padding:13px 15px; border:1px solid #d8c9f7; border-radius:14px; background:#f7f3ff; }
.wallet-accounting-note strong { color:var(--dark); }
.wallet-accounting-note span { color:var(--muted); font-size:12px; line-height:1.5; }
.payout-available { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 0; padding:12px 14px; border-radius:12px; background:#eefaf5; color:#087a51; }
.payout-available span { font-size:10px; font-weight:850; letter-spacing:.06em; }
.payout-available strong { font-size:20px; }
.payment-benefit-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:12px; }
.coupon-apply-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.coupon-apply-row .btn { padding:10px 13px; text-transform:uppercase; font-size:10px; letter-spacing:.05em; }
.coupon-result { display:grid; gap:2px; margin-top:7px; padding:9px 10px; border-radius:10px; background:#e8faf3; color:#087a51; }
.coupon-result strong { font-size:11px; }
.coupon-result span { font-size:10px; }
.auto-quote-status { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border-radius:11px; background:#f7f4ff; color:var(--dark); font-size:10px; font-weight:750; }
.auto-quote-status .btn { padding:7px 9px; font-size:9px; }
.quote-discount { color:#087a51; font-size:11px; font-weight:800; }
.quote-discount s { color:var(--muted); font-weight:600; }

@media (max-width:960px) {
  .driver-earnings-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .driver-finance-grid { grid-template-columns:1fr; }
}

@media (max-width:600px) {
  .driver-dashboard-welcome { gap:14px; }
  .driver-period-toolbar { align-items:stretch; flex-direction:column; }
  .driver-period-selector .btn { flex:1; min-width:0; }
  .driver-earnings-metrics { grid-template-columns:1fr 1fr; gap:10px; }
  .driver-earnings-metrics .metric { padding:14px; }
  .driver-earnings-metrics .metric .value { font-size:19px; }
  .payment-benefit-grid { grid-template-columns:1fr; }
  .auto-quote-status { align-items:flex-start; }
}

/* Experiência do passageiro inspirada no aplicativo móvel oficial. */
.passenger-shell {
  display:block;
  min-height:100vh;
  background:
    radial-gradient(circle at 18% 8%,#b482ff24 0,transparent 25%),
    radial-gradient(circle at 88% 30%,#6f1dff12 0,transparent 28%),
    linear-gradient(160deg,#fff 0,#faf7ff 52%,#f3edff 100%);
}
.passenger-shell .main { min-height:100vh; }
.passenger-shell .sidebar {
  position:fixed;
  inset:0 auto 0 -286px;
  z-index:102;
  width:270px;
  height:100vh;
  height:100dvh;
  padding:20px 16px max(18px,env(safe-area-inset-bottom));
  overflow:hidden;
  box-shadow:20px 0 48px #16072b38;
  transition:left .24s ease;
}
.passenger-shell .sidebar.open { left:0; }
.passenger-shell .sidebar>.brand { flex:0 0 auto; }
.passenger-shell .nav-list { min-height:0; overflow-y:auto; scrollbar-width:thin; }
.passenger-sidebar-logout { flex:0 0 auto; margin-top:auto; }
.passenger-shell .user-mini { flex:0 0 auto; margin-top:8px; }
.passenger-shell .sidebar-backdrop {
  position:fixed;
  inset:0;
  z-index:101;
  display:block;
  border:0;
  background:#170a2e8f;
  opacity:0;
  visibility:hidden;
  cursor:default;
  backdrop-filter:blur(3px);
  transition:.22s;
}
.passenger-shell:has(.sidebar.open) .sidebar-backdrop { opacity:1; visibility:visible; }
.passenger-shell .passenger-topbar {
  position:fixed;
  inset:0 0 auto 0;
  z-index:90;
  width:100%;
  height:76px;
  padding:calc(16px + env(safe-area-inset-top)) 20px 12px;
  border:0;
  background:linear-gradient(180deg,#fbf9fff2 0,#fbf9ffc7 56%,transparent 100%);
  pointer-events:none;
}
.passenger-shell .passenger-topbar .topbar-leading { display:flex; align-items:center; }
.passenger-shell .passenger-menu-button {
  pointer-events:auto;
  display:flex!important;
  width:46px;
  height:46px;
  padding:0;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  border:1px solid #d7c5ff;
  border-radius:15px;
  background:#fffffff0;
  color:var(--dark);
  box-shadow:0 8px 24px #3d238c1c;
  backdrop-filter:blur(12px);
}
.passenger-menu-button>span { display:block; width:21px; height:2.5px; border-radius:20px; background:currentColor; }
.passenger-menu-button[aria-expanded="true"] { color:#fff; border-color:var(--primary); background:var(--primary); }
.passenger-shell>.main,.passenger-shell .main { width:100%; }
.passenger-shell .content { max-width:1500px; padding:92px 28px 36px; }
.passenger-request-shell .content { max-width:none; padding:0; }
#app:has(.passenger-shell)>.pwa-floating-install { display:none; }

.passenger-request { min-height:100vh; margin:0; overflow:hidden; }
.passenger-request .request-form { gap:0; }
.passenger-request-brand {
  display:grid;
  place-items:center;
  min-height:170px;
  padding:42px 24px 18px;
}
.passenger-request-brand .brand { width:min(390px,62vw); height:auto; overflow:visible; }
.passenger-request-brand .brand img { width:100%; max-width:100%; border-radius:16px; mix-blend-mode:multiply; }
.passenger-request-grid {
  width:min(820px,calc(100% - 56px));
  margin:0 auto 42px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"address" "service" "options";
  align-items:start;
  gap:18px 28px;
}
.passenger-request .passenger-map-column { display:none!important; }
.passenger-request-grid>*:not(.passenger-booking-column),
.passenger-request .request-address-card,
.passenger-request .passenger-service-section,
.passenger-request .request-options,
.passenger-request .passenger-map-column,
.passenger-request .passenger-route-field,
.passenger-request .field-label-row { min-width:0; }
.passenger-booking-column { display:contents; }
.passenger-request .request-address-card { grid-area:address; padding:16px; border:1px solid #cbb4ff; border-radius:24px; box-shadow:0 14px 40px #5114bf12; }
.passenger-request .request-address-grid { position:relative; grid-template-columns:1fr; gap:12px; }
.passenger-request .request-address-grid:before {
  content:"";
  position:absolute;
  z-index:1;
  left:39px;
  top:67px;
  height:32px;
  border-left:3px dotted #7b29ee;
}
.passenger-route-field {
  min-height:82px;
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  align-items:center;
  gap:12px;
  padding:10px 13px;
  border:1px solid #dccdff;
  border-radius:18px;
  background:#fff;
  box-shadow:0 6px 18px #3d238c0a;
}
.passenger-route-icon { position:relative; z-index:2; display:grid; place-items:center; color:#6718d9; }
.passenger-route-icon svg { width:37px; height:37px; fill:currentColor; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.destination-route-field .passenger-route-icon svg { fill:currentColor; }
.passenger-route-input { min-width:0; display:grid; gap:3px; border-left:1px solid #d9c7ff; padding-left:16px; }
.passenger-route-input label { color:#4a238a; font-size:9px; letter-spacing:.08em; }
.passenger-route-input input { min-width:0; padding:5px 2px!important; border:0!important; border-radius:0!important; background:transparent!important; color:#21116d; font-size:18px; font-weight:800; box-shadow:none!important; }
.passenger-route-input input::placeholder { color:#21116d; opacity:.94; }
.passenger-route-input .use-current-location { width:max-content; max-width:100%; margin-top:2px; padding:3px 7px; border-radius:7px; background:#f2ebff; font-size:9px; }
.passenger-route-input .address-suggestions { top:calc(100% + 7px); left:66px; }
.passenger-request .destination-tools { gap:4px; }
.passenger-request .destination-map-link { padding:4px 5px; border-radius:7px; background:#f2ebff; font-size:9px; text-decoration:none!important; }
.passenger-request .add-stops-toggle { width:25px; height:25px; flex:0 0 25px; padding:0; border-radius:8px; font-size:17px; }
.passenger-request .additional-stops { margin-top:12px; padding:14px; border:1px dashed #c7b3ef; border-radius:16px; background:#faf7ff; }
.passenger-service-section { grid-area:service; padding:4px 1px 0; }
.passenger-service-section h2 { margin:0 0 13px; color:#241274; text-align:center; font-size:20px; letter-spacing:-.02em; }
.passenger-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.passenger-request .passenger-category-card {
  min-width:0;
  min-height:132px;
  margin:0;
  padding:13px 8px 11px;
  display:grid;
  grid-template-columns:1fr;
  place-items:center;
  align-content:center;
  gap:3px;
  border:1px solid #cbb4ff;
  border-radius:18px;
  background:#fff;
  color:#21116d;
  text-align:center;
  box-shadow:0 7px 20px #3916850b;
  transition:.2s;
}
.passenger-request .passenger-category-card:hover { transform:translateY(-2px); border-color:#7c2cff; }
.passenger-request .passenger-category-card.active { padding:12px 7px 10px; border:2px solid #731bff; background:linear-gradient(160deg,#fff 25%,#f1e7ff 100%); box-shadow:0 10px 26px #6f1dff22; }
.category-visual { display:grid; place-items:center; height:46px; color:#25117d; }
.category-visual svg { width:45px; height:45px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.passenger-category-card>strong { font-size:15px; }
.passenger-category-card>small { min-height:14px; color:#76658e!important; font-size:9px; }
.passenger-category-card .category-price { overflow:hidden; max-width:100%; color:#6514d5; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.passenger-request .request-options { grid-area:options; gap:11px; padding:17px; border-color:#dfd4f1; border-radius:20px; box-shadow:0 12px 34px #3916850b; }
.passenger-options-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.passenger-options-head h3 { margin:0; color:#28166f; }
.passenger-options-head>span { color:#776d86; font-size:10px; font-weight:800; }
.passenger-request .payment-benefit-grid { grid-template-columns:1fr 1fr; }
.passenger-request .auto-quote-status { background:#f4eeff; color:#31137a; }
.passenger-request .route-summary { border:1px solid #ded1f6; background:#fbf9ff; line-height:1.45; }
.passenger-request .confirm-ride {
  width:100%;
  min-height:60px;
  border-radius:20px;
  background:linear-gradient(105deg,#8c2cff 0,#6f1dff 52%,#4c0ac5 100%);
  font-size:20px;
  box-shadow:0 14px 28px #6f1dff35;
}
.passenger-map-column { grid-area:map; position:sticky; top:28px; overflow:hidden; border:1px solid #d6c8ee; border-radius:27px; background:#fff; box-shadow:0 20px 55px #2e0e6818; }
.passenger-map-heading { min-height:67px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 17px; }
.passenger-map-heading>div { display:grid; gap:3px; }
.passenger-map-heading strong { color:#28166f; font-size:16px; }
.passenger-map-heading span { color:#776d86; font-size:10px; }
.passenger-map-provider { padding:6px 8px; border-radius:999px; background:#f2ebff; color:#5d17c6!important; font-weight:800; white-space:nowrap; }
.passenger-request .passenger-map-column .live-map { width:100%; height:565px; min-height:565px; border-radius:0; }
.passenger-cityscape { position:relative; height:130px; overflow:hidden; background:linear-gradient(180deg,#f1e2ff 0,#c69cff 58%,#7b2aed 59%,#5315bd 100%); }
.city-buildings { position:absolute; inset:auto 0 42px; height:94px; display:flex; align-items:end; gap:4px; padding:0 3px; opacity:.78; }
.city-buildings i { position:relative; flex:1; height:var(--building-height); min-width:10px; border-radius:3px 3px 0 0; background:linear-gradient(180deg,#9851ed,#661bd0); box-shadow:inset 3px 0 #ffffff18; }
.city-buildings i:after { content:""; position:absolute; inset:7px 3px 4px; background:repeating-linear-gradient(180deg,#f3dbff 0 3px,transparent 3px 9px); opacity:.62; }
.city-road { position:absolute; left:-4%; right:-4%; bottom:-24px; height:72px; border-radius:50% 50% 0 0; background:#4b10ae; transform:rotate(-1deg); }
.city-road>span { position:absolute; left:7%; right:7%; top:27px; height:3px; border-top:3px dashed #fff9; border-radius:50%; }
.city-pin { position:absolute; top:-24px; width:37px; height:37px; padding:7px; border-radius:50% 50% 50% 8px; background:#fff; color:#6918dc; box-shadow:0 5px 14px #32107842; transform:rotate(-45deg); }
.city-pin svg { width:100%; height:100%; fill:currentColor; transform:rotate(45deg); }
.city-pin.start { left:12%; }
.city-pin.end { right:12%; }
.passenger-request-shell .passenger-tracking-page { width:min(1240px,calc(100% - 48px)); margin:92px auto 0; padding-bottom:40px; }

@media (max-width:980px) {
  .passenger-request-grid { width:min(760px,calc(100% - 40px)); grid-template-columns:minmax(0,1fr); gap:16px; }
  .passenger-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .passenger-request .passenger-map-column .live-map { height:610px; min-height:610px; }
}

@media (max-width:760px) {
  .passenger-shell .passenger-topbar { height:70px; padding:calc(12px + env(safe-area-inset-top)) 14px 9px; }
  .passenger-shell .passenger-menu-button { width:42px; height:42px; border-radius:13px; }
  .passenger-shell .content { padding:80px 16px 28px; }
  .passenger-request-shell .content { padding:0; }
  .passenger-request-brand { min-height:137px; padding:56px 64px 12px; }
  .passenger-request-brand .brand { width:min(310px,82vw); }
  .passenger-request-grid {
    width:min(620px,calc(100% - 24px));
    margin-bottom:26px;
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"address" "service" "options";
    gap:14px;
  }
  .passenger-request .request-address-card { padding:11px; border-radius:20px; }
  .passenger-route-field { min-height:72px; grid-template-columns:45px minmax(0,1fr); gap:8px; padding:7px 9px; border-radius:15px; }
  .passenger-request .request-address-grid:before { left:31px; top:58px; height:31px; }
  .passenger-route-icon svg { width:31px; height:31px; }
  .passenger-route-input { padding-left:11px; }
  .passenger-route-input input { font-size:16px; }
  .passenger-route-input .address-suggestions { left:53px; }
  .passenger-map-column { position:relative; top:auto; border-radius:20px; }
  .passenger-map-heading { min-height:54px; padding:10px 13px; }
  .passenger-map-heading strong { font-size:14px; }
  .passenger-request .passenger-map-column .live-map { height:230px; min-height:230px; }
  .passenger-cityscape { height:72px; }
  .city-buildings { bottom:30px; height:60px; transform:scaleY(.62); transform-origin:bottom; }
  .city-road { bottom:-32px; }
  .passenger-service-section { padding-top:5px; }
  .passenger-service-section h2 { margin-bottom:11px; font-size:18px; }
  .passenger-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; overflow:visible; padding:2px 0 5px; }
  .passenger-request .passenger-category-card { width:100%; min-height:124px; }
  .passenger-request .request-options { padding:14px; }
  .passenger-request .payment-benefit-grid { grid-template-columns:1fr; }
  .passenger-request .confirm-ride { min-height:58px; font-size:19px; }
  .passenger-request-shell .passenger-tracking-page { width:calc(100% - 24px); margin-top:80px; }
}

@media (max-width:420px) {
  .passenger-request-brand { min-height:126px; padding-top:52px; }
  .passenger-request-brand .brand { width:min(264px,76vw); }
  .passenger-request-grid { width:calc(100% - 16px); }
  .passenger-route-field { min-height:68px; }
  .passenger-route-input input { font-size:15px; }
  .passenger-request .passenger-map-column .live-map { height:210px; min-height:210px; }
  .passenger-map-provider { display:none; }
  .passenger-category-grid { margin-right:0; }
  .passenger-request .passenger-category-card { min-height:118px; }
  .passenger-options-head { align-items:flex-start; flex-direction:column; gap:3px; }
}

.referral-budget-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 16px; align-items:center; margin-top:14px; padding:13px 15px; border:1px solid #ccebdc; border-radius:14px; background:#f3fbf7; color:#17603f; }
.referral-budget-summary>span { font-size:13px; font-weight:700; }
.referral-budget-summary>strong { font-size:14px; }
.referral-budget-summary>small { grid-column:1/-1; color:#3f765f; }
.referral-budget-summary.over-limit { border-color:#f2b8b8; background:#fff4f4; color:#a62d37; }
.referral-budget-summary.over-limit>small { color:#b23640; font-weight:700; }
.referral-budget-total { border-width:2px; box-shadow:0 8px 24px rgba(48,25,104,.06); }
.referral-funding-note { margin-top:16px; padding:16px 18px; border:1px solid #d9cdfb; border-radius:16px; background:#f8f5ff; color:#33215d; }
.referral-funding-note p { margin:5px 0 0; color:#6e6384; line-height:1.55; }

/* Avisos de abertura controlados exclusivamente pelo Administrador Master. */
.announcement-composer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.announcement-composer { display:grid; gap:16px; border-color:#d9cdf2; }
.announcement-composer-head,.announcement-composer-head>div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.announcement-composer-head>div { justify-content:flex-start; }
.announcement-composer-head h3 { margin:0 0 3px; }
.announcement-composer-head p { margin:0; }
.announcement-audience-icon { width:46px; height:46px; flex:0 0 auto; display:grid; place-items:center; border-radius:15px; background:linear-gradient(135deg,#ede3ff,#dac4ff); color:var(--dark); font-size:21px; }
.announcement-active { display:flex; align-items:center; gap:7px; color:#514664; font-size:11px; font-weight:800; white-space:nowrap; }
.announcement-active input { accent-color:var(--primary); }
.announcement-character-count { display:flex; justify-content:space-between; color:var(--muted); font-size:10px; }
.announcement-character-count strong { color:var(--dark); }
.announcement-compose-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; }
.announcement-compose-actions .btn { min-height:45px; }
.announcement-history { margin-top:25px; }
.announcement-message-cell { min-width:280px; max-width:480px; line-height:1.45; }
.opening-announcement-wrap { z-index:2050; }
.opening-announcement-modal { width:min(560px,100%); border-top:6px solid var(--primary); }
.opening-announcement-list { display:grid; gap:12px; margin:20px 0; }
.opening-announcement-list article { padding:17px 18px; border:1px solid #d9cdf2; border-radius:16px; background:linear-gradient(145deg,#fff,#f8f4ff); }
.opening-announcement-list article>span { display:inline-flex; padding:5px 8px; border-radius:999px; background:#ece3ff; color:var(--primary); font-size:9px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.opening-announcement-list p { margin:11px 0; color:#241b35; font-size:16px; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; }
.opening-announcement-list small { color:var(--muted); }
.close-opening-announcement { width:100%; }

@media (max-width:800px) {
  .announcement-composer-grid { grid-template-columns:1fr; }
}

/* Refinamento da composição para monitores: hierarquia, mapa e profundidade visual */
@media (min-width:100000px) {
  .auth-landing { background:radial-gradient(circle at 72% 10%,rgba(139,69,244,.13),transparent 26%),radial-gradient(circle at 18% 52%,rgba(255,255,255,.96),transparent 38%),linear-gradient(138deg,#fff 0%,#faf7ff 44%,#eadcff 100%); }
  .auth-landing:after { content:""; position:absolute; z-index:-2; left:-8%; right:39%; bottom:54px; height:44%; border-radius:0 55% 0 0; background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(225,207,255,.48)); clip-path:polygon(0 25%,100% 0,88% 78%,45% 100%,0 77%); }
  .auth-landing-header { align-items:center; min-height:96px; }
  .auth-landing-logo { display:inline-flex; padding:9px 16px 8px 12px; border:1px solid rgba(119,57,220,.1); border-radius:24px; background:rgba(255,255,255,.8); box-shadow:0 12px 35px rgba(65,21,145,.07); backdrop-filter:blur(8px); }
  .auth-landing-logo .brand { width:clamp(300px,27vw,405px); }
  .auth-landing-grid { min-height:calc(100dvh - 219px); grid-template-columns:minmax(610px,1.24fr) minmax(420px,.76fr); gap:clamp(30px,4vw,64px); }
  .auth-presentation { min-height:585px; display:grid; grid-template-columns:minmax(350px,1fr) minmax(250px,.72fr); align-items:center; gap:16px; }
  .auth-presentation:before { content:""; position:absolute; z-index:-1; inset:9% 4% 12% 35%; border:1px solid rgba(120,58,222,.1); border-radius:46% 54% 37% 63% / 50% 36% 64% 50%; background:radial-gradient(circle at 45% 45%,rgba(255,255,255,.8),rgba(221,199,255,.22) 67%,transparent 68%); }
  .auth-desktop-copy { align-self:center; padding:14px 0 72px 8px; }
  .auth-desktop-copy h1 { max-width:500px; margin-bottom:30px; text-shadow:0 1px 0 #fff; }
  .auth-desktop-copy li { width:max-content; max-width:100%; padding-right:13px; border-radius:22px; background:linear-gradient(90deg,rgba(255,255,255,.68),transparent); }
  .auth-desktop-copy li i { width:38px; height:38px; border:3px solid rgba(255,255,255,.9); box-shadow:0 8px 22px rgba(64,20,153,.18); }
  .auth-hero-visual { position:relative; right:auto; bottom:auto; width:100%; height:500px; min-width:0; justify-self:end; }
  .auth-route-orbit { width:310px; height:310px; right:-6%; top:7%; border-width:38px; border-color:rgba(124,41,235,.08); box-shadow:0 0 0 1px rgba(111,29,255,.035); }
  .auth-route-orbit:after { content:""; position:absolute; inset:34px; border:2px dashed rgba(112,28,226,.18); border-radius:50%; }
  .auth-phone { right:8%; top:20px; width:235px; height:438px; padding:13px 10px 17px; border:1px solid #514261; border-radius:39px; background:linear-gradient(145deg,#342443,#08050e 58%,#24152f); box-shadow:0 31px 60px rgba(34,10,76,.29),inset 0 0 0 2px rgba(255,255,255,.09); transform:rotate(3.5deg); }
  .auth-phone>span { top:9px; z-index:3; width:64px; height:8px; }
  .auth-phone>div { position:relative; display:block; border-radius:29px; background-color:#f5effd; background-image:linear-gradient(31deg,transparent 46%,rgba(255,255,255,.9) 47% 53%,transparent 54%),linear-gradient(122deg,transparent 45%,rgba(255,255,255,.85) 46% 52%,transparent 53%),linear-gradient(170deg,transparent 47%,rgba(176,141,225,.18) 48% 51%,transparent 52%); background-size:130px 95px,170px 125px,90px 76px; }
  .auth-phone>div:before,.auth-phone>div:after { content:""; position:absolute; z-index:2; width:48px; height:58px; background:center/contain no-repeat; filter:drop-shadow(0 8px 8px rgba(61,15,139,.2)); }
  .auth-phone>div:before { left:34px; top:150px; background-image:url('/assets/pessoa.png'); }
  .auth-phone>div:after { right:25px; bottom:95px; background-image:url('/assets/destino.png'); }
  .auth-phone img { position:absolute; z-index:1; left:50%; top:35px; width:122px; mix-blend-mode:multiply; transform:translateX(-50%); opacity:.96; }
  .auth-phone:before { content:"Rota protegida em tempo real"; position:absolute; z-index:4; left:29px; right:29px; top:113px; color:#3b2081; font-size:10px; font-weight:850; text-align:center; }
  .auth-phone:after { content:"Motorista próximo  •  3 min"; position:absolute; z-index:5; left:24px; right:24px; bottom:32px; padding:13px 9px; border:1px solid rgba(111,29,255,.12); border-radius:13px; color:#34117e; background:rgba(255,255,255,.94); box-shadow:0 11px 26px rgba(58,17,125,.14); font-size:10px; font-weight:850; text-align:center; }
  .auth-destination-note { right:-5%; top:56%; padding:12px 13px; border:2px solid rgba(255,255,255,.9); border-radius:16px; box-shadow:0 15px 34px rgba(84,20,198,.26); }
  .auth-destination-note svg { width:34px; height:34px; }
  .auth-login-panel { border-color:rgba(255,255,255,.98); box-shadow:0 28px 70px rgba(67,23,146,.14),0 2px 10px rgba(67,23,146,.05),inset 0 1px 0 #fff; }
  .auth-login-panel:before { content:""; position:absolute; left:50%; top:0; width:88px; height:4px; border-radius:0 0 6px 6px; background:linear-gradient(90deg,#a138ff,#5313d2); transform:translateX(-50%); }
}

@media (min-width:100000px) and (max-width:1180px) {
  .auth-landing-grid { grid-template-columns:minmax(455px,1fr) minmax(390px,.84fr); gap:22px; }
  .auth-presentation { grid-template-columns:minmax(300px,1fr) minmax(160px,.52fr); }
  .auth-desktop-copy { padding-left:0; }
  .auth-desktop-copy h1 { font-size:49px; }
  .auth-hero-visual { height:440px; opacity:.82; }
  .auth-route-orbit { width:240px; height:240px; }
  .auth-phone { right:0; width:176px; height:350px; }
  .auth-phone:before { top:93px; font-size:8px; }
  .auth-phone:after { left:18px; right:18px; bottom:28px; padding:9px 5px; font-size:8px; }
  .auth-phone>div:before,.auth-phone>div:after { width:36px; height:44px; }
  .auth-phone>div:before { left:20px; top:116px; }
  .auth-phone>div:after { right:15px; bottom:76px; }
  .auth-phone img { top:24px; width:92px; }
  .auth-destination-note { right:-12px; font-size:10px; }
}
@media (max-width:520px) {
  .announcement-composer-head { align-items:flex-start; }
  .announcement-composer-head>div { align-items:flex-start; }
  .announcement-active { padding-top:5px; }
  .announcement-compose-actions { grid-template-columns:1fr; }
}
@media (max-width:600px) { .referral-budget-summary { grid-template-columns:1fr; } .referral-budget-summary>small { grid-column:auto; } }

.topup-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:12px; }
.topup-live-status { margin-top:14px; padding:13px 15px; border-radius:13px; font-weight:700; font-size:13px; line-height:1.4; }
.topup-live-status.pending { color:#6c4a00; background:#fff8df; border:1px solid #ecd88b; }
.topup-live-status.paid { color:#12613d; background:#ecfaf3; border:1px solid #a9dfc4; }
.topup-live-status.error { color:#9c2d38; background:#fff1f2; border:1px solid #efb3b8; }
.mp-webhook-card { margin-top:18px; border-color:#d8ccf6; background:linear-gradient(135deg,#fff 0%,#f8f4ff 100%); }
.mp-webhook-card .referral-link-box { margin-top:12px; }
.mp-webhook-card code { overflow-wrap:anywhere; }

/* Alteração segura da forma de pagamento durante a corrida */
.ride-payment-control { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:16px; padding:14px 15px; border:1px solid #e1d7f7; border-radius:15px; background:#faf8ff; }
.ride-payment-control>div { display:grid; gap:3px; min-width:0; }
.ride-payment-control small,.driver-completion-payment small { color:#756a89; font-size:9px; font-weight:850; letter-spacing:.08em; }
.ride-payment-control strong { color:#26104d; font-size:14px; }
.ride-payment-control>div span { color:#756a89; font-size:11px; }
.ride-payment-control.confirmed { border-color:#b9e5d1; background:#effaf5; }
.ride-payment-control .btn { padding:9px 12px; white-space:nowrap; }
.ride-payment-lock { color:#087a51; font-size:12px; font-weight:850; white-space:nowrap; }
.ride-payment-modal { width:min(590px,100%); }
.ride-payment-options { display:grid; gap:9px; margin:18px 0; }
.ride-payment-option { display:flex; align-items:center; gap:12px; padding:13px 14px; border:1px solid #ded4f2; border-radius:13px; background:#fff; cursor:pointer; transition:.16s ease; }
.ride-payment-option:hover { border-color:#8f4fff; box-shadow:0 7px 18px rgba(73,27,145,.08); }
.ride-payment-option:has(input:checked) { border-color:#6f1dff; background:#f4eeff; box-shadow:0 0 0 2px rgba(111,29,255,.1); }
.ride-payment-option input { width:18px; height:18px; accent-color:#6f1dff; }
.ride-payment-option span { display:grid; gap:3px; }
.ride-payment-option strong { color:#26104d; font-size:14px; }
.ride-payment-option small { color:#756a89; font-size:11px; }
.ride-payment-option.disabled { opacity:.52; cursor:not-allowed; background:#f7f6f8; box-shadow:none; }
.ride-payment-safety { margin:14px 0 18px; padding:12px 13px; border-radius:12px; background:#fff7df; color:#755400; font-size:12px; line-height:1.5; }
.driver-completion-payment { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,1.2fr); gap:5px 16px; align-items:center; margin:0 0 18px; padding:14px 15px; border:1px solid #b9e5d1; border-radius:14px; background:#effaf5; }
.driver-completion-payment>div { display:grid; gap:3px; }
.driver-completion-payment strong { color:#26104d; }
.driver-completion-payment>span { color:#17603f; font-size:12px; line-height:1.4; }
.driver-completion-payment.pending { border-color:#ecd88b; background:#fff8df; }
.driver-completion-payment.pending>span { color:#755400; font-weight:700; }
@media(max-width:600px){.ride-payment-control { align-items:stretch; flex-direction:column; }.ride-payment-control .btn { width:100%; }.driver-completion-payment { grid-template-columns:1fr; }}

/* Tela pública de acesso — composição responsiva para monitor e celular */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.auth-landing { position:relative; isolation:isolate; min-height:100vh; min-height:100dvh; overflow:hidden; padding:22px clamp(24px,4.5vw,76px) 94px; color:#25106f; background:radial-gradient(circle at 78% 10%,rgba(150,76,255,.18),transparent 29%),radial-gradient(circle at 8% 58%,rgba(255,255,255,.95),transparent 35%),linear-gradient(135deg,#fff 0%,#f8f3ff 46%,#e6d5ff 100%); }
.auth-landing:before { content:""; position:absolute; inset:0; z-index:-4; opacity:.42; background-image:linear-gradient(125deg,transparent 0 36%,rgba(111,29,255,.04) 36.2% 36.7%,transparent 37% 100%),radial-gradient(circle at 31% 62%,rgba(137,75,213,.14) 0 2px,transparent 3px); background-size:auto,31px 31px; }
.auth-landing-glow { position:absolute; z-index:-3; border-radius:50%; border:34px solid rgba(123,41,235,.08); }
.auth-landing-glow.one { width:260px; height:260px; left:43%; top:14%; }
.auth-landing-glow.two { width:360px; height:360px; right:-160px; bottom:6%; }
.auth-landing-header { position:relative; z-index:3; min-height:82px; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.auth-landing-header p { margin:6px 0 0; padding-right:7px; color:#5b22c8; font-size:12px; font-weight:850; line-height:1.18; text-align:right; }
.auth-landing-logo .brand { width:clamp(270px,31vw,470px); height:auto; justify-content:flex-start; overflow:visible; }
.auth-landing-logo .brand img { width:100%; height:auto; mix-blend-mode:multiply; }
.auth-landing-grid { position:relative; z-index:2; width:min(1440px,100%); min-height:calc(100dvh - 205px); margin:0 auto; display:grid; grid-template-columns:minmax(560px,1.22fr) minmax(430px,.78fr); align-items:center; gap:clamp(30px,5vw,82px); }
.auth-presentation { position:relative; min-height:600px; display:flex; align-items:center; }
.auth-mobile-brand { display:none; }
.auth-desktop-copy { position:relative; z-index:2; align-self:center; }
.auth-desktop-copy h1 { margin:0 0 28px; color:#26117d; font-size:clamp(46px,4.4vw,76px); line-height:.92; letter-spacing:-.055em; }
.auth-desktop-copy h1 em { color:#7a20ef; font-style:normal; }
.auth-desktop-copy ul { display:grid; gap:13px; margin:0; padding:0; list-style:none; }
.auth-desktop-copy li { display:flex; align-items:center; gap:13px; color:#26117d; font-size:clamp(15px,1.25vw,19px); }
.auth-desktop-copy li i { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(145deg,#7d25f5,#35119c); font-size:11px; font-style:normal; font-weight:900; box-shadow:0 8px 18px rgba(64,20,153,.18); }
.auth-hero-visual { position:absolute; right:0; bottom:31px; width:48%; height:88%; min-width:300px; }
.auth-route-orbit { position:absolute; width:330px; height:330px; right:4%; top:4%; border:48px solid rgba(124,41,235,.11); border-radius:50% 50% 50% 12%; transform:rotate(45deg); }
.auth-phone { position:absolute; right:12%; top:18%; width:210px; height:390px; padding:14px 11px 18px; border-radius:36px; background:linear-gradient(145deg,#251239,#05030c); box-shadow:0 28px 54px rgba(35,10,86,.3); transform:rotate(6deg); }
.auth-phone>span { position:absolute; top:8px; left:50%; width:58px; height:7px; border-radius:8px; background:#080510; transform:translateX(-50%); }
.auth-phone>div { height:100%; display:grid; place-items:center; overflow:hidden; border-radius:27px; background:radial-gradient(circle at 50% 22%,#fff 0 24%,transparent 25%),linear-gradient(160deg,#fff,#f1e4ff 65%,#c294ff); }
.auth-phone img { width:86%; mix-blend-mode:multiply; filter:saturate(1.08); }
.auth-destination-note { position:absolute; right:-2%; top:55%; display:flex; align-items:center; gap:12px; padding:13px 15px; border-radius:17px; color:#fff; background:linear-gradient(145deg,#a13cff,#5614c7); box-shadow:0 13px 30px rgba(84,20,198,.28); font-size:13px; font-weight:800; line-height:1.2; }
.auth-destination-note svg { width:32px; height:32px; padding:6px; border-radius:50%; fill:#5d18cc; color:#5d18cc; background:#fff; }
.auth-signature { position:absolute; left:10px; bottom:5px; color:#3c159c; font-family:"Segoe Script","Bradley Hand",cursive; font-size:29px; font-weight:700; line-height:.85; transform:rotate(-7deg); }
.auth-signature span { padding-left:24px; }
.auth-login-panel { position:relative; z-index:4; width:min(510px,100%); justify-self:end; padding:clamp(25px,3vw,42px); border:1px solid rgba(255,255,255,.92); border-radius:32px; background:rgba(255,255,255,.91); box-shadow:0 28px 70px rgba(67,23,146,.16),inset 0 1px 0 #fff; backdrop-filter:blur(15px); }
.auth-login-heading { text-align:center; }
.auth-login-heading h2 { margin:0; color:#2c108c; font-size:clamp(30px,2.7vw,43px); line-height:1.05; letter-spacing:-.04em; }
.auth-login-heading p { margin:8px 0 22px; color:#6f6884; font-size:clamp(14px,1.25vw,17px); line-height:1.35; }
.landing-login-form { display:grid; gap:11px; }
.auth-input { min-height:56px; display:flex; align-items:center; gap:12px; padding:0 14px; border:1.5px solid #d3c5ef; border-radius:13px; background:rgba(255,255,255,.75); transition:border-color .16s,box-shadow .16s; }
.auth-input:focus-within { border-color:#7821ec; box-shadow:0 0 0 4px rgba(120,33,236,.09); }
.auth-input>i { width:28px; height:28px; flex:0 0 auto; color:#34129a; }
.auth-input>i svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.auth-input input { min-width:0; width:100%; border:0; outline:0; padding:14px 0; color:#241151; background:transparent; font-size:16px; }
.auth-input input::placeholder { color:#9791aa; opacity:1; }
.auth-password-toggle { width:34px; height:34px; flex:0 0 auto; border:0; border-radius:9px; color:#77718b; background:transparent; font-size:19px; }
.auth-password-toggle:hover,.auth-password-toggle:focus-visible { color:#6420d8; background:#f1e8ff; outline:0; }
.forgot-password { justify-self:end; margin:-3px 1px 0; padding:2px; border:0; color:#651fe1; background:transparent; font-size:13px; }
.forgot-password:hover { text-decoration:underline; }
.auth-submit { min-height:59px; margin-top:1px; border:0; border-radius:15px; display:flex; align-items:center; justify-content:center; gap:20px; color:#fff; background:linear-gradient(110deg,#9329ff,#4310d0); box-shadow:0 14px 27px rgba(92,23,215,.25); font-size:21px; font-weight:850; transition:transform .16s,filter .16s; }
.auth-submit:hover { transform:translateY(-1px); filter:brightness(1.05); }
.auth-submit:disabled { opacity:.7; cursor:wait; }
.auth-submit span { font-size:34px; font-weight:400; line-height:.7; }
.auth-divider { height:28px; display:flex; align-items:center; gap:14px; color:#8c849e; font-size:12px; }
.auth-divider:before,.auth-divider:after { content:""; height:1px; flex:1; background:#ddd5e9; }
.auth-account-actions { display:grid; gap:9px; }
.auth-outline-action { min-height:61px; display:flex; align-items:center; justify-content:center; gap:14px; border:1.5px solid #7020e5; border-radius:14px; color:#2c108c; background:rgba(255,255,255,.68); text-align:left; transition:background .16s,transform .16s; }
.auth-outline-action:hover { background:#f4edff; transform:translateY(-1px); }
.auth-outline-action>span:last-child { display:grid; line-height:1.1; }
.auth-outline-action strong { font-size:15px; }
.auth-outline-action small { margin-top:3px; color:#7b748d; font-size:11px; }
.auth-action-icon { min-width:37px; color:#6d1ee3; font-size:36px; font-weight:900; line-height:1; text-align:center; }
.auth-user-plus { font-size:21px; letter-spacing:-4px; }
.auth-driver-link { display:block; margin:11px auto 0; padding:4px; border:0; color:#5e1ac9; background:transparent; font-size:12px; font-weight:750; }
.auth-driver-link:hover { text-decoration:underline; }
.auth-store-soon { margin-top:14px; display:grid; gap:7px; color:#716b80; font-size:10px; text-align:center; }
.auth-store-soon>div { display:flex; justify-content:center; gap:8px; }
.auth-store-soon b { min-width:105px; padding:7px 10px; border-radius:8px; color:#fff; background:#0d0b13; font-size:11px; }
.auth-referral-banner { position:relative; z-index:8; width:min(920px,calc(100% - 32px)); margin:4px auto 10px; }
.auth-city-caption { position:absolute; z-index:3; left:50%; bottom:29px; color:#fff; font-size:11px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; transform:translateX(-50%); white-space:nowrap; }
.auth-mobile-caption { display:none; }
.auth-landing-footer { position:absolute; z-index:5; left:clamp(24px,4.5vw,76px); right:clamp(24px,4.5vw,76px); bottom:12px; display:flex; justify-content:space-between; color:#fff; font-size:10px; }
.auth-landing-footer nav { display:flex; gap:17px; }
.auth-landing-footer button { padding:0; border:0; color:inherit; background:transparent; font-size:inherit; }
.auth-landing>.passenger-cityscape { position:absolute; z-index:1; left:0; right:0; bottom:0; height:105px; background:linear-gradient(180deg,rgba(231,212,255,.05),rgba(174,118,250,.52) 41%,#7723e2 42%,#3d0ca9 100%); }
.auth-landing>.passenger-cityscape .city-buildings { opacity:.48; }

@media (max-width:1100px) and (min-width:801px) {
  .auth-landing { padding-left:30px; padding-right:30px; }
  .auth-landing-grid { grid-template-columns:minmax(450px,1fr) minmax(390px,.82fr); gap:22px; }
  .auth-presentation { min-height:540px; }
  .auth-hero-visual { opacity:.72; right:-3%; }
  .auth-phone { width:170px; height:330px; }
  .auth-desktop-copy h1 { font-size:51px; }
  .auth-login-panel { padding:28px; }
}

@media (max-width:800px) {
  .auth-landing { min-height:100dvh; overflow-x:hidden; overflow-y:auto; padding:max(20px,env(safe-area-inset-top)) 15px 0; background:radial-gradient(circle at 50% 8%,#fff 0 16%,transparent 42%),linear-gradient(150deg,#fff 0%,#f3eaff 62%,#dcc6ff 100%); }
  .auth-landing-header,.auth-desktop-copy,.auth-hero-visual,.auth-signature,.auth-landing-footer { display:none; }
  .auth-landing-glow.one { width:180px; height:180px; left:-110px; top:15%; border-width:28px; }
  .auth-landing-glow.two { width:220px; height:220px; right:-145px; top:24%; bottom:auto; border-width:32px; }
  .auth-landing-grid { width:min(520px,100%); min-height:0; display:flex; flex-direction:column; gap:12px; }
  .auth-presentation { min-height:0; width:100%; display:block; }
  .auth-mobile-brand { display:grid; justify-items:center; padding:0 10px; color:#2c108c; text-align:center; }
  .auth-mobile-brand img { width:clamp(135px,37vw,185px); height:clamp(90px,24vw,117px); object-fit:cover; object-position:center; mix-blend-mode:multiply; }
  .auth-mobile-brand strong { margin-top:-3px; font-size:clamp(42px,13vw,63px); font-style:italic; font-weight:950; line-height:.94; letter-spacing:-.065em; }
  .auth-mobile-brand strong:after { content:""; display:block; width:95%; height:7px; margin:8px auto 0; border-radius:50%; background:linear-gradient(90deg,#8730fb,#4a0ec6); transform:skewX(-22deg); }
  .auth-mobile-brand span { margin-top:10px; color:#3e1b99; font-size:clamp(9px,2.8vw,12px); font-weight:900; letter-spacing:.17em; text-transform:uppercase; }
  .auth-login-panel { width:100%; justify-self:auto; padding:25px clamp(20px,6vw,34px) 20px; border-radius:29px; box-shadow:0 18px 48px rgba(67,23,146,.14); }
  .auth-login-heading h2 { font-size:clamp(30px,9vw,40px); }
  .auth-login-heading p { margin:8px 0 20px; font-size:14px; }
  .auth-input { min-height:58px; }
  .auth-input input { font-size:16px; }
  .auth-submit { min-height:61px; font-size:22px; }
  .auth-outline-action { min-height:65px; }
  .auth-outline-action strong { font-size:16px; }
  .auth-outline-action small { font-size:12px; }
  .auth-store-soon { display:none; }
  .auth-city-caption { position:relative; left:auto; bottom:auto; width:min(520px,100%); margin:23px auto 0; padding:0 28px; color:#3b1496; font-family:"Segoe Script","Bradley Hand",cursive; font-size:20px; letter-spacing:0; text-align:left; text-transform:none; transform:none; }
  .auth-desktop-caption { display:none; }
  .auth-mobile-caption { display:inline; }
  .auth-landing>.passenger-cityscape { position:relative; left:auto; right:auto; bottom:auto; z-index:1; height:120px; margin:0 -15px; }
  .auth-landing>.passenger-cityscape .city-buildings { bottom:42px; height:90px; opacity:.7; transform:none; }
  .auth-landing>.passenger-cityscape .city-road { bottom:-24px; }
  .auth-landing>.passenger-cityscape .city-pin { display:block; }
  .auth-referral-banner { margin:8px auto 12px; }
}

@media (max-width:420px) {
  .auth-landing { padding-left:10px; padding-right:10px; }
  .auth-mobile-brand img { width:132px; height:83px; }
  .auth-mobile-brand strong { font-size:43px; }
  .auth-mobile-brand span { margin-top:7px; }
  .auth-login-panel { padding:22px 17px 18px; border-radius:25px; }
  .auth-login-heading h2 { font-size:31px; }
  .auth-login-heading p { font-size:13px; }
  .auth-input { min-height:54px; padding:0 11px; }
  .auth-input>i { width:25px; height:25px; }
  .auth-submit { min-height:56px; }
  .auth-outline-action { min-height:59px; gap:10px; }
  .auth-action-icon { min-width:32px; }
  .auth-city-caption { padding-left:19px; }
  .auth-landing>.passenger-cityscape { margin-left:-10px; margin-right:-10px; }
}

@media (max-height:760px) and (min-width:801px) {
  .auth-landing { padding-top:14px; padding-bottom:74px; }
  .auth-landing-header { min-height:58px; }
  .auth-landing-logo .brand { width:290px; }
  .auth-landing-grid { min-height:calc(100dvh - 145px); }
  .auth-presentation { min-height:500px; }
  .auth-login-panel { padding:23px 30px; }
  .auth-login-heading p { margin-bottom:15px; }
  .auth-input { min-height:48px; }
  .auth-submit { min-height:51px; }
  .auth-outline-action { min-height:52px; }
  .auth-store-soon { margin-top:8px; }
  .auth-landing>.passenger-cityscape { height:76px; }
}

/* Refinamento final do acesso em telas de computador. Mantido após as regras responsivas-base. */
@media (min-width:801px) {
  .auth-landing { background:radial-gradient(circle at 72% 10%,rgba(139,69,244,.13),transparent 26%),radial-gradient(circle at 18% 52%,rgba(255,255,255,.96),transparent 38%),linear-gradient(138deg,#fff 0%,#faf7ff 44%,#eadcff 100%); }
  .auth-landing:after { content:""; position:absolute; z-index:-2; left:-8%; right:39%; bottom:54px; height:44%; border-radius:0 55% 0 0; background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(225,207,255,.48)); clip-path:polygon(0 25%,100% 0,88% 78%,45% 100%,0 77%); }
  .auth-landing-header { align-items:center; min-height:96px; }
  .auth-landing-logo { display:inline-flex; padding:9px 16px 8px 12px; border:1px solid rgba(119,57,220,.1); border-radius:24px; background:rgba(255,255,255,.8); box-shadow:0 12px 35px rgba(65,21,145,.07); backdrop-filter:blur(8px); }
  .auth-landing-logo .brand { width:clamp(300px,27vw,405px); }
  .auth-landing-grid { min-height:calc(100dvh - 219px); grid-template-columns:minmax(610px,1.24fr) minmax(420px,.76fr); gap:clamp(30px,4vw,64px); }
  .auth-presentation { min-height:585px; display:grid; grid-template-columns:minmax(350px,1fr) minmax(250px,.72fr); align-items:center; gap:16px; }
  .auth-presentation:before { content:""; position:absolute; z-index:-1; inset:9% 4% 12% 35%; border:1px solid rgba(120,58,222,.1); border-radius:46% 54% 37% 63% / 50% 36% 64% 50%; background:radial-gradient(circle at 45% 45%,rgba(255,255,255,.8),rgba(221,199,255,.22) 67%,transparent 68%); }
  .auth-desktop-copy { align-self:center; padding:14px 0 72px 8px; }
  .auth-desktop-copy h1 { max-width:500px; margin-bottom:30px; text-shadow:0 1px 0 #fff; }
  .auth-desktop-copy li { width:max-content; max-width:100%; padding-right:13px; border-radius:22px; background:linear-gradient(90deg,rgba(255,255,255,.68),transparent); }
  .auth-desktop-copy li i { width:38px; height:38px; border:3px solid rgba(255,255,255,.9); box-shadow:0 8px 22px rgba(64,20,153,.18); }
  .auth-hero-visual { position:relative; right:auto; bottom:auto; width:100%; height:500px; min-width:0; justify-self:end; }
  .auth-route-orbit { width:310px; height:310px; right:-6%; top:7%; border-width:38px; border-color:rgba(124,41,235,.08); box-shadow:0 0 0 1px rgba(111,29,255,.035); }
  .auth-route-orbit:after { content:""; position:absolute; inset:34px; border:2px dashed rgba(112,28,226,.18); border-radius:50%; }
  .auth-phone { right:8%; top:20px; width:235px; height:438px; padding:13px 10px 17px; border:1px solid #514261; border-radius:39px; background:linear-gradient(145deg,#342443,#08050e 58%,#24152f); box-shadow:0 31px 60px rgba(34,10,76,.29),inset 0 0 0 2px rgba(255,255,255,.09); transform:rotate(3.5deg); }
  .auth-phone>span { top:9px; z-index:3; width:64px; height:8px; }
  .auth-phone>div { position:relative; display:block; border-radius:29px; background-color:#f5effd; background-image:linear-gradient(31deg,transparent 46%,rgba(255,255,255,.9) 47% 53%,transparent 54%),linear-gradient(122deg,transparent 45%,rgba(255,255,255,.85) 46% 52%,transparent 53%),linear-gradient(170deg,transparent 47%,rgba(176,141,225,.18) 48% 51%,transparent 52%); background-size:130px 95px,170px 125px,90px 76px; }
  .auth-phone>div:before,.auth-phone>div:after { content:""; position:absolute; z-index:2; width:48px; height:58px; background:center/contain no-repeat; filter:drop-shadow(0 8px 8px rgba(61,15,139,.2)); }
  .auth-phone>div:before { left:34px; top:150px; background-image:url('/assets/pessoa.png'); }
  .auth-phone>div:after { right:25px; bottom:95px; background-image:url('/assets/destino.png'); }
  .auth-phone img { position:absolute; z-index:1; left:50%; top:35px; width:122px; mix-blend-mode:multiply; transform:translateX(-50%); opacity:.96; }
  .auth-phone:before { content:"Rota protegida em tempo real"; position:absolute; z-index:4; left:29px; right:29px; top:113px; color:#3b2081; font-size:10px; font-weight:850; text-align:center; }
  .auth-phone:after { content:"Motorista próximo  •  3 min"; position:absolute; z-index:5; left:24px; right:24px; bottom:32px; padding:13px 9px; border:1px solid rgba(111,29,255,.12); border-radius:13px; color:#34117e; background:rgba(255,255,255,.94); box-shadow:0 11px 26px rgba(58,17,125,.14); font-size:10px; font-weight:850; text-align:center; }
  .auth-destination-note { right:-5%; top:56%; padding:12px 13px; border:2px solid rgba(255,255,255,.9); border-radius:16px; box-shadow:0 15px 34px rgba(84,20,198,.26); }
  .auth-destination-note svg { width:34px; height:34px; }
  .auth-login-panel { border-color:rgba(255,255,255,.98); box-shadow:0 28px 70px rgba(67,23,146,.14),0 2px 10px rgba(67,23,146,.05),inset 0 1px 0 #fff; }
  .auth-login-panel:before { content:""; position:absolute; left:50%; top:0; width:88px; height:4px; border-radius:0 0 6px 6px; background:linear-gradient(90deg,#a138ff,#5313d2); transform:translateX(-50%); }
}

@media (min-width:801px) and (max-width:1180px) {
  .auth-landing-grid { grid-template-columns:minmax(455px,1fr) minmax(390px,.84fr); gap:22px; }
  .auth-presentation { grid-template-columns:minmax(300px,1fr) minmax(160px,.52fr); }
  .auth-desktop-copy { padding-left:0; }
  .auth-desktop-copy h1 { font-size:49px; }
  .auth-hero-visual { height:440px; opacity:.82; }
  .auth-route-orbit { width:240px; height:240px; }
  .auth-phone { right:0; width:176px; height:350px; }
  .auth-phone:before { top:93px; font-size:8px; }
  .auth-phone:after { left:18px; right:18px; bottom:28px; padding:9px 5px; font-size:8px; }
  .auth-phone>div:before,.auth-phone>div:after { width:36px; height:44px; }
  .auth-phone>div:before { left:20px; top:116px; }
  .auth-phone>div:after { right:15px; bottom:76px; }
  .auth-phone img { top:24px; width:92px; }
  .auth-destination-note { right:-12px; font-size:10px; }
}

/* Acabamento solicitado: ícones objetivos, ações limpas e arte oficial no rodapé. */
.auth-desktop-copy li i { color:transparent; font-size:0; }
.auth-desktop-copy li i:before { content:""; width:21px; height:21px; display:block; background:#fff; -webkit-mask:center/contain no-repeat; mask:center/contain no-repeat; }
.auth-desktop-copy li:nth-child(1) i:before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 20 5v6c0 5-3.4 9.4-8 11-4.6-1.6-8-6-8-11V5l8-3Zm-1.1 13.7 5.7-5.7-1.4-1.4-4.3 4.3-2.1-2.1-1.4 1.4 3.5 3.5Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 20 5v6c0 5-3.4 9.4-8 11-4.6-1.6-8-6-8-11V5l8-3Zm-1.1 13.7 5.7-5.7-1.4-1.4-4.3 4.3-2.1-2.1-1.4 1.4 3.5 3.5Z'/%3E%3C/svg%3E"); }
.auth-desktop-copy li:nth-child(2) i:before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15.8V19h-2v-1.1c-1.7-.3-3-1.3-3.1-3.2h2.2c.1.9.8 1.5 2 1.5 1.1 0 1.8-.5 1.8-1.2 0-.8-.6-1.1-2.2-1.5-2.2-.5-3.5-1.4-3.5-3.3 0-1.6 1.1-2.7 2.8-3V6h2v1.1c1.8.3 2.8 1.4 3 3h-2.2c-.1-.8-.7-1.3-1.8-1.3-1 0-1.6.4-1.6 1.1 0 .7.6 1 2.2 1.4 2.3.6 3.6 1.5 3.6 3.4 0 1.7-1.2 2.8-3.2 3.1Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15.8V19h-2v-1.1c-1.7-.3-3-1.3-3.1-3.2h2.2c.1.9.8 1.5 2 1.5 1.1 0 1.8-.5 1.8-1.2 0-.8-.6-1.1-2.2-1.5-2.2-.5-3.5-1.4-3.5-3.3 0-1.6 1.1-2.7 2.8-3V6h2v1.1c1.8.3 2.8 1.4 3 3h-2.2c-.1-.8-.7-1.3-1.8-1.3-1 0-1.6.4-1.6 1.1 0 .7.6 1 2.2 1.4 2.3.6 3.6 1.5 3.6 3.4 0 1.7-1.2 2.8-3.2 3.1Z'/%3E%3C/svg%3E"); }
.auth-desktop-copy li:nth-child(3) i:before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm6.5-1a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7ZM9 13c-4 0-7 2-7 5v2h14v-2c0-3-3-5-7-5Zm6.5-1c-.8 0-1.6.1-2.3.3 2.8 1.1 4.8 3 4.8 5.7v2h4v-2c0-3.4-2.8-6-6.5-6Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm6.5-1a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7ZM9 13c-4 0-7 2-7 5v2h14v-2c0-3-3-5-7-5Zm6.5-1c-.8 0-1.6.1-2.3.3 2.8 1.1 4.8 3 4.8 5.7v2h4v-2c0-3.4-2.8-6-6.5-6Z'/%3E%3C/svg%3E"); }
.auth-desktop-copy li:nth-child(4) i:before { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a9 9 0 0 0-9 9v5a3 3 0 0 0 3 3h2v-8H5a7 7 0 1 1 14 0h-3v8h2.1A5 5 0 0 1 14 21h-2v2h2a7 7 0 0 0 7-7v-5a9 9 0 0 0-9-9Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a9 9 0 0 0-9 9v5a3 3 0 0 0 3 3h2v-8H5a7 7 0 1 1 14 0h-3v8h2.1A5 5 0 0 1 14 21h-2v2h2a7 7 0 0 0 7-7v-5a9 9 0 0 0-9-9Z'/%3E%3C/svg%3E"); }
.auth-submit>span,.auth-action-icon,.auth-store-soon { display:none!important; }
.auth-submit,.auth-outline-action { gap:0; }
.auth-outline-action { text-align:center; }
.auth-landing-footer { display:none; }
.auth-landing>.passenger-cityscape .city-buildings,.auth-landing>.passenger-cityscape .city-road { display:none; }

@media (min-width:801px) {
  .auth-city-caption { display:none; }
  .auth-landing>.passenger-cityscape { position:absolute; left:0; right:0; bottom:0; height:108px; margin:0; background:transparent url('/assets/barra-inferior-borala.png') center bottom/100% 100% no-repeat; }
}

@media (max-width:800px) {
  .auth-landing>.passenger-cityscape { position:relative; height:clamp(118px,28.5vw,150px); margin:0 -15px; background:transparent url('/assets/barra-inferior-borala.png') center bottom/100% 100% no-repeat; }
}

@media (max-width:420px) {
  .auth-landing>.passenger-cityscape { margin-left:-10px; margin-right:-10px; }
}

/* Arte fornecida para a apresentação da página inicial em monitores. */
@media (min-width:801px) {
  .auth-landing-header { justify-content:flex-start; }
  .auth-landing-header>p { display:none; }
  .auth-landing-logo { margin-left:8px; }
  .auth-landing-logo .brand { width:clamp(315px,27vw,405px); }
  .auth-presentation { grid-template-columns:minmax(350px,1fr) minmax(270px,.72fr); gap:22px; }
  .auth-hero-visual { height:530px; border-radius:42px; background:transparent url('/assets/apresentacao-passageiro-desktop.png') center/contain no-repeat; filter:drop-shadow(0 24px 34px rgba(43,12,92,.2)); }
  .auth-hero-visual>* { display:none!important; }
}

@media (min-width:801px) and (max-width:1180px) {
  .auth-presentation { grid-template-columns:minmax(300px,1fr) minmax(180px,.52fr); gap:12px; }
  .auth-hero-visual { height:440px; }
}
