
.jmfree-shell{padding:24px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border-radius:28px}
.jmfree-card{max-width:720px;margin:0 auto;background:#fff;border:1px solid #e2e8f0;border-radius:28px;padding:28px;box-shadow:0 24px 70px rgba(15,23,42,.12)}
.jmfree-kicker{display:inline-flex;background:#111827;color:#fff;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.jmfree-card h2{font-size:32px;margin:14px 0 8px;color:#111827}
.jmfree-card p{color:#475569;line-height:1.6}
.jmfree-card label{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-weight:800;color:#334155}
.jmfree-card input,.jmfree-card textarea{border:1px solid #cbd5e1;border-radius:14px;padding:12px 14px;width:100%}
.jmfree-btn{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#111827,#374151);color:#fff!important;border-radius:16px;padding:13px 18px;text-decoration:none!important;border:0;font-weight:900;cursor:pointer}
.jmfree-note{font-size:13px;color:#64748b}
.jmfree-notice{border-radius:14px;padding:12px 14px;margin:12px 0;font-weight:800}
.jmfree-notice.ok{background:#dcfce7;color:#166534}
.jmfree-notice.error{background:#fee2e2;color:#991b1b}
.jmfree-promos{margin:18px 0}
.jmfree-promos-head span{font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:#ff7a00}
.jmfree-promos-head h2{margin:4px 0 14px;color:#111827}
.jmfree-promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.jmfree-promo-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;overflow:hidden;box-shadow:0 14px 36px rgba(15,23,42,.08)}
.jmfree-promo-card img{width:100%;height:130px;object-fit:cover;display:block}
.jmfree-promo-card div{padding:16px}
.jmfree-promo-card h3{margin:0 0 8px;color:#111827}
.jmfree-promo-card p{color:#64748b;line-height:1.5}
.jmfree-promo-card a{display:inline-flex;background:#ff7a00;color:#fff!important;border-radius:999px;padding:10px 14px;text-decoration:none!important;font-weight:900}
@media(max-width:760px){.jmfree-shell{padding:12px}.jmfree-card{border-radius:20px;padding:18px}.jmfree-card h2{font-size:26px}}


/* v1.0.1 - Soporte login único */
.jmfree-embedded{
    padding:0!important;
    background:transparent!important;
}
.jmfree-embedded .jmfree-card{
    max-width:100%!important;
    border:0!important;
    box-shadow:none!important;
    border-radius:0!important;
    padding:22px!important;
}
.jmfree-embedded .jmfree-card h2{
    font-size:24px!important;
}


/* v1.0.3 - Registro premium, fortaleza de contraseña y bienvenida */
.jmfree-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.jmfree-register-form label span{
    display:block;
    margin-bottom:7px;
    font-weight:850;
}
.jmfree-register-form input{
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.jmfree-register-form input:focus{
    transform:translateY(-1px);
}
.jmfree-strength-box{
    margin:-2px 0 12px;
    padding:10px 12px;
    border-radius:14px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
}
.jmfree-strength-track{
    width:100%;
    height:8px;
    background:#e5e7eb;
    border-radius:999px;
    overflow:hidden;
}
.jmfree-strength-track span{
    display:block;
    width:0;
    height:100%;
    border-radius:999px;
    background:#94a3b8;
    transition:width .22s ease, background .22s ease;
}
.jmfree-strength-label{
    margin-top:7px;
    color:#64748b;
    font-size:13px;
    font-weight:900;
}
.jmfree-strength-box.weak .jmfree-strength-track span{background:#dc2626}
.jmfree-strength-box.weak .jmfree-strength-label{color:#dc2626}
.jmfree-strength-box.medium .jmfree-strength-track span{background:#f97316}
.jmfree-strength-box.medium .jmfree-strength-label{color:#c2410c}
.jmfree-strength-box.strong .jmfree-strength-track span{background:#2563eb}
.jmfree-strength-box.strong .jmfree-strength-label{color:#2563eb}
.jmfree-strength-box.very-strong .jmfree-strength-track span{background:#16a34a}
.jmfree-strength-box.very-strong .jmfree-strength-label{color:#16a34a}
.jmfree-mini-trust{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:10px 0 14px;
}
.jmfree-mini-trust span{
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:999px;
    padding:7px 9px;
    color:#475569;
    font-size:12px;
    font-weight:850;
}
.jmfree-welcome-body{
    margin:0;
    background:#f8fafc;
}
.jmfree-welcome-page{
    min-height:100vh;
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px 16px;
    background:
        radial-gradient(circle at 18% 18%, rgba(139,92,246,.20), transparent 34%),
        radial-gradient(circle at 82% 18%, rgba(254,101,193,.16), transparent 32%),
        linear-gradient(135deg,#f8fafc,#ffffff,#eef2ff);
}
.jmfree-welcome-orb{
    position:absolute;
    border-radius:999px;
    opacity:.45;
    filter:blur(10px);
}
.jmfree-welcome-orb.one{width:260px;height:260px;left:-100px;top:60px;background:#8b5cf6}
.jmfree-welcome-orb.two{width:300px;height:300px;right:-120px;bottom:-100px;background:#ff7a00}
.jmfree-welcome-card{
    position:relative;
    width:min(980px,100%);
    background:rgba(255,255,255,.94);
    border:1px solid rgba(148,163,184,.30);
    border-radius:32px;
    box-shadow:0 32px 100px rgba(15,23,42,.16);
    padding:30px;
    text-align:center;
    backdrop-filter:blur(14px);
}
.jmfree-welcome-card h1{
    margin:15px auto 8px;
    max-width:760px;
    color:#111827;
    font-size:clamp(34px,5vw,58px);
    line-height:1.05;
    letter-spacing:-.04em;
}
.jmfree-welcome-card p{
    color:#64748b;
    max-width:720px;
    margin:0 auto 20px;
    line-height:1.65;
    font-size:17px;
}
.jmfree-video-frame{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    border-radius:24px;
    overflow:hidden;
    background:#111827;
    box-shadow:0 22px 60px rgba(15,23,42,.20);
    margin:22px auto;
}
.jmfree-video-frame iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}
.jmfree-video-placeholder{
    border-radius:24px;
    background:linear-gradient(135deg,#111827,#374151);
    color:#fff;
    padding:50px 20px;
    margin:22px auto;
}
.jmfree-video-placeholder div{
    width:72px;
    height:72px;
    border-radius:999px;
    margin:0 auto 16px;
    background:#ff7a00;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:30px;
}
.jmfree-video-placeholder h2,
.jmfree-video-placeholder p,
.jmfree-video-placeholder a{
    color:#fff!important;
}
.jmfree-welcome-btn{
    position:sticky;
    bottom:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:58px;
    padding:0 28px;
    border-radius:18px;
    background:linear-gradient(135deg,#111827,#374151);
    color:#fff!important;
    font-weight:950;
    text-decoration:none!important;
    box-shadow:0 22px 56px rgba(15,23,42,.24);
    transition:transform .18s ease, box-shadow .18s ease;
}
.jmfree-welcome-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 28px 70px rgba(15,23,42,.28);
}
@media(max-width:760px){
    .jmfree-form-grid{
        grid-template-columns:1fr;
        gap:0;
    }
    .jmfree-welcome-card{
        padding:18px;
        border-radius:24px;
    }
    .jmfree-welcome-card h1{
        font-size:34px;
    }
    .jmfree-welcome-btn{
        width:100%;
    }
}


/* v1.0.4 - Registro embebido más limpio y no apelotado */
.jmfree-embedded .jmfree-register-form{
    display:block!important;
}
.jmfree-embedded .jmfree-form-grid{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
}
.jmfree-embedded .jmfree-card label{
    margin:0 0 12px!important;
}
.jmfree-embedded .jmfree-card label span{
    display:block!important;
    margin-bottom:6px!important;
    color:#111827!important;
    font-weight:900!important;
}
.jmfree-embedded .jmfree-card input{
    width:100%!important;
    min-height:52px!important;
    border-radius:15px!important;
    background:#fff!important;
}
.jmfree-embedded .jmfree-strength-box{
    margin:0 0 12px!important;
}
.jmfree-embedded .jmfree-mini-trust{
    margin:8px 0 14px!important;
}
.jmfree-embedded .jmfree-mini-trust span{
    font-size:11px!important;
    padding:6px 8px!important;
}
.jmfree-embedded .jmfree-btn{
    width:100%!important;
    min-height:56px!important;
    border-radius:18px!important;
}
.jmfree-embedded .jmfree-note{
    margin:12px 0 0!important;
    font-size:12.5px!important;
    line-height:1.45!important;
}
@media(max-width:640px){
    .jmfree-embedded .jmfree-form-grid{
        grid-template-columns:1fr!important;
        gap:0!important;
    }
}


/* v1.0.5 - Formulario cerrado por defecto + WOW cálido */
.jmfree-progressive .jmfree-register-intro{
    display:grid!important;
    gap:10px!important;
    margin:12px 0 10px!important;
}
.jmfree-progressive .jmfree-open-register{
    width:100%!important;
    min-height:58px!important;
    border:0!important;
    border-radius:18px!important;
    background:linear-gradient(135deg,#8B5CF6,#FE65C1)!important;
    color:#fff!important;
    font-weight:950!important;
    letter-spacing:.035em!important;
    cursor:pointer!important;
    box-shadow:0 20px 48px rgba(139,92,246,.22)!important;
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease!important;
}
.jmfree-progressive .jmfree-open-register:hover{transform:translateY(-2px) scale(1.01);filter:saturate(1.12);box-shadow:0 26px 62px rgba(139,92,246,.28)!important;}
.jmfree-progressive .jmfree-register-intro p{margin:0!important;text-align:center!important;color:#64748b!important;font-weight:800!important;font-size:13px!important;}
.jmfree-progressive .jmfree-intro-hidden{display:none!important;}
.jmfree-register-collapsed{display:none!important;}
.jmfree-register-open{display:block!important;animation:jmfreeReveal .42s cubic-bezier(.2,.8,.2,1) both;transform-origin:top center;}
@keyframes jmfreeReveal{from{opacity:0;transform:translateY(-12px) scale(.985);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
.jmfree-celebration{position:relative;margin:0 0 16px;padding:12px;border-radius:20px;background:linear-gradient(135deg,#ecfdf5,#fef3c7,#fdf2f8);border:1px solid rgba(139,92,246,.18);overflow:hidden;box-shadow:0 18px 42px rgba(15,23,42,.08)}
.jmfree-celebration-card{text-align:center;position:relative;z-index:2}.jmfree-party-icons{font-size:26px;margin-bottom:4px}.jmfree-celebration h2{margin:4px 0!important;color:#16a34a!important;font-size:26px!important;letter-spacing:-.02em!important}.jmfree-celebration p{margin:0 auto!important;color:#111827!important;font-weight:850!important;line-height:1.45!important}.jmfree-celebration small{display:block;margin-top:6px;color:#64748b;font-weight:800}.jmfree-confetti{position:absolute;top:-28px;font-size:18px;animation:jmfreeFall 3.8s ease-in forwards;z-index:1}@keyframes jmfreeFall{0%{transform:translateY(0) rotate(0);opacity:1}100%{transform:translateY(260px) rotate(330deg);opacity:0}}.jmfree-celebration.done .jmfree-confetti{display:none}
@media(max-width:760px){.jmfree-celebration h2{font-size:22px!important}.jmfree-progressive .jmfree-open-register{min-height:56px!important}}


/* v1.0.6 - Formulario oculto hasta clic */
.jmfree-register-form.jmfree-register-collapsed{
    display:none!important;
    max-height:0!important;
    opacity:0!important;
    pointer-events:none!important;
}
.jmfree-register-form.jmfree-register-open{
    display:block!important;
    max-height:1600px!important;
    opacity:1!important;
    animation:jmfreeSlideOpen .45s ease both;
}
.jmfree-intro-hidden{
    display:none!important;
}
@keyframes jmfreeSlideOpen{
    from{opacity:0;transform:translateY(-12px) scale(.985)}
    to{opacity:1;transform:translateY(0) scale(1)}
}

/* v1.0.8 - Popup configurable posterior al registro gratuito */
.jmfree-registration-popup{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;pointer-events:none;transition:opacity .22s ease}.jmfree-registration-popup.is-open{opacity:1;pointer-events:auto}.jmfree-registration-popup__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(8px)}.jmfree-registration-popup__card{position:relative;width:min(560px,100%);background:#fff;border-radius:28px;padding:30px;text-align:center;box-shadow:0 34px 100px rgba(15,23,42,.32);border:1px solid rgba(255,255,255,.6);transform:translateY(16px) scale(.98);transition:transform .22s ease}.jmfree-registration-popup.is-open .jmfree-registration-popup__card{transform:translateY(0) scale(1)}.jmfree-registration-popup__close{position:absolute;top:14px;right:16px;border:0;background:#f1f5f9;border-radius:999px;width:38px;height:38px;cursor:pointer;font-size:24px;line-height:1;color:#0f172a}.jmfree-registration-popup__icon{width:76px;height:76px;margin:0 auto 14px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#8B5CF6,#FE65C1);font-size:34px;box-shadow:0 18px 44px rgba(139,92,246,.28)}.jmfree-registration-popup__card h2{margin:0 0 10px!important;color:#111827!important;font-size:32px!important;letter-spacing:-.03em!important}.jmfree-registration-popup__card p{color:#475569!important;font-size:17px!important;line-height:1.65!important;margin:0 auto 22px!important}.jmfree-registration-popup__ok{border:0;border-radius:18px;background:linear-gradient(135deg,#111827,#374151);color:#fff;font-weight:950;min-height:52px;padding:0 24px;cursor:pointer;box-shadow:0 18px 44px rgba(15,23,42,.22)}@media(max-width:640px){.jmfree-registration-popup__card{padding:24px 18px;border-radius:22px}.jmfree-registration-popup__card h2{font-size:26px!important}}

/* v1.0.12 - Popup premium de registro y duplicidad compatible con móviles/tablets/escritorio */
.jmfree-registration-popup{
    position:fixed;
    left:0;
    right:0;
    top:0;
    bottom:0;
    z-index:999999;
    display:block;
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease;
    font-family:Arial,Helvetica,sans-serif;
}
.jmfree-registration-popup.is-open{opacity:1;pointer-events:auto;}
.jmfree-registration-popup__backdrop{
    position:absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
    background:rgba(15,23,42,.72);
}
@supports ((backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px))){
    .jmfree-registration-popup__backdrop{
        -webkit-backdrop-filter:blur(8px);
        backdrop-filter:blur(8px);
    }
}
.jmfree-registration-popup__card{
    position:relative;
    width:90%;
    max-width:560px;
    max-height:88vh;
    overflow:auto;
    margin:6vh auto 0;
    background:#fff;
    border-radius:28px;
    padding:30px;
    text-align:center;
    box-shadow:0 34px 100px rgba(15,23,42,.36);
    border:1px solid rgba(255,255,255,.72);
    transform:translateY(16px) scale(.98);
    transition:transform .22s ease;
    outline:none;
    -webkit-overflow-scrolling:touch;
}
.jmfree-registration-popup.is-open .jmfree-registration-popup__card{transform:translateY(0) scale(1);}
.jmfree-registration-popup__badge{
    display:inline-block;
    margin:0 auto 12px;
    padding:7px 12px;
    border-radius:999px;
    background:#f8fafc;
    color:#475569;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.jmfree-registration-popup__close{
    position:absolute;
    top:14px;
    right:16px;
    border:0;
    background:#f1f5f9;
    border-radius:999px;
    width:38px;
    height:38px;
    cursor:pointer;
    font-size:24px;
    line-height:1;
    color:#0f172a;
}
.jmfree-registration-popup__icon{
    width:76px;
    height:76px;
    margin:0 auto 14px;
    border-radius:999px;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-align:center;
    -ms-flex-align:center;
    align-items:center;
    -webkit-box-pack:center;
    -ms-flex-pack:center;
    justify-content:center;
    background:linear-gradient(135deg,#8B5CF6,#FE65C1);
    font-size:34px;
    box-shadow:0 18px 44px rgba(139,92,246,.28);
}
.jmfree-registration-popup--error .jmfree-registration-popup__icon{
    background:linear-gradient(135deg,#ff7a00,#FE65C1);
    box-shadow:0 18px 44px rgba(249,115,22,.22);
}
.jmfree-registration-popup__card h2{
    margin:0 0 10px!important;
    color:#111827!important;
    font-size:32px!important;
    line-height:1.12!important;
    letter-spacing:-.03em!important;
}
.jmfree-registration-popup__card p{
    color:#475569!important;
    font-size:17px!important;
    line-height:1.65!important;
    margin:0 auto 22px!important;
}
.jmfree-registration-popup__ok{
    border:0;
    border-radius:18px;
    background:linear-gradient(135deg,#111827,#374151);
    color:#fff;
    font-weight:950;
    min-height:52px;
    padding:0 24px;
    cursor:pointer;
    box-shadow:0 18px 44px rgba(15,23,42,.22);
    width:auto;
    max-width:100%;
}
.jmfree-registration-popup--error .jmfree-registration-popup__ok{background:linear-gradient(135deg,#111827,#ff7a00);}
@media(max-width:640px){
    .jmfree-registration-popup__card{
        width:auto;
        margin:18px;
        max-height:calc(100vh - 36px);
        padding:24px 18px;
        border-radius:22px;
    }
    .jmfree-registration-popup__card h2{font-size:25px!important;}
    .jmfree-registration-popup__card p{font-size:15.5px!important;line-height:1.55!important;}
    .jmfree-registration-popup__ok{width:100%;}
}

.jmfree-dynamic-profile-fields{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px;}
.jmfree-dynamic-profile-fields textarea,.jmfree-dynamic-profile-fields select,.jmfree-dynamic-profile-fields input[type="file"]{width:100%;border:1px solid #cbd5e1;border-radius:16px;padding:14px;background:#fff;box-sizing:border-box;}
.jmfree-dynamic-profile-fields small{display:block;margin-top:6px;color:#64748b;font-size:12px;line-height:1.4;}
@media(max-width:640px){.jmfree-dynamic-profile-fields{gap:12px}.jmfree-dynamic-profile-fields textarea,.jmfree-dynamic-profile-fields select,.jmfree-dynamic-profile-fields input[type="file"]{border-radius:14px;padding:12px}}

/* v1.0.20 - Estado preventivo de email */
.jmfree-email-status{margin:-4px 0 12px;padding:10px 13px;border-radius:14px;font-size:13px;font-weight:800;line-height:1.45;display:none}
.jmfree-email-status:not(:empty){display:block}
.jmfree-email-status.is-ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.jmfree-email-status.is-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.jmfree-email-status.is-info{background:#e0f2fe;color:#075985;border:1px solid #bae6fd}
.jmfree-email-status.is-warn{background:#fef3c7;color:#92400e;border:1px solid #fde68a}
@media(max-width:640px){.jmfree-email-status{font-size:12px;padding:9px 11px}}


/* v1.0.23 - Registro abierto por fallback y estados de email */
.jmfree-register-form.jmfree-register-force-open{display:block!important;max-height:none!important;opacity:1!important;pointer-events:auto!important;visibility:visible!important}.jmfree-email-status.is-error{color:#dc2626;font-weight:900}.jmfree-email-status.is-warn{color:#b45309;font-weight:900}.jmfree-email-status.is-ok{color:#15803d;font-weight:900}.jmfree-email-status.is-info{color:#2563eb;font-weight:900}

/* JM FREE USERS 1.0.29 - registro directo sin botón confuso */
.jmfree-register-intro-direct{
  margin:0 0 18px!important;
  padding:15px 17px!important;
  border-radius:18px!important;
  background:linear-gradient(135deg,#fff7ed,#ffffff)!important;
  border:1px solid rgba(255,122,0,.18)!important;
}
.jmfree-register-intro-direct p{
  margin:0!important;
  color:#475569!important;
  font-size:15px!important;
  line-height:1.55!important;
}
.jmfree-register-intro-direct strong{color:#111827!important;font-weight:950!important;}
.jmfree-register-form.jmfree-register-direct,
.jmfree-register-form.jmfree-register-open{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  max-height:none!important;
  overflow:visible!important;
  transform:none!important;
  pointer-events:auto!important;
}
.jmfree-register-direct .jmfree-form-grid{margin-top:8px!important;}
.jmfree-register-card .jmfree-open-register{display:none!important;}
.jmfree-embedded .jmfree-card{box-shadow:0 24px 70px rgba(15,23,42,.10)!important;}
