.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.5rem}
.card{display:flex;flex-direction:column;border:1px solid var(--tlms-line);border-radius:var(--tlms-radius);overflow:hidden;background:var(--tlms-paper)}
.card__media{display:block;aspect-ratio:16/9;background:var(--tlms-surface)}
.card__media img{width:100%;height:100%;object-fit:cover;display:block}
.card__body{display:flex;flex-direction:column;gap:.6rem;padding:1rem;flex:1}
.card__body .btn{margin-top:auto;align-self:flex-start}
.card__title{font-size:1.1rem;margin:0}
.card__title a{color:inherit;text-decoration:none}
.card__meta{margin:0;color:var(--tlms-muted);font-size:.9rem}

.progress{height:.5rem;background:var(--tlms-line);border-radius:99px;overflow:hidden;flex:1}
.progress__bar{display:block;height:100%;background:var(--tlms-accent);transition:width .3s}

.course__head{margin-bottom:2rem}
.course__lead{font-size:1.15rem;color:var(--tlms-muted);max-width:46rem}
.course__cta{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;margin-top:1.25rem}
.course__progress{display:flex;align-items:center;gap:.6rem;min-width:12rem}
.course__grid{display:grid;gap:2.5rem;grid-template-columns:minmax(0,1fr)}
.course__outline{background:var(--tlms-surface);padding:1.25rem;border-radius:var(--tlms-radius);align-self:start}
.course__outline-title{font-size:1.2rem}
@media (min-width:60rem){.course__grid{grid-template-columns:minmax(0,1fr) 22rem}}

.outline,.outline__lessons{list-style:none;margin:0;padding:0}
.outline__module+.outline__module{margin-top:1.1rem}
.outline__title{font:700 .95rem var(--tlms-font);margin:0 0 .4rem}
.outline__item{position:relative;padding:.35rem .5rem .35rem 1.6rem;font-size:.95rem;border-radius:4px}
.outline__item::before{content:"";position:absolute;left:.35rem;top:.75rem;width:.7rem;height:.7rem;border:2px solid var(--tlms-muted);border-radius:50%}
.outline__item.is-done::before{background:var(--tlms-accent);border-color:var(--tlms-accent)}
.outline__item.is-child{margin-left:1rem;font-size:.9rem}
.outline__item.is-current{background:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--tlms-accent)}
.outline__item a{color:inherit;text-decoration:none}
.outline__item a:hover{text-decoration:underline}
.outline__item span{color:var(--tlms-muted)}
.outline__note{display:block;font-size:.8rem;color:var(--tlms-muted)}
.outline__item.is-locked::before{border-style:dashed}
.materials{margin-top:2rem;padding:1rem 1.25rem;border:1px solid var(--tlms-line);border-radius:var(--tlms-radius)}
.materials h2{font-size:1.1rem}

/* Índice: más aire y legibilidad */
.outline__module+.outline__module{margin-top:1.75rem}
.outline__title{font:700 .95rem/1.4 var(--tlms-font);margin:0 0 .6rem;color:var(--tlms-ink)}
.outline__item{padding:.55rem .5rem .55rem 1.9rem;font-size:.95rem;line-height:1.45}
.outline__item::before{top:.85rem;left:.4rem}
.course__outline .outline__item{background:transparent}
.tlms-progress{margin:1rem 0}
.tlms-progress .progress{margin:.4rem 0}
