:root{--bg:#f6f7ff;--card:rgba(255,255,255,.76);--ink:#141a33;--mute:#5b6485;--line:rgba(99,102,241,.16);--g1:#6366f1;--g2:#06b6d4;--g3:#34d399;--brand:#6366f1;--chip:rgba(99,102,241,.09);--chipink:#4338ca;--ok:#059669;--warn:#b45309;--bad:#e11d48;--radius:20px;--shadow:0 20px 50px -24px rgba(79,70,229,.28)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;position:relative;min-height:100vh;overflow-x:hidden;overflow-x:clip}
body::before,body::after{content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;pointer-events:none;z-index:0}
body::before{width:520px;height:520px;background:var(--g1);top:-200px;left:-140px}
body::after{width:460px;height:460px;background:var(--g2);top:-110px;right:-160px}
.wrap{position:relative;z-index:1;max-width:920px;margin:0 auto;padding:8px 16px 64px}.narrow{max-width:560px;padding-top:56px}
header.top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;padding:20px 16px;max-width:920px;margin:0 auto}
header.top a{color:var(--ink);text-decoration:none;font-weight:700;font-size:17px;display:flex;align-items:center;gap:10px}
header.top a:first-child::before{content:"✦";width:30px;height:30px;border-radius:10px;background:linear-gradient(135deg,var(--g1),var(--g2));display:grid;place-items:center;color:#fff;font-size:15px}
header.top a.small{color:var(--mute);font-weight:500;font-size:14px}
.hero{text-align:center;padding:40px 0 20px}
.badge{display:inline-flex;gap:8px;align-items:center;background:var(--chip);color:var(--chipink);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--g3);box-shadow:0 0 0 4px rgba(52,211,153,.25)}
.hero h1{font-size:clamp(28px,5.4vw,50px);line-height:1.15;letter-spacing:-.02em;margin:20px auto 14px;max-width:760px}
.hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--g1),var(--g2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--mute);margin:0 auto 26px;max-width:580px;font-size:17px}
.chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:20px}
.chips span{font-size:13px;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--card)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin:20px 0;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.card h2,.card h3{margin-top:0}
.center{text-align:center}
.label{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-weight:600;margin-bottom:8px}
form.row{display:flex;gap:8px;max-width:600px;margin:0 auto;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
form.row:focus-within{border-color:var(--g1)}
input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;width:100%}
form.row input{flex:1;min-width:0;width:auto;border:0;background:transparent}
input:focus,textarea:focus,select:focus{outline:2px solid var(--g1);outline-offset:1px}
form.row input:focus{outline:0}
input::placeholder,textarea::placeholder{color:#8b93b0}
.btn,button{font:inherit;font-weight:700;background:linear-gradient(100deg,var(--g1),var(--g2));color:#fff;border:0;border-radius:999px;padding:12px 24px;cursor:pointer;text-decoration:none;display:inline-block;min-height:44px;white-space:nowrap}
.btn:hover,button:hover{filter:brightness(1.06)}
button:focus-visible,.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
button:disabled{opacity:.6;cursor:wait}
.btn.sec{background:transparent;border:1px solid var(--line);color:var(--ink)}
.err{color:var(--bad);margin:12px 0 0}.small.ok{color:var(--ok);margin:8px 0 0}.mute{color:var(--mute)}.small{font-size:13px}
.score{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.ring{--p:0;width:124px;height:124px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--g1),var(--g2) calc(var(--p)*1%),rgba(99,102,241,.14) 0)}
.ring div{width:98px;height:98px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;font-size:34px;font-weight:800;line-height:1}
.ring small{display:block;font-size:11px;font-weight:500;color:var(--mute);margin-top:4px}
.bars{flex:1 1 280px;display:grid;gap:9px}
.bar{display:grid;grid-template-columns:170px 1fr 34px;gap:10px;align-items:center;font-size:14px}
.bar .t{height:8px;background:rgba(99,102,241,.14);border-radius:99px;overflow:hidden}
.bar .t i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--g1),var(--g2))}
.bar b{text-align:right;font-weight:500;color:var(--mute);font-variant-numeric:tabular-nums}
.probs{display:grid;gap:12px}
.prob{display:grid;grid-template-columns:40px 1fr auto;gap:14px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.6)}
.prob .ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:800;background:var(--chip);color:var(--chipink)}
.prob b{display:block}.prob p{margin:2px 0 0;color:var(--mute);font-size:14px}
.tag{font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap;border:1px solid currentColor}
.lv-lon{color:var(--bad)}.lv-trung_binh{color:var(--warn)}.lv-nho{color:var(--ok)}
.locked{margin-top:16px;border:1px dashed var(--line);border-radius:14px;padding:16px}
.locked .blur{filter:blur(5px);user-select:none;pointer-events:none;color:var(--mute)}
.lead{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;align-items:center}
.lead h3{font-size:22px;margin:0 0 6px;line-height:1.3}
.lead .fields{display:grid;gap:10px}
.check{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:14px;color:var(--mute)}.check input{width:auto;margin-top:5px}
.lead .check,.lead #leadCaptcha,.lead #leadMsg{grid-column:1/-1;margin:0}
.progress{height:8px;background:rgba(99,102,241,.14);border-radius:99px;overflow:hidden;margin:14px 0}.progress i{display:block;height:100%;width:30%;border-radius:99px;background:linear-gradient(90deg,var(--g1),var(--g2));animation:slide 1.4s infinite ease-in-out}
@keyframes slide{0%{margin-left:-30%}100%{margin-left:100%}}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.plan{border:1px solid var(--line);border-radius:16px;padding:16px;background:rgba(255,255,255,.7);cursor:pointer;display:block}
.plan:has(input:checked){border-color:var(--g1);box-shadow:0 0 0 2px var(--g1)}
.plan input{width:auto;margin-right:8px}.plan ul{padding-left:18px;margin:8px 0 0;color:var(--mute);font-size:14px}
label.f{display:block;margin:14px 0 4px;font-weight:600;font-size:14px}
[hidden]{display:none!important}
footer{position:relative;z-index:1;text-align:center;color:var(--mute);font-size:13px;padding:20px}
@media (max-width:640px){.lead{grid-template-columns:1fr}form.row{border-radius:22px;flex-direction:column}.prob{grid-template-columns:40px 1fr}.prob .tag{grid-column:2;justify-self:start}.bar{grid-template-columns:120px 1fr 30px}.card{padding:20px}}
@media (prefers-reduced-motion:reduce){.progress i{animation:none;width:100%}}
.plan .price{margin-top:10px;font-weight:700;color:var(--chipink)}
.fs{border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:16px 0 0}.fs legend{font-weight:600;font-size:14px;padding:0 6px}
.two{display:grid;grid-template-columns:1fr 2fr;gap:0 14px}.two+.two,#invoiceBox .two{grid-template-columns:1fr 1fr}
.addrow{display:flex;gap:10px;margin-top:8px}.addrow input{flex:1;min-width:0}
.total{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 0;font-weight:700}
.payrow{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.qr{border:1px solid var(--line);border-radius:16px;background:#fff;padding:8px}
.bank{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;flex:1 1 260px}.bank dt{color:var(--mute);font-size:14px}.bank dd{margin:0;font-weight:600;word-break:break-all}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--g3);margin-right:6px;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.3}}
@media (max-width:640px){.two,.two+.two,#invoiceBox .two{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.dot{animation:none}}
/* Điểm dưới 80: màu cam để phân biệt với nhóm đã tốt (cùng quy ước trong email và PDF) */
.bar .t i.low{background:linear-gradient(90deg,#f59e0b,#f97316)}
.ring.low{background:conic-gradient(#f59e0b,#f97316 calc(var(--p)*1%),rgba(245,158,11,.18) 0)}
