:root{--bg:#f6f8fb;--ink:#14213d;--muted:#5b6478;--line:#e3e8f0;--card:#fff;--pri:#0f8a7e;--pri-d:#0b6b62;--pri-l:#e0f5f2;--sun:#ffc93c;--sun-l:#fff6d6;--coral:#ff6b5b;--coral-l:#ffe9e6;--sky:#e8f1ff;--r:18px;--sh:0 1px 2px #14213d0d,0 6px 20px #14213d0f;--sh2:0 2px 4px #14213d14,0 14px 32px #14213d1f}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Be Vietnam Pro",system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;font-size:16px}
a{color:var(--pri-d)}h1,h2,h3{line-height:1.25;text-wrap:balance;margin:.2em 0 .4em;font-weight:800;letter-spacing:-.01em}
h1{font-size:clamp(1.7rem,4vw,2.6rem)}h2{font-size:1.35rem}
.nav{position:sticky;top:0;z-index:10;background:#ffffffe6;backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .in{max-width:1140px;margin:auto;padding:12px 20px;display:flex;align-items:center;gap:6px}
.logo{font-weight:800;font-size:1.15rem;color:var(--ink);text-decoration:none;margin-right:auto;display:flex;align-items:center;gap:8px}
.logo span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--pri);color:#fff}
.nav a.l{color:var(--muted);text-decoration:none;font-weight:600;padding:8px 12px;border-radius:10px;transition:.2s}
.nav a.l:hover,.nav a.l.on{background:var(--pri-l);color:var(--pri-d)}
main{max-width:1140px;margin:auto;padding:24px 20px}
.hero{background:linear-gradient(135deg,#0f8a7e 0%,#13a89a 60%,#2bc0a8 100%);color:#fff;border-radius:28px;padding:clamp(28px,5vw,56px);position:relative;overflow:hidden;margin-bottom:28px}
.hero:after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:var(--sun);opacity:.9}
.hero:before{content:"";position:absolute;right:120px;bottom:-80px;width:160px;height:160px;border-radius:50%;background:#ffffff26}
.hero>*{position:relative;z-index:1;max-width:640px}.hero p{font-size:1.1rem;opacity:.95}
.hero .kick{display:inline-block;background:#ffffff2e;padding:4px 12px;border-radius:99px;font-weight:600;font-size:.85rem}
.stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.stats div{background:#ffffff26;border-radius:14px;padding:10px 16px}.stats b{display:block;font-size:1.4rem}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--pri);color:#fff;border:0;cursor:pointer;padding:12px 22px;border-radius:12px;font:inherit;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{background:var(--pri-d);transform:translateY(-1px);box-shadow:var(--sh)}
.btn.sun{background:var(--sun);color:var(--ink)}.btn.sun:hover{background:#ffbb0f}
.btn.ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line)}.btn.ghost:hover{border-color:var(--pri)}
.btn:focus-visible,a:focus-visible,select:focus-visible,.opt input:focus-visible+span{outline:3px solid #ffbf00;outline-offset:2px}
.card{background:var(--card);border-radius:var(--r);padding:20px;box-shadow:var(--sh);border:1px solid var(--line)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.major{display:flex;flex-direction:column;color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.major:hover{transform:translateY(-4px);box-shadow:var(--sh2);border-color:#bfe7e1}
.major .ic{width:52px;height:52px;border-radius:14px;background:var(--sky);display:grid;place-items:center;font-size:1.7rem;margin-bottom:12px}
.major h3{font-size:1.1rem;margin:0 0 6px}.major p{color:var(--muted);font-size:.92rem;margin:0 0 14px;flex:1}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:.78rem;font-weight:600;background:#eef1f6;color:#3d465a}
.badge.Cao{background:#dcf5e3;color:#1c6b37}.badge.Kha{background:var(--sun-l);color:#7a5600}.badge.TB{background:#eef1f6;color:#3d465a}.badge.Thap{background:var(--coral-l);color:#a8291b}
.badge.k{background:#fff;border:1px solid var(--line);color:var(--muted)}
.facts{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:10px}
.facts li{padding:12px 14px;background:var(--bg);border-radius:12px;border-left:4px solid var(--pri)}
.facts small{display:block;color:var(--muted);margin-top:4px}
.src{display:inline-block;font-size:.72rem;font-weight:700;color:var(--pri-d);background:var(--pri-l);padding:1px 8px;border-radius:99px;margin-left:6px;vertical-align:middle}
.demo{display:inline-block;font-size:.72rem;font-weight:700;color:#8a4b00;background:#ffecc7;padding:1px 8px;border-radius:99px;vertical-align:middle}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:28px 0 18px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.filters select{font:inherit;font-size:.92rem;padding:10px 34px 10px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235b6478' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;appearance:none;color:var(--ink);cursor:pointer;transition:border-color .15s;flex:1 1 160px}
.filters select:hover{border-color:var(--pri)}.filters .btn{padding:10px 18px}.filters .clr{color:var(--muted);font-size:.9rem}
.secthead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.muted{color:var(--muted)}
.warn{background:var(--sun-l);border:1px solid #ffe08a;padding:14px 18px;border-radius:14px;font-size:.9rem;margin:32px 0 0;color:#5c4300}
.back{display:inline-block;color:var(--muted);text-decoration:none;font-weight:600;margin-bottom:12px}.back:hover{color:var(--pri-d)}
.dhead{display:flex;gap:18px;align-items:center;margin-bottom:18px}.dhead .ic{font-size:2.6rem;width:80px;height:80px;flex:none;border-radius:22px;background:var(--sky);display:grid;place-items:center}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:18px}
.card h2{font-size:1.05rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card ul.dot{padding-left:20px;margin:6px 0}.card ul.dot li{margin:4px 0}
.chartbox{position:relative;height:280px}
.progress{position:sticky;top:59px;z-index:5;background:var(--bg);padding:10px 0 14px}
.bar{height:10px;background:#e3e8f0;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pri),#2bc0a8);border-radius:99px;transition:width .35s ease}
.ptext{font-size:.85rem;color:var(--muted);font-weight:600;margin-bottom:6px;display:flex;justify-content:space-between}
.q{margin-bottom:16px}.q .n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--pri-l);color:var(--pri-d);font-weight:800;margin-right:8px;font-size:.9rem}
.q h2{font-size:1.08rem;display:flex;align-items:center;margin-bottom:12px}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.opt{position:relative;cursor:pointer}.opt input{position:absolute;opacity:0}
.opt span{display:block;padding:12px 14px 12px 42px;border:1.5px solid var(--line);border-radius:12px;transition:.15s;position:relative;height:100%}
.opt span:before{content:"";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;border:2px solid #aab3c3;transition:.15s}
.opt:hover span{border-color:var(--pri);background:#f7fdfc}
.opt input:checked+span{border-color:var(--pri);background:var(--pri-l);font-weight:600}
.opt input:checked+span:before{border-color:var(--pri);background:var(--pri);box-shadow:inset 0 0 0 3px #fff}
.err{background:var(--coral-l);color:#a8291b;padding:12px 16px;border-radius:12px;font-weight:600}
.rhero{background:linear-gradient(135deg,#fff6d6,#ffe9e6);border-radius:24px;padding:clamp(24px,4vw,40px);margin-bottom:22px;border:1px solid #ffe08a}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chip{background:#fff;padding:6px 14px;border-radius:99px;font-weight:700;box-shadow:var(--sh)}
.res{display:flex;gap:16px;align-items:flex-start;margin-bottom:14px;color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s}
.res:hover{transform:translateY(-3px);box-shadow:var(--sh2)}
.rank{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;background:var(--bg);color:var(--muted)}
.res.top .rank{background:var(--sun);color:var(--ink)}.res.top{border:2px solid var(--sun)}
.res h3{margin:0 0 4px;font-size:1.12rem}.res p{margin:6px 0 10px;color:var(--muted);font-size:.93rem}
.match{height:6px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:4px;max-width:260px}.match i{display:block;height:100%;background:var(--pri)}
footer{text-align:center;color:var(--muted);font-size:.82rem;padding:28px 20px}
@media (max-width:640px){main{padding:16px 14px}.nav .in{padding:10px 14px}.nav a.l{padding:8px 8px;font-size:.92rem}.logo b{display:none}.hero{border-radius:22px}.hero:after{width:150px;height:150px;right:-50px;top:-50px}.dhead .ic{width:60px;height:60px;font-size:2rem}.progress{top:55px}.filters select{flex:1 1 100%}.filters .btn{flex:1}.res{gap:12px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
html{scroll-behavior:smooth}section[id]{scroll-margin-top:72px}
.hero.clean{text-align:center;padding:clamp(36px,6vw,64px) 24px}.hero.clean>*{margin-left:auto;margin-right:auto}.hero.clean:after,.hero.clean:before{opacity:.35}
.hero.clean p{margin:0 auto 20px}
.guide{margin:8px 0 40px;text-align:center}.big{font-size:clamp(1.6rem,3.5vw,2.2rem)}
.gcards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}
.gcard{display:flex;flex-direction:column;align-items:center;padding:28px 18px;border-radius:24px;text-decoration:none;color:var(--ink);background:#fff;border:2px solid var(--line);box-shadow:var(--sh);transition:transform .2s,box-shadow .2s,border-color .2s}
.gcard:hover{transform:translateY(-6px);box-shadow:var(--sh2)}
.gcard .gi{font-size:2.2rem}.gcard .gl{font-weight:600;color:var(--muted);margin-top:6px}.gcard b{font-size:3.4rem;line-height:1;font-weight:800}
.gcard .gt{font-weight:700;margin-top:8px}.gcard .go{margin-top:14px;font-size:.9rem;font-weight:700;color:var(--pri-d)}
.gcard.pri{background:var(--pri-l);border-color:#bfe7e1}.gcard.pri b{color:var(--pri-d)}
.gcard.sun{background:var(--sun-l);border-color:#ffe08a}.gcard.sun b{color:#b07800}
.gcard.coral{background:var(--coral-l);border-color:#ffc9c1}.gcard.coral b{color:#c23a29}
.light .filters{margin:12px 0 16px}.major.mini{flex-direction:row;gap:12px;align-items:center;padding:14px}.major.mini .ic{margin:0;width:44px;height:44px;font-size:1.4rem;flex:none}.major.mini h3{font-size:1rem;margin-bottom:4px}
.news{margin-top:40px}
.ghero{display:flex;gap:20px;align-items:center;border-radius:24px;padding:clamp(22px,4vw,36px);margin-bottom:24px;border:1px solid var(--line)}
.ghero .gi{font-size:3rem;width:84px;height:84px;flex:none;display:grid;place-items:center;background:#fff;border-radius:22px}
.ghero.pri{background:var(--pri-l)}.ghero.sun{background:var(--sun-l)}.ghero.coral{background:var(--coral-l)}
.ghero .kick{font-weight:700;font-size:.85rem;color:var(--muted)}.ghero p{margin:0}
.tl{display:grid;gap:18px}.phase{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--sh)}
.phase h2{display:flex;align-items:center;gap:10px;font-size:1.15rem}.dotn{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--pri);color:#fff;font-size:.95rem}
.steps{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:10px}
.steps li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;background:var(--bg);border-radius:12px}
.steps label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;flex:1;min-width:220px}.steps input{width:20px;height:20px;margin-top:3px;accent-color:var(--pri);flex:none}
.steps b{display:block}.steps small{display:block;color:var(--muted);font-size:.9rem}.steps input:checked+span b{text-decoration:line-through;color:var(--muted)}
.btn.sm{padding:8px 14px;font-size:.88rem}
.note{background:var(--sky);border-radius:14px;padding:14px 18px;margin-top:22px;font-size:.92rem}
.gnav{display:flex;justify-content:space-between;gap:10px;margin-top:22px;flex-wrap:wrap}
@media (max-width:640px){.gcards{grid-template-columns:1fr;gap:12px}.gcard{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:4px 10px;padding:16px 18px;text-align:left}.gcard b{font-size:2.2rem}.gcard .gt,.gcard .go{margin-top:0}.gcard .go{width:100%}.ghero{flex-direction:column;align-items:flex-start}.ghero .gi{width:64px;height:64px;font-size:2.2rem}}
.nav a.l{white-space:nowrap}@media (max-width:640px){.nav .in{gap:2px}.nav a.l{padding:6px 7px;font-size:.85rem}}
/* v3: tài khoản & hồ sơ */
.acct{display:flex;align-items:center;gap:6px;margin-left:8px;padding-left:10px;border-left:1px solid var(--line)}
.inl{display:inline;margin:0}.nav button.l{background:none;border:0;font:inherit;cursor:pointer}
.nav .me{display:flex;align-items:center;gap:8px}.av{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--sun);color:var(--ink);font-weight:800;font-size:.9rem}
.av.big{width:64px;height:64px;font-size:1.6rem}
.btn.sm{padding:8px 14px;font-size:.92rem}.btn.full{width:100%;justify-content:center;padding:14px}.btn.danger{background:var(--coral)}
.flash{background:var(--pri-l);color:var(--pri-d);border-radius:12px;padding:10px 16px;margin-bottom:16px;font-weight:600}
.auth{display:grid;grid-template-columns:minmax(0,460px) minmax(0,380px);gap:32px;justify-content:center;align-items:center;padding:28px 0}
.auth.one{grid-template-columns:minmax(0,440px)}.auth-card{padding:32px}.auth-card h1{font-size:1.9rem;margin-bottom:4px}
.kick.dark{display:inline-block;background:var(--sun-l);color:#8a6200;font-weight:700;font-size:.85rem;padding:4px 10px;border-radius:999px}
.fm{display:grid;gap:16px;margin:20px 0 14px}.fl{display:grid;gap:6px}.fl>span:first-child{font-weight:700;font-size:.95rem}
.fm input,.sec input:not([type=checkbox]):not([type=radio]),.sec select{width:100%;font:inherit;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}
.fm input:focus,.sec input:focus,.sec select:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 4px var(--pri-l)}
.fl.bad input{border-color:var(--coral);background:#fffafa}.fe{color:#c2372a;font-weight:600}.hint{color:var(--muted)}
.pw{position:relative;display:block}.pw input{padding-right:70px}.eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:var(--pri-l);color:var(--pri-d);font:inherit;font-weight:700;font-size:.85rem;padding:6px 10px;border-radius:8px;cursor:pointer}
.small{font-size:.92rem}.auth-side{background:linear-gradient(135deg,#0f8a7e,#2bc0a8);color:#fff;border-radius:var(--r);padding:32px}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:12px}.ticks li:before{content:"✓";display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--sun);color:var(--ink);font-weight:800;margin-right:10px}
.remind{display:flex;align-items:center;gap:14px;background:var(--sun-l);border:1px solid #ffe08a;border-radius:16px;padding:12px 16px;margin-bottom:20px}
.rm-ic{font-size:1.4rem}.rm-t{flex:1;display:grid;gap:3px;min-width:0}.rm-t span{color:var(--muted);font-size:.9rem}
.remind form{margin:0}.remind .x{border:0;background:none;font-size:1.1rem;cursor:pointer;color:var(--muted);padding:6px}
.bar.sm{height:8px;max-width:260px;background:#fff;border-radius:99px;overflow:hidden}.bar.sm i{display:block;height:100%;background:var(--pri);border-radius:99px}
.side .bar.sm{background:var(--line);margin:8px 0 14px}
.fit{display:inline-block;background:var(--sun);color:var(--ink);font-size:.75rem;font-weight:800;padding:2px 8px;border-radius:999px;margin-bottom:4px}
.phead{display:flex;gap:16px;align-items:center;margin-bottom:16px}.phead h1{margin:0}.phead p{margin:0}
.pgrid{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}.side{position:sticky;top:80px}
.check{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:4px}.check a{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600}
.check a:hover{background:var(--bg)}.ck{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid var(--line);font-size:.8rem;color:var(--muted)}
.check li.ok .ck{background:var(--pri);border-color:var(--pri);color:#fff}.priv{font-size:.85rem;color:var(--muted);background:var(--bg);padding:12px;border-radius:12px;margin:0}
.secs{display:grid;gap:18px}.sec{scroll-margin-top:80px}.sh p{margin:0 0 12px}.sic{font-size:1.2rem}
.okb{background:var(--pri-l);color:var(--pri-d);font-size:.75rem;padding:2px 8px;border-radius:99px}.opt-b{background:var(--bg);color:var(--muted);font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:99px}
.fg{margin:12px 0;display:grid;gap:8px}.lb{font-weight:700;font-size:.9rem}
.chipsel{display:flex;flex-wrap:wrap;gap:8px}.chipsel input{position:absolute;opacity:0;pointer-events:none}
.chipsel span{display:inline-block;padding:7px 14px;border:1.5px solid var(--line);border-radius:999px;cursor:pointer;font-size:.92rem;font-weight:600;background:#fff;transition:.15s}
.chipsel span:hover{border-color:var(--pri)}.chipsel input:checked+span{background:var(--pri);border-color:var(--pri);color:#fff}
.chipsel input:focus-visible+span{outline:3px solid #ffbf00;outline-offset:2px}.sv{display:flex;justify-content:flex-end}
.hist{list-style:none;padding:0;margin:0;display:grid;gap:10px}.hist li{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.chip.lt{background:var(--pri-l);color:var(--pri-d);text-decoration:none;margin:2px}
@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-side{display:none}.pgrid{grid-template-columns:1fr}.side{position:static}}
@media (max-width:640px){.nav .in{flex-wrap:wrap}.acct{margin-left:0;border:0;padding:0}.nav .nm{display:none}.auth-card{padding:22px}.remind{flex-wrap:wrap}}
/* ===== QA pass v4: căn chỉnh & mobile ===== */
body{line-height:1.6}h1,h2,h3{line-height:1.3}p,li,small,span{overflow-wrap:break-word}
.grid>*,.cols>*,.gcards>*,.pgrid>*,.auth>*,.res>div,.dhead>div,.phead>div,.rm-t{min-width:0}
/* nav */
.menu{display:flex;align-items:center;gap:6px}
.burger{display:none;width:42px;height:42px;border:1.5px solid var(--line);background:#fff;border-radius:12px;cursor:pointer;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.burger i{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink);transition:transform .2s,opacity .2s}
.nav.open .burger i:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav.open .burger i:nth-child(2){opacity:0}.nav.open .burger i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.burger:focus-visible,.nav button.l:focus-visible{outline:3px solid #ffbf00;outline-offset:2px}
.nav .nm{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av{flex:none;line-height:1}.av.big{flex:none}
@media (max-width:860px){
 .nav .in{flex-wrap:nowrap;padding:10px 14px;gap:8px}.logo b{display:inline;font-size:1.05rem;white-space:nowrap}
 .burger{display:flex}
 .menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:2px;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--sh2);padding:8px 14px 14px}
 .nav.open .menu{display:flex}
 .nav .menu a.l,.nav .menu button.l{padding:12px 14px;font-size:1rem;text-align:left;width:100%}
 .acct{flex-direction:column;align-items:stretch;margin:6px 0 0;padding:8px 0 0;border-left:0;border-top:1px solid var(--line);gap:6px}
 .acct .btn.sm{justify-content:center;padding:12px}.acct form{width:100%}.nav .nm{display:inline;max-width:none}
}
/* reminder */
@media (max-width:640px){.remind{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:10px 12px}
 .remind .rm-ic{grid-row:1}.remind .rm-t{grid-column:2}.remind form{grid-column:3;grid-row:1}
 .remind>.btn{grid-column:1/-1;justify-content:center}.bar.sm{max-width:none}}
/* filter */
.filters .btn{justify-content:center}
/* home cards */
.major.mini h3{line-height:1.35}.major.mini .badges{gap:4px}
@media (max-width:640px){.gcard{display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 10px;text-align:left}
 .gcard .gi{grid-row:1/3;font-size:2rem}.gcard .gl{margin:0;grid-column:2;grid-row:1;align-self:end}.gcard b{grid-column:2;grid-row:2;font-size:2rem}
 .gcard .gt{grid-column:3;grid-row:1;align-self:end}.gcard .go{grid-column:3;grid-row:2;width:auto;align-self:start}}
/* badges: chiều cao & baseline thống nhất */
.badge,.demo,.src,.fit,.okb,.opt-b{display:inline-flex;align-items:center;line-height:1.4;padding:3px 10px;vertical-align:middle;white-space:nowrap}
.demo,.src{font-size:.75rem}
.dhead h1{overflow-wrap:anywhere}
/* grade steps */
@media (max-width:640px){.steps li>.btn{margin-left:32px}}
.gnav{flex-wrap:wrap;gap:10px}
/* profile */
.phead h1{font-size:clamp(1.4rem,3vw,2rem);overflow-wrap:anywhere}.phead p{overflow-wrap:anywhere}
.res h3{line-height:1.35}
/* error page */
.errp{text-align:center;padding:48px 24px;max-width:620px;margin:24px auto}.ecode{font-size:4rem;font-weight:800;color:var(--pri);line-height:1}
.eacts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
@media (max-width:640px){.gcard{grid-template-columns:40px 48px 1fr}.phead,.dhead{align-items:flex-start}.av.big{width:52px;height:52px;font-size:1.3rem;margin-top:4px}.dhead .ic{margin-top:4px}}
.logo b,.nav .btn{white-space:nowrap}
/* v4: dữ liệu thật, RIASEC, so sánh, con đường khác, bảo mật */
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px}.skip:focus{left:12px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
footer nav{margin-bottom:6px}footer a{color:var(--pri-d);font-weight:600}footer p{margin:4px 0}
.lead{font-size:1.06rem;max-width:780px}.m0{margin:0}.mt0{margin-top:0}.mt6{margin-top:6px}.small{font-size:.9rem}.h4{font-size:1rem;margin:16px 0 6px}
.dgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:900px){.dgrid{grid-template-columns:1fr}}
.srcs{font-size:.82rem;color:var(--muted);margin:10px 0 0;overflow-wrap:anywhere}.srcs a{color:var(--pri-d)}
.bignum{font-size:1.9rem;font-weight:800;margin:4px 0;color:var(--pri-d)}.bignum small{font-size:.9rem;color:var(--muted);font-weight:600}
.mini-t{width:100%;border-collapse:collapse;font-size:.86rem;margin-top:12px}.mini-t th,.mini-t td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right}.mini-t th:first-child{text-align:left;font-weight:600}
.facts a{overflow-wrap:anywhere}
/* thẻ ngành + so sánh */
.major.mini{position:relative}.major.mini .mb{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.major.mini h3 a{color:inherit;text-decoration:none}.stretch:after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.stretch:focus-visible{outline:none}.major.mini:has(.stretch:focus-visible){outline:3px solid #ffbf00;outline-offset:2px}
.cmp{position:relative;z-index:2;display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted);font-weight:600;margin-top:6px;cursor:pointer;width:max-content}
.cmp input{width:16px;height:16px;accent-color:var(--pri);margin:0}.cmp.off{opacity:.45;cursor:not-allowed}
.cmp input:focus-visible{outline:3px solid #ffbf00;outline-offset:2px}
.grid{grid-auto-rows:1fr}.major.mini .badges{flex-wrap:nowrap}.major.mini .badge{white-space:nowrap}
.cbar{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:10px 14px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px #14213d1f}
.cbar .cin{max-width:1140px;margin:auto;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cbar #cnames{font-weight:600;font-size:.92rem;min-width:0;overflow-wrap:anywhere}.cact{display:flex;gap:10px;align-items:center}
.clr{background:none;border:0;font:inherit;color:var(--muted);cursor:pointer;text-decoration:underline}
.btn.dis{background:#aab3c3;cursor:not-allowed}body.has-cbar footer{padding-bottom:90px}
.fact{display:flex;gap:10px;align-items:center}
@media (min-width:641px) and (max-width:1100px){.filters select{flex:1 1 calc(50% - 10px)}.filters .fact{flex:1 1 100%}.filters .fact .btn{flex:1;justify-content:center}}
@media (max-width:640px){.filters .fact{flex:1 1 100%}.filters .fact .btn{flex:1;justify-content:center}}
/* lớp */
.gp{font-size:.82rem;font-weight:700;color:var(--muted);min-height:1.3em;margin-top:6px}
.altpath{display:flex;gap:14px;align-items:center;text-align:left;margin-top:18px;padding:16px 20px;border-radius:18px;background:#fff;border:2px dashed #bfe7e1;color:var(--ink);text-decoration:none;transition:border-color .2s}
.altpath:hover{border-color:var(--pri)}.altpath>span:first-child{font-size:1.8rem}.altpath b{display:block}.altpath small{color:var(--muted)}.altpath .go{margin-left:auto;font-weight:700;color:var(--pri-d);white-space:nowrap}
.gprog{top:59px}
@media (max-width:640px){.altpath{flex-wrap:wrap}.altpath .go{margin-left:0;width:100%}.gprog{top:55px}.gprog .ptext{flex-wrap:wrap;gap:4px}}
/* trắc nghiệm Likert */
.lq{margin:0 0 14px;border:1px solid var(--line)}.lq legend{float:left;width:100%;font-weight:700;font-size:1.04rem;display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:0}
.lq legend .n,.q .n{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;background:var(--pri-l);color:var(--pri-d);font-weight:800;font-size:.9rem}
.lk{clear:both;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.lk label{position:relative;cursor:pointer}
.lk input{position:absolute;opacity:0;inset:0}.lk span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border:1.5px solid var(--line);border-radius:12px;font-size:.8rem;text-align:center;height:100%;line-height:1.25;transition:.15s}
.lk b{font-size:1.4rem}.lk label:hover span{border-color:var(--pri)}.lk input:checked+span{border-color:var(--pri);background:var(--pri-l);font-weight:700;color:var(--pri-d)}
.lk input:focus-visible+span{outline:3px solid #ffbf00;outline-offset:2px}
.lk-legend{display:none}.big-b{font-size:1.05rem;padding:15px}
@media (max-width:640px){.lk{gap:5px}.lk span{font-size:.68rem;padding:8px 2px}.lk b{font-size:1.2rem}}
.rhero .code{background:var(--ink);color:var(--sun);padding:2px 14px;border-radius:12px;letter-spacing:.08em}
.tcards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.tcard{background:#fff;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--sh)}
.tcard .ti{font-size:1.6rem}.tcard small{color:var(--muted);line-height:1.4}.tsc{font-weight:800;color:var(--pri-d)}
@media (max-width:760px){.tcards{grid-template-columns:1fr}}
.sbars{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.sbars li{display:grid;grid-template-columns:120px 1fr 34px;align-items:center;gap:10px;font-size:.9rem}.sbars b{text-align:right}
.bar.sm{height:8px}.res .mb{flex:1;min-width:0}.row-b{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
/* so sánh */
.cmpform select{flex:1 1 220px}.ctable-wrap{overflow-x:auto;margin-top:14px;border-radius:var(--r);border:1px solid var(--line);background:#fff}
.ctable{width:100%;border-collapse:collapse;min-width:560px;font-size:.92rem}.ctable th,.ctable td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.ctable thead th{background:var(--pri-l);font-size:1rem}.ctable thead a{color:var(--ink);text-decoration:none}.ctable tbody th{width:22%;font-weight:600;color:var(--muted);font-size:.86rem}
.ctable td small{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}.ctable ul.dot{margin:0;padding-left:18px}
.srct{min-width:640px}.hist-t{min-width:620px;font-size:.86rem}.hist-t td,.hist-t th{padding:8px 10px}
.empty{text-align:center;padding:32px}
/* con đường khác */
.pnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.pnav a{background:#fff;border:1.5px solid var(--line);padding:8px 14px;border-radius:99px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem}.pnav a:hover{border-color:var(--pri)}
.path{margin-bottom:18px;scroll-margin-top:80px}.path h2{font-size:1.25rem}.sic{margin-right:6px}
.pc{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pc>div{background:var(--bg);border-radius:14px;padding:12px 16px}.pc h3{font-size:1rem;margin:0}
.pro{border-left:4px solid #2e9e5b}.con{border-left:4px solid var(--sun)}
@media (max-width:640px){.pc{grid-template-columns:1fr}}
.suits{background:var(--pri-l);border-radius:12px;padding:10px 14px}.prep{list-style:none;padding:0;margin:0;display:grid;gap:8px}.prep li{display:flex;gap:10px;align-items:baseline}.prep .badge{flex:none;text-decoration:none}
.prose{max-width:820px;margin:auto}.prose h2{font-size:1.15rem;margin-top:22px}.consent{color:var(--muted);margin:4px 0 12px}
.cmpform select{min-width:0;max-width:100%;width:100%}.cmpform label,.cmpform>*{min-width:0;max-width:100%}
/* p3: checklist → trang con */
.hint{margin:4px 0 12px;color:var(--muted);font-size:.95rem}
.steps li{flex-wrap:nowrap;align-items:flex-start}.steps li>input{width:22px;height:22px;margin-top:3px;accent-color:var(--pri);flex:none;cursor:pointer}
.stepl{flex:1;min-width:0;color:var(--ink);text-decoration:none}.stepl:hover b{color:var(--pri-d)}
.steps li.done .stepl b{text-decoration:line-through;color:var(--muted)}
.steps .go{flex:none;font-weight:700;font-size:.9rem;color:var(--pri-d);text-decoration:none;white-space:nowrap;margin-top:2px}
@media (max-width:640px){.steps .go{display:none}}
.shero{padding:22px 24px;border-radius:20px;background:#e7f6f3;margin:8px 0 18px}.shero.sun{background:#fff6dc}.shero.coral{background:#ffece6}
.shero h1{margin:6px 0}.shero p{margin:0 0 10px}.kick{font-weight:700;font-size:.85rem;color:var(--pri-d)}
.sstat{display:inline-block;padding:4px 12px;border-radius:999px;background:#fff;font-weight:700;font-size:.9rem}.sstat.ok{background:var(--pri);color:#fff}
.sgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}@media (max-width:820px){.sgrid{grid-template-columns:1fr}}
.howto{padding-left:22px;margin:0 0 14px}.howto li{margin:0 0 8px;line-height:1.55}
.fl{display:block;font-weight:600;margin:10px 0 4px}.sgrid textarea{width:100%;box-sizing:border-box;border:1.5px solid #dfe5ee;border-radius:12px;padding:10px;font:inherit;resize:vertical}
.sact{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:20px 0}.sact form{display:flex;flex-wrap:wrap;gap:10px}
.nextbox{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:16px 20px;margin:0 0 16px;border-radius:18px;background:#e7f6f3;border:2px solid var(--pri)}
.nextbox>span{font-size:1.6rem}.nextbox div{flex:1;min-width:200px}.nextbox b,.nextbox small{display:block}.nextbox small{color:var(--muted)}
@media (max-width:640px){.nextbox .btn,.sact .btn{justify-content:center}.nextbox .btn{width:100%;text-align:center}.sact .btn,.sact form{width:100%}.sact .btn{text-align:center}}
.demo.wrap{white-space:normal;display:inline}
/* ---- Trang con bước: widget riêng ---- */
.howbox{margin-bottom:16px}.howbox summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}.howbox summary::-webkit-details-marker{display:none}
.howbox summary:after{content:"▾";color:var(--muted);transition:transform .2s}.howbox[open] summary:after{transform:rotate(180deg)}.howbox summary h2{margin:0}.howbox .howto{margin-top:12px}
.sform{display:grid;gap:16px}.sform>.card{min-width:0}.quizbox{margin-bottom:16px}.quizbox .code{color:var(--pri-d);font-size:1.2rem}
.wg h2{margin-top:0}.wg textarea,.wg input[type=text],.wg input[type=url],.wg input[type=date],.wg input[type=month],.wg input[type=number],.wg select{width:100%;box-sizing:border-box;border:1.5px solid #dfe5ee;border-radius:12px;padding:10px 12px;font:inherit;background:#fff;min-width:0}
.wg textarea{resize:vertical}.wg :is(textarea,input,select):focus{outline:2px solid var(--pri);outline-offset:1px;border-color:var(--pri)}
.lc{display:grid;gap:5px;min-width:0}.lc>span{font-weight:600;font-size:.9rem;overflow-wrap:anywhere}
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.tags li{background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:6px 12px;font-size:.9rem}
.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:10px 0}
.pk{position:relative;cursor:pointer;display:block}.pk input{position:absolute;opacity:0;width:1px;height:1px}
.pkb{display:flex;flex-direction:column;gap:2px;padding:14px 14px 14px 46px;border:1.5px solid var(--line);border-radius:14px;background:#fff;height:100%;box-sizing:border-box;position:relative;transition:.15s}
.pkb:before{content:"";position:absolute;left:14px;top:15px;width:20px;height:20px;border-radius:6px;border:2px solid #b7c1d1;background:#fff}
.pk input:checked+.pkb{border-color:var(--pri);background:var(--pri-l)}.pk input:checked+.pkb:before{background:var(--pri);border-color:var(--pri)}
.pk input:checked+.pkb:after{content:"✓";position:absolute;left:18px;top:13px;color:#fff;font-weight:800;font-size:.9rem}
.pk input:focus-visible+.pkb{outline:2px solid var(--pri);outline-offset:2px}.pk input:disabled+.pkb{opacity:.5;cursor:not-allowed}.pkb small{color:var(--muted)}
.st-combo .pkb b{font-size:1.15rem;color:var(--pri-d)}.st-check .picks{grid-template-columns:1fr}.st-check .pkb{padding:12px 14px 12px 46px}.st-check .pkb:before{top:12px}.st-check .pkb:after{top:10px}
.grp{grid-column:1/-1;margin:8px 0 0;font-weight:800;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cnt{margin:6px 0 12px;font-weight:600}.cnt.okc{color:var(--pri-d)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.chp{cursor:pointer;position:relative}.chp input{position:absolute;opacity:0;width:1px;height:1px}
.chp span{display:inline-block;padding:9px 16px;border-radius:99px;border:1.5px solid var(--line);background:#fff;font-weight:600;transition:.15s}
.chp input:checked+span{background:var(--pri);border-color:var(--pri);color:#fff}.chp input:focus-visible+span{outline:2px solid var(--pri);outline-offset:2px}.chp input:disabled+span{opacity:.45;cursor:not-allowed}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:10px 0}
.mj{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.mj label{display:flex;gap:10px;align-items:center;cursor:pointer;min-width:0}.mj input{width:18px;height:18px;accent-color:var(--pri);flex:none}.mj:has(input:checked){border-color:var(--pri);background:var(--pri-l)}.mj a{white-space:nowrap}
.hcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin:10px 0;align-items:start}
.hc{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:16px;padding:12px 14px;background:#fff;transition:.15s}.hc.on{border-color:var(--pri);background:#f3fbfa}
.hchk{padding-top:3px}.hchk input{width:22px;height:22px;accent-color:var(--pri);cursor:pointer}.hc details{flex:1;min-width:0}
.hc summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:8px;align-items:center;padding:2px 0}.hc summary::-webkit-details-marker{display:none}
.hc summary i{font-style:normal;color:var(--muted);transition:transform .2s}.hc details[open] summary i{transform:rotate(180deg)}
.hp{padding-top:8px;font-size:.94rem}.hp p{margin:0 0 8px}.tip{background:var(--sun-l);border-radius:10px;padding:8px 10px}.hrow{display:grid;gap:8px}
.rates{display:grid;gap:12px;margin-top:10px}.rt{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;margin:0;min-width:0}.rt legend{font-weight:700;padding:0 4px}
.rt details{margin:2px 0 8px}.rt summary{cursor:pointer;color:var(--pri-d)}
.scale{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.scale label{position:relative;cursor:pointer}.scale input{position:absolute;opacity:0;width:1px;height:1px}
.scale label span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;border:1.5px solid var(--line);font-weight:700;background:#fff}
.scale input:checked+span{background:var(--pri);color:#fff;border-color:var(--pri)}.scale input:focus-visible+span{outline:2px solid var(--pri);outline-offset:2px}.scale .lo,.scale .hi{flex:0 0 auto}
.flds{display:grid;gap:12px}.flds.short{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.lrows{list-style:none;padding:0;margin:10px 0;display:grid;gap:10px}
.lrow{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:14px;padding:12px;background:var(--bg)}
.lcells{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;min-width:0}
.ord{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:10px;background:var(--pri);color:#fff;font-weight:800;margin-top:22px}
.tot{align-self:center;font-weight:800;color:var(--pri-d);white-space:nowrap}
.rbtn{display:flex;flex-direction:column;gap:6px;margin-top:22px}.ib{width:34px;height:34px;border-radius:10px;border:1.5px solid var(--line);background:#fff;cursor:pointer;font:inherit;font-weight:700}
.ib:hover{border-color:var(--pri)}.ib.del:hover{border-color:var(--coral);color:var(--coral)}button[disabled]{opacity:.5;cursor:not-allowed}
.sst{flex-basis:100%}.srcbox .note{margin-top:12px}
@media (max-width:640px){.lrow{flex-wrap:wrap;padding:10px}.lcells{grid-template-columns:1fr;flex-basis:calc(100% - 50px)}.ord{margin-top:0}.rbtn{flex-direction:row;margin-top:0;margin-left:auto}
 .tot{order:5}.scale label span{width:38px;height:38px}.scale .lo,.scale .hi{flex-basis:100%}.scale .hi{order:9}.hcards,.picks,.mgrid{grid-template-columns:1fr}.sact .btn{flex:1 1 100%;justify-content:center}}
/* =====================================================================
   REDESIGN v5 — "Bạn đồng hành tin cậy"
   Phong cách: Minimal/Swiss thân thiện · Be Vietnam Pro (local, đủ dấu)
   Màu: xanh chàm (tin cậy) + vàng nắng (hành động) + 3 màu khối lớp
   ===================================================================== */
:root{--bg:#f6f7fb;--ink:#101a3a;--muted:#4b5571;--line:#e1e5ef;--card:#fff;
--pri:#2f49d1;--pri-d:#2238a6;--pri-l:#eef1ff;--sun:#ffb81f;--sun-l:#fff5d9;--coral:#d9363e;--coral-l:#fdecec;--sky:#edf3ff;
--g10:#0f7b5a;--g10-l:#e5f5ee;--g11:#2f49d1;--g11-l:#eef1ff;--g12:#c2410c;--g12-l:#fff0e6;
--r:16px;--r-lg:24px;--sh:0 1px 2px #101a3a0f,0 4px 14px #101a3a0d;--sh2:0 2px 6px #101a3a14,0 16px 36px #101a3a1c;--ring:0 0 0 3px #fff,0 0 0 5px #2f49d1;
--ease:cubic-bezier(.2,.7,.2,1)}
body{background:var(--bg);color:var(--ink);font-feature-settings:"ss01"}
::selection{background:#ffe08a}
a{color:var(--pri-d);text-underline-offset:3px}
h1,h2,h3{letter-spacing:-.015em;color:var(--ink)}
.muted{color:var(--muted)}
svg.i{width:1.15em;height:1.15em;vertical-align:-.2em;flex:none;stroke-width:2}
/* focus thống nhất, rõ ràng */
:is(a,button,select,input,textarea,summary,[tabindex]):focus-visible{outline:none!important;box-shadow:var(--ring)!important;border-radius:10px}
.opt input:focus-visible+span,.lk input:focus-visible+span,.chipsel input:focus-visible+span,.chp input:focus-visible+span,.pk input:focus-visible+.pkb,.scale input:focus-visible+span{outline:none;box-shadow:var(--ring)}
/* nav */
.nav{background:#ffffffeb;border-bottom:1px solid var(--line)}
.nav .in{max-width:1200px;min-height:64px}
.logo{gap:10px;font-size:1.08rem;letter-spacing:-.01em}
.logo span{width:36px;height:36px;border-radius:11px;background:linear-gradient(140deg,#3a56e4,#1f2f8f);box-shadow:inset 0 -2px 0 #0003}
.logo span svg.i{width:20px;height:20px;color:#ffd25e}
.nav a.l{min-height:44px;display:inline-flex;align-items:center;border-radius:10px;color:#3a4462}
.nav a.l:hover{background:var(--pri-l);color:var(--pri-d)}
.nav a.l.on{background:var(--pri-l);color:var(--pri-d);box-shadow:inset 0 -2px 0 var(--pri)}
.nav button.l{min-height:44px;color:#3a4462;font-weight:600;padding:8px 12px;border-radius:10px}.nav button.l:hover{background:var(--coral-l);color:var(--coral)}
.burger{width:44px;height:44px}
main{max-width:1200px;padding:28px 24px}
/* nút: cao ≥44px, trạng thái rõ */
.btn{min-height:44px;border-radius:12px;padding:11px 20px;font-weight:700;letter-spacing:-.005em;transition:background .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease),border-color .2s}
.btn:hover{background:var(--pri-d);box-shadow:0 6px 18px #2f49d133}
.btn:active{transform:translateY(1px)}
.btn.sun{background:var(--sun);color:#1b1400;box-shadow:inset 0 -3px 0 #0000001f}.btn.sun:hover{background:#f5a800}
.btn.ghost{background:#fff;color:var(--ink);border:1.5px solid #cfd6e4}.btn.ghost:hover{border-color:var(--pri);color:var(--pri-d);box-shadow:none;background:#fbfcff}
.btn.sm{min-height:40px;padding:8px 14px}
.btn.danger{background:var(--coral)}.btn.danger:hover{background:#b8262e}
.btn.dis{background:#c3c9d6}
/* thẻ */
.card{border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh)}
.card h2{gap:10px}
.card h2>svg.i,.h4>svg.i,.prose h1>svg.i,h1>svg.i{color:var(--pri)}
/* HERO trang chủ */
.hero{background:radial-gradient(1200px 400px at 80% -10%,#5b74ff55,transparent 60%),linear-gradient(160deg,#1c2b80 0%,#2f49d1 55%,#3d5cf0 100%);border-radius:28px;color:#fff;box-shadow:0 20px 50px #2238a633;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;right:auto;bottom:auto;width:100%;height:100%;border-radius:0;background-image:linear-gradient(#ffffff14 1px,transparent 1px),linear-gradient(90deg,#ffffff14 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000 20%,transparent 75%);opacity:1;z-index:0}
.hero:after{width:220px;height:220px;right:-70px;top:-70px;background:var(--sun);opacity:.95;z-index:0}
.hero.clean:after,.hero.clean:before{opacity:1}
.hero.clean{padding:clamp(44px,7vw,84px) 24px}
.hero h1{color:#fff;font-size:clamp(2rem,5vw,3.25rem);line-height:1.15;letter-spacing:-.025em;max-width:16ch}
.hero p{font-size:clamp(1.02rem,2vw,1.18rem);color:#e6eaff;opacity:1}
.hero .kick{background:#ffffff1f;border:1px solid #ffffff38;color:#fff;padding:6px 14px;font-size:.85rem;letter-spacing:.01em}
.hero .btn.sun{font-size:1.02rem;padding:13px 24px;min-height:48px}
/* Định hướng: 3 ô lớp */
.guide{margin:44px 0 48px}
.big{font-size:clamp(1.6rem,3.4vw,2.25rem);letter-spacing:-.02em}
.gcards{gap:20px;margin-top:22px}
.gcard{position:relative;overflow:hidden;align-items:flex-start;text-align:left;padding:26px 24px 22px;border-radius:var(--r-lg);border:1.5px solid var(--line);background:#fff;box-shadow:var(--sh);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.gcard:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--gc,var(--pri))}
.gcard:hover{transform:translateY(-4px);box-shadow:var(--sh2);border-color:var(--gc)}
.gcard.pri{--gc:var(--g10);--gl:var(--g10-l)}.gcard.sun{--gc:var(--g11);--gl:var(--g11-l)}.gcard.coral{--gc:var(--g12);--gl:var(--g12-l)}
.gcard.pri,.gcard.sun,.gcard.coral{background:#fff;border-color:var(--line)}
.gcard .gi{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--gl);color:var(--gc);font-size:1rem}
.gcard .gi svg.i{width:26px;height:26px}
.gcard .gl{margin-top:16px;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted)}
.gcard b{font-size:3.6rem;letter-spacing:-.04em;color:var(--gc)!important}
.gcard .gt{font-size:1.06rem;margin-top:6px}
.gcard .gp{color:var(--muted)}
.gcard .go{display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--gc);font-weight:700;min-height:28px}
.altpath{border:1.5px dashed #c6cee0;border-radius:var(--r);padding:16px 20px;min-height:72px;background:#fff}
.altpath:hover{border-color:var(--pri);border-style:solid}
.altpath>span:first-child{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--sun-l);color:#8a5a00;flex:none}
.altpath>span:first-child svg.i{width:24px;height:24px}
/* bộ lọc + thẻ ngành */
.filters{border-radius:var(--r);box-shadow:var(--sh);padding:14px;gap:10px}
.filters select{min-height:44px;border-color:#cfd6e4;color:var(--ink)}
.major.mini{padding:16px;border-radius:var(--r);transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s}
.major:hover{transform:translateY(-3px);border-color:#b9c4f5}
.major .ic,.major.mini .ic,.dhead .ic{background:var(--pri-l);color:var(--pri);border-radius:14px}
.major.mini .ic svg.i{width:22px;height:22px}.dhead .ic svg.i{width:36px;height:36px}
.major.mini h3{font-size:1.02rem}
.cmp{min-height:32px}
.fit{background:var(--sun);color:#1b1400;display:inline-flex;gap:4px}
.badge{font-weight:600;border-radius:8px;gap:5px}.badge svg.i{width:.95em;height:.95em}
.badge.Cao{background:#e3f5ea;color:#13643a}.badge.Kha{background:#fff2cf;color:#6e4a00}.badge.TB{background:#eef0f5;color:#3b4560}.badge.Thap{background:var(--coral-l);color:#9c1f26}
.src{background:var(--g10-l);color:#0b5e44}.demo{background:#fff0d1;color:#7a4300}
/* tin tức */
.news{margin-top:48px}
.news h2>svg.i{color:var(--pri)}
.facts li{background:#fafbfe;border:1px solid var(--line);border-left:4px solid var(--pri);border-radius:12px}
/* cảnh báo cuối trang */
.warn{border-radius:var(--r);background:#fff8e6;border:1px solid #f4dc9c;color:#4a3a10;padding:14px 18px;line-height:1.6;margin-top:36px}
.warn>svg.i:first-child{color:#a86b00;margin-right:4px}
footer{border-top:1px solid var(--line);background:#fff;margin-top:24px;color:var(--muted)}
footer a{display:inline-block;padding:10px 4px}
/* trang lớp */
.back{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-decoration:none}
.ghero{border-radius:var(--r-lg);border:1px solid var(--line);background:#fff!important;position:relative;overflow:hidden;box-shadow:var(--sh)}
.ghero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gc,var(--pri))}
.ghero.pri{--gc:var(--g10);--gl:var(--g10-l)}.ghero.sun{--gc:var(--g11);--gl:var(--g11-l)}.ghero.coral{--gc:var(--g12);--gl:var(--g12-l)}
.ghero .gi{background:var(--gl,var(--pri-l));color:var(--gc,var(--pri))}.ghero .gi svg.i{width:40px;height:40px}
.ghero .kick{color:var(--gc,var(--pri-d));text-transform:uppercase;letter-spacing:.06em;font-size:.8rem}
.progress{background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(6px);top:64px}
.bar{background:#e3e7f1}.bar i{background:linear-gradient(90deg,var(--pri),#5b74ff)}
.hint>svg.i{color:var(--pri)}
.phase{border-radius:var(--r);padding:22px}
.dotn{background:var(--ink);width:34px;height:34px}
.steps li{background:#fafbfe;border:1px solid var(--line);border-radius:14px;padding:14px 16px;min-height:56px;transition:border-color .2s,background .2s}
.steps li:hover{border-color:#b9c4f5;background:#fff}
.steps li.done{background:#f3faf6;border-color:#cbe9d8}
.steps .go{display:inline-flex;align-items:center;min-height:32px}
.note{background:var(--sky);border:1px solid #d6e2ff;border-radius:var(--r)}
.note>svg.i:first-child{color:var(--pri);margin-right:4px}
/* trang con bước */
.shero{border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh);position:relative;overflow:hidden;padding:24px 26px}
.shero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--g10)}
.shero.sun:before{background:var(--g11)}.shero.coral:before{background:var(--g12)}
.shero.sun,.shero.coral{background:#fff}
.kick{color:var(--pri-d)}
.sstat{background:var(--bg);border:1px solid var(--line);min-height:32px;display:inline-flex;align-items:center}
.sstat.ok{background:var(--g10);border-color:var(--g10);color:#fff}
.howbox summary{min-height:44px}
.pkb,.hc,.mj,.lrow,.rt,.opt span,.lk span{border-color:#d7ddea}
.pkb{min-height:52px}
.pk input:checked+.pkb,.hc.on,.mj:has(input:checked){background:var(--pri-l);border-color:var(--pri)}
.chp span,.chipsel span{min-height:44px;display:inline-flex;align-items:center}
.scale label span{width:44px;height:44px}
.ib{width:40px;height:40px}
.hchk input,.steps li>input{width:24px;height:24px}
.tip{background:var(--sun-l);border:1px solid #f4dc9c}
.nextbox{background:#f1f9f5;border:1.5px solid #9fd8bb;border-radius:var(--r)}
.nextbox>span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--g10);color:#fff}
.flash{background:#eaf7f0;color:#0b5e44;border:1px solid #bfe5d0}
/* quiz */
.lq legend .n,.q .n{background:var(--ink);color:#fff}
.lk span{min-height:64px;justify-content:center}
.lk b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--bg);font-size:.95rem;color:var(--muted)}
.lk input:checked+span{background:var(--pri-l);border-color:var(--pri)}
.lk input:checked+span b{background:var(--pri);color:#fff}
.rhero{background:linear-gradient(135deg,#fff7df,#eef1ff);border:1px solid #e9e1c4;border-radius:var(--r-lg)}
.rhero h1>svg.i{color:var(--pri)}
.rhero .code{background:var(--ink);color:#ffd25e}
.tcard .ti,.rank{color:var(--pri)}.tcard .ti svg.i{width:26px;height:26px}
.res.top{border:2px solid var(--sun)}.res.top .rank{background:var(--sun);color:#1b1400}
/* auth */
.auth-side{background:radial-gradient(600px 300px at 100% 0,#5b74ff66,transparent 60%),linear-gradient(160deg,#1c2b80,#2f49d1);border-radius:var(--r-lg)}
.ticks li:before{background:var(--sun);color:#1b1400}
.fm input,.sec input:not([type=checkbox]):not([type=radio]),.sec select,.wg :is(textarea,input,select),.sgrid textarea{min-height:46px;border-color:#cfd6e4}
.fm input:focus,.sec input:focus,.sec select:focus,.wg :is(textarea,input,select):focus{border-color:var(--pri);box-shadow:0 0 0 4px #2f49d126;outline:none}
.eye{min-height:36px}
.remind{background:#fff;border:1px solid #f4dc9c;box-shadow:var(--sh)}
.rm-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--sun-l);color:#8a5a00}
.remind .x{min-width:44px;min-height:44px}
.sic{display:inline-grid;place-items:center;color:var(--pri)}.sic svg.i{width:22px;height:22px}
.path h2 .sic{width:40px;height:40px;border-radius:12px;background:var(--pri-l)}
.pnav a{min-height:44px;display:inline-flex;align-items:center;gap:6px}
.ctable thead th{background:var(--pri-l)}
.ecode{color:var(--pri)}
@media (max-width:860px){.menu{top:100%}.nav .menu a.l,.nav .menu button.l{min-height:48px}}
@media (max-width:640px){main{padding:18px 16px}.hero{border-radius:22px}.hero:after{width:130px;height:130px;right:-50px;top:-50px}
 .hero h1{font-size:2rem}.gcard{padding:18px 18px 16px;align-items:center}.gcard b{font-size:2.3rem}.gcard .gl{margin-top:0}.gcard .gi{width:44px;height:44px}.gcard .gi svg.i{width:22px;height:22px}
 .gcard .go{margin-top:0}.progress{top:64px}.ghero .gi{width:60px;height:60px}.ghero .gi svg.i{width:30px;height:30px}.lk b{width:26px;height:26px}.lk span{min-height:58px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.gp:empty{display:none}
.hc{align-items:center;min-height:58px}.hc:has(details[open]){align-items:flex-start}.hc:has(details[open]) .hchk{padding-top:2px}.hchk{padding-top:0;display:flex}
.hc summary{min-height:32px}
@media (max-width:640px){.steps .go{display:none}}
/* v2: burger SVG */
.burger{color:var(--ink);gap:0}.burger path{transition:transform .2s,opacity .2s;transform-origin:center;transform-box:fill-box}
.nav.open .burger .b1{transform:translateY(5px) rotate(45deg)}.nav.open .burger .b2{opacity:0}.nav.open .burger .b3{transform:translateY(-5px) rotate(-45deg)}
@media(prefers-reduced-motion:reduce){.burger path{transition:none}}
/* Thực hiện hành động + cơ sở khoa học */
.actbox{margin-bottom:16px}.actbox h2{margin:0 0 4px}
.acts{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}
.act{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:12px;cursor:pointer;min-height:44px}
.act input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--pri)}
.act span{min-width:0;overflow-wrap:anywhere}.act b{display:block;font-weight:600}.act small{display:block;color:var(--muted);margin-top:4px;line-height:1.5}
.act:has(input:checked) b{text-decoration:line-through;opacity:.65}
.cite{font-weight:600;margin-left:2px;display:inline-block;padding:0 2px}
.sci-t{display:flex;width:100%;justify-content:space-between;align-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:transparent;font:inherit;font-weight:600;color:inherit;cursor:pointer;text-align:left}
.sci-t i{font-style:normal;color:var(--muted);transition:transform .2s}.sci-t[aria-expanded=true] i{transform:rotate(180deg)}
.sci{margin:10px 0 0;padding-left:22px;display:grid;gap:10px;font-size:.92rem;overflow-wrap:anywhere}
.scilist{list-style:none;padding:0;display:grid;gap:14px;margin-top:16px}.scilist li{overflow-wrap:anywhere}.scilist h2{margin:0 0 6px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem .5rem;padding:0;margin:0 0 .75rem;font-size:.875rem;color:#5b6475}
.crumbs li+li::before{content:"›";margin-right:.5rem;color:#9aa3b2}
.crumbs a{color:inherit;text-decoration:underline;text-underline-offset:2px}.crumbs a:hover{color:#2f49d1}
.crumbs [aria-current]{color:#1f2937;font-weight:600}

/* UX pass */
.resume{display:grid;gap:6px;margin:-8px 0 24px;text-decoration:none;color:inherit;border:2px solid var(--sun,#ffb81f)}
.resume b{font-size:1.15rem}.resume .go{font-weight:700;color:#2f49d1}
.resume .bar,.nextcta .bar{display:block;height:8px;border-radius:99px;background:#eef1f6;overflow:hidden}.resume .bar i{display:block;height:100%;background:#2f49d1}
.nextcta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:14px 0;padding:16px 18px;border-radius:18px;background:#fff;border:2px solid #2f49d1;text-decoration:none;color:inherit;box-shadow:0 6px 18px #2238a61a}
.nextcta>span.muted{flex-basis:100%}.nextcta b{flex:1 1 220px;font-size:1.1rem}.nextcta.okx{border-color:#16a34a}
.grid:not(.all) .xtra{display:none}.more{display:flex;margin:16px auto 0;min-height:44px}
details.news summary{cursor:pointer;list-style:none}details.news summary::-webkit-details-marker{display:none}details.news summary h2{margin:0}details.news summary h2:after{content:" ▾";color:var(--muted)}details.news[open] summary{margin-bottom:12px}
.howbox summary h2 small{font-size:.8rem;font-weight:500}
button[aria-busy=true]{opacity:.7;cursor:progress}
@media (max-width:640px){
 .sact.sticky{position:sticky;bottom:0;z-index:20;background:#fffffff2;backdrop-filter:blur(6px);margin:20px -14px 0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #e3e7ef;box-shadow:0 -6px 18px #0000000f;gap:8px}
 .sact.sticky .btn{flex:1 1 40%;width:auto;min-height:48px}.sact.sticky .sst{flex-basis:100%;text-align:center;order:-1;font-size:.8rem}
 .nextcta .btn{width:100%;justify-content:center}
 body{font-size:16px}
}

/* UX pass 2 */
.shero .sstat{min-height:0;padding:1px 8px;font-size:.78rem;vertical-align:1px}
@media (max-width:640px){
 .shero{padding:16px 18px;margin:4px 0 12px}.shero h1{font-size:1.45rem;line-height:1.25}.shero p{font-size:.95rem;margin:0}

 .sact.sticky{position:fixed;left:0;right:0;bottom:0;margin:0;z-index:40}
 body.has-sact main{padding-bottom:170px}body.has-sact .cbar{display:none}
 .lk span{font-size:.74rem}
}
@media (max-width:640px){
 .sact.sticky{padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:6px}
 .sact.sticky .btn{min-height:44px;padding:8px 10px;font-size:.92rem;white-space:nowrap}
 .sact.sticky .btn.ghost{flex:1 1 30%}.sact.sticky .btn:not(.ghost){flex:1 1 100%}
 .sact.sticky .sst{font-size:.74rem;margin:0}
 body.has-sact main{padding-bottom:150px}
}
/* admin */
.adm{display:grid;gap:16px;margin:20px 0}.adm-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.adm-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.adm-nav a{font-weight:600;text-decoration:none;padding:6px 10px;border-radius:10px;background:var(--pri-l)}.adm-nav form{margin:0}
.adm-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.adm-kpi .card{padding:14px}.adm-kpi small{display:block;color:var(--muted)}.adm-kpi b{font-size:1.8rem}.adm-kpi em{display:block;font-size:.75rem;color:var(--muted);font-style:normal}
.adm-c h2{font-size:1.1rem}.adm-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.adm-bars{display:flex;align-items:flex-end;gap:2px;height:160px;padding-bottom:18px}.adm-bars div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.adm-bars i{display:block;width:100%;background:var(--pri);border-radius:4px 4px 0 0;min-height:1px}.adm-bars span{font-size:.65rem}.adm-bars small{position:absolute;bottom:-18px;font-size:.65rem;color:var(--muted)}
.adm-scroll{overflow-x:auto}.adm-t{width:100%;border-collapse:collapse;font-size:.88rem}.adm-t th,.adm-t td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.adm-t th{color:var(--muted);font-weight:600}
.adm-hb{display:inline-block;height:8px;background:var(--pri);border-radius:4px;margin-right:6px;vertical-align:middle}.adm-pg{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:12px}
.adm>*,.adm-2>*{min-width:0}
