:root {
  --lavanda:#B8A4E3; --lavanda-soft:#D9CCF2; --lavanda-oscura:#7C62B8; --aurora:#F4C2D7; --cielo:#A9D4EC;
  --luz:#F8E59E; --noche:#2E1F47; --noche-2:#3D2C5E; --nieve:#FDFBFF; --nieve-2:#F4EFFA;
  --texto:#2E2440; --texto-suave:#584B6E; --blanco:#FFFFFF;
}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body { font-family:'Manrope',sans-serif; background:var(--nieve); color:var(--texto); min-height:100vh; display:flex; flex-direction:column; }
a { color:var(--lavanda-oscura); }
button { font-family:inherit; }
[hidden] { display:none !important; }

/* cabecera */
.ua-top { background:var(--noche); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 28px; position:sticky; top:0; z-index:20; }
.ua-brand { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-family:'Fraunces',serif; font-size:19px; }
.ua-brand small { font-family:'Manrope',sans-serif; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--aurora); margin-left:6px; }
.ua-user { display:flex; align-items:center; gap:14px; font-size:14.5px; color:#ffffffb0; }
.ua-user button, .ua-link-btn { background:none; border:1px solid #ffffff40; color:#fff; border-radius:20px; padding:7px 16px; font-size:14.5px; cursor:pointer; }
.ua-user button:hover { border-color:var(--lavanda-soft); }

/* bloques generales */
.ua-main { flex:1; }
.ua-center { max-width:440px; margin:64px auto; padding:0 20px; }
.ua-card { background:var(--blanco); border:1px solid var(--nieve-2); border-radius:22px; padding:30px 28px; box-shadow:0 24px 50px -34px #2E1F4788; }
.ua-card h1 { font-family:'Fraunces',serif; font-weight:400; font-size:30px; color:var(--noche); margin-bottom:6px; }
.ua-card h1 em { color:var(--lavanda); }
.ua-card .sub { font-size:16.5px; font-weight:400; color:var(--texto-suave); line-height:1.6; margin-bottom:22px; }
.ua-field { margin-bottom:14px; }
.ua-field label { display:block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--noche); margin-bottom:6px; }
.ua-field input { width:100%; font-family:inherit; font-size:17px; color:var(--noche); background:var(--nieve); border:1px solid var(--nieve-2); border-radius:12px; padding:13px 14px; outline:none; }
.ua-field input:focus { border-color:var(--lavanda); background:#fff; }
.btn { display:inline-block; font-family:inherit; font-size:16px; font-weight:600; padding:13px 26px; border-radius:30px; border:none; cursor:pointer; text-decoration:none; transition:transform .2s, opacity .2s; }
.btn-primary { background:linear-gradient(120deg,var(--aurora),var(--luz)); color:var(--noche); box-shadow:0 12px 30px -12px #F4C2D7aa; }
.btn-primary:hover { transform:translateY(-2px); }
.btn-soft { background:var(--nieve-2); color:var(--noche); }
.btn[disabled] { opacity:.55; cursor:default; transform:none; }
.btn-block { width:100%; }
.ua-msg { font-size:15.5px; line-height:1.5; margin-top:12px; min-height:20px; }
.ua-msg.err { color:#B4436C; }
.ua-msg.ok { color:#3E8B6A; }
.ua-alt { margin-top:16px; text-align:center; font-size:15px; color:var(--texto-suave); }
.ua-alt button { background:none; border:none; color:var(--lavanda-oscura); text-decoration:underline; cursor:pointer; font-size:15px; }

/* lista de cursos */
.ua-wrap { max-width:1000px; margin:0 auto; padding:48px 24px 72px; }
.ua-hello { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(26px,3.4vw,36px); color:var(--noche); margin-bottom:6px; }
.ua-hello em { color:var(--lavanda); }
.ua-lead { font-size:17px; font-weight:400; color:var(--texto-suave); margin-bottom:30px; }
.ua-courses { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:22px; }
.ua-course { background:var(--blanco); border:1px solid var(--nieve-2); border-radius:22px; overflow:hidden; text-decoration:none; color:inherit; box-shadow:0 18px 44px -32px #2E1F4788; transition:transform .25s; display:flex; flex-direction:column; }
.ua-course:hover { transform:translateY(-4px); }
.ua-course .ph { height:150px; background:radial-gradient(120% 140% at 0% 0%, #5A4384 0%, var(--noche) 65%); display:flex; align-items:center; justify-content:center; }
.ua-course .body { padding:20px 22px 22px; }
.ua-course .kind { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--lavanda); }
.ua-course h3 { font-family:'Fraunces',serif; font-weight:500; font-size:22px; color:var(--noche); margin:6px 0 6px; }
.ua-course p { font-size:16px; font-weight:400; color:var(--texto-suave); line-height:1.6; }
.ua-bar { height:6px; background:var(--nieve-2); border-radius:6px; margin-top:16px; overflow:hidden; }
.ua-bar span { display:block; height:100%; background:linear-gradient(90deg,var(--aurora),var(--lavanda)); border-radius:6px; }
.ua-bar-txt { font-size:13.5px; color:var(--texto-suave); margin-top:6px; }
.ua-empty { background:var(--nieve-2); border-radius:18px; padding:26px; font-size:17px; font-weight:400; color:var(--texto); line-height:1.7; }

/* curso */
.cu-layout { display:grid; grid-template-columns:290px minmax(0,1fr); min-height:calc(100vh - 62px); }
.cu-side { background:#fff; border-right:1px solid var(--nieve-2); padding:24px 16px; position:sticky; top:62px; height:calc(100vh - 62px); overflow:auto; }
.cu-side .ctitle { font-family:'Fraunces',serif; font-size:20px; color:var(--noche); padding:0 10px; }
.cu-side .cprog { padding:0 10px; margin:10px 0 18px; }
.cu-nav { list-style:none; }
.cu-nav button { width:100%; text-align:left; background:none; border:none; border-radius:12px; padding:10px 10px; display:flex; gap:10px; align-items:flex-start; cursor:pointer; color:var(--texto); font-size:15.5px; line-height:1.35; }
.cu-nav button:hover { background:var(--nieve); }
.cu-nav button.on { background:var(--nieve-2); }
.cu-nav .num { flex:none; width:26px; height:26px; border-radius:50%; border:1.5px solid var(--lavanda-soft); color:var(--lavanda-oscura); font-size:12.5px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.cu-nav .done .num { background:linear-gradient(135deg,var(--aurora),var(--lavanda)); border-color:transparent; color:#fff; }
.cu-nav small { display:block; font-size:13px; color:var(--texto-suave); margin-top:2px; }
.cu-content { padding:40px clamp(20px,4vw,56px) 80px; max-width:900px; }
.cu-week { font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--lavanda); }
.cu-content h1 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(28px,3.6vw,40px); color:var(--noche); margin:8px 0 14px; line-height:1.15; }
.cu-ideas { display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr)); gap:10px; margin-bottom:26px; }
.cu-ideas div { line-height:1.45; }
.cu-ideas div { background:var(--nieve-2); border-radius:14px; padding:10px 14px; font-size:15.5px; color:var(--texto); }
.cu-ideas b { display:block; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--lavanda-oscura); margin-bottom:2px; }
.cu-video { position:relative; aspect-ratio:16/9; background:var(--noche); border-radius:20px; overflow:hidden; box-shadow:0 26px 60px -36px #2E1F47cc; }
.cu-video video { width:100%; height:100%; display:block; background:#000; }
.cu-pending { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#ffffffd0; padding:24px; gap:10px; font-size:16.5px; }
.cu-pending b { font-family:'Fraunces',serif; font-weight:400; font-size:22px; color:#fff; }
.cu-med { margin-top:18px; background:linear-gradient(120deg,#F4C2D733,#B8A4E333); border-radius:20px; padding:20px 22px; display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.cu-med .ico { width:52px; height:52px; border-radius:50%; background:var(--noche); display:flex; align-items:center; justify-content:center; flex:none; }
.cu-med .t { flex:1 1 220px; }
.cu-med .t small { font-size:12.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--lavanda-oscura); }
.cu-med .t div { font-family:'Fraunces',serif; font-size:22px; color:var(--noche); }
.cu-med .t p { font-size:15.5px; color:var(--texto-suave); margin-top:2px; }
.cu-med audio { width:100%; flex:1 1 100%; }
.cu-sec { margin-top:40px; }
.cu-sec h2 { font-family:'Fraunces',serif; font-weight:500; font-size:27px; color:var(--noche); margin-bottom:6px; }
.cu-sec .lead { font-size:17.5px; font-weight:400; color:var(--texto-suave); line-height:1.7; margin-bottom:16px; }
.cu-ex { display:grid; gap:12px; }
.cu-ex div { background:#fff; border:1px solid var(--nieve-2); border-radius:16px; padding:16px 18px; box-shadow:0 10px 28px -26px #2E1F4766; }
.cu-ex h3 { font-family:'Fraunces',serif; font-weight:500; font-size:20px; color:var(--noche); margin-bottom:4px; }
.cu-ex p { font-size:17px; font-weight:400; color:var(--texto); line-height:1.7; }
.cu-boxes { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
.cu-box { border-radius:16px; padding:16px 18px; background:var(--nieve-2); }
.cu-box b { display:block; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--lavanda-oscura); margin-bottom:6px; }
.cu-box p { font-size:17px; font-weight:400; color:var(--texto); line-height:1.7; }
.cu-box.wide { grid-column:1/-1; }
.cu-afirm { margin-top:26px; text-align:center; background:var(--noche); color:#fff; border-radius:22px; padding:30px 24px; }
.cu-afirm small { font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--aurora); }
.cu-afirm p { font-family:'Fraunces',serif; font-style:italic; font-size:clamp(20px,2.6vw,26px); line-height:1.4; margin-top:8px; }
.cu-tools { display:flex; flex-wrap:wrap; gap:12px; }
.cu-tool { flex:1 1 260px; text-align:left; background:#fff; border:1px solid var(--lavanda-soft); border-radius:16px; padding:16px 18px; cursor:pointer; }
.cu-tool b { display:block; font-family:'Fraunces',serif; font-weight:500; font-size:20px; color:var(--noche); }
.cu-tool span { font-size:15.5px; color:var(--texto-suave); }
.cu-foot { margin-top:40px; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; border-top:1px solid var(--nieve-2); padding-top:24px; }
.cu-modal { position:fixed; inset:0; background:#2E1F47cc; z-index:50; display:flex; align-items:center; justify-content:center; padding:20px; }
.cu-modal .box { background:#fff; border-radius:20px; width:min(1000px,100%); height:min(88vh,900px); display:flex; flex-direction:column; overflow:hidden; }
.cu-modal .bar { display:flex; justify-content:space-between; align-items:center; padding:12px 18px; border-bottom:1px solid var(--nieve-2); font-family:'Fraunces',serif; font-size:18px; color:var(--noche); }
.cu-modal .bar button { background:var(--nieve-2); border:1.5px solid var(--lavanda-soft); border-radius:20px; padding:8px 18px; cursor:pointer; font-size:15px; font-weight:600; }
.cu-modal iframe { flex:1; border:none; width:100%; }
.cu-mobnav { display:none; }
.ua-loading { text-align:center; padding:80px 20px; color:var(--texto-suave); }

@media (max-width:860px) {
  .cu-layout { grid-template-columns:1fr; }
  .cu-side { display:none; }
  .cu-mobnav { display:block; padding:12px 20px 0; }
  .cu-mobnav select { width:100%; font-family:inherit; font-size:17px; padding:12px; border-radius:12px; border:1px solid var(--nieve-2); background:#fff; color:var(--noche); }
  .cu-boxes { grid-template-columns:1fr; }
  .cu-ideas { grid-template-columns:1fr; }
  .ua-top { padding:12px 16px; }
  .ua-user .mail { display:none; }
}

/* Pregunta del tema («Tu momento de esta semana») */
.cu-pulso { background:linear-gradient(120deg,#F4C2D726,#B8A4E333); border:1px solid var(--nieve-2); border-radius:20px; padding:20px 22px; margin:0 0 22px; }
.cu-pulso .pu-tit { margin:0 0 6px; font-family:"Fraunces",Georgia,serif; font-size:22px; color:var(--noche); }
.cu-pulso .pu-tit small { display:block; font-family:"Manrope",sans-serif; font-size:14px; color:var(--texto-suave); margin-top:2px; }
.cu-pulso .pu-q { padding:12px 0; border-top:1px solid #ffffff99; }
.cu-pulso .pu-q:first-of-type { border-top:0; }
.cu-pulso .pu-intro { margin:0; font-size:15px; color:var(--texto-suave); }
.cu-pulso .pu-frase { margin:2px 0 8px; font-weight:600; font-size:17.5px; color:var(--texto); }
.cu-pulso .pu-slider { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--texto-suave); }
.cu-pulso .pu-slider input { flex:1; accent-color:var(--lavanda-oscura); }
.cu-pulso .pu-slider output { min-width:28px; text-align:center; font:600 20px "Fraunces",Georgia,serif; color:var(--lavanda-oscura); }
.cu-pulso .pu-nota { font-size:15px; color:var(--texto-suave); margin:4px 0 12px; }
.cu-pulso.done { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 18px; font-size:15.5px; color:var(--texto-suave); }
.cu-pulso.done b { color:var(--texto); font-weight:600; }
.cu-pulso .pu-dif { font-size:14.5px; }
.cu-pulso .ua-link-btn { border-color:var(--lavanda); color:var(--lavanda-oscura); }

/* «Tu flor del mes» (barra lateral y móvil) */
.cu-flor { margin:0 6px 18px; padding:14px 14px 12px; border-radius:16px; background:radial-gradient(120% 140% at 0% 0%, #4A3672 0%, var(--noche) 70%); color:#fff; }
.cu-flor:empty { display:none; }
.cu-flor .fl-tit { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--lavanda-soft); font-weight:700; }
.cu-flor .fl-nombre { font-family:'Fraunces',Georgia,serif; font-size:20px; color:var(--luz); margin:4px 0 2px; }
.cu-flor .fl-afir { font-size:15px; line-height:1.45; color:#ffffffcc; font-style:italic; }
.cu-flor .fl-btn { margin-top:10px; width:100%; border:1.5px solid #F8E59E99; background:#ffffff14; color:#fff; border-radius:999px; padding:9px 12px; font:600 14.5px 'Manrope',sans-serif; cursor:pointer; transition:background .2s, border-color .2s, transform .2s, box-shadow .2s; }
.cu-flor .fl-btn:hover { background:#F8E59E; color:var(--noche); border-color:#F8E59E; transform:translateY(-1px); box-shadow:0 8px 22px -8px #F8E59Eaa; }
.cu-mobnav .cu-flor { margin:12px 0 0; }

/* Que todo lo pulsable se vea pulsable */
.btn:focus-visible, .cu-tool:focus-visible, .cu-flor .fl-btn:focus-visible, .cu-nav button:focus-visible { outline:3px solid var(--lavanda); outline-offset:2px; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 16px 34px -12px #F4C2D7; filter:saturate(1.15); }
.btn-soft { border:1.5px solid var(--lavanda-soft); }
.btn-soft:hover { background:#fff; border-color:var(--lavanda); transform:translateY(-2px); box-shadow:0 10px 24px -14px #7C62B8aa; }
.cu-tool { position:relative; padding-right:44px; box-shadow:0 8px 22px -18px #2E1F4799; transition:transform .2s, border-color .2s, box-shadow .2s; }
.cu-tool::after { content:"→"; position:absolute; right:18px; top:50%; transform:translateY(-50%); font-size:20px; color:var(--lavanda-oscura); transition:transform .2s; }
.cu-tool:hover { transform:translateY(-2px); border-color:var(--lavanda); box-shadow:0 16px 32px -18px #7C62B8aa; }
.cu-tool:hover::after { transform:translate(4px,-50%); }

/* Todos los botones «respiran» para que se vea que se pueden pulsar; al pasar el ratón se paran y se elevan. */
@keyframes ua-respira { 0%,100% { transform:scale(1); filter:brightness(1); } 50% { transform:scale(var(--resp,1.035)); filter:brightness(1.05); } }
.btn, .cu-flor .fl-btn, .cu-tool, .ua-user button, .cu-modal .bar button { animation:ua-respira 3.4s ease-in-out infinite; }
.cu-tool { --resp:1.012; }
.btn:hover, .cu-flor .fl-btn:hover, .cu-tool:hover, .ua-user button:hover, .cu-modal .bar button:hover { animation:none; }
.ua-user button:hover { background:#ffffff1f; border-color:#ffffff99; transform:translateY(-1px); }
.cu-modal .bar button:hover { background:#fff; border-color:var(--lavanda); transform:translateY(-1px); }
.cu-nav button { transition:background .2s, transform .2s; }
.cu-nav button:hover { background:var(--nieve-2); transform:translateX(3px); }

/* «Tu momento de esta semana»: ventana emergente la primera vez y desplegable plegado después */
.pu-modal { z-index:60; }
.pu-box { width:min(600px,100%); max-height:90vh; overflow:auto; background:#fff; margin:0; box-shadow:0 30px 80px -30px #2E1F47; }
.pu-box .pu-luego { display:block; margin:14px auto 0; background:none; border:none; color:var(--texto-suave); font:500 15px 'Manrope',sans-serif; text-decoration:underline; cursor:pointer; }
.cu-pulso-det { margin:0 0 22px; border:1px solid var(--nieve-2); border-radius:16px; background:linear-gradient(120deg,#F4C2D71f,#B8A4E326); }
.cu-pulso-det summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 18px; cursor:pointer; font-size:15.5px; color:var(--texto-suave); }
.cu-pulso-det summary::-webkit-details-marker { display:none; }
.cu-pulso-det summary b { color:var(--texto); font-weight:600; }
.cu-pulso-det summary em { font-style:normal; font-weight:700; font-size:14.5px; color:var(--lavanda-oscura); border:1.5px solid var(--lavanda); border-radius:999px; padding:5px 14px; animation:ua-respira 3.4s ease-in-out infinite; }
.cu-pulso-det summary:hover em { animation:none; background:var(--lavanda-oscura); color:#fff; }
.cu-pulso-det[open] summary em { display:none; }
.cu-pulso-det:not(.hecho) { border-color:var(--lavanda); }
.cu-pulso-det .pu-body { padding:4px 18px 16px; }
.cu-pulso-det .pu-q, .pu-box .pu-q { padding:12px 0; border-top:1px solid var(--nieve-2); }
.cu-pulso-det .pu-intro, .pu-box .pu-intro { margin:0; font-size:15px; color:var(--texto-suave); }
.cu-pulso-det .pu-frase, .pu-box .pu-frase { margin:2px 0 8px; font-weight:600; font-size:17.5px; color:var(--texto); }
.cu-pulso-det .pu-slider, .pu-box .pu-slider { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--texto-suave); }
.cu-pulso-det .pu-slider input, .pu-box .pu-slider input { flex:1; accent-color:var(--lavanda-oscura); }
.cu-pulso-det .pu-slider output, .pu-box .pu-slider output { min-width:28px; text-align:center; font:600 20px "Fraunces",Georgia,serif; color:var(--lavanda-oscura); }
.cu-pulso-det .pu-nota, .pu-box .pu-nota { font-size:15px; color:var(--texto-suave); margin:4px 0 12px; }
.cu-pulso-det .pu-dif { font-size:14.5px; }
.pu-acciones { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:4px; }
.pu-acciones .ua-msg { margin-top:0; }

/* Ojo para ver la contraseña */
.ua-pass { position:relative; }
.ua-pass input { padding-right:52px; }
.ua-ojo { position:absolute; right:6px; top:50%; transform:translateY(-50%); width:42px; height:42px; display:flex; align-items:center; justify-content:center; background:none; border:none; border-radius:10px; color:var(--lavanda-oscura); cursor:pointer; transition:background .2s, color .2s; }
.ua-ojo:hover { background:var(--nieve-2); color:var(--noche); }
.ua-ojo:focus-visible { outline:3px solid var(--lavanda); outline-offset:1px; }

/* Mínimos de la contraseña */
.ua-reglas { list-style:none; margin:-4px 0 14px; padding:0; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:14.5px; color:var(--texto-suave); }
.ua-reglas li::before { content:"○"; display:inline-block; width:20px; color:var(--lavanda); }
.ua-reglas li.ok { color:#3E8B6A; }
.ua-reglas li.ok::before { content:"✓"; color:#3E8B6A; font-weight:700; }
