/* TrailLab v231 · Inicio, producto Pro y ayuda */
.hm-shell{display:grid;gap:12px;margin-bottom:18px}.hm-hero{display:grid;grid-template-columns:1.35fr .65fr;gap:12px;padding:24px;border-radius:22px;border:1px solid rgba(166,232,44,.25);background:radial-gradient(circle at 86% 10%,rgba(166,232,44,.19),transparent 34%),linear-gradient(145deg,#102c23,#071c16);color:#eefbe9;box-shadow:0 18px 55px rgba(0,0,0,.22)}.hm-kicker,.pd-kicker,.hp-kicker{font-size:.61rem;color:#a6e82c;font-weight:900;letter-spacing:.17em}.hm-copy h2{font-size:clamp(1.7rem,4vw,2.8rem);margin:5px 0}.hm-copy p{color:#a9c7b7;margin:0}.hm-actions{display:flex;gap:7px;margin-top:18px}.hm-actions button{padding:9px 13px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#a6e82c;color:#07160f;font-weight:900}.hm-actions button+button{background:rgba(255,255,255,.06);color:#eefbe9}.hm-focus{display:grid;align-content:center;gap:5px;padding:17px;border-radius:16px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.09)}.hm-focus small{font-size:.58rem;letter-spacing:.12em;color:#a6e82c}.hm-focus b{font-size:1.25rem}.hm-focus span{font-size:.72rem;color:#a9c7b7}.hm-focus em{font-style:normal;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);font-size:.68rem}.hm-week{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.hm-week article{display:grid;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.hm-week span,.hm-week small{font-size:.62rem;color:var(--muted)}.hm-week b{font-size:1.35rem}.hm-lower{display:grid;grid-template-columns:1.05fr .95fr;gap:10px}.hm-lower>article{padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.hm-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.hm-title h3{margin:0;font-size:.9rem}.hm-title button{border:0;background:none;color:var(--lime);font-weight:800;font-size:.67rem}.hm-recent{display:grid;gap:6px}.hm-recent>button{display:flex;justify-content:space-between;gap:10px;border:0;border-radius:10px;padding:9px;background:rgba(255,255,255,.035);color:var(--ink);text-align:left}.hm-recent span{display:grid}.hm-recent small{color:var(--muted);font-size:.62rem}.hm-recent em{font-style:normal;font-size:.66rem;color:var(--muted);text-align:right}.hm-empty{font-size:.72rem;color:var(--muted)}.hm-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:7px}.hm-shortcuts button{display:grid;text-align:left;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface2);color:var(--ink);font-weight:800}.hm-shortcuts small{font-weight:400;color:var(--muted);font-size:.6rem}.pd-shell{display:grid;gap:14px;margin:16px 0}.pd-head{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:20px;border-radius:18px;background:linear-gradient(145deg,#102c23,#071c16);color:#eefbe9}.pd-head h2{margin:4px 0}.pd-head p{font-size:.72rem;color:#a9c7b7;margin:0}.pd-beta{padding:7px 10px;border-radius:999px;background:#a6e82c;color:#07160f;font-size:.62rem;font-weight:900;white-space:nowrap}.pd-products{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.pd-products article{padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.pd-products article.roadmap{border-style:dashed;opacity:.78}.pd-products span{font-size:.57rem;color:var(--muted);text-transform:uppercase}.pd-products h3{font-size:.82rem;margin:4px 0}.pd-products p{font-size:.65rem;color:var(--muted);margin:0 0 8px}.pd-products b{font-size:.6rem;color:var(--lime)}.pd-products .roadmap b{color:var(--amber)}.hp-shell{display:grid;gap:13px;margin:16px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--surface),var(--surface2))}.hp-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.hp-head h2{margin:3px 0}.hp-head button{border:0;border-radius:10px;background:var(--lime);color:#07160f;padding:9px 12px;font-weight:900}.hp-faq{display:grid;grid-template-columns:1fr 1fr;gap:7px}.hp-faq details{padding:10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.025)}.hp-faq summary{cursor:pointer;font-size:.72rem;font-weight:800}.hp-faq p{margin:8px 0 0;color:var(--muted);font-size:.68rem}.hp-links{display:flex;gap:6px;flex-wrap:wrap}.hp-links button{border:1px solid var(--line);border-radius:999px;background:var(--surface2);color:var(--ink);padding:7px 10px;font-weight:800;font-size:.65rem}.hp-manual{margin:12px 0;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:12px}.hp-manual>summary{cursor:pointer;color:var(--lime);font-weight:900}.hp-manual>div{padding-top:12px}
@media(max-width:920px){.pd-products{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.hm-hero,.hm-lower{grid-template-columns:1fr}.hm-week{grid-template-columns:repeat(2,1fr)}.pd-head{align-items:flex-start;flex-direction:column}.hp-faq{grid-template-columns:1fr}}@media(max-width:420px){.hm-week,.hm-shortcuts,.pd-products{grid-template-columns:1fr}.hm-actions{flex-direction:column}}

/* Login v231 · acceso claro y responsive sin alterar Supabase Auth */
.gate.gate-v231{display:grid;grid-template-columns:minmax(280px,560px) minmax(320px,430px);gap:clamp(24px,5vw,78px);align-content:center;padding:clamp(24px,6vw,80px);background:linear-gradient(90deg,rgba(3,14,8,.72),rgba(3,14,8,.82) 48%,rgba(3,14,8,.94)),radial-gradient(900px 520px at 8% 20%,rgba(166,232,44,.16),transparent 65%),url("login-trail-runners-v232.webp") center/cover no-repeat fixed,#07150c}
.gate-story-v231{color:#eef9e9;max-width:590px}.gate-story-v231>span,.gate-kicker-v231{font:800 .68rem 'Archivo',sans-serif;letter-spacing:.16em;color:#a6e82c}
.gate-story-v231 h1{font:800 clamp(2.6rem,5.6vw,5.8rem)/.92 'Archivo',sans-serif!important;text-transform:none!important;letter-spacing:-.07em!important;margin:18px 0 22px}.gate-story-v231 h1 b{color:#a6e82c}
.gate-story-v231>p{color:#b8cbb4;max-width:54ch;font-size:1rem}.gate-benefits-v231{display:grid;gap:10px;margin-top:28px}.gate-benefits-v231 article{display:grid;padding:13px 15px;border:1px solid rgba(166,232,44,.18);border-radius:13px;background:rgba(255,255,255,.035)}.gate-benefits-v231 small{color:#9fb39b;margin-top:2px}
.gate.gate-v231 .gate-card{max-width:none;background:rgba(14,35,22,.9);border-color:rgba(166,232,44,.24);color:#eef9e9;backdrop-filter:blur(18px);box-shadow:0 28px 90px rgba(0,0,0,.42)}
.gate-kicker-v231{margin-bottom:18px}.gate.gate-v231 .gate-tag,.gate.gate-v231 .gate-sub,.gate.gate-v231 .gate-swap,.gate.gate-v231 .gate-foot{color:#9fb39b}.gate.gate-v231 input{background:rgba(3,14,8,.72);color:#fff;border-color:rgba(166,232,44,.2)}
.gate-sync-v231{margin-top:14px;border:1px solid rgba(166,232,44,.16);border-radius:11px;padding:9px 11px;color:#9fb39b;font-size:.76rem}.gate-sync-v231 summary{cursor:pointer;color:#cbe3c6;font-weight:700}.gate-sync-v231 p{margin-top:7px;line-height:1.55}
.fitness-explain-v231{margin:0 0 14px;border:1px solid rgba(166,232,44,.3);border-radius:14px;background:rgba(166,232,44,.06);overflow:hidden}.fitness-explain-v231 summary{cursor:pointer;padding:13px 15px;font-weight:800}.fitness-explain-v231>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 12px}.fitness-explain-v231 article{background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:12px}.fitness-explain-v231 p{color:var(--muted);font-size:.78rem;margin-top:4px}
@media(max-width:820px){.gate.gate-v231{grid-template-columns:1fr;padding:24px}.gate-story-v231{display:none}.gate.gate-v231 .gate-card{max-width:430px;margin:auto}.fitness-explain-v231>div{grid-template-columns:1fr}}

/* Al cerrar sesión no debe quedar la aplicación anterior visible ni interactiva detrás. */
body.gated{overflow:hidden}
body.gated .app{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
body.gated #authGate{isolation:isolate;opacity:1!important}

/* Leaflet usa capas internas hasta z-index 1000: los diálogos deben quedar siempre por encima. */
.overlay{z-index:10000!important}.overlay .modal{position:relative;z-index:1}.appdlg-ov{z-index:11000!important}
body:has(.overlay.open) .leaflet-control,body:has(.appdlg-ov.open) .leaflet-control{pointer-events:none}
