/* GasPal night mode — opt-in, non-destructive, shared by browser/PWA and iOS WKWebView.
   Do not filter/invert the page: red/green fuel signals, map imagery and the
   advertiser's coupon must keep their meaning and branding. */
.gpThemeToggle{
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 34px;width:34px;height:34px;min-width:34px;min-height:34px;
  padding:0;margin:0 0 0 auto;border:1px solid #dce3e9;border-radius:50%;
  background:#fff;color:#344054;font:700 23px/1 system-ui,-apple-system,sans-serif;
  box-shadow:0 1px 3px rgba(16,24,40,.06);
  cursor:pointer;touch-action:manipulation;transition:background .15s,border-color .15s,color .15s;
}
.gpThemeToggle:hover{background:#f0f5f9}
.gpThemeToggle:focus-visible{outline:3px solid #307dce;outline-offset:3px}
.gpThemeToggleFloating{position:fixed;right:13px;top:calc(8px + env(safe-area-inset-top));z-index:100}
@media(max-width:430px){.gpAuxRow .gpThemeToggle{flex-basis:32px;width:32px;height:32px;min-width:32px;min-height:32px}}
html[data-gp-theme="dark"]{
  color-scheme:dark;
  --bg:#0b1220;--card:#152234;--card2:#1c2a3d;
  --text:#f0f5fb;--muted:#aab9ce;--line:#344357;
  --green:#6ed8a6;--amber:#ffce7a;--red:#ff8b92;--blue:#83b9ff;
  --gp-night-bg:#0b1220;--gp-night-card:#152234;
  --gp-night-surface:#1c2a3d;--gp-night-border:#344357;
  --gp-night-text:#f0f5fb;--gp-night-muted:#aab9ce;
  background-color:#0b1220!important;
}
html[data-gp-theme="dark"] body{
  background:#0b1220!important;color:#f0f5fb!important;
}
html[data-gp-theme="dark"] .gpThemeToggle{
  background:#20324a!important;color:#ffdf92!important;
  border-color:#455b73!important;box-shadow:none!important;
}
html[data-gp-theme="dark"] .gpThemeToggle:hover{background:#2b405c!important}
html[data-gp-theme="dark"] a{color:#85dfb5}
html[data-gp-theme="dark"] :is(.sub,.small,.muted,.stationMeta,.stationHint,
  .stationTapHelp,.priceSource,.meta,.note,.lead,.caption,.foot,.footnote,
  .label,.gpRouteInfo,.gpRouteAddress,.gpRouteFootnote,.gpSavedDetail small,
  .gpTripMapCoverage,.nearbyHint,.tickerHint,.gpPriceGrade,.gpPriceExplanation){
  color:#aab9ce!important;
}
html[data-gp-theme="dark"] :is(.brand,.gpBrand,h1,h2,h3,.sectionTitle,
  .stationName,.price,.stationPrice,.stationCardLead,.locationGateTitle,
  .fuelTitle,.fuelValue,.fillResult,.lead strong,.mapTopPickPrice,
  .mapTopPickMain strong,.gpRoutePrice,.gpSavedDetail>strong,
  .gpRouteStopTop strong,.topResultPrice){
  color:#f0f5fb!important;
}
html[data-gp-theme="dark"] :is(.card,.locationGate,.zipFallback,.membershipCard,
  .stationCard,.simpleFilters,.simpleFiltersBody,.stationMapSelection,
  .gpReviewDialog,.gpPriceReportDialog,.gpRoutePlanner,.gpRouteStop,
  .gpSavedStations,.gpRouteOtherPrices,.gpRangeGuidance,.fillDetails,
  .gpTripDisplay,.gpTripMapDisclosure,.recentSavingsHistory .savingsEditPanel,
  .founderHelpPanel,.signalBox,.plainWhy,.valuePreview>div,.locationPrompt,
  .gpRouteEmpty,.mapTopPicks,.mapTopPickRow,.mapSelectionCard,
  .optionalCard,.gpPushCityRequest,.stationMapWrap,.stationSearchPanel,
  .reviewPanel,.savedStationRow){
  background:#152234!important;border-color:#344357!important;color:#edf3fb!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] :is(.statusMsg,.mutedBox,.meta span,.clubChip,
  .vote,.ghost,.secondary,.gpRouteInputs,.gpSearchFilters,
  .fuelTypeChoice,.stationViewTabs,.stationViewTabs button,.stationViewTabs a,
  .gpSavedRow,.gpRouteStopActions button,.gpTripStageBar,.gpTripMapOptions,
  .gpCommunityPrice,.gpRouteStage,.gpRouteResult,.gpPlaceInfo,.chip,.pill){
  background:#1c2a3d!important;border-color:#344357!important;
  color:#e5effb!important;
}
html[data-gp-theme="dark"] :is(input,select,textarea,
  .zipFallbackRow input,.fillDetails input,.adminForm input,
  .adminForm select,.adminForm textarea,.gpRouteHeadingRow select,
  .gpTripStageBar select,.gpTripMapOptions select,
  .gpFuelRangeFields input,.gpPriceInputRow input,
  .recentSavingsHistory .savingsEditFields input){
  background:#1c2a3d!important;border-color:#41556d!important;
  color:#f0f5fb!important;
}
html[data-gp-theme="dark"] :is(input,textarea)::placeholder{color:#a6b4c5!important;opacity:1}
html[data-gp-theme="dark"] :is(.ghost,.vote,.secondary,
  .stationViewTabs button,.stationViewTabs a,.gpThemeToggle){color:#eef5ff!important}
html[data-gp-theme="dark"] :is(.station,.gpSavedRow,.reply,
  .row,.gpRouteOtherPrices,.gpTripStageBar){
  border-color:#344357!important;
}
html[data-gp-theme="dark"] :is(.locationGateText,.locationGateValue,
  .locationFree,.locationPrompt,.valuePreview span,.alertCopy,
  .alertConsent,.recommendationExplainer,.fuelHelp,.stationCheckNote,
  .mapPickTrust,.gpRouteFootnote,.gpFuelRangeFields label,
  .gpFuelRangeFields small,.gpRangeGuidance small,.gpSavedStatus,
  .recentSavingsHistory .savingsEditFields label){
  color:#b8c8d9!important;
}
/* Keep the highly visible actual timing recommendation and the price-action
   semantics. Neutral supporting panels get darkened without changing red/green. */
/* The ticker retains its existing semantic green/red/neutral call palette. */
html[data-gp-theme="dark"] #tomorrowPrediction .regionalEvidence,
html[data-gp-theme="dark"] #tomorrowPrediction .regionalEvidenceHeader strong,
html[data-gp-theme="dark"] #tomorrowPrediction .regionalEvidenceValue{
  color:#f0f5fb!important;
}
html[data-gp-theme="dark"] #tomorrowPrediction :is(.regionalEvidenceItem,
  .regionalBackgroundSummary,.regionalSignalStrength){
  background:#1c2a3d!important;border-color:#3b516c!important;color:#e8f0fa!important;
}
html[data-gp-theme="dark"] #tomorrowPrediction :is(.regionalEvidenceName,
  .regionalEvidenceDescription,.regionalEvidenceNote,
  #regionalEvidenceAsOf){color:#b9c8d9!important}
html[data-gp-theme="dark"] #tomorrowPrediction .regionalEvidenceValue.rising{color:#ffc484!important}
html[data-gp-theme="dark"] #tomorrowPrediction .regionalEvidenceValue.falling{color:#85e6b8!important}
html[data-gp-theme="dark"] #tomorrowPrediction .regionalNewsLinks a{color:#8fe5b8!important}
html[data-gp-theme="dark"] #nearbyStationsPanel :is(.stationViewTabs,
  .stationViewTab,.fuelGradeChoice,.fuelTypeChoiceTop){
  background:#1c2a3d!important;border-color:#344357!important;color:#eef5ff!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel :is(.stationViewTab.active,
  .stationViewTabs button[aria-selected="true"],.stationViewTabs .active){
  background:#2b415b!important;color:#fff!important;
}
html[data-gp-theme="dark"] .gpCommunityActions>.gpStationAction,
html[data-gp-theme="dark"] .gpCommunityActions>.stationMapSelectionReportPrice{
  background:#1c2a3d!important;color:#eaf3ff!important;border-color:#344357!important;
}
html[data-gp-theme="dark"] :is(.gpPriceReportDialog,
  .gpReviewDialog,dialog,.stationMapSelection){
  background:#152234!important;color:#f0f5fb!important;border-color:#3a4c65!important;
}
html[data-gp-theme="dark"] :is(.gpPriceInputRow,.gpReviewDialog textarea){
  background:#1c2a3d!important;color:#f0f5fb!important;border-color:#3a4c65!important;
}
html[data-gp-theme="dark"] .gpReviewDialog::backdrop,
html[data-gp-theme="dark"] .gpPriceReportDialog::backdrop{
  background:rgba(2,8,17,.84)!important;
}
html[data-gp-theme="dark"] :is(.stationMapSelectionMeta,.gpPriceGrade,
  .gpPriceExplanation,#gpPriceStatus,.gpRouteInfo){color:#bdcadd!important}
html[data-gp-theme="dark"] .communityHeaderLink{
  background:#172f2a!important;border-color:#2b6854!important;color:#95efbf!important;
}
html[data-gp-theme="dark"] .gpAuxRow .countryModeNotice{
  background:#20314a!important;border-color:#3b4f69!important;color:#dae6f6!important;
}
html[data-gp-theme="dark"] .appStoreDownloadLink{
  background:#263b56!important;border-color:#49617f!important;color:#fff!important;
}
html[data-gp-theme="dark"] .gasPalSocials{
  border-color:#344357!important;
}
html[data-gp-theme="dark"] .gasPalSocials a{
  background:#1c2a3d!important;border-color:#344357!important;color:#9ee8c2!important;
}
html[data-gp-theme="dark"] .gasPalSocials span{color:#b9c7d9!important}
html[data-gp-theme="dark"] .founderHelpBtn{
  background:#233650!important;color:#f4f7fc!important;
}
html[data-gp-theme="dark"] .founderHelpPanel :is(a,button){
  border-color:#3a4e69!important;
}
html[data-gp-theme="dark"] :is(.statusMsg.success,.gpCommunityPrice:not(.gpPriceDisputed)){
  background:#18392f!important;color:#a3efd0!important;border-color:#2e6854!important;
}
html[data-gp-theme="dark"] :is(.statusMsg.warn,.gpCommunityPrice.gpPriceDisputed){
  background:#42311d!important;color:#ffda99!important;border-color:#7b6036!important;
}
html[data-gp-theme="dark"] .statusMsg.error{
  background:#482a36!important;color:#ffbeca!important;border-color:#7f4354!important;
}
/* The smog ticket remains cream/rose with its original red pricing.
   This is intentional: the coupon is a brand creative, not a UI input. */
html[data-gp-theme="dark"] #partnerOfferStrip.partnerOfferStrip{
  background:#192333!important;border-color:#5b3849!important;
}
html[data-gp-theme="dark"] #partnerOfferStrip .partnerOfferKicker{color:#ffc0cc!important}
html[data-gp-theme="dark"] #partnerOfferStrip .partnerPromoButton{
  background:transparent!important;
}
html[data-gp-theme="dark"] #partnerOfferStrip .partnerOfferPrice{
  color:#ff7d8f!important;
}
html[data-gp-theme="dark"] #partnerOfferStrip .partnerOfferCTA{
  color:#ffb1be!important;
}
html[data-gp-theme="dark"] #partnerOfferStrip .partnerPromoDismiss{
  color:#bdc9d8!important;
}
html[data-gp-theme="dark"] #partnerOfferRestore button{
  background:#1c2a3d!important;border-color:#5b3849!important;color:#ffb5bd!important;
}
/* Secondary user-facing pages share the same saved preference. */
html[data-gp-theme="dark"] :is(main,article,.wrap){color:#edf3fb}
html[data-gp-theme="dark"] :is(article,.card,.panel,.method,.stat,.signal,
  .comparison article,.chip,.pill,.gpOnboardingStep,.gpEnrollmentDone,
  #installInstructions,#pushStatus,.gpPushCityRow input){
  background:#152234!important;border-color:#344357!important;
  color:#ecf4fb!important;box-shadow:none!important;
}
html[data-gp-theme="dark"] :is(p,.sub,.muted,.lead,.note,.foot,
  .method .note,.small,.stat span,.comparison p,.signal p,
  .gpOnboardingStep p,.gpPushCityRequest p){
  color:#b1c1d5!important;
}
html[data-gp-theme="dark"] :is(header,.logo,.brand,.gpBrand,.back,
  .eyebrow,.kicker,h1,h2,h3,.stat b,.comparison strong,.topBack){
  color:#eef5fc!important;
}
html[data-gp-theme="dark"] :is(a,.back,.source){color:#93e6bb}
html[data-gp-theme="dark"] :is(nav a,header a,.topBack){color:#aad4ff!important}
html[data-gp-theme="dark"] :is(.reply,.chip,.pill,.method,
  .gpOnboardingStep,.gpEnrollmentDone){
  border-color:#344357!important;
}
/* Restrict generic buttons to secondary content pages; the homepage's
   coupon, timing CTA, tab and notification colors must retain their meaning. */
html[data-gp-theme="dark"] main:not(.shell) :is(button:not(.primary):not(.gpThemeToggle),
  .secondary,.gpPushCityRow button){
  background:#1c2a3d;color:#edf4ff;border-color:#40536b;
}
html[data-gp-theme="dark"] :is(#pushStatus.error,.gpRangeWarning){
  background:#482a36!important;color:#ffbeca!important;
}
html[data-gp-theme="dark"] .gpPriceReportDialog #gpPriceSend,
html[data-gp-theme="dark"] button.primary,
html[data-gp-theme="dark"] .primary{
  background:#19754c!important;color:#fff!important;border-color:#19754c!important;
}
@media(prefers-reduced-motion:reduce){.gpThemeToggle{transition:none}}

/* Small subpage headers can wrap without clipping the appearance toggle. */
html[data-gp-theme="dark"] main:not(.shell) > header{flex-wrap:wrap}


/* v2 production contrast pass: every light-mode reading surface has a night
   counterpart. Do not modify the timing badge, map tiles or referral ticket. */
html[data-gp-theme="dark"] main.shell{
  color:#f1f5fb!important;
  --gp-night-bg:#0c1422;
  --gp-night-card:#152235;
  --gp-night-surface:#202f44;
  --gp-night-border:#3b4d63;
  --gp-night-text:#f1f5fb;
  --gp-night-muted:#bac8da;
}
/* GasPal has legacy selectors hard-coding black/dark gray for individual copy
   blocks. Give text a legible baseline, including dynamically-rendered rows.
   Explicit exclusions protect intentionally colored banners and the coupon. */
html[data-gp-theme="dark"] main.shell :where(
  .card:not(#localPartnerCard):not(#partnerOfferStrip),
  .stationCard,.missingStationPanel,.stationBottomSearch,
  .simpleFilters,.locationGate,.fuelModal,.stationMapSelection,
  .gpPriceReportDialog,.gpReviewDialog
) :where(h1,h2,h3,h4,h5,p,span,strong,b,small,label,
  summary,legend,dt,dd,output,li):where(
  :not(#marketTicker *):not(#localPartnerCard *):not(#partnerOfferStrip *)
  :not(.gpSmogCoupon *):not(.timingSpotlight *)
){
  /* Intentionally low specificity so semantic and secondary copy can use
     softer sage/gray colors without fighting a blanket high-specificity rule. */
  color:#d7e4eb!important;
}
html[data-gp-theme="dark"] main.shell :is(.brand,.locationGateTitle,.stationName,.price,
  .sectionTitle,.mapAreaLabel strong,.savingsHeadline,.comparisonItem strong,
  .comparisonItem b,.newsCard strong,.dreamDrivePitch strong,.gpRoutePrice,
  .stationSearchTitle,.stationSearchMatch strong,.savingsResultsTitle,
  .savingsSummary strong,.fuelModalTitle,.fuelModalPrompt){
  color:#f5f8fd!important;
}
html[data-gp-theme="dark"] main.shell :is(.sub,.locationGateValue,.locationFree,
  .locationGateValue strong,.landingTimingChoices span,.simpleIntro,
  .stationMeta,.stationTapHelp,.stationCheckNote,.stationCoverageNote,
  .savingsPromise,.fillPrivacyNote,.comparisonAssumptions,.marketBrief,
  .newsNote,.newsItem,.newsLoading,.gpPushStatus,.gpPushHint,
  .gpPushFields label,.gpPushOptional,.gpPushTopics label,
  .gpPushHelp,.gpPushLocalOption>label,.gpPushCityRequest,
  .gpRouteFootnote,.gpRouteInfo,.gpSavedStatus,.stationSearchBody){
  color:#bac9dc!important;
}
html[data-gp-theme="dark"] main.shell :is(.timingFirstGate,.stationCard,.savingsCard,
  .comparisonCard,.dreamDriveTeaser,.newsCard,.alertSignupCard,.contactCard,
  .feedbackCard,.mapTopPicks,.mapTopPickRow,.fuelModal,.fuelModalOverlay .fuelModal,
  .stationSearchMatch,.stationSearchResults .stationSearchMatch,.comparisonItem,
  .newsItem,.stationBottomSearch,.quickSavingsForm,.latestTimingResult,
  .savingsSummary,.savingsResults,.recentSavingsHistory,
  .fuelGradePicker,.simpleFilters,.simpleFilterGroup,.simpleFiltersBody,
  .stationTools,.stationValueProof,.simpleFilterGroupHead,.gpPushInstall,
  .gpPushCityRequest,.gpPushFields,.gpPushCityRow,.mapAreaLabel){
  background:#152235!important;
  border-color:#344b63!important;
  color:#f1f5fb!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel #stationList,
html[data-gp-theme="dark"] #nearbyStationsPanel .station,
html[data-gp-theme="dark"] #nearbyStationsPanel .station>div{
  background:#152235!important;color:#f1f5fb!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel .station{
  border-top-color:#34465d!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel :is(.stationName,.price){
  color:#f5f8ff!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel :is(.stationMeta,.stationCheckNote,
  .stationCoverageNote,.stationTapHelp){
  color:#b7c6d8!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel :is(.addressTrustBadge,
  .stationValueVerified,.stationTrustLine .trustLabel){
  color:#8ce3b4!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel :is(.fuelGradePicker,
  .stationViewTabs,.stationViewTab.active,.fuelTypeChoiceTop){
  background:#263850!important;
  border-color:#445b74!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel :is(.fuelSelectLabel,
  .fuelGradePicker label,.fuelTypeChoiceTop label){
  color:#bac9da!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel #fuelGradeSelect{
  background:#263850!important;color:#f3f7fc!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel .stationViewTab{
  background:transparent!important;color:#b9c8dc!important;
}
html[data-gp-theme="dark"] #nearbyStationsPanel .stationViewTab.active{
  background:#405671!important;color:#fff!important;
  box-shadow:0 1px 4px rgba(0,0,0,.18)!important;
}
html[data-gp-theme="dark"] #stationToggle{
  background:#263850!important;border-color:#475e78!important;
  color:#f1f5fb!important;
}
/* These are buttons and information boxes that remained white in the preview. */
html[data-gp-theme="dark"] main.shell :is(.stationSearchControls input,
  .stationSearchResults input,.quickMoneyInput input,.fuelModal input,
  .quickSavingsForm input,.gpPushSelect,.gpPushCityRow input,
  .gpPushFields select,.gpRouteInputs input,.gpRouteInputs select,
  .savingsCard input,.savingsCard select){
  background:#202f44!important;color:#f1f5fb!important;
  border-color:#465b75!important;
}
html[data-gp-theme="dark"] main.shell :is(.stationSearchControls button,
  .stationSearchResults button,.stationReportStatus,
  .stationBottomSearch button,.gpPushMinor,
  .feedbackBtns .vote,.feedbackChoice,.gpPushInstall,
  .fillResult .fillEditFromResult,.recentSavingsHistory .savingsEditActions button){
  background:#23354b!important;border-color:#435a74!important;
  color:#f1f5fb!important;
}
html[data-gp-theme="dark"] main.shell :is(.primary,.gpPushEnable,
  .locationPrimary,.alertSubmitBtn){
  color:white!important;
}
html[data-gp-theme="dark"] main.shell .landingTimingChoices span{
  background:transparent!important;
}
html[data-gp-theme="dark"] main.shell .locationGateTitle span{
  color:#76dfab!important;
}
html[data-gp-theme="dark"] main.shell .preLocationEyebrow,
html[data-gp-theme="dark"] main.shell .savingsEyebrow{
  color:#83e6b5!important;
}
/* Green savings proof has a meaningful positive treatment in light mode:
   preserve the positive visual cue rather than leaving a blinding pastel slab. */
html[data-gp-theme="dark"] main.shell :is(.stationValueProof,.stationValueProof *,
  .savingsResults,.savingsSummary,.comparisonGrid .comparisonItem){
  background:#183527!important;
  border-color:#35684e!important;
  color:#effcf4!important;
}
html[data-gp-theme="dark"] main.shell :is(.stationValueProof a,
  .savingsSummary a,.comparisonGrid a){
  color:#94edbc!important;
}
/* Station highlights, source references and human-entered posts must all read. */
html[data-gp-theme="dark"] main.shell :is(.newsItem,.newsItem p,
  .newsItem strong,.newsItem span,.newsCard a,
  .comparisonItem,.comparisonItem span,.comparisonItem strong,
  .gpRouteStop,.gpRouteStop small,.gpSavedDetail small,
  .gpPushHelp p,.gpPushHelp summary){
  color:#dce7f5!important;
}
html[data-gp-theme="dark"] main.shell a:not(.appStoreDownloadLink):not(.communityHeaderLink){
  text-decoration-color:currentColor;
}
html[data-gp-theme="dark"] main.shell .newsCard a,
html[data-gp-theme="dark"] main.shell .gpPushHelp summary{
  color:#91eabb!important;
}
/* Voucher inner typography, native map imagery and semantic signals
   intentionally retain their own brand and data colors. */


/* GasPal compact header. The moon/sun lives on the existing tagline baseline;
   it does not occupy Community/App Store real estate or add a new toolbar. */
main.shell > header .gpHeaderMeta{
  display:flex;align-items:center;gap:5px;width:max-content;max-width:100%;
  margin-top:2px;
}
main.shell > header .gpHeaderMeta .sub{
  margin:0!important;
}
main.shell > header .gpHeaderMeta .gpThemeToggle{
  display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 24px;width:24px;height:24px;min-height:24px;min-width:24px;
  padding:0;margin:0 0 0 2px;
  border:0!important;border-radius:50%;background:transparent!important;
  box-shadow:none!important;color:#718095!important;
  font:700 21px/1 system-ui,-apple-system,sans-serif;
}
main.shell > header .gpHeaderMeta .gpThemeToggle:hover{
  background:#f0f3f7!important;color:#22344b!important;
}
html[data-gp-theme="dark"] main.shell > header .gpHeaderMeta .gpThemeToggle{
  background:transparent!important;color:#d0dceb!important;
}
html[data-gp-theme="dark"] main.shell > header .gpHeaderMeta .gpThemeToggle:hover{
  background:#27354a!important;color:#ffdb8e!important;
}
/* App Store CTA: a branded accessory, not a competing black ad-like pill. */
main.shell .gpAuxRow{
  gap:8px;align-items:center;justify-content:space-between;
}
main.shell .gpAuxRow .appStoreDownloadLink{
  display:inline-flex;align-items:center;justify-content:center;
  gap:6px;max-width:100%;min-height:32px;
  padding:5px 10px;margin-left:auto;
  background:#f7faf8!important;color:#176245!important;
  border:1px solid #d5e9dc!important;border-radius:999px!important;
  font:750 12px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:0;box-shadow:none!important;text-decoration:none;
}
main.shell .gpAuxRow .appStoreDownloadLink:hover{
  background:#eaf6ee!important;border-color:#b9dfc8!important;
  color:#135b3f!important;
}
main.shell .gpAuxRow .appStoreDownloadLink img{
  display:block;flex:0 0 16px;width:16px;height:16px;object-fit:contain;
}
main.shell .gpAuxRow .appStoreDownloadLink span{
  color:inherit!important;
}
main.shell .gpAuxRow .appStoreDownloadLink .gpAppDownloadArrow{
  margin-left:2px;font-size:14px;color:#2f865e!important;
}
html[data-gp-theme="dark"] main.shell .gpAuxRow .appStoreDownloadLink{
  background:#162a27!important;border-color:#2c604b!important;
  color:#b0efce!important;
}
html[data-gp-theme="dark"] main.shell .gpAuxRow .appStoreDownloadLink:hover{
  background:#203e34!important;border-color:#3f8264!important;
  color:#f1fff7!important;
}
html[data-gp-theme="dark"] main.shell .gpAuxRow .appStoreDownloadLink .gpAppDownloadArrow{
  color:#93e4b7!important;
}
/* Existing iOS-specific visibility gate remains absolute, including previews. */
html.gpNativeIosWrapper main.shell .appStoreDownloadLink,
html.gpAndroidVisitor main.shell .appStoreDownloadLink{display:none!important}
@media(max-width:420px){
  main.shell .gpAuxRow{flex-wrap:nowrap!important}
  main.shell .gpAuxRow .appStoreDownloadLink{
    padding:5px 8px;gap:4px;font-size:11px;
  }
  main.shell .gpAuxRow .appStoreDownloadLink img{
    width:14px;height:14px;flex-basis:14px;
  }
}


/* v3: soft, accessible night surfaces, restrained GasPal sage accents.
   Specific repairs for remaining legacy light-mode controls; the fuel trend
   banner, map imagery, merchant voucher and verified badges remain semantic. */
html[data-gp-theme="dark"] main.shell{
  --gp-night-bg:#0d1521;
  --gp-night-card:#172333;
  --gp-night-surface:#203044;
  --gp-night-border:#35495d;
  --gp-night-text:#edf3f6;
  --gp-night-muted:#adbfce;
  --gp-night-link:#a5dbbe;
}
html[data-gp-theme="dark"] body{background:#0d1521!important}
html[data-gp-theme="dark"] main.shell :is(.savingsCard,.comparisonCard,.newsCard,.alertSignupCard,
  .stationCard,.feedbackCard,.contactCard,.dreamDriveTeaser,.utilityCard){
  background:#172333!important;border-color:#314457!important;color:#edf3f6!important;
}
html[data-gp-theme="dark"] main.shell :is(.comparisonGrid .comparisonItem,
  .newsItem,.marketBrief,.phoneStepGroup,.stationSearchResults,
  .stationSearchResults .stationSearchMatch,.stationSearchMatch,
  .savingsSummary,.savingsResults,.latestTimingResult,.fillReturnPrompt){
  background:#203044!important;border:1px solid #35495d!important;color:#e3ebf1!important;
  box-shadow:none!important;
}
/* Report station issue: previously a bright white slab. */
html[data-gp-theme="dark"] #missingStationPanel{
  background:transparent!important;border-color:#35495d!important;color:#dce8ed!important;
}
html[data-gp-theme="dark"] #missingStationPanel > summary{
  background:#1e302e!important;color:#a5dbbe!important;
  border:1px solid #35584e!important;border-radius:12px!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] #missingStationPanel > summary:hover,
html[data-gp-theme="dark"] #missingStationPanel[open] > summary{
  background:#254139!important;border-color:#4a7766!important;
}
html[data-gp-theme="dark"] #missingStationPanel :is(p,label,small,.reportSafetyNote){
  color:#b9c8d3!important;
}
html[data-gp-theme="dark"] #missingStationPanel :is(select,input,.moneyInput){
  background:#203044!important;color:#edf3f6!important;border-color:#435870!important;
}
html[data-gp-theme="dark"] #missingStationPanel :is(button,.stationReportStatus){
  color:#a5dbbe!important;
}
html[data-gp-theme="dark"] main.shell :is(.simpleFilters summary,
  .simpleFilterGroupHead,.stationBottomSearch .stationSearchForm label){
  color:#e2ebf1!important;
}
html[data-gp-theme="dark"] main.shell :is(.simpleFilterGroup,
  .simpleFiltersBody,.simpleFilters,.simpleAddressFilter){
  background:#172333!important;border-color:#35495d!important;
}
/* Estimated savings: gentle numbered chips, legible labels and one calm CTA. */
html[data-gp-theme="dark"] main.shell .quickSavingsField>span,
html[data-gp-theme="dark"] main.shell .quickSavingsField>span #quickFillUnitLabel{
  color:#dce7ed!important;
}
html[data-gp-theme="dark"] main.shell .quickSavingsField>span b{
  background:#294036!important;color:#b0dfc7!important;
  border:1px solid #416756!important;
}
html[data-gp-theme="dark"] main.shell :is(.quickMoneyInput,
  .fuelModal .moneyInput,.missingStationPanel .moneyInput){
  background:#203044!important;border-color:#435870!important;
}
html[data-gp-theme="dark"] main.shell .quickMoneyInput .currencyMark,
html[data-gp-theme="dark"] main.shell .fuelModal .currencyMark{
  color:#bdd7ca!important;
}
html[data-gp-theme="dark"] main.shell :is(.quickSavingsField input,
  .quickMoneyInput input,.gpPushSelect,.stationSearchControls input,
  .fillDetails input){
  background:#203044!important;border-color:#435870!important;
  color:#edf3f6!important;
}
html[data-gp-theme="dark"] main.shell :is(.quickSavingsField input,
  .quickMoneyInput input,.gpPushSelect,.stationSearchControls input):focus-visible{
  outline:2px solid #85c9ab!important;outline-offset:1px;
}
html[data-gp-theme="dark"] main.shell .savingsCta{
  background:#28785a!important;border-color:#28785a!important;
  color:#f2fff9!important;
}
html[data-gp-theme="dark"] main.shell :is(.savingsCard .savingsPromise,
  .savingsCard .fillPrivacyNote,.savingsCard .savingsSummaryLabel,
  .savingsCard .savingsPromise strong,.savingsCard .comparisonAssumptions){
  color:#b6c7d2!important;
}
html[data-gp-theme="dark"] main.shell :is(.savingsSummary strong,
  .savingsResultsTitle,#personalSavingsTotal,#personalTimingSavingsTotal){
  color:#eff7f2!important;
}
/* Savings evidence should have a restrained, dark evergreen base; do not
   make the entire comparison/receipt area electric green. */
html[data-gp-theme="dark"] main.shell :is(.stationValueProof,.stationValueProof *){
  background:#1c332c!important;border-color:#3d6255!important;color:#e6f5ec!important;
}
html[data-gp-theme="dark"] main.shell .comparisonGrid .comparisonItem{
  background:#203044!important;border-color:#35495d!important;
}
html[data-gp-theme="dark"] main.shell .comparisonGrid .comparisonItem strong{
  color:#eaf0f5!important;
}
html[data-gp-theme="dark"] main.shell .comparisonGrid .comparisonItem span{
  color:#a5dbbe!important;background:transparent!important;border:0!important;
}
html[data-gp-theme="dark"] main.shell .comparisonAssumptions{
  color:#b3c4cf!important;
}
/* World market news: title, article cards and disclosure are all dark. */
html[data-gp-theme="dark"] main.shell .newsCard :is(.marketBrief,
  .marketBrief .briefLead,.newsItem,.newsItem a,.newsItem strong,
  .newsMeta,.newsSources,.newsSources summary,.newsNote,.newsLoading){
  border-color:#35495d!important;
}
html[data-gp-theme="dark"] main.shell .newsCard .marketBrief{
  background:#203044!important;color:#d3e0e9!important;
}
html[data-gp-theme="dark"] main.shell .newsCard .marketBrief .briefLead{
  background:transparent!important;color:#edf3f6!important;
}
html[data-gp-theme="dark"] main.shell .newsCard .newsItem{
  background:#1d2b3b!important;color:#dbe7ee!important;
}
html[data-gp-theme="dark"] main.shell .newsCard .newsItem a{
  color:#c9e4d8!important;
}
html[data-gp-theme="dark"] main.shell .newsCard .newsMeta,
html[data-gp-theme="dark"] main.shell .newsCard .newsNote{
  color:#a9bac7!important;
}
html[data-gp-theme="dark"] main.shell .newsCard .newsSources summary,
html[data-gp-theme="dark"] main.shell .newsCard a{
  color:#a5dbbe!important;
}
html[data-gp-theme="dark"] main.shell .newsCard .newsSources{
  border-top-color:#35495d!important;
}
/* Web Push: the previous dark headline inherited near-black from the light
   stylesheet. Soft sage differentiates interactive links from descriptive text. */
html[data-gp-theme="dark"] main.shell #alertSignupCard{
  background:#172333!important;border-color:#35495d!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard .alertTitle{
  color:#edf3f6!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard .alertEyebrow{
  color:#b0c4cf!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard :is(.alertCopy,
  .gpPushHint,.gpPushStatus,.gpPushLocalOption p,.gpPushCityRequest p,
  .gpPushHelp p){
  color:#b9c9d3!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard :is(.gpPushFields label,
  .gpPushTopics label,.gpPushLocalOption>label,.gpPushCityRequest label){
  color:#dce7ee!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard :is(.gpPushHint a,
  .gpPushHelp summary,.gpPushCityRequest summary,.gpPushStatus a){
  color:#a5dbbe!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard .gpPushEnable{
  background:#28785a!important;color:#f2fff9!important;
  border-color:#28785a!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard .gpPushEnable:disabled{
  background:#245743!important;color:#b7d1c1!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard :is(.gpPushInstall,
  .gpPushCityRequest,.gpPushLocalOption,.gpPushHelp){
  background:#1d2b3b!important;border-color:#35495d!important;
}
html[data-gp-theme="dark"] main.shell #alertSignupCard .gpPushTopics input{
  accent-color:#72b493;
}
/* Generic supporting actions use the quiet sage palette instead of high-glare
   white, cobalt links or bright warm accents. This excludes the coupon. */
html[data-gp-theme="dark"] main.shell :is(.stationReportFromSearch,
  #stationSearchButton,.stationSearchMapAction,.stationSearchReportAction,
  .gpPushMinor,.feedbackBtns .vote,.feedbackChoice,
  .newsSources summary){
  background:#213345!important;color:#c0e4d2!important;
  border-color:#3d5a62!important;
}
html[data-gp-theme="dark"] main.shell :is(.gpPushMinor,.feedbackBtns .vote):hover{
  background:#2a4351!important;
}
html[data-gp-theme="dark"] main.shell :is(.gpPushMinor,.feedbackBtns .vote,
  .stationSearchMapAction,.stationSearchReportAction):focus-visible{
  outline:2px solid #85c9ab!important;outline-offset:2px;
}
/* Quiet header corner, leaving the tagline/center available to the app bell. */
main.shell > header{
  gap:6px;
}
main.shell > header > #gpThemeToggle{
  flex:0 0 32px;width:32px;height:32px;min-width:32px;min-height:32px;
  margin:0 2px 0 auto;padding:0;border-radius:50%;
  font-size:19px;line-height:1;
  border:1px solid transparent!important;
  box-shadow:none!important;background:transparent!important;
  color:#667b8d!important;
}
main.shell > header > #gpThemeToggle:hover{
  background:#f0f4f7!important;color:#34485d!important;
}
html[data-gp-theme="dark"] main.shell > header > #gpThemeToggle{
  color:#a8c8b9!important;
  border:1px solid transparent!important;background:transparent!important;
}
html[data-gp-theme="dark"] main.shell > header > #gpThemeToggle:hover{
  color:#d2eddf!important;background:#213549!important;
}
html[data-gp-theme="dark"] main.shell > header > #gpThemeToggle:focus-visible{
  outline:2px solid #a5dbbe!important;outline-offset:2px;
}
@media(max-width:390px){
  main.shell > header{gap:3px}
  main.shell > header > #gpThemeToggle{
    flex-basis:28px;width:28px;min-width:28px;
    height:30px;min-height:30px;margin-right:0;
  }
}
/* Keep app-only native bell and our separate appearance toggle on different
   parts of the header; no floating moon over timing content or station rows. */

/* Match the low-glare sage link treatment inside Web Push signup. */
html[data-gp-theme="dark"] main.shell #alertSignupCard .gpPushHint a{color:#a5dbbe!important}

/* v4 — approved Apple-style night visual direction. CSS-only: all existing
   prices, evidence, station actions, partner coupons, map pins and signup logic
   remain live. Premium slate surfaces, readable off-white, calm sage accent. */
html[data-gp-theme="dark"]{
  --bg:#0b1420!important;--card:#162434!important;--card2:#203145!important;
  --text:#eff5f9!important;--muted:#b5c7d5!important;--line:#344a60!important;
  --green:#a5dcbf!important;--amber:#edca8e!important;--blue:#a6c6dd!important;
  background:#0b1420!important;
}
html[data-gp-theme="dark"] body,
html[data-gp-theme="dark"] body.locationReady,
html[data-gp-theme="dark"] main.shell{
  background:#0b1420!important;color:#eff5f9!important;
}
/* Keep the GasPal brand red, but use a quiet green accent for selected actions. */
html[data-gp-theme="dark"] main.shell > header .brand,
html[data-gp-theme="dark"] main.shell > header .brand span{
  color:#f4f7fa!important;
}
html[data-gp-theme="dark"] main.shell > header .sub{
  color:#b3c5d3!important;
}
html[data-gp-theme="dark"] main.shell > header #locUpdateBtn{
  background:#203146!important;border:1px solid #3e5369!important;
  color:#d9e6ef!important;box-shadow:none!important;transform:none!important;
}
html[data-gp-theme="dark"] main.shell > header #locUpdateBtn:hover{
  background:#2a3e52!important;border-color:#667d8e!important;
}
html[data-gp-theme="dark"] main.shell > header #gpThemeToggle{
  background:#20382f!important;border:1px solid #315a49!important;
  color:#ddf0e5!important;border-radius:50%!important;
}
html[data-gp-theme="dark"] main.shell > header #gpThemeToggle:hover{
  background:#2d4a3e!important;
}
html[data-gp-theme="dark"] main.shell :is(.communityHeaderLink,
  .appStoreDownloadLink){
  box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell .gpAuxRow .communityHeaderLink{
  background:#172e29!important;border-color:#355d4e!important;
  color:#bbe8d2!important;
}
/* The green timing signal and compact ticker are intentionally intact. */
html[data-gp-theme="dark"] main.shell #marketTicker{
  border-color:#327852!important;
  box-shadow:0 2px 13px rgba(0,0,0,.22)!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel{
  background:transparent!important;border-color:transparent!important;
  padding:0!important;color:#eef4f7!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .mapAreaLabel,
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .mapAreaLabel strong{
  background:transparent!important;color:#eff5f9!important;
  font-size:clamp(20px,5vw,26px);line-height:1.17;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .fuelGradePicker,
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .fuelTypeChoice{
  background:#182a3d!important;border:1px solid #395167!important;
  border-radius:11px!important;color:#e6eef4!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .fuelSelectLabel{
  color:#c4d6e1!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel #fuelGradeSelect{
  background:#182a3d!important;color:#f0f6fa!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .stationViewTabs{
  display:grid!important;grid-template-columns:1fr 1fr;
  background:#1b2c3e!important;border:1px solid #3b5267!important;
  border-radius:12px!important;padding:4px!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .stationViewTab{
  color:#b7cbd8!important;background:transparent!important;
  border:0!important;border-radius:9px!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .stationViewTab.active{
  background:#28553f!important;color:#eaf9f1!important;
  border:1px solid #3e8462!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel #gpRoutePlanner,
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel #gpRoutePlanner > summary{
  background:#17283b!important;color:#e7f0f6!important;
  border-color:#344b61!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel #gpRoutePlanner > summary:hover{
  background:#21364a!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel .stationTapHelp,
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel #stationCoverageNote{
  color:#bacbd5!important;
}
/* Actual station anchors and their buttons are separate elements in the
   production DOM. Style them as one soft layered card with no lost actions. */
html[data-gp-theme="dark"] main.shell #stationList > a.station{
  background:#172738!important;color:#edf5f9!important;
  border:1px solid #344b61!important;
  border-radius:13px 13px 0 0!important;
  padding:13px 12px 7px!important;margin:8px 0 0!important;
  box-shadow:none!important;display:flex!important;
  gap:8px!important;text-decoration:none!important;
}
html[data-gp-theme="dark"] main.shell #stationList > a.station:focus-visible{
  outline:2px solid #97d8b7!important;outline-offset:2px;
}
html[data-gp-theme="dark"] main.shell #stationList > a.station:not(:has(+ .gpUnderStation)){
  border-radius:13px!important;padding-bottom:12px!important;
}
html[data-gp-theme="dark"] main.shell #stationList > a.station .stationName{
  color:#f5f8fa!important;font-weight:850!important;overflow-wrap:anywhere;
}
html[data-gp-theme="dark"] main.shell #stationList > a.station .price{
  color:#eff7fa!important;white-space:nowrap!important;
  font-weight:900!important;font-variant-numeric:tabular-nums;
  font-size:clamp(19px,5.2vw,26px)!important;
}
html[data-gp-theme="dark"] main.shell #stationList > a.station .stationMeta{
  color:#b4c6d5!important;
}
html[data-gp-theme="dark"] main.shell #stationList > a.station .stationCheckNote{
  color:#b8ccda!important;
}
html[data-gp-theme="dark"] main.shell #stationList > a.station .addressTrustBadge{
  color:#a1dfba!important;
}
html[data-gp-theme="dark"] main.shell #stationList > .gpUnderStation{
  display:flex!important;align-items:stretch;gap:7px!important;
  flex-wrap:wrap;min-width:0;padding:4px 10px 10px!important;
  margin:0 0 9px!important;border:1px solid #344b61!important;
  border-top:0!important;border-radius:0 0 13px 13px!important;
  background:#172738!important;
}
html[data-gp-theme="dark"] main.shell #stationList > .gpUnderStation .gpStationAction{
  display:inline-flex!important;align-items:center;justify-content:center;
  flex:1 1 65px;min-width:0;min-height:32px;padding:6px 9px!important;
  border:1px solid #40576a!important;border-radius:9px!important;
  background:#23394c!important;color:#dfebf1!important;
  font:700 12px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-decoration:none!important;white-space:nowrap;
}
html[data-gp-theme="dark"] main.shell #stationList > .gpUnderStation .gpStationAction:hover{
  background:#294b42!important;border-color:#4a8267!important;
  color:#d9f4e6!important;
}
html[data-gp-theme="dark"] main.shell #stationList > .gpUnderStation .gpSaveAction[aria-pressed="true"]{
  color:#a9e7c5!important;border-color:#477965!important;
}
html[data-gp-theme="dark"] main.shell #stationList > #stationToggle{
  background:#22364a!important;border:1px solid #46617a!important;
  color:#eaf1f6!important;border-radius:12px!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel :is(.simpleFilters,
  .simpleFiltersBody,.simpleFilterGroup,.stationSearchPanel,
  .stationSearchResults,.stationBottomSearch){
  background:#182737!important;border-color:#364b60!important;
  color:#e8f0f5!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel :is(.simpleFilters>summary,
  .simpleFilters>summary span,.simpleFilterGroupHead,.simpleFilterCopy strong){
  color:#e4eff4!important;
}
html[data-gp-theme="dark"] main.shell #nearbyStationsPanel :is(.simpleFilters>summary small,
  .simpleFilterCopy small,.stationSearchBody small){
  color:#afc3d2!important;
}
/* The real interactive HERE map now supplies a native vector night layer.
   Only its container/chrome is styled here; do NOT filter the map/markers. */
html[data-gp-theme="dark"] main.shell #stationMap,
html[data-gp-theme="dark"] main.shell .stationMapCanvas{
  background:#172637!important;border-color:#385267!important;
}
html[data-gp-theme="dark"] main.shell .stationMap .H_ui,
html[data-gp-theme="dark"] main.shell .stationMap .H_ib{
  color:#e7eff4;
}
html[data-gp-theme="dark"] main.shell .stationMapSelection,
html[data-gp-theme="dark"] main.shell .mapTopPicks,
html[data-gp-theme="dark"] main.shell .mapTopPickRow{
  background:#192a3d!important;border:1px solid #3d566c!important;
  color:#eaf2f7!important;
}
html[data-gp-theme="dark"] main.shell :is(.mapTopPickRow strong,
  .mapTopPicksHead strong,#stationMapSelectionName,#stationMapSelectionPrice){
  color:#edf5fa!important;
}
html[data-gp-theme="dark"] main.shell :is(.mapTopPicksHead span,
  .mapTopPickRow small,.stationMapSelectionMeta,.stationMapHint,.gpTripMapCoverage){
  color:#aec4d2!important;
}
/* Quiet evergreen value proof; never display a blaring white/green receipt. */
html[data-gp-theme="dark"] main.shell #stationPriceValue{
  background:#1a352d!important;border:1px solid #3b6653!important;
  border-radius:13px!important;color:#e7f7ee!important;
}
html[data-gp-theme="dark"] main.shell #stationPriceValue :is(strong,b,span,p,div){
  color:#e0f3e8!important;
}
html[data-gp-theme="dark"] main.shell #stationPriceValue a{
  color:#b4ebcc!important;text-decoration-color:#8cc9ab;
}
/* Rest of the dashboard uses the same three surfaces as the station cards. */
html[data-gp-theme="dark"] main.shell :is(.savingsCard,.comparisonCard,
  .newsCard,.alertSignupCard,.feedbackCard,.utilityCard){
  background:#172637!important;color:#e8f0f5!important;
  border:1px solid #344b61!important;box-shadow:none!important;
  border-radius:14px!important;
}
html[data-gp-theme="dark"] main.shell :is(.savingsCard,.comparisonCard,
  .newsCard,.alertSignupCard,.feedbackCard) :is(h2,h3,.sectionTitle,
  .savingsHeadline,.alertTitle,.comparisonTitle,.savingsResultsTitle){
  color:#f0f6f8!important;
}
html[data-gp-theme="dark"] main.shell :is(.savingsCard,.comparisonCard,
  .newsCard,.alertSignupCard,.feedbackCard) :is(.simpleIntro,
  .alertCopy,.savingsPromise,.comparisonAssumptions,.gpPushHint,
  .gpPushStatus,.newsNote,.newsMeta,.fillPrivacyNote){
  color:#b7cad6!important;
}
html[data-gp-theme="dark"] main.shell :is(.newsCard .newsItem,
  .comparisonCard .comparisonItem,.marketBrief,.phoneStepGroup){
  background:#223448!important;border:1px solid #3a5269!important;
  color:#e0edf4!important;
}
html[data-gp-theme="dark"] main.shell :is(.newsCard .newsItem a,
  .newsCard .newsSources a,.alertSignupCard .gpPushHint a,
  .alertSignupCard .gpPushHelp summary,.savingsCard a){
  color:#b0e2c6!important;
}
html[data-gp-theme="dark"] main.shell :is(.quickSavingsField>span,
  .gpPushFields label,.gpPushTopics label,.alertSignupCard label){
  color:#d9e8ef!important;
}
html[data-gp-theme="dark"] main.shell :is(.quickSavingsField input,
  .gpPushSelect,.alertInput,.stationSearchControls input,
  .stationSearchForm input){
  background:#23374b!important;border:1px solid #4a6178!important;
  color:#f0f5f9!important;
}
html[data-gp-theme="dark"] main.shell :is(.savingsCta,.gpPushEnable){
  background:#276f51!important;border:1px solid #3b916b!important;
  color:#f0fcf4!important;box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell :is(.savingsCta,.gpPushEnable):disabled{
  background:#315947!important;color:#c0d8cb!important;opacity:.8;
}
html[data-gp-theme="dark"] main.shell :is(.gpPushInstall,.gpPushHelp,
  .gpPushCityRequest,.gpPushLocalOption){
  background:#1c2e42!important;border-color:#3b536a!important;
}
html[data-gp-theme="dark"] main.shell :is(.gpPushInstall p,.gpPushHelp p,
  .gpPushCityRequest p){color:#b7c9d3!important}
/* No bright reporting or station-selection dialogs. */
html[data-gp-theme="dark"] main.shell #missingStationPanel > summary{
  background:#20372f!important;color:#b0e1c5!important;
  border:1px solid #385f4d!important;
}
html[data-gp-theme="dark"] main.shell :is(.gpPriceReportDialog,.gpReviewDialog,
  .stationMapSelection,.stationSearchMatch){
  background:#1c2c3d!important;color:#ecf3f7!important;
  border-color:#3a5267!important;
}
/* Strong accessible focus without a neon halo. */
html[data-gp-theme="dark"] main.shell :is(button,a,input,select,textarea):focus-visible{
  outline:2px solid #a7ddc1!important;outline-offset:2px!important;
}
@media(max-width:420px){
  html[data-gp-theme="dark"] main.shell #stationList > a.station{
    padding:11px 10px 6px!important;
  }
  html[data-gp-theme="dark"] main.shell #stationList > .gpUnderStation{
    padding:4px 8px 8px!important;
  }
  html[data-gp-theme="dark"] main.shell #stationList > .gpUnderStation .gpStationAction{
    font-size:11px;min-height:32px;
  }
}
/* Preserve genuine semantic urgent/positive colors, map markers, the merchant
   coupon red and the existing data-dependent timing banner untouched. */

/* v5 — full dark-mode contrast repairs from actual 2026-11-08 preview
   screenshots. Overrides must be appended AFTER all legacy light-mode CSS. */

/* The map's top-three rank badges previously inherited pale white-on-white.
   Give the chips and every adjacent data label independent accessible colors. */
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapTopPickRank{
  background:#283e52!important;color:#f3f8fb!important;
  border:1px solid #4a657b!important;
  box-shadow:none!important;font-weight:900!important;
}
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapTopPickRow:first-child .mapTopPickRank{
  background:#285b46!important;color:#f1fff7!important;
  border-color:#4e9474!important;
}
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapTopPickMain strong,
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapTopPickPrice{
  color:#f0f7fa!important;
}
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapTopPickMain small,
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapPickTrustUnverified{
  color:#b7cad7!important;
}
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapPickTrustChecked{
  color:#b0e7c8!important;
}
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapPickCheck{
  background:#2c7957!important;color:#f9fffa!important;
}
html[data-gp-theme="dark"] main.shell #mapTopPicks #mapTopPicksToggle,
html[data-gp-theme="dark"] main.shell #mapTopPicks .mapTopPicksToggle{
  color:#acdcbf!important;
}

/* The floating founder overlay is outside main.shell, so it must be targeted
   independently from the page's main dark cards. */
html[data-gp-theme="dark"] body .founderHelpPanel{
  background:#1b2c3d!important;color:#f0f6f9!important;
  border:1px solid #486076!important;
  box-shadow:0 15px 42px rgba(0,0,0,.42)!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpTitle{
  color:#f0f7fa!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpCopy{
  color:#bfd0db!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpPrimary{
  display:flex;align-items:center;justify-content:center;
  min-height:42px;background:#286348!important;
  color:#f3fff8!important;border:1px solid #488467!important;
  border-radius:10px!important;text-decoration:none!important;
  font-weight:800!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpPrimary:hover{
  background:#337758!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpActions{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpActions a{
  background:#263b50!important;color:#c2e9d4!important;
  border:1px solid #4a6678!important;border-radius:10px!important;
  min-height:40px;text-decoration:none!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpActions a:hover{
  background:#305348!important;color:#eefdf4!important;
  border-color:#6a9c84!important;
}
html[data-gp-theme="dark"] body .founderHelpPanel .founderHelpClose{
  color:#ecf4f8!important;background:#283d50!important;
  border:1px solid #4b6578!important;border-radius:50%!important;
}
html[data-gp-theme="dark"] body .founderHelpLabel{
  color:#e8f3f8!important;background:#24364a!important;
  border-color:#435a70!important;
  box-shadow:0 3px 9px rgba(0,0,0,.25)!important;
}
html[data-gp-theme="dark"] body .founderHelpBtn{
  color:#f7fafc!important;background:#2a435b!important;
  box-shadow:0 6px 18px rgba(0,0,0,.32)!important;
}
html[data-gp-theme="dark"] body .founderHelpBtn:focus-visible,
html[data-gp-theme="dark"] body .founderHelpPanel :is(button,a):focus-visible{
  outline:2px solid #a3dec0!important;outline-offset:3px!important;
}

/* The second founder contact entry lives inside the main page, where legacy
   rules hard-coded dark text despite the card changing to navy. */
html[data-gp-theme="dark"] main.shell .utilityCard{
  background:#172738!important;border:1px solid #354d62!important;
  color:#f0f7fa!important;
}
html[data-gp-theme="dark"] main.shell .utilityCard .utilityIcon{
  background:#27433d!important;color:#e1f5e9!important;
  border:1px solid #436a57!important;
}
html[data-gp-theme="dark"] main.shell .utilityCard .bigSectionTitle{
  color:#edf5fa!important;
}
html[data-gp-theme="dark"] main.shell .utilityCard .simpleIntro{
  color:#bbcfdb!important;
}
html[data-gp-theme="dark"] main.shell .utilityCard .founderContactActions{
  display:flex!important;align-items:center;gap:7px!important;flex-wrap:wrap;
}
html[data-gp-theme="dark"] main.shell .utilityCard .utilityAction{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:34px;padding:7px 10px!important;
  background:#25433c!important;color:#bcedd1!important;
  border:1px solid #446e5b!important;border-radius:9px!important;
  box-shadow:none!important;font-weight:800!important;
  text-decoration:none!important;
}
html[data-gp-theme="dark"] main.shell .utilityCard .utilityAction:hover{
  background:#315446!important;color:#f4fff8!important;
}
@media(max-width:520px){
  html[data-gp-theme="dark"] main.shell .utilityCard{
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:9px 12px!important;
  }
  html[data-gp-theme="dark"] main.shell .utilityCard .founderContactActions{
    grid-column:2!important;
  }
  html[data-gp-theme="dark"] main.shell .utilityCard .utilityAction{
    min-width:74px;
  }
}

/* Extra low-contrast light-mode leaks found in page QA. Preserve the original
   semantic warning colors and the smog partner's own coupon styling. */
html[data-gp-theme="dark"] main.shell .feedbackCard .sectionTitle,
html[data-gp-theme="dark"] main.shell .comparisonCard .sectionTitle,
html[data-gp-theme="dark"] main.shell .newsCard .sectionTitle,
html[data-gp-theme="dark"] main.shell .savingsCard .savingsHeadline{
  color:#eff6fa!important;
}
html[data-gp-theme="dark"] main.shell .feedbackCard .vote{
  background:#253b4d!important;color:#d6ebe0!important;
  border:1px solid #4a6477!important;box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell .feedbackCard .vote:hover{
  background:#315548!important;color:#f4fff8!important;
}
html[data-gp-theme="dark"] main.shell .communityHeaderLink{
  color:#bce9d1!important;
}
html[data-gp-theme="dark"] main.shell :is(.locationFree,
  .stationCoverageNote,.stationTapHelp,.comparisonAssumptions,
  .gpPushStatus,.gpPushHint,.fillPrivacyNote,.newsNote){
  color:#b7cad6!important;
}
html[data-gp-theme="dark"] main.shell .stationMapError{
  background:#1b2b3d!important;color:#e0edf5!important;
}

/* v6 — static audit: remove lingering bright light-only controls without
   changing partner-voucher branding or data-driven red/green semantics. */
html[data-gp-theme="dark"] main.shell .simpleFilters .clubChip{
  background:#24394c!important;color:#d8e9f0!important;
  border:1px solid #4b6177!important;
}
html[data-gp-theme="dark"] main.shell .simpleFilters .clubChip.active,
html[data-gp-theme="dark"] main.shell .simpleFilters .clubChip[aria-pressed="true"]{
  background:#295443!important;color:#e0f5e9!important;
  border-color:#5c9676!important;
}
html[data-gp-theme="dark"] main.shell #tomorrowPrediction .timingWhy .plainWhy{
  background:transparent!important;color:#cfdee7!important;
  border-color:transparent!important;
}
html[data-gp-theme="dark"] main.shell #tomorrowPrediction .regionalMobileTrend:not(.hidden){
  background:#23384c!important;color:#e3edf4!important;
  border:1px solid #3d5970!important;
}
html[data-gp-theme="dark"] main.shell .stationMapSelectionReportPrice{
  background:#29433e!important;color:#c9f0d8!important;
  border:1px solid #507866!important;box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell .stationMapSelectionDirections{
  background:#28553f!important;color:#effef5!important;
  border:1px solid #4a8060!important;
}
html[data-gp-theme="dark"] main.shell .mapTopPicksEmpty,
html[data-gp-theme="dark"] main.shell .mapTopPicksHead span{
  color:#b7cad6!important;
}
html[data-gp-theme="dark"] main.shell .alertChannel,
html[data-gp-theme="dark"] main.shell .alertChannel.active{
  background:#25394d!important;color:#e8f1f6!important;
  border:1px solid #4a6278!important;
  box-shadow:none!important;
}
html[data-gp-theme="dark"] main.shell .alertChannel.active{
  background:#285342!important;border-color:#4f9271!important;
  color:#effcf5!important;
}
html[data-gp-theme="dark"] main.shell :is(.stationGradeNote,.qualityEmpty,
  .mapAreaLabel,.stationReportStatus,.gpPushHelp,.gpPushInstall){
  color:#d2e2eb!important;
}
html[data-gp-theme="dark"] main.shell :is(.stationMapSelection,
  .mapTopPicks,.simpleFilters,.stationSearchResults,.latestTimingResult) :is(a,button,summary):focus-visible{
  outline:2px solid #a9dfc4!important;outline-offset:2px!important;
}

/* The HERE SDK can return a white, tile-less map. In dark mode a separate
   OpenFreeMap vector canvas overlays ONLY the map background and markers. */
html[data-gp-theme="dark"] #stationMap{position:relative!important;background:#111e2d!important;}
#stationMap > .gpNightMapOverlay{position:absolute;inset:0;z-index:1000;background:#112031;overflow:hidden;}
#stationMap > .gpNightMapOverlay[hidden]{display:none!important;}
#stationMap > .gpNightMapFallback{display:flex;align-items:center;justify-content:center;padding:28px;text-align:center;color:#dae9f3;font-size:14px;}
#stationMap .gpNightPin{appearance:none;box-sizing:border-box;border:2px solid #b8cce0;background:#18283c;color:#f6f9fc;
  padding:5px 8px;border-radius:18px;min-height:31px;min-width:55px;text-align:center;white-space:nowrap;
  font:800 12px/18px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 2px 8px #0008;cursor:pointer;}
#stationMap .gpNightPin:hover{background:#263d56;border-color:#eef7ff;z-index:2;}
#stationMap .gpNightPin:focus-visible{outline:3px solid #91d6b2;outline-offset:3px;}
#stationMap .gpNightPin.gpNightBest{background:#176946;border-color:#a0e4bf;color:#fff;}
#stationMap .gpNightPin.gpNightUnpriced{background:#253548;color:#e0ecf4;border-color:#9cb0c3;font-size:11px;}
#stationMap .gpNightPin.gpNightHome{min-width:16px;width:16px;height:16px;min-height:16px;padding:0;border-radius:50%;background:#287bde;border:3px solid #fff;pointer-events:none;}
#stationMap .gpNightPin.gpNightEndpoint{min-width:28px;min-height:28px;width:28px;height:28px;padding:3px;border-radius:50%;background:#394e62;border-color:#e5eff5;}
#stationMap .gpNightMapOverlay .maplibregl-ctrl-attrib{background:#15283cdd;color:#c0d4e5;font-size:10px;}
#stationMap .gpNightMapOverlay .maplibregl-ctrl-attrib a{color:#c9e3f6;}
#stationMap .gpNightMapOverlay .maplibregl-ctrl-group{background:#1b3045;border:1px solid #48637b;}
#stationMap .gpNightMapOverlay .maplibregl-ctrl-group button{background:#e5edf3;}

/* Keep station details, founder, and contextual partner ABOVE the night map.
   The map's own high z-index is contained within this low stacking context. */
html[data-gp-theme="dark"] main.shell #stationMap{z-index:1!important;}
html[data-gp-theme="dark"] main.shell .stationMapCanvas > .stationMapSelection{z-index:60!important;}
html[data-gp-theme="dark"] main.shell .stationMapCanvas > .utilityDock{z-index:65!important;}
