/* Pupitre — Exámenes (prefijo ex-): centro de exámenes, simulador, resultados y comunicación escrita. */

.ex-show-s{display:none}
.btn .ex-hide-s{display:inline-flex;align-items:center}
.ex-off{opacity:.62;cursor:default}
.ex-chev{display:grid;place-items:center;color:var(--muted);transition:transform .2s;flex:none}
.ex-note{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.ex-note svg{margin-top:2px;flex:none}
.ex-note b{color:var(--ink-2)}
.ex-pts{font-size:13px;color:var(--muted);white-space:nowrap}
.ex-pts b{font-family:var(--f-head);font-size:16px;color:var(--ink);font-weight:700}
.ex-hic[data-area]{background:var(--tint-soft);color:var(--tint)}
.ex-stats .stat .ex-ic-gold{color:var(--gold);background:var(--gold-soft)}
.ex-stats .stat .ex-ic-info{color:var(--info);background:var(--info-soft)}
.ex-vacio{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 20px}
.ex-vacio p{margin:0 0 10px;max-width:46ch}
.ex-vacio .ic-tile{margin-bottom:6px}
.ex-more-btn{justify-content:center;margin-top:12px}
.ex-keys kbd{font-family:var(--f-body);font-size:11.5px;font-weight:700;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:0 5px;background:var(--card);color:var(--ink-2)}

/* ---------- centro de exámenes ---------- */
.ex-stats .stat .v small{font-size:13px;color:var(--muted);font-weight:500;font-family:var(--f-body);margin-left:3px}
.ex-stats .stat .l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-bars{color:var(--info)}
.ex-resume{flex-wrap:wrap;align-items:center}
.ex-resume-ic{color:var(--gold);display:grid;place-items:center}
.ex-resume-tx{flex:1;min-width:180px}
.ex-resume-tx b{display:block;font-size:14px}
.ex-resume-tx small{color:var(--ink-2);font-size:12.5px}
.ex-tabs{display:flex;align-items:center;gap:10px}
.ex-tabs .seg{max-width:100%}
.ex-tabbody{display:flex;flex-direction:column;gap:22px;min-width:0}

.ex-feature{padding:22px;display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden}
.ex-feature .deco{position:absolute;right:-22px;top:-22px;opacity:.06;color:var(--accent);pointer-events:none}
.ex-feature-h{display:flex;gap:14px;align-items:flex-start;position:relative}
.ex-feature-h .ic-tile{background:var(--accent-soft);color:var(--accent)}
.ex-feature-h h2{font-family:var(--f-head);font-size:22px;font-weight:700;margin:2px 0 6px;letter-spacing:-.015em;line-height:1.15}
.ex-feature-h p{margin:0;color:var(--muted);max-width:72ch}
.ex-pesos{display:flex;flex-wrap:wrap;gap:8px}
.ex-peso{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:4px 12px 4px 4px;font-size:13px;font-weight:600;background:var(--card)}
.ex-peso .ic-tile{width:28px;height:28px;border-radius:50%}
.ex-peso b{font-family:var(--f-head);color:var(--tint)}

.ex-modos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ex-modo{border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--card);min-width:0}
.ex-modo[data-rec="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ex-modo-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ex-modo-h b{font-size:16px}
.ex-modo-n{display:flex;align-items:baseline;gap:6px}
.ex-modo-n .h{font-size:36px;font-weight:700;line-height:1;letter-spacing:-.03em}
.ex-modo-n small{color:var(--muted);font-size:13.5px}
.ex-modo-d{font-size:13px;color:var(--ink-2);line-height:1.5;flex:1}
.ex-modo .btn{margin-top:6px}

.ex-areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.ex-area{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:14px;display:flex;flex-direction:column;gap:8px;text-align:left;min-width:0;transition:border-color .15s,background .15s}
button.ex-area:hover{border-color:var(--tint,var(--accent));background:var(--soft)}
.ex-area-h{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:44px}
.ex-area > b{font-weight:600;font-size:14.5px;line-height:1.3}
.ex-area .ex-last{font-size:12.5px;color:var(--muted);margin-top:auto}
.ex-area .ex-last b{color:var(--ink);font-family:var(--f-head);font-size:14px}
.ex-area .prog i{background:var(--tint,var(--accent))}
.ex-area .ex-desc{font-size:12.5px;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ex-area:not([data-area]) .ic-tile{background:var(--accent-soft);color:var(--accent)}
.ex-sp-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}

.ex-car{display:flex;flex-direction:column;gap:14px;min-width:0}
.ex-car-h{display:flex;gap:12px;align-items:center;min-width:0}
.ex-car-h .tx{min-width:0}
.ex-car-h b{display:block;font-family:var(--f-head);font-size:17px;font-weight:600}
.ex-car-h small{color:var(--muted);font-size:12.5px}
.ex-car-last{display:flex;align-items:baseline;gap:6px;padding:10px 12px;border-radius:12px;background:var(--soft);flex-wrap:wrap}
.ex-car-last .h{font-size:24px;font-weight:700;line-height:1}
.ex-car-last .tag{align-self:center;margin-left:4px}
.ex-car-none{font-size:13px;color:var(--muted)}
.ex-more summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}
.ex-more summary::-webkit-details-marker{display:none}
.ex-more summary .tx{flex:1;min-width:0}
.ex-more summary .tx b{display:block;font-weight:600}
.ex-more summary .tx small{color:var(--muted);font-size:12.5px}
.ex-more[open] .ex-chev{transform:rotate(180deg)}
.ex-more-l{border:0;border-top:1px solid var(--line);border-radius:0}

.ex-escli .tx small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ex-filtros{margin-bottom:12px}

.ex-chart{width:100%;min-height:210px;overflow:hidden}
.ex-chart svg{display:block;max-width:100%;height:auto}
.ex-chart .gl{stroke:var(--line);stroke-width:1}
.ex-chart .gt{fill:var(--muted);font-size:11px;font-family:var(--f-body)}
.ex-chart .ln{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.ex-chart .ar{fill:var(--accent);opacity:.09}
.ex-chart .pt{fill:var(--card);stroke:var(--accent);stroke-width:2.5}
.ex-chart .pt.last{fill:var(--accent)}
.ex-chart .pv{fill:var(--ink);font-size:12px;font-weight:700;font-family:var(--f-head)}

/* ---------- inicio del examen ---------- */
.ex-intro{max-width:780px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.ex-intro-hero[data-area] .deco,.ex-rhero[data-area] .deco{color:var(--tint)}
.ex-intro-top{display:flex;gap:14px;align-items:center;position:relative}
.ex-intro-hero:not([data-area]) .ic-tile{background:var(--accent-soft);color:var(--accent)}
.ex-h1{font-family:var(--f-head);font-size:26px;font-weight:700;line-height:1.12;margin:2px 0 0;letter-spacing:-.02em;text-wrap:balance}
.ex-lead{margin:0;color:var(--ink-2);max-width:62ch;position:relative}
.ex-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;position:relative}
.ex-fact{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card);display:flex;flex-direction:column}
.ex-fact .h{font-size:28px;font-weight:700;line-height:1.05;letter-spacing:-.02em}
.ex-fact small{color:var(--muted);font-size:12.5px}
.ex-orden{display:flex;flex-wrap:wrap;gap:8px;position:relative}
.ex-orden-i{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:4px 12px 4px 10px;background:var(--card)}
.ex-orden-i .ic-tile{width:24px;height:24px;border-radius:50%}
.ex-orden-i b{color:var(--tint)}
.ex-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
.ex-steps li{display:flex;gap:12px;align-items:flex-start;min-width:0}
.ex-steps .ic{width:36px;height:36px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none}
.ex-steps b{font-weight:600;display:block}
.ex-steps p{margin:2px 0 0;color:var(--muted);font-size:13.5px;line-height:1.45}
.ex-keys{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:16px 0 0;font-size:13px;color:var(--muted)}
.ex-keys + .ex-note,.ex-steps + .ex-note{margin-top:10px}
.ex-intro-cta{justify-content:flex-start}

/* ---------- simulador ---------- */
.ex-run{display:flex;flex-direction:column;gap:14px;container-type:inline-size;container-name:exrun}
.ex-head{position:sticky;top:var(--ex-top,70px);z-index:15;padding:12px 14px;display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 22px rgba(0,0,0,.05)}
.ex-head-r{display:flex;align-items:center;gap:10px;min-width:0}
.ex-head-t{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}
.ex-head-t .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-head-t b{font-family:var(--f-head);font-size:16.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-head-p{display:flex;align-items:center;gap:12px}
.ex-head-p .prog{flex:1}
.ex-head-p small{white-space:nowrap;font-size:12.5px}
.ex-timer{font-variant-numeric:tabular-nums;color:var(--ink);min-width:92px;justify-content:center}
.ex-timer[data-st="low"]{color:var(--flame);border-color:var(--flame);background:var(--flame-soft)}
.ex-timer[data-st="crit"]{color:var(--neg);border-color:var(--neg);background:var(--neg-soft);animation:exPulse 1s ease-in-out infinite}
@keyframes exPulse{50%{opacity:.6}}

.ex-body{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.ex-main{min-width:0;display:flex;flex-direction:column;gap:12px;container-type:inline-size;container-name:exq}
.ex-qcard{padding:20px;min-width:0}
.ex-split{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.ex-read,.ex-qcol{min-width:0}
.ex-read-h{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;gap:6px;align-items:center;margin-bottom:8px}
.ex-read .q-texto{max-height:min(46vh,420px)}
@container exq (min-width:700px){
  .ex-split{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:24px}
  .ex-read .q-texto{max-height:min(calc(100vh - var(--ex-top,70px) - var(--ex-head-h,110px) - 120px),680px);min-height:220px}
}
.ex-actions{display:flex;gap:10px;align-items:center}
.ex-actions .sp{flex:1}
.ex-mark[aria-pressed="true"]{background:var(--gold-soft);color:var(--gold);border-color:var(--gold)}

.ex-rail{display:none;flex-direction:column;gap:12px;padding:16px;position:sticky;top:calc(var(--ex-top,70px) + var(--ex-head-h,110px) + 14px);max-height:calc(100vh - var(--ex-top,70px) - var(--ex-head-h,110px) - 28px);overflow-y:auto}
@container exrun (min-width:1000px){
  .ex-body{grid-template-columns:minmax(0,1fr) 248px}
  .ex-rail{display:flex}
  .ex-mapbtn{display:none}
}
.ex-rail-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ex-rail-h b{font-family:var(--f-head);font-size:15px;font-weight:600}
.ex-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--muted)}
.ex-legend span{display:inline-flex;align-items:center;gap:6px}
.ex-legend i.ex-n{width:13px;height:13px;border-radius:4px;display:inline-block;padding:0}
.ex-legend i.ex-n[data-m="1"]{background:var(--card)}
.ex-legend i.ex-n[data-m="1"]::after{top:-3px;right:-3px;width:8px;height:8px;border-width:1.5px}
.ex-mg{display:flex;flex-direction:column;gap:6px}
.ex-mg-h{display:flex;justify-content:space-between;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px}
.ex-n{height:36px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-weight:700;font-size:12.5px;position:relative;font-variant-numeric:tabular-nums;color:var(--ink-2);padding:0}
.ex-n:hover{border-color:var(--accent)}
.ex-n[data-r="1"]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}
.ex-n[data-m="1"]::after{content:"";position:absolute;top:-4px;right:-4px;width:11px;height:11px;border-radius:50%;background:var(--gold);border:2px solid var(--card)}
.ex-n[aria-current="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.ex-rail-f{display:flex;flex-direction:column;gap:8px;margin-top:2px}
.ex-rail-f .banner{font-size:12.5px;padding:9px 11px}
.ex-mapa{display:flex;flex-direction:column;gap:14px}
.ex-mapa .ex-grid{grid-template-columns:repeat(auto-fill,minmax(42px,1fr))}
.ex-mapa .ex-n{height:42px}

/* ---------- resultado ---------- */
.ex-rhero{padding:24px}
.ex-rgrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:center;position:relative}
.ex-rmain{display:flex;flex-direction:column;gap:10px;min-width:0}
.ex-rmain .big{font-size:clamp(44px,6vw,64px)}
.ex-rtitle{font-family:var(--f-head);font-size:20px;font-weight:600;margin:0;letter-spacing:-.01em;line-height:1.2}
.ex-rmeta{gap:6px}
.ex-cmp{margin:0;font-size:13.5px;font-weight:600;color:var(--muted)}
.ex-cmp[data-d="up"]{color:var(--pos)}
.ex-cmp[data-d="down"]{color:var(--neg)}
.ex-rside{min-width:0}
.ex-rareas{display:flex;flex-direction:column;gap:12px;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:16px}
.ex-ra{display:grid;grid-template-columns:34px minmax(0,1fr) 78px;gap:10px;align-items:center}
.ex-ra .ic-tile{width:34px;height:34px;border-radius:10px}
.ex-ra-t{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;margin-bottom:5px}
.ex-ra-t > b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-ra-t .num{color:var(--muted);white-space:nowrap}
.ex-ra-t .num b{color:var(--ink);font-family:var(--f-head);font-size:15px}
.ex-ra .ex-bar i{background:var(--tint)}
.ex-ra .tag{justify-self:end;justify-content:center}
.ex-bar{height:9px;border-radius:999px;background:var(--card);border:1px solid var(--line);overflow:hidden}
.ex-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .5s}
.ex-bar i[data-lv="bad"]{background:var(--neg)}
.ex-bar i[data-lv="mid"]{background:var(--gold)}
.ex-bar i[data-lv="ok"]{background:var(--pos)}
.ex-nbox{display:flex;gap:18px;align-items:center;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:18px}
.ex-ring{width:96px;height:96px}
.ex-ring > span{font-size:19px;width:calc(100% - 16px);height:calc(100% - 16px)}
.ex-nbox-tx{min-width:0}
.ex-nbox-n{font-size:20px;font-weight:700;margin:2px 0 4px}
.ex-nbox p{margin:0 0 10px;color:var(--ink-2);font-size:13.5px;line-height:1.45}
.ex-steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;max-width:180px}
.ex-steps4 i{height:6px;border-radius:999px;background:var(--bar)}
.ex-steps4 i.on{background:var(--accent)}
.ex-ractions{gap:8px}

.ex-rcols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start}
.ex-comps{display:flex;flex-direction:column;gap:14px}
.ex-comp-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.ex-comp-h b{font-weight:600;font-size:14px;min-width:0}
.ex-comp-h .tag[data-area]{background:var(--tint-soft);color:var(--tint)}
.ex-comp-v{font-size:12.5px;color:var(--muted);white-space:nowrap}
.ex-comp-v b{color:var(--ink)}
.ex-comp .ex-bar{background:var(--soft)}
.ex-comps[data-todas="false"] [data-extra]{display:none}
.ex-comps-mas{align-self:flex-start;padding:4px 0}

.ex-plan{display:flex;flex-direction:column;gap:12px}
.ex-plan-i{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:14px;min-width:0}
.ex-plan-i:not([data-area]) .ic-tile,.ex-plan-i[data-area=""] .ic-tile{background:var(--accent-soft);color:var(--accent)}
.ex-plan-i .ic-tile{width:40px;height:40px;border-radius:12px}
.ex-plan-i .tx{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.ex-plan-i .tx > b{font-weight:600}
.ex-plan-i .tx > small{color:var(--muted);font-size:12.5px;line-height:1.45}
.ex-plan-i .row{margin-top:6px;gap:8px}
.ex-semn .h{font-size:18px;font-weight:700}
.ex-mats{margin-top:6px;gap:6px}
.ex-mats .chip{min-height:32px;padding:5px 11px;font-size:12.5px;text-align:left}
.ex-plan-n{display:flex;gap:8px;align-items:flex-start;margin:2px 0 0;font-size:13px;color:var(--ink-2)}
.ex-plan-n svg{flex:none;margin-top:2px;color:var(--accent)}
.ex-okbox{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--gold-soft)}
.ex-okbox .ic-tile{background:var(--card);color:var(--gold);width:40px;height:40px}
.ex-okbox b{display:block;font-family:var(--f-head);font-size:16px}
.ex-okbox p{margin:2px 0 10px;color:var(--ink-2);font-size:13.5px}

.ex-rev-h{flex-wrap:wrap}
.ex-rv summary{list-style:none;display:flex;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;min-width:0}
.ex-rv summary::-webkit-details-marker{display:none}
.ex-rv summary:hover{background:var(--soft)}
.ex-rv summary .tx{min-width:0;flex:1}
.ex-rv summary .tx b{display:block;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-rv summary .tx small{display:block;color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-rv[open] summary .tx b{display:none}
.ex-rv[open] summary .tx small{font-size:13px;font-weight:600;color:var(--ink-2);white-space:normal}
.ex-rv[open] .ex-chev{transform:rotate(180deg)}
.ex-st{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:12.5px;flex:none;background:var(--soft);color:var(--muted);border:1px solid var(--line)}
.ex-st[data-st="ok"]{background:var(--pos-soft);color:var(--pos);border-color:transparent}
.ex-st[data-st="bad"]{background:var(--neg-soft);color:var(--neg);border-color:transparent}
.ex-rv-b{padding:4px 14px 18px}

/* ---------- comunicación escrita ---------- */
.ex-esc{display:flex;flex-direction:column;gap:14px}
.ex-esc-cons{border:1px solid var(--line);background:var(--soft);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.ex-esc-cons .prose{font-size:15px;line-height:1.6;color:var(--ink)}
.ex-esc-cons .prose p:last-child{margin-bottom:0}
.ex-crit-chips{display:flex;flex-wrap:wrap;gap:6px}
.ex-crit-chips .tag{background:var(--card);border:1px solid var(--line)}
.ex-esc-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ex-esc-w{font-size:13px;color:var(--muted)}
.ex-esc-w b{color:var(--ink);font-family:var(--f-head);font-size:15px}
.ex-esc-ta{min-height:300px;font-size:15px;line-height:1.7;padding:14px 16px}
.ex-esc-eval{display:flex;flex-direction:column;gap:12px}
.ex-ia{border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:12px}
.ex-ia-h{display:flex;gap:12px;align-items:flex-start}
.ex-ia-h .ic-tile{background:var(--info-soft);color:var(--info);width:40px;height:40px}
.ex-ia-h b{display:block;font-weight:600}
.ex-ia-h small{color:var(--muted);font-size:12.5px;line-height:1.45;display:block}
.ex-ia-wait{display:flex;flex-direction:column;gap:8px}
.ex-ia-res{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:14px}
.ex-ia-score{display:flex;gap:14px;align-items:center}
.ex-ia-n{font-size:19px;font-weight:700}
.ex-crits{display:flex;flex-direction:column;gap:10px}
.ex-crit{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ex-crit .row{gap:8px}
.ex-crit b{font-weight:600}
.ex-crit p{margin:6px 0 0;color:var(--ink-2);font-size:14px;line-height:1.55}
.ex-recs{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;color:var(--ink-2);line-height:1.5}
.ex-recs li::marker{font-weight:700;color:var(--accent)}
.ex-auto summary{cursor:pointer;font-weight:600;font-size:13.5px;color:var(--accent);padding:6px 2px}
.ex-auto[open] summary{margin-bottom:8px}
.ex-auto-h{margin:4px 0 0}
.ex-check{display:flex;flex-direction:column;gap:12px}
.ex-check fieldset{border:1px solid var(--line);border-radius:14px;padding:10px 14px 6px;margin:0;min-width:0}
.ex-check legend{font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 6px}
.ex-check label{display:flex;gap:10px;align-items:flex-start;padding:7px 0;cursor:pointer;font-size:14px;line-height:1.45}
.ex-check input{width:18px;height:18px;accent-color:var(--accent);margin:2px 0 0;flex:none}
.ex-check-f{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ex-check-f .muted{font-size:13px}
.ex-mitexto{margin-top:14px;max-width:none;font-size:15px}

/* ---------- suficiencia de semestre ---------- */
.ex-mg-h{gap:8px}
.ex-mg-h > span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex-flat{border:0;border-top:1px solid var(--line);border-radius:0}
.ex-suf-mats{overflow:hidden}
.ex-suf-mats > .sec-h{padding:16px 18px 0}
.ex-suf-mats > .empty{border-top:1px solid var(--line)}
.ex-suf-mats .li .ic[data-st="ok"]{background:var(--pos-soft);color:var(--pos)}
.ex-nota-v{font-size:18px}
.ex-sempath{display:flex;flex-wrap:wrap;gap:6px;position:relative}
.ex-semc{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:13px;border:1px solid var(--line);background:var(--card);color:var(--muted)}
.ex-semc[data-st="ok"]{background:var(--pos-soft);color:var(--pos);border-color:transparent}
.ex-semc[data-st="cur"]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.ex-semc[data-st="lock"]{background:var(--soft);border-style:dashed}
.ex-semc[aria-current="true"]{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ink-2)}
.ex-sempath-l{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);position:relative}
.ex-sempath-l span{display:inline-flex;align-items:center;gap:6px}
.ex-sempath-l i{width:12px;height:12px;border-radius:4px;border:1px solid var(--line);background:var(--card)}
.ex-sempath-l i[data-st="ok"]{background:var(--pos-soft);border-color:var(--pos)}
.ex-sempath-l i[data-st="cur"]{background:var(--accent-soft);border-color:var(--accent)}
.ex-sempath-l i[data-st="lock"]{background:var(--soft);border-style:dashed}

/* tarjeta del centro: validar semestres */
.ex-suf{display:flex;flex-direction:column;gap:14px;min-width:0}
.ex-suf .ex-car-h small b{display:inline;font-family:var(--f-body);font-size:inherit;color:var(--ink);font-weight:700}
.ex-semtrack{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}
.ex-semtrack i{height:7px;border-radius:999px;background:var(--bar)}
.ex-semtrack i[data-st="ok"]{background:var(--pos)}
.ex-semtrack i[data-st="cur"]{background:var(--tint,var(--accent));opacity:.45}
.ex-suf-cur{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:var(--soft);min-width:0}
.ex-suf-cur .ic-tile{width:42px;height:42px;border-radius:12px;background:var(--card);color:var(--tint,var(--accent))}
.ex-suf-cur[data-st="ok"] .ic-tile{color:var(--gold)}
.ex-suf-cur > div{min-width:0}
.ex-suf-cur b{display:block;font-weight:600;line-height:1.3}
.ex-suf-cur small{color:var(--muted);font-size:12.5px}
.ex-suf-cur .eyebrow{font-size:11.5px}
.ex-suf-acts{margin-top:auto}
.ex-suf-acts .btn{flex:1 1 auto}
.ex-car-av{display:flex;align-items:center;gap:10px;font-size:12.5px;min-width:0}
.ex-car-av .prog{flex:1;min-width:40px}
.ex-car-av .prog i{background:var(--tint,var(--accent))}
.ex-car-av .num{white-space:nowrap;color:var(--muted)}
.ex-car-av .num b{color:var(--ink)}

/* resultado de la suficiencia */
.ex-big-nota[data-ok="false"]{color:var(--neg)}
.ex-celebra{display:flex;gap:14px;align-items:flex-start;background:var(--gold-soft);border-radius:16px;padding:18px;border:1px solid var(--line)}
.ex-celebra .ic-tile{background:var(--card);color:var(--gold);width:48px;height:48px;border-radius:14px}
.ex-celebra-tx{min-width:0;display:flex;flex-direction:column;gap:4px}
.ex-celebra-t{font-size:22px;font-weight:700;line-height:1.15;letter-spacing:-.015em;text-wrap:balance}
.ex-celebra p{margin:0 0 8px;color:var(--ink-2);font-size:13.5px;line-height:1.5}
.ex-celebra p b{color:var(--ink)}
.ex-celebra .row{gap:8px}
.ex-matbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;max-width:200px}
.ex-matbar i{height:6px;border-radius:999px;background:var(--bar)}
.ex-matbar i.on{background:var(--pos)}
.ex-mrs{display:flex;flex-direction:column;gap:10px}
.ex-mr{display:flex;align-items:center;gap:8px 14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;min-width:0;flex-wrap:wrap}
.ex-mr-n{width:58px;height:48px;border-radius:12px;display:grid;place-items:center;font-size:20px;flex:none}
.ex-mr-n.ok{background:var(--pos-soft)}
.ex-mr-n.bad{background:var(--neg-soft)}
.ex-mr-tx{flex:1;min-width:170px}
.ex-mr-tx b{display:block;font-weight:600;line-height:1.35}
.ex-mr-tx small{display:block;color:var(--muted);font-size:12.5px;line-height:1.45;margin-top:2px}
.ex-mr-end{flex:none;margin-left:auto}

/* ---------- responsive ---------- */
@media (min-width:1081px){
  .ex-plan-card{position:sticky;top:84px}
}
@media (max-width:1080px){
  .ex-rcols{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:900px){
  .ex-rgrid{grid-template-columns:minmax(0,1fr);gap:20px}
  .ex-modos{grid-template-columns:minmax(0,1fr)}
  .ex-modo{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 14px}
  .ex-modo-h,.ex-modo-d{grid-column:1}
  .ex-modo-n{grid-column:2;grid-row:1 / span 2;flex-direction:column;align-items:flex-end;gap:0}
  .ex-modo .btn{grid-column:1 / -1}
  .ex-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .ex-stats .stat{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}
  .ex-stats .stat .ic{width:34px;height:34px}
  .ex-stats .stat .bars{display:none}
  .ex-stats .stat .v{font-size:18px}
  .ex-stats .stat .l{white-space:normal;font-size:12px;line-height:1.3}
}
@media (max-width:560px){
  .ex-show-s{display:inline}
  .ex-hide-s,.btn .ex-hide-s{display:none}
  .ex-areas > :last-child:nth-child(odd){grid-column:1 / -1}
  .ex-read .q-texto{max-height:min(40vh,360px)}
  .ex-tabs .seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}
  .ex-tabs .seg button{padding:7px 4px;font-size:13px}
  .ex-feature{padding:18px 16px}
  .ex-feature-h h2{font-size:20px}
  .ex-feature-h .ic-tile{display:none}
  .ex-areas{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ex-area{padding:12px}
  .ex-sp-grid{grid-template-columns:minmax(0,1fr)}
  .ex-h1{font-size:22px}
  .ex-fact{padding:10px 12px}
  .ex-fact .h{font-size:24px}
  .ex-steps{grid-template-columns:minmax(0,1fr)}
  .ex-keys{display:none}
  .ex-intro-cta .btn{flex:1}
  .ex-head{padding:10px 12px;gap:8px}
  .ex-head-r{gap:8px}
  .ex-head-t b{font-size:15px}
  .ex-timer{min-width:0;padding:0 10px}
  .ex-head-r .btn.sm{padding:6px 10px}
  .ex-head-p small{font-size:12px}
  .ex-qcard{padding:16px 14px}
  .ex-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .ex-actions .sp{display:none}
  .ex-actions .btn{padding:10px 6px}
  .ex-rhero{padding:20px 16px}
  .ex-nbox{padding:14px;gap:14px}
  .ex-ring{width:80px;height:80px}
  .ex-ra{grid-template-columns:30px minmax(0,1fr) 70px;gap:8px}
  .ex-ra .ic-tile{width:30px;height:30px}
  .ex-rev-h .seg{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .ex-ractions .btn{flex:1 1 auto}
  .ex-esc-ta{min-height:240px}
  .ex-stats .stat .l{font-size:11.5px}
  .ex-hist .tx b{white-space:normal;line-height:1.3}
  .ex-hist .tx small{white-space:normal}
  .ex-suf-mats > .sec-h{padding:14px 14px 0}
  .ex-semc{width:30px;height:30px;font-size:12.5px;border-radius:9px}
  .ex-celebra{padding:14px;gap:12px}
  .ex-celebra .ic-tile{width:40px;height:40px}
  .ex-celebra-t{font-size:19px}
  .ex-celebra .row .btn{flex:1 1 auto}
  .ex-mr{padding:12px}
  .ex-mr-n{width:52px;height:44px;font-size:18px}
}

/* Figuras SVG de preguntas y textos compartidos (P.figuraHTML en core.js; se usan en todas las vistas) */
/* Lámina impresa: papel y tinta fijos (tokens --fig-* en app.css); en oscuro sólo el borde sigue al tema */
.q-fig{margin:12px auto;width:100%;max-width:520px;color:var(--fig-tinta);border:1px solid var(--line);border-radius:var(--r);background:var(--fig-papel);padding:10px 10px 8px;color-scheme:light}
.q-fig svg{display:block;width:100%;height:auto;max-width:100%;overflow:visible;color:var(--fig-tinta)}
.q-fig figcaption{margin-top:6px;font-size:12.5px;line-height:1.4;color:var(--fig-tinta-2);text-align:center}

/* Formato ICFES: sesiones (hub, intro y descanso) */
.ex-icfes{display:flex;flex-direction:column;gap:14px}
.ex-icfes .ex-feature-h h2{margin:2px 0 4px}
.ex-ses{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px;position:relative}
.ex-ses-i{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.ex-ses-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.ex-ses-h b{font-family:var(--f-head);font-size:15px}
.ex-ses-h span{font-size:13px}
.ex-pausa .deco{color:var(--accent)}

/* Diagnóstico del Examen Pre-ICFES (resultado): cómo leer el puntaje, nivel por prueba, competencias débiles y comparación */
.ex-dx{display:flex;flex-direction:column;gap:12px}
.ex-dx .sec-h{margin-bottom:0}
.ex-dx-h{margin:8px 0 0;font-family:var(--f-head);font-size:16px;font-weight:700}
.ex-dx-h .muted{font-weight:500;font-size:13px}
.ex-dx-nota{margin:0;font-size:12.5px;line-height:1.45}
.ex-dx-leer{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px}
.ex-dx-li{border:1px solid var(--line);border-radius:14px;background:var(--soft);padding:12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.ex-dx-li .h{font-size:20px;font-weight:700;color:var(--accent);line-height:1.1}
.ex-dx-li b{font-weight:600;font-size:14px}
.ex-dx-li p{margin:0;font-size:12.5px;line-height:1.45;color:var(--ink-2)}
.ex-dx-ps,.ex-dx-fs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px}
.ex-dx-p,.ex-dx-f{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0;background:var(--card)}
.ex-dx-p p,.ex-dx-f p{margin:0;font-size:13px;line-height:1.5;color:var(--ink-2)}
.ex-dx-p p b,.ex-dx-f p b{color:var(--ink);font-weight:600}
.ex-dx-ph{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ex-dx-ph .ic-tile{width:30px;height:30px;border-radius:9px;background:var(--tint-soft);color:var(--tint)}
.ex-dx-ph > b{font-weight:600;font-size:14.5px;min-width:0}
.ex-dx-ph .sp{flex:1}
.ex-dx-pts{font-size:13px;color:var(--muted)}
.ex-dx-pts b{font-size:16px;color:var(--ink)}
.ex-dx-bar{position:relative;height:9px;border-radius:999px;background:var(--soft);border:1px solid var(--line)}
.ex-dx-bar i{display:block;height:100%;border-radius:inherit;background:var(--tint,var(--accent))}
.ex-dx-bar i[data-lv="bad"]{background:var(--neg)}
.ex-dx-bar i[data-lv="mid"]{background:var(--gold)}
.ex-dx-bar i[data-lv="ok"]{background:var(--pos)}
.ex-dx-bar s{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink);opacity:.35;border-radius:2px}
.ex-dx-sig{padding:8px 10px;border-radius:10px;background:var(--soft)}
.ex-dx-d{font-size:12px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.ex-dx-d[data-d="up"]{color:var(--pos)}
.ex-dx-d[data-d="down"]{color:var(--neg)}
.ex-dx-fh{display:flex;align-items:center;gap:10px}
.ex-dx-n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--tint-soft,var(--accent-soft));color:var(--tint,var(--accent))}
.ex-dx-ft{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.ex-dx-ft b{font-weight:600;font-size:14px}
.ex-dx-ft .muted{font-size:12px}
.ex-dx-fv{font-size:12.5px;color:var(--muted);white-space:nowrap}
.ex-dx-fv b{color:var(--ink)}
.ex-dx-acc{gap:6px;flex-wrap:wrap}
.ex-dx-acc .btn{max-width:100%;white-space:normal;text-align:left}
.ex-dx-cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:8px}
.ex-dx-ci{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:13px;min-width:0}
.ex-dx-ci > span:first-child{font-weight:600;flex:1;min-width:0}
.ex-dx-cg{background:var(--soft)}
.ex-dx-cta{gap:8px;margin-top:4px}
.ex-aviso-pre{margin-top:-4px}
@media (max-width:560px){
  .ex-dx-cta .btn{flex:1 1 100%}
  .ex-dx-fv{align-self:flex-start}
}
/* Dieta de texto: reglas compactas (el detalle va en el botón «i») y niveles plegados */
.ex-steps.ex-steps-c{gap:10px 16px}
.ex-steps-c li{align-items:center}
.ex-steps-c .ic{width:32px;height:32px;border-radius:10px}
@media (max-width:560px){.ex-steps.ex-steps-c{grid-template-columns:repeat(2,minmax(0,1fr))}.ex-steps-c b{font-size:13.5px}}
.ex-dx-det{font-size:13px;color:var(--ink-2)}
.ex-dx-det summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:12.5px;padding:2px 0}
.ex-dx-det p{margin:6px 0 0}
.info-b kbd{font:inherit;font-size:12px;padding:1px 6px;border:1px solid var(--line);border-radius:6px;background:var(--soft)}

/* Arranque directo: franja de avisos dentro del examen (descartable, no lo detiene) y descanso mínimo entre sesiones */
.ex-avisos{display:flex;flex-direction:column;gap:8px}
.ex-aviso{padding:6px 6px 6px 12px;font-size:13px;line-height:1.4}
.ex-aviso>span{flex:1;min-width:0}
.ex-aviso-x{flex:none;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--ink-2);cursor:pointer}
.ex-aviso-x:hover{background:var(--card)}
.ex-aviso-x:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ex-qcard .q-p:focus{outline:none}
.ex-qcard .q-p:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}
.ex-descanso{display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:760px}
.ex-descanso-tx{flex:1 1 240px;min-width:0}
.ex-descanso-tx h1{font-size:21px;margin:0 0 2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ex-descanso-tx p{margin:0;color:var(--muted);font-size:14px}
.ex-descanso-cta{flex:1 1 100%;gap:10px}
@media (max-width:560px){
  .ex-descanso-cta .btn{flex:1 1 100%}
}
