@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito+Sans:wght@600;700;800&family=Noto+Sans+Arabic:wght@400;600&display=swap');
:root{--ink:#143b40;--teal:#07565d;--coral:#c53c31;--cream:#fcfaf4;--line:#dedfd6;--muted:#52696a;--mint:#e4f1e9;--gold:#f3c052}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.6 'DM Sans',sans-serif}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--teal);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b26900;outline-offset:4px}::selection{background:#f3c052;color:var(--ink)}header{background:var(--teal);color:white;display:flex;justify-content:space-between;align-items:center;padding:20px max(24px,calc((100vw - 1240px)/2));gap:20px}.brand{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none;font:800 23px/1.12 'Nunito Sans',sans-serif}.brand small{display:block;font:500 15px/1.6 'DM Sans',sans-serif}.brand svg{width:44px;fill:none;stroke:currentColor;stroke-width:1.6}.language{background:transparent;border:1px solid #80adb0;border-radius:8px;color:white;padding:7px 14px}.shell{display:grid;grid-template-columns:220px 1fr;max-width:1240px;margin:auto;min-height:calc(100vh - 97px)}aside{padding:36px 22px 24px 0;border-right:1px solid var(--line)}nav button{border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:12px;padding:15px 18px;width:100%;text-align:left;border-radius:9px;font-weight:600}nav button.active{background:var(--mint);color:var(--teal)}svg.icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.aside-note{margin-top:70px;padding:18px;font-size:14px}.aside-note p{color:var(--muted)}main{padding:40px 48px 64px;min-width:0;width:100%;max-width:980px}h1,h2,h3{font-family:'Nunito Sans',sans-serif;line-height:1.16;letter-spacing:-.025em}h1{font-size:clamp(32px,4vw,49px);margin:0 0 12px;max-width:650px}h2{font-size:25px;margin:32px 0 16px}h3{font-size:21px;margin:0 0 8px}p{margin:10px 0}small,.muted{color:var(--muted)}.arabic{font-family:'Noto Sans Arabic',sans-serif;direction:rtl;text-align:right;line-height:1.9;color:var(--teal);font-size:17px}.intro{display:flex;justify-content:space-between;align-items:start;gap:20px}.stamp{border:2px dashed #ac771b;border-radius:50%;width:80px;height:80px;display:grid;place-content:center;text-align:center;color:#7c5100;transform:rotate(8deg);font-size:13px;flex-shrink:0}.stamp strong{font-size:25px;line-height:1.1}.progress-line{height:9px;background:#e4e6df;border-radius:5px;overflow:hidden;margin:9px 0 24px}.progress-line span{display:block;background:#148087;height:100%;transition:none}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.mission{margin-top:24px;padding:28px;background:#f3eee0;border-radius:14px;position:relative}.mission h2{font-size:31px;margin:12px 0}.mission .arabic{text-align:left}.primary,.secondary,.quiet{border:0;border-radius:9px;padding:13px 20px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none}.primary{background:var(--coral);color:white}.primary:hover{background:#a92f25}.secondary{background:var(--mint);color:var(--teal)}.quiet{background:transparent;color:var(--teal);border:1px solid var(--line)}.wide{width:100%;margin-top:16px}.row{display:flex;align-items:center;gap:16px;padding:19px 0;border-bottom:1px solid var(--line);width:100%;background:none;border-top:0;border-left:0;border-right:0;text-align:left;color:var(--ink);text-decoration:none}.row:hover{background:#f0f3eb}.row .copy{flex:1}.row strong{display:block;font-size:17px}.row small{display:block}.badge{width:44px;height:44px;background:var(--mint);border-radius:50%;display:grid;place-content:center;color:var(--teal);flex-shrink:0}.arrow{color:var(--teal)}.stats{display:flex;gap:24px;flex-wrap:wrap;margin:22px 0}.stats strong{font-size:26px;display:block}.stats div{padding-right:24px;border-right:1px solid var(--line)}.stats small{font-size:13px}.settings{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0}.settings label{flex:1;min-width:190px;font-size:14px;font-weight:600}select,input[type=date]{display:block;width:100%;border:1px solid #abbcba;background:#fffefb;border-radius:8px;padding:10px;color:var(--ink);margin-top:5px}.notice{padding:15px 18px;background:var(--mint);border-radius:9px;margin:20px 0}.notice.bad{background:#fae9df;color:#8d3124}.tabs{display:flex;gap:8px;overflow:auto;margin:22px 0}.tabs button{white-space:nowrap;border:0;border-radius:8px;background:#eaece4;color:var(--ink);padding:10px 16px}.tabs button.active{background:var(--teal);color:white}.day{padding:17px 0;display:flex;gap:18px;border-bottom:1px solid var(--line);align-items:center;background:none;color:var(--ink);width:100%;text-align:left;border-top:0;border-left:0;border-right:0}.day .number{background:#e4eae4;border-radius:50%;width:42px;height:42px;display:grid;place-content:center;font-weight:bold;flex-shrink:0}.day.done .number{background:var(--teal);color:white}.day .copy{flex:1}.day.current .number{background:var(--coral);color:white}.day:hover{background:#f1efe6}.exercise{background:#fffefb;padding:28px;border:1px solid var(--line);border-radius:14px;margin:24px 0}.passage{white-space:pre-line;padding:20px;background:#f3f1e8;border-radius:8px;line-height:1.85}.answers{display:grid;gap:12px;margin-top:22px}.answer{padding:15px;display:flex;align-items:center;gap:12px;border:1px solid #adbcb8;border-radius:9px;cursor:pointer}.answer:has(input:checked){background:var(--mint);border-color:var(--teal)}input[type=radio],input[type=checkbox]{accent-color:var(--teal);width:19px;height:19px;flex-shrink:0}.feedback{margin-top:18px;padding:18px;background:var(--mint);border-radius:9px}.feedback.wrong{background:#fae9df}.feedback strong{display:block}.audio{display:flex;align-items:center;gap:15px;margin:22px 0;background:var(--mint);border-radius:10px;padding:18px}.audio button{border-radius:50%;height:52px;width:52px;border:0;background:var(--teal);color:white;display:grid;place-content:center}.audio span{flex:1}.audio select{width:95px}.check{display:flex;gap:12px;margin:14px 0;align-items:start}.check input{margin-top:3px}textarea{width:100%;min-height:240px;resize:vertical;padding:16px;border:1px solid #9aadaa;border-radius:9px;background:#fffefb;color:var(--ink);caret-color:var(--coral)}details{margin:18px 0}summary{cursor:pointer;font-weight:700;color:var(--teal)}.timer{font-size:22px;font-variant-numeric:tabular-nums}.actionbar{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.empty{padding:30px 0}.source{font-size:13px;color:var(--muted);margin-top:32px}.source a{color:inherit}#bottom{display:none}#toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);max-width:90%;background:var(--teal);color:white;padding:12px 22px;border-radius:9px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:5}#toast.show{opacity:1}.skills{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.awards{display:flex;gap:12px;flex-wrap:wrap}.award{padding:12px 17px;border:1px dashed #ac771b;border-radius:10px;background:#fff5d9}.award.locked{background:#eeeee7;border-color:#9aa7a0;color:#64726c}.recording{color:#a22821}.subtle{font-size:14px}.back{margin-bottom:22px}.completion{text-align:center;padding:40px 10px}.completion h1{margin:auto}.medal{width:96px;height:96px;margin:0 auto 25px;border:3px dashed #ac771b;border-radius:50%;display:grid;place-content:center;font-size:35px;background:#fff5d9}button:disabled{opacity:.55;cursor:default}.hidden{display:none!important}@media(max-width:760px){header{padding:17px 20px}.brand{font-size:20px}.brand svg{width:34px}.brand small{font-size:13px}.language{padding:5px 9px}.shell{display:block}aside{display:none}main{padding:28px 20px 110px}h1{font-size:34px}.stamp{width:66px;height:66px;font-size:11px}.stamp strong{font-size:22px}.mission{padding:22px}.mission h2{font-size:28px}.exercise{padding:20px 16px}.skills{display:block}#bottom{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--teal);padding:8px 4px max(9px,env(safe-area-inset-bottom));z-index:4}#bottom button{display:flex;flex:1;flex-direction:column;gap:3px;padding:7px 2px;color:#dbedef;text-align:center;font-size:11px;border-radius:6px}#bottom button.active{background:transparent;color:#ffb6a7}#bottom svg{width:22px;height:22px}.settings{gap:10px}.stats{gap:16px}.stats div{padding-right:16px}.audio{padding:12px;gap:9px}.audio select{width:82px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

header .brand small{color:#d9eeee}.practice-image{width:100%;max-height:350px;object-fit:cover;border-radius:12px;margin-top:12px}

.brand-portrait{width:48px;height:48px;object-fit:cover;border-radius:12px}.install-panel{max-width:1240px;margin:22px auto 0;padding:20px 24px;background:var(--mint);border-radius:12px;display:flex;align-items:start;gap:18px}.install-panel>img{border-radius:12px;flex-shrink:0}.install-copy{flex:1;min-width:0}.install-copy>strong,.install-copy>span{display:block}.install-copy>span{font-size:14px;margin-top:4px}.install-copy details{margin:10px 0 0;font-size:14px}.install-copy ol{padding-left:22px}.install-copy #install-status:empty{display:none}@media(max-width:760px){.brand-portrait{width:40px;height:40px}.brand small{font-size:11px}.install-panel{margin:16px 20px 0;padding:16px;gap:12px;flex-wrap:wrap}.install-panel>img{width:44px;height:44px}.install-panel>.primary{width:100%}.install-copy{flex-basis:calc(100% - 60px)}}

/* Keep every preparation week visible without horizontal scrolling. */
.week-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;gap:8px}.week-tabs button{min-width:0;min-height:48px;padding:10px 8px;white-space:normal;line-height:1.35}.week-tabs button:focus-visible{outline-offset:2px}@media(max-width:560px){.week-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.week-tabs button:last-child{grid-column:1/-1}}

.account-bar{max-width:1240px;margin:18px auto 0;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.account-bar strong,.account-bar span{display:block}.account-bar span{font-size:12px;color:var(--muted);max-width:65ch}.account-bar .quiet{padding:8px 14px;font-size:14px}.login-main{max-width:580px;margin:0 auto;padding:42px 24px 60px}.login-main h1{font-size:38px}.login-form-area{margin:28px 0;padding:24px;background:#fffefb;border:1px solid var(--line);border-radius:14px}.auth-tabs{margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;overflow:visible}.auth-tabs button{padding:12px 6px;font-size:15px}.login-form-area label:not(.check){display:block;font-weight:600;margin:18px 0 8px}.login-form-area input:not([type=checkbox]){display:block;width:100%;padding:12px;border:1px solid #9aadaa;border-radius:8px;background:#fffefb;color:var(--ink);margin-top:6px}.login-arabic{color:#d9eeee;font-family:"Noto Sans Arabic",sans-serif}.login-main .login-install{padding:16px;margin:28px 0 0;flex-wrap:wrap}.login-install>.secondary{width:100%}#auth-status:empty{display:none}#auth-status{padding-top:10px;color:var(--ink)}[hidden]{display:none!important}@media(max-width:560px){.account-bar{padding:0 20px}.account-bar .quiet{flex-shrink:0}.login-main{padding:30px 20px 40px}.login-main h1{font-size:32px}.login-form-area{padding:20px 16px}}

.login-logo{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;margin:0 0 28px;border-radius:12px;background:var(--teal)}.brand-portrait{object-fit:contain;background:var(--teal)}

.official-intro{background:var(--teal);color:#fffefb;padding:24px;border-radius:14px;margin:24px 0}.official-intro h2{margin:0 0 12px}.official-intro .arabic{color:#d9eeee}.official-select{display:block;margin:24px 0;max-width:420px}.publisher-material{padding:22px 0;border-bottom:1px solid var(--line)}.original-audio{background:var(--mint);padding:20px;border-radius:12px;margin:24px 0}.original-audio audio{display:block;width:100%;margin:12px 0}.original-clock{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 0}.original-pdf iframe{width:100%;height:560px;border:1px solid var(--line);border-radius:8px;margin-top:12px}.original-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}.original-tabs button{padding:12px 6px;min-width:0}.answer-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sheet-item{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8px;padding:12px;background:#fffefb;border:1px solid var(--line);border-radius:8px}.sheet-item select{margin:0;min-width:0;padding:8px}.sheet-feedback{grid-column:1/-1;font-size:13px;color:var(--teal)}.sheet-feedback:empty{display:none}.wrong-answer{color:#9b3025}@media(max-width:560px){.answer-sheet{grid-template-columns:1fr}.original-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.official-intro{padding:20px}.original-clock .quiet{flex:1;font-size:14px}.original-pdf iframe{height:420px}}

/* DTZ readiness uses text as well as colour. */
.readiness{margin:24px 0;padding:24px;border:1px solid #b58b33;border-radius:12px;background:#fff8e6}.readiness h2{margin:10px 0}.readiness small{display:block;margin-top:12px}.readiness.green{border-color:#287052;background:#eff8f2}.readiness.red{border-color:#b34236;background:#fff1ee}.score-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.score-inputs label{display:flex;flex-direction:column;gap:8px}#full-result>label{display:block;margin:18px 0}#full-result select{width:100%;max-width:100%;margin-top:8px}#full-result .check-line{display:flex;align-items:flex-start;gap:10px;line-height:1.6}.check-line input{width:20px;min-width:20px;margin-top:5px}.test-history article{padding:20px 0;border-bottom:1px solid #d7ded7}.test-history small{display:block;margin-top:8px}.test-history p{overflow-wrap:anywhere}@media(max-width:420px){.readiness{padding:18px}.score-inputs{grid-template-columns:1fr}}
