/* GemCoding — trang chủ (landing). Dùng chung token màu với app.css; bố cục tham khảo cấu trúc trang giới thiệu MOSMind, nội dung/hình tự làm. */
:root{
  --radius:.35rem;
  --background:#fcfdfe;--foreground:#09131a;--card:#fff;--muted:#eff2f6;--muted-foreground:#4c575f;
  --primary:#e1773b;--primary-foreground:#f9fcff;--accent:#fff1e8;--border:#d8dfe4;
  --word:#2b5fb4;--excel:#1f8a4c;--ppt:#d24726;
  --font:"Figtree",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
.dark{
  --background:#050c14;--foreground:#eff2f6;--card:#0e1720;--muted:#1c252e;--muted-foreground:#9ea8b2;
  --primary:#f08a4b;--primary-foreground:#040e1a;--accent:#2a1a10;--border:#262f39;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
img,svg{display:block}
.ic{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wrap{max-width:72rem;margin:0 auto;padding:0 16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;height:40px;padding:0 18px;border-radius:var(--radius);font-size:14px;font-weight:600;border:1px solid transparent;transition:background-color .15s,color .15s,border-color .15s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{background:color-mix(in oklab,var(--primary) 88%,black)}
.btn-ghost{color:var(--foreground)}.btn-ghost:hover{background:var(--muted)}
.btn-outline{border-color:var(--border);background:var(--card)}.btn-outline:hover{background:var(--muted)}
.btn-lg{height:46px;padding:0 24px;font-size:15px}

/* Header */
.hd{position:sticky;top:0;z-index:40;border-bottom:1px solid color-mix(in oklab,var(--border) 70%,transparent);background:color-mix(in oklab,var(--background) 82%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.hd__in{display:flex;align-items:center;gap:12px;height:64px}
.logo img{height:30px;width:auto}
.dark .logo .l-light{display:none}.logo .l-dark{display:none}.dark .logo .l-dark{display:block}
.nav{display:none;align-items:center;gap:4px;margin-left:16px}
.nav a{padding:8px 12px;border-radius:var(--radius);font-size:14px;font-weight:500;color:var(--muted-foreground)}
.nav a:hover{color:var(--foreground);background:var(--muted)}
.hd__right{margin-left:auto;display:flex;align-items:center;gap:8px}
.theme{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:9999px;background:var(--card)}
.theme .sun{display:none}.dark .theme .sun{display:block}.dark .theme .moon{display:none}
.hd .btn-ghost{display:none}
.burger{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:var(--radius)}
.mnav{display:none;flex-direction:column;gap:2px;padding:8px 16px 16px;border-top:1px solid var(--border)}
.mnav a{padding:10px 8px;border-radius:var(--radius);font-weight:500}
.mnav a:hover{background:var(--muted)}
.mnav.open{display:flex}

/* Hero */
.hero{position:relative;overflow:hidden;padding:56px 0 40px}
.hero__glow{pointer-events:none;position:absolute;right:-160px;top:-120px;width:520px;height:520px;border-radius:9999px;background:color-mix(in oklab,var(--primary) 16%,transparent);filter:blur(120px)}
.hero__grid{display:grid;gap:40px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;border:1px solid color-mix(in oklab,var(--primary) 40%,transparent);background:var(--accent);color:var(--primary);font-size:12px;font-weight:600;letter-spacing:.02em}
.h1{margin:16px 0 14px;font-size:40px;line-height:1.1;font-weight:800;letter-spacing:-.03em}
.h1 em{font-style:normal;color:var(--primary)}
.lead{margin:0 0 24px;max-width:36rem;font-size:17px;color:var(--muted-foreground)}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.apps{margin-top:28px;display:inline-flex;flex-wrap:wrap;align-items:center;gap:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}
.apps__g{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600}
.apps__g+.apps__g{border-left:1px solid var(--border)}
.apps__g img{width:22px;height:22px}
.apps__g span{margin-left:4px}
.stats{margin-top:24px;display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}
.stat{padding:14px 16px;text-align:center}
.stat:nth-child(odd){border-right:1px solid var(--border)}
.stat:nth-child(-n+2){border-bottom:1px solid var(--border)}
.stat b{display:block;font-size:22px;font-weight:800;color:var(--primary)}
.stat span{font-size:12px;color:var(--muted-foreground)}

/* Mô phỏng màn hình thi (vẽ bằng CSS) */
.mock{position:relative;border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:0 24px 60px -24px rgba(0,0,0,.35);overflow:hidden}
.mock__bar{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-bottom:1px solid var(--border);background:var(--muted);font-size:11px;color:var(--muted-foreground)}
.mock__bar i{width:10px;height:10px;border-radius:50%;background:var(--border)}
.mock__bar i:nth-child(1){background:#ef5f55}.mock__bar i:nth-child(2){background:#f5bd4f}.mock__bar i:nth-child(3){background:#5fc453}
.mock__bar span{margin-left:8px}
.mock__ribbon{display:flex;gap:14px;padding:6px 12px;border-bottom:1px solid var(--border);font-size:11px;color:var(--muted-foreground)}
.mock__ribbon b{color:var(--excel);font-weight:600}
.mock__sheet{padding:10px 12px 12px;font-size:11px}
.mock__sheet table{width:100%;border-collapse:collapse;table-layout:fixed}
.mock__sheet th,.mock__sheet td{border:1px solid var(--border);padding:3px 6px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mock__sheet th{background:var(--muted);font-weight:600;color:var(--muted-foreground)}
.mock__sheet td.n{text-align:right;font-variant-numeric:tabular-nums}
.mock__sheet td.hl{background:color-mix(in oklab,var(--primary) 14%,transparent)}
.mock__exam{border-top:3px solid var(--excel);background:#0f1c25;color:#e6edf3}
.mock__top{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px}
.mock__top .pill{padding:2px 8px;border-radius:4px;background:#1c2a36}
.mock__top .pill.on{background:var(--primary);color:#fff}
.mock__top .grow{flex:1}
.mock__top .go{padding:3px 10px;border-radius:4px;background:#2b6cb0;font-weight:600}
.mock__task{padding:8px 12px 12px;font-size:12px;line-height:1.45;background:#fff;color:#111}
.dark .mock__task{background:#131d27;color:#e6edf3}
.mock__nums{display:flex;gap:6px;padding:0 12px 10px}
.mock__nums i{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:#1c2a36;font-style:normal;font-size:11px;color:#cbd5e1}
.mock__nums i.on{background:var(--primary);color:#fff}
.mock__nums i.ok{background:#1f8a4c;color:#fff}
.float{position:absolute;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:0 10px 30px -12px rgba(0,0,0,.3);font-size:12px;font-weight:600}
.float .ic{width:16px;height:16px;color:var(--excel)}
.float.a{right:-8px;top:40px}.float.b{left:-8px;bottom:70px}

/* Section chung */
.sec{padding:64px 0}
.sec.alt{background:color-mix(in oklab,var(--muted) 45%,transparent)}
.eyebrow{margin:0 0 10px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.h2{margin:0;text-align:center;font-size:30px;line-height:1.15;font-weight:800;letter-spacing:-.025em}
.sub{margin:12px auto 0;max-width:40rem;text-align:center;color:var(--muted-foreground)}
.grid{display:grid;gap:16px;margin-top:36px}
.card{border:1px solid var(--border);border-radius:10px;background:var(--card);padding:22px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.card h3{margin:14px 0 6px;font-size:17px;font-weight:700}
.card p{margin:0;font-size:14px;color:var(--muted-foreground)}
.icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:var(--accent);color:var(--primary)}
.icon .ic{width:22px;height:22px}

/* Môn thi */
.exam{overflow:hidden;padding:0}
.exam__head{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border)}
.exam__head img{width:44px;height:44px}
.exam__head h3{margin:0;font-size:18px;font-weight:700}
.tags{display:flex;gap:6px;margin-top:4px}
.tag{padding:2px 8px;border-radius:6px;border:1px solid var(--border);font-size:12px;font-weight:600;color:var(--muted-foreground)}
.exam.word .exam__head{background:color-mix(in oklab,var(--word) 8%,var(--card))}
.exam.excel .exam__head{background:color-mix(in oklab,var(--excel) 8%,var(--card))}
.exam.ppt .exam__head{background:color-mix(in oklab,var(--ppt) 8%,var(--card))}
.exam__body{padding:16px 20px 20px}
.exam__label{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-foreground)}
.exam ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px}
.exam li{display:flex;align-items:center;gap:10px}
.exam li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--primary)}
.exam.word li::before{background:var(--word)}.exam.excel li::before{background:var(--excel)}.exam.ppt li::before{background:var(--ppt)}
.exam__foot{margin-top:16px;font-size:13px;color:var(--muted-foreground)}

/* Cách tham gia */
.steps{counter-reset:s;display:grid;gap:16px;margin-top:36px}
.step{position:relative;padding:22px 22px 22px 70px;border:1px solid var(--border);border-radius:10px;background:var(--card)}
.step::before{counter-increment:s;content:counter(s);position:absolute;left:20px;top:20px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--primary);color:var(--primary-foreground);font-weight:800}
.step h3{margin:0 0 6px;font-size:16px;font-weight:700}
.step p{margin:0;font-size:14px;color:var(--muted-foreground)}
.roles{display:grid;gap:16px;margin-top:36px}
.role{border:1px solid var(--border);border-radius:10px;background:var(--card);padding:22px}
.role h3{margin:0 0 10px;font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}
.role ul{margin:0;padding-left:18px;font-size:14px;color:var(--muted-foreground);display:grid;gap:6px}

/* Tải app */
.dl{display:grid;gap:24px;align-items:center}
.dl__box{border:1px dashed color-mix(in oklab,var(--primary) 50%,transparent);border-radius:12px;background:var(--accent);padding:28px;text-align:center}
.dl__box .ic{width:40px;height:40px;margin:0 auto 12px;color:var(--primary)}
.dl__box b{display:block;font-size:18px;font-weight:800}
.dl__box small{display:block;margin:6px 0 16px;color:var(--muted-foreground)}

/* FAQ */
.faq{margin-top:32px;display:grid;gap:10px}
.faq details{border:1px solid var(--border);border-radius:10px;background:var(--card);padding:0 18px}
.faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;font-weight:600;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{transition:transform .2s;color:var(--muted-foreground)}
.faq details[open] summary .ic{transform:rotate(180deg)}
.faq details p{margin:0;padding:0 0 16px;font-size:14px;color:var(--muted-foreground)}

/* CTA cuối */
.cta-box{margin:0 auto;max-width:48rem;text-align:center;padding:44px 24px;border-radius:16px;background:linear-gradient(135deg,color-mix(in oklab,var(--primary) 92%,black),var(--primary));color:#fff}
.cta-box h2{margin:0 0 8px;font-size:28px;font-weight:800;letter-spacing:-.02em}
.cta-box p{margin:0 0 20px;opacity:.9}
.cta-box .btn{background:#fff;color:#8a3f12}

/* Footer */
.ft{border-top:1px solid var(--border);padding:40px 0 28px;font-size:14px;color:var(--muted-foreground)}
.ft__grid{display:grid;gap:28px}
.ft h4{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--foreground)}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ft a:hover{color:var(--foreground)}
.ft__bottom{margin-top:28px;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:13px}
.online{display:inline-flex;align-items:center;gap:6px}
.online i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.2)}

@media (min-width:640px){
  .wrap{padding:0 24px}
  .h1{font-size:48px}
  .stats{grid-template-columns:repeat(4,1fr)}
  .stat:nth-child(-n+2){border-bottom:0}.stat:nth-child(odd){border-right:0}.stat+.stat{border-left:1px solid var(--border)}
  .grid.c2{grid-template-columns:repeat(2,1fr)}
  .roles{grid-template-columns:repeat(2,1fr)}
  .ft__grid{grid-template-columns:2fr 1fr 1fr 1fr}
}
@media (min-width:1024px){
  .nav{display:flex}.hd .btn-ghost{display:inline-flex}.burger{display:none}
  .hero{padding:80px 0 56px}
  .hero__grid{grid-template-columns:1.05fr .95fr}
  .h1{font-size:50px;max-width:14ch}
  .grid.c4{grid-template-columns:repeat(4,1fr)}
  .grid.c3{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(3,1fr)}
  .dl{grid-template-columns:1.2fr .8fr}
  .sec{padding:88px 0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
