/* ---------- Programa ---------- */
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.hl{border-color:rgba(242,86,29,.55);box-shadow:0 0 0 1px rgba(242,86,29,.25) inset}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:.78rem;padding:3px 9px;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--muted)}
.chip.ok{border-color:var(--moss);color:var(--moss)}
.track.on{border-color:var(--flame)}
.path{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:4px}
.node{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:8px;border-radius:12px;cursor:pointer}
.node:hover{background:var(--surface2)}
.node.lock{opacity:.55}
.dotn{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-family:var(--head);background:var(--surface2);border:2px solid var(--line);font-size:.85rem}
.node.open .dotn{border-color:var(--flame);color:var(--flame-soft)}
.node.done .dotn{background:var(--moss);border-color:var(--moss);color:var(--flame-ink)}
ol.why{padding-left:20px}
ol.why li{margin:10px 0}
details summary{cursor:pointer}
.lvl{font-family:var(--head);font-weight:800;font-size:1.4rem;background:var(--flame);color:var(--flame-ink);border-radius:12px;padding:4px 12px}
.qbig{font-size:1.2rem;font-weight:600;margin:.3em 0}

/* sesión guiada */
.stepper{display:flex;gap:6px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}
.stepper::-webkit-scrollbar{display:none}
.st{flex:none;display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px 6px 6px;color:var(--muted);cursor:pointer;font-weight:600;font-size:.86rem}
.st span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface2);font-size:.75rem}
.st.on{border-color:var(--flame);color:var(--text)}
.st.on span{background:var(--flame);color:var(--flame-ink)}
.st.ok span{background:var(--moss);color:var(--flame-ink)}
.speakers{min-height:34px;margin-top:10px}
.quiz{margin:10px 0}
.opt{display:block;width:100%;text-align:left;margin:6px 0;border-radius:12px}
.opt.right{background:rgba(141,179,94,.2);border-color:var(--moss)}
.opt.wrong{background:rgba(217,71,91,.18);border-color:var(--berry)}
.line{padding:8px 10px;border-radius:10px;margin:6px 0;background:var(--bg)}
.line.B{border-left:3px solid var(--moss)}
.line.A{border-left:3px solid var(--flame)}
.line .who{display:block;font-size:.75rem;color:var(--muted);font-weight:700;text-transform:uppercase}
.line .en{cursor:pointer}
.dictres .hit{color:var(--moss);font-weight:600}
.dictres .miss{color:var(--berry);text-decoration:underline wavy}
.chunk.now{background:rgba(242,86,29,.12);border-radius:8px}
.chunklist{margin-top:10px}
.better{color:var(--moss);font-weight:600}

/* progreso */
.chart{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.chart svg{width:100%;height:auto;display:block}
.chart.empty{padding:20px}
.bar{height:8px;background:var(--bg);border-radius:999px;margin:8px 0;overflow:hidden}
.bar span{display:block;height:100%;background:var(--flame)}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th,.tbl td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{color:var(--muted);font-weight:600;font-size:.8rem}
code{background:var(--bg);padding:2px 6px;border-radius:6px}
.card{overflow-x:auto}
#authTabs{margin:4px auto}
