/* TrailLab v313 · cierre de producto, tema e interfaz. */
:root{--tl-control-h:42px;--tl-card-radius:18px;--tl-modal-radius:22px}
.tl-icon{display:inline-block;width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em}
button,.btn-prim,.btn-ghost,input,select,textarea{font-family:var(--tl-font-body,'Archivo',sans-serif)}
.view-title,.m-title,.sh-title,.st-head h3{font-family:var(--tl-font-display,'Saira Condensed',sans-serif);letter-spacing:.025em}

/* Ventanas: un solo armazón, siempre dentro del viewport y con el scroll en el cuerpo. */
.overlay{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));overflow:auto;overscroll-behavior:contain}
.overlay>.modal,.overlay .modal{width:min(780px,calc(100vw - 18px));max-height:calc(100dvh - 18px);border-radius:var(--tl-modal-radius)!important}
.ts-pick-modal,.ts-detail-modal,.ts-editor-modal,.session-modal{max-height:calc(100dvh - 18px)!important}
.ts-pick-body,.ts-detail-body,.ts-form,.sd-body{scrollbar-gutter:stable;overscroll-behavior:contain}

/* Inicio: OVR dorado idéntico a Perfil y tipografía TrailLab restaurada. */
body:has(#view-resumen:not(.hidden)) #viewHeading{width:fit-content;padding:7px 44px 7px 16px!important;background:linear-gradient(135deg,var(--tl-accent-hi),var(--tl-accent))!important;color:#102007!important;clip-path:polygon(0 0,100% 0,calc(100% - 22px) 100%,0 100%);font-family:var(--tl-font-display,'Bebas Neue',sans-serif)!important;font-weight:400!important;line-height:1!important;letter-spacing:.045em!important}
#homeV231 .hm-hero{font-family:var(--tl-font-body,'Archivo',sans-serif)}
.hm-copy h2{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-family:var(--tl-font-display,'Bebas Neue',sans-serif);font-size:clamp(2.45rem,4.8vw,4rem);font-weight:400;line-height:.9;letter-spacing:.035em;text-transform:none}
.hm-copy h2>.hm-greeting{min-width:0}
.hm-ovr-badge{position:relative;overflow:hidden;display:grid;place-items:center;align-content:center;flex:0 0 118px;width:118px;height:126px;border:1px solid rgba(255,220,146,.62);background:linear-gradient(145deg,#f4cb77,#a96b1f);color:#241609;clip-path:polygon(13% 0,87% 0,100% 13%,100% 87%,87% 100%,13% 100%,0 87%,0 13%);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 16px 42px rgba(160,101,26,.3);text-align:center}
.hm-ovr-badge::after{content:"";position:absolute;inset:7px;border:1px solid rgba(65,38,8,.36);clip-path:inherit;pointer-events:none}
.hm-ovr-badge b{position:relative;z-index:1;color:#241609!important;font:400 var(--tl-type-hero, 40px)/.78 var(--tl-font-display,'Bebas Neue',sans-serif);text-shadow:0 1px rgba(255,255,255,.28)}
.hm-ovr-badge small{position:relative;z-index:1;margin-top:12px;color:#51300d;font:400 var(--tl-type-meta, 13px)/1 var(--tl-font-display,'Bebas Neue',sans-serif);letter-spacing:.14em;text-transform:uppercase}
#homeV231 :is(.hm-kicker,.hm-focus small){font-family:var(--tl-font-body,'Archivo',sans-serif);font-weight:900}
#homeV231 .hm-focus b{font-family:var(--tl-font-display,'Bebas Neue',sans-serif);font-size:var(--tl-type-section, 26px);font-weight:400;letter-spacing:.035em}
#homeV231 :is(.hm-title h3,.hm-week b,.hm-shortcuts button){font-family:var(--tl-font-body,'Archivo',sans-serif)}

/* Perfil de atleta: OVR y textos centrados como una sola identidad, no dos bloques sueltos. */
#view-atleta .athlete-profile-card .ovr-head{align-items:center;justify-content:center;text-align:center;grid-template-columns:auto minmax(0,620px)}
#view-atleta .athlete-profile-card .ovr-head .meta{align-self:center}
#view-atleta .athlete-profile-card .ovr-head .meta p{margin-inline:auto}
#view-atleta .athlete-profile-card .ovr-badge{display:grid;place-items:center;align-content:center;margin:0}

/* PRO v313: una propuesta, tres razones, dos precios. */
#view-pro #proBody{display:grid;gap:18px;max-width:1160px;margin-inline:auto}
.pro313-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px;align-items:center;padding:clamp(26px,5vw,58px);border:1px solid rgba(183,239,69,.22);border-radius:28px;background:radial-gradient(circle at 88% 8%,rgba(183,239,69,.22),transparent 34%),linear-gradient(135deg,#08291e,#061914);color:#eefbe9;box-shadow:0 26px 80px rgba(3,22,15,.26)}
.pro313-hero::after{content:"";position:absolute;right:-80px;bottom:-150px;width:320px;height:320px;border:1px solid rgba(183,239,69,.15);border-radius:50%;box-shadow:0 0 0 40px rgba(183,239,69,.035),0 0 0 86px rgba(183,239,69,.025)}
.pro313-copy,.pro313-score{position:relative;z-index:1}.pro313-kicker{display:block;color:#b7ef45;font-size:var(--tl-type-kicker, 12px);font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.pro313-copy h2{max-width:720px;margin:8px 0 12px;color:#f2f8f4;font-family:var(--tl-font-display);font-size:clamp(2.8rem,6vw,5.6rem);font-weight:500;line-height:.88;letter-spacing:.015em}.pro313-copy h2 b{color:#b7ef45;font-weight:500}
.pro313-copy>p{max-width:610px;margin:0;color:#a9c5b8;font-size:var(--tl-type-body, 15px);line-height:1.65}.pro313-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:24px}.pro313-cta button{min-height:48px;padding-inline:20px}.pro313-cta span{color:#9db7aa;font-size:var(--tl-type-kicker, 12px)}
.pro313-score{display:grid;place-items:center;align-content:center;min-height:230px;padding:24px;border:1px solid rgba(255,255,255,.11);border-radius:22px;background:rgba(0,0,0,.18);text-align:center;backdrop-filter:blur(10px)}.pro313-score>span{color:#b7ef45;font-size:var(--tl-type-kicker, 12px);font-weight:900;letter-spacing:.18em}.pro313-score>b{font:500 var(--tl-type-hero, 40px)/.95 var(--tl-font-display);color:#fff}.pro313-score>small{color:#a9c5b8;font-size:var(--tl-type-kicker, 12px);text-transform:uppercase;letter-spacing:.05em}.pro313-score>i{margin-top:15px;padding-top:14px;border-top:1px solid rgba(255,255,255,.11);color:#d7e6de;font-size:var(--tl-type-kicker, 12px);font-style:normal}
.pro313-promises{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pro313-promises article{display:grid;grid-template-columns:42px 1fr;gap:13px;padding:20px;border:1px solid var(--tl-border);border-radius:18px;background:var(--tl-panel);box-shadow:var(--tl-shadow-sm)}.pro313-promises>.tl-icon,.pro313-promises article>svg{width:30px;height:30px;padding:6px;border-radius:10px;background:rgba(166,232,44,.1);color:var(--lime)}.pro313-promises span{color:var(--lime);font-size:var(--tl-type-kicker, 12px);font-weight:900;letter-spacing:.11em}.pro313-promises h3{margin:4px 0 6px;color:var(--tl-text);font-size:var(--tl-type-body, 15px)}.pro313-promises p{margin:0;color:var(--tl-text-3);font-size:var(--tl-type-kicker, 12px);line-height:1.5}
.pro313-buy{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr);gap:24px;align-items:center;padding:28px;border:1px solid var(--tl-border);border-radius:22px;background:linear-gradient(145deg,var(--tl-panel-raised),var(--tl-panel));box-shadow:var(--tl-shadow-sm)}.pro313-buy h3,.pro313-compare h3{margin:5px 0 7px;font-family:var(--tl-font-display);font-size:var(--tl-type-section, 26px)}.pro313-buy p{margin:0;color:var(--tl-text-3);font-size:var(--tl-type-kicker, 12px)}.pro313-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pro313-plans button{position:relative;display:grid;min-height:150px;padding:19px;border:1px solid var(--tl-border);border-radius:17px;background:var(--tl-panel);color:var(--tl-text);text-align:left;cursor:pointer}.pro313-plans button.best{border-color:var(--lime);background:color-mix(in srgb,var(--lime) 7%,var(--tl-panel))}.pro313-plans small{color:var(--lime);font-size:var(--tl-type-kicker, 12px);font-weight:900;text-transform:uppercase;letter-spacing:.1em}.pro313-plans b{margin-top:14px;font:500 var(--tl-type-hero, 40px)/1 var(--tl-font-display)}.pro313-plans span{color:var(--tl-text-3);font-size:var(--tl-type-kicker, 12px)}.pro313-plans em{align-self:end;margin-top:13px;color:var(--tl-text-2);font-size:var(--tl-type-kicker, 12px);font-style:normal}
.pro313-compare{padding:24px;border:1px solid var(--tl-border);border-radius:22px;background:var(--tl-panel)}.pro313-compare>div:first-child{text-align:center}.pro313-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:17px}.pro313-cols article{padding:18px;border:1px solid var(--tl-border);border-radius:16px;background:var(--tl-panel-soft)}.pro313-cols article>b{font-size:var(--tl-type-meta, 13px)}.pro313-cols ul{display:grid;gap:8px;margin:13px 0 0;padding:13px 0 0;border-top:1px solid var(--tl-border);list-style:none}.pro313-cols li{position:relative;padding-left:19px;color:var(--tl-text-2);font-size:var(--tl-type-kicker, 12px)}.pro313-cols li::before{content:"";position:absolute;left:0;top:.35em;width:8px;height:8px;border:2px solid var(--lime);border-radius:50%}
.pro313-fine{margin:0 0 10px;color:var(--tl-text-3);font-size:var(--tl-type-kicker, 12px);line-height:1.55;text-align:center}
#productV231{display:none!important}

/* Atlas: ilustración procedural consistente para países sin retrato raster. */
.europe-summit-art,.europe-detail-art{position:relative;overflow:hidden}.europe-art-fallback{position:absolute;inset:0;display:grid;place-items:end center;background:radial-gradient(circle at 76% 18%,rgba(255,255,255,.75),transparent 18%),linear-gradient(155deg,#dceec8,#f2ead7 58%,#b9cda8)}
.europe-art-fallback svg{width:100%;height:100%;fill:#345f49;filter:drop-shadow(0 -8px 18px rgba(24,63,43,.16))}.europe-art-fallback svg path+path{fill:#80aa5a}.europe-art-fallback i{position:absolute;right:12px;bottom:10px;color:rgba(16,44,29,.55);font:900 var(--tl-type-kicker, 12px) var(--tl-font-body);font-style:normal;letter-spacing:.12em}.europe-summit-art>img,.europe-detail-art>img{position:relative;z-index:1}.europe-detail-art>.europe-art-fallback{z-index:0}.europe-detail-art>span:last-child{z-index:2}
.europe-atlas-v234[data-release="v313"] .tl-band-h{min-height:58px}.europe-atlas-v234[data-release="v313"] .europe-summit-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}

/* El Refugio: tarjetas con identidad, estado y acciones claramente separadas. */
#view-manada .section-head{align-items:end;padding:18px 2px 10px;border-bottom:1px solid var(--tl-border)}
#view-manada .mn-club-v295{border-radius:20px;overflow:hidden;background:var(--tl-panel);box-shadow:0 14px 38px rgba(6,30,21,.09)}
#view-manada .mn-banner{min-height:142px;display:grid;align-content:center;clip-path:polygon(0 0,100% 0,100% 84%,50% 100%,0 84%)}
#view-manada .mn-club-kpis article,#view-manada .mn-comp-kpis article{background:var(--tl-panel-soft)}
#view-manada .mn-comp-flip{border-radius:20px}.mn-comp-v295{position:relative;overflow:hidden}.mn-comp-v295::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--c)}
#view-manada .mn-comp-v295{min-height:230px;padding:20px 22px}.mn-comp-count{font-size:var(--tl-type-card-title, 16px)!important}.mn-state{border-radius:999px;padding:5px 9px!important}
#view-manada .mn-actions button{min-height:39px;border:1px solid var(--tl-border);background:var(--tl-panel);color:var(--tl-text)}
#view-manada .mn-actions .btn-prim{border-color:transparent;background:var(--lime);color:#102007}

/* Tema claro: las tarjetas corrientes son claras; solo héroes, mapas y gráficas son islas oscuras. */
html[data-theme="light"] [data-visual-system="v221"] :is(.card,.st-card,.estado-block,.ef-card):not(.tl-chart-card):not(.elev-v232),
html[data-theme="light"] :is(.ach-metrics-v221,.achm-cats article,.summit-passport,.summit-atlas-v223,.europe-atlas-v234,.pro313-compare,.pro313-buy,.pro313-promises article,.mn-club-v295,.mn-comp-v295,.fd-rail-card,.feed-v280 .fd-item){
  --ink:#102019;--muted:#61736c;--surface:#fff;--surface2:#f1f6f2;--line:rgba(26,65,52,.14);--tl-text:#102019;--tl-text-1:#102019;--tl-text-2:#50625b;--tl-text-3:#71817b;--tl-panel:#fff;--tl-panel-raised:#fff;--tl-panel-soft:#f2f6f3;--tl-canvas:#edf3ef;--tl-border:rgba(26,65,52,.14);--tl-border-strong:rgba(26,65,52,.26);--lime:#4e7c00;--lime2:#6ea300;color:#102019!important;background:#fff!important;
}
html[data-theme="light"] [data-visual-system="v221"] :is(.card,.st-card,.estado-block,.ef-card):not(.tl-chart-card):not(.elev-v232) :is(h1,h2,h3,h4),
html[data-theme="light"] :is(.ach-metrics-v221,.achm-cats article,.summit-passport,.summit-atlas-v223,.europe-atlas-v234,.pro313-compare,.pro313-buy,.pro313-promises article,.mn-club-v295,.mn-comp-v295,.fd-rail-card,.feed-v280 .fd-item) :is(h1,h2,h3,h4,b,strong){color:#102019!important}
html[data-theme="light"] :is(.pro313-hero,.hm-hero,.mn-hero,.tl-chart-card,.tl-chart-frame,.elev-v232,.ep-tooltip,.route-detail-map,.mn-comp-map){--ink:#eefaf5;--muted:#aac2b8;--tl-text:#eefaf5;--tl-text-1:#eefaf5;--tl-text-2:#d2e4dd;--tl-text-3:#a6beb5;color:#eefaf5}
html[data-theme="light"] .pro313-hero :is(h1,h2,h3,b,strong),html[data-theme="light"] .hm-hero :is(h1,h2,h3,b,strong){color:#eefaf5!important}
html[data-theme="light"] .pro313-score>b{color:#fff!important}
html[data-theme="light"] .pro313-plans button{background:#fff;color:#102019}
html[data-theme="light"] .pro313-cols article{background:#f2f6f3}
html[data-theme="light"] .session-modal,html[data-theme="light"] .ts-detail-modal,html[data-theme="light"] .ts-pick-modal{--tl-text:#102019;--tl-text-1:#102019;--tl-text-2:#50625b;--tl-text-3:#71817b;--tl-panel:#fff;--tl-panel-raised:#fff;--tl-panel-soft:#f2f6f3;--tl-canvas:#edf3ef;--tl-border:rgba(26,65,52,.14);--tl-border-strong:rgba(26,65,52,.26);color:#102019;background:#fff!important}
html[data-theme="light"] .session-modal .sd-body{background:linear-gradient(180deg,#fff,#f3f7f4)}
html[data-theme="light"] .ts-detail-actions{background:rgba(255,255,255,.94)}
html[data-theme="light"] .europe-summit-state{color:#33483c!important}

/* Gráficas en claro: paleta accesible y separada del verde de la interfaz. */
html[data-theme="light"] :is(.rz-card,.st-card,.estado-block):has(.st-svg){--lime:#1759c7;--lime2:#1759c7;--orange:#c2410c;--teal:#00796b;--amber:#7a5200;--line:rgba(33,72,63,.24);--muted:#49645b}
html[data-theme="light"] :is(.rz-card,.st-card,.estado-block):has(.st-svg) .st-svg{filter:saturate(1.08) contrast(1.08)}

@media(max-width:850px){.pro313-hero{grid-template-columns:1fr}.pro313-score{min-height:170px}.pro313-promises{grid-template-columns:1fr}.pro313-buy{grid-template-columns:1fr}.pro313-cols{grid-template-columns:1fr}}
@media(max-width:620px){#view-atleta .athlete-profile-card .ovr-head{grid-template-columns:1fr}.hm-copy h2{align-items:flex-start}.hm-ovr-badge{flex-basis:92px;width:92px;height:98px}.hm-ovr-badge b{font-size:var(--tl-type-hero, 40px)}.hm-ovr-badge small{margin-top:8px;font-size:var(--tl-type-kicker, 12px)}.pro313-plans{grid-template-columns:1fr}.pro313-hero{padding:25px 20px}.pro313-copy h2{font-size:var(--tl-type-hero, 40px)}.pro313-score{min-height:145px}.pro313-score>b{font-size:var(--tl-type-hero, 40px)}}
@media(prefers-reduced-motion:reduce){.pro313-plans button,.europe-summit-card,.mn-comp-fi{transition:none!important}}


/* v316.3 · contraste comercial Pro en tema claro. */
html[data-theme="light"] #view-pro .pro313-plans button strong{background:#e7efe9!important;color:#102019!important}
html[data-theme="light"] #view-pro .pro313-plans button.best strong{background:linear-gradient(110deg,var(--pro-lime),#d5ff7a)!important;color:#07140d!important}
html[data-theme="light"] #view-pro .pro313-cols article{color:#102019!important}
html[data-theme="light"] #view-pro .pro313-cols article>span{color:#607168!important}
html[data-theme="light"] #view-pro .pro313-cols article>b{color:#102019!important}
html[data-theme="light"] #view-pro .pro313-cols article li{color:#485b51!important}
html[data-theme="light"] #view-pro .pro313-cols article.free{background:linear-gradient(150deg,#fff,#edf3ef)!important}
html[data-theme="light"] #view-pro .pro313-cols article.premium{background:radial-gradient(circle at 100% 0,rgba(186,255,53,.28),transparent 45%),linear-gradient(150deg,#fff,#eff9df)!important}

/* v350 · resumen posterior a cualquier actividad: isla oscura con contraste propio. */
[data-theme="light"] .tlr-card,
[data-theme="light"] .tlr-medal,
[data-theme="light"] .tlr-medal.is-record,
[data-theme="light"] .tlr-metrics div,
[data-theme="light"] .tlr-times div,
[data-theme="light"] .tlr-actions,
[data-theme="light"] .tlr-actions button {
  --ink: #eaf7f2;
  --muted: rgba(234, 247, 242, .72);
  --tl-text: #eaf7f2;
  --tl-text-2: rgba(234, 247, 242, .78);
  --tl-text-3: rgba(234, 247, 242, .56);
  --tl-border: rgba(255, 255, 255, .13);
  --lime: #a6e82c;
  color: var(--ink);
}

/* v381 · navegación premium: contraparte clara del encabezado oscuro. */
html[data-theme="light"] body .topbar{
  border-bottom-color:rgba(23,119,101,.2)!important;
  background:linear-gradient(180deg,rgba(250,253,252,.98),rgba(239,248,245,.98))!important;
  box-shadow:0 10px 30px rgba(22,67,58,.1)!important;
}
