.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.workspace{--workspace-font:20px;max-width:1460px;margin:auto;color:#111;font:14px/1.5 Arial,sans-serif}.workspace h2{font-size:30px;margin:0 0 14px;line-height:1.2}.workspace button{font:700 12px/1.3 Arial,sans-serif;min-height:32px;padding:7px 11px;border:1px solid #aa8a36;background:#efc34d;color:#161a15;border-radius:3px}.workspace button:hover{filter:brightness(.96)}.workspace header button{margin-left:4px}.workspace-source{white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;line-height:1.65;font-size:var(--workspace-font);padding:12px;min-height:120px;max-height:35vh;scrollbar-gutter:stable;background:#fff;border:1px solid #8b9295}.workspace-source[dir=rtl]{text-align:right}.workspace textarea{display:block;width:100%;min-height:190px;height:26vh;resize:vertical;border:1px solid #979d9f;padding:12px;font:var(--workspace-font)/1.65 Georgia,"Noto Sans",serif;border-radius:0;background:#fff;color:#111;white-space:pre-wrap}.workspace textarea::placeholder{color:#667385;font-size:16px}.workspace-stats{display:flex;justify-content:center;gap:8px;padding:14px 10px}.workspace-stats>div{background:#fffdfa;border:1px solid #f3e7d3;border-radius:6px;text-align:center;padding:8px 14px;min-width:104px}.workspace-stats b{font:700 17px/1.4 monospace;display:block;color:#28413b}.workspace-stats small{font-size:9px;color:#626e69;letter-spacing:.4px}.workspace-candidate{font-size:12px}.workspace-time{font-size:19px;white-space:nowrap}.workspace-time span{font-variant-numeric:tabular-nums}.workspace-submit{text-align:center;padding:22px 8px;background:transparent!important}.workspace-submit button{min-width:168px}.workspace-submit small{display:block;font-size:10px;color:#68706c;margin-top:12px}.exam-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.exam-caption h2{margin:0;font-size:32px}.exam-caption span{font-size:14px;font-weight:700}.workspace-toolbar-outside{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:12px auto;max-width:1460px;font-size:12px}.workspace-toolbar-outside button{padding:8px 12px;border:1px solid #aebac8;background:#fff;border-radius:5px}.global-workspace,.basic-workspace{background:#f1f6fa;padding:16px;border:3px solid #161917;border-radius:18px}.global-frame,.basic-frame{background:#eeece4;border:3px solid #151815}.global-toolbar,.basic-toolbar,.speed-controls{background:#1c2119;color:white;border-bottom:3px solid #dfb327;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:12px}.global-toolbar>div,.basic-toolbar>div{display:flex;align-items:center;flex-wrap:wrap;gap:3px}.global-toolbar b,.basic-toolbar b{font-size:17px;margin-right:8px}.global-reading{padding:0 9px}.global-large{background:#c9d2d8;font:28px/1.6 Arial,sans-serif;max-height:40vh;min-height:210px;border-radius:4px}.global-writing{padding:12px 9px}.global-writing textarea{height:18vh;min-height:130px;background:#fff;line-height:1.6;font-family:Arial,sans-serif}.basic-test{padding:0 9px}.basic-passage .workspace-source{font-family:Georgia,serif;border-radius:4px;max-height:26vh;min-height:110px;font-size:18px}.basic-response{margin-top:14px}.basic-response textarea{background:#fff9df;border-color:#d7ac33;border-radius:5px;height:24vh}.speed-workspace{margin:36px auto;border:3px solid #111;border-radius:18px;padding:16px;background:#f1f6fa;max-width:1320px}.speed-workspace h2{font-size:20px;margin-bottom:6px}.speed-console{border:3px solid #111}.speed-dashboard{background:#eeece4;padding:0 10px}.speed-word-strip .workspace-source{min-height:110px;max-height:24vh;font:18px/1.6 Georgia,serif;border-radius:4px}.speed-entry{margin-top:14px}.speed-entry textarea{background:#fff9df;border-color:#d7ac33;border-radius:5px;height:23vh}.source-current{background:#fff16c;border-bottom:2px solid #1564be}.source-correct{color:#167337}.source-wrong{color:#ac2020;background:#ffe4e4}.global-large .source-current{background:transparent;color:#260bb0;text-decoration:underline}.speed-word-strip .source-current{background:#c5c5c5;border:0;border-radius:4px}
.document-window,.confirm-window,.green-window,.portal-grid{border:3px solid #1b2024;background:#fff}.document-toolbar{display:flex;justify-content:space-between;align-items:center;padding:7px;background:#fafafa;border-bottom:1px solid #bbb}.document-toolbar button,.confirm-options button,.confirm-blue button,.green-controls button,.portal-tools button{background:#f7f9fb;border-color:#b7c2cd;color:#234868;font-size:10px;padding:4px 7px;min-height:25px}.document-toolbar .workspace-time{font-size:13px;color:#1e2c37}.document-blue-rule{height:14px;background:#187bcc}.document-pages{padding:4px;display:grid;grid-template-rows:1fr 1fr;gap:4px}.document-pages .workspace-source{height:33vh;max-height:none;min-height:200px;font:15px/1.7 Arial,sans-serif}.document-pages textarea{height:32vh;min-height:200px;font:17px/1.7 Arial,sans-serif}.document-bottom{display:flex;justify-content:center;gap:14px;border-top:1px solid #ccc;padding:7px;background:#fff!important}.document-bottom button:first-child{background:#b52424;border:0;color:#fff}.document-bottom button:last-child{background:#75a4d7;color:#fff;border:0;min-width:100px}.portal-grid{display:grid;grid-template-columns:minmax(0,1fr) 195px;min-height:76vh}.portal-task{background:#efefef}.portal-task>header{display:grid;gap:7px;padding:7px;background:white;font-size:11px}.portal-task>header strong{color:#1564be}.portal-blue-rule{height:16px;background:#1564be}.portal-answer-column{padding:10px 18px;max-width:75%}.portal-answer-column .workspace-source{height:20vh;min-height:145px;font-size:18px}.portal-answer-column textarea{margin-top:8px;height:18vh;min-height:130px;font-size:18px}.portal-information{padding:12px 9px;display:flex;flex-direction:column;border-left:1px solid #ccc}.portal-information .workspace-candidate{font-size:13px}.portal-information .workspace-time{font-size:14px;margin:14px 0}.portal-information dl{display:grid;grid-template-columns:1fr auto;gap:8px 3px;font-size:11px;margin:0}.portal-information dt,.portal-information dd{margin:0;border-bottom:1px solid #ddd}.portal-information h3{font-size:12px;margin:14px 0 0}.portal-information p{font-size:11px}.portal-tools{display:flex;flex-wrap:wrap;gap:5px}.portal-end{margin-top:auto;padding-top:22px}.portal-end button{width:100%;background:#7caadd;color:white;border:0}.confirm-options{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;font-size:10px;background:#f3f3f3}.confirm-blue,.green-controls{background:#1564be;color:white;display:flex;justify-content:space-between;align-items:center;padding:8px;gap:10px}.confirm-blue .workspace-time,.green-controls .workspace-time{font-size:16px}.confirm-source,.confirm-answer{padding:4px 5px 0}.confirm-source .workspace-source{background:#e1f6f2;font:16px/1.6 Arial,sans-serif;min-height:180px;height:27vh;max-height:none}.confirm-answer textarea{height:27vh;min-height:200px}.confirm-submit{text-align:center;min-height:135px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:white!important}.confirm-submit label{font-size:11px}.confirm-submit button,.green-submit button{background:#f0f0f0;border:1px solid #b7b7b7;color:#404040;min-width:100px}.green-source-document{padding:4px}.green-source-document .workspace-source{font:16px/1.6 Arial,sans-serif;height:37vh;min-height:200px;max-height:none}.green-answer-sheet{padding:0 4px}.green-answer-sheet textarea{background:#c9ff62;height:32vh;min-height:200px}.green-submit{text-align:center;padding:8px;background:white!important}
.fingers-workspace{max-width:1060px;padding:24px;border:1px solid #c7d6e5;border-radius:12px;background:#f5f9fd}.fingers-workspace h2{font-size:25px}.fingers-source .workspace-source{height:140px;min-height:100px}.fingers-input textarea{height:100px;min-height:100px;margin-top:12px}.finger-cue{font-size:18px;text-align:center;font-weight:700;color:#124f95;padding:16px}.finger-keyboard{max-width:820px;margin:auto}.finger-keyboard>div{display:flex;justify-content:center;gap:5px;margin:5px 0}.finger-keyboard span{width:58px;min-height:43px;display:flex;align-items:center;justify-content:center;border:1px solid #738291;border-radius:5px;font-weight:700;color:#111}.finger-keyboard [data-key=" "]{width:340px}.finger-left-little{background:#ffd3da}.finger-left-ring{background:#ffdda8}.finger-left-middle{background:#fff1a0}.finger-left-index{background:#cbecbd}.finger-right-index{background:#b7e4dd}.finger-right-middle{background:#bcddff}.finger-right-ring{background:#d6caff}.finger-right-little{background:#f3c6ea}.finger-thumb{background:#d2dbe3}.finger-keyboard .home-key{border-bottom:4px solid #15365f}.finger-keyboard .next-key{outline:3px solid #1564be;transform:translateY(-2px)}.finger-keyboard .key-correct{box-shadow:0 0 0 4px #20814c}.finger-keyboard .key-wrong{box-shadow:0 0 0 4px #c32d2d}.finger-hands{display:flex;justify-content:center;gap:50px;margin:20px auto}.finger-hand{display:flex;gap:6px;align-items:end}.finger-hand>span{border-radius:24px 24px 9px 9px;width:42px;height:80px;border:1px solid #8295a8;display:flex;flex-direction:column;justify-content:end;align-items:center;padding-bottom:6px}.finger-hand small{font-size:8px}.finger-hand>span:nth-child(3){height:95px}.finger-hand>span:nth-child(5){height:50px}.finger-hand .active-finger{outline:4px solid #1564be;transform:translateY(-4px)}.fingers-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;background:transparent!important}.fingers-footer p{font-size:12px;color:#536172}.learning-workspace{padding:24px;border:1px solid #bbcddd}.learning-workspace h2{font-size:24px}.learning-desk{display:grid;grid-template-columns:1fr 1fr;gap:20px}.learning-desk h3{font-size:14px}.learning-desk .workspace-source,.learning-desk textarea{height:36vh;min-height:220px;max-height:none}.learning-workspace footer{text-align:center;padding:18px;background:white!important}.preview-overlay{position:fixed;inset:0;z-index:200;background:#15283dd9;padding:20px;overflow:auto}.preview-dialog{max-width:1460px;margin:auto;background:#fff;padding:20px;border-radius:8px}.preview-notice{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}.preview-notice button{padding:8px 15px}.preview-dialog .workspace button,.preview-dialog textarea{pointer-events:none}.tte-layout-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.tte-layout-option{padding:12px;border:1px solid #c9d4df;border-radius:6px;background:white}.tte-layout-option label{font-size:13px;display:flex;align-items:center;gap:5px}.tte-layout-option small{display:block;font-size:11px;color:#5a6774;margin:7px 0}.tte-layout-option button{padding:6px 9px;background:#f2f6fb;border:1px solid #afc7e1;border-radius:4px;font-size:12px}.tte-paper-setting{border:1px solid #afc7e1;border-left:5px solid #1564be;background:#f1f7fe;border-radius:6px;padding:20px;margin:24px 0}.tte-paper-setting h3{margin-top:0}.tte-paper-setting p{font-size:14px}.tte-settings{border:1px solid #d4dce5;border-radius:10px;padding:26px;background:#fafcfe}.tte-settings legend{font-weight:700;padding:0 8px}.tte-settings fieldset{margin:22px 0;border:1px solid #c9d4df;border-radius:6px;padding:18px}.tte-settings input[type=checkbox],.tte-settings input[type=radio]{width:auto}.tte-switches{display:flex;gap:24px;flex-wrap:wrap;margin:20px 0}.tte-switches label{font-size:14px}.tte-result-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tte-result-summary>div{border:1px solid #c9d4df;border-radius:8px;padding:17px;background:#f7fafe}.tte-result-summary strong{font-size:27px;display:block;color:#1564be}.tte-result-summary span{font-size:12px}.tte-review td{overflow-wrap:anywhere;max-width:270px;white-space:pre-wrap}.tte-review .type{font-weight:700}.tte-review td:nth-child(4){font-family:monospace}
@media(max-width:900px){.workspace-time{font-size:15px}.global-toolbar,.basic-toolbar,.speed-controls{flex-wrap:wrap}.workspace-stats{flex-wrap:wrap}.workspace-stats>div{min-width:85px;padding:7px 10px}.tte-layout-options{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-answer-column{max-width:100%;padding:10px}.document-toolbar{flex-wrap:wrap;gap:8px}.learning-desk{grid-template-columns:1fr}.tte-result-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workspace{--workspace-font:18px}.workspace h2,.exam-caption h2{font-size:24px}.exam-caption{align-items:start;flex-direction:column;gap:5px}.exam-caption span{font-size:12px}.global-workspace,.basic-workspace,.speed-workspace{padding:8px;border-width:2px;border-radius:9px}.global-frame,.basic-frame,.speed-console{border-width:2px}.global-large{font-size:22px;min-height:170px}.global-toolbar,.basic-toolbar,.speed-controls{padding:8px;gap:8px}.workspace-stats{gap:4px;padding:8px 4px}.workspace-stats>div{min-width:61px;flex:1;padding:7px 4px}.workspace-stats small{font-size:7px;letter-spacing:0}.workspace-stats b{font-size:14px}.workspace button{min-height:36px;font-size:10px;padding:7px}.workspace-toolbar-outside{align-items:flex-start;font-size:10px}.portal-grid{grid-template-columns:1fr;min-height:0}.portal-information{border-left:0;border-top:1px solid #ccc;display:grid;grid-template-columns:1fr 1fr;gap:12px}.portal-information p{margin:0}.portal-information .portal-end{margin:0;padding:0}.portal-information h3{margin:0}.confirm-blue,.green-controls{flex-wrap:wrap}.confirm-blue .workspace-time,.green-controls .workspace-time{font-size:13px}.portal-answer-column .workspace-source{height:26vh}.portal-answer-column textarea{height:24vh}.tte-settings{padding:16px}.tte-layout-options{grid-template-columns:repeat(2,minmax(0,1fr))}.tte-settings fieldset{padding:12px}.preview-overlay{padding:8px}.preview-dialog{padding:12px}.preview-notice{font-size:12px}.fingers-workspace{padding:13px}.finger-keyboard>div{gap:3px}.finger-keyboard span{min-width:0;width:8%;min-height:32px;font-size:12px}.finger-hands{gap:20px}.finger-hand{gap:3px}.finger-hand>span{width:23px;height:62px}.finger-hand>span:nth-child(3){height:72px}.finger-hand small{font-size:6px}.fingers-footer{flex-direction:column;align-items:stretch}.speed-workspace{margin:16px auto}.tte-review{font-size:12px}.tte-review th,.tte-review td{padding:7px}.tte-paper-setting{padding:14px}.tte-result-summary strong{font-size:23px}}
.finger-hand[aria-label="right hand"]>span:first-child{height:50px}.finger-hand[aria-label="right hand"]>span:last-child{height:80px}@media(max-width:600px){.finger-hand[aria-label="right hand"]>span:last-child{height:62px}.finger-hand[aria-label="right hand"]>span:first-child{height:42px}}
/* Phase 13 — Dark Mode, container-level only. Deliberately conservative: the source-text/
   typed-area background and border are darkened for readability, but the specific mistake-
   highlight colors (correct/incorrect/omitted markers) are left untouched, since they carry
   functional meaning during an active typing test and this phase's scope is polish without
   changing typing behavior or risking a regression to a component every practice mode shares. */
html[data-theme="dark"] .workspace-source{background:#182231;color:#f3f4f6;border-color:#3a4a5f}
html[data-theme="dark"] .workspace-submit{color:#f3f4f6}
html[data-theme="dark"] .workspace-toolbar,html[data-theme="dark"] .workspace-toolbar-outside{background:#182231;color:#f3f4f6;border-color:#2b3849}
html[data-theme="dark"] .tte-settings{background:#182231;color:#f3f4f6;border-color:#35445a}html[data-theme="dark"] .tte-settings h2,html[data-theme="dark"] .tte-settings h3,html[data-theme="dark"] .tte-settings legend,html[data-theme="dark"] .tte-settings label{color:#f3f4f6}html[data-theme="dark"] .tte-settings :where(input,select,textarea){background:#101827;color:#f3f4f6;border-color:#52627a}html[data-theme="dark"] .tte-settings :where(small,p,.tte-note){color:#b8c4d5}html[data-theme="dark"] .tte-settings fieldset,html[data-theme="dark"] .tte-paper-setting,html[data-theme="dark"] .tte-layout-option{background:#111c2c;color:#f3f4f6;border-color:#405069}html[data-theme="dark"] .tte-duration-chip{background:#182538;color:#f3f4f6;border-color:#50627c}html[data-theme="dark"] .tte-duration-chip[aria-pressed="true"]{background:#1674d1;color:#fff;border-color:#65aef2}html[data-theme="dark"] .tte-duration-chip.is-locked{background:#111a28;color:#d4dbea}html[data-theme="dark"] .tte-duration-lock{color:#b8c4d5}html[data-theme="dark"] .workspace-toolbar-outside button{background:#1674d1;color:#fff;border-color:#65aef2}html[data-theme="dark"] .tte-result{background:#111c2c;color:#f3f4f6;border-color:#405069}html[data-theme="dark"] .tte-result-summary>div,html[data-theme="dark"] .tte-result details{background:#182538;color:#f3f4f6;border-color:#405069}html[data-theme="dark"] .tte-result-summary span,html[data-theme="dark"] .tte-result-meta{color:#b8c4d5}
html[data-theme="dark"] .workspace-candidate{color:#aeb8c5}
/* Phase 13B — contrast correction, smallest possible fix. Measured directly (WCAG relative
   luminance): .source-correct's #167337 green and the underline variant of .source-current's
   #260bb0 blue both have NO explicit background of their own (Phase 13's original CSS relied
   on the panel's background for contrast), so darkening .workspace-source's background in
   Phase 13 silently dropped both below WCAG AA (2.70:1 and 1.34:1 respectively; 4.5:1 required)
   without anyone noticing at the time. Only these two states are touched — .source-wrong and
   the yellow-highlight .source-current variant both set their OWN explicit background
   (measured at 5.86:1 and 18.05:1 respectively, already theme-independent and fine) and are
   deliberately left untouched, exactly as instructed. .source-current has THREE separate
   context-scoped rules in this file (a plain, a yellow-background, and a grey-background
   variant) sharing one class name — the correction below targets the exact selector of the
   transparent/underline variant only (.global-large .source-current), confirmed by direct
   inspection, so it cannot accidentally override the already-fine yellow/grey variants' text
   color via a bare-class collision. Replacement values are the SAME existing
   --tte-success/--tte-primary-hover dark tokens already defined in site.css, not new colors —
   verified at 6.85:1 and 6.10:1, comfortable margins above the 4.5:1 AA minimum. Correct/
   current/wrong remain visually distinguishable from each other by hue, not merely by subtle
   shade, and no underline/background marker semantics were removed.
*/
html[data-theme="dark"] .source-correct{color:#3fbf82}
html[data-theme="dark"] .global-large .source-current{color:#6ba3e6}
/* ============================================================
   PHASE 13C — premium typing workspace chrome. Pure presentation: no scoring DOM class
   (.source-correct/.source-wrong/.source-current, data-stat, data-action, data-answer) was
   renamed or restructured — every selector below targets the EXISTING attributes/classes the
   engine already relies on, so behavior is unaffected.
   ============================================================ */
[data-answer]{background:var(--tte-input-bg,#fff);border:1px solid var(--tte-border,#c9d4df);border-radius:var(--tte-radius-md,12px);padding:16px 18px;font-size:17px;line-height:1.7;box-shadow:inset 0 1px 3px #0f213b0d;transition:border-color .2s ease,box-shadow .2s ease}
[data-answer]:focus{outline:none;border-color:var(--tte-primary,#1564be);box-shadow:0 0 0 4px color-mix(in srgb,var(--tte-primary,#1564be) 18%,transparent),inset 0 1px 3px #0f213b0d}
[data-answer]::placeholder{color:var(--tte-text-muted,#9ca6b2);font-weight:400}
html[data-theme="dark"] [data-answer]{background:#141d2b;color:#f3f4f6;border-color:#3a4a5f}

[data-action]{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--tte-surface,#fff);color:var(--tte-text,#17212b);border:1px solid var(--tte-border,#d4dce5);border-radius:var(--tte-radius-sm,8px);padding:9px 14px;font-size:13px;font-weight:700;box-shadow:var(--tte-elev-1,0 1px 2px #0002);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
[data-action]:hover{transform:translateY(-2px);box-shadow:var(--tte-elev-2,0 3px 8px #0003);border-color:var(--tte-primary,#1564be)}
[data-action="finish"]{background:var(--tte-primary,#1564be);color:#fff;border-color:var(--tte-primary,#1564be);padding:12px 26px;font-size:14px;letter-spacing:.02em;box-shadow:var(--tte-elev-2)}
[data-action="finish"]:hover{background:var(--tte-primary-hover,#104b91);box-shadow:var(--tte-elev-3)}
html[data-theme="dark"] [data-action]{background:#182231;border-color:#2b3849;color:#f3f4f6}

.workspace-stats{gap:10px}
.workspace-stats>div{background:var(--tte-surface,#fff);border:1px solid var(--tte-border,#d4dce5);border-radius:var(--tte-radius-md,12px);padding:10px 16px;min-width:92px;text-align:center;box-shadow:var(--tte-elev-1)}
.workspace-stats>div b{display:block;font-size:22px;font-weight:800;color:var(--tte-primary,#1564be);line-height:1.15;font-variant-numeric:tabular-nums;transition:opacity .15s ease}
.workspace-stats>div small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tte-text-muted,#9ca6b2);margin-top:2px}
html[data-theme="dark"] .workspace-stats>div{background:#182231;border-color:#2b3849}

/* Timer urgency states — color shift only, no flashing/shaking, per instruction. */
[data-stat="time"]{transition:color .3s ease}
.workspace-stats>div:has([data-stat="time"].workspace-timer-warn) b,[data-stat="time"].workspace-timer-warn{color:var(--tte-warning,#8a5b00)!important}
.workspace-stats>div:has([data-stat="time"].workspace-timer-danger) b,[data-stat="time"].workspace-timer-danger{color:var(--tte-danger,#a22121)!important}
.workspace-time span.workspace-timer-warn{color:var(--tte-warning,#8a5b00)}
.workspace-time span.workspace-timer-danger{color:var(--tte-danger,#a22121)}

.workspace-candidate{display:inline-flex;align-items:center;gap:6px;background:var(--tte-surface-2,#f6f9fc);border:1px solid var(--tte-border,#d4dce5);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600;color:var(--tte-text-muted,#536172)}
.workspace-candidate b{color:var(--tte-text,#17212b);font-weight:700}
html[data-theme="dark"] .workspace-candidate{background:#202c3d;border-color:#2b3849}

/* Current-character marker: underline + soft highlight, not color alone (instruction #23). */
.source-current{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px;text-decoration-color:var(--tte-primary,#1564be)}

/* Final pre-Cashfree mobile workspace pass. Layout only; typing and scoring behavior are unchanged. */
.workspace h2,.exam-caption h2{font-size:clamp(22px,3vw,32px)}
@media(max-width:600px){
 body.tte-focused .tte-main{width:100%;max-width:none;padding:6px max(5px,env(safe-area-inset-right)) 12px max(5px,env(safe-area-inset-left))}
 body.tte-focused [data-typing-app],body.tte-focused [data-workspace],body.tte-focused .workspace{width:100%;max-width:none;min-width:0}
 .workspace-toolbar-outside{margin:6px 2px 8px;gap:7px;flex-wrap:wrap}.workspace-toolbar-outside button{min-height:44px}.workspace-toolbar-outside span{min-width:0;overflow-wrap:anywhere}
 .workspace h2,.exam-caption h2{font-size:clamp(20px,6vw,25px);margin-bottom:8px}
 .global-workspace,.basic-workspace,.speed-workspace{padding:5px}
 .global-toolbar,.basic-toolbar,.speed-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:6px;gap:6px}
 .global-toolbar>div,.basic-toolbar>div,.speed-controls>div{grid-column:1/-1;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
 .global-toolbar b,.basic-toolbar b{font-size:clamp(13px,3.7vw,16px);margin-right:auto}
 .workspace button,[data-action]{min-height:44px;padding:7px 9px;font-size:clamp(10px,2.8vw,12px)}
 .workspace-candidate{min-width:0;max-width:100%;padding:5px 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .workspace-time{font-size:13px}
 .workspace-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:6px 4px}
 .workspace-stats>div{grid-column:span 2;min-width:0;padding:5px 2px;border-radius:7px}
 .workspace-stats>div:nth-child(4),.workspace-stats>div:nth-child(5){grid-column:span 3}
 .workspace-stats>div b{font-size:clamp(14px,4vw,18px)}.workspace-stats>div small{font-size:clamp(7px,2.1vw,9px);letter-spacing:0;white-space:normal}
 .workspace-source{font-size:clamp(20px,5.8vw,26px);line-height:1.45;min-height:clamp(150px,25dvh,230px);height:28dvh;max-height:32dvh;padding:9px;overscroll-behavior:contain;scroll-behavior:smooth}
 .global-large{font-size:clamp(22px,6.2vw,26px);line-height:1.42;min-height:clamp(160px,27dvh,240px);height:29dvh;max-height:34dvh}
 .global-reading,.global-writing,.basic-test{padding-inline:4px}.global-writing{padding-block:7px}.basic-response,.speed-entry{margin-top:7px}
 .workspace textarea,.global-writing textarea,.basic-response textarea,.speed-entry textarea,.portal-answer-column textarea,.confirm-answer textarea,.green-answer-sheet textarea{font-size:clamp(17px,4.5vw,20px);line-height:1.5;min-height:clamp(135px,21dvh,190px);height:23dvh;max-height:34dvh;padding:10px;resize:vertical}
 .workspace-submit{padding:9px 4px}.workspace-submit small{margin-top:6px}
 .document-pages .workspace-source,.document-pages textarea,.confirm-source .workspace-source,.green-source-document .workspace-source,.learning-desk .workspace-source,.learning-desk textarea{min-height:150px;height:27dvh;max-height:34dvh}
 .portal-answer-column{padding:6px}.portal-answer-column .workspace-source{min-height:150px;height:27dvh;max-height:34dvh}
 .confirm-submit{min-height:88px}.portal-information{gap:7px;padding:8px}.portal-information .workspace-time{margin:0}
}

/* Pre-Cashfree Create Own Test workspace */
.tte-custom-source-field,.tte-custom-title-field{display:grid;gap:8px;margin-top:18px;font-weight:700}
.tte-custom-source-field textarea{display:block;width:100%;min-width:0;box-sizing:border-box;min-height:clamp(260px,42vh,520px);padding:16px;font:500 16px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical}
.tte-custom-title-field input{width:100%;box-sizing:border-box}
.tte-custom-count{justify-self:end;color:var(--tte-muted,#5f6f85);font-weight:500}
.tte-custom-manage{align-items:center;flex-wrap:wrap;margin-top:12px}
.tte-custom-manage output{font-size:14px}
@media(max-width:480px){.tte-custom-source-field textarea{min-height:320px;font-size:16px}.tte-custom-manage .tte-btn{width:100%}}

/* A real focused fullscreen surface, with no site chrome and no forced page reload on rotation. */
.workspace:fullscreen{box-sizing:border-box;width:100vw;max-width:none;height:100dvh;margin:0;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));overflow:auto;background:var(--tte-bg,#f4f7fb)}
.workspace:fullscreen [data-action="fullscreen"]{position:relative}.workspace:fullscreen [data-action="fullscreen"]::after{content:''}
@media(max-width:900px){.workspace:fullscreen .workspace-source{max-height:38dvh}.workspace:fullscreen textarea{max-height:38dvh}}
@media(max-width:900px){.workspace button,[data-action]{min-height:44px}}
@media(max-width:900px) and (orientation:landscape){
 .workspace:fullscreen h2,.workspace:fullscreen .exam-caption{display:none}
 .workspace:fullscreen :is(.global-frame,.basic-frame){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'toolbar toolbar' 'stats stats' 'source answer' 'footer footer';gap:5px;height:auto;min-height:calc(100dvh - 16px)}
 .workspace:fullscreen :is(.global-toolbar,.basic-toolbar){grid-area:toolbar}.workspace:fullscreen .workspace-stats{grid-area:stats}
 .workspace:fullscreen :is(.global-reading,.basic-passage){grid-area:source;min-width:0}.workspace:fullscreen :is(.global-writing,.basic-response){grid-area:answer;min-width:0;margin:0;padding:0 4px}
 .workspace:fullscreen :is(.workspace-submit){grid-area:footer;padding:4px}
 .workspace:fullscreen :is(.workspace-source,textarea,.global-large,.global-writing textarea,.basic-response textarea){height:calc(100dvh - 190px);min-height:145px;max-height:none}
 .workspace:fullscreen .basic-test{display:contents}
}
