/* Redesign phase 3: lesson player (p-03 mobile, p-09 desktop). Glass top bar, scene bubbles, rule box, sticky Pista/Comprobar footer. */
/* ---- session player ---- */
.session{max-width:1120px}
.sess-top{position:sticky;top:8px;z-index:20;padding:10px 14px;border-radius:22px;background:var(--glass-2);border:1px solid var(--edge);box-shadow:var(--sh-sm);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6)}
.sess-top #quit{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;border-radius:999px}
.sess-exit{display:none;font-size:.85rem;font-weight:700}
.sess-title{display:none;flex-direction:column;min-width:0;max-width:34%}
.sess-title small{font-size:.7rem;color:var(--on-card-mut);font-weight:700}
.sess-title b{font-size:1rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--on-card)}
.sess-top .progressbar{height:8px}
.sess-top .progressbar>i{background:var(--hero,#d81b6b)}
.sess-count{flex:0 0 auto;font-size:.82rem;font-weight:700;color:var(--on-card-mut);font-variant-numeric:tabular-nums}
.sess-grid{display:block}
.qcard{border-radius:26px}
.qcard .qtext{font-size:1.45rem;font-weight:800;letter-spacing:-.01em}
.qcard .qnum{font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--on-card-mut)}
.sess-actions{position:sticky;bottom:10px;z-index:15;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px;border-radius:24px;background:var(--glass-2);border:1px solid var(--edge);box-shadow:var(--sh);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6)}
.sess-actions #check{flex:1 1 180px;min-height:52px;border-radius:16px}
.sess-actions .xp-spend{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;margin:0}
.sess-actions .xp-spend[hidden]{display:none}
.sess-actions .xp-pill{min-height:52px;border-radius:16px;padding:0 16px}
.sess-actions .xp-have{margin:0;font-size:.68rem}
.sess-actions #heartbuy{flex:1 1 100%}
.sess-actions #heartbuy:empty,.sess-actions #heartbuy[hidden]{display:none}
@media (min-width:1000px){
  .sess-exit,.sess-title{display:flex}
  .sess-top{top:14px;padding:12px 20px;margin-bottom:22px}
  .sess-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.85fr);gap:24px;align-items:start}
  .sess-side{position:sticky;top:100px;display:flex;flex-direction:column;gap:14px}
  .sess-side .fb{margin:0}
  .sess-actions{position:static;margin-top:0;box-shadow:var(--sh-sm)}
}
/* ---- lesson (learn tab) ---- */
.ltop{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:10px 14px;border-radius:22px;background:var(--glass-2);border:1px solid var(--edge);box-shadow:var(--sh-sm);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6)}
.ltop-x{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;height:40px;padding:0 10px;border-radius:999px;background:var(--glass);border:1px solid var(--line);color:var(--on-card);font-weight:800;text-decoration:none}
.ltop-x span{display:none;font-size:.85rem}
.ltop-t{min-width:0}.ltop-t small{font-size:.72rem;font-weight:700;color:var(--on-card-mut)}
.ltop-t h1{margin:0;font-size:clamp(1.1rem,4.4vw,1.5rem);line-height:1.15;font-weight:800;letter-spacing:-.01em}
.mini-sec h3.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--on-card-mut)}
.mini-scene .dlg{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.dlg-line{display:flex;align-items:flex-end;gap:10px;padding:0;background:none!important}
.dlg-av{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);box-shadow:var(--sh-sm)}
.dlg-line[data-slot="0"] .dlg-av{background:linear-gradient(135deg,#d81b6b,#ff4d8d)}
.dlg-line[data-slot="2"] .dlg-av{background:linear-gradient(135deg,#ff8a3d,#ffb27a)}
.dlg-line[data-slot="3"] .dlg-av{background:linear-gradient(135deg,#3d2440,#6a3f6e)}
.dlg-bub{min-width:0;max-width:calc(100% - 50px);padding:9px 13px;border-radius:18px 18px 18px 6px;background:var(--glass-2);border:1px solid var(--edge);box-shadow:var(--sh-sm)}
.dlg-line:hover .dlg-bub{border-color:var(--acc)}
.dlg-bub .dlg-who{display:block;margin:0 0 2px;font-size:.72rem;font-weight:800}
.dlg-en{font-size:1.02rem;font-weight:700;color:var(--on-card)}
.dlg-bub .dlg-tr.open{font-size:.85rem;font-weight:500;color:var(--on-card-mut);margin-top:2px}
.mini-rule{padding:14px 16px;border-radius:18px;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.22)}
.mini-rule h3.eyebrow{color:var(--violet)}
.mini-rule .gt{background:transparent}
.lfoot{position:sticky;bottom:calc(env(safe-area-inset-bottom,0px) + 96px);z-index:15;margin-top:14px;padding:10px;border-radius:24px;background:var(--glass-2);border:1px solid var(--edge);box-shadow:var(--sh);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6)}
.lfoot #mini-gate{margin:0 0 8px;text-align:center}
.lfoot .btn.big{width:100%;min-height:52px;border-radius:16px}
@media (min-width:1000px){
  .ltop-x span{display:inline}
  .lfoot{bottom:16px}
  .mini-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;grid-auto-flow:row dense;align-items:start}
  .mini-card>*{grid-column:2;min-width:0}
  .mini-card>h2{grid-column:1 / -1}
  .mini-card>.mini-scene{grid-column:1;grid-row:2 / span 40;position:sticky;top:16px;margin-top:18px;padding:18px;border-radius:24px;background:var(--glass);border:1px solid var(--edge);box-shadow:var(--sh-sm)}
}
/* fixes after first staging check */
.sess-top #quit{width:auto;min-width:40px;height:40px;padding:0 12px}
.sess-actions #heartbuy:disabled{display:none}
@media (max-width:999px){.sess-actions .xp-have{display:none}.sess-actions .xp-pill{min-height:52px}}
@media (min-width:1000px){#app:has(.session){max-width:1080px}}
@media (min-width:900px){
  body:has(#app .ltop) #app{max-width:1180px}
  .ltop{position:sticky;top:12px;z-index:20}
}
@media (min-width:1000px){.mini-card>.mini-scene{top:96px}}
