#aleo-chat-button {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #111827;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    cursor: pointer;
    z-index: 9999;
    box-shadow: 0 10px 30px rgba(0,0,0,.35);
}

#aleo-chat-window {
    position: fixed;
    right: 22px;
    bottom: 90px;
    width: 360px;
    max-width: calc(100vw - 30px);
    height: 520px;
    background: #ffffff;
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(0,0,0,.35);
    display: none;
    flex-direction: column;
    overflow: hidden;
    z-index: 9999;
    border: 1px solid #e5e7eb;
}

#aleo-chat-header {
    background: #111827;
    color: #ffffff;
    padding: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#aleo-chat-close {
    font-size: 24px;
    cursor: pointer;
}

#aleo-chat-messages {
    flex: 1;
    padding: 16px;
    overflow-y: auto;
    background: #f9fafb;
}

.bot-msg,
.user-msg {
    max-width: 85%;
    padding: 11px 13px;
    border-radius: 14px;
    margin-bottom: 10px;
    font-size: 14px;
    line-height: 1.45;
}

.bot-msg {
    background: #ffffff;
    color: #111827;
    border: 1px solid #e5e7eb;
}

.user-msg {
    background: #111827;
    color: #ffffff;
    margin-left: auto;
}

#aleo-chat-quick {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding: 10px;
    background: #ffffff;
    border-top: 1px solid #e5e7eb;
}

#aleo-chat-quick button {
    border: 1px solid #111827;
    background: #ffffff;
    color: #111827;
    padding: 7px 9px;
    border-radius: 999px;
    font-size: 12px;
    cursor: pointer;
}

#aleo-chat-input-area {
    display: flex;
    padding: 12px;
    gap: 8px;
    background: #ffffff;
    border-top: 1px solid #e5e7eb;
}

#aleo-chat-input {
    flex: 1;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    padding: 10px;
}

#aleo-chat-send {
    background: #111827;
    color: #ffffff;
    border: none;
    border-radius: 10px;
    padding: 0 14px;
    cursor: pointer;
}

.typing {
    opacity: .65;
}:root {
    --bg: #0b0f14;
    --panel: #111821;
    --panel-2: #172231;
    --text: #eef3f8;
    --muted: #9caaba;
    --line: rgba(255,255,255,.10);
    --accent: #d4af37;
    --accent-2: #f5d47b;
    --danger: #ff637d;
    --success: #77df8b;
    --shadow: 0 24px 70px rgba(0,0,0,.35);
    --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: radial-gradient(circle at top left, rgba(245,212,123,.12), transparent 35%), var(--bg);
    color: var(--text);
    line-height: 1.6;
}

a { color: inherit; text-decoration: none; }
p { color: var(--muted); margin: 0 0 1rem; }
h1, h2, h3, h4 { margin: 0 0 .7rem; line-height: 1.08; }
h1 { font-size: clamp(2.2rem, 6vw, 5rem); letter-spacing: -0.06em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.6rem); letter-spacing: -0.04em; }
h3 { font-size: 1.15rem; }
code { color: var(--accent); }

.container { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.narrow { width: min(760px, calc(100% - 32px)); }
.section { padding: 72px 0; }
.muted { background: rgba(255,255,255,.035); border-block: 1px solid var(--line); }
.top-space { margin-top: 42px; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(18px);
    background: rgba(11,15,20,.78);
    border-bottom: 1px solid var(--line);
}
.nav-wrap { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; letter-spacing: -0.03em; }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--accent); color: #091014; font-size: .8rem; box-shadow: 0 10px 30px rgba(212,175,55,.18); }
.nav { display: flex; align-items: center; gap: 18px; color: var(--muted); }
.nav a:hover { color: var(--text); }
.nav-toggle { display: none; border: 1px solid var(--line); background: var(--panel); color: var(--text); border-radius: 12px; padding: 8px 12px; font-size: 1.2rem; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 999px;
    padding: 12px 18px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--accent); color: #071014; box-shadow: 0 16px 40px rgba(212,175,55,.18); }
.btn-secondary { background: rgba(255,255,255,.08); color: var(--text); border: 1px solid var(--line); }
.btn-ghost { background: transparent; color: var(--text); border: 1px solid var(--line); }
.btn-lg { padding: 15px 24px; font-size: 1rem; }
.full { width: 100%; }

.hero { padding: 92px 0 82px; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 54px; align-items: center; }
.hero-copy p { font-size: 1.15rem; max-width: 680px; }
.eyebrow { display: inline-flex; margin-bottom: 16px; color: var(--accent); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 900; }
.hero-actions, .result-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 28px; }
.hero-card { border: 1px solid var(--line); background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.03)); border-radius: 36px; padding: 24px; box-shadow: var(--shadow); }
.metric-card.dark { padding: 28px; border-radius: 28px; background: linear-gradient(145deg, #182230, #0e151f); margin-bottom: 18px; border: 1px solid var(--line); }
.metric-card span, .stats-grid span { color: var(--muted); font-size: .85rem; }
.metric-card strong { display: block; font-size: 3rem; letter-spacing: -0.06em; }
.metric-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.metric-grid div { padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.045); }
.metric-grid strong { display: block; }
.metric-grid span { color: var(--muted); font-size: .88rem; }

.section-head { margin-bottom: 26px; max-width: 720px; }
.cards-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.card {
    border: 1px solid var(--line);
    background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
    border-radius: var(--radius);
    padding: 24px;
    box-shadow: 0 18px 55px rgba(0,0,0,.18);
}
.cta-box { display: flex; align-items: center; justify-content: space-between; gap: 24px; }

.page-hero { padding-bottom: 24px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.form-card { display: grid; gap: 16px; }
.form-card.wide { max-width: 100%; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.form-grid.three { grid-template-columns: repeat(3, 1fr); }
label { display: grid; gap: 8px; color: var(--muted); font-weight: 700; font-size: .92rem; }
input, select, textarea {
    width: 100%;
    border: 1px solid var(--line);
    background: rgba(0,0,0,.25);
    color: var(--text);
    border-radius: 16px;
    padding: 13px 14px;
    outline: none;
    font: inherit;
}
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: rgba(212,175,55,.7); box-shadow: 0 0 0 4px rgba(212,175,55,.08); }
.hint, .form-note { color: var(--muted); font-size: .92rem; }
.form-note a { color: var(--accent); font-weight: 800; }

.alert { border-radius: 16px; padding: 14px 16px; margin-bottom: 12px; }
.alert-success { background: rgba(119,223,139,.12); border: 1px solid rgba(119,223,139,.3); color: #d9ffe0; }
.alert-error { background: rgba(255,99,125,.12); border: 1px solid rgba(255,99,125,.3); color: #ffdce3; }
.flash-area { padding-top: 16px; }
.flash-area:empty { padding: 0; }

.result-card { min-height: 430px; }
.stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 18px 0 24px; }
.stats-grid.big { grid-template-columns: repeat(5, 1fr); }
.stats-grid div { padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: rgba(0,0,0,.18); }
.stats-grid strong { display: block; font-size: 1.6rem; letter-spacing: -0.04em; }
.stats-grid em { display: block; color: var(--muted); font-style: normal; font-size: .86rem; }
.macro-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 24px; }
.macro-row span { border: 1px solid var(--line); background: rgba(255,255,255,.05); padding: 10px 12px; border-radius: 999px; color: var(--muted); }
.macro-row strong { color: var(--text); }
.macro-row.compact { margin-bottom: 14px; }
.check-list { color: var(--muted); }
.check-list li { margin: .3rem 0; }

.food-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.checks-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.check { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.035); cursor: pointer; }
.check input { width: auto; accent-color: var(--accent); }
.check.danger input { accent-color: var(--danger); }
.check span { color: var(--text); font-weight: 700; }

.meal-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.meal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.meal-head span { color: var(--accent); font-weight: 800; font-size: .9rem; }
.meal-card ul, .saved-plan ul { margin: 0; padding-left: 18px; color: var(--muted); }
.workout-list { display: grid; gap: 18px; }
.workout-title span { color: var(--accent); font-weight: 900; text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; }
.table-wrap { overflow-x: auto; border-radius: 16px; border: 1px solid var(--line); margin: 14px 0; }
table { width: 100%; border-collapse: collapse; min-width: 640px; }
th, td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; }
th { color: var(--accent); font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; }
td { color: var(--muted); }
tr:last-child td { border-bottom: 0; }

.auth-grid { display: grid; grid-template-columns: 1fr 430px; gap: 44px; align-items: center; }
.auth-copy { max-width: 620px; }
.profile-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.plans-grid { display: grid; gap: 18px; }
.saved-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.pill { display: inline-flex; background: var(--accent); color: #071014; font-weight: 900; padding: 8px 12px; border-radius: 999px; white-space: nowrap; }
details { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 14px; }
summary { cursor: pointer; font-weight: 900; color: var(--accent); }
.empty-state { text-align: center; padding: 42px; }

.site-footer { border-top: 1px solid var(--line); padding: 36px 0; background: rgba(0,0,0,.18); }
.footer-grid { display: flex; justify-content: space-between; gap: 24px; color: var(--muted); }
.footer-grid a { display: inline-block; margin-left: 16px; color: var(--text); }

@media (max-width: 980px) {
    .hero-grid, .grid-2, .auth-grid { grid-template-columns: 1fr; }
    .cards-3, .meal-grid { grid-template-columns: repeat(2, 1fr); }
    .stats-grid.big { grid-template-columns: repeat(2, 1fr); }
    .form-grid.three { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
    .nav-toggle { display: inline-flex; }
    .nav { display: none; position: absolute; top: 74px; left: 16px; right: 16px; flex-direction: column; align-items: stretch; padding: 16px; background: #0f1722; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
    .nav.open { display: flex; }
    .nav a { padding: 10px 8px; }
    .section { padding: 48px 0; }
    .hero { padding: 60px 0; }
    .form-grid, .form-grid.three, .food-columns, .cards-3, .meal-grid, .profile-summary { grid-template-columns: 1fr; }
    .metric-grid, .stats-grid, .stats-grid.big { grid-template-columns: 1fr; }
    .cta-box, .footer-grid { flex-direction: column; align-items: flex-start; }
    .footer-grid a { margin: 0 16px 0 0; }
    .checks-grid { grid-template-columns: 1fr; }
}

@media print {
    .site-header, .site-footer, .result-actions { display: none !important; }
    body { background: white; color: black; }
    .card, .hero-card { box-shadow: none; border: 1px solid #ddd; background: white; color: black; }
    p, td, .hint, .muted, .macro-row span { color: #333; }
}

/* Premium/Admin ampliación */
.account-badge{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:.45rem .7rem;font-size:.78rem;color:#f5d47b;background:rgba(245,212,123,.08)}
.pricing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:stretch}.price-card{padding:2rem}.price-card h2{font-size:2.4rem;margin:.5rem 0}.featured-price{border-color:rgba(245,212,123,.55);box-shadow:0 0 0 1px rgba(245,212,123,.18),0 20px 60px rgba(245,212,123,.08)}.feature-list{display:grid;gap:.65rem;margin:1.2rem 0 1.5rem;padding-left:1.2rem}.feature-list li{color:var(--muted)}.plan-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0}.btn.small{font-size:.82rem;padding:.55rem .85rem}.table-card{padding:0;overflow:hidden}.table-card table{margin:0}.admin-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.inline-form{display:inline}.center{text-align:center}.centered-actions{justify-content:center}.top-space{margin-top:3rem}.auth-copy p strong{color:#fff}.no-print button{background:#111827;color:#fff;border:0;border-radius:8px;padding:10px 14px;cursor:pointer}
@media(max-width:800px){.pricing-grid{grid-template-columns:1fr}.account-badge{width:max-content}.admin-actions,.result-actions{align-items:stretch}.admin-actions .btn,.result-actions .btn{justify-content:center}}


/* Blog SEO */
.visual-hero .image-card{padding:0;overflow:hidden;position:relative}.image-card img{display:block;width:100%;height:420px;object-fit:cover}.overlay-metrics{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(6,10,16,.72);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:22px;padding:12px}.blog-hero{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent)}.search-bar{display:flex;gap:.8rem;margin-top:1.4rem}.search-bar input{min-height:52px}.category-pills{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.6rem}.pill-link{border:1px solid var(--line);background:rgba(255,255,255,.05);padding:.65rem 1rem;border-radius:999px;color:var(--muted);font-weight:800}.pill-link.active,.pill-link:hover{background:var(--accent);color:#071014}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.blog-grid.small{grid-template-columns:repeat(3,minmax(0,1fr))}.post-card{padding:0;overflow:hidden}.post-cover{width:100%;height:210px;object-fit:cover;display:block;background:#111821}.post-body{padding:1.2rem}.post-body h2{font-size:1.35rem;letter-spacing:-.035em}.post-meta,.article-meta{display:block;color:var(--accent-2);font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.65rem}.text-link{color:var(--accent);font-weight:900}.pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-top:2rem}.page-link{border:1px solid var(--line);padding:.65rem .9rem;border-radius:12px;color:var(--muted);font-weight:900}.page-link.active,.page-link:hover{background:var(--accent);color:#071014}.article-hero{padding:72px 0 32px}.article-hero h1{font-size:clamp(2rem,5vw,4rem)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;align-items:start}.article-content{padding:0;overflow:hidden}.article-cover{width:100%;max-height:460px;object-fit:cover;display:block}.article-copy{padding:2rem}.article-copy h2{margin-top:2rem;font-size:1.8rem}.article-copy h3{margin-top:1.4rem}.article-copy p,.article-copy li{font-size:1.05rem;color:#c7d2df}.article-copy ul,.article-copy ol{color:#c7d2df}.article-cta{margin-top:2.2rem;padding:1.5rem;border:1px solid var(--line);border-radius:22px;background:rgba(212,175,55,.08)}.article-cta .btn{margin-right:.6rem;margin-top:.7rem}.sticky-card{position:sticky;top:96px}.keyword-box{white-space:pre-wrap;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:18px;padding:1rem;color:#dce7f3;overflow:auto;max-height:420px}.admin-actions.card{align-items:center}
@media(max-width:980px){.blog-grid,.blog-grid.small,.article-layout{grid-template-columns:1fr 1fr}.article-sidebar{display:none}.image-card img{height:360px}}
@media(max-width:720px){.blog-grid,.blog-grid.small,.article-layout{grid-template-columns:1fr}.search-bar{flex-direction:column}.image-card img{height:300px}.overlay-metrics{position:static;border-radius:0}.article-copy{padding:1.2rem}.article-cta .btn{width:100%;margin-right:0}}


/* Promoción del libro */
.book-ad-section{padding-top:34px;padding-bottom:34px}.book-ad-section.slim{padding-top:24px;padding-bottom:24px}.book-ad{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1.35rem;align-items:center;border:1px solid rgba(245,212,123,.28);border-radius:28px;background:radial-gradient(circle at 0 0,rgba(245,212,123,.14),transparent 34%),linear-gradient(135deg,rgba(9,12,18,.96),rgba(17,24,39,.9));box-shadow:0 24px 70px rgba(0,0,0,.28);padding:1.25rem;overflow:hidden}.book-ad-media{border-radius:20px;overflow:hidden;background:#05070b;box-shadow:0 20px 40px rgba(0,0,0,.32)}.book-ad-media img{display:block;width:100%;height:250px;object-fit:cover}.book-ad h2{margin:.25rem 0 .6rem;font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.055em}.book-ad p{max-width:720px}.book-author{color:#f5d47b!important;font-weight:900}.book-ad-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.nav a[href$="libro.php"]{color:#f5d47b}.book-ad-sidebar{display:block;padding:1rem;border-radius:22px}.book-ad-sidebar .book-ad-media{margin-bottom:1rem}.book-ad-sidebar .book-ad-media img{height:auto;max-height:360px;object-fit:contain}.book-ad-sidebar h2{font-size:1.45rem}.book-ad-sidebar .book-ad-actions{display:grid}.book-side-card{margin-top:1rem}.book-hero-page{padding-top:68px}.book-landing-grid{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:2rem;align-items:center}.book-landing-copy .lead{font-size:1.18rem;max-width:760px}.book-bullets{display:grid;gap:.8rem;margin:1.4rem 0}.book-bullets div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:1rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.045);padding:1rem}.book-bullets strong{color:#f5d47b}.book-bullets span{color:var(--muted)}.book-landing-media{padding:0;overflow:hidden;border-color:rgba(245,212,123,.35)}.book-landing-media img{display:block;width:100%;height:auto}
@media(max-width:980px){.book-landing-grid{grid-template-columns:1fr}.book-ad{grid-template-columns:150px minmax(0,1fr)}.book-ad-media img{height:220px}}
@media(max-width:720px){.book-ad{grid-template-columns:1fr;text-align:left}.book-ad-media{max-width:260px}.book-ad-media img{height:auto}.book-bullets div{grid-template-columns:1fr}.book-ad-actions .btn{width:100%;justify-content:center}.book-landing-media{max-width:420px}}

/* Pago único de plan + PDF */
.paid-plan-box{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border-color:rgba(212,175,55,.35);background:radial-gradient(circle at 0 0,rgba(212,175,55,.12),transparent 34%),rgba(255,255,255,.045)}
.paid-plan-box h2{margin:.25rem 0 .4rem}.paid-plan-box p{margin:0;max-width:760px}.paid-plan-box form{margin:0}.plans-grid .inline-form{display:inline-flex}.legal-note{font-size:.9rem;color:var(--muted);margin-top:1rem}.download-token-note{font-size:.85rem;color:var(--muted)}
@media(max-width:800px){.paid-plan-box{flex-direction:column;align-items:flex-start}.paid-plan-box .btn,.paid-plan-box form{width:100%}.paid-plan-box .btn{justify-content:center}}


/* Biblioteca premium de ejercicios */
.exercise-link{background:none;border:0;color:#c8a63a;font-weight:800;cursor:pointer;text-align:left;padding:0;text-decoration:underline;text-underline-offset:3px;font:inherit}
.exercise-link:hover{color:#f0d77a}.exercise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.exercise-card{padding:0;overflow:hidden}.exercise-card-button{display:block;width:100%;height:100%;text-align:left;border:0;background:transparent;color:inherit;cursor:pointer;padding:0}.exercise-card img{width:100%;height:180px;object-fit:cover;background:#f6f6f6;display:block}.exercise-card h2{font-size:1.05rem;margin:12px 16px 6px}.exercise-card p{margin:0 16px 8px;color:var(--muted)}.exercise-card small{display:block;margin:0 16px 16px;color:var(--muted)}.exercise-chip{display:inline-block;margin:14px 16px 0;padding:4px 10px;border-radius:999px;background:rgba(200,166,58,.12);color:#c8a63a;font-size:.8rem;font-weight:800}.exercise-modal[hidden]{display:none}.exercise-modal{position:fixed;inset:0;z-index:9999}.exercise-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(3px)}.exercise-modal-card{position:relative;max-width:980px;margin:5vh auto;background:#111;border:1px solid rgba(200,166,58,.45);border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.55);padding:22px;color:#fff}.exercise-modal-close{position:absolute;right:18px;top:12px;background:#222;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:999px;width:38px;height:38px;font-size:26px;cursor:pointer}.exercise-modal-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}.exercise-modal-image img{width:100%;max-height:560px;object-fit:contain;background:#f7f7f4;border-radius:16px}.exercise-modal-copy h2{font-size:1.8rem;margin:.2rem 0 1rem}.exercise-modal-copy h3{margin:1rem 0 .35rem;color:#e5c76a}.modal-open{overflow:hidden}@media(max-width:820px){.exercise-modal-card{margin:0;min-height:100vh;border-radius:0;overflow:auto}.exercise-modal-grid{grid-template-columns:1fr}.exercise-modal-image img{max-height:380px}}

/* Flujo guiado de generación y pago */
.flow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;margin:1.4rem 0 0;text-align:left}.flow-step{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:16px;padding:.85rem;min-height:96px}.flow-step span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-weight:900;margin-bottom:.45rem}.flow-step strong{display:block;color:#fff;font-size:.9rem}.flow-step em{display:block;color:var(--muted);font-style:normal;font-size:.78rem;line-height:1.25;margin-top:.2rem}.flow-step.active{border-color:rgba(212,175,55,.65);background:rgba(212,175,55,.09);box-shadow:0 0 0 1px rgba(212,175,55,.12)}.flow-step.active span,.flow-step.done span{background:var(--accent);border-color:var(--accent);color:#071014}.flow-step.done{opacity:.92}.stack-actions{display:flex;flex-direction:column;gap:.75rem}.muted-small{color:var(--muted);font-size:.92rem}
@media(max-width:980px){.flow-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.flow-steps{grid-template-columns:1fr}.flow-step{min-height:auto}}

/* Consentimiento cookies y acceso gratuito al blog */
.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:9998}.cookie-banner-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:22px;background:rgba(8,12,18,.96);box-shadow:0 24px 70px rgba(0,0,0,.45);backdrop-filter:blur(14px)}.cookie-banner strong{color:#fff}.cookie-banner p{margin:.25rem 0 0;color:var(--muted);font-size:.92rem}.cookie-actions{display:flex;gap:.65rem;flex-wrap:wrap;flex-shrink:0}.blog-access-note{margin-top:1rem;color:#d4af37;font-weight:800}.blog-lock-wrap{margin-top:2rem}.blog-unlock-box{max-width:820px;margin:0 auto;text-align:center;border-color:rgba(212,175,55,.34);background:radial-gradient(circle at 50% 0,rgba(212,175,55,.12),transparent 38%),rgba(255,255,255,.045)}.blog-unlock-box h2{margin:.3rem 0 .5rem}.blog-unlock-box p{max-width:680px;margin-left:auto;margin-right:auto}.blog-unlock-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;max-width:620px;margin:1.25rem auto .8rem}.blog-unlock-form input{min-height:52px}.mini-legal{font-size:.83rem!important;color:var(--muted)!important;line-height:1.45}.article-locked-preview{border:1px solid rgba(212,175,55,.28);border-radius:22px;background:rgba(212,175,55,.06);padding:1.3rem;margin-top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.cookie-banner-inner{flex-direction:column;align-items:flex-start}.cookie-actions,.cookie-actions .btn{width:100%}.cookie-actions .btn{justify-content:center}.blog-unlock-form{grid-template-columns:1fr}.blog-unlock-form .btn{justify-content:center}}

/* Ajustes finales: header limpio y planes */
.pricing-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
}
.checkbox-inline {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 500;
}
.checkbox-inline input {
    width: auto;
    margin-top: 4px;
}
@media (max-width: 800px) {
    .pricing-grid-two {
        grid-template-columns: 1fr;
    }
}

/* Resultado gratuito persuasivo */
.result-explanation-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin:26px 0 18px;
}
.result-explanation-card h2,
.macro-sales-card h2{margin:.35rem 0 .65rem;letter-spacing:-.04em}
.result-explanation-card p,
.macro-sales-card p{color:var(--muted);line-height:1.72;margin:.65rem 0 0}
.result-explanation-card strong,
.macro-sales-card strong{color:var(--text)}
.result-explanation-card.highlight{border-color:rgba(212,175,55,.34);background:radial-gradient(circle at 0 0,rgba(212,175,55,.10),transparent 42%),rgba(255,255,255,.04)}
.macro-sales-card{display:grid;grid-template-columns:1.45fr .75fr;gap:24px;align-items:center;margin-top:18px;border-color:rgba(212,175,55,.32);background:linear-gradient(135deg,rgba(212,175,55,.10),rgba(255,255,255,.035) 48%,rgba(0,0,0,.08))}
.macro-sales-cta{border:1px solid var(--line);border-radius:20px;padding:18px;background:rgba(0,0,0,.18);display:flex;flex-direction:column;gap:12px}
.macro-sales-cta strong{font-size:1.1rem;letter-spacing:-.03em}
.macro-sales-cta span{color:var(--muted);font-size:.95rem;line-height:1.55}
.macro-sales-cta form{margin:0}.macro-sales-cta .btn{width:100%;justify-content:center}
@media(max-width:900px){.result-explanation-grid,.macro-sales-card{grid-template-columns:1fr}}

/* FAQ home */
.faq-section .section-head p{max-width:760px;color:var(--muted)}
.faq-accordion{max-width:980px;margin:0 auto;display:grid;gap:12px}
.faq-item{border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.04);padding:0;overflow:hidden}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;color:var(--text);font-weight:900;cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:'+';width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(212,175,55,.10);border:1px solid rgba(212,175,55,.28);color:var(--accent);font-size:1.2rem;flex-shrink:0}
.faq-item[open]{border-color:rgba(212,175,55,.34);background:linear-gradient(135deg,rgba(212,175,55,.075),rgba(255,255,255,.035))}
.faq-item[open] summary:after{content:'−'}
.faq-answer{padding:0 20px 18px;border-top:1px solid rgba(255,255,255,.06)}
.faq-answer p{color:var(--muted);line-height:1.7;margin:.85rem 0 0}
@media(max-width:720px){.faq-item summary{padding:16px;font-size:.98rem}.faq-answer{padding:0 16px 16px}}


/* FAQ plegado principal */
.faq-master{max-width:980px;margin:0 auto;border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.04);overflow:hidden;box-shadow:var(--shadow)}
.faq-master>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 26px;cursor:pointer}
.faq-master>summary::-webkit-details-marker{display:none}
.faq-master>summary strong{display:block;font-size:clamp(1.5rem,3vw,2.35rem);letter-spacing:-.05em;color:var(--text);line-height:1.05}
.faq-master>summary .eyebrow{margin:0;color:var(--accent)}
.faq-master>summary:after{content:'+';width:38px;height:38px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(212,175,55,.10);border:1px solid rgba(212,175,55,.30);color:var(--accent);font-size:1.45rem;font-weight:900;flex-shrink:0}
.faq-master[open]{border-color:rgba(212,175,55,.36);background:linear-gradient(135deg,rgba(212,175,55,.07),rgba(255,255,255,.035))}
.faq-master[open]>summary:after{content:'−'}
.faq-master-body{padding:0 26px 26px;border-top:1px solid rgba(255,255,255,.07)}
.faq-master-body>p{max-width:760px;color:var(--muted);line-height:1.75;margin:18px 0 20px}
.faq-section .section-head{display:none}
@media(max-width:720px){.faq-master>summary{padding:20px}.faq-master-body{padding:0 16px 18px}.faq-master>summary{align-items:flex-start}.faq-master>summary:after{width:34px;height:34px}}

/* Home conversion improvements */
.trust-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.25rem;color:var(--muted);font-size:.9rem;font-weight:800}.trust-row span{border:1px solid rgba(212,175,55,.28);background:rgba(212,175,55,.075);border-radius:999px;padding:.55rem .8rem}.mini-proof-section{padding:28px 0}.proof-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.proof-strip div{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.045);padding:1.15rem}.proof-strip strong{display:block;color:var(--text);font-size:1.05rem;margin-bottom:.25rem}.proof-strip span{color:var(--muted);font-size:.92rem}.persuasive-grid{align-items:center}.sales-card h3,.premium-card-home h3{font-size:1.35rem}.check-list{display:grid;gap:.75rem;margin:1rem 0 1.25rem;padding:0;list-style:none}.check-list li{position:relative;padding-left:1.7rem;color:#dce7f3}.check-list li:before{content:"";position:absolute;left:0;top:.45rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(212,175,55,.12)}.centered-head{text-align:center;margin-left:auto;margin-right:auto}.step-cards .step-card{position:relative;overflow:hidden}.step-number{display:inline-flex;color:var(--accent-2);font-weight:950;letter-spacing:.08em;margin-bottom:.7rem}.step-card.highlighted{border-color:rgba(212,175,55,.38);background:radial-gradient(circle at top right,rgba(212,175,55,.14),transparent 36%),linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035))}.premium-sell-box{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:2rem;align-items:center}.premium-card-home{border-color:rgba(212,175,55,.35)}.price-highlight{font-size:2rem;font-weight:950;letter-spacing:-.05em;color:var(--accent-2);margin:1rem 0}.final-cta{border:1px solid rgba(212,175,55,.24);border-radius:32px;padding:2rem;background:radial-gradient(circle at top left,rgba(212,175,55,.13),transparent 34%),rgba(255,255,255,.045)}
@media (max-width: 860px){.proof-strip,.premium-sell-box{grid-template-columns:1fr}.final-cta{display:grid}.trust-row span{width:100%}}

/* Acceso limpio: formulario primero, explicación debajo */
.auth-centered-wrap{max-width:620px;margin:0 auto;display:grid;gap:1.5rem;}
.auth-centered-card{width:100%;}
.auth-centered-card h1{margin-top:0;font-size:clamp(2rem,4vw,3rem);line-height:1.05;}
.auth-after-note{margin-top:.5rem;}
.auth-after-note .flow-steps{margin-top:1rem;}
@media (max-width:720px){.auth-centered-wrap{max-width:100%;}.auth-centered-card h1{font-size:2rem;}}

/* Admin exercise library */
.exercise-admin-preview {
    background: #fff;
    border: 1px solid rgba(212, 175, 55, .35);
    border-radius: 18px;
    padding: 14px;
    max-width: 520px;
}
.exercise-admin-preview img {
    display: block;
    width: 100%;
    max-height: 420px;
    object-fit: contain;
    border-radius: 12px;
}
.btn-small {
    padding: .45rem .75rem;
    font-size: .85rem;
}

   ========================================================= */

/* =========================================================
   BIBLIOTECA EJERCICIOS - ESTILO BLOG CORREGIDO
   ========================================================= */

.exercise-library-hero {
    padding-top: 56px;
    padding-bottom: 34px;
}

.exercise-library-hero .section-head {
    max-width: 840px;
    margin: 0 auto;
}

/* Filtros estilo blog, pero mejor ordenados */
.exercise-category-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 0 auto 30px;
    max-width: 900px;
}

.exercise-category {
    width: auto !important;
    min-width: auto !important;
    appearance: none;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.055);
    color: inherit;
    border-radius: 999px;
    padding: 10px 16px;
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    line-height: 1;
    transition: .2s ease;
}

.exercise-category:hover,
.exercise-category.active {
    background: #d4af37;
    border-color: #d4af37;
    color: #070707;
}

/* Ordenador: 2 columnas, no 3 */
.exercise-blog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

/* Card estilo blog */
.exercise-blog-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0 !important;
    min-height: 100%;
}

/* Imagen ancha tipo portada, no miniatura pequeña */
.exercise-cover {
    display: block !important;
    width: 100% !important;
    height: 280px !important;
    max-height: 280px !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
    margin: 0 !important;
}

/* Texto debajo */
.exercise-card-body {
    padding: 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.exercise-card-body .post-meta {
    display: block;
    margin-bottom: 8px;
}

.exercise-card-body h2 {
    font-size: 24px;
    line-height: 1.18;
    margin: 0 0 12px;
}

.exercise-card-body p {
    margin: 0 0 16px;
}

.exercise-card-footer {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,.08);
    display: flex;
    justify-content: space-between;
    gap: 14px;
    font-size: 13px;
}

.exercise-card-footer strong {
    color: #d4af37;
    white-space: nowrap;
}

.exercise-hidden {
    display: none !important;
}

.exercise-premium-card {
    max-width: 820px;
    margin: 38px auto 0;
    text-align: center;
}

/* Tablet: sigue en 2 columnas, pero imagen algo menor */
@media (max-width: 1024px) {
    .exercise-blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .exercise-cover {
        height: 230px !important;
        max-height: 230px !important;
    }

    .exercise-card-body {
        padding: 18px;
    }

    .exercise-card-body h2 {
        font-size: 21px;
    }
}

/* Móvil: 1 columna */
@media (max-width: 768px) {
    .exercise-library-hero {
        padding-top: 34px !important;
        padding-bottom: 24px !important;
    }

    .exercise-library-hero .section-head,
    .exercise-library-hero .centered-head {
        text-align: left !important;
    }

    .exercise-category-row {
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 8px !important;
        padding-bottom: 10px !important;
        margin-bottom: 20px !important;
        max-width: 100% !important;
        scrollbar-width: thin;
    }

    .exercise-category {
        flex: 0 0 auto !important;
        width: auto !important;
        padding: 9px 13px !important;
        font-size: 13px !important;
        white-space: nowrap !important;
    }

    .exercise-blog-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .exercise-blog-card {
        display: flex !important;
        flex-direction: column !important;
        padding: 0 !important;
        margin-bottom: 0 !important;
    }

    .exercise-cover {
        display: block !important;
        width: 100% !important;
        height: 220px !important;
        max-height: 220px !important;
        object-fit: cover !important;
        object-position: center !important;
    }

    .exercise-card-body {
        display: flex !important;
        flex-direction: column !important;
        padding: 16px !important;
    }

    .exercise-card-body h2 {
        font-size: 20px !important;
        line-height: 1.2 !important;
        margin-bottom: 9px !important;
    }

    .exercise-card-body p {
        font-size: 14px !important;
        margin-bottom: 12px !important;
    }

    .exercise-card-footer {
        flex-direction: column;
        gap: 5px;
        font-size: 13px;
    }

    .exercise-premium-card {
        text-align: left;
        margin-top: 24px;
    }
}

@media (max-width: 600px) {
    #aleo-chat-button {
        right: 16px;
        bottom: 18px;
        width: 54px;
        height: 54px;
        font-size: 23px;
    }

    #aleo-chat-window {
        right: 10px;
        left: 10px;
        bottom: 82px;
        width: auto;
        max-width: none;
        height: 70vh;
        max-height: 560px;
        border-radius: 16px;
    }

    #aleo-chat-header {
        padding: 13px 14px;
        font-size: 14px;
    }

    #aleo-chat-messages {
        padding: 12px;
    }

    .bot-msg,
    .user-msg {
        max-width: 92%;
        font-size: 13px;
        padding: 10px 11px;
    }

    #aleo-chat-quick {
        padding: 8px;
        gap: 5px;
    }

    #aleo-chat-quick button {
        font-size: 11px;
        padding: 6px 8px;
    }

    #aleo-chat-input-area {
        padding: 8px;
        gap: 6px;
    }

    #aleo-chat-input {
        min-width: 0;
        font-size: 13px;
        padding: 9px;
    }

    #aleo-chat-send {
        font-size: 13px;
        padding: 0 10px;
    }
}

/* FIX FINAL CHATBOT MÓVIL */
#aleo-chat-input-area {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px !important;
    background: #ffffff !important;
    border-top: 1px solid #e5e7eb !important;
}

#aleo-chat-input {
    display: block !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: 48px !important;
    padding: 0 14px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 14px !important;
    font-size: 16px !important;
    background: #ffffff !important;
    color: #111827 !important;
}

#aleo-chat-send {
    flex: 0 0 58px !important;
    width: 58px !important;
    height: 48px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 14px !important;
    background: #0f172a !important;
    color: #ffffff !important;
    font-size: 0 !important;
    cursor: pointer !important;
    position: relative !important;
}

#aleo-chat-send::before {
    content: "➤" !important;
    font-size: 22px !important;
    line-height: 1 !important;
}

@media (max-width: 768px) {
    #aleo-chat-window {
        top: 135px !important;
        left: 10px !important;
        right: 10px !important;
        bottom: 12px !important;
        width: auto !important;
        height: auto !important;
        max-width: none !important;
        max-height: none !important;
        border-radius: 16px !important;
    }

    #aleo-chat-messages {
        flex: 1 1 auto !important;
        min-height: 260px !important;
        padding: 14px !important;
    }

    #aleo-chat-quick {
        display: flex;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 8px !important;
        padding: 10px !important;
    }

    #aleo-chat-quick button {
        flex: 0 0 auto !important;
        width: auto !important;
        min-width: auto !important;
        padding: 8px 12px !important;
        font-size: 13px !important;
        border-radius: 999px !important;
        white-space: nowrap !important;
    }
}

#aleo-chat-button {
    background: #25D366 !important;
    color: #ffffff !important;
    box-shadow: 0 10px 30px rgba(37, 211, 102, .35) !important;
}

#aleo-chat-button::before {
    content: "💬";
}

#aleo-chat-button {
    font-size: 0 !important;
}

#aleo-chat-button::before {
    font-size: 27px !important;
}
