:root{
  --ink:#10261f;--paper:#f6f4ec;--paper-2:#efece0;--line:#d9d4c4;
  --green:#1f6b4f;--green-d:#15503b;--amber:#d98a2b;--red:#c0392b;--blue:#356195;--blue-d:#244c7a;
  --muted:#6b6f68;--card:#fffdf8;--wa:#25d366;
  --shadow:0 1px 2px rgba(16,38,31,.06),0 8px 24px rgba(16,38,31,.07);--radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Inter',system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,.display{font-family:'Sora',sans-serif;letter-spacing:0}
.mono{font-family:'JetBrains Mono',monospace}
a{color:var(--green);text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
img{max-width:100%;height:auto}

/* top promo strip (academy) */
.promo-strip{background:var(--ink);color:var(--paper);font-size:13px}
.promo-strip .wrap{display:flex;align-items:center;gap:14px;height:38px;justify-content:center;flex-wrap:wrap}
.promo-strip b{color:#ffd9a8}
.promo-strip a{color:var(--wa);font-weight:700}
.promo-strip .msme{color:#9fb3a8;font-size:11px}
@media(max-width:620px){.promo-strip .msme{display:none}}

/* header */
header.bar{position:sticky;top:0;z-index:50;background:rgba(53,97,149,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.16);min-height:62px}
.bar .wrap{display:flex;align-items:center;gap:16px;height:62px}
.logo{display:flex;align-items:center;gap:10px;font-family:'Sora';font-weight:800;font-size:18px;color:#fff}
.logo img{width:34px;height:34px;border-radius:8px}
nav.top{margin-left:auto;display:flex;gap:3px;align-items:center;flex-wrap:nowrap;white-space:nowrap}
nav.top a,nav.top button{font-size:13px;font-weight:600;color:#eef6ff;padding:7px 8px;border-radius:8px}
nav.top a:hover,nav.top button:hover{background:rgba(255,255,255,.14);color:#fff}
nav.top a.active{color:#fff;background:rgba(255,255,255,.16)}
nav.top .account-link{font-weight:800}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;padding:12px 20px;border-radius:10px;transition:.15s}
.btn.primary{background:var(--ink);color:var(--paper)}
.btn.primary:hover{background:var(--green-d)}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.btn.ghost:hover{border-color:var(--ink)}
.btn.wa{background:var(--wa);color:#063}
.btn.wa:hover{filter:brightness(1.05)}
.btn.sm{padding:9px 15px;font-size:14px}

/* hero */
.hero{padding:46px 0 26px;border-bottom:1px solid var(--line)}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:14px}
.hero h1{font-size:clamp(28px,5vw,50px);font-weight:800;line-height:1.05;max-width:20ch}
.hero h1 em{font-style:normal;color:var(--green);position:relative}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:8px;background:rgba(217,138,43,.32);z-index:-1}
.hero p.sub{font-size:18px;color:var(--muted);max-width:72ch;margin-top:16px;text-align:justify}
.cta-row{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.quick-tests{display:flex;align-items:center;gap:10px;margin-top:18px;flex-wrap:wrap;font-size:14px}
.quick-tests span{color:var(--muted);font-weight:600}
.quick-tests a{font-weight:600;border:1.5px solid var(--line);padding:5px 12px;border-radius:20px;color:var(--ink)}
.quick-tests a:hover{border-color:var(--green);color:var(--green)}

/* ad slot */
.ad-slot{min-height:280px;display:block;margin:0 auto;text-align:center;overflow:hidden;max-width:100%;contain:layout paint;content-visibility:auto;contain-intrinsic-size:970px 280px}
.ad-wrap{margin:26px auto;max-width:970px;overflow:hidden;min-height:300px;contain:layout paint}
.ad-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#b4af9f;text-align:center;margin-bottom:4px}

/* features showcase band */
.features-band{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.feature-pill{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;transition:.16s;text-decoration:none}
.feature-pill:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--green)}
.feature-pill .fp-ic{font-size:28px}
.feature-pill h3{font-size:18px;font-weight:700;color:var(--ink)}
.feature-pill p{font-size:14px;color:var(--muted);flex:1}
.feature-pill .fp-link{font-size:14px;font-weight:700;color:var(--green)}
@media(max-width:760px){.features-band{grid-template-columns:1fr}}
.util-start{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;text-align:center}

/* "why practise here" benefit cards */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.testi-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:10px}
.testi-check{width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px}
.testi-headline{font-size:17px;font-weight:700;color:var(--ink)}
.testi-text{font-size:14px;color:var(--muted);flex:1;line-height:1.55}
.testi-tag{font-size:12px;font-weight:600;color:var(--green);background:rgba(31,107,79,.08);padding:4px 10px;border-radius:6px;align-self:flex-start}
@media(max-width:760px){.testi-grid{grid-template-columns:1fr}}

/* blog / guides tile grid */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.blog-tile{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;text-decoration:none;transition:.16s}
.blog-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--green)}
.blog-tile.featured{grid-column:span 3;flex-direction:row;align-items:center;gap:24px;background:linear-gradient(135deg,#15503b,#1f6b4f);border:none}
.blog-tile.featured h3,.blog-tile.featured p{color:#fff}
.blog-tile.featured .blog-cat{background:rgba(255,255,255,.18);color:#fff}
.blog-tile.featured .blog-read{color:#ffd9a8}
.blog-tile.featured .blog-date,.blog-tile.featured .blog-facts{color:#cfe3da}
.blog-tile.featured > *{flex:1}
.blog-tile-top{display:flex;align-items:center;gap:8px}
.blog-cat{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--green);background:rgba(31,107,79,.1);padding:3px 8px;border-radius:6px}
.blog-new{font-size:10px;font-weight:800;letter-spacing:.05em;color:#fff;background:var(--amber);padding:3px 7px;border-radius:6px}
.blog-tile h3{font-size:17px;font-weight:700;color:var(--ink)}
.blog-tile.featured h3{font-size:22px}
.blog-tile p{font-size:13px;color:var(--muted);flex:1;line-height:1.5}
.blog-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;border-top:1px solid var(--line);padding-top:10px}
.blog-tile.featured .blog-meta{border-color:rgba(255,255,255,.2)}
.blog-facts{font-family:'JetBrains Mono';font-weight:600;color:var(--green)}
.blog-tile.featured .blog-facts{color:#ffd9a8}
.blog-date{color:var(--muted)}
.blog-read{font-size:14px;font-weight:700;color:var(--green)}
@media(max-width:760px){.blog-grid{grid-template-columns:1fr}.blog-tile.featured{grid-column:span 1;flex-direction:column;align-items:flex-start}}

/* sections */
section{padding:56px 0}
.sec-head{display:flex;align-items:baseline;gap:14px;margin-bottom:26px;padding-top:44px;border-top:1px solid var(--line)}
.sec-head .n{font-family:'JetBrains Mono';font-size:13px;color:var(--amber);font-weight:700}
.sec-head h2{font-size:26px;font-weight:700}
.sec-head p{color:var(--muted);font-size:15px;margin-left:auto;max-width:40ch;text-align:right}
@media(max-width:720px){.sec-head p{display:none}}

/* exam grid */
.exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.exam-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px;transition:.16s;cursor:pointer}
.exam-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--green)}
.exam-card .tag{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);align-self:flex-start;background:rgba(31,107,79,.1);padding:3px 8px;border-radius:6px}
.exam-card h3{font-size:17px;font-weight:700}
.exam-card .desc{font-size:13px;color:var(--muted);flex:1}
.exam-card .meta{display:flex;gap:14px;font-size:12px;font-weight:600;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
.exam-card .meta b{color:var(--green);display:block;font-size:15px;font-family:'JetBrains Mono'}
.exam-card .meta span{font-weight:500;color:var(--muted);font-size:11px}
.card-guide{font-size:13px;font-weight:700;color:var(--blue);margin-top:6px}
.exam-card.exam-tile{align-items:center;text-align:center;padding:22px 18px;min-height:330px}
.exam-logo-wrap{height:82px;width:100%;display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.exam-logo-wrap img{max-width:86px;max-height:78px;object-fit:contain}
.exam-tile .tag{align-self:center}
.exam-tile h3{min-height:42px;display:flex;align-items:center;justify-content:center;text-align:center}
.exam-tile .desc{text-align:center}
.exam-tile .meta{width:100%;justify-content:center}
.practice-now{width:min(210px,100%);background:#1476ff;color:#fff;border-radius:28px;padding:11px 18px;font-size:15px;font-weight:800;margin-top:8px;box-shadow:0 6px 14px rgba(20,118,255,.18)}
.practice-now:hover{background:#075dd0}

/* tips/cards */
.tips{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.tip{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
.tip .ic{font-size:22px;margin-bottom:8px}
.tip h3{font-size:16px;margin-bottom:6px}
.tip p{font-size:14px;color:var(--muted);text-align:justify}

/* ===== article (exam pages) ===== */
.breadcrumb{font-size:13px;color:var(--muted);padding:18px 0 0}
.breadcrumb a{color:var(--green)}
.article{padding:18px 0 10px}
.article-head .tag{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--green);background:rgba(31,107,79,.1);padding:4px 10px;border-radius:6px}
.article-head h1{font-size:clamp(26px,4vw,38px);font-weight:800;margin:14px 0 10px;line-height:1.1}
.article-head .lede{font-size:18px;color:var(--muted);max-width:72ch;text-align:justify}
.article-head .meta{font-size:13px;color:var(--muted);margin-top:12px}
.keyfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:24px 0}
.keyfacts div{background:var(--card);padding:16px 14px;text-align:center}
.keyfacts .kf-v{font-family:'JetBrains Mono';font-size:22px;font-weight:700;color:var(--green-d)}
.keyfacts .kf-k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:4px}
.prose{max-width:none}
.prose h2{font-size:24px;margin:34px 0 12px;font-weight:700;scroll-margin-top:80px}
.prose h3{font-size:18px;margin:22px 0 8px;font-weight:700}
.prose p{margin-bottom:14px;font-size:16px;text-align:justify}
.prose ul,.prose ol{margin:0 0 16px 22px}
.prose li{margin-bottom:7px;font-size:16px}
.prose strong{font-weight:700}
.prose table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px}
.prose th,.prose td{border:1px solid var(--line);padding:9px 11px;text-align:left}
.prose th{background:var(--ink);color:var(--paper);font-weight:600;font-size:13px}
.prose tr:nth-child(even) td{background:var(--card)}
.prose .callout{background:rgba(43,94,140,.07);border-left:3px solid var(--blue);border-radius:0 8px 8px 0;padding:14px 16px;margin:18px 0;font-size:15px}
.prose .callout.warn{background:rgba(192,57,43,.06);border-color:var(--red)}
.practice-cta{background:var(--ink);color:var(--paper);border-radius:16px;padding:26px;text-align:center;margin:30px 0}
.practice-cta h3{color:var(--paper);font-size:22px;margin-bottom:8px}
.practice-cta p{color:#b9c4bd;margin-bottom:16px;font-size:15px}
.faq-item{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:var(--card);overflow:hidden}
.faq-item summary{padding:14px 16px;font-weight:600;cursor:pointer;font-size:16px;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";float:right;color:var(--green);font-weight:700}
.faq-item[open] summary::after{content:"–"}
.faq-item .a{padding:0 16px 14px;color:var(--muted);font-size:15px}
.related{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.related a{font-size:14px;font-weight:600;border:1.5px solid var(--line);padding:8px 14px;border-radius:20px;color:var(--ink)}
.related a:hover{border-color:var(--green);color:var(--green)}

/* ===== academy section ===== */
.academy{background:linear-gradient(135deg,#15503b,#1f6b4f);color:var(--paper);border-radius:20px;padding:32px;margin:10px 0;display:grid;grid-template-columns:1.4fr 1fr;gap:26px;align-items:center}
.academy h2{color:var(--paper);font-size:26px;margin-bottom:10px}
.academy p{color:#d6e7df;font-size:15px;margin-bottom:8px}
.academy .badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);border-radius:30px;padding:5px 12px;font-size:12px;font-weight:600;margin-bottom:14px}
.academy .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.academy .msme{font-size:11px;color:#a9c6ba;margin-top:14px}
.academy-card{background:rgba(255,255,255,.96);border-radius:14px;padding:22px;color:var(--ink);text-align:center}
.academy-card .ac-logo{width:54px;height:54px;border-radius:12px;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:'Sora';font-weight:800;font-size:22px;margin:0 auto 12px}
.academy-card .ac-logo-img{width:84px;height:84px;border-radius:50%;object-fit:cover;margin:0 auto 12px;display:block;box-shadow:0 2px 10px rgba(0,0,0,.12);border:2px solid #fff}
.academy-card h3{font-size:18px;margin-bottom:4px}
.academy-card p{color:var(--muted);font-size:13px;margin-bottom:14px}
.academy-card .wa-num{font-family:'JetBrains Mono';font-weight:700;font-size:17px;color:var(--green-d);margin-bottom:12px}
@media(max-width:680px){.academy{grid-template-columns:1fr;padding:24px}}

/* footer */
footer{background:var(--ink);color:var(--paper);padding:44px 0 26px;margin-top:30px}
footer .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.2fr;gap:26px}
footer h4{font-family:'Sora';font-size:15px;margin-bottom:12px;color:var(--paper)}
footer a,footer p{color:#b9c4bd;font-size:14px;display:block;margin-bottom:7px}
footer a:hover{color:var(--paper)}
footer .foot-logo{display:flex;align-items:center;gap:9px;margin-bottom:10px}
footer .foot-logo img{width:30px;height:30px;border-radius:7px}
footer .foot-logo span{font-family:'Sora';font-weight:800;color:var(--paper)}
footer .fine{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;font-size:12px;color:#8a978f}
footer .msme-line{color:#ffd9a8;font-weight:600}
@media(max-width:820px){footer .cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){footer .cols{grid-template-columns:1fr}}

main>section.wrap:not(:first-of-type),body>section.wrap:not(:first-of-type){
  content-visibility:auto;
  contain-intrinsic-size:auto 560px;
}

/* floating whatsapp */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:60;background:var(--wa);color:#fff;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;box-shadow:0 6px 20px rgba(37,211,102,.5);font-size:28px;transition:.15s}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:30px;height:30px;fill:#fff}

/* ===== practice modal ===== */
.overlay{position:fixed;inset:0;background:rgba(16,38,31,.55);backdrop-filter:blur(3px);z-index:100;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 14px}
.overlay.open{display:flex}
.modal{background:var(--paper);width:100%;max-width:920px;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.3);overflow:hidden;margin:auto}
.modal-head{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);background:var(--card)}
.modal-head .tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--green);background:rgba(31,107,79,.1);padding:3px 8px;border-radius:6px}
.modal-head h3{font-size:18px;font-weight:700;flex:1}
.modal-head .x{font-size:24px;color:var(--muted);width:36px;height:36px;border-radius:8px;line-height:1}
.modal-head .x:hover{background:var(--paper-2);color:var(--ink)}
.modal-body{padding:22px}
.cfg{display:flex;flex-direction:column;gap:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0;margin-bottom:16px;overflow:hidden}
.cfg-row{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;padding:13px 16px;border-bottom:1px solid var(--line)}
.cfg-row-last{border-bottom:none}
.cfg .grp{display:flex;flex-direction:column;gap:5px}
.cfg .grp-wide{flex:1}
.cfg .grp-grow{flex:1;min-width:200px}
.cfg .grp-grow select{width:100%}
.cfg .grp-paper{margin-left:auto}
.cfg label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.cfg select{font-family:inherit;font-size:14px;font-weight:600;padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}
.candidate-input{font-family:inherit;font-size:14px;font-weight:700;padding:9px 11px;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);min-width:220px}
.candidate-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,79,.1)}
.exam-lang-grp{min-width:180px}
.exam-lang-grp select{min-height:42px}
.official-exam-notice{display:flex;gap:10px;align-items:center;padding:12px 16px;background:#eef8f2;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink)}
.official-exam-notice b{color:var(--green-d)}
.official-exam-notice span{color:var(--muted)}
.setup-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;padding:14px 16px;background:var(--paper);border-top:1px solid var(--line)}
.govt-hidden-setting{display:none!important}
.govt-locked .candidate-grp,.govt-locked .exam-lang-grp{display:flex!important}
.mode-quick .cfg::after,.mode-speed .cfg::after{
  display:block;padding:10px 16px;border-top:1px solid var(--line);
  font-size:13px;font-weight:700;color:var(--blue-d);background:#f5f8fc
}
.mode-quick .cfg::after{content:"Quick mode: 1 minute, choose language, enter your name, and start."}
.mode-speed .cfg::after{content:"Speed mode: focused WPM benchmark with a 2 minute default."}
.mode-hint{font-size:11px;color:var(--muted);margin-top:5px;text-transform:none;letter-spacing:0;font-weight:500}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:13px;font-weight:600;padding:7px 12px;border:1.5px solid var(--line);border-radius:20px;color:var(--muted);background:var(--paper)}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.toggles{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.tgl{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink);border:1.5px solid var(--line);padding:7px 11px;border-radius:8px;background:var(--paper);user-select:none}
.tgl input{accent-color:var(--green);width:15px;height:15px}
.tgl.locked{opacity:.5;cursor:not-allowed}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;text-align:center}
.stat .v{font-family:'JetBrains Mono';font-size:24px;font-weight:700;color:var(--ink)}
.stat .v.live{color:var(--green)}
.stat .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;margin-top:2px}
@media(max-width:620px){.stats{grid-template-columns:repeat(3,1fr)}}
.passage{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;font-size:19px;line-height:1.95;font-family:'JetBrains Mono';letter-spacing:.2px;max-height:220px;overflow-y:auto;margin-bottom:14px;white-space:pre-wrap;word-break:break-word}
.passage .w{border-radius:3px;padding:1px 0}
.passage .w.cur{background:rgba(217,138,43,.28);box-shadow:0 0 0 2px rgba(217,138,43,.28)}
.passage .w.ok{color:var(--green)}
.passage .w.bad{color:var(--red);background:rgba(192,57,43,.1)}
#inputArea{width:100%;min-height:120px;font-family:'JetBrains Mono';font-size:18px;line-height:1.8;padding:16px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);resize:vertical}
#inputArea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,79,.12)}
#inputArea:disabled{background:var(--paper-2);color:var(--muted)}
.run-row{display:flex;gap:10px;margin-top:14px;align-items:center;flex-wrap:wrap}
.hint{font-size:12px;color:var(--muted);margin-left:auto}
.exam-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;background:#356195;color:#fff;padding:14px 18px;margin:-22px -22px 18px;border-bottom:5px solid #c8c8c8;font-family:Georgia,serif}
.exam-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.exam-lang-title{font-size:25px;font-weight:800;margin-right:4px}
.exam-tools button{background:#fff;color:#111;border:1px solid #bcbcbc;border-radius:4px;padding:6px 10px;font-size:17px;font-weight:800;box-shadow:0 1px 0 rgba(0,0,0,.4);cursor:pointer}
.exam-candidate{display:flex;align-items:center;justify-content:center;gap:10px;font-size:18px;font-weight:800;white-space:nowrap}
.exam-candidate b{color:#fff06a}
.exam-medal{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#f7f7f7;color:#222;border:2px solid rgba(255,255,255,.75);font-size:28px}
.exam-time{text-align:right;font-size:31px;font-weight:900;white-space:nowrap}
.practice-setup .stats,.practice-setup #typingZone,.practice-setup #resultZone,.practice-setup #examTopbar{display:none!important}
.practice-result .cfg-shell,.practice-result #reqLine,.practice-result .stats,.practice-result #typingZone,.practice-result #examTopbar{display:none!important}
.practice-actual{padding:0;background:#eee;backdrop-filter:none}
.practice-actual .modal{max-width:none;min-height:100vh;border-radius:0;box-shadow:none;background:#eee}
.practice-actual .modal-head{display:none}
.practice-actual .modal-body{padding:22px 18px 34px}
.practice-actual .cfg-shell,.practice-actual #reqLine{display:none!important}
.practice-actual .stats{max-width:980px;margin:0 auto 14px;opacity:.94}
.practice-actual #typingZone{max-width:none}
.practice-actual .passage{background:#fff;border:2px solid #777;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.2);font-family:Georgia,'Times New Roman',serif;font-size:var(--exam-font,24px);line-height:1.55;max-height:34vh;margin:0 0 22px;padding:18px;letter-spacing:0;color:#111}
.practice-actual #inputArea{background:#c9ff97;border:2px solid #6c6c6c;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.22);font-family:Georgia,'Times New Roman',serif;font-size:var(--exam-font,24px);line-height:1.65;min-height:230px;color:#111}
.practice-actual #inputArea::placeholder{color:#6b7280}
.practice-actual .run-row{justify-content:center;margin-top:26px}
.practice-actual .run-row .btn.primary{background:#eee;color:#111;border:2px solid #555;border-bottom:5px solid #333;border-radius:6px;font-size:18px;text-transform:uppercase;min-width:250px}
.practice-actual .run-row .btn.ghost{display:none}
.practice-actual .hint{width:100%;text-align:center;margin:8px 0 0;color:#555}
.exam-back-btn{display:none}
.practice-actual .exam-back-btn{position:fixed;right:18px;bottom:18px;z-index:120;display:inline-flex;align-items:center;justify-content:center;min-width:148px;min-height:44px;padding:10px 16px;border-radius:8px;background:#244c7a;color:#fff;font-weight:800;box-shadow:0 8px 22px rgba(0,0,0,.22)}
.practice-actual .exam-back-btn:hover{background:#163c65}
body.typing-active .promo-rail,body.typing-active .wa-float,body.typing-active .chan-pop-ov,body.typing-active .ad-wrap{display:none!important}
.result{text-align:center;padding:10px 0}
.verdict{display:inline-flex;align-items:center;gap:10px;font-family:'Sora';font-weight:800;font-size:24px;padding:12px 28px;border-radius:50px;margin-bottom:8px}
.verdict.pass{background:rgba(31,107,79,.13);color:var(--green-d)}
.verdict.fail{background:rgba(192,57,43,.12);color:var(--red)}
#reasonLine{font-size:14px;color:var(--muted);margin-bottom:16px}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:560px;margin:0 auto 18px}
.rgrid .stat .v{font-size:22px}
@media(max-width:560px){.rgrid{grid-template-columns:repeat(2,1fr)}}
.namebar{display:flex;gap:10px;align-items:center;justify-content:center;margin-bottom:16px;flex-wrap:wrap}
.namebar input{font-family:inherit;font-size:15px;padding:10px 14px;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);min-width:240px}
.namebar input:focus{outline:none;border-color:var(--green)}
.result-cert-promo{display:grid;grid-template-columns:1.3fr .8fr;gap:18px;align-items:center;max-width:720px;margin:18px auto;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-align:left}
.result-cert-promo .tag{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--green-d);background:rgba(31,107,79,.1);padding:4px 8px;border-radius:6px;margin-bottom:8px}
.result-cert-promo h3{font-size:19px;margin:0 0 6px}
.result-cert-promo p{font-size:14px;color:var(--muted);line-height:1.55;margin:0}
.result-cert-promo img{width:100%;border-radius:8px;border:1px solid var(--line);background:#fff}
@media(max-width:700px){.result-cert-promo{grid-template-columns:1fr}.exam-topbar{grid-template-columns:1fr;gap:10px;text-align:center}.exam-tools,.exam-candidate{justify-content:center}.exam-time{text-align:center;font-size:25px}.exam-lang-title{width:100%;font-size:22px}.practice-actual .passage,.practice-actual #inputArea{font-size:20px}}
#certArea{margin:18px auto 0;max-width:720px}
.certificate{background:#fffdf6;border:2px solid var(--green-d);border-radius:8px;padding:34px 40px;position:relative;box-shadow:var(--shadow)}
.certificate::before{content:"";position:absolute;inset:8px;border:1px solid var(--green);border-radius:4px;pointer-events:none}
.cert-top{text-align:center;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}
.cert-top .brand{font-family:'Sora';font-weight:800;font-size:15px;letter-spacing:.04em;color:var(--green-d)}
.cert-top h2{font-size:27px;font-weight:800;margin:8px 0 2px;font-family:'Sora'}
.cert-top .sub{font-size:13px;color:var(--muted)}
.cert-namewrap{text-align:center;margin-bottom:18px}
.cert-name{font-family:'Sora';font-size:26px;font-weight:700;color:var(--ink);margin:6px 0 4px;border-bottom:1px dashed var(--line);display:inline-block;padding:0 24px 4px}
.cert-line{text-align:center;font-size:14px;color:var(--muted);margin-bottom:20px}
.cert-line b{color:var(--ink)}
.cert-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.cert-stats div{background:#fffdf6;padding:14px 8px;text-align:center}
.cert-stats .cv{font-family:'JetBrains Mono';font-size:21px;font-weight:700;color:var(--green-d)}
.cert-stats .ck{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:3px}
.cert-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:22px;font-size:12px;color:var(--muted)}
.cert-foot .vstamp{font-family:'Sora';font-weight:800;font-size:16px;margin-top:4px}
.cert-foot .vstamp.pass{color:var(--green-d)}
.cert-foot .vstamp.fail{color:var(--red)}
.cert-seal{width:62px;height:62px;border-radius:50%;border:2px solid var(--green-d);display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--green-d);text-align:center;line-height:1.1;transform:rotate(-8deg)}
@media(max-width:560px){.cfg .toggles{margin-left:0}}
.hidden{display:none!important}

/* about section two-column */
.about-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:30px;align-items:start}
.about-grid .prose p{margin-bottom:14px}
.about-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:80px}
.about-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
.about-card.alt{background:linear-gradient(135deg,#15503b,#1f6b4f);border:none;color:var(--paper)}
.about-card h3{font-size:16px;font-weight:700;margin-bottom:12px}
.about-card.alt h3{color:var(--paper)}
.about-card a{display:block;font-size:14px;font-weight:600;color:var(--ink);padding:7px 0;border-bottom:1px solid var(--line)}
.about-card a:last-child{border-bottom:none}
.about-card a:hover{color:var(--green)}
.glance{list-style:none;margin:0 0 4px;display:flex;flex-direction:column;gap:9px}
.glance li{font-size:14px;color:#d6e7df}
.glance li b{font-family:'JetBrains Mono';font-size:18px;color:#fff;margin-right:6px}
@media(max-width:760px){.about-grid{grid-template-columns:1fr}.about-side{position:static}}

/* indic script font for Hindi/Punjabi practice */
.passage.indic,#inputArea.indic{font-family:'Noto Sans Devanagari','Noto Sans Gurmukhi','Noto Sans',system-ui,sans-serif;letter-spacing:0;font-size:20px;line-height:2}

/* certificate promo line */
.cert-promo{margin-top:16px;padding:12px 14px;border:1px dashed var(--green-d);border-radius:8px;background:rgba(31,107,79,.06);text-align:center;font-size:13px;color:var(--ink)}
.cert-promo b{color:var(--green-d)}

/* courses / study material */
.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.course-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:10px;position:relative}
.course-badge{position:absolute;top:-10px;left:18px;background:var(--amber);color:#3a2400;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;letter-spacing:.02em}
.course-card h3{font-size:19px;font-weight:700;margin-top:4px}
.course-desc{font-size:14px;color:var(--muted)}
.course-points{margin:2px 0 4px 18px;display:flex;flex-direction:column;gap:4px}
.course-points li{font-size:13px;color:var(--ink)}
.course-price{font-family:'Sora';font-weight:800;font-size:26px;color:var(--green-d);display:flex;align-items:baseline;gap:8px;margin-top:4px}
.course-price .mrp{font-size:15px;color:var(--muted);text-decoration:line-through;font-weight:600}
.course-price .off{font-size:12px;font-weight:700;color:var(--amber);background:rgba(217,138,43,.12);padding:2px 8px;border-radius:6px}
.course-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}

/* certificate lead-gen CTA (below cert, not in downloaded image) */
.cert-promo-box{margin-top:18px;background:linear-gradient(135deg,#15503b,#1f6b4f);border-radius:16px;padding:22px 24px;text-align:center;color:#fff}
.cert-cta-badge{display:inline-block;background:rgba(255,255,255,.16);color:#fff;font-size:12px;font-weight:700;padding:6px 14px;border-radius:20px;margin-bottom:12px}
.cert-promo-box h3{color:#fff;font-size:20px;font-weight:800;margin-bottom:8px}
.cert-promo-box h3 b{color:#ffd9a8}
.cert-promo-box p{color:#e2efe9;font-size:14px;line-height:1.55;max-width:60ch;margin:0 auto 16px}
.cert-promo-box p b{color:#fff}
.cert-promo-box .btn.wa{background:#25D366;color:#062e16;font-weight:700;font-size:15px}
.cert-promo-box .btn.wa:hover{background:#1ebe5a}

/* inline course promo (exam pages) */
.inline-course-promo{width:calc(100% - 40px);max-width:1080px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:0 14px 14px 0;padding:18px 20px;margin:26px auto}
.icp-badge{display:inline-block;font-size:11px;font-weight:700;color:var(--amber);background:rgba(217,138,43,.1);padding:4px 10px;border-radius:6px;margin-bottom:10px}
.inline-course-promo h4{font-size:17px;font-weight:700;margin-bottom:6px}
.inline-course-promo p{font-size:14px;color:var(--muted);margin-bottom:12px}
.icp-links{display:flex;flex-wrap:wrap;gap:10px}
.icp-links a{font-size:13px;font-weight:600;color:var(--green);border:1.5px solid var(--line);padding:7px 13px;border-radius:8px}
.icp-links a:hover{border-color:var(--green);background:rgba(31,107,79,.06)}

/* certificate course cross-links */
.cert-courses{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.2)}
.cc-title{font-size:12px;color:#cfe3da;margin-bottom:8px}
.cc-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.cc-links a{font-size:12px;font-weight:600;color:#fff;background:rgba(255,255,255,.14);padding:6px 12px;border-radius:16px}
.cc-links a:hover{background:rgba(255,255,255,.24)}

/* ===== 3-column layout with promo sidebars ===== */
.layout-3col{display:grid;grid-template-columns:230px minmax(0,1fr) 240px;gap:24px;align-items:start}
.layout-3col .col-main{min-width:0}
.rail{display:flex;flex-direction:column;gap:14px;position:sticky;top:80px}
.rail-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.rail-card h4{font-size:15px;font-weight:700;margin-bottom:6px;line-height:1.3}
.rail-sub{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:10px}
.rail-badge{font-size:10px;font-weight:700;color:var(--amber);background:rgba(217,138,43,.1);padding:4px 8px;border-radius:6px;margin-bottom:10px;display:inline-block;line-height:1.3}
.rail-course{display:block;border:1px solid var(--line);border-radius:9px;padding:9px 11px;margin-bottom:8px;transition:.14s}
.rail-course:last-child{margin-bottom:0}
.rail-course:hover{border-color:var(--green);background:rgba(31,107,79,.05)}
.rail-course b{display:block;font-size:13px;color:var(--ink);font-weight:700}
.rail-course span{display:block;font-size:11px;color:var(--muted);margin-top:1px}
.rail-btn{display:block;text-align:center;font-size:13px;font-weight:700;padding:10px;border-radius:9px;margin-top:4px}
.rail-btn.wa{background:#25D366;color:#062e16}
.rail-btn.wa:hover{background:#1ebe5a}
.rail-cert{background:linear-gradient(135deg,#15503b,#1f6b4f);border:none;color:#fff}
.rail-cert h4,.rail-channel h4{color:#fff}
.rail-cert .rail-sub{color:#d6e7df}
.rail-cert-ic{font-size:26px;margin-bottom:6px}
.rail-query{text-align:left}
/* right rail — whatsapp channel */
.rail-channel{background:linear-gradient(160deg,#0b3d2e,#12633f);border:none;color:#fff}
.rc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rc-logo{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center;font-size:20px}
.rc-live{font-size:10px;font-weight:800;letter-spacing:.05em;background:#25D366;color:#062e16;padding:3px 9px;border-radius:20px}
.rail-channel .rail-sub{color:#cfe3da}
.rc-points{list-style:none;margin:10px 0;display:flex;flex-direction:column;gap:6px}
.rc-points li{font-size:12px;color:#eaf3ef;padding-left:18px;position:relative}
.rc-points li::before{content:"✓";position:absolute;left:0;color:#4ade80;font-weight:700}
.rail-btn.channel{background:#fff;color:#0b3d2e}
.rail-btn.channel:hover{background:#eafff4}
.rc-foot{font-size:10px;color:#9fc4b3;text-align:center;margin-top:8px}
/* responsive: collapse rails on smaller screens */
@media(max-width:1100px) and (min-width:821px){
  .layout-3col{grid-template-columns:minmax(0,1fr) 240px}
  .rail-left{display:none}
}
@media(max-width:820px){
  .layout-3col{grid-template-columns:1fr}
  .rail{position:static;flex-direction:row;flex-wrap:wrap;width:100%}
  .rail-left{order:2}
  .rail-right{order:3}
  .rail-card{flex:1;min-width:240px}
}

/* homepage promo strip (courses + channel) */
.home-promo-strip{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.hps-panel{border-radius:16px;padding:24px}
.hps-courses{background:var(--card);border:1px solid var(--line)}
.hps-badge{display:inline-block;font-size:11px;font-weight:700;color:var(--amber);background:rgba(217,138,43,.1);padding:5px 11px;border-radius:20px;margin-bottom:12px}
.hps-courses h3{font-size:20px;font-weight:800;margin-bottom:8px}
.hps-courses p{font-size:14px;color:var(--muted);margin-bottom:14px;max-width:52ch}
.hps-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.hps-links a{font-size:13px;font-weight:600;color:var(--green);border:1.5px solid var(--line);padding:7px 13px;border-radius:8px}
.hps-links a:hover{border-color:var(--green);background:rgba(31,107,79,.06)}
.hps-btn{display:inline-block;font-size:14px;font-weight:700;padding:11px 18px;border-radius:9px;text-align:center}
.hps-btn.wa{background:#25D366;color:#062e16}
.hps-btn.wa:hover{background:#1ebe5a}
.hps-channel{background:linear-gradient(160deg,#0b3d2e,#12633f);color:#fff;display:flex;flex-direction:column}
.hps-chan-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.hps-chan-ic{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center;font-size:22px}
.hps-free{font-size:11px;font-weight:800;letter-spacing:.05em;background:#25D366;color:#062e16;padding:4px 11px;border-radius:20px}
.hps-channel h3{color:#fff;font-size:19px;font-weight:800;margin-bottom:8px}
.hps-channel p{color:#cfe3da;font-size:14px;margin-bottom:16px;flex:1}
.hps-btn.channel{background:#fff;color:#0b3d2e}
.hps-btn.channel:hover{background:#eafff4}
.hps-foot{font-size:11px;color:#9fc4b3;text-align:center;margin-top:10px}
@media(max-width:760px){.home-promo-strip{grid-template-columns:1fr}}

/* on-screen Hindi keyboard reference */
.hk-toggle{display:flex;gap:8px;margin-bottom:12px}
.hk-tab{font-size:13px;font-weight:700;padding:8px 16px;border:1.5px solid var(--line);border-radius:9px;background:var(--paper);color:var(--muted);cursor:pointer}
.hk-tab.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.hk-note{font-size:13px;color:var(--muted);margin-bottom:14px;max-width:75ch;line-height:1.55}
.hk-keyboard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:7px;overflow-x:auto}
.hk-row{display:flex;gap:7px;justify-content:center;min-width:max-content}
.hk-key{position:relative;width:52px;height:52px;border:1px solid var(--line);border-bottom-width:2px;border-radius:8px;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hk-key .hk-eng{position:absolute;top:3px;left:5px;font-size:9px;color:var(--muted);font-family:'JetBrains Mono'}
.hk-key .hk-shift{position:absolute;top:3px;right:5px;font-size:12px;color:var(--amber);font-family:'Noto Sans Devanagari'}
.hk-key .hk-base{font-size:18px;color:var(--ink);font-family:'Noto Sans Devanagari';font-weight:600;margin-top:6px}
.hk-key.hk-space{width:280px;font-size:12px;color:var(--muted);font-family:inherit}
.hk-legend{font-size:12px;color:var(--muted);margin-top:10px}
.hk-legend b{color:var(--ink)}
@media(max-width:640px){.hk-key{width:42px;height:44px}.hk-key .hk-base{font-size:15px}}

/* subnav bar (quick links to popular tests) */
.subnav{background:#244c7a;border-bottom:1px solid rgba(255,255,255,.12);position:sticky;top:0;z-index:40;min-height:45px}
.subnav-scroll{display:flex;align-items:center;gap:6px;padding:9px 0;overflow-x:auto;scrollbar-width:none;min-height:45px}
.subnav-scroll::-webkit-scrollbar{display:none}
.subnav-label{font-size:12px;font-weight:700;color:#cfe2f6;white-space:nowrap;margin-right:4px}
.subnav-scroll a{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;padding:5px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);transition:.14s}
.subnav-scroll a:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.18)}

/* ============================================================
   Floating promo side rails (desktop margins) + popup
   Content column is max 1080px. Rails live in the outside gap.
   ============================================================ */
.promo-rail{position:fixed;top:130px;width:186px;z-index:35;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 160px);overflow-y:auto;scrollbar-width:none}
.promo-rail::-webkit-scrollbar{display:none}
.promo-rail-left{left:20px}
.promo-rail-right{right:20px}
.pr-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.pr-badge{font-size:9px;font-weight:700;color:var(--amber);background:rgba(217,138,43,.1);padding:3px 7px;border-radius:5px;display:inline-block;margin-bottom:8px}
.pr-title{font-size:13px;font-weight:700;margin-bottom:8px;line-height:1.3}
.pr-sub{font-size:11px;color:var(--muted);line-height:1.45;margin-bottom:9px}
.pr-sub-light{color:#d6e7df}
.pr-link{display:block;font-size:12px;font-weight:600;color:var(--ink);padding:6px 8px;border-radius:7px;border:1px solid var(--line);margin-bottom:6px;background:var(--paper)}
.pr-link:last-child{margin-bottom:0}
.pr-link:hover{border-color:var(--green);color:var(--green)}
.pr-btn{display:block;text-align:center;font-size:12px;font-weight:700;padding:9px;border-radius:8px;margin-top:2px}
.pr-btn.wa{background:#25D366;color:#062e16}
.pr-btn.light{background:#fff;color:#0b3d2e}
.pr-btn.app{background:var(--ink);color:var(--paper)}
.pr-cert{background:linear-gradient(135deg,#15503b,#1f6b4f);border:none}
.pr-channel{background:linear-gradient(160deg,#0b3d2e,#12633f);border:none;position:relative}
.pr-free{position:absolute;top:10px;right:10px;font-size:9px;font-weight:800;background:#25D366;color:#062e16;padding:2px 7px;border-radius:12px}
.pr-social{display:flex;gap:6px;margin-top:8px}
.pr-social a{flex:1;text-align:center;font-size:11px;font-weight:600;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:5px 4px;background:var(--paper)}
.pr-social a:hover{border-color:var(--green);color:var(--green)}

/* Hide rails when the screen is too narrow to fit them beside the 1080px column
   without clipping. Both rails need ~1540px; right-only needs ~1330px. */
@media(max-width:1540px){ .promo-rail-left{display:none} }
@media(max-width:1330px){ .promo-rail-right{display:none} }
/* On smaller screens the rails are hidden; the existing inline promo strip
   and subnav already carry these links, so nothing is lost. */

/* ---------- WhatsApp channel popup ---------- */
.chan-pop-ov{position:fixed;inset:0;background:rgba(10,20,15,.55);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .2s}
.chan-pop-ov.show{opacity:1}
.chan-pop{background:linear-gradient(165deg,#0b3d2e,#12633f);color:#fff;border-radius:18px;padding:30px 26px;max-width:380px;width:100%;text-align:center;position:relative;transform:translateY(12px);transition:transform .2s}
.chan-pop-ov.show .chan-pop{transform:translateY(0)}
.chan-pop-x{position:absolute;top:12px;right:14px;background:none;border:none;color:rgba(255,255,255,.7);font-size:18px;cursor:pointer;line-height:1}
.chan-pop-ic{font-size:40px;margin-bottom:10px}
.chan-pop h3{color:#fff;font-size:21px;font-weight:800;margin-bottom:10px}
.chan-pop p{color:#cfe3da;font-size:14px;line-height:1.55;margin-bottom:20px}
.chan-pop-btn{display:block;background:#fff;color:#0b3d2e;font-weight:800;font-size:15px;padding:13px;border-radius:10px;margin-bottom:10px}
.chan-pop-btn:hover{background:#eafff4}
.chan-pop-later{background:none;border:none;color:rgba(255,255,255,.7);font-size:13px;cursor:pointer;text-decoration:underline}

/* original certificate sample + what-you-get list (in cert CTA) */
.cert-sample-row{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:center;margin:18px 0;text-align:left}
.cert-sample-img{background:rgba(255,255,255,.1);border-radius:12px;padding:10px}
.cert-sample-img img{width:100%;height:auto;aspect-ratio:900/636;border-radius:8px;display:block;box-shadow:0 4px 18px rgba(0,0,0,.25)}
.cert-sample-cap{font-size:11px;color:#cfe3da;text-align:center;margin-top:8px}
.cert-getlist{color:#fff}
.cgl-title{font-size:14px;font-weight:800;margin-bottom:10px;color:#ffd9a8}
.cert-getlist ul{list-style:none;margin:0;display:flex;flex-direction:column;gap:9px}
.cert-getlist li{font-size:13px;color:#eaf3ef;line-height:1.45;display:flex;gap:7px;align-items:flex-start}
.cert-getlist li b{color:#fff;font-weight:700}
.cert-getlist li span{flex-shrink:0}
@media(max-width:700px){.cert-sample-row{grid-template-columns:1fr}}

/* ad shown near the certificate download button (non-blocking) */
.cert-ad{margin:18px auto 4px;max-width:728px;min-height:100px}
.cert-ad .ad-slot{min-height:250px}

/* ===== paper-to-screen mode + practice levels ===== */
/* paper-to-screen: compact inline toggle inside the config rows */
.paper-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink);
  border:1.5px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 12px;white-space:nowrap;text-transform:none;letter-spacing:0}
.paper-toggle:hover{border-color:var(--green)}
.paper-toggle input{width:16px;height:16px;flex-shrink:0;cursor:pointer;accent-color:var(--green)}
.paper-toggle input:checked + span{color:var(--green)}
.paper-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;background:rgba(31,107,79,.05);border-top:1px solid var(--line)}
.paper-hint{font-size:12px;color:var(--muted);flex:1;min-width:200px}
.btn.sm{font-size:12px;padding:7px 12px}
/* hidden passage box while paper mode is active */
.passage.paper-hidden{background:repeating-linear-gradient(45deg,var(--card),var(--card) 10px,rgba(0,0,0,.02) 10px,rgba(0,0,0,.02) 20px);border-style:dashed}
.paper-msg{text-align:center;padding:22px 16px;font-family:'Inter',sans-serif}
.paper-ic{font-size:34px;margin-bottom:8px}
.paper-msg b{display:block;font-size:15px;color:var(--ink);margin-bottom:6px}
.paper-msg p{font-size:13px;color:var(--muted);max-width:52ch;margin:0 auto 12px;line-height:1.55}
/* QR overlay */
.qr-ov{position:fixed;inset:0;background:rgba(10,20,15,.6);z-index:210;display:flex;align-items:center;justify-content:center;padding:20px}
.qr-box{background:var(--paper);border-radius:16px;padding:26px;max-width:360px;text-align:center;position:relative}
.qr-x{position:absolute;top:10px;right:12px;background:none;border:none;font-size:18px;cursor:pointer;color:var(--muted)}
.qr-box h3{font-size:18px;font-weight:800;margin-bottom:8px}
.qr-box p{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:16px}
.qr-box img{border-radius:10px;border:1px solid var(--line)}
.qr-url{font-size:11px;color:var(--muted);margin-top:12px;word-break:break-all;font-family:'JetBrains Mono'}

/* PWA install button — pinned right so it never scrolls out of view */
.subnav .wrap{display:flex;align-items:center;gap:10px}
.subnav-scroll{flex:1;min-width:0}
.pwa-btn{flex-shrink:0;font-size:13px;font-weight:700;color:#244c7a;background:#fff;border:1px solid #fff;white-space:nowrap;padding:6px 14px;border-radius:20px;cursor:pointer;transition:.14s;box-shadow:0 1px 4px rgba(31,107,79,.2)}
.pwa-btn:hover{background:#eaf3ff;border-color:#eaf3ff}
@media(max-width:600px){.pwa-btn{font-size:12px;padding:5px 10px}}

/* practice config rows — stack neatly on mobile */
@media(max-width:700px){
  .cfg-row{gap:12px;padding:12px 13px}
  .cfg .grp-paper{margin-left:0;width:100%}
  .cfg .grp-grow{min-width:100%}
  .toggles{margin-left:0;width:100%}
  .paper-toggle{width:100%;justify-content:center}
}

/* ===== collapsible test settings ===== */
.cfg-shell{margin-bottom:14px}
.cfg-bar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 14px;
  font-family:inherit;font-size:13px;color:var(--ink);cursor:pointer;text-align:left;transition:.14s}
.cfg-bar:hover{border-color:var(--green)}
.cfg-bar-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.cfg-bar-left b{font-weight:700}
.cfg-summary{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.cfg-bar-right{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--green);white-space:nowrap;flex-shrink:0}
.cfg-caret{display:inline-block;transition:transform .18s}
/* when expanded: bar sits directly on top of the panel */
.cfg-shell:not(.collapsed) .cfg-bar{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}
.cfg-shell:not(.collapsed) .cfg{border-top-left-radius:0;border-top-right-radius:0;margin-bottom:0}
/* when collapsed: hide the panel, flip the caret */
.cfg-shell.collapsed .cfg{display:none}
.cfg-shell.collapsed .cfg-caret{transform:rotate(-90deg)}
@media(max-width:600px){ .cfg-summary{display:none} }

/* homepage certificate callout card */
.cert-callout{display:flex;align-items:center;gap:20px;background:linear-gradient(135deg,#12633f,#1a7d54);border-radius:16px;padding:24px 28px;color:#fff;transition:.16s;box-shadow:0 4px 20px rgba(18,99,63,.18)}
.cert-callout:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(18,99,63,.28)}
.cert-callout-ic{font-size:44px;flex-shrink:0}
.cert-callout-txt{flex:1}
.cert-callout-txt h2{color:#fff;font-size:22px;font-weight:800;margin:0 0 6px;border:none;padding:0}
.cert-callout-txt p{color:#d6ede2;font-size:14px;line-height:1.5;margin:0}
.cert-callout-btn{flex-shrink:0;background:#fff;color:#12633f;font-weight:800;font-size:15px;padding:12px 22px;border-radius:10px;white-space:nowrap}
@media(max-width:640px){.cert-callout{flex-direction:column;text-align:center;gap:14px;padding:22px}.cert-callout-btn{width:100%}}

/* hub page grid (government-exam-typing-test, ssc-typing-test) */
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.hub-col{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.hub-col h3{font-size:15px;font-weight:800;margin:0 0 12px;color:var(--ink)}
.hub-links{display:flex;flex-direction:column;gap:7px}
.hub-links a{font-size:13px;font-weight:600;color:var(--ink);padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--paper);transition:.14s}
.hub-links a:hover{border-color:var(--green);color:var(--green);transform:translateX(2px)}

/* homepage hub links row */
.hub-links-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;justify-content:center}
.hub-links-row a{font-size:13px;font-weight:700;color:var(--green);padding:9px 16px;border:1.5px solid var(--green);border-radius:22px;transition:.14s}
.hub-links-row a:hover{background:var(--green);color:#fff}

/* Create Your Own Typing Test — form */
.create-box{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 28px;max-width:760px}
.create-box h2{font-size:20px;font-weight:800;margin:0 0 18px}
.create-row{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.create-field{display:flex;flex-direction:column;gap:6px;flex:1;min-width:200px}
.create-field label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.create-field select,.create-field textarea,.create-field input{font-family:inherit;font-size:15px;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);width:100%;min-height:44px}
.create-field textarea{min-height:160px;resize:vertical;line-height:1.6}
.create-toggle{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.create-toggle input{width:18px;height:18px;accent-color:var(--green);cursor:pointer}
.create-box .btn.primary{margin-top:6px}

/* ===== Shorthand dictation app ===== */
.dct-wrap{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.dct-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.dct-head h2{font-size:20px;font-weight:800;margin:0}
.dct-filters{display:flex;gap:8px}
.dct-filters select{font-family:inherit;font-size:14px;font-weight:600;padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}
.dct-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.dct-card{text-align:left;background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;transition:.14s;font-family:inherit}
.dct-card:hover{border-color:var(--green);transform:translateY(-2px)}
.dct-card-top{display:flex;justify-content:space-between;margin-bottom:8px}
.dct-lang{font-size:11px;font-weight:700;color:var(--muted)}
.dct-wpm{font-size:11px;font-weight:800;color:var(--green)}
.dct-card-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:8px}
.dct-card-go{font-size:12px;font-weight:700;color:var(--green)}
.dct-none{color:var(--muted);font-size:14px}
/* planned course panel */
.dct-soon{text-align:center;padding:30px 20px}
.dct-soon-ic{font-size:44px;margin-bottom:10px}
.dct-soon b{display:block;font-size:17px;color:var(--ink);margin-bottom:8px}
.dct-soon p{font-size:14px;color:var(--muted);max-width:60ch;margin:0 auto 16px;line-height:1.6}
/* player */
.dct-player{margin-top:4px}
.dct-now{font-size:15px;color:var(--ink);margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.dct-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.dct-speed{font-size:13px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px}
.dct-speed select{font-family:inherit;font-size:13px;padding:5px 8px;border:1.5px solid var(--line);border-radius:7px;background:var(--paper)}
.dct-time{font-family:'JetBrains Mono';font-size:14px;color:var(--muted);margin-left:auto}
.dct-transcribe label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px}
.dct-transcribe textarea{width:100%;min-height:150px;font-family:inherit;font-size:15px;line-height:1.6;padding:12px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);resize:vertical}
.dct-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.dct-result{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.dct-score{display:flex;align-items:baseline;gap:12px}
.dct-score-big{font-size:38px;font-weight:800;color:var(--green)}
.dct-score-k{font-size:13px;color:var(--muted)}
.dct-tip{font-size:14px;color:var(--ink);margin-top:10px}

/* ===== Phase 1: nav with dropdowns + mobile menu ===== */
.nav-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{width:22px;height:2px;background:#fff;border-radius:2px;transition:.2s}
.nav-item.has-drop{position:relative}
.nav-link{background:none;border:none;font-family:inherit;font-size:14px;font-weight:600;color:#eef6ff;cursor:pointer;padding:6px 2px;text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.nav-link:hover{color:#fff}
.caret{font-size:10px;opacity:.7}
.nav-drop{position:absolute;top:calc(100% + 6px);left:0;min-width:230px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 34px rgba(0,0,0,.14);padding:10px;display:none;z-index:60;flex-direction:column;gap:1px}
.nav-item.has-drop:hover .nav-drop{display:flex}
.nav-drop::before{content:"";position:absolute;top:-6px;left:0;right:0;height:6px}
.nav-drop a{font-size:13.5px;font-weight:600;color:var(--ink);padding:10px 13px;border-radius:9px;text-decoration:none;transition:.12s;display:flex;align-items:center}
.nav-drop a:hover{background:var(--green);color:#fff;padding-left:16px}
nav.top .nav-drop a,.top .nav-drop a{color:var(--ink);background:transparent}
nav.top .nav-drop a:hover,.top .nav-drop a:hover{color:#fff;background:var(--green)}

@media(max-width:960px){
  .nav-toggle{display:flex}
  header.bar{z-index:90}
  .bar .wrap{position:relative}
  .nav.top,.top{position:absolute;top:calc(100% + 1px);left:0;right:0;width:100%;max-height:calc(100vh - 100px);background:#f6f8fb;
    flex-direction:column;align-items:stretch;gap:0;padding:0 0 14px;box-shadow:0 18px 34px rgba(0,0,0,.18);
    border:1px solid var(--line);border-top:none;border-radius:0 0 12px 12px;transform:none;display:none !important;overflow-y:auto;z-index:91;white-space:normal}
  .nav.top.open,.top.open{display:flex !important}
  .nav.top a,.nav.top button,.top a,.top button{color:var(--ink)}
  .nav-item.has-drop{width:100%;border-bottom:1px solid var(--line)}
  .drop-btn{width:100%;justify-content:space-between;padding:15px 22px;font-size:15px;font-weight:700}
  .drop-btn .caret{transition:transform .25s;font-size:12px}
  .nav-item.has-drop.open-sub .drop-btn .caret{transform:rotate(180deg)}
  /* submenu collapsed by default; smoothly expands via max-height */
  .nav-drop{position:static;display:flex !important;flex-direction:column;box-shadow:none;border:none;
    background:var(--card);border-radius:0;margin:0;padding:0;min-width:0;top:auto;left:auto;
    max-height:0;overflow:hidden;transition:max-height .3s ease}
  .nav-item.has-drop.open-sub .nav-drop{max-height:500px}
  .nav-drop a{display:flex !important;padding:13px 30px;font-size:14px;border-top:1px solid var(--line)}
  .nav-drop a:hover{background:var(--green);color:#fff;padding-left:34px}
  .nav.top .nav-drop a,.top .nav-drop a{color:var(--ink)}
  .nav.top .nav-drop a:hover,.top .nav-drop a:hover{color:#fff;background:var(--green)}
  .top>.nav-link{width:100%;padding:15px 22px;font-size:15px;font-weight:700;border-bottom:1px solid var(--line)}
  .top .cta{margin:16px 22px 0;padding:14px;border-radius:10px}
  .nav-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  body.nav-open{overflow:hidden}
  /* dim backdrop behind the menu */
  .nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:80;opacity:0;visibility:hidden;transition:.2s}
  .nav-backdrop.show{opacity:1;visibility:visible}
}

/* ===== Phase 1 homepage: trust row, pathways, exam search ===== */
.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.trust-row span{font-size:13px;color:var(--green);font-weight:700;background:rgba(31,107,79,.09);border:1px solid rgba(31,107,79,.2);padding:6px 13px;border-radius:20px}
.pathways{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.pathway{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 24px;text-align:center;transition:.16s}
.pathway:hover{transform:translateY(-3px);box-shadow:0 8px 26px rgba(0,0,0,.08);border-color:var(--green)}
.pw-ic{font-size:40px;margin-bottom:10px}
.pathway h3{font-size:19px;font-weight:800;margin:0 0 8px}
.pathway p{font-size:14px;color:var(--muted);line-height:1.55;margin:0 0 18px}
.exam-search{margin-bottom:20px}
.exam-search input{width:100%;font-family:inherit;font-size:15px;padding:14px 18px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink)}
.exam-search input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,79,.12)}

/* dashboard preview */
.dash-preview{background:linear-gradient(135deg,#0f2f22,#1a4d38);border-radius:18px;padding:30px 28px;color:#fff;display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center}
.dash-preview h2{color:#fff;font-size:24px;font-weight:800;margin:0 0 10px;border:none;padding:0}
.dash-preview p{color:#cfe6db;font-size:14px;line-height:1.6;margin:0 0 18px}
.dash-soon-tag{display:inline-block;background:rgba(255,255,255,.16);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:20px;margin-bottom:14px}
.dash-mock{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:18px}
.dash-mock-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.dash-stat{background:rgba(255,255,255,.07);border-radius:10px;padding:12px}
.dash-stat b{display:block;font-size:22px;font-weight:800}
.dash-stat span{font-size:11px;color:#bcd8cc}
.dash-bars{display:flex;align-items:flex-end;gap:6px;height:56px;padding-top:6px}
.dash-bars i{flex:1;background:rgba(255,255,255,.35);border-radius:3px 3px 0 0}
.dash-eg{font-size:10px;color:#9fc4b5;text-align:center;margin-top:6px;font-style:italic}
@media(max-width:760px){.dash-preview{grid-template-columns:1fr;gap:20px}}

/* hub pages: grouped rich cards (consistent with homepage) */
.hub-group{margin-bottom:26px}
.hub-group-title{font-size:16px;font-weight:800;color:var(--ink);margin:0 0 14px;padding-bottom:8px;border-bottom:2px solid var(--green);display:inline-block}

/* ===== Exam page: structured facts panel ===== */
.ef-panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin-bottom:8px}
.ef-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.ef-tag{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);background:rgba(31,107,79,.1);padding:4px 10px;border-radius:6px}
.ef-head h2{font-size:19px;font-weight:800;margin:0;border:none;padding:0}
.ef-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ef-cell{background:var(--paper);padding:13px 15px;display:flex;flex-direction:column;gap:3px}
.ef-k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.ef-v{font-size:14px;font-weight:600;color:var(--ink)}
.ef-v b{color:var(--green)}
.ef-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ef-note{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ef-verified{color:var(--green);font-weight:600}



/* section separator + dash-preview spacing */
.sec-sep{border:none;border-top:1px solid var(--line);margin:0 0 34px}
.dash-preview{margin-top:8px}

/* ===== Phase 1 polish: stronger first viewport + community preview ===== */
.hero{padding:42px 0 30px;background:
  linear-gradient(180deg,rgba(255,253,248,.62),rgba(246,244,236,0) 72%),
  var(--paper)}
.hero-grid{display:block}
.hero-copy{min-width:0}
.hero-panel{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:var(--shadow)}
.hero-panel-top{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:12px}
.hero-panel-top b{margin-left:auto;color:var(--green);font-family:'JetBrains Mono',monospace}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--wa);box-shadow:0 0 0 5px rgba(37,211,102,.14)}
.hero-type-card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:17px 16px;min-height:148px;display:flex;flex-direction:column;justify-content:space-between}
.hero-type-card p{font-family:'JetBrains Mono',monospace;font-size:18px;line-height:1.85;color:var(--ink)}
.hero-type-card .ok{color:var(--green)}
.hero-type-card .cur{background:rgba(217,138,43,.26);border-radius:4px;padding:2px 1px}
.typing-cursor{width:36%;height:2px;background:var(--green);animation:cursorBlink 1s steps(2,start) infinite}
@keyframes cursorBlink{50%{opacity:.28}}
.hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.hero-metrics div{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 8px;text-align:center}
.hero-metrics b{display:block;font-family:'JetBrains Mono',monospace;font-size:20px;color:var(--ink)}
.hero-metrics span{display:block;font-size:10px;text-transform:uppercase;font-weight:800;color:var(--muted);line-height:1.25}
.hero-panel-btn{width:100%;justify-content:center;border-radius:8px}
.pathway,.dash-preview,.cert-callout,.academy,.course-card,.testi-card,.tip,.exam-card,.about-card,.review-card{border-radius:8px}
.dash-preview{background:linear-gradient(135deg,#0f2f22,#205137);border-radius:8px;position:relative;overflow:hidden}
.dash-preview:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(217,138,43,.16),transparent 34%,rgba(43,94,140,.12));pointer-events:none}
.dash-preview>*{position:relative}
.community-preview{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:26px;display:grid;grid-template-columns:1.15fr .85fr;gap:20px;align-items:center;box-shadow:var(--shadow)}
.community-preview h2{font-size:24px;font-weight:800;margin:0 0 10px}
.community-preview p{color:var(--muted);font-size:14px;line-height:1.65;margin:0 0 18px;max-width:62ch}
.community-actions{display:flex;gap:10px;flex-wrap:wrap}
.community-board{display:grid;gap:10px}
.community-row{display:grid;grid-template-columns:1fr auto;gap:3px 10px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.community-row b{font-size:14px;color:var(--ink)}
.community-row span{font-size:12px;color:var(--muted)}
.community-row i{grid-row:1 / span 2;grid-column:2;font-style:normal;align-self:center;font-size:11px;font-weight:800;color:var(--green);background:rgba(31,107,79,.1);border-radius:20px;padding:4px 9px;white-space:nowrap}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-panel{display:none}
}
@media(max-width:760px){
  .community-preview{grid-template-columns:1fr;padding:22px}
  .community-board{display:none}
}

.learn-hero p,.sec-head p,.pathway p,.course-desc,.testi-text,.faq-item .a,.community-preview p,.dash-preview p,.cert-callout-txt p,.academy p,footer p{text-align:justify}
.review-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.review-summary div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px;text-align:center}
.review-summary b{display:block;font-family:'Sora',sans-serif;font-size:26px;color:var(--green)}
.review-summary span{display:block;font-size:12px;font-weight:800;text-transform:uppercase;color:var(--muted)}
.review-slider{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:2px 2px 16px;margin:0 -2px;scrollbar-width:thin;scrollbar-color:var(--green) transparent}
.review-slider::-webkit-scrollbar{height:8px}
.review-slider::-webkit-scrollbar-thumb{background:rgba(31,107,79,.35);border-radius:20px}
.review-card{background:var(--card);border:1px solid var(--line);padding:18px;box-shadow:0 1px 0 rgba(16,38,31,.04)}
.review-slider .review-card{flex:0 0 calc((100% - 28px)/3);min-width:280px;scroll-snap-align:start}
.review-card .stars{color:#d98a2b;font-size:15px;letter-spacing:1px;margin-bottom:10px}
.review-card p{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:14px;text-align:justify}
.review-card b{display:block;font-size:15px;color:var(--ink)}
.review-card span{display:block;font-size:12px;color:var(--green);font-weight:700;margin-top:2px}
.review-note{font-size:12px;color:var(--muted);margin-top:12px;text-align:center}
@media(max-width:900px){.review-slider .review-card{flex-basis:calc((100% - 14px)/2)}}
@media(max-width:640px){.review-summary{grid-template-columns:1fr}.review-slider .review-card{flex-basis:88%;min-width:260px}}
.feedback-panel{background:linear-gradient(135deg,#fffdf8,#f1f6f1);border:1px solid var(--line);border-radius:8px;padding:24px;display:grid;grid-template-columns:.9fr 1.1fr;gap:22px;align-items:start;box-shadow:var(--shadow)}
.feedback-badge{display:inline-flex;align-items:center;background:rgba(31,107,79,.1);color:var(--green);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:6px 10px;margin-bottom:12px}
.feedback-copy h2{font-size:26px;line-height:1.15;margin-bottom:10px}
.feedback-copy p{color:var(--muted);font-size:14px;line-height:1.65;text-align:justify}
.feedback-form{display:flex;flex-direction:column;gap:12px}
.ff-row{display:grid;grid-template-columns:1fr 180px;gap:12px}
.feedback-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:600 15px/1.4 'Inter',system-ui,sans-serif;padding:12px 13px;outline:none}
.feedback-form textarea{resize:vertical;min-height:110px;text-transform:none;font-weight:500}
.feedback-form input:focus,.feedback-form select:focus,.feedback-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,79,.12)}
.ff-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ff-actions span{font-size:12px;color:var(--muted)}
@media(max-width:820px){.feedback-panel{grid-template-columns:1fr}.ff-row{grid-template-columns:1fr}}

.practice-set{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px 22px;margin:20px 0}
.practice-set-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.practice-set-head h2{font-size:20px;margin:0}
.practice-set-head p{font-size:14px;color:var(--muted);margin-top:5px;text-align:justify}
.lang-pills{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.lang-pill{font-size:12px;font-weight:800;border:1px solid var(--line);border-radius:18px;padding:5px 10px;background:var(--paper);color:var(--ink)}
.lang-pill.on{background:var(--green);border-color:var(--green);color:#fff}
.practice-table{width:100%;border-collapse:collapse;font-size:14px;overflow:hidden}
.practice-table th,.practice-table td{border-bottom:1px solid var(--line);padding:11px 10px;text-align:left}
.practice-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--paper)}
.practice-table td:last-child,.practice-table th:last-child{text-align:right}
.practice-table .btn{padding:7px 12px;font-size:12px;border-radius:8px}
@media(max-width:620px){
  .practice-set{padding:16px}
  .practice-set-head{display:block}
  .lang-pills{justify-content:flex-start;margin-top:10px}
  .practice-table{display:block;overflow-x:auto;white-space:nowrap}
}

/* ===== Phase 2 account + dashboard ===== */
.auth-page{min-height:100vh;background:linear-gradient(135deg,#f6f4ec,#eaf1ef);display:grid;place-items:center;padding:24px}
.auth-wrap{width:min(440px,100%)}
.auth-logo{display:flex;align-items:center;justify-content:center;gap:10px;font-family:'Sora',sans-serif;font-weight:800;font-size:20px;color:var(--ink);margin-bottom:18px}
.auth-logo img{border-radius:8px}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:26px;box-shadow:var(--shadow)}
.auth-head span{display:inline-block;background:rgba(31,107,79,.1);color:var(--green);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:5px 9px;margin-bottom:12px}
.auth-head h1{font-size:28px;line-height:1.15;margin-bottom:8px}
.auth-head p,.auth-switch,.muted{color:var(--muted);font-size:14px;line-height:1.6}
.auth-alert{background:#fff4e8;border:1px solid #edc594;color:#77410d;border-radius:8px;padding:12px 14px;margin:16px 0;font-size:14px;font-weight:700}
.auth-form{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.auth-form input{width:100%;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:600 15px/1.4 'Inter',system-ui,sans-serif;padding:12px 13px;outline:none}
.auth-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,79,.12)}
.auth-switch{text-align:center;margin-top:14px}
.hp-field{position:absolute !important;left:-10000px !important;width:1px !important;height:1px !important;overflow:hidden !important}
.auth-prompt-ov{position:fixed;inset:0;background:rgba(16,38,31,.58);backdrop-filter:blur(5px);z-index:300;display:none;align-items:center;justify-content:center;padding:20px}
.auth-prompt-ov.show{display:flex}
.auth-prompt-box{width:min(460px,100%);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:26px;box-shadow:0 18px 60px rgba(0,0,0,.24);position:relative;text-align:left}
.auth-prompt-x{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:8px;color:var(--muted);font-size:24px;line-height:1}
.auth-prompt-x:hover{background:var(--paper);color:var(--ink)}
.auth-prompt-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--amber),var(--green));color:#fff;font-size:30px;font-family:'Sora',sans-serif;margin-bottom:12px;box-shadow:var(--shadow)}
.auth-prompt-box h2{font-size:26px;line-height:1.15;margin:0 0 8px}
.auth-prompt-box p{color:var(--muted);font-size:15px;line-height:1.6;margin:0;text-align:justify}
.auth-prompt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.auth-prompt-actions .btn{flex:1;justify-content:center;min-width:150px}
.dash-top{background:var(--blue);border-bottom:1px solid rgba(255,255,255,.18)}
.dash-top .wrap{height:64px;display:flex;align-items:center;gap:18px}
.dash-top nav{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dash-top nav a{color:#eef6ff;font-weight:700;font-size:14px;padding:7px 10px;border-radius:8px}
.dash-top nav a:hover{background:rgba(255,255,255,.14);color:#fff}
.dash-main{padding-top:34px;padding-bottom:46px}
.dash-hero{background:linear-gradient(135deg,#fffdf8 0%,#eef6f2 62%,#e8f1fb 100%);border:1px solid var(--line);border-radius:8px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.dash-hero:before{content:"";position:absolute;inset:auto 0 0 auto;width:240px;height:110px;background:linear-gradient(135deg,rgba(217,138,43,.22),rgba(53,97,149,.16));clip-path:polygon(34% 0,100% 0,100% 100%,0 100%);pointer-events:none}
.dash-hero>*{position:relative}
.dash-hero h1{font-size:32px;line-height:1.1;margin-bottom:6px}
.dash-hero p{color:var(--muted)}
.dash-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.daily-target{display:grid;grid-template-columns:auto 1fr minmax(160px,260px);gap:16px;align-items:center;background:#fffaf1;border:1px solid #efd3a8;border-left:5px solid var(--amber);border-radius:8px;padding:18px;margin:18px 0;box-shadow:0 1px 0 rgba(16,38,31,.04)}
.daily-target.done{background:#edf8f2;border-color:#b8d9c8;border-left-color:var(--green)}
.target-star{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--amber);border:1px solid var(--line);font-size:34px;font-family:'Sora',sans-serif;box-shadow:var(--shadow)}
.daily-target.done .target-star{color:var(--green)}
.daily-target h2{font-size:20px;margin:0 0 3px}
.daily-target p{font-size:13px;color:var(--muted);margin:0;text-align:justify}
.target-progress{height:14px;border-radius:999px;background:rgba(16,38,31,.1);overflow:hidden;border:1px solid rgba(16,38,31,.08)}
.target-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--amber));border-radius:inherit}
.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}
.dash-stats div,.dash-card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:0 1px 0 rgba(16,38,31,.04)}
.dash-stats b{display:block;font-family:'Sora',sans-serif;font-size:30px;color:var(--green);line-height:1}
.dash-stats span{display:block;font-size:12px;text-transform:uppercase;font-weight:800;color:var(--muted);margin-top:7px}
.dash-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px}
.dash-section-title h2{margin:0}
.dash-section-title p{margin:0;color:var(--muted);font-size:13px;font-weight:800}
.progress-card{margin-bottom:18px;background:linear-gradient(180deg,#fffdf8,#f4f8f8)}
.progress-graph{height:230px;display:grid;grid-template-columns:repeat(14,1fr);gap:8px;align-items:end;position:relative;padding:18px 6px 28px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.graph-day{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;position:relative;z-index:1}
.graph-bar{width:100%;min-height:4px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,var(--green),var(--blue));box-shadow:0 -1px 0 rgba(255,255,255,.4) inset}
.graph-day.today .graph-bar{background:linear-gradient(180deg,var(--amber),var(--green))}
.graph-day small{font-size:10px;color:var(--muted);white-space:nowrap;transform:rotate(-24deg);transform-origin:center}
.target-line{position:absolute;left:6px;right:6px;height:2px;background:repeating-linear-gradient(90deg,var(--amber),var(--amber) 8px,transparent 8px,transparent 14px);z-index:2}
.dash-progress-grid{margin-bottom:18px}
.achievement-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.achievement{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;min-height:76px}
.achievement b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f2efe5;color:#a58b60;font-size:20px;flex:0 0 auto}
.achievement.unlocked{border-color:rgba(31,107,79,.32);background:#f3faf6}
.achievement.unlocked b{background:var(--green);color:#fff}
.achievement span{font-weight:800;color:var(--ink);line-height:1.25}
.achievement small{display:block;color:var(--muted);font-size:11px;font-weight:600;margin-top:4px;line-height:1.35}
.leader-list{display:flex;flex-direction:column;gap:9px;list-style:none;margin:0;padding:0}
.leader-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px}
.leader-list li>b{font-family:'JetBrains Mono',monospace;color:var(--blue);font-size:13px}
.leader-list span{font-weight:800;line-height:1.25}
.leader-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.leader-list em{font-style:normal;font-size:11px;font-weight:900;border-radius:999px;padding:4px 7px;background:#f1eadf;color:#8b5a1f}
.dash-promo{background:linear-gradient(135deg,#fffdf8,#eef6f2);border:1px solid var(--line);border-radius:8px;padding:20px;margin-bottom:18px;box-shadow:var(--shadow)}
.dash-promo-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.dash-promo-head h2{font-size:22px;margin:0}
.dash-promo-head p{color:var(--muted);font-size:14px;max-width:58ch;text-align:justify}
.dash-promo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.dash-offer{display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;color:var(--ink);min-height:92px}
.dash-offer:hover{border-color:var(--green);box-shadow:0 6px 18px rgba(16,38,31,.08)}
.dash-offer b{font-size:15px}
.dash-offer span{font-size:12px;color:var(--muted);line-height:1.45}
.dash-grid{display:grid;grid-template-columns:1.5fr .85fr;gap:18px}
.dash-card h2{font-size:20px;margin-bottom:12px}
.dash-table-wrap{overflow-x:auto}
.dash-table{width:100%;border-collapse:collapse;font-size:14px}
.dash-table th,.dash-table td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.dash-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--paper)}
.dash-table small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.dash-pill{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#f2e9df;color:#7b4b1b}
.dash-pill.ok{background:rgba(31,107,79,.12);color:var(--green)}
.exam-best-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.exam-best-list div{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px}
.exam-best-list span{font-weight:800}
.exam-best-list small{display:block;color:var(--muted);font-size:11px;font-weight:600}
.exam-best-list b{font-family:'Sora',sans-serif;color:var(--green);white-space:nowrap}
.dash-setup{margin-top:30px}
@media(max-width:820px){.dash-hero,.dash-top .wrap{align-items:flex-start}.dash-hero{flex-direction:column}.daily-target{grid-template-columns:1fr}.target-star{width:48px;height:48px;font-size:28px}.dash-stats,.dash-grid,.dash-promo-grid,.achievement-grid{grid-template-columns:1fr}.progress-graph{gap:4px;height:190px}.graph-day small{font-size:9px}.dash-section-title{align-items:flex-start;flex-direction:column}.dash-top .wrap{height:auto;padding-top:12px;padding-bottom:12px;flex-direction:column}.dash-top nav{margin-left:0}}
