:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#1c293a;background:#f4f7fb;font-size:15px}*{box-sizing:border-box}body{margin:0}a{color:#155dc4;text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:1120px;margin:auto;padding:0 22px}.top{background:#142846;color:white}.bar{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:70px}.brand{font-size:22px;color:white;font-weight:800;white-space:nowrap}.brand span{color:#8dc9f9}.top nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.top nav a,.linklike{color:#e4eeff;font-size:14px}.linklike{background:none;border:0;padding:0;cursor:pointer}.heading{margin:32px 0 22px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.heading h1{margin:0;font-size:26px;letter-spacing:-.5px}.muted{color:#64748b}.card{background:white;border:1px solid #e1e7ef;border-radius:13px;padding:22px;margin-bottom:18px;box-shadow:0 3px 12px #1c365008}.card h2{font-size:18px;margin:0 0 14px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat{background:white;border:1px solid #e1e7ef;border-radius:12px;padding:20px}.stat strong{font-size:32px;display:block}.stat span{color:#64748b;font-size:13px}.label{display:block;font-size:13px;font-weight:650;margin:12px 0 6px}input,textarea,select{width:100%;border:1px solid #c9d4e1;border-radius:8px;padding:11px;font:inherit;background:#fff;color:#1c293a}textarea{min-height:105px;resize:vertical}button,.btn{border:0;background:#175bc5;color:white;padding:11px 16px;border-radius:8px;font-weight:650;cursor:pointer;display:inline-block;font:inherit}button:hover,.btn:hover{background:#12499e;text-decoration:none}.secondary{background:#edf4ff;color:#1553ad}.secondary:hover{background:#d8e9ff}.inline{display:inline}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #e9edf3;vertical-align:top}th{font-size:13px;color:#52647b;white-space:nowrap}tr:last-child td{border-bottom:0}.pill{display:inline-block;padding:4px 9px;font-size:12px;font-weight:700;border-radius:99px;white-space:nowrap}.good{color:#15603f;background:#dcf5e6}.bad{color:#9b2b2b;background:#fee2e2}.wait{color:#8c6212;background:#fff1c9}.neutral{color:#52647b;background:#e9eff5}.alert{padding:13px 17px;border-radius:8px;margin:12px 0 20px}.success{background:#e1f8eb;border:1px solid #b9dfc9}.danger{background:#ffe4e4;border:1px solid #e9baba}.student-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.student-tile{text-align:center;border-radius:9px;padding:12px 2px;border:1px solid #d5e0ed;background:#f3f7fa;font-size:13px}.student-tile b{display:block;font-size:12px}.student-tile em{display:block;font-size:11px;font-style:normal}.student-tile.good{background:#dff6e8}.student-tile.bad{background:#ffe5e5}.student-tile.wait{background:#fff0cd}.help{color:#65758a;font-size:13px;margin:6px 0 16px}.small{font-size:13px}.course-item{padding:16px;border:1px solid #e4eaf3;border-radius:10px;margin-bottom:10px;background:#fff}.course-item h3{margin:0 0 6px;font-size:16px}.login{max-width:480px;margin:45px auto}.footer{padding-top:28px;padding-bottom:30px;color:#8b98aa;font-size:12px}pre{background:#edf3fb;padding:12px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.narrow{max-width:740px}ul li{margin:6px 0}@media(max-width:740px){.bar{display:block;padding-top:14px;padding-bottom:15px}.bar nav{margin-top:12px;gap:12px}.student-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.shell{padding:0 14px}.heading h1{font-size:23px}}@media(max-width:380px){.student-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.reset-input{width:170px}

/* EduLab 3A–3B — khóa học và điều hướng */
.course-switcher{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.course-chip{display:inline-flex;border:1px solid #c8d6e8;background:#fff;border-radius:999px;padding:7px 12px;color:#294867;font-size:13px}
.course-chip.selected{background:#155dc4;border-color:#155dc4;color:#fff;font-weight:700}
.course-item .actions h3{margin:0}

/* EduLab 3B.1 · Unified Apple-inspired interface (no external assets) */
:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Arial,sans-serif;color:#1d1d1f;background:#f5f5f7;font-size:15px;-webkit-font-smoothing:antialiased}
body{color:#1d1d1f;line-height:1.55}a{color:#0066cc;transition:color .16s}a:hover{color:#004b9b}.shell{max-width:1190px;padding:0 28px}
.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.9);color:#1d1d1f;border-bottom:1px solid #e5e5ea;backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px)}
.bar{min-height:72px}.brand{color:#1d1d1f;font-size:23px;font-weight:800;letter-spacing:-1.1px}.brand span{color:#71717a;font-size:12px;letter-spacing:.02em;font-weight:600;vertical-align:middle}.top nav{gap:19px}.top nav a,.linklike{color:#494950;font-size:13px;font-weight:600}.top nav a:hover,.linklike:hover{color:#0071e3;text-decoration:none}.linklike{cursor:pointer}
.heading{margin:43px 0 26px;align-items:center}.heading h1{font-size:clamp(26px,3.7vw,42px);font-weight:780;letter-spacing:-1.7px;line-height:1.13}.heading .muted{font-size:13px}
.card,.stat{border:1px solid #e8e8ed;border-radius:22px;box-shadow:0 9px 35px rgba(31,31,48,.035);background:#fff}.card{padding:28px;margin-bottom:20px}.card h2{font-size:20px;font-weight:750;letter-spacing:-.55px;margin-bottom:18px}.stat{padding:26px;min-height:116px}.stat strong{font-weight:800;font-size:38px;letter-spacing:-1.6px}.stat span{color:#6e6e73;font-size:13px}.grid{gap:17px;margin-bottom:22px}
.course-item{background:linear-gradient(145deg,#fff,#fcfcfe);border:1px solid #ececf1;border-radius:17px;padding:20px;margin-bottom:12px}.course-item h3{font-size:17px;letter-spacing:-.4px}.course-item:hover{border-color:#d6dce8;box-shadow:0 6px 20px #14142208}.muted,.help{color:#777780}
button,.btn{background:#0071e3;border-radius:999px;padding:10px 19px;font-size:14px;font-weight:650;line-height:1.4;transition:transform .15s,background .15s}button:hover,.btn:hover{background:#0063c6;transform:translateY(-1px)}.secondary{color:#125aa0;background:#e9f2ff}.secondary:hover{background:#d9eaff;color:#125aa0}.course-chip{border:1px solid #e2e2e7;background:#fff;color:#4a4a54;padding:8px 15px}.course-chip.selected{color:#fff;border-color:#1d1d1f;background:#1d1d1f}
input,textarea,select{border:1px solid #d8d8df;border-radius:12px;padding:12px 14px;background:#fbfbfd;color:#1d1d1f;outline:none}input:focus,textarea:focus,select:focus{border-color:#0071e3;box-shadow:0 0 0 3px #0071e31e}.label{color:#4c4c55}.tablewrap{border:1px solid #f0f0f3;border-radius:14px}th{background:#fafafd;color:#686873}td,th{border-bottom-color:#eeeef2}.student-tile{border-radius:12px}
.footer{border-top:1px solid #e6e6eb;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#7a7a83;margin-top:48px;padding-top:26px;padding-bottom:36px;font-size:13px}
.alert{border-radius:13px}.pill{border-radius:100px}.login{margin-top:70px}
@media(max-width:820px){.top{position:relative}.bar{gap:8px;align-items:flex-start;padding-top:16px;padding-bottom:14px}.top nav{gap:11px}.card{padding:19px}.heading{margin:30px 0 20px}.shell{padding:0 16px}}
@media(prefers-reduced-motion:reduce){button,.btn,a{transition:none}}

/* EduLab 3C — ghi danh và quản lý khóa học */
.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;color:#747480;text-transform:uppercase;margin:0 0 8px}
.enroll-header{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.enroll-header h2{font-size:clamp(20px,2.5vw,28px);letter-spacing:-.7px;margin:0 0 8px}
.enroll-header .help{max-width:720px;margin:0}
.enroll-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;margin:10px 0 12px}
.enroll-choice{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#fafafd;border:1px solid #e6e6ec;border-radius:12px;cursor:pointer;font-size:13px}
.enroll-choice input{flex:0 0 auto;width:17px;height:17px;margin:0;accent-color:#0066cc}
.enroll-check{width:18px;height:18px;accent-color:#0066cc;cursor:pointer;padding:0}
.enroll-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;padding:18px 0 2px}
.enroll-actions .help{margin:0}
.danger-button{background:#9f2730;color:#fff}
.danger-button:hover{background:#811c25}
@media(max-width:740px){.enroll-actions{align-items:flex-start}.enroll-options{grid-template-columns:1fr}}

/* EduLab 3D.1 — Question bank + ungraded practice (scoped) */
.q3d1-form-section form{max-width:840px}.q3d1-form-section textarea{min-height:72px}
.q3d1-form-section textarea#q3d_prompt{min-height:105px}
.q3d1-list-header{display:flex;align-items:start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.q3d1-bank-item{padding:18px 0;border-top:1px solid #e9e9ed;display:grid;gap:9px}
.q3d1-bank-item>strong{font-size:16px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.q3d1-bank-item .help{margin:0}.q3d1-bank-meta,.q3d1-question-meta{display:flex;gap:8px;flex-wrap:wrap}
.q3d1-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:15px 0 18px}
.q3d1-filter .label{margin:0}.q3d1-filter select{width:auto;min-width:150px;max-width:100%}
.q3d1-question h2{margin:14px 0 16px;white-space:normal;overflow-wrap:anywhere}
.q3d1-options{display:grid;gap:10px}.q3d1-option{display:flex;align-items:flex-start;gap:12px;border:1px solid #e6e7eb;background:#fbfbfd;padding:14px 16px;border-radius:14px;line-height:1.6;cursor:pointer}
.q3d1-option:hover{border-color:#94bdf4}.q3d1-option input{margin-top:6px;width:17px;height:17px;flex:0 0 auto;accent-color:#0071e3}
.q3d1-option b{margin-right:8px}.q3d1-disabled{cursor:default}.q3d1-disabled:hover{border-color:#e6e7eb}
.q3d1-right{background:#edf9f0;border-color:#68b988!important}.q3d1-wrong{background:#fff0f1;border-color:#df989c!important}
.q3d1-feedback{background:#f5f7fa;border-radius:12px;margin-top:16px;padding:16px 18px;overflow-wrap:anywhere}
.q3d1-feedback p{margin:8px 0 0;color:#4f5560}.q3d1-score{text-align:center;padding:32px}.q3d1-score h2{font-size:40px;letter-spacing:-1.5px}
@media(max-width:650px){.q3d1-filter{display:grid;grid-template-columns:1fr}.q3d1-filter select{width:100%}.q3d1-score h2{font-size:30px}}

/* EDULAB_3D11_STYLES — bulk import scoped */
.e311-shell{max-width:1120px}.e311-shell .actions{flex-wrap:wrap}.e311-row{display:flex;gap:12px;align-items:end}.e311-row select{min-width:210px;max-width:480px}.e311-row button{white-space:nowrap}.e311-upload{max-width:680px;display:grid;gap:12px;margin-top:20px}.e311-upload input[type=file]{display:block;width:100%;border:1px dashed #cfd2da;border-radius:14px;background:#f8f9fc;padding:16px;max-width:100%;box-sizing:border-box}.e311-upload button{justify-self:start}.e311-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}.e311-summary>div{border:1px solid #e9eaf0;background:#f8f9fb;border-radius:16px;padding:16px;display:grid;gap:4px}.e311-summary strong{font-size:30px;line-height:1;color:#222}.e311-summary span{color:#6c717c;font-size:13px}.e311-table-scroll{max-height:530px;overflow:auto;border:1px solid #e9eaf0;border-radius:14px}.e311-table{width:100%;min-width:700px;border-collapse:collapse}.e311-table th{position:sticky;top:0;background:#f5f6f8;color:#585d66;text-align:left;font-size:13px;padding:12px}.e311-table td{padding:12px;border-top:1px solid #eceef1;vertical-align:top;font-size:14px}.e311-prompt{display:block;max-width:440px;overflow-wrap:anywhere;white-space:pre-wrap}.e311-tag{display:inline-block;padding:4px 8px;border-radius:100px;background:#e9edf5;color:#404a60;font-size:12px}.e311-ready{background:#e7f6eb;color:#146c38}.e311-duplicate{background:#fff2dd;color:#855400}.e311-invalid{background:#fde9e9;color:#ae2d35}.e311-issues{color:#a03b3b;margin-top:6px;font-size:12px;line-height:1.5}.e311-actions{margin-top:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
@media(max-width:680px){.e311-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.e311-row{display:grid;gap:8px}.e311-row select{width:100%;min-width:0}}

/* EDULAB_3D2_STYLES: only 3D.2 pages */
.e32-hero{background:linear-gradient(135deg,#f8fbff,#fff 70%);border:1px solid #e1e8f2}
.e32-panel{max-width:860px}
.e32-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0 20px}
.e32-grid>div{min-width:0}.e32-grid input,.e32-grid select{width:100%}
.e32-list-item{border-top:1px solid #e6ebf2;padding:17px 0}.e32-top,.e32-history{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.e32-history{padding:13px 0;border-top:1px solid #e6ebf2}
.e32-list-item strong{font-size:1.05rem}.e32-list-item .actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}
.e32-timer{background:#17223b;color:#fff;padding:13px 16px;border-radius:14px;margin:14px 0;font-variant-numeric:tabular-nums;display:flex;justify-content:space-between;align-items:center}.e32-timer strong{font-size:1.35rem}
.e32-question h2{font-size:1.1rem;line-height:1.55}.e32-options{display:grid;gap:9px;margin-top:12px}
.e32-option{display:block;padding:12px 15px;border:1px solid #e0e5ed;border-radius:12px;line-height:1.5;background:#fff}
label.e32-option{cursor:pointer}.e32-option input{margin-right:9px;accent-color:#176dcd}.e32-option:has(input:checked){border-color:#176dcd;background:#eef5ff}
.e32-correct{border-color:#42a376;background:#eaf8ef}.e32-wrong{border-color:#d78282;background:#fff0f0}
.e32-explanation{margin-top:14px;padding:12px;background:#f4f6f9;border-radius:12px}.e32-explanation p{margin-bottom:0}
.e32-score{display:flex;align-items:center;justify-content:space-between;padding:14px 17px;background:#edf7f1;border:1px solid #b8dec9;border-radius:14px;margin:14px 0}.e32-score strong{font-size:1.25rem}
.e32-table-scroll{overflow:auto}.e32-table-scroll table{width:100%;border-collapse:collapse;min-width:660px}.e32-table-scroll td,.e32-table-scroll th{text-align:left;vertical-align:top;border-bottom:1px solid #edf0f5;padding:10px}
@media(max-width:650px){.e32-grid{grid-template-columns:1fr}.e32-top,.e32-history{flex-direction:column}.e32-score{gap:6px;flex-direction:column;align-items:flex-start}}

/* EduLab 3D.3 dashboard; scoped to its own classes */
.e33-hero{background:linear-gradient(135deg,#fff,#f6f9ff)}
.e33-hero h2{font-size:clamp(23px,3vw,31px);letter-spacing:-.9px}
.e33-mt{margin-top:16px}
.e33-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}
.e33-kpi{background:#fff;border:1px solid #e9e9ef;border-radius:19px;padding:20px;min-width:0}
.e33-kpi strong{display:block;font-size:clamp(22px,2.3vw,34px);line-height:1.2;letter-spacing:-.8px;overflow-wrap:anywhere}
.e33-kpi span{display:block;color:#686875;font-size:12px;margin-top:8px}
.e33-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.e33-bar-row{margin-bottom:15px}
.e33-bar-label{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:7px}
.e33-bar-label span:last-child{color:#646474}
.e33-progress{display:block;width:100%;height:11px;border:0;appearance:none;-webkit-appearance:none;border-radius:999px;overflow:hidden;background:#ebedf5}
.e33-progress::-webkit-progress-bar{background:#ebedf5;border-radius:999px}
.e33-progress::-webkit-progress-value{background:#0071e3;border-radius:999px}
.e33-progress::-moz-progress-bar{background:#0071e3;border-radius:999px}
.e33-heading{display:flex;align-items:start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.e33-heading h2{margin-bottom:5px}
.e33-heading .help{max-width:800px}
.e33-cols .card,.e33-cols table{min-width:0}
.e33-cols .tablewrap{max-width:100%}
@media(max-width:960px){.e33-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.e33-cols{grid-template-columns:1fr}}
@media(max-width:530px){.e33-kpis{gap:8px}.e33-kpi{padding:13px}.e33-kpi strong{font-size:22px}}

/* EDULAB_3D4_STYLES — scoped to added controls */
.e34-policy { margin-top: 1rem; padding: .8rem 1rem; border: 1px solid #d8dce4; border-radius: 14px; background: #f8fafc; }
.e34-policy summary { cursor: pointer; font-weight: 600; }
.e34-policy form { padding-top: .9rem; }
.e34-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-bottom: .85rem; }
.e34-grid label { display: flex; flex-direction: column; gap: .3rem; font-size: .92rem; font-weight: 600; }
.e34-grid input,.e34-grid select { width: 100%; max-width: 100%; }
@media(max-width:640px){.e34-grid{grid-template-columns:1fr}}

/* EDULAB_3F_STYLES — scoped to course lifecycle manager */
.e3f-hero {background:linear-gradient(125deg,#f5f7fc 0%,#eaf1ff 100%);border:1px solid #dce4f4}
.e3f-hero h2 {font-size:clamp(1.55rem,3.5vw,2.25rem);letter-spacing:-.04em;margin:.1rem 0 .5rem;color:#10182a}
.e3f-head {display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.e3f-stats {display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:22px 0}
.e3f-stat {background:#f5f7fc;border:1px solid #e5e9f2;border-radius:14px;padding:14px 12px;display:flex;flex-direction:column;gap:3px}
.e3f-stat b {font-size:1.5rem;font-weight:700;color:#19263a;line-height:1.2}
.e3f-stat span {font-size:.78rem;color:#68778d}
.e3f-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:16px}
.e3f-form {padding:8px 0}
.e3f-form input,.e3f-form select {width:100%;max-width:100%;box-sizing:border-box}
.e3f-checkbox {display:flex;align-items:center;gap:9px;margin:16px 0;font-size:.9rem}
.e3f-checkbox input {width:auto}
.e3f-danger {margin:16px 0;border:1px solid #f0d0d0;background:#fff8f7;border-radius:12px;padding:12px 16px}
.e3f-danger summary {font-weight:600;cursor:pointer;color:#9e2525}
.e3f-danger[open] {padding-bottom:16px}
.e3f-hero .eyebrow {letter-spacing:.13em}

