/*
 * Boti phone layout.
 *
 * This stylesheet is deliberately inert above 700px. The approved laptop and
 * desktop composition remains owned by the page styles; only the narrow-screen
 * rendering is reshaped here.
 */
@media (max-width:700px){
  html{-webkit-text-size-adjust:100%}
  body{overflow-x:hidden}
  button,a,input,select,textarea{touch-action:manipulation}

  /* Shared app header: the compact burger keeps every destination reachable. */
  .v5-app .ap-header{align-items:center}
  .v5-app .ap-actions{min-width:0;flex:1;justify-content:flex-end;gap:10px;margin-left:12px;overflow:visible}
  .v5-app .section-tour-launcher{display:grid!important;width:28px;height:28px;flex:0 0 28px}
  .v5-app .results-nav,.v5-app .index-nav,.v5-app .education-nav,.v5-app .profile-nav,.v5-app .workspace-site-nav,.v5-app .legal-nav{display:none!important}
  .v5-app .ap-burger{display:grid!important;width:42px;height:40px;flex:0 0 42px;gap:6px;padding:6px 2px}
  .v5-app .ap-burger span{height:1.5px}
  .v5-app .results-nav::-webkit-scrollbar,.v5-app .index-nav::-webkit-scrollbar,.v5-app .education-nav::-webkit-scrollbar,.v5-app .profile-nav::-webkit-scrollbar,.v5-app .workspace-site-nav::-webkit-scrollbar{display:none}
  .v5-app .results-nav a,.v5-app .index-nav a,.v5-app .education-nav a,.v5-app .profile-nav a,.v5-app .workspace-site-nav a{display:block!important;flex:0 0 auto;font-size:14px;scroll-snap-align:start}

  /* Public home. */
  .v5-home .page-section:not(.hero) .section-inner{width:100%;zoom:1}
  .v5-home .hero{min-height:680px;background-position:calc(100% + 28vw) center,center!important}
  .v5-home .hero-inner{min-height:680px}
  .v5-home .hero-title{top:58px;left:18px;font-size:35vw}
  .v5-home .hero-tagline{top:181px;left:22px;z-index:11;max-width:calc(100vw - 44px);padding:4px 7px 5px;background:rgba(241,233,218,.88);font-size:clamp(17px,calc(5.45vw - 2px),20px);letter-spacing:-.035em}
  .v5-home .hero-tagline span{max-width:100%;overflow:hidden}
  .v5-home .hero-metrics{right:16px;bottom:13px;left:16px}
  .v5-home .hero-metric{min-width:0;min-height:112px;padding:9px 7px 8px}
  .v5-home .hero-metric+.hero-metric{padding-left:12px}
  .v5-home .hero-metric strong{font-size:clamp(21px,6.2vw,25px);white-space:nowrap}
  .v5-home .hero-metric span{font-size:10px}
  .v5-home .hero-metric img{width:21px}
  .v5-home .section-inner{padding:54px 18px 72px}
  .v5-home .preview-head{margin-bottom:26px}
  .v5-home .preview-title{font-size:clamp(32px,9vw,38px)}
  .v5-home .preview-copy,.v5-home .eyebrow{font-size:18px}
  .v5-home .preview-rule{margin:13px 0 15px}
  .v5-home .feed-wrap{margin-right:-18px;margin-left:-18px}
  .v5-home .feed-track{gap:16px;padding-right:28px;padding-left:28px;scroll-padding-inline:28px;-webkit-mask-image:none;mask-image:none}
  .v5-home .feed-card{flex-basis:min(83vw,324px);min-height:268px;scroll-snap-align:start}
  .v5-home .feed-cta,.v5-home .results-cta{margin-top:16px}
  .v5-home .results-grid,.v5-home .result-board,.v5-home .result-board-head,.v5-home .result-row>*{min-width:0}
  .v5-home .result-board{padding:18px 14px}
  .v5-home .result-board-head{flex-wrap:wrap}
  .v5-home .result-board h3,.v5-home .result-row small{overflow-wrap:anywhere}
  .v5-home .education-cards{gap:14px}
  .v5-home .section-arrow{right:8px;bottom:12px}

  /* Live Feed shared chrome. */
  .single-page .feed-mobile-header{position:fixed;z-index:200;top:0;right:0;left:0;display:flex;height:68px;align-items:center;padding:14px 18px;background:rgba(241,233,218,.97)}
  /* La regla base de este pseudo-elemento (position, content, height, background) vive
     dentro de @media(min-width:701px) en feed.html, o sea SOLO escritorio. En el movil
     esta linea ajustaba las sangrias de un pseudo-elemento que nunca se creaba, asi que
     la unica raya visible bajo la cabecera era el borde superior del marquee, a ancho
     completo. Se define entero aqui para que /feed se vea como /results. */
  .single-page .feed-mobile-header:after{position:absolute;right:18px;bottom:0;left:18px;height:1px;content:"";background:rgba(8,40,73,.72)}
  .single-page .feed-mobile-header>.ap-logo{font-size:39px!important;line-height:.7;transform:none!important}
  .single-page .stage>.topbar{display:none!important}
  .single-page .section-nav{display:none!important}
  .single-page .section-nav::-webkit-scrollbar{display:none}
  .single-page .section-nav a{display:block;flex:0 0 auto;font-size:14px;scroll-snap-align:start}
  .single-page .feed-burger{position:fixed;z-index:205;top:14px;right:18px;display:grid;width:42px;height:40px;align-content:center;gap:6px;padding:6px 2px;border:0;background:transparent;cursor:pointer}
  .single-page .feed-burger span{display:block;width:100%;height:1.5px;background:var(--gold)}
  .single-page .feed-burger span:nth-child(2){width:82%;justify-self:end}.single-page .feed-burger span:nth-child(3){width:64%;justify-self:end}
  .single-page .feed-mobile-menu{position:fixed;z-index:210;inset:0;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:72px 22px 28px;background:url("/static/dashboard/v5/assets/paper-texture.png") repeat,var(--paper);background:image-set(url("/static/dashboard/v5/assets/paper-texture.webp") type("image/webp"),url("/static/dashboard/v5/assets/paper-texture.png") type("image/png")) repeat,var(--paper);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .22s ease,visibility .22s ease,transform .22s ease}
  .single-page .feed-mobile-menu.open{opacity:1;visibility:visible;transform:none}
  .single-page .feed-menu-close{position:absolute;top:14px;right:18px;display:grid;width:46px;height:46px;align-content:center;gap:7px;padding:0;border:0;background:transparent;color:var(--navy);cursor:pointer}
  .single-page .feed-menu-close:before,.single-page .feed-menu-close:after{display:block;width:100%;height:2px;content:"";background:currentColor}.single-page .feed-menu-close:before{transform:translateY(4.5px) rotate(45deg)}.single-page .feed-menu-close:after{transform:translateY(-4.5px) rotate(-45deg)}
  .single-page .feed-menu-list{width:100%;margin:auto 0}
  .single-page .feed-menu-list a{display:flex;min-height:63px;align-items:center;justify-content:space-between;gap:16px;padding:10px 0 12px;border-bottom:1px solid rgba(8,40,73,.28);color:var(--navy);font-family:"Boti Display",Georgia,serif;font-size:clamp(30px,11vw,46px);font-weight:700;font-variation-settings:"opsz" 144,"SOFT" 68,"WONK" 0;letter-spacing:-.04em;line-height:.9;text-decoration:none;text-transform:lowercase}
  .single-page .feed-menu-list a b{min-width:1.6em;color:var(--gold);font-family:"Boti Serif",Georgia,serif;font-size:.55em;font-weight:400;text-align:right}.single-page .feed-menu-list a.is-active{color:var(--gold)}.single-page .feed-menu-list a.is-active b{color:var(--navy)}
  .v5-app .ap-menu{align-items:flex-start;padding:72px 22px 28px;background-color:var(--paper);background-image:url("/static/dashboard/v5/assets/paper-texture.png");background-image:image-set(url("/static/dashboard/v5/assets/paper-texture.webp") type("image/webp"),url("/static/dashboard/v5/assets/paper-texture.png") type("image/png"));background-repeat:repeat}
  .v5-app .ap-menu__close{color:var(--navy)}
  .v5-app .ap-menu__list{width:100%;margin:auto 0}
  .v5-app .ap-menu__list a{min-height:63px;gap:16px;padding:10px 0 12px;border-color:rgba(8,40,73,.28);font-family:"Boti Display",Georgia,serif;font-size:clamp(30px,11vw,46px);font-weight:700;font-variation-settings:"opsz" 144,"SOFT" 68,"WONK" 0;letter-spacing:-.04em;line-height:.9;text-transform:lowercase}
  .v5-app .ap-menu__list a .ap-menu__number{color:var(--gold);font-family:"Boti Serif",Georgia,serif;font-size:.55em;font-weight:400}.v5-app .ap-menu__list a.is-active .ap-menu__number{color:var(--navy)}
  body.feed-menu-open{overflow:hidden}
  body.feed-menu-open>.feed-tour-launcher,body.feed-menu-open>.boti-language-switch{visibility:hidden!important;opacity:0;pointer-events:none}
  /* El marquee arranca justo donde termina la cabecera, asi que su borde superior caia
     exactamente sobre la linea del topbar — pero a ancho completo, tocando los bordes.
     Se quita ese borde (la linea del topbar ya separa ambas zonas) y el inferior pasa a
     un pseudo-elemento con la misma sangria de 18px. */
  .single-page .market-marquee,.single-page .overview .market-marquee{top:68px;height:34px;border-top:0;border-bottom:0}
  .single-page .market-marquee:after{position:absolute;z-index:2;right:18px;bottom:0;left:18px;height:1px;content:"";background:rgba(8,40,73,.38)}
  .single-page .market-marquee-group{gap:28px;padding-right:28px}
  .single-page .market-tick{gap:7px;font-size:13px}
  .single-page .market-tick img{width:15px;height:15px;min-width:15px;min-height:15px}

  /* Live Feed overview: readable sessions and distinct touch cards. */
  .single-page .overview{height:auto!important;min-height:1220px;aspect-ratio:auto}
  .single-page .overview .big-title{top:126px;left:18px;font-size:22vw}
  .single-page .overview .descriptor{top:221px;left:18px;width:calc(100vw - 36px);padding-bottom:11px;font-size:18px;line-height:1.32}
  .single-page .overview .sessions{top:304px;right:18px;left:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:12px}
  .single-page .overview .market{display:grid;min-width:0;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto auto;align-items:center;gap:2px 8px;padding:9px 8px;border-top:1px solid rgba(8,40,73,.24);border-bottom:1px solid rgba(8,40,73,.24);background:rgba(241,233,218,.48)}
  .single-page .overview .market .flag-image{grid-row:1/4}
  .single-page .overview .market b:first-of-type{white-space:nowrap}
  .single-page .overview .market i{display:none}
  .single-page .overview .market b[data-session-label],.single-page .overview .market>span{grid-column:2;white-space:nowrap}
  .single-page .overview .market b[data-session-label]{display:inline;margin-right:4px}
  .single-page .overview .pulse{top:390px;left:18px;width:calc(100vw - 36px);height:238px;padding:17px 18px}
  .single-page .overview .navcards{top:651px;left:18px;width:calc(100vw - 36px);gap:14px}
  .single-page .overview .navcard{height:150px;grid-template-columns:58px 1px minmax(0,1fr) 30px;padding:16px 13px;column-gap:10px}
  .single-page .overview .navcard .nav-icon{width:45px;height:45px}
  .single-page .overview .navcard .card-display{font-size:24px}
  .single-page .overview .navcard .card-subtitle{font-size:14px}
  .single-page .overview .says{right:18px;bottom:30px;left:18px;padding-top:12px}
  .single-page .overview .says h3{font-size:14px}
  .single-page .overview .says blockquote p{font-size:15px;line-height:1.45}
  .single-page .overview .says.has-brief blockquote{padding-right:0}
  .single-page .overview .brief-read{position:relative;top:auto;right:auto;bottom:auto;display:inline-flex;align-items:center;margin:15px 0 0 24px;padding:8px 11px;font-size:11px}

  /* Keep the phone overview in document flow. The desktop composition uses
     fixed coordinates, but translated copy and long exchange hours need to be
     allowed to increase their own height without colliding with the next card. */
  .single-page .overview{display:grid;height:auto!important;min-height:0!important;grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "descriptor" "sessions" "pulse" "navcards" "says";row-gap:22px;padding:126px 18px 30px}
  .single-page .overview .big-title,.single-page .overview .descriptor,.single-page .overview .sessions,.single-page .overview .pulse,.single-page .overview .navcards,.single-page .overview .says{position:static!important;inset:auto!important;width:100%;margin:0}
  .single-page .overview .big-title{width:max-content!important;max-width:100%;grid-area:title}
  html[lang="es"] body.single-page .overview .big-title{font-size:14vw}
  .single-page .overview .descriptor{grid-area:descriptor;padding-bottom:11px}
  .single-page .overview .sessions{grid-area:sessions}
  .single-page .overview .pulse{grid-area:pulse}
  .single-page .overview .navcards{grid-area:navcards}
  .single-page .overview .says{grid-area:says}

  /* Alert terminal: filters, alert triggers and chart become one clean flow. */
  .single-page .alerts-page{display:block;height:auto!important;min-height:0!important;aspect-ratio:auto;overflow:visible;padding:22px 18px 0}
  .single-page .alerts-page>.tabs,.single-page .alerts-page>.subfilters,.single-page .alerts-page>.tpsl-legend,.single-page .alerts-page>.filters,.single-page .alerts-page>.alert-index,.single-page .alerts-page>.detail,.single-page .alerts-page>.locked-note{position:static!important;inset:auto!important;width:100%;height:auto;min-height:0}
  .single-page .alerts-page>.tabs{display:flex;gap:22px;padding:0 0 11px;overflow-x:auto;overscroll-behavior-x:contain;border-bottom:1px solid var(--navy);font-size:14px;scroll-padding-inline:1px;scroll-snap-type:x proximity;scrollbar-width:none}
  .single-page .alerts-page>.tabs::-webkit-scrollbar{display:none}
  .single-page .alerts-page>.tabs button{min-height:38px;flex:0 0 auto;scroll-snap-align:start}
  .single-page .alerts-page>.tabs-cue{position:absolute;z-index:24;top:27px;display:grid;width:25px;height:25px;place-items:center;padding:0;border:1px solid rgba(8,40,73,.32);border-radius:50%;background:rgba(241,233,218,.94);color:var(--gold);font-size:16px;line-height:1;box-shadow:0 2px 7px rgba(8,40,73,.14)}
  .single-page .alerts-page>.tabs-cue[hidden]{display:none}.single-page .alerts-page>.tabs-cue-left{left:8px}.single-page .alerts-page>.tabs-cue-right{right:8px}
  .single-page .alerts-page>.subfilters,.single-page .alerts-page>.tpsl-legend{display:flex;margin:14px 0 0;gap:8px;padding:0;overflow-x:auto;scrollbar-width:none}
  .single-page .alerts-page>.subfilters[hidden],.single-page .alerts-page>.tpsl-legend[hidden]{display:none}
  .single-page .subfilter,.single-page .tpsl-pill{min-height:40px;flex:0 0 auto;padding:9px 13px;font-size:13px}
  /* The pills beside it are 40px tall; this button kept its 27px desktop size, so it
     was the smallest target on the row and sat visually off-centre against them —
     measured at 25x27 in a headless run. The circle grows a little and an invisible
     pseudo-element carries the rest of the touch area: a 44px gold disc would shout
     louder than the pills it annotates. Needs the .tpsl-help position:relative that
     the desktop rule already sets. */
  .single-page .tpsl-help{width:30px;height:30px;flex:0 0 auto;font-size:15px}
  .single-page .tpsl-help:after{position:absolute;top:50%;left:50%;width:44px;height:44px;content:"";transform:translate(-50%,-50%)}
  .single-page .alerts-page>.tpsl-legend{position:relative!important;overflow:visible!important;flex-wrap:wrap}
  .single-page .tpsl-copy{top:calc(100% + 8px);right:0;left:0;width:auto;padding:13px 14px;font-size:14px}
  .single-page .alerts-page>.filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:15px;padding:0 0 15px;border-bottom:1px solid rgba(8,40,73,.3);font-size:14px}
  .single-page .filter-field{width:100%;min-width:0;height:46px;border-radius:23px}
  .single-page .filter-field>b{padding:0 10px;font-size:11px}
  .single-page .multi-trigger{height:44px;min-height:44px;padding-right:30px;padding-left:10px;border-radius:0 23px 23px 0;font-size:14px}
  .single-page .multi-trigger:after{right:13px;width:7px;height:7px}
  .single-page .multi-menu{top:calc(100% + 7px);left:0;width:min(318px,calc(100vw - 36px));max-height:52vh;padding:7px;border-radius:8px;box-shadow:0 12px 28px rgba(8,40,73,.25)}
  .single-page .multi-option{min-height:43px;grid-template-columns:22px 1fr;gap:9px;padding:8px 9px}
  .single-page .multi-option input{width:18px;height:18px}
  .single-page .filters .count{grid-column:1/-1;justify-self:start;margin:0;padding:7px 11px;font-size:12px}
  .single-page .alerts-page>.alert-index{display:flex;align-items:flex-start;gap:12px;margin:0 -18px;padding:16px 18px 18px;overflow-x:auto;overflow-y:hidden;border:0;scroll-padding-inline:18px;scroll-snap-type:x mandatory;scrollbar-width:none}
  .single-page .alerts-page>.alert-index::-webkit-scrollbar{display:none}
  /* Señales de que el carrusel de alertas continua a los lados. Mismo lenguaje visual
     que las de las pestañas, centradas sobre la altura de las tarjetas. */
  /* Sin `top`: con position:absolute y top:auto el navegador usa la posicion estatica,
     o sea justo donde arranca el carrusel en el flujo. Asi las flechas lo acompañan
     aunque los subfiltros o la leyenda TP/SL aparezcan o desaparezcan, que es lo que
     haria fragil cualquier desplazamiento fijo desde arriba. */
  .single-page .alerts-page>.index-cue{position:absolute;z-index:26;display:grid;width:32px;height:32px;margin-top:74px;place-items:center;padding:0;border:1px solid rgba(8,40,73,.32);border-radius:50%;background:rgba(241,233,218,.94);color:var(--gold);font-size:18px;line-height:1;box-shadow:0 2px 9px rgba(8,40,73,.18)}
  .single-page .alerts-page>.index-cue[hidden]{display:none}
  .single-page .alerts-page>.index-cue-left{left:4px}
  .single-page .alerts-page>.index-cue-right{right:4px}
  .single-page .alert-index>.index-row,.single-page .alert-index>.batch-card{flex:0 0 min(84vw,326px);scroll-snap-align:start}
  .single-page .alert-index>.index-row{min-height:132px;padding:15px 14px 43px;border:1px solid rgba(8,40,73,.28);background:rgba(241,233,218,.68)}
  .single-page .alert-index>.index-row.active{border-color:var(--gold);border-left:5px solid var(--gold);background:rgba(210,164,46,.1)}
  .single-page .row-top{font-size:11px}
  .single-page .index-row h3{margin:11px 0 8px;font-size:18px}
  .single-page .row-meta{font-size:13px}
  .single-page .row-footer{right:12px;bottom:11px;left:12px}
  .single-page .batch-card{height:300px;max-height:300px;margin:0;padding:0 12px 12px;overflow-y:auto;overscroll-behavior:contain;border:1px solid rgba(8,40,73,.25);scrollbar-width:thin;scrollbar-color:rgba(8,40,73,.35) transparent}
  .single-page .batch-head{position:sticky;z-index:2;top:0;gap:8px;margin:0 -12px;padding:13px 12px 10px;border-bottom:1px solid rgba(8,40,73,.15);background:rgba(241,233,218,.96);font-size:12px}
  .single-page .batch-head time{font-size:11px}
  .single-page .batch-group{display:block;margin-top:10px}
  .single-page .batch-tf{display:block;margin-bottom:6px;font-size:11px}
  .single-page .batch-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .single-page .index-row.batch-chip{display:grid;width:100%;min-width:0;min-height:35px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:6px 8px;overflow:hidden;font-size:12px;text-align:left}
  .single-page .index-row.batch-chip .chip-sym{overflow:hidden;text-overflow:ellipsis}.single-page .index-row.batch-chip .chip-opp{display:none}.single-page .index-row.batch-chip .chip-px{font-size:10px;white-space:nowrap}
  .single-page .alerts-page>.detail{display:block;margin-top:5px;padding:18px 0 30px;overflow:visible;border-top:1px solid rgba(8,40,73,.38)}
  .single-page .detail-head{display:grid;height:auto;min-height:116px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:7px 11px;padding:0 0 13px}
  .single-page .detail-head .eth-logo{width:44px;height:44px;font-size:23px}
  .single-page .pair h2{display:block;font-size:29px;line-height:1.02}
  .single-page .pair strong{display:inline-block;margin:5px 0 0;font-size:13px}
  .single-page .pair-meta{gap:6px;margin-top:6px;font-size:12px}
  .single-page .detail-head .note{grid-column:1/-1;display:flex;align-items:center;padding:9px 10px;border:1px solid rgba(8,40,73,.2);font-size:12px;line-height:1.35}
  .single-page .detail-head .info{width:25px;height:25px;flex:0 0 auto}
  .single-page .detail-copy{position:relative;z-index:2;min-height:42px;align-items:center;margin:13px 0;font-size:15px}
  .single-page .alert-help{z-index:3;width:36px;height:36px;flex:0 0 36px;font-size:16px;touch-action:manipulation;pointer-events:auto}
  .single-page .alert-description-pop{position:relative!important;z-index:45;top:auto!important;right:auto!important;left:auto!important;width:100%;margin:-3px 0 16px;padding:13px 14px;font-size:14px}
  .single-page .chart{width:100%;height:470px;min-height:470px;grid-template-rows:minmax(250px,1fr) 11px var(--rsi-h,120px);padding:7px;padding-top:51px}
  .single-page .badges{top:9px;right:64px;left:9px;gap:6px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .single-page .badges::-webkit-scrollbar{display:none}
  .single-page .badge{min-height:31px;flex:0 0 auto;padding:7px 8px;font-size:10px}
  .single-page .chart-expand{top:9px;right:9px;min-height:31px;padding:6px 8px;font-size:10px}
  .single-page .alerts-page>.locked-note{margin:0 0 18px;font-size:12px;line-height:1.4}
  .single-page .alerts-page>.footer{position:static!important;width:calc(100% + 36px);height:64px;margin-left:-18px;padding:0 18px;font-size:11px}

  /* Market Pulse and US Indicators reports: replace desktop coordinates with flow. */
  body.single-page.report-open{overflow-x:hidden;overflow-y:auto}
  .single-page .report-view{width:100vw;height:auto!important;min-height:100svh;aspect-ratio:auto;padding:128px 18px 0;overflow:visible}
  .single-page .report-view .report-title,.single-page .report-view .report-subtitle,.single-page .market-report .sentiment,.single-page .market-report .signals,.single-page .market-report .takeaway,.single-page .market-report .market-stats,.single-page .indicators-report .macro-kpis,.single-page .indicators-report .inflation-plate,.single-page .indicators-report .macro-aside{position:static!important;inset:auto!important;width:100%;height:auto!important}
  .single-page .report-view .report-title{margin:0;padding:0 .08em .16em 0;font-size:clamp(48px,15vw,62px);line-height:.78;white-space:normal;transform:scaleX(1.04)}
  .single-page .indicators-report .report-title{font-size:clamp(45px,13.2vw,56px)}
  .single-page .report-view .report-subtitle{margin:15px 0 0;padding:0 0 12px;border-bottom:1px solid rgba(8,40,73,.43);font-size:17px;line-height:1.35}
  .single-page .report-back{position:fixed;top:111px;right:16px;z-index:80;width:44px;height:44px;min-width:44px;min-height:44px;background:rgba(241,233,218,.94);font-size:28px}
  .single-page .market-report .sentiment{margin-top:30px}
  .single-page .report-view h3{margin:0 0 9px;font-size:13px;letter-spacing:.1em}
  .single-page .sentiment-plate{height:auto;min-height:270px;padding:20px}
  .single-page .sentiment-plate>strong{font-size:48px}
  .single-page .sentiment-plate>p{font-size:15px;line-height:1.45}
  .single-page .sentiment-plate label{font-size:12px}
  .single-page .sentiment-plate b{font-size:48px}
  .single-page .sentiment-plate span{font-size:18px}
  .single-page .rainbow-meter{height:8px!important;margin-top:9px}
  .single-page .rainbow-meter i{top:-6px;width:20px;height:20px}
  .single-page .sentiment-plate small span{font-size:11px}
  .single-page .market-report .signals{margin-top:28px}
  .single-page .signals ul{border-top:1px solid var(--line)}
  .single-page .signals li{display:grid;height:auto;min-height:56px;grid-template-columns:34px 1fr;padding:10px 12px;font-size:25px}
  .single-page .market-report .signals li span{font-size:15px;line-height:1.35}
  .single-page .market-report .takeaway{margin-top:28px;padding:18px;border:1px solid rgba(8,40,73,.28);background:rgba(241,233,218,.67)}
  .single-page .market-report .takeaway>p{min-height:0;margin:0;padding:0;background:none;box-shadow:none;font-size:16px;line-height:1.55}
  .single-page .takeaway blockquote{margin:0 0 4px;font-size:42px}
  .single-page .market-report .takeaway h4{font-size:16px}
  .single-page .market-report .takeaway dl{font-size:15px}
  .single-page .market-report .market-stats{display:grid;grid-template-columns:1fr;gap:12px;margin:30px 0 24px;border-top:1px solid var(--line)}
  .single-page .market-report .market-stats article{display:grid!important;min-height:0;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:18px 14px;border-right:0;border-bottom:1px solid var(--line)}
  .single-page .market-report .market-stats-head{grid-column:1/-1;grid-template-columns:48px 1fr;gap:10px}
  .single-page .market-report .market-stats-head>img{width:44px;height:44px}
  .single-page .market-report .market-stats-head h4{font-size:19px}
  .single-page .market-report .market-stats-head small{font-size:12px}
  .single-page .market-report .market-stats article>strong{font-size:35px}
  .single-page .market-report .market-stats article>em{align-self:end;font-size:16px;text-align:right}
  .single-page .market-report .market-card-note,.single-page .market-report .market-card-desc,.single-page .market-report .market-card-cycle,.single-page .market-report .market-periods{grid-column:1/-1}
  .single-page .market-report .market-card-note,.single-page .market-report .market-card-desc{min-height:0;font-size:14px;line-height:1.45}
  .single-page .market-report .market-card-cycle{font-size:14px}
  .single-page .market-report .market-period{min-height:42px;font-size:13px}
  .single-page .report-view>.footer{position:static!important;width:calc(100% + 36px);height:64px;margin-left:-18px;padding:0 18px;font-size:11px}

  .single-page .indicators-report .macro-kpis{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .single-page .indicators-report .macro-kpi{min-height:154px;padding:15px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .single-page .indicators-report .macro-kpi:nth-child(even){border-right:0}
  .single-page .indicators-report .macro-kpis h3{min-height:32px;margin:0;font-size:12px;line-height:1.25}
  .single-page .indicators-report .macro-kpis strong{display:block;font-size:35px}
  .single-page .indicators-report .macro-kpis>article>span{display:inline-block;margin:3px 0 0;font-size:15px}
  .single-page .indicators-report .macro-kpis p{margin:8px 0 0;font-size:12px;line-height:1.35}
  .single-page .indicators-report .macro-kpis p b{font-size:13px}
  .single-page .indicators-report .macro-kpis p em{float:none;display:inline-flex;min-height:25px;align-items:center;margin:6px 0 0 7px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;line-height:1}
  .single-page .indicators-report .inflation-plate{display:block;margin-top:28px;padding:18px 15px}
  .single-page .indicators-report .inflation-plate>header{display:block;min-height:0;padding-bottom:14px}
  .single-page .indicators-report .inflation-plate h2{font-size:42px}
  .single-page .inflation-latest{display:block;padding:7px 0 0;font-size:11px}
  .single-page .indicators-report .inflation-plate header p{margin:9px 0 0;font-size:15px;line-height:1.35}
  .single-page .indicators-report .release-grid{display:grid;height:auto;min-height:270px;grid-auto-columns:min(84vw,275px);grid-auto-flow:column;grid-template-columns:none;gap:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
  .single-page .indicators-report .release-grid::-webkit-scrollbar{display:none}
  .single-page .release-card{min-height:270px;padding:17px 13px;scroll-snap-align:start}
  .single-page .release-card h4,.single-page .release-card.is-next h4{font-size:17px}
  .single-page .release-metrics{min-height:205px;gap:8px}
  .single-page .release-metric label{min-height:30px;font-size:10px}
  .single-page .release-bar-track,.single-page .release-pending{height:126px}
  .single-page .release-bar-track i{width:52px}
  .single-page .release-metric strong{font-size:18px}
  .single-page .release-metric.btc-move i{width:48px;height:5px}
  .single-page .indicators-report .inflation-plate>footer{display:block;min-height:0;margin-top:16px;padding-top:14px;font-size:14px;line-height:1.45}
  .single-page .inflation-summary-copy>b{font-size:15px}
  .single-page .inflation-dot-matrix{display:none}
  .single-page .indicators-report .macro-aside{display:grid;grid-template-columns:1fr;margin:28px 0 24px;padding:0;border-left:0;border-top:1px solid var(--line)}
  .single-page .indicators-report .macro-aside section{min-height:0;padding:20px 4px}
  .single-page .indicators-report .macro-aside small{font-size:11px}
  .single-page .indicators-report .macro-aside h2{margin:9px 0 4px;font-size:24px}
  .single-page .indicators-report .macro-aside strong{font-size:36px}
  .single-page .indicators-report .macro-aside p,.single-page .indicators-report .macro-aside #impactSummary p{font-size:15px;line-height:1.5}

  /* Results: swipable report tabs/tables and a full-screen chart on phones. */
  .v5-app .results-tabs{width:100%;gap:20px;overflow-x:auto;overscroll-behavior-x:contain;padding-right:28px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 0,#000 92%,transparent)}
  .v5-app .results-tabs::-webkit-scrollbar{display:none}
  .v5-app .results-tabs .rtab{flex:0 0 auto;font-size:26px;scroll-snap-align:start}
  .v5-app .rs-filters,.v5-app .rs-outcomes{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
  .v5-app .rs-filters::-webkit-scrollbar,.v5-app .rs-outcomes::-webkit-scrollbar{display:none}
  .v5-app .table-scroll,.v5-app .pw-scroll{position:relative;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .v5-app .results-table th:first-child,.v5-app .results-table td:first-child,.v5-app .pw-table th:first-child,.v5-app .pw-table td:first-child{position:sticky;left:0;z-index:2;background:#f1e9da}
  .v5-app .rchart-modal{padding:0}
  .v5-app .rchart-panel{width:100%;height:100svh;max-height:none;padding:13px 11px;border:0}
  .v5-app .rchart-head{position:sticky;top:0;z-index:5;padding-bottom:8px;background:#0a1420}
  .v5-app .rchart-title strong{font-size:22px}
  .v5-app .rchart-close{width:44px;height:44px}
  .v5-app .rchart-tools,.v5-app .chart-legend{gap:6px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .v5-app .rchart-measure-toggle,.v5-app .rchart-measure-readout,.v5-app .chart-legend .lg{min-height:34px;flex:0 0 auto;padding:8px;font-size:11px}
  .v5-app #rChartPrice{height:52svh}
  .v5-app #rChartRsi{height:21svh}

  /* Index, education, profile and personal workspace refinements. */
  .v5-app .index-dashboard,.v5-app .history-card{min-width:0}
  html[lang="es"] body.v5-app .results-title{font-size:20vw}
  body.v5-app .workspace-title{font-size:clamp(38px,12.5vw,56px);white-space:normal}
  .v5-app .range-buttons{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}
  .v5-app .range-buttons button,.v5-app .range-buttons a{min-width:44px;min-height:44px}
  .v5-app .education-content,.v5-app .profile-detail,.v5-app .workspace-body{overflow:hidden}
  .v5-app .education-cta a,.v5-app .membership-actions a,.v5-app .pw-btn{min-height:46px}
  .v5-app .workspace-menu{gap:22px;padding-right:35px;overscroll-behavior-x:contain;scroll-padding-inline:1px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 91%,transparent);mask-image:linear-gradient(90deg,#000 0,#000 91%,transparent)}
  .v5-app .workspace-menu::-webkit-scrollbar{display:none}
  .v5-app .workspace-menu a{display:flex;min-height:44px;align-items:center;scroll-snap-align:start}
  .v5-app .pw-input{min-height:48px}
  .v5-app .pw-actions{flex-wrap:wrap}
  .v5-app .pw-actions .pw-btn{justify-content:center}
  .v5-app .wl-tab,.v5-app .nt-tab,.v5-app .nt-chip{min-height:42px}
}

@media (max-width:420px){
  .v5-app .ap-actions{margin-left:13px}
  .v5-app .results-nav,.v5-app .index-nav,.v5-app .education-nav,.v5-app .profile-nav,.v5-app .workspace-site-nav{max-width:245px;gap:16px!important}
  .v5-home .hero-title{font-size:36vw}
  .v5-home .hero-tagline{top:176px;font-size:17px}
  .single-page .overview .big-title{font-size:21.5vw}
  .single-page .overview .descriptor{top:214px}
  .single-page .overview .sessions{top:300px;grid-template-columns:1fr}
  .single-page .overview .pulse{top:384px}
  .single-page .overview .navcards{top:645px}
  .single-page .alerts-page>.filters{grid-template-columns:1fr}
  .single-page .filters .count{grid-column:1}
  .single-page .indicators-report .macro-kpis{grid-template-columns:1fr}
  .single-page .indicators-report .macro-kpi{min-height:132px;border-right:0}
}

/* Approved phone artwork. Desktop keeps each page's existing composition.
   The home hero and US Indicators report intentionally retain their own art. */
@media (max-width:700px){
  body.v5-home main>.page-section:not(.hero),
  body.v5-feed .stage:not(.indicators-report),
  body.v5-app,
  body.v5-app .ap-bg{
    background-color:#f1e9da!important;
    background-image:url("/static/v5%20templates/deliverables/assets/mobile_generalBack.png")!important;
    background-image:image-set(url("/static/v5%20templates/deliverables/assets/mobile_generalBack.webp") type("image/webp"),url("/static/v5%20templates/deliverables/assets/mobile_generalBack.png") type("image/png"))!important;
    background-position:center bottom!important;
    background-repeat:no-repeat!important;
    background-size:cover!important;
  }
}
