/* Không gian Sinh viên — dùng token chung (đỏ đô + Be Vietnam Pro). Mobile-first. */
#ndsv-home, #ndsv-nganh { max-width: 760px; margin: 0 auto; }
.ndsv-cd { color: var(--gray-2); font-style: italic; }

/* Sub-nav */
.ndsv-subnav { background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; overflow-x:auto; }
.ndsv-subnav .nd-wrap { display:flex; gap:6px; padding-top:6px; padding-bottom:6px; }
.ndsv-subnav a { flex:none; padding:10px 16px; border-radius:10px; font-weight:600; font-size:14.5px; color:#33333a; white-space:nowrap; }
.ndsv-subnav a.on, .ndsv-subnav a:hover { background:var(--maroon); color:#fff; }

/* Màn 1 — cổng vào */
.ndsv-home { text-align:center; padding:6px 0; }
.ndsv-h1 { font-size:clamp(22px,4.6vw,30px); font-weight:800; margin:8px 0 6px; }
.ndsv-q { font-size:18px; font-weight:700; color:var(--maroon); margin:0 0 16px; }
.ndsv-search { position:relative; text-align:left; }
.ndsv-search input { width:100%; font:inherit; font-size:17px; padding:15px 16px; border:1.5px solid var(--pink); border-radius:14px; background:#fff; }
.ndsv-search input:focus { outline:none; border-color:var(--maroon); }
.ndsv-sugg { display:none; margin-top:8px; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.ndsv-sugg.on { display:block; }
.ndsv-suggit { display:block; padding:13px 15px; border-bottom:1px solid var(--line); color:var(--ink); font-weight:600; text-decoration:none; }
.ndsv-suggit:last-child { border-bottom:0; }
.ndsv-suggit:hover { background:var(--pink-soft); color:var(--maroon); }
.ndsv-nodata { padding:15px; text-align:left; }
.ndsv-nodata p { margin:0 0 8px; font-size:14px; }
.ndsv-near a { color:var(--maroon); font-weight:600; }
.ndsv-near-fb { color:var(--maroon); font-weight:700; text-decoration:none; }
.ndsv-or { margin:18px 0 10px; color:var(--gray); font-size:14px; }
.ndsv-picks { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.ndsv-pick { padding:12px 18px; border:1.5px solid var(--pink); border-radius:12px; color:var(--maroon); font-weight:700; text-decoration:none; background:#fff; }
.ndsv-pick:hover, .ndsv-pick.all { background:var(--maroon); color:#fff; border-color:var(--maroon); }
.ndsv-sample { font-size:11px; background:#b5651d; color:#fff; padding:1px 6px; border-radius:99px; font-weight:700; }
.ndsv-free { margin:18px 0 0; color:var(--gray); font-size:13.5px; }

/* Danh sách ngành */
.ndsv-listgrid { display:grid; grid-template-columns:1fr; gap:12px; }
.ndsv-listcard { display:flex; align-items:center; justify-content:space-between; background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 18px; font-weight:700; color:var(--ink); text-decoration:none; }
.ndsv-listcard:hover { border-color:var(--maroon); transform:translateY(-2px); box-shadow:var(--shadow); }

/* Trang ngành */
.ndsv-h2 { font-size:clamp(19px,3.6vw,26px); font-weight:800; margin:6px 0 14px; }
.ndsv-back { display:inline-block; margin:2px 0 8px; font-size:13.5px; font-weight:700; color:var(--maroon); background:var(--pink-soft); border:1px solid var(--pink); border-radius:999px; padding:8px 14px; text-decoration:none; }
.ndsv-detail-title { font-size:clamp(21px,4.6vw,30px); font-weight:800; color:var(--maroon); margin:0 0 14px; }
.ndsv-sample-banner { background:#fff4e6; border:1px solid #f0c98a; color:#8a5a1d; font-size:13px; font-weight:600; border-radius:10px; padding:10px 12px; margin-bottom:12px; }
.ndsv-empty { background:#fff; border:1px dashed var(--line); border-radius:14px; padding:22px; text-align:center; }
.ndsv-empty .nd-btn { margin-top:12px; }

/* Mục lục nhảy nhanh */
.ndsv-jump { background:var(--pink-soft); border:1px solid var(--pink); border-radius:14px; padding:12px; margin-bottom:8px; }
.ndsv-jump-btns { display:flex; flex-wrap:wrap; gap:8px; }
.ndsv-jbtn { flex:none; padding:9px 13px; border-radius:999px; background:#fff; border:1.5px solid var(--maroon); color:var(--maroon); font-weight:700; font-size:13px; text-decoration:none; }
.ndsv-jbtn:hover { background:var(--maroon); color:#fff; }
.ndsv-jbtn.lock { border-style:dashed; opacity:.85; }

/* Mục & tiêu đề */
.ndsv-sec { padding:18px 0; border-bottom:1px solid var(--line); }
.ndsv-sec p { line-height:1.65; color:#2c2c33; }
.ndsv-h3 { font-size:clamp(17px,3.4vw,21px); font-weight:800; margin:2px 0 10px; scroll-margin-top:120px; display:flex; align-items:baseline; gap:8px; }
.ndsv-num { color:var(--maroon); font-weight:800; }
.ndsv-sum { background:#fff; border-left:4px solid var(--maroon); border-radius:8px; padding:10px 12px; font-weight:600; margin:0 0 14px; }

/* ① Chương trình đào tạo */
.ndsv-year { margin-bottom:12px; }
.ndsv-year .yr-name { font-weight:800; color:var(--maroon); font-size:14.5px; margin-bottom:6px; }
.ndsv-mon { background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:8px; }
.ndsv-mon .mon-ten { font-weight:700; font-size:14.5px; margin-right:8px; }
.ndsv-mon .mon-tag { display:inline-block; font-size:11.5px; font-weight:700; padding:2px 9px; border-radius:99px; }
.ndsv-mon .mon-tag.nen { background:#e9f6ee; color:#1e7a44; }
.ndsv-mon .mon-tag.cc { background:#fff4e6; color:#b5651d; }
.ndsv-mon .mon-ly { font-size:13px; color:var(--gray); margin-top:6px; line-height:1.5; }

/* ② Nghề */
.ndsv-jobs { display:flex; flex-direction:column; gap:10px; }
.ndsv-job { background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.ndsv-job .j-name { font-weight:800; font-size:15.5px; color:var(--maroon); margin-bottom:6px; }
.ndsv-job .j-row { display:grid; grid-template-columns:120px 1fr; gap:8px; font-size:13.5px; padding:4px 0; border-top:1px dashed var(--line); }
.ndsv-job .j-row:first-of-type { border-top:0; }
.ndsv-job .j-row span { color:var(--gray); } .ndsv-job .j-row b { color:var(--ink); font-weight:600; }
.ndsv-job .j-src { color:var(--gray-2); font-style:italic; font-weight:400; }

/* ③ Bảng biến động */
.ndsv-viewtoggle { display:inline-flex; gap:4px; background:var(--pink-soft); border-radius:999px; padding:4px; margin:2px 0 14px; }
.ndsv-viewtoggle .vt { font:inherit; font-size:13px; font-weight:700; border:0; background:transparent; color:var(--maroon); padding:8px 14px; border-radius:999px; cursor:pointer; }
.ndsv-viewtoggle .vt.on { background:var(--maroon); color:#fff; }
.ndsv-tblwrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:12px; }
.ndsv-tbl { border-collapse:collapse; width:100%; min-width:520px; font-size:12.5px; }
.ndsv-tbl th, .ndsv-tbl td { padding:9px 11px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); line-height:1.5; }
.ndsv-tbl thead th { background:var(--maroon); color:#fff; font-weight:700; position:sticky; top:0; min-width:140px; }
.ndsv-tbl th.stick, .ndsv-tbl td.stick { position:sticky; left:0; background:var(--pink-soft); color:var(--maroon); font-weight:800; min-width:130px; box-shadow:1px 0 0 var(--line); z-index:1; }
.ndsv-tbl thead th.stick { background:var(--maroon); color:#fff; z-index:2; }
.ndsv-cards { display:flex; flex-direction:column; gap:12px; }
.ndsv-card { background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.ndsv-card .ndsv-crit { background:var(--pink-soft); color:var(--maroon); font-weight:800; font-size:14px; padding:10px 14px; }
.ndsv-ccell { padding:10px 14px; border-top:1px solid var(--line); display:grid; grid-template-columns:52px 1fr; gap:10px; }
.ndsv-ccell .cc-y { font-weight:800; color:var(--maroon); }
.ndsv-ccell .cc-v { font-size:13.5px; line-height:1.5; }
.c-dan { font-size:12.5px; color:#3a3a42; margin-top:3px; }
.c-src { font-size:11.5px; color:var(--gray-2); font-style:italic; margin-top:2px; }

/* Xu hướng + say gì + gợi mở */
.ndsv-xh, .ndsv-saygi { border-radius:12px; padding:14px; margin-top:14px; }
.ndsv-xh { background:#e9f6ee; } .ndsv-saygi { background:var(--pink-soft); }
.ndsv-xh .xh-h, .ndsv-saygi .xh-h { font-weight:800; font-size:14px; margin-bottom:8px; text-transform:uppercase; letter-spacing:.02em; }
.ndsv-xh .xh-h { color:#1e7a44; } .ndsv-saygi .xh-h { color:var(--maroon); }
.ndsv-xh ol { margin:0; padding-left:20px; } .ndsv-xh li { line-height:1.6; margin-bottom:6px; font-size:13.5px; }
.ndsv-saygi p { margin:0; font-size:14px; line-height:1.65; }
.ndsv-goimo { margin-top:16px; }
.ndsv-goimo .gm-lead { font-weight:700; font-size:14.5px; margin:0 0 10px; }
.ndsv-offer { width:100%; text-align:left; white-space:normal; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 12px; background:#fff; border:1.5px solid var(--pink); border-radius:12px; padding:14px; margin-bottom:10px; cursor:pointer; font:inherit; }
.ndsv-offer span, .ndsv-offer em { white-space:normal; }
.ndsv-offer:hover { border-color:var(--maroon); }
.ndsv-offer span { flex:1 1 auto; min-width:0; font-size:14px; color:var(--ink); } .ndsv-offer b { color:var(--maroon); }
.ndsv-offer em { flex:none; font-style:normal; font-weight:800; color:var(--maroon); }
.ndsv-offbox { margin:-4px 0 12px; }
.off-in { position:relative; background:var(--pink-soft); border:1px solid var(--pink); border-radius:12px; padding:15px; }
.off-close { position:absolute; top:8px; right:8px; width:30px; height:30px; border:0; background:#fff; border-radius:50%; cursor:pointer; font-size:14px; color:#555; }
.off-h { font-weight:800; color:var(--maroon); font-size:15px; margin-bottom:6px; }
.off-d { font-size:13.5px; line-height:1.6; margin:0 0 8px; }
.off-fit { font-size:13.5px; color:#3a3a42; margin:0 0 12px; }
.off-btns { display:flex; flex-direction:column; gap:8px; }
.off-btns .nd-btn { width:100%; justify-content:center; }

/* ④ Nhóm nghề */
.ndsv-grp { border-radius:12px; padding:12px 14px; margin-bottom:10px; }
.ndsv-grp.moRong { background:#e9f6ee; } .ndsv-grp.onDinh { background:#eef2fb; } .ndsv-grp.thuHep { background:#fdeaed; }
.ndsv-grp .grp-h { font-weight:800; font-size:14px; margin-bottom:8px; }
.ndsv-grp.moRong .grp-h { color:#1e7a44; } .ndsv-grp.onDinh .grp-h { color:#2a4b8d; } .ndsv-grp.thuHep .grp-h { color:var(--maroon); }
.grp-job { padding:6px 0; border-top:1px dashed rgba(0,0,0,.08); }
.grp-job:first-of-type { border-top:0; }
.grp-job b { display:block; font-size:14px; } .grp-job span { font-size:13px; color:#3a3a42; }

/* Cổng khoá giữ chỗ */
.ndsv-gate-ph { background:#fff; border:1.5px dashed var(--maroon); border-radius:14px; padding:20px; text-align:center; margin-top:18px; }
.ndsv-gate-ph .ph-t { font-weight:800; color:var(--maroon); font-size:16px; }
.ndsv-gate-ph .ph-d { color:var(--gray); font-size:13.5px; margin-top:6px; line-height:1.5; }

/* ===== Cổng khoá (Màn 3) — form (class ss-* nội bộ SV) ===== */
.ndsv-jbtn.open { border-style:solid; opacity:1; background:#e9f6ee; border-color:#1e7a44; color:#1e7a44; }
.ndsv-jbtn.open:hover { background:#1e7a44; color:#fff; }
.ndsv-gate { background:#fff; border:1.5px solid var(--maroon); border-radius:16px; padding:18px; margin-top:18px; scroll-margin-top:120px; }
.gate-h { font-size:17px; font-weight:800; color:var(--maroon); }
.gate-sub { font-weight:700; margin:10px 0 6px; }
.gate-list { margin:0 0 14px; padding-left:20px; } .gate-list li { font-size:13.5px; line-height:1.5; margin-bottom:5px; color:#2c2c33; }
.gate-fill { font-weight:700; font-size:14px; margin:0 0 10px; }
.ss-field { margin-bottom:14px; }
.ss-field > label { display:block; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:6px; }
.ss-inwrap { position:relative; }
.ss-inwrap select, .ss-inwrap input { width:100%; font:inherit; font-size:15px; padding:11px 40px 11px 13px; border:1.5px solid var(--line); border-radius:11px; background:#fff; color:var(--ink); }
.ss-inwrap select:focus, .ss-inwrap input:focus { outline:none; border-color:var(--maroon); }
.ss-tick { position:absolute; right:12px; top:50%; transform:translateY(-50%); color:#1e7a44; font-weight:800; opacity:0; transition:.15s; }
.ss-field.ok .ss-tick { opacity:1; }
.ss-note { font-size:12.5px; color:#1e7a44; font-weight:600; margin-top:6px; }
.ss-err { color:var(--maroon); font-size:12.5px; font-weight:600; margin-top:5px; }
.ss-field.shake { animation:svShake .5s; }
@keyframes svShake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-6px)} 40%,80%{transform:translateX(6px)} }
.ss-dl { width:100%; justify-content:center; margin-top:4px; background:#c9c9d0; color:#fff; cursor:not-allowed; border:0; }
.ss-dl.primary { cursor:pointer; }
.ss-privacy { font-size:12px; color:var(--gray); text-align:center; margin:10px 0 0; }
.ss-privacy a { color:var(--maroon); }

/* ===== Mục ⑤–⑨ ===== */
.ndsv-locked { animation:svFade .4s; }
@keyframes svFade { from{opacity:.3} to{opacity:1} }
.ndsv-note { font-size:13px; color:var(--gray); margin:10px 0 0; line-height:1.55; }
/* ⑤ kỹ năng */
.ndsv-skill { background:#fff; border:1px solid var(--line); border-radius:12px; padding:13px 14px; margin-bottom:10px; }
.ndsv-skill .sk-top { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.ndsv-skill .sk-name { font-weight:800; font-size:15px; color:var(--maroon); }
.ndsv-skill .sk-muc { flex:none; font-size:12px; font-weight:700; background:var(--pink-soft); color:var(--maroon); padding:3px 10px; border-radius:99px; }
.ndsv-skill .sk-why { font-size:13.5px; color:#3a3a42; margin:6px 0; line-height:1.5; }
.ndsv-skill .sk-how ul { margin:4px 0 0; padding-left:18px; } .ndsv-skill .sk-how li { font-size:13.5px; line-height:1.5; margin-bottom:4px; }
.ndsv-skill .sk-duy { color:var(--maroon); }
/* ⑥ cộng đồng */
.ndsv-community { background:var(--pink-soft); border-radius:14px; padding:16px; margin-top:14px; }
.ndsv-community .cmn-h { font-weight:800; color:var(--maroon); font-size:15px; margin-bottom:8px; }
.ndsv-community-btn { width:100%; justify-content:center; }
/* ⑨ year pick + checklist */
.ndsv-yearpick { margin:10px 0 14px; }
.yp-q { font-weight:700; margin-bottom:10px; }
.yp-btns { display:flex; flex-wrap:wrap; gap:8px; }
.yp-btn { font:inherit; font-size:14px; font-weight:700; padding:11px 16px; border:1.5px solid var(--pink); border-radius:12px; background:#fff; color:var(--maroon); cursor:pointer; }
.yp-btn:hover { background:var(--maroon); color:#fff; border-color:var(--maroon); }
.yp-cur { font-size:14px; } .yp-cur b { color:var(--maroon); }
.yp-change { margin-left:8px; font:inherit; font-size:12.5px; background:transparent; border:0; color:var(--gray); text-decoration:underline; cursor:pointer; }
.ck-head { font-weight:800; color:var(--maroon); font-size:14px; text-transform:uppercase; letter-spacing:.02em; margin-bottom:6px; }
.ck-prog { font-size:13.5px; } .ck-prog b { color:var(--maroon); }
.ck-bar { height:8px; background:var(--pink-soft); border-radius:99px; overflow:hidden; margin:6px 0 14px; }
.ck-bar span { display:block; height:100%; background:var(--maroon); transition:width .3s; }
.ck-list { display:flex; flex-direction:column; gap:10px; }
.ck-item { background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.ck-item.done { background:#f4faf6; border-color:#cfe9d8; }
.ck-lb { display:flex; align-items:flex-start; gap:10px; font-size:14.5px; font-weight:600; cursor:pointer; }
.ck-lb input { width:20px; height:20px; margin-top:1px; accent-color:var(--maroon); flex:none; }
.ck-item.done .ck-lb span { text-decoration:line-through; color:var(--gray); }
.ck-loidi { margin:8px 0 0 30px; }
.ck-way { font-size:13px; color:var(--maroon); font-weight:600; text-decoration:none; }
.ck-way:hover { text-decoration:underline; }
.ck-save { margin:14px 0 0; }
.ck-saved { margin-left:10px; color:#1e7a44; font-weight:600; font-size:13.5px; }
.ndsv-touch { background:var(--pink-soft); border-radius:12px; padding:14px; margin:16px 0; }
.ndsv-touch p { font-size:14px; line-height:1.6; margin:0 0 10px; }
.ndsv-touch .nd-btn { width:100%; justify-content:center; }
.ndsv-goimo2 { margin-top:8px; }
.ndsv-goimo2 .gm-lead { font-size:14px; line-height:1.6; margin:0 0 12px; }
.ndsv-freeway { display:block; text-align:center; font-size:13.5px; color:var(--gray); margin-top:8px; text-decoration:none; }
.ndsv-freeway:hover { color:var(--maroon); }
/* QR trong gói */
.off-qr { display:flex; gap:12px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px; margin:10px 0; }
.off-qr img { width:120px; height:120px; flex:none; border-radius:8px; }
.off-qr-info { font-size:13px; line-height:1.6; } .off-qr-info b { color:var(--maroon); }
.off-2dot { background:#fff; border:1px dashed var(--pink); border-radius:10px; padding:12px; margin:6px 0 10px; font-size:13.5px; line-height:1.6; }
.off-2dot-qr { font-weight:700; margin-top:8px; }

/* ===== Màn 4 — File lộ trình mẫu ===== */
.lt-open { font-style:italic; color:var(--gray); font-size:13.5px; margin:0 0 10px; }
.lt-actions { margin:10px 0 16px; }
.lt-part { padding:14px 0; border-bottom:1px solid var(--line); }
.lt-part h2 { scroll-margin-top:120px; }
.lt-part p { line-height:1.65; color:#2c2c33; margin:0 0 8px; }
.lt-grp { background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:8px; }
.lt-grp-h { font-weight:800; color:var(--maroon); font-size:13.5px; margin-bottom:4px; }
.lt-grp ul { margin:0; padding-left:18px; } .lt-grp li { font-size:13.5px; line-height:1.5; }
.lt-steps { display:flex; flex-direction:column; gap:8px; }
.lt-step { background:var(--pink-soft); border-radius:10px; padding:10px 12px; }
.lt-step .lt-moc { font-weight:800; color:var(--maroon); font-size:13.5px; }
.lt-step .lt-mt { font-size:13.5px; line-height:1.5; margin-top:3px; }
.lt-end { background:var(--pink-soft); border-radius:14px; padding:16px; margin-top:16px; }
.lt-end p { font-size:14px; line-height:1.65; margin:0 0 12px; }
.lt-end .nd-btn { width:100%; justify-content:center; }

/* ===== Màn 6 — Trang 2 gói ===== */
.tv-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; margin-bottom:16px; }
.tv-card.feature { border:2px solid var(--maroon); }
.tv-top { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.tv-name { font-size:18px; font-weight:800; color:var(--maroon); }
.tv-badge { font-size:11px; background:#b5651d; color:#fff; padding:2px 9px; border-radius:99px; vertical-align:middle; }
.tv-price { font-size:20px; font-weight:800; color:var(--maroon); }
.tv-desc { font-size:14px; line-height:1.6; color:#2c2c33; margin:8px 0 12px; }
.tv-fit, .tv-5 { margin-bottom:10px; }
.fit-h { font-weight:800; font-size:13.5px; margin-bottom:6px; }
.fit-h.ok { color:#1e7a44; } .fit-h.no { color:var(--maroon); }
.tv-fit ul, .tv-5 ol { margin:0; padding-left:20px; } .tv-fit li, .tv-5 li { font-size:13.5px; line-height:1.55; margin-bottom:4px; }
.tv-form, .tv-ket { font-size:13.5px; line-height:1.6; margin:8px 0 0; } .tv-ket a { color:var(--maroon); font-weight:600; }
.tv-buy { width:100%; justify-content:center; margin-top:12px; }
.tv-reviews { margin:6px 0 16px; }
.tv-review { background:#fff; border:1px solid var(--line); border-left:4px solid var(--maroon); border-radius:10px; padding:12px 14px; margin-bottom:10px; }
.tv-review p { font-size:14px; line-height:1.6; font-style:italic; margin:0 0 6px; }
.tv-rmeta { font-size:12.5px; color:var(--gray); font-weight:600; }
.pay-tabs { display:flex; gap:6px; margin:8px 0 10px; }
.pay-tab { flex:1; font:inherit; font-size:12.5px; font-weight:700; padding:9px 6px; border:1.5px solid var(--line); border-radius:10px; background:#fff; color:#3a3a42; cursor:pointer; }
.pay-tab.on { background:var(--maroon); color:#fff; border-color:var(--maroon); }

/* ===== Màn 7 — Khối cộng đồng dùng chung ===== */
.ndsv-community2 { background:var(--pink-soft); border-radius:14px; padding:16px; margin-top:18px; }
.ndsv-community2 .cmn2-h { font-weight:800; color:var(--maroon); font-size:15px; margin-bottom:10px; }
.cmn2-vals { margin:0 0 12px; padding-left:20px; }
.cmn2-vals li { font-size:13.5px; line-height:1.55; margin-bottom:6px; color:#2c2c33; }
.cmn2-vals li.hot { font-weight:700; color:var(--maroon); }
.cmn2-topics { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.cmn2-topic { flex:none; font-size:12.5px; font-weight:600; padding:8px 12px; border-radius:999px; background:#fff; border:1px solid var(--pink); color:var(--maroon); text-decoration:none; }
.cmn2-topic:hover { background:var(--maroon); color:#fff; }
.cmn2-topic.dis { opacity:.65; border-style:dashed; }
.cmn2-main { width:100%; justify-content:center; }

/* ===== Màn 4a — khối demo trong mục ⑨ ===== */
.ndsv-demo { background:#fff; border:1.5px solid var(--pink); border-radius:14px; padding:16px; margin-top:14px; }
.ndsv-demo .demo-h { font-weight:800; color:var(--maroon); font-size:14.5px; }
.ndsv-demo .demo-t { font-weight:700; font-size:14px; margin:6px 0 4px; }
.ndsv-demo .demo-d { font-size:13.5px; color:#3a3a42; line-height:1.55; margin-bottom:12px; }
.ndsv-demo .demo-btns { display:flex; gap:8px; flex-wrap:wrap; }
.ndsv-demo .demo-btns .nd-btn { flex:1; justify-content:center; min-width:130px; }

/* ===== Màn 5 — Nhánh rẽ hướng: tự chẩn đoán ===== */
.ndsv-diag { margin-bottom:18px; }
.diag-intro { background:var(--pink-soft); border:1px solid var(--pink); border-radius:14px; padding:18px; text-align:center; }
.diag-intro .diag-h { font-weight:800; color:var(--maroon); font-size:15px; margin-bottom:8px; }
.diag-intro p { font-size:14px; line-height:1.6; margin:0 0 14px; }
.diag-q { background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; }
.diag-bar { height:8px; background:var(--pink-soft); border-radius:99px; overflow:hidden; margin:8px 0 14px; }
.diag-bar span { display:block; height:100%; background:var(--maroon); transition:width .25s; }
.diag-text { font-size:18px; font-weight:700; text-align:center; line-height:1.45; margin-bottom:14px; }
.diag-opts { display:flex; flex-direction:column; gap:10px; }
.diag-opt { font:inherit; font-size:15px; font-weight:600; padding:14px; border:1.5px solid var(--pink); border-radius:12px; background:#fff; color:var(--maroon); cursor:pointer; text-align:left; }
.diag-opt:hover { background:var(--maroon); color:#fff; border-color:var(--maroon); }
.diag-back { display:block; margin:14px auto 0; background:transparent; border:0; color:var(--gray); font-size:13px; cursor:pointer; }
.diag-result { border-radius:14px; padding:18px; text-align:center; }
.diag-result.diag-a { background:#eef2fb; } .diag-result.diag-b { background:var(--pink-soft); } .diag-result.diag-c { background:#fdeaed; }
.diag-result .diag-badge { display:inline-block; font-size:12px; font-weight:700; color:var(--maroon); background:#fff; padding:4px 12px; border-radius:99px; margin-bottom:8px; }
.diag-result h2 { font-size:18px; font-weight:800; margin:0 0 8px; }
.diag-result p { font-size:14px; line-height:1.6; margin:0 0 14px; }
.diag-result .nd-btn { width:100%; justify-content:center; }
.diag-result .diag-redo { display:block; margin:12px auto 0; background:transparent; border:0; color:var(--gray); font-size:13px; text-decoration:underline; cursor:pointer; }
.ndsv-rhcontent .ndsv-h3 { scroll-margin-top:120px; }
.rh-gan { display:flex; flex-wrap:wrap; gap:8px; }
.rh-gan-chip { background:var(--pink-soft); color:var(--maroon); font-weight:700; font-size:13px; border-radius:99px; padding:7px 14px; }
.rh-chot { background:var(--pink-soft); border-radius:14px; padding:16px; margin-top:16px; }
.rh-chot p { font-size:14.5px; line-height:1.6; margin:0 0 12px; font-weight:600; }
.rh-chot-btns { display:flex; flex-direction:column; gap:8px; }
.rh-chot-btns .nd-btn { width:100%; justify-content:center; }
.rh-free { display:block; text-align:center; margin-top:12px; font-size:13.5px; color:var(--maroon); font-weight:600; text-decoration:none; }

/* ===== Trang quản trị Sinh viên (adm-*) ===== */
.adm-filters { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin:12px 0; }
.adm-filters label { display:flex; flex-direction:column; font-size:12px; font-weight:600; color:var(--gray); gap:4px; }
.adm-filters input, .adm-filters select { font:inherit; font-size:14px; padding:8px 10px; border:1.5px solid var(--line); border-radius:9px; }
.adm-count { font-weight:700; color:var(--maroon); margin-bottom:14px; }
.adm-h { font-size:16px; font-weight:800; color:var(--ink); margin:22px 0 10px; }
.adm-h2 { font-size:13.5px; font-weight:800; color:var(--maroon); margin-bottom:6px; }
.adm-cgrid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.adm-cbox { background:var(--pink-soft); border-radius:12px; padding:12px; text-align:center; }
.adm-cbox .adm-cn { font-size:22px; font-weight:800; color:var(--maroon); }
.adm-cbox .adm-cl { font-size:12px; color:#3a3a42; }
.adm-stats { display:grid; grid-template-columns:1fr; gap:12px; margin:8px 0; }
.adm-stat { background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; }
.adm-stat ol { margin:0; padding-left:20px; } .adm-stat li { font-size:13.5px; line-height:1.5; margin-bottom:5px; }
.adm-tbl { min-width:640px; font-size:12px; }
.adm-progress { font-size:14px; margin:0 0 10px; }
.adm-warn { background:#fff4e6; border:1px solid #f0c98a; color:#8a5a1d; border-radius:10px; padding:12px 14px; font-size:13.5px; line-height:1.5; margin:12px 0; }
.adm-review textarea { width:100%; min-height:70px; font:inherit; font-size:14px; padding:10px; border:1.5px solid var(--line); border-radius:10px; }
.adm-review-row { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0; }
.adm-review-row input { flex:1; min-width:120px; font:inherit; font-size:14px; padding:9px 10px; border:1.5px solid var(--line); border-radius:9px; }
.adm-agree { display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; margin:6px 0; }
.adm-agree input { width:18px; height:18px; accent-color:var(--maroon); }
.adm-review-done { color:#1e7a44; font-weight:600; font-size:13.5px; margin-top:6px; }
.adm-review-list { margin-top:12px; font-size:13px; }
.adm-review-item { background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-top:6px; font-style:italic; }
@media (min-width:560px){ .adm-stats { grid-template-columns:1fr 1fr; } .adm-cgrid { grid-template-columns:repeat(4,1fr); } }

/* Bảng ③ khi chỉ có 1 cột (2026): bỏ nhãn năm thừa trong thẻ */
.ndsv-ccell.solo { grid-template-columns: 1fr; }
.ndsv-ccell.solo .cc-y { display: none; }
