body{background:#f4f6fb;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.sidebar{width:240px;background:#13294b;position:sticky;top:0;height:100vh;flex-shrink:0}
.sidebar .brand{color:#fff;font-weight:700;font-size:1.25rem}.sidebar .brand span{color:#5eead4}
.sidebar .nav-link{color:#cbd5e1;border-radius:8px}.sidebar .nav-link.active,.sidebar .nav-link:hover{background:#1e3a6e;color:#fff}
.topbar{background:#fff;border-bottom:1px solid #e5e7eb}
.stat{border:0;border-left:4px solid #2563eb;box-shadow:0 1px 3px rgba(0,0,0,.06)}.stat .v{font-size:1.7rem;font-weight:700}
.card{border:0;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.lesson-body h4{margin-top:1rem}.q-opt{cursor:pointer}
.progress-step{padding:.5rem .75rem;border-radius:8px;background:#fff;margin-bottom:.4rem;border:1px solid #e5e7eb}
.progress-step.run{border-color:#2563eb}.progress-step.ok{border-color:#16a34a;background:#f0fdf4}.progress-step.err{border-color:#dc2626;background:#fef2f2}
.rte{min-height:140px;border:1px solid #ced4da;border-radius:6px;padding:.5rem;background:#fff}
.chat-box{height:55vh;overflow-y:auto;background:#fff;border-radius:8px;padding:1rem}
.msg{margin-bottom:.8rem;padding:.6rem .8rem;border-radius:10px;max-width:85%;white-space:pre-wrap}
.msg.user{background:#dbeafe;margin-left:auto}.msg.assistant{background:#f1f5f9}
@media print{.sidebar,.topbar,.no-print{display:none!important}}
