:root{--ink:#14233c;--ink2:#3c4a61;--muted:#5f6b7d;--paper:#fbfaf7;--card:#fff;--line:#e3dfd5;--line2:#d4cfc2;--accent:#b4532a;--accent2:#8f3f1e;--navy:#1f3a5f;--ok:#1e7a4f;--okbg:#e8f4ee;--warn:#9a6a00;--warnbg:#fdf5e1;--bad:#a33232;--badbg:#fbeaea;--soft:#f3f1ea;--r:10px;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Charter,Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,monospace}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}
a{color:var(--navy);text-underline-offset:2px}a:hover{color:var(--accent2)}
img,svg{max-width:100%}
h1,h2,h3{font-family:var(--serif);line-height:1.2;color:var(--ink);font-weight:700}
h1{font-size:clamp(1.9rem,4.2vw,2.9rem);margin:.2em 0 .4em;letter-spacing:-.01em}
h2{font-size:clamp(1.35rem,2.6vw,1.75rem);margin:1.8em 0 .5em}
h3{font-size:1.15rem;margin:1.3em 0 .4em}
p{margin:0 0 1em}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:780px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:9}
header.top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
header.top .wrap{display:flex;align-items:center;gap:18px;min-height:60px}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:700;font-size:1.2rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.brand .mark{width:30px;height:30px;border-radius:7px;background:var(--navy);color:#fff;display:grid;place-items:center;font:700 .8rem var(--sans);letter-spacing:.02em}
header nav{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}
header nav a{color:var(--ink2);text-decoration:none;padding:7px 10px;border-radius:7px;font-size:.95rem}
header nav a:hover,header nav a[aria-current=page]{background:var(--soft);color:var(--ink)}
header nav a.cta{background:var(--accent);color:#fff}header nav a.cta:hover{background:var(--accent2);color:#fff}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line2);border-radius:7px;padding:6px 10px;font:inherit;color:var(--ink)}
@media(max-width:860px){.menu-btn{display:block}header nav{display:none;position:absolute;left:0;right:0;top:60px;background:var(--card);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px 16px 14px}header nav.open{display:flex}header nav a{padding:11px 10px}}
main{min-height:60vh}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#fff;border:0;border-radius:9px;padding:12px 20px;font:600 1rem var(--sans);text-decoration:none;cursor:pointer;min-height:46px;transition:background .15s}
.btn:hover{background:var(--accent2);color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line2)}.btn.secondary:hover{background:var(--soft);color:var(--ink)}
.btn.navy{background:var(--navy)}.btn.navy:hover{background:#152a46}
.btn.small{padding:7px 12px;min-height:36px;font-size:.9rem}
.btn.block{width:100%}
.hero{padding:56px 0 36px;background:linear-gradient(180deg,#fff, var(--paper));border-bottom:1px solid var(--line)}
.hero .eyebrow,.eyebrow{font:600 .8rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.hero p.lead,.lead{font-size:1.15rem;color:var(--ink2);max-width:720px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 10px}
.hero .note{font-size:.9rem;color:var(--muted)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}
.demo{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(20,35,60,.08);padding:18px}
.demo .bubble{margin:8px 0}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.card h3{margin-top:0}.card p:last-child{margin-bottom:0}
a.card{display:block;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}a.card:hover{border-color:var(--navy);box-shadow:0 4px 14px rgba(20,35,60,.08)}
.section{padding:34px 0}
.muted{color:var(--muted)}.small{font-size:.9rem}
.tag{display:inline-block;font:600 .75rem var(--sans);padding:3px 8px;border-radius:99px;background:var(--soft);color:var(--ink2);margin:0 4px 4px 0}
.tag.free{background:var(--okbg);color:var(--ok)}.tag.lock{background:#eef1f6;color:var(--navy)}
.crumbs{font-size:.88rem;color:var(--muted);margin:18px 0 0}.crumbs a{color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:18px 0}
.facts div{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:10px 12px}
.facts b{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
table{border-collapse:collapse;width:100%;margin:12px 0 18px;background:var(--card);font-size:.95rem}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}th{background:var(--soft)}
.table-wrap{overflow-x:auto}
details{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:12px 14px;margin:8px 0}
details summary{cursor:pointer;font-weight:600}
.faq details p{margin:.6em 0 0}
.sources{font-size:.88rem;color:var(--muted)}
.ctabox{background:var(--navy);color:#fff;border-radius:14px;padding:22px;margin:26px 0;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ctabox h3{color:#fff;margin:0 0 4px}.ctabox p{margin:0;color:#dce4f0}
.ctabox .btn{background:#fff;color:var(--navy)}.ctabox .btn:hover{background:#f1e4dc;color:var(--accent2)}
footer.site{border-top:1px solid var(--line);margin-top:48px;padding:30px 0;font-size:.9rem;color:var(--muted);background:var(--card)}
footer.site .cols{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
footer.site a{color:var(--ink2);text-decoration:none;display:block;padding:3px 0}footer.site a:hover{text-decoration:underline}
footer.site h4{font:600 .82rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);margin:0 0 8px}
@media(max-width:700px){footer.site .cols{grid-template-columns:repeat(2,1fr)}}
.notice{margin:10px 0;font-size:.95rem}.notice.error{color:var(--bad)}
.field{display:block;margin:10px 0}.field span{display:block;font-weight:600;font-size:.9rem;margin-bottom:4px}
input[type=email],input[type=text],input[type=tel],input[type=number],input[type=date],textarea,select{width:100%;font:inherit;padding:11px 12px;border:1px solid var(--line2);border-radius:8px;background:#fff;color:var(--ink)}
textarea{line-height:1.55;resize:vertical}
input:focus,textarea:focus,select:focus{outline:2px solid var(--navy);outline-offset:1px}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
@media(max-width:800px){.price-grid{grid-template-columns:1fr}}
.price{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column}
.price.best{border:2px solid var(--accent);position:relative}.price.best::before{content:"Most chosen";position:absolute;top:-12px;left:18px;background:var(--accent);color:#fff;font:600 .75rem var(--sans);padding:3px 10px;border-radius:99px}
.price .amt{font:700 2.2rem var(--serif);margin:6px 0}.price ul{padding-left:18px;margin:8px 0 18px;flex:1}
.cur-switch{display:flex;gap:6px}.cur-switch button{font:inherit;padding:6px 12px;border-radius:7px;border:1px solid var(--line2);background:#fff;cursor:pointer}.cur-switch button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
/* practice room */
.room{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;margin:16px 0 30px;align-items:start}
@media(max-width:960px){.room{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.panel h2{margin:0 0 8px;font-size:1.2rem}
.file{max-height:72vh;overflow:auto}
@media(max-width:960px){.file{max-height:none}}
.doc{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.doc h3{font-size:1rem;margin:.2em 0 .4em;font-family:var(--sans)}
.doc pre{white-space:pre-wrap;font:15px/1.6 var(--sans);margin:0;color:var(--ink2)}
.taskline{background:var(--warnbg);border:1px solid #f0dfb4;border-radius:9px;padding:10px 12px;margin:10px 0;font-weight:500}
.bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;margin-bottom:10px}
.timer{font:700 1.3rem var(--mono);color:var(--navy);background:#eef1f6;border-radius:8px;padding:4px 10px}
.timer.low{color:var(--bad);background:var(--badbg)}
.phase-steps{display:flex;gap:6px;flex-wrap:wrap;font-size:.82rem}
.phase-steps span{padding:3px 9px;border-radius:99px;background:var(--soft);color:var(--muted)}
.phase-steps span.on{background:var(--navy);color:#fff}
.phase-steps span.done{background:var(--okbg);color:var(--ok)}
.chat{height:46vh;min-height:280px;overflow-y:auto;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px}
.bubble{max-width:85%;padding:9px 13px;border-radius:14px;margin:6px 0;line-height:1.45;font-size:.97rem}
.bubble.them{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}
.bubble.me{background:var(--navy);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.bubble .who{display:block;font-size:.72rem;font-weight:700;opacity:.7;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.bubble.typing{color:var(--muted);font-style:italic}
.speak{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
.mic{width:64px;height:64px;border-radius:50%;border:0;background:var(--accent);color:#fff;cursor:pointer;display:grid;place-items:center;flex:none;box-shadow:0 4px 12px rgba(180,83,42,.35)}
.mic svg{width:28px;height:28px}
.mic.rec{background:var(--bad);animation:pulse 1.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(163,50,50,.5)}70%{box-shadow:0 0 0 14px rgba(163,50,50,0)}100%{box-shadow:0 0 0 0 rgba(163,50,50,0)}}
.typebox{display:flex;gap:8px;flex:1;min-width:220px}.typebox textarea{min-height:46px;height:46px}
.hint{font-size:.85rem;color:var(--muted)}
.wc{font-size:.85rem;color:var(--muted);text-align:right}
.writer{min-height:52vh;font-size:16px}
.report .band{border-radius:12px;padding:16px 18px;margin:10px 0 16px}
.band.above{background:var(--okbg);border:1px solid #bfe0cf}.band.around{background:var(--warnbg);border:1px solid #f0dfb4}.band.below{background:var(--badbg);border:1px solid #efc9c9}
.band strong{font-size:1.15rem}
.crit{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.grade{width:46px;height:46px;border-radius:10px;display:grid;place-items:center;font:700 1.35rem var(--serif);color:#fff}
.grade.A,.grade.B{background:var(--ok)}.grade.C{background:#4f7a3a}.grade.D{background:var(--warn)}.grade.E,.grade.F{background:var(--bad)}
.crit .gw{font-size:.75rem;color:var(--muted);text-align:center;margin-top:3px}
.lp{display:flex;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.st{font:600 .75rem var(--sans);padding:2px 8px;border-radius:99px;white-space:nowrap;height:fit-content}
.st.covered,.st.handled{background:var(--okbg);color:var(--ok)}.st.partly{background:var(--warnbg);color:var(--warn)}.st.missed,.st.wrong{background:var(--badbg);color:var(--bad)}.st.not{background:var(--soft);color:var(--muted)}
.estimate-note{font-size:.85rem;color:var(--muted)}
.spinner{width:34px;height:34px;border:4px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:20px auto}
@keyframes spin{to{transform:rotate(360deg)}}
/* SQE1 */
.q{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
.q .stem{font-size:1.05rem;margin-bottom:14px}
.opt{display:flex;gap:10px;width:100%;text-align:left;font:inherit;background:#fff;border:1px solid var(--line2);border-radius:9px;padding:11px 12px;margin:7px 0;cursor:pointer;color:var(--ink);align-items:flex-start}
.opt:hover:not(:disabled){border-color:var(--navy);background:#f6f8fb}
.opt b{flex:none;width:24px;height:24px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-size:.85rem}
.opt.right{border-color:var(--ok);background:var(--okbg)}.opt.wrong{border-color:var(--bad);background:var(--badbg)}.opt.picked{border-color:var(--navy);background:#eef1f6}
.opt:disabled{cursor:default}
.explain{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.explain .why{font-size:.93rem;color:var(--ink2);padding-left:18px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.chip{font:inherit;font-size:.88rem;padding:6px 11px;border-radius:99px;border:1px solid var(--line2);background:#fff;cursor:pointer;color:var(--ink)}
.chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.meter{height:8px;background:var(--soft);border-radius:99px;overflow:hidden}.meter i{display:block;height:100%;background:var(--ok)}
.navgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:5px}
.navgrid button{font:inherit;font-size:.82rem;padding:6px 0;border-radius:6px;border:1px solid var(--line2);background:#fff;cursor:pointer}
.navgrid button.ans{background:#eef1f6;border-color:var(--navy)}.navgrid button.cur{outline:2px solid var(--accent)}.navgrid button.flag{background:var(--warnbg)}
.list-tasks .card{display:flex;flex-direction:column;gap:6px}
.lockline{display:flex;gap:8px;align-items:center}
.empty{text-align:center;padding:30px;color:var(--muted)}
.hide{display:none!important}
.prose{max-width:760px}
.prose ul,.prose ol{padding-left:22px}
.prose li{margin:4px 0}
.kicker{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.9rem;margin-top:8px}
.kicker span::before{content:"✓ ";color:var(--ok);font-weight:700}
.compare td:first-child{font-weight:600}

.bank-room{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr)}.mock-room{grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr)}
@media(max-width:960px){.bank-room,.mock-room{grid-template-columns:1fr}.bank-room>div:last-child{order:-1}}
.tool .table-wrap td,.tool .table-wrap th{vertical-align:top}@media print{header.top,footer.site,.crumbs,.ctabox,.tt-form,[data-print],.faq,.sources{display:none!important}}
.paywall{background:var(--card);border:2px solid var(--navy);border-radius:12px;padding:18px;margin:14px 0}.paywall h3{margin:0 0 6px}.pw-plans{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.pw-plans .btn{flex:1 1 150px}
