/* Campus ILC · pages-academico
   Mi Formación (fm-), Curso y módulo (cu-), Actividades (ac-), Calificaciones (nt-), reproductor (vplayer). */

/* ───────── Compartidos del área académica ───────── */
.btn--danger { --bg: var(--danger); --fg: #fff; --bd: var(--danger); }
.btn--danger:hover { --bg: #8A2814; --bd: #8A2814; }
.ac-danger { --fg: var(--danger); --bd: #E8B9AE; }
.ac-danger:hover { --bg: var(--danger-bg); --fg: var(--danger); --bd: var(--danger); }
.ga-confirm p + p { margin-top: 8px; }
.nowrap { white-space: nowrap; }
button.link { cursor: pointer; }
button.link:focus-visible { outline-offset: 4px; }

/* Reproductor de vídeo (demo) */
.vplayer { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-lg); overflow: hidden; background: #140705; isolation: isolate; }
.vplayer > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .82; transition: opacity 400ms var(--ease-out), transform 6s linear; }
.vplayer.is-playing > img { opacity: .62; transform: scale(1.04); }
.vplayer-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 6, 2, .1) 40%, rgba(20, 6, 2, .75) 100%); }
.vplayer-big { position: absolute; left: 50%; top: 50%; width: 84px; height: 84px; margin: -42px 0 0 -42px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .94); color: var(--burgundy); display: grid; place-items: center; box-shadow: var(--e3); transition: transform var(--d-ui) var(--ease-out), opacity var(--d-ui); }
.vplayer-big svg { width: 34px; height: 34px; margin-left: 4px; fill: currentColor; }
.vplayer-big:hover { transform: scale(1.06); }
.vplayer.is-playing .vplayer-big { opacity: 0; pointer-events: none; }
.vplayer-live { position: absolute; top: 14px; left: 16px; padding: 4px 12px; border-radius: var(--r-pill); background: rgba(20, 6, 2, .55); color: #fff; font-size: 0.8rem; }
.vplayer-live:empty { display: none; }
.vplayer-bar { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 10px 14px; color: #fff; }
.vplayer-btn { width: 36px; height: 36px; border-radius: 50%; border: 0; background: transparent; color: #fff; display: grid; place-items: center; flex: none; transition: background var(--d-fast); }
.vplayer-btn:hover { background: rgba(255, 255, 255, .16); }
.vplayer-btn[aria-pressed="true"] { color: var(--gold-soft); }
.vplayer-btn svg { width: 20px; height: 20px; }
.vplayer-track { flex: 1; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .3); overflow: hidden; }
.vplayer-track span { display: block; height: 100%; background: #fff; transform-origin: left; transform: scaleX(0); transition: transform 1s linear; }
.vplayer-time { font-size: 0.82rem; white-space: nowrap; }
.vplayer-sub { margin-top: 14px; color: var(--ink-soft); font-size: 0.95rem; }
.vplayer-note { display: flex; gap: 8px; margin-top: 10px; font-size: 0.86rem; color: var(--ink-mute); }
.vplayer-note svg { width: 16px; height: 16px; flex: none; margin-top: 3px; }

/* ═════════ MI FORMACIÓN ═════════ */
.fm-hero { position: relative; overflow: hidden; isolation: isolate; color: #fff; background: linear-gradient(90deg, #4A0A00 0%, #5D0D00 45%, #6A1405 100%); }
.fm-hero-media { position: absolute; inset: 0 0 0 34%; z-index: -3; }
.fm-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 45%; opacity: .55; }
.fm-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #5D0D00 0%, #5D0D00 36%, rgba(93, 13, 0, .55) 58%, rgba(93, 13, 0, .25) 72%, rgba(70, 10, 0, .82) 88%, #4A0A00 100%); }
.fm-hero-statue { position: absolute; z-index: -1; right: 25%; bottom: -46%; height: 175%; pointer-events: none; }
.fm-hero-statue img { height: 100%; width: auto; filter: drop-shadow(0 20px 30px rgba(20, 4, 0, .5)); -webkit-mask-image: linear-gradient(180deg, #000 50%, transparent 82%); mask-image: linear-gradient(180deg, #000 50%, transparent 82%); }
.fm-hero-inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--s-7); min-height: 240px; padding-block: var(--s-8); max-width: 1480px; }
.fm-hero-escudo { width: 96px; height: 96px; color: rgba(255, 255, 255, .2); }
.fm-hero-copy h1 { color: #fff; font-weight: 500; font-size: clamp(2.1rem, 1.3rem + 2.5vw, 3.4rem); }
.fm-hero-copy h1 strong { font-weight: 700; }
.fm-hero-copy p { margin-top: 10px; font-family: var(--font-display); font-style: italic; font-size: clamp(1.15rem, 1rem + .5vw, 1.45rem); color: var(--on-dark-soft); max-width: 34ch; line-height: 1.35; }
.fm-hero-motto { padding-left: var(--s-7); border-left: 1px solid rgba(255, 255, 255, .45); min-height: 150px; display: flex; flex-direction: column; justify-content: center; }
.fm-hero-motto p { text-transform: uppercase; letter-spacing: .32em; font-size: 0.95rem; line-height: 1.75; color: #fff; }
.fm-hero-motto span { display: block; width: 36px; height: 1px; background: rgba(255, 255, 255, .7); margin: 12px 0; }
.fm-hero-motto small { text-transform: uppercase; letter-spacing: .26em; font-size: 0.72rem; line-height: 1.8; color: var(--on-dark-soft); }

.fm-body { position: relative; z-index: 2; }
.fm-summary { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, .85fr); margin-top: var(--s-7); background: var(--stone); border-radius: var(--r-lg); box-shadow: var(--e1); }
.fm-progress { display: flex; align-items: center; gap: 22px; padding: 26px 32px; background: var(--burgundy); color: var(--on-dark); border-radius: var(--r-lg); box-shadow: var(--e2); }
.fm-sum-ico { width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--surface); color: var(--burgundy); box-shadow: var(--e1); }
.fm-sum-ico svg { width: 27px; height: 27px; }
.fm-sum-ico--light { background: rgba(255, 255, 255, .12); color: #fff; box-shadow: none; }
.fm-progress-main { flex: 1; min-width: 0; }
.fm-progress .caps { color: var(--on-dark-soft); letter-spacing: .1em; }
.fm-progress-num { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 2px 0 12px; }
.fm-progress-num b { font-family: var(--font-display); font-size: 3.1rem; line-height: 1; font-weight: 600; color: #fff; }
.fm-progress-num span { font-family: var(--font-display); font-style: italic; font-size: 1.15rem; color: var(--on-dark-soft); }
.fm-program { display: flex; align-items: center; gap: 20px; padding: 26px 32px; }
.fm-program .caps { letter-spacing: .1em; }
.fm-program-name { font-size: 1.22rem; font-weight: 500; color: var(--ink); margin: 4px 0 6px; line-height: 1.3; }
.fm-quote { margin: 18px 0; padding: 4px 28px; border-left: 1px solid var(--line-strong); text-align: center; align-self: center; }
.fm-quote q { display: block; font-family: var(--font-display); font-style: italic; font-size: 1.45rem; line-height: 1.3; color: var(--burgundy); quotes: "“" "”"; }
.fm-quote cite { display: block; margin-top: 10px; font-family: var(--font-display); font-style: italic; color: var(--gold); font-size: 1rem; }

.fm-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--s-4); margin-top: var(--s-6); }
.fm-stat { padding: 14px 12px; gap: 10px; border-radius: var(--r-lg); box-shadow: var(--e1); min-width: 0; }
.fm-stat .stat-ico { width: 40px; height: 40px; }
.fm-stat .stat-num { font-size: 2rem; flex: none; }
.fm-stat .stat-label { font-size: 0.72rem; min-width: 0; }
.fm-stat--link { text-decoration: none; color: inherit; transition: border-color var(--d-fast), transform var(--d-ui) var(--ease-out), box-shadow var(--d-ui); }
.fm-stat--link:hover { color: inherit; border-color: var(--burgundy-200); }
@media (hover: hover) and (pointer: fine) { .fm-stat--link:hover { transform: translateY(-2px); box-shadow: var(--e2); } }

.fm-tabs-wrap { margin-top: var(--s-9); }
.fm-tabs .tab { font-size: 1.02rem; }
.fm-filter { display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); flex-wrap: wrap; margin-bottom: var(--s-5); }
.fm-chip-n { font-size: 0.78rem; opacity: .7; font-weight: 700; }
.fm-school[hidden] { display: none; }
.fm-school .school-card-body { gap: 4px; }
.fm-school-sum { color: var(--ink-soft); font-size: 0.93rem; margin-top: 4px; line-height: 1.5; }
.fm-school-active { display: flex; gap: 6px; align-items: flex-start; margin-top: 8px; font-size: 0.84rem; font-weight: 600; color: var(--burgundy); line-height: 1.35; }
.fm-school-active svg { width: 15px; height: 15px; margin-top: 2px; }
.fm-foot-link { margin-top: var(--s-6); text-align: right; }

.fm-intro { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--s-6); align-items: start; }
.fm-res .btn { min-width: 108px; }
.fm-done { display: inline-flex; align-items: center; gap: 4px; color: var(--ok); font-size: 0.84rem; font-weight: 600; }
.fm-done svg { width: 16px; height: 16px; }
.fm-intro-num b { font-size: 3.4rem; line-height: 1.1; color: var(--burgundy); font-weight: 600; }

.fm-trans { list-style: none; display: grid; gap: var(--s-4); }
.fm-trans-row { display: grid; grid-template-columns: 210px minmax(0, 1fr) auto; overflow: hidden; transition: border-color var(--d-ui); }
.fm-trans-row.is-on { border-color: #BFD9CC; }
.fm-trans-media { position: relative; min-height: 150px; background: var(--stone); }
.fm-trans-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fm-trans-body { padding: 20px 24px; display: flex; flex-direction: column; gap: 6px; }
.fm-trans-body h3 { font-size: 1.5rem; margin-top: 4px; }
.fm-trans-body p.soft { font-size: 0.95rem; max-width: 70ch; }
.fm-trans-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 0.86rem; color: var(--ink-mute); }
.fm-trans-meta svg { width: 15px; height: 15px; }
.fm-trans-act { padding: 24px; display: flex; align-items: center; }

.fm-esc-head { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--s-6); align-items: center; }
.fm-esc-img { aspect-ratio: 4 / 3; border-radius: var(--r-md); overflow: hidden; }
.fm-esc-img img { width: 100%; height: 100%; object-fit: cover; }
.fm-esc-h { font-size: 1.25rem; color: var(--burgundy); margin-bottom: 8px; }
.fm-syl { list-style: none; }
.fm-syl li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.fm-syl li:last-child { border-bottom: 0; }
.fm-syl-n { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--stone); color: var(--ink-soft); font-weight: 700; font-size: 0.82rem; }
.fm-syl .is-completado .fm-syl-n { background: var(--ok); color: #fff; }
.fm-syl .is-curso .fm-syl-n { background: var(--burgundy); color: #fff; }
.fm-syl-t { font-weight: 500; line-height: 1.35; }
.fm-syl-s { display: inline-flex; align-items: center; gap: 6px; font-size: 0.84rem; color: var(--ink-mute); white-space: nowrap; }
.fm-syl-s svg { width: 15px; height: 15px; }
.fm-syl .is-completado .fm-syl-s { color: var(--ok); }
.fm-syl .is-curso .fm-syl-s { color: var(--burgundy); font-weight: 600; }
.fm-prog-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.fm-prog-dl div { padding: 14px 16px; background: var(--stone); border-radius: var(--r-md); }
.fm-prog-dl dt { display: flex; align-items: center; gap: 8px; font-size: 0.74rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--ink-mute); }
.fm-prog-dl dt svg { width: 16px; height: 16px; color: var(--burgundy); }
.fm-prog-dl dd { margin: 4px 0 0; font-weight: 600; line-height: 1.4; }

/* ═════════ CURSO Y MÓDULO ═════════ */
.cu-hero .wrap { padding-bottom: calc(var(--s-9) + 70px); max-width: var(--maxw); }
.cu-hero h1 { max-width: 20ch; font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.7rem); }
.cu-hero .kicker { margin-bottom: 14px; }
.cu-panel.overlap { margin-top: -88px; }
.cu-panel { display: grid; grid-template-columns: 290px minmax(0, 1fr) 290px; padding: 22px 0; box-shadow: var(--e2); }
.cu-nav { display: flex; flex-direction: column; gap: 2px; padding: 0 20px; }
.cu-nav-btn { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 14px; border: 0; border-radius: var(--r-md); background: none; text-align: left; font-size: 1.06rem; color: var(--ink-soft); transition: background var(--d-fast), color var(--d-fast); }
.cu-nav-btn svg { width: 19px; height: 19px; flex: none; }
.cu-nav-btn::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 3px; background: var(--burgundy); transform: scaleY(0); transition: transform var(--d-ui) var(--ease-out); }
.cu-nav-btn:hover { background: var(--burgundy-50); color: var(--burgundy); }
.cu-nav-btn[aria-selected="true"] { color: var(--burgundy); font-weight: 600; }
.cu-nav-btn[aria-selected="true"]::before { transform: scaleY(1); }
.cu-nav-btn:disabled { opacity: .45; pointer-events: none; }
.cu-prog { padding: 4px 32px; border-left: 1px solid var(--line); border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.cu-prog-title { font-size: 1.45rem; color: var(--ink); }
.cu-prog .icon-btn { width: 38px; height: 38px; color: var(--burgundy); }
.cu-steps { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.cu-steps li { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); color: var(--ink-mute); background: var(--surface); }
.cu-steps li svg { width: 16px; height: 16px; }
.cu-steps li.is-done { background: var(--ok); border-color: var(--ok); color: #fff; }
.cu-tools { display: flex; flex-direction: column; gap: 0; padding: 0 20px; }
.cu-tools .caps { padding: 0 10px 6px; letter-spacing: .14em; font-size: 0.7rem; }
.cu-tools button { display: flex; align-items: center; gap: 12px; padding: 7px 10px; border: 0; border-radius: var(--r-md); background: none; color: var(--burgundy); font-weight: 500; text-align: left; transition: background var(--d-fast); }
.cu-tools button svg { width: 19px; height: 19px; flex: none; }
.cu-tools button:hover { background: var(--burgundy-50); }

.cu-index { margin-top: var(--s-7); }
.cu-index-label { display: block; margin-bottom: 10px; letter-spacing: .14em; }
.cu-index ol { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cu-index-item a { height: 100%; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); color: var(--ink); text-decoration: none; transition: border-color var(--d-fast), background var(--d-fast), transform var(--d-ui) var(--ease-out); }
.cu-index-item a:hover { border-color: var(--burgundy-200); color: var(--ink); }
.cu-index-item.is-current a { border-color: var(--burgundy); box-shadow: inset 0 0 0 1px var(--burgundy); background: var(--burgundy-50); }
.cu-index-dot { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--stone); color: var(--ink-mute); font-weight: 700; font-family: var(--font-display); font-size: 1.1rem; }
.cu-index-dot svg { width: 17px; height: 17px; }
.is-completado .cu-index-dot { background: var(--ok); color: #fff; }
.is-curso .cu-index-dot { background: var(--burgundy); color: #fff; }
.cu-index-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.cu-index-text small { font-size: 0.7rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-mute); font-weight: 700; }
.cu-index-text strong { font-size: 0.93rem; font-weight: 600; margin: 2px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cu-index-text em { font-style: normal; font-size: 0.8rem; color: var(--ink-mute); }
.is-curso .cu-index-text em { color: var(--burgundy); font-weight: 600; }
.is-completado .cu-index-text em { color: var(--ok); font-weight: 600; }
.is-pendiente a { background: var(--canvas); }
.is-pendiente .cu-index-text strong { color: var(--ink-soft); }

.cu-readonly { margin-top: var(--s-5); }
.cu-content { margin-top: var(--s-8); scroll-margin-top: calc(var(--header-h) + 24px); }
.cu-panel-body.tab-panel { padding-top: 0; }

.cu-info { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--s-9); align-items: start; }
.cu-eyebrow { color: var(--gold); letter-spacing: .2em; }
.cu-title { color: var(--burgundy); font-size: var(--t-2xl); margin-top: 6px; }
.cu-title--sm { font-size: var(--t-xl); margin-top: 0; }
.cu-desc { margin-top: 16px; font-size: 1.15rem; color: var(--ink-soft); max-width: 66ch; line-height: 1.65; }
.cu-quote { margin: var(--s-6) 0 var(--s-5); max-width: 640px; font-size: 1.55rem; }
.cu-hint { display: flex; align-items: center; gap: 12px; color: var(--ink-mute); font-size: 0.92rem; }
.cu-hint svg { width: 24px; height: 24px; color: var(--burgundy); }
.cu-subtabs { margin-top: var(--s-5); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.cu-subtabs::-webkit-scrollbar { display: none; }
.cu-subtabs .tab { font-family: var(--font-display); font-size: 1.12rem; padding: 12px 26px; }
.cu-h3 { color: var(--burgundy); font-size: 1.6rem; margin-bottom: 12px; }
.cu-p { color: var(--ink-soft); margin-bottom: 10px; max-width: 75ch; }
.cu-how { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: var(--s-5); }
.cu-how li { display: flex; gap: 12px; padding: 16px; background: var(--stone); border-radius: var(--r-md); }
.cu-how li > span { width: 30px; height: 30px; border-radius: 50%; background: var(--burgundy); color: #fff; display: grid; place-items: center; flex: none; font-family: var(--font-display); font-weight: 700; }
.cu-how strong { display: block; line-height: 1.3; }
.cu-how p { font-size: 0.88rem; color: var(--ink-soft); margin-top: 2px; line-height: 1.45; }
.cu-ficha { position: sticky; top: calc(var(--header-h) + 20px); background: var(--stone); border-color: transparent; box-shadow: none; padding: 6px 26px; }
.cu-ficha-row { display: flex; gap: 18px; align-items: flex-start; padding: 18px 0; border-bottom: 1px solid var(--line-strong); }
.cu-ficha-row:last-child { border-bottom: 0; }
.cu-ficha-row svg { width: 30px; height: 30px; color: var(--burgundy); stroke-width: 1.4; flex: none; }
.cu-ficha-row strong { display: block; color: var(--burgundy); font-weight: 500; }
.cu-ficha-row span { display: block; line-height: 1.4; }
.cu-tutors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 8px; }
.cu-tutor { display: flex; gap: 18px; align-items: center; padding: 20px; }
.cu-tutor strong { display: block; font-size: 1.05rem; }
.cu-tutor .small { display: block; }
.cu-tutor .link { font-size: 0.88rem; word-break: break-all; }
.cu-tutor > div { min-width: 0; }
.cu-dudas-card { display: flex; gap: 16px; align-items: center; margin-top: 18px; padding: 18px 20px; background: var(--burgundy-50); border-radius: var(--r-lg); }
.cu-dudas-card > div { flex: 1; min-width: 0; }
.cu-dudas-ico { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--surface); color: var(--burgundy); }
.cu-dudas-ico svg { width: 22px; height: 22px; }

.cu-sec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s-5); flex-wrap: wrap; margin-bottom: var(--s-5); }
.cu-sec-head p { margin-top: 6px; }
.cu-mat-prog { min-width: 240px; }
.cu-mat-prog p { margin-bottom: 6px; color: var(--ink-soft); }
.cu-res-card { padding: 4px 24px; }
.cu-res .btn { min-width: 124px; }
.cu-seen-btn, .cu-seen { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 0; border-radius: var(--r-md); background: none; color: var(--ink-mute); font-size: 0.84rem; font-weight: 600; white-space: nowrap; }
.cu-seen-btn:hover { background: var(--stone); color: var(--ink); }
.cu-seen-btn svg, .cu-seen svg { width: 18px; height: 18px; }
.cu-seen-btn[aria-pressed="true"], .cu-seen { color: var(--ok); }
.cu-res.is-done .res-body strong { color: var(--ink-soft); }

.cu-acts { list-style: none; display: grid; gap: 12px; }
.cu-act { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 20px; align-items: center; padding: 18px 22px; transition: border-color var(--d-fast), box-shadow var(--d-ui); }
.cu-act:hover { border-color: var(--burgundy-200); box-shadow: var(--e2); }
.cu-act-ico { width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: var(--burgundy-50); color: var(--burgundy); }
.cu-act-ico svg { width: 22px; height: 22px; }
.cu-act.is-entregado .cu-act-ico, .cu-act.is-calificado .cu-act-ico { background: var(--ok-bg); color: var(--ok); }
.cu-act-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cu-act-body .caps { letter-spacing: .12em; font-size: 0.7rem; }
.cu-act-body strong { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; line-height: 1.2; }
.cu-act-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 0.86rem; color: var(--ink-mute); margin-top: 2px; }
.cu-act-meta svg { width: 15px; height: 15px; }
.cu-act-state { display: flex; align-items: center; gap: 10px; }
.cu-act-nota { font-family: var(--font-display); font-size: 1.6rem; font-weight: 600; color: var(--burgundy); }

.cu-locked { padding: var(--s-8); max-width: 900px; }
.cu-locked-ico { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--stone); color: var(--burgundy); margin-bottom: 16px; }
.cu-locked-ico svg { width: 28px; height: 28px; }
.cu-locked .lead { margin-top: 12px; }
.cu-locked-list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cu-locked-list li { display: flex; gap: 10px; align-items: center; padding: 12px 14px; background: var(--stone); border-radius: var(--r-md); }
.cu-locked-list svg { width: 17px; height: 17px; color: var(--gold); flex: none; }

/* Modales de herramientas */
.cu-lb-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.cu-lb-sum > div { padding: 16px; background: var(--stone); border-radius: var(--r-md); display: flex; flex-direction: column; }
.cu-lb-sum b { font-family: var(--font-display); font-size: 2.1rem; line-height: 1.1; color: var(--burgundy); font-weight: 600; }
.cu-lb-sum small { color: var(--ink-mute); font-size: 0.8rem; }
.cu-lb-sum .is-total { background: var(--burgundy); color: var(--on-dark); }
.cu-lb-sum .is-total .caps { color: var(--on-dark-soft); }
.cu-lb-sum .is-total b { color: #fff; }
.cu-lb-sum .is-total small { color: var(--on-dark-soft); }
.cu-lb-h { font-size: 1.2rem; color: var(--burgundy); margin: 24px 0 10px; }
.cu-lb { min-width: 560px; }
.cu-lb-tipo { display: block; font-size: 0.8rem; color: var(--ink-mute); }
.cu-lb-fb { display: flex; gap: 6px; margin-top: 6px; font-size: 0.84rem; color: var(--ink-soft); line-height: 1.4; }
.cu-lb-fb svg { width: 14px; height: 14px; flex: none; margin-top: 3px; color: var(--gold); }
.cu-lb-total td { background: var(--canvas); font-weight: 700; }
.cu-parts { list-style: none; }
.cu-part { display: flex; gap: 14px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.cu-part:last-child { border-bottom: 0; }
.cu-part > div { flex: 1; min-width: 0; }
.cu-part strong { display: block; }
.cu-part span { font-size: 0.85rem; color: var(--ink-mute); }
.cu-part[hidden] { display: none; }
.cu-rings { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 20px 14px; margin: 22px 0 6px; }
.cu-ring { margin: 0; text-align: center; }
.cu-ring .ring { margin: 0 auto; }
.cu-ring .ring > span { font-size: 1.55rem; }
.cu-ring figcaption { margin-top: 8px; font-size: 0.88rem; font-weight: 600; line-height: 1.3; }
.cu-report { list-style: none; }
.cu-report li { display: grid; grid-template-columns: minmax(0, 1fr) 150px 44px; gap: 12px; align-items: center; padding: 8px 0; font-size: 0.92rem; }
.cu-report b { text-align: right; }
.cu-dudas { list-style: none; }
.cu-duda { padding: 16px 0; border-bottom: 1px solid var(--line); }
.cu-duda:last-child { border-bottom: 0; }
.cu-duda-head { display: flex; gap: 12px; align-items: center; }
.cu-duda-head strong { display: block; line-height: 1.3; }
.cu-duda-head span { font-size: 0.82rem; color: var(--ink-mute); }
.cu-duda > p { margin-top: 8px; color: var(--ink-soft); font-size: 0.95rem; }
.cu-duda-resp { display: flex; gap: 10px; margin-top: 12px; padding: 12px 14px; background: var(--stone); border-radius: var(--r-md); }
.cu-duda-resp strong { font-size: 0.88rem; }
.cu-duda-resp p { font-size: 0.92rem; color: var(--ink-soft); }
.cu-duda-wait { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 0.85rem; color: var(--warn); font-weight: 600; }
.cu-duda-wait svg { width: 15px; height: 15px; }
.cu-duda.is-mine { background: linear-gradient(90deg, var(--burgundy-50), transparent 70%); padding-left: 12px; border-radius: var(--r-md); }
.cu-reading h4 { color: var(--burgundy); margin: 16px 0 6px; }
.cu-reading p { color: var(--ink-soft); }
.cu-reading ul { padding-left: 20px; color: var(--ink-soft); }
.cu-reading li { margin: 4px 0; }
.cu-fb-nota b { font-family: var(--font-display); font-size: 3rem; color: var(--burgundy); }

/* ═════════ ACTIVIDADES ═════════ */
.ac-hero { position: relative; color: var(--on-dark); background: var(--burgundy-800); overflow: hidden; isolation: isolate; }
.ac-hero-media { position: absolute; inset: 0; z-index: -2; }
.ac-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.ac-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(62, 9, 0, .96) 0%, rgba(70, 11, 2, .88) 50%, rgba(70, 11, 2, .62) 100%); }
.ac-hero .wrap { padding-top: var(--s-8); padding-bottom: var(--s-7); }
.ac-hero-row { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s-6) var(--s-8); flex-wrap: wrap; }
.ac-hero-title { min-width: 0; flex: 1 1 420px; }
.ac-type { display: inline-flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: .2em; font-size: 0.76rem; font-weight: 700; color: var(--gold-soft); margin-bottom: 10px; }
.ac-type svg { width: 16px; height: 16px; }
.ac-hero h1 { color: #fff; font-size: clamp(2rem, 1.4rem + 2vw, 3.1rem); max-width: 24ch; }
.ac-meta { display: flex; margin: 0; }
.ac-meta > div { padding: 0 22px; border-left: 1px solid rgba(255, 255, 255, .25); }
.ac-meta dt { text-transform: uppercase; letter-spacing: .16em; font-size: 0.68rem; color: var(--on-dark-soft); font-weight: 600; }
.ac-meta dd { margin: 6px 0 0; font-weight: 600; color: #fff; white-space: nowrap; }
.ac-back { display: inline-flex; align-items: center; gap: 8px; margin-top: var(--s-6); color: var(--on-dark-soft); text-decoration: none; font-size: 0.93rem; font-weight: 600; }
.ac-back:hover { color: #fff; }
.ac-back svg { width: 16px; height: 16px; transition: transform var(--d-ui) var(--ease-out); }
.ac-back:hover svg { transform: translateX(-3px); }

.ac-body { padding-top: var(--s-8); }
.ac-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--s-7); align-items: start; }
.ac-main { display: flex; flex-direction: column; gap: var(--s-5); min-width: 0; }
.ac-side { display: flex; flex-direction: column; gap: var(--s-5); position: sticky; top: calc(var(--header-h) + 20px); }
.ac-side .card-title { font-size: 1.3rem; margin-bottom: 10px; }
.ac-lead { font-size: 1.08rem; margin-top: 8px; line-height: 1.65; }
.ac-h3 { font-size: 1.35rem; color: var(--burgundy); margin: 22px 0 8px; }
.ac-qs { padding-left: 22px; color: var(--ink-soft); }
.ac-qs li { margin: 6px 0; padding-left: 4px; }
.ac-qs li::marker { color: var(--burgundy); font-weight: 700; }
.ac-rules, .ac-checks { list-style: none; }
.ac-rules li { display: flex; gap: 10px; padding: 7px 0; font-size: 0.93rem; color: var(--ink-soft); line-height: 1.45; }
.ac-rules svg { width: 17px; height: 17px; color: var(--burgundy); flex: none; margin-top: 3px; }
.ac-checks li { display: flex; gap: 8px; align-items: center; padding: 6px 0; font-size: 0.93rem; color: var(--ink-mute); }
.ac-checks svg { width: 18px; height: 18px; }
.ac-checks .is-ok { color: var(--ok); font-weight: 600; }
.ac-count { font-size: 0.82rem; color: var(--ink-mute); white-space: nowrap; }
.ac-count.is-over { color: var(--danger); font-weight: 700; }
.ac-ok { color: var(--ok); font-weight: 600; }
.ac-warn { color: var(--warn); font-weight: 600; }

/* Foro */
.ac-post { padding: 20px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); }
.ac-post--tutor { position: relative; padding: 28px 30px; border-top: 3px solid var(--burgundy); }
.ac-pin { position: absolute; top: 18px; right: 22px; display: inline-flex; align-items: center; gap: 6px; text-transform: uppercase; letter-spacing: .14em; font-size: 0.68rem; font-weight: 700; color: var(--gold); }
.ac-pin svg { width: 14px; height: 14px; }
.ac-post-head { display: flex; gap: 12px; align-items: center; }
.ac-post-head strong { display: block; line-height: 1.3; }
.ac-post-head span { font-size: 0.84rem; color: var(--ink-mute); }
.ac-post-title { color: var(--burgundy); margin: 18px 0 8px; font-size: var(--t-xl); }
.ac-post-lead { font-size: 1.06rem; line-height: 1.65; }
.ac-post-subj { margin: 12px 0 4px; font-size: 1.2rem; }
.ac-post-text { color: var(--ink-soft); }
.ac-post-text p + p { margin-top: 8px; }
.ac-post-text ul { padding-left: 20px; margin: 6px 0; }
.ac-post-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; margin-top: 14px; }
.ac-post-foot .link { font-size: 0.88rem; }
.ac-del { color: var(--danger); }
.ac-del:hover { color: #8A2814; }
.ac-post.is-mine { border-color: var(--burgundy-200); background: #FFFDFB; }
.ac-post.is-new { animation: acNew 1600ms var(--ease-out); }
@keyframes acNew { from { box-shadow: 0 0 0 4px var(--burgundy-100); } to { box-shadow: 0 0 0 0 transparent; } }
.ac-discussion { margin-top: 4px; }
.ac-thread { display: flex; flex-direction: column; gap: 14px; }
.ac-thread--nested { margin: 14px 0 0 22px; padding-left: 22px; border-left: 2px solid var(--sand); }
.ac-thread--flat { margin-left: 0; padding-left: 0; border-left: 0; }
.ac-reply { padding: 22px; margin-top: 14px; border-color: var(--burgundy-200); box-shadow: var(--e2); }
.ac-reply h4 { color: var(--burgundy); margin-bottom: 12px; font-size: 1.2rem; }
.ac-reply .row-between { margin-top: 4px; }
[data-root-form]:empty { display: none; }
[data-root-form] .ac-reply { margin-top: 0; }

/* Caso práctico y estados de entrega */
.ac-drop { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.ac-drop strong { font-size: 1rem; }
.ac-drop:focus-within { border-color: var(--burgundy); box-shadow: 0 0 0 3px var(--burgundy-100); }
.ac-error { display: flex; gap: 8px; align-items: center; margin-top: 12px; padding: 10px 14px; border-radius: var(--r-md); background: var(--danger-bg); color: var(--danger); font-size: 0.92rem; }
.ac-error[hidden] { display: none; }
.ac-error svg { width: 18px; height: 18px; flex: none; }
.ac-file { display: flex; gap: 14px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--canvas); }
.ac-file > div { flex: 1; min-width: 0; }
.ac-file strong { display: block; overflow-wrap: anywhere; line-height: 1.3; }
.ac-file span { font-size: 0.84rem; color: var(--ink-mute); }
.ac-status-card { overflow: hidden; }
.ac-status-h { padding: 16px 20px; font-size: 1.25rem; color: var(--burgundy); border-bottom: 1px solid var(--line); }
.ac-status { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.ac-status th { text-align: left; width: 42%; padding: 12px 20px; font-weight: 600; background: var(--canvas); vertical-align: top; }
.ac-status td { padding: 12px 20px; overflow-wrap: anywhere; }
.ac-status tr + tr th, .ac-status tr + tr td { border-top: 1px solid var(--line); }
.ac-status td svg { width: 15px; height: 15px; display: inline; vertical-align: -2px; }
.ac-side .ac-status th { width: 46%; padding: 11px 14px 11px 18px; }
.ac-side .ac-status td { padding: 11px 18px 11px 10px; }
.ac-rubric { list-style: none; }
.ac-rubric li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 0.93rem; }
.ac-rubric li:last-child { border-bottom: 0; }
.ac-rubric b { color: var(--burgundy); }

/* Vídeo caso */
.ac-video { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: var(--r-lg); overflow: hidden; background: var(--ink); box-shadow: var(--e2); color: #fff; text-align: left; isolation: isolate; }
.ac-video img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 900ms var(--ease-out); }
.ac-video::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 6, 2, .05) 35%, rgba(20, 6, 2, .8) 100%); }
.ac-video:hover img { transform: scale(1.03); }
.ac-video-play { position: absolute; left: 50%; top: 46%; width: 88px; height: 88px; margin: -44px 0 0 -44px; border-radius: 50%; background: rgba(255, 255, 255, .94); color: var(--burgundy); display: grid; place-items: center; box-shadow: var(--e3); transition: transform var(--d-ui) var(--ease-out); }
.ac-video-play svg { width: 36px; height: 36px; margin-left: 4px; fill: currentColor; }
.ac-video:hover .ac-video-play { transform: scale(1.07); }
.ac-video-cap { position: absolute; left: 26px; right: 26px; bottom: 22px; }
.ac-video-cap strong { display: block; font-family: var(--font-display); font-size: clamp(1.3rem, 1rem + 1vw, 1.8rem); font-weight: 600; line-height: 1.15; }
.ac-video-cap span { font-size: 0.88rem; color: var(--on-dark-soft); }
.ac-answer { padding: 18px 20px; background: var(--canvas); border: 1px solid var(--line); border-radius: var(--r-md); line-height: 1.65; }
.ac-answer p + p, .ac-answer ul { margin-top: 10px; }
.ac-answer ul { padding-left: 20px; }
.ac-editor { min-height: 240px; }

/* Análisis y reflexión: recorte de prensa */
.ac-clip { position: relative; padding: 30px 36px 24px; background: #FBF6EC repeating-linear-gradient(0deg, rgba(120, 90, 50, .025) 0 2px, transparent 2px 5px); border: 1px solid #E6DAC4; box-shadow: var(--e2); transform: rotate(-0.35deg); font-family: Georgia, "Times New Roman", serif; color: #2A211C; }
.ac-clip::after { content: ""; position: absolute; top: -10px; left: 50%; width: 110px; height: 24px; margin-left: -55px; background: rgba(217, 196, 160, .55); transform: rotate(2deg); }
.ac-clip-mast { display: flex; flex-direction: column; align-items: center; gap: 2px; padding-bottom: 10px; border-bottom: 3px double #2A211C; text-align: center; }
.ac-clip-mast span { font-family: var(--font-display); font-size: 2rem; font-weight: 700; letter-spacing: .02em; line-height: 1; }
.ac-clip-mast small { text-transform: uppercase; letter-spacing: .14em; font-size: 0.66rem; color: #7A6A5C; font-family: var(--font-text); }
.ac-clip-title { font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.15; margin: 18px 0 8px; color: #2A211C; letter-spacing: -0.01em; }
.ac-clip-dek { font-style: italic; color: #5A4C42; font-size: 1.04rem; padding-bottom: 14px; border-bottom: 1px solid #DDD0B8; }
.ac-clip-body { columns: 2; column-gap: 32px; column-rule: 1px solid #E6DAC4; margin-top: 16px; font-size: 0.98rem; line-height: 1.7; text-align: justify; hyphens: auto; }
.ac-clip-body p + p { margin-top: 10px; }
.ac-clip-body p:first-child::first-letter { float: left; font-family: var(--font-display); font-size: 3.6rem; line-height: .8; padding: 6px 8px 0 0; color: var(--burgundy); font-weight: 700; }
.ac-clip-foot { margin-top: 14px; font-size: 0.76rem; color: #8A7A6C; font-style: italic; font-family: var(--font-text); }
.ac-toolbar { display: flex; align-items: center; gap: 4px; padding: 6px; border: 1px solid var(--line-strong); border-bottom: 0; border-radius: var(--r-md) var(--r-md) 0 0; background: var(--canvas); }
.ac-toolbar button { display: inline-flex; align-items: center; gap: 6px; height: 34px; min-width: 34px; justify-content: center; padding: 0 10px; border: 0; border-radius: var(--r-sm); background: none; color: var(--ink-soft); font-size: 0.86rem; font-weight: 600; transition: background var(--d-fast), color var(--d-fast); }
.ac-toolbar button:hover { background: var(--stone); color: var(--ink); }
.ac-toolbar button[aria-pressed="true"] { background: var(--burgundy-50); color: var(--burgundy); }
.ac-toolbar svg { width: 17px; height: 17px; }
.ac-toolbar-sep { flex: 1; }
.ac-editor--tb { border-radius: 0 0 var(--r-md) var(--r-md); }
.ac-preview { min-height: 240px; border-radius: 0 0 var(--r-md) var(--r-md); }
.ac-editor[hidden], .ac-preview[hidden] { display: none; }

/* Cuestionario */
.ac-quiz-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 22px 0 0; }
.ac-quiz-facts > div { padding: 16px; background: var(--stone); border-radius: var(--r-md); }
.ac-quiz-facts svg { width: 20px; height: 20px; color: var(--burgundy); }
.ac-quiz-facts dt { margin-top: 8px; text-transform: uppercase; letter-spacing: .1em; font-size: 0.68rem; color: var(--ink-mute); font-weight: 700; }
.ac-quiz-facts dd { margin: 2px 0 0; font-weight: 700; font-size: 1.05rem; }
.ac-blocked { display: flex; gap: 10px; align-items: center; padding: 12px 16px; border-radius: var(--r-md); background: var(--warn-bg); color: var(--warn); font-weight: 600; }
.ac-blocked svg { width: 18px; height: 18px; flex: none; }
.ac-flat { border: 0; border-radius: 0; }
.ac-quiz-score { text-align: center; }
.ac-big { margin: 6px 0; display: flex; align-items: baseline; justify-content: center; gap: 6px; }
.ac-big b { font-family: var(--font-display); font-size: 4rem; line-height: 1; color: var(--burgundy); font-weight: 600; }
.ac-big span { font-size: 1.3rem; color: var(--ink-mute); }
.ac-dots { display: flex; gap: 8px; justify-content: center; margin-top: 12px; }
.ac-dots span { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--burgundy-200); }
.ac-dots .is-used { background: var(--burgundy); border-color: var(--burgundy); }
.ac-quiz { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: var(--s-6); align-items: start; }
.ac-q { padding: 28px 32px; }
.ac-q-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.ac-q-head > div { display: flex; flex-direction: column; gap: 2px; }
.ac-q-st { display: inline-flex; align-items: center; gap: 6px; font-size: 0.86rem; color: var(--ink-mute); }
.ac-q-st svg { width: 15px; height: 15px; color: var(--ok); }
.ac-flag.is-on { --bg: var(--warn-bg); --fg: var(--warn); --bd: var(--warn); }
.ac-flag.is-on svg { fill: currentColor; }
.ac-q-text { font-size: var(--t-xl); margin: 18px 0 22px; color: var(--ink); }
.ac-q-opts { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; min-width: 0; }
.ac-q-opts .radio-card span { font-size: 1rem; line-height: 1.45; }
.ac-q-opts .radio-card b { color: var(--burgundy); margin-right: 2px; }
.ac-q-clear { margin-top: 12px; font-size: 0.86rem; }
.ac-q-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.ac-q-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: calc(var(--header-h) + 20px); }
.ac-timer { padding: 18px 20px; text-align: center; background: var(--burgundy); border-color: var(--burgundy); color: #fff; transition: background var(--d-ui); }
.ac-timer .caps { color: var(--on-dark-soft); letter-spacing: .14em; }
.ac-timer b { display: block; font-family: var(--font-display); font-size: 2.9rem; font-weight: 600; line-height: 1.05; color: #fff; }
.ac-timer.is-low { background: var(--danger); border-color: var(--danger); }
.ac-nav-h { font-size: 1.15rem; color: var(--burgundy); margin-bottom: 12px; }
.ac-qnav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ac-qnav button { position: relative; aspect-ratio: 1; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--surface); font-weight: 700; color: var(--ink-soft); transition: border-color var(--d-fast), background var(--d-fast); }
.ac-qnav button:hover { border-color: var(--burgundy); color: var(--burgundy); }
.ac-qnav .is-ans { background: var(--stone); box-shadow: inset 0 -4px 0 var(--burgundy); color: var(--ink); }
.ac-qnav .is-flag::after { content: ""; position: absolute; top: 3px; right: 3px; width: 9px; height: 9px; background: var(--warn); clip-path: polygon(0 0, 100% 0, 100% 100%); }
.ac-qnav .is-cur { outline: 2px solid var(--burgundy); outline-offset: 1px; color: var(--burgundy); }
.ac-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 14px; font-size: 0.78rem; color: var(--ink-mute); }
.ac-legend li { display: flex; align-items: center; gap: 6px; }
.ac-legend i { width: 14px; height: 14px; border: 1px solid var(--line-strong); border-radius: 3px; background: var(--surface); }
.ac-legend i.is-ans { background: var(--stone); box-shadow: inset 0 -3px 0 var(--burgundy); }
.ac-legend i.is-flag { background: var(--warn); border-color: var(--warn); }
.ac-sum h2 { margin: 0 0 16px; }
.ac-flagtxt { display: inline-flex; align-items: center; gap: 4px; color: var(--warn); font-weight: 600; white-space: nowrap; }
.ac-flagtxt svg { width: 14px; height: 14px; }
.ac-sum .table td .link { font-weight: 500; text-align: left; color: var(--ink); }
.ac-sum .table td .link:hover { color: var(--burgundy); }
.ac-result { display: grid; grid-template-columns: 280px minmax(0, 1fr); overflow: hidden; }
.ac-result-score { padding: 28px 24px; background: var(--burgundy); color: #fff; text-align: center; display: flex; flex-direction: column; justify-content: center; }
.ac-result-score .caps { color: var(--on-dark-soft); letter-spacing: .1em; }
.ac-result-score .ac-big b { color: #fff; }
.ac-result-score .ac-big span { color: var(--on-dark-soft); }
.ac-result-score p:last-child { color: var(--on-dark-soft); }
.ac-result-txt { padding: 28px 32px; }
.ac-result-txt h2 { color: var(--burgundy); font-size: var(--t-xl); margin-bottom: 8px; }
.ac-review-h { margin: var(--s-8) 0 var(--s-4); font-size: var(--t-xl); }
.ac-review { list-style: none; display: grid; gap: 12px; }
.ac-rev { padding: 18px 22px; border-left: 4px solid var(--ok); }
.ac-rev.is-bad { border-left-color: var(--danger); }
.ac-rev-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ac-rev-head .caps { color: var(--ink-mute); letter-spacing: .14em; }
.ac-rev-q { font-weight: 600; margin: 8px 0 10px; font-size: 1.04rem; }
.ac-rev ul { list-style: none; display: grid; gap: 6px; }
.ac-rev li { display: flex; gap: 10px; align-items: center; padding: 8px 12px; border-radius: var(--r-md); font-size: 0.94rem; color: var(--ink-soft); }
.ac-rev li svg { width: 17px; height: 17px; flex: none; }
.ac-rev li em { margin-left: auto; font-style: normal; font-size: 0.72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; white-space: nowrap; }
.ac-rev li.is-right { background: var(--ok-bg); color: var(--ok); font-weight: 600; }
.ac-rev li.is-wrong { background: var(--danger-bg); color: var(--danger); }

/* ═════════ CALIFICACIONES ═════════ */
.nt-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: var(--s-6); align-items: stretch; }
.nt-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-7); padding: 28px 32px; border-radius: var(--r-lg); background: var(--burgundy); color: var(--on-dark); box-shadow: var(--e2); position: relative; overflow: hidden; }
.nt-summary::after { content: ""; position: absolute; right: -70px; bottom: -90px; width: 240px; height: 240px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 0 0 34px rgba(255, 255, 255, .03); pointer-events: none; }
.nt-avg .caps { color: var(--on-dark-soft); letter-spacing: .12em; }
.nt-avg-num { display: flex; align-items: baseline; gap: 8px; margin: 6px 0 14px; }
.nt-avg-num b { font-family: var(--font-display); font-size: 4.6rem; line-height: 1; font-weight: 600; color: #fff; }
.nt-avg-num b.nt-avg-none { font-size: 2.6rem; }
.nt-avg-num span { font-size: 1.4rem; color: var(--on-dark-soft); font-family: var(--font-display); }
.nt-avg-note { margin-top: 12px; font-size: 0.84rem; color: var(--on-dark-soft); max-width: 34ch; }
.nt-kpis { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding-left: var(--s-7); border-left: 1px solid rgba(255, 255, 255, .2); position: relative; z-index: 1; }
.nt-kpis div { display: flex; flex-direction: column; }
.nt-kpis b { font-family: var(--font-display); font-size: 2.1rem; line-height: 1; color: #fff; font-weight: 600; }
.nt-kpis span { font-size: 0.74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--on-dark-soft); font-weight: 600; max-width: 16ch; line-height: 1.3; margin-top: 2px; }
.nt-course { padding: 24px 28px; display: flex; flex-direction: column; box-shadow: var(--e2); }
.nt-course h2 { font-size: 1.65rem; color: var(--burgundy); margin: 4px 0 2px; }
.nt-mods { list-style: none; display: grid; gap: 10px; margin-top: 16px; }
.nt-mods li { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.nt-mods li > span { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--stone); color: var(--ink-mute); font-weight: 700; font-size: 0.8rem; }
.nt-mods .is-completado > span { background: var(--ok); color: #fff; }
.nt-mods .is-curso > span { background: var(--burgundy); color: #fff; }
.nt-mods strong { display: block; font-size: 0.9rem; font-weight: 600; line-height: 1.3; margin-bottom: 5px; }
.nt-mods em { font-style: normal; font-size: 0.86rem; font-weight: 700; color: var(--ink-mute); white-space: nowrap; }
.nt-mods .is-completado em { color: var(--ok); font-family: var(--font-display); font-size: 1.2rem; }
.nt-mods .is-curso em { color: var(--burgundy); }
.nt-course .link { margin-top: auto; padding-top: 16px; align-self: flex-start; }
.nt-esc td { vertical-align: middle; }
.nt-esc-n { font-family: var(--font-display); color: var(--gold); font-weight: 700; margin-right: 10px; font-size: 1.05rem; }
.nt-prog { display: flex; align-items: center; gap: 12px; min-width: 160px; }
.nt-prog .progress { flex: 1; }
.nt-prog > span { font-weight: 600; font-size: 0.88rem; min-width: 3ch; }
.nt-esc .grade { height: 32px; font-size: 0.92rem; padding: 0 14px; }
.nt-libro-head { align-items: flex-end; flex-wrap: wrap; }
.nt-table td { vertical-align: middle; }
.nt-group td { background: var(--stone); padding: 12px 16px; }
.nt-group-in { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.nt-group-in span { font-family: var(--font-display); font-weight: 600; color: var(--burgundy); font-size: 1.1rem; }
.nt-group-in b { font-size: 0.88rem; color: var(--ink-soft); }
.table tbody tr.nt-group:hover td { background: var(--stone); }
.nt-tipo { display: inline-flex; align-items: center; gap: 6px; font-size: 0.88rem; color: var(--ink-soft); white-space: nowrap; }
.nt-tipo svg { width: 15px; height: 15px; color: var(--burgundy); }
.nt-nota { font-family: var(--font-display); font-size: 1.4rem; color: var(--burgundy); font-weight: 600; }
.nt-fb-cell { text-align: right; white-space: nowrap; }
.nt-fb td { background: #FDFBF8; }
.nt-fb[hidden] { display: none; }
.nt-fb-box { display: flex; gap: 12px; align-items: flex-start; }
.nt-fb-box strong { font-size: 0.88rem; }
.nt-fb-box p { color: var(--ink-soft); font-size: 0.95rem; }
.nt-comments { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); }
.nt-comment { padding: 22px 24px; display: flex; flex-direction: column; }
.nt-comment header { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.nt-comment header strong { display: block; line-height: 1.25; }
.nt-comment header span { font-size: 0.82rem; color: var(--ink-mute); }
.nt-comment .caps { font-size: 0.66rem; letter-spacing: .12em; }
.nt-comment p { margin-top: 8px; font-family: var(--font-display); font-style: italic; font-size: 1.2rem; line-height: 1.45; color: var(--ink); }

/* ═════════ Responsive ═════════ */
@media (max-width: 1240px) {
  .fm-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fm-hero-statue { right: 4%; }
  .fm-hero-motto { display: none; }
  .cu-panel { grid-template-columns: 260px minmax(0, 1fr); }
  .cu-prog { border-right: 0; }
  .cu-tools { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px; padding: 16px 20px 0; margin-top: 16px; border-top: 1px solid var(--line); }
  .cu-tools .caps { width: 100%; }
}
@media (max-width: 1100px) {
  .fm-summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .fm-quote { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line-strong); margin: 0 24px; padding: 18px 0; }
  .fm-intro { grid-template-columns: minmax(0, 1fr); }
  .cu-info { grid-template-columns: minmax(0, 1fr); gap: var(--s-7); }
  .cu-ficha { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .cu-ficha-row:nth-last-child(2) { border-bottom: 0; }
  .cu-index ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-grid, .ac-quiz { grid-template-columns: minmax(0, 1fr); }
  .ac-side { position: static; }
  .ac-q-side { display: contents; }
  .ac-q-side .ac-timer { order: -1; position: sticky; top: calc(var(--header-h) + 10px); z-index: 3; padding: 10px 20px; display: flex; justify-content: space-between; align-items: center; box-shadow: var(--e2); }
  .ac-q-side .ac-timer b { font-size: 2.1rem; }
  .nt-top { grid-template-columns: minmax(0, 1fr); }
  .nt-comments { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .fm-hero-inner { grid-template-columns: minmax(0, 1fr) auto; }
  .fm-hero-escudo { display: none; }
  .fm-hero-statue { right: -40px; opacity: .55; }
  .fm-hero-motto { display: none; }
}
@media (max-width: 760px) {
  .fm-hero-inner { min-height: 0; padding-block: var(--s-7); grid-template-columns: minmax(0, 1fr); }
  .fm-hero-media { inset: 0; }
  .fm-hero::before { background: linear-gradient(90deg, rgba(93, 13, 0, .97) 0%, rgba(93, 13, 0, .8) 70%, rgba(93, 13, 0, .55) 100%); }
  .fm-hero-statue { right: -70px; height: 160%; bottom: -50%; opacity: .5; }
  .fm-summary { grid-template-columns: minmax(0, 1fr); margin-top: var(--s-5); }
  .fm-progress, .fm-program { padding: 20px; gap: 16px; }
  .fm-sum-ico { width: 50px; height: 50px; }
  .fm-progress-num b { font-size: 2.6rem; }
  .fm-quote { margin: 0 20px; }
  .fm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .fm-stat { flex-wrap: wrap; padding: 12px; gap: 8px 10px; }
  .fm-stat .stat-ico { width: 38px; height: 38px; }
  .fm-stat .stat-num { font-size: 1.75rem; }
  .fm-stat .stat-label { width: 100%; }
  .fm-tabs-wrap { margin-top: var(--s-8); }
  .fm-tabs .tab { padding: 12px 14px; font-size: 0.95rem; }
  .fm-filter { align-items: flex-start; flex-direction: column; }
  .fm-trans-row { grid-template-columns: minmax(0, 1fr); }
  .fm-trans-media { min-height: 0; aspect-ratio: 16 / 7; }
  .fm-trans-body { padding: 18px 20px 4px; }
  .fm-trans-act { padding: 12px 20px 20px; }
  .fm-esc-head { grid-template-columns: minmax(0, 1fr); }
  .fm-esc-img { aspect-ratio: 16 / 8; }
  .fm-prog-dl { grid-template-columns: minmax(0, 1fr); }
  .fm-syl li { grid-template-columns: 32px minmax(0, 1fr); }
  .fm-syl-s { grid-column: 2; }
  .fm-res { flex-wrap: wrap; }
  .fm-res .btn { margin-left: 58px; }

  .cu-hero .wrap { padding-bottom: calc(var(--s-8) + 60px); }
  .cu-panel.overlap { margin-top: -64px; }
  .cu-panel { grid-template-columns: minmax(0, 1fr); padding: 14px 0 18px; }
  .cu-nav { flex-direction: row; overflow-x: auto; padding: 0 12px 12px; scrollbar-width: none; border-bottom: 1px solid var(--line); }
  .cu-nav::-webkit-scrollbar { display: none; }
  .cu-nav-btn { flex: none; font-size: 0.95rem; padding: 9px 12px; white-space: nowrap; }
  .cu-nav-btn::before { left: 12px; right: 12px; top: auto; bottom: 0; width: auto; height: 3px; transform: scaleX(0); }
  .cu-nav-btn[aria-selected="true"]::before { transform: scaleX(1); }
  .cu-prog { border: 0; padding: 16px 20px 0; }
  .cu-tools { padding: 14px 12px 0; }
  .cu-tools button { font-size: 0.92rem; padding: 7px 8px; }
  .cu-index ol { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; padding-bottom: 6px; scrollbar-width: thin; }
  .cu-index-item { flex: 0 0 78%; scroll-snap-align: start; }
  .cu-desc { font-size: 1.05rem; }
  .cu-quote { font-size: 1.3rem; }
  .cu-subtabs .tab { padding: 10px 14px; font-size: 1rem; }
  .cu-how { grid-template-columns: minmax(0, 1fr); }
  .cu-ficha { grid-template-columns: minmax(0, 1fr); padding: 4px 20px; }
  .cu-ficha-row:nth-last-child(2) { border-bottom: 1px solid var(--line-strong); }
  .cu-tutors { grid-template-columns: minmax(0, 1fr); }
  .cu-dudas-card { flex-wrap: wrap; }
  .cu-res-card { padding: 4px 16px; }
  .cu-res { flex-wrap: wrap; }
  .cu-res .btn { margin-left: 58px; min-width: 0; }
  .cu-act { grid-template-columns: auto minmax(0, 1fr); gap: 12px 14px; padding: 16px; }
  .cu-act-ico { width: 42px; height: 42px; }
  .cu-act-state { grid-column: 2; }
  .cu-act > .btn { grid-column: 1 / -1; }
  .cu-act-body strong { font-size: 1.2rem; }
  .cu-locked { padding: 24px 20px; }
  .cu-locked-list { grid-template-columns: minmax(0, 1fr); }
  .cu-lb-sum { grid-template-columns: minmax(0, 1fr); }
  .cu-report li { grid-template-columns: minmax(0, 1fr) 44px; }
  .cu-report li .progress { grid-column: 1 / -1; grid-row: 2; }
  .cu-part { flex-wrap: wrap; }

  .ac-hero .wrap { padding-top: var(--s-6); padding-bottom: var(--s-6); }
  .ac-hero-title { flex-basis: 100%; }
  .ac-meta { flex-wrap: wrap; gap: 12px 0; }
  .ac-meta > div { padding: 0 18px 0 0; border-left: 0; margin-right: 18px; border-right: 1px solid rgba(255, 255, 255, .2); }
  .ac-meta > div:last-child { border-right: 0; }
  .ac-body { padding-top: var(--s-6); }
  .ac-post--tutor { padding: 22px 18px; }
  .ac-pin { position: static; margin-bottom: 12px; }
  .ac-post { padding: 16px; }
  .ac-thread--nested { margin-left: 8px; padding-left: 12px; }
  .ac-clip { padding: 22px 18px; transform: none; }
  .ac-clip-mast span { font-size: 1.6rem; }
  .ac-clip-body { columns: 1; }
  .ac-quiz-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-q { padding: 20px 18px; }
  .ac-q-text { font-size: 1.45rem; }
  .ac-q-side .ac-timer { padding: 8px 16px; }
  .ac-q-side .ac-timer b { font-size: 1.9rem; }
  .ac-result { grid-template-columns: minmax(0, 1fr); }
  .ac-result-txt { padding: 22px 20px; }
  .ac-rev { padding: 16px; }
  .ac-rev li { flex-wrap: wrap; }
  .ac-status th { width: 44%; padding: 10px 12px 10px 16px; }
  .ac-status td { padding: 10px 16px 10px 8px; }

  .nt-summary { grid-template-columns: minmax(0, 1fr); padding: 22px 20px; gap: var(--s-5); }
  .nt-avg-num b { font-size: 3.8rem; }
  .nt-kpis { flex-direction: row; justify-content: space-between; padding: 16px 0 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .2); }
  .nt-kpis span { font-size: 0.66rem; }
  .nt-course { padding: 20px; }
  .nt-libro-head .row { width: 100%; justify-content: space-between; }
  .nt-esc thead, .nt-table thead { display: none; }
  .nt-esc, .nt-table, .nt-esc tbody, .nt-table tbody { display: block; width: 100%; }
  .nt-esc tr, .nt-table tr.nt-row { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .nt-table tr.nt-group, .nt-table tr.nt-fb { display: block; }
  .nt-table tr.nt-fb[hidden] { display: none; }
  .nt-esc td, .nt-table tr.nt-row td { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 5px 16px; border: 0; text-align: right; }
  .nt-esc td::before, .nt-table tr.nt-row td[data-label]::before { content: attr(data-label); text-transform: uppercase; letter-spacing: .08em; font-size: 0.68rem; font-weight: 700; color: var(--ink-mute); text-align: left; flex: none; }
  .nt-esc td:first-child, .nt-table tr.nt-row td:first-child { display: block; text-align: left; }
  .nt-esc td:first-child::before, .nt-table tr.nt-row td:first-child::before { display: none; }
  .nt-table tr.nt-group td, .nt-table tr.nt-fb td { display: block; }
  .nt-fb-cell { justify-content: flex-end !important; }
  .nt-fb-cell:empty { display: none !important; }
  .nt-prog { min-width: 0; flex: 1; max-width: 220px; }
  .nt-comment p { font-size: 1.1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .vplayer > img, .vplayer-track span, .ac-video img, .cu-index-item a { transition: none; }
  .ac-post.is-new { animation: none; }
}

/* Héroe de Calificaciones: la foto es clara a la derecha; se oscurece para que la cita se lea */
.nt-hero::before { background: linear-gradient(90deg, rgba(38, 10, 4, .94) 0%, rgba(50, 12, 5, .8) 45%, rgba(50, 12, 5, .55) 75%, rgba(38, 10, 4, .8) 100%); }
.nt-hero .wrap { max-width: var(--maxw); padding-bottom: calc(var(--s-9) + 30px); }
@media (max-width: 760px) {
  .cu-subtabs .tabs--boxed { display: flex; width: 100%; }
  .cu-subtabs .tab { flex: 1 1 auto; justify-content: center; padding: 10px 8px; font-size: 0.98rem; }
  .cu-subtabs .tab svg { display: none; }
}
.cu-lb .num, .cu-lb td:nth-child(4) { white-space: nowrap; }
@media (min-width: 1101px) { .ac-review { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }

@media (max-width: 760px) {
  .nt-wrap .section-head { flex-wrap: wrap; }
  .nt-table tr.nt-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 14px; padding: 12px 16px; }
  .nt-table tr.nt-row td:first-child, .nt-table tr.nt-row td.nt-fb-cell { grid-column: 1 / -1; }
  .nt-table tr.nt-row td { padding: 4px 0 !important; }
  .nt-table .nt-nota { font-size: 1.2rem; }
  .nt-table .badge { white-space: normal; height: auto; min-height: 26px; padding: 4px 8px; text-align: right; line-height: 1.2; }
}

/* ───────── Módulo 0 · primeros pasos ───────── */
.m0-main { display: grid; gap: var(--s-6); min-width: 0; }
.m0-steps { list-style: none; counter-reset: paso; }
.m0-step { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.m0-step:last-child { border-bottom: 0; }
.m0-check { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--line-strong); background: var(--surface); display: grid; place-items: center; color: transparent; padding: 0; transition: background var(--d-fast), border-color var(--d-fast), color var(--d-fast); }
.m0-check svg { width: 16px; height: 16px; }
button.m0-check:hover { border-color: var(--burgundy); color: var(--burgundy-200); }
.m0-step.is-done .m0-check { background: var(--ok); border-color: var(--ok); color: #fff; }
.m0-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.m0-body > span { color: var(--ink-soft); font-size: 0.93rem; }
.m0-step.is-done .m0-body strong { color: var(--ink-mute); text-decoration: line-through; text-decoration-color: var(--line-strong); }
@media (max-width: 640px) {
  .m0-step { flex-wrap: wrap; align-items: flex-start; }
  .m0-body { flex: 1 1 calc(100% - 44px); }
  .m0-step .btn { margin-left: 44px; }
  .fm-intro .fm-res { flex-wrap: wrap; }
  .fm-intro .fm-res .res-body { flex: 1 1 calc(100% - 60px); }
  .fm-intro .fm-res .btn { margin-left: 58px; }
}

/* ───────── Próximo cierre (cuenta regresiva del módulo) ───────── */
.cu-cierre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-5); padding: 20px 22px; border-radius: var(--r-lg); background: var(--burgundy-50); border: 1px solid var(--burgundy-100); }
.cu-cierre-t { font-family: var(--font-display); font-size: 1.35rem; color: var(--burgundy); line-height: 1.2; margin: 2px 0 4px; }
.cu-cierre .link { display: inline-flex; }

/* ───────── Plan de trabajo como línea de tiempo ───────── */
.gt { --label: 230px; position: relative; margin-top: var(--s-5); padding: 16px 18px 12px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.gt-rows { list-style: none; }
.gt-row { display: grid; grid-template-columns: var(--label) minmax(0, 1fr); align-items: center; gap: 14px; min-height: 48px; }
.gt-rows .gt-row + .gt-row { border-top: 1px dashed var(--line); }
.gt-label { display: flex; flex-direction: column; min-width: 0; }
.gt-label strong { font-size: 0.93rem; }
.gt-label small { color: var(--ink-mute); font-size: 0.8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-track { position: relative; height: 32px; background-image: linear-gradient(to right, var(--line) 1px, transparent 1px); background-size: calc(100% / var(--n)) 100%; }
.gt-head { min-height: 0; padding-bottom: 6px; border-bottom: 1px solid var(--line); }
.gt-days { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); height: auto; background: none; }
.gt-day { display: flex; flex-direction: column; align-items: center; font-size: 0.78rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink-soft); }
.gt-day small { font-size: 0.64rem; font-weight: 600; color: var(--ink-mute); text-transform: uppercase; }
.gt-day.is-wkend { color: var(--ink-mute); }
.gt-day b { font-weight: 600; min-width: 24px; height: 22px; display: grid; place-items: center; border-radius: 99px; }
.gt-day.is-hoy b { background: var(--gold); color: #fff; }
.gt-day.is-hoy small { color: var(--gold); }
.gt-bar { position: absolute; top: 4px; bottom: 4px; left: var(--a); width: calc(var(--b) - var(--a)); display: flex; align-items: center; gap: 6px; padding: 0 10px; border-radius: 99px; font-size: 0.78rem; font-weight: 600; white-space: nowrap; overflow: hidden; background: var(--burgundy-100); color: var(--burgundy); }
.gt-bar svg { width: 14px; height: 14px; }
.gt-bar span { overflow: hidden; text-overflow: ellipsis; }
.gt-bar.is-open { background: var(--burgundy); color: #fff; }
.gt-bar.is-done { background: var(--ok-bg); color: var(--ok); }
.gt-bar.is-late { background: var(--danger-bg); color: var(--danger); }
.gt-dot { position: absolute; top: 50%; left: var(--a); transform: translate(-50%, -50%); width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: #fff; box-shadow: var(--e1); }
.gt-dot svg { width: 14px; height: 14px; }
.gt-now { position: absolute; top: 56px; bottom: 34px; left: calc(18px + var(--label) + 14px + (100% - 36px - var(--label) - 14px) * var(--t)); width: 2px; background: var(--gold); pointer-events: none; }
.gt figcaption { margin-top: 10px; }
.cu-plazos-det summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: var(--burgundy); font-weight: 600; font-size: 0.93rem; }
.cu-plazos-det summary svg { width: 16px; height: 16px; }
@media (max-width: 760px) {
  .gt { --label: 0px; padding: 12px; }
  .gt-row { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 8px 0; }
  .gt-head .gt-label { display: none; }
  .gt-day small { display: none; }
  .gt-day { font-size: 0.66rem; }
  .gt-now { display: none; }
  .gt-bar span { font-size: 0.72rem; }
  .cuenta { grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
}
