/* Learner + instructor app screens */
.app-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:28px 0 18px}
.app-h h1{font-size:clamp(26px,3.4vw,38px);margin:4px 0 0}
.next{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--g1);color:var(--gt);border-radius:var(--r2);padding:22px 24px}
.next h2{color:#fff;font-size:clamp(20px,2.4vw,26px);margin:4px 0}.next p{color:var(--gm);margin:0}
@media (max-width:640px){.next{grid-template-columns:1fr}}
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0}
.kpi{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:14px 16px}.kpi b{display:block;font:600 24px/1.1 var(--mono);letter-spacing:-.02em}.kpi small{color:var(--mute);font-size:12.5px}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:520px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.heat{display:grid;gap:9px}.heat li{display:grid;grid-template-columns:110px 1fr 46px;gap:10px;align-items:center;font-size:14px}.heat .bar{height:10px;border-radius:10px}.heat b{font:600 13px var(--mono);text-align:right}
.heat .lo>i{background:var(--bad)}.heat .mid>i{background:var(--warn)}.heat .hi>i{background:var(--ok)}
.recs{display:grid;gap:8px}.recs a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--white);text-decoration:none}.recs a:hover{border-color:var(--acc)}.recs small{color:var(--mute);display:block}
.recs .ic{width:22px;height:22px;color:var(--acc)}
.badges{display:flex;flex-wrap:wrap;gap:8px}.badge{display:flex;gap:8px;align-items:center;padding:8px 12px 8px 8px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:13px;font-weight:600}.badge i{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-style:normal;font-size:12px}.badge.off{opacity:.45}
.cert-mini{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
/* exam */
.exam-bar{position:sticky;top:var(--hh);z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;background:var(--white);border:1px solid var(--line);border-radius:14px;margin-bottom:14px;box-shadow:var(--sh)}
.exam-bar .timer{font:600 18px var(--mono)}.exam-bar .timer.warn{color:var(--bad)}
.qnav{display:flex;flex-wrap:wrap;gap:4px}.qnav button{width:30px;height:30px;border-radius:8px;border:1px solid var(--line2);background:var(--white);font:600 12px var(--mono);cursor:pointer}.qnav button.a{background:var(--ink);color:#fff;border-color:var(--ink)}.qnav button.c{outline:2px solid var(--acc)}
.topics{display:grid;gap:10px}.topics li{display:grid;grid-template-columns:200px 1fr 54px;gap:12px;align-items:center}
@media (max-width:600px){.topics li{grid-template-columns:120px 1fr 44px}}
/* flashcards */
.fc{perspective:1200px;max-width:560px;margin:0 auto}.fc__card{position:relative;height:280px;transform-style:preserve-3d;transition:transform .5s;cursor:pointer}.fc__card.flip{transform:rotateY(180deg)}
.fc__f,.fc__b{position:absolute;inset:0;backface-visibility:hidden;border-radius:22px;display:grid;place-items:center;text-align:center;padding:26px;background:var(--white);border:1px solid var(--line);box-shadow:var(--sh)}.fc__f b{font-size:30px}.fc__b{transform:rotateY(180deg);font-size:17px;line-height:1.6}
@media (prefers-reduced-motion:reduce){.fc__card{transition:none}}
.grades{display:flex;justify-content:center;gap:8px;margin-top:16px;flex-wrap:wrap}
/* staff */
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs button{border:0;background:none;padding:10px 12px 12px;font:600 14px var(--sans);color:var(--mute);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.tabs button.on{color:var(--ink);border-color:var(--acc)}
.stu{cursor:pointer}.stu:hover td{background:var(--paper)}
.player{background:#0b0c0b;border-radius:16px;overflow:hidden;position:relative;aspect-ratio:16/9}
.player canvas{position:absolute;inset:0;width:100%;height:100%}
.tl{width:100%;height:90px;display:block;background:var(--g1);border-radius:10px;margin-top:8px;cursor:ew-resize;touch-action:none}
.comment{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.comment .t{font:600 12px var(--mono);color:var(--acc-ink);cursor:pointer}
.builder-obj{display:grid;grid-template-columns:120px repeat(6,minmax(0,1fr)) auto;gap:6px;align-items:center;margin:4px 0}.builder-obj .input{min-height:36px;padding:6px 8px;font-size:13px}
@media (max-width:860px){.builder-obj{grid-template-columns:repeat(3,minmax(0,1fr))}}
.blk{border:1px solid var(--line);border-radius:12px;padding:10px;margin:8px 0;background:var(--paper)}
/* certificate */
.cert{max-width:860px;margin:30px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(24px,5vw,56px);position:relative;overflow:hidden;box-shadow:var(--sh2)}
.cert::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(20,23,28,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(20,23,28,.04) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.cert>*{position:relative}.cert h1{font-size:clamp(28px,4vw,42px);margin:14px 0 6px}.cert .grid{margin:22px 0}
.cert__qr{width:120px;height:120px}
@media print{.cert{box-shadow:none;border:0;margin:0}}
