:root{font-family:var(--app-font,Inter,"Noto Sans Assamese","Noto Sans Bengali",system-ui,-apple-system,"Segoe UI",Arial,sans-serif);font-size:15px;line-height:1.55;color:var(--ink,#172d4b);background:var(--page-background,#f4f7fc);--navy:#15355c;--blue:#2158b8;--ink:#172d4b;--muted:#657991;--border:#dce4ef;--soft:#eef4fe;--white:#fff;--green:#07856d;--shadow:0 9px 30px rgba(35,65,114,.048)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--page-background,#f4f7fc)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.57}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}[hidden]{display:none!important} .container{width:min(var(--container-width,1200px),calc(100% - 36px));margin:auto}.skip-link{position:absolute;top:-80px;left:8px;background:#fff;padding:10px;z-index:100}.skip-link:focus{top:8px}.site-header{background:#fff;border-bottom:1px solid #e7edf5}.header-inner{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:14px;color:var(--navy);min-width:0}.brand:hover{text-decoration:none}.brand-mark{width:53px;height:53px;display:grid;place-items:center;background:linear-gradient(140deg,#173e83,#2866db);border-radius:16px;color:white;font-size:23px;font-weight:900;position:relative;box-shadow:0 7px 19px #275dc526}.brand-accent{width:12px;height:12px;background:#18bb92;border:2px solid white;position:absolute;right:-3px;bottom:-3px;border-radius:4px}.brand-title{font-size:21px;font-weight:800;line-height:1.22;letter-spacing:-.6px}.brand-tagline{display:block;color:#8192a8;font-size:10px;letter-spacing:2.1px;font-weight:800;margin-top:5px}.header-actions{display:flex;align-items:center;gap:9px}.icon-button,.pill-button,.button,.nav-item,.tab{border:1px solid var(--border);background:white;color:#29476e;border-radius:12px;padding:10px 14px;font-weight:750}.icon-button{min-height:43px;padding:9px 12px}.icon-button:hover,.pill-button:hover,.button-secondary:hover,.nav-item:hover{background:#f4f8ff}.button{background:var(--blue);color:#fff;border-color:var(--blue);padding:11px 19px;box-shadow:0 5px 12px #285abc18}.button:hover{background:#174b9e}.button-secondary{background:white;color:var(--blue);box-shadow:none}.button-quiet{background:#edf3fc;color:var(--blue);border-color:#e1e9f8;box-shadow:none}.button-danger{background:#fff;color:#ad3145;border-color:#f1cdd4;box-shadow:none}.button-small{padding:7px 12px;font-size:13px}.header-profile{height:40px;width:40px;border:1px solid #d5e3f6;border-radius:50%;background:#eaf2fe;font-weight:800;color:#2459a7}.nav-shell{display:flex;gap:3px;align-items:center;overflow-x:auto;white-space:nowrap;background:#fff;border:1px solid var(--border);border-radius:17px;padding:8px;margin:22px 0 28px;box-shadow:var(--shadow);scrollbar-width:thin}.nav-item{border:none;background:none;border-radius:11px;padding:11px 16px;flex:0 0 auto;font-size:13.5px}.nav-item[aria-current=page]{background:#eaf2fe;color:#1b53a5}.global-message{padding:13px 17px;margin:12px 0 18px;background:#e8f5f0;border:1px solid #b8dfd0;border-radius:12px;color:#185d47}.global-message.error{background:#fff2f1;border-color:#f5d1c9;color:#8a3030}.footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#91a0b3;font-size:12px;padding:38px 2px 30px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:30px 0 22px}.page-head h1{font-size:28px;letter-spacing:-.7px;margin:0 0 4px;color:#183657;line-height:1.24}.page-head p{color:var(--muted);margin:0;font-size:14px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-weight:900;font-size:11px;color:#4974a8}.welcome{background:linear-gradient(125deg,#193b79,#2866d2);color:white;border-radius:21px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:32px 36px;margin-bottom:22px;position:relative;overflow:hidden}.welcome:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:#ffffff0a;right:-75px;top:-120px}.welcome>*{position:relative;z-index:1}.welcome h1{font-size:30px;margin:3px 0 5px;letter-spacing:-.75px}.welcome p{margin:0;color:#cfddf6}.welcome .eyebrow{color:#b5d5fe} .card{background:var(--card-background,#fff);border:1px solid var(--border);border-radius:var(--card-radius,17px);padding:23px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0 0 12px;line-height:1.33}.card h2{font-size:18px}.card h3{font-size:16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:27px 0 12px}.section-heading h2{font-size:19px;letter-spacing:-.35px;margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.course-card{display:flex;flex-direction:column;gap:12px}.course-card .course-title{font-size:18px;font-weight:800;color:#1a365c}.course-card .card-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:auto}.badge{display:inline-flex;align-items:center;background:#e8f5ef;color:#126a51;border-radius:100px;padding:4px 9px;font-size:11px;font-weight:800;letter-spacing:.2px}.badge.soft{background:#edf3fd;color:#41668c}.badge.warn{background:#fff4df;color:#8b5c19}.muted{color:var(--muted)}.small{font-size:13px}.inline-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stack{display:grid;gap:17px}.layout-two{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,1fr);gap:17px}.metric{font-size:26px;font-weight:850;color:#21476d}.divider{height:1px;background:#e8eef5;margin:14px 0}.empty{border:1px dashed #cbd9ea;padding:24px;border-radius:13px;background:#fafcff;color:var(--muted)}.notice-card{background:#f0f6ff;border:1px solid #dbe8fb;padding:15px 17px;border-radius:14px}.list-row{display:flex;gap:14px;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1f7;padding:13px 0}.list-row:last-child{border-bottom:0}.list-row strong{display:block}.link-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.link-row:hover{background:#f8fbff}.field{display:grid;gap:6px}.field label{font-size:12px;font-weight:800;color:#496481}.field input,.field select,.field textarea{border:1px solid #d6e1ef;border-radius:11px;padding:12px;width:100%;background:white;color:#213a59;min-width:0}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #9cbff650;border-color:#4984da}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.auth-shell{width:min(480px,100%);margin:50px auto 70px}.auth-shell .card{padding:30px}.auth-shell h1{font-size:26px;line-height:1.2;letter-spacing:-.5px;margin:0 0 7px}.auth-links{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:16px}.form-errors{font-size:13px;color:#a33a3a;background:#fff2f1;border-radius:10px;padding:12px}.form-success{font-size:13px;color:#145b47;background:#ecf8ef;border-radius:10px;padding:12px}.course-context{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 21px;border:1px solid #d5e4f6;background:#eef5ff;border-radius:15px}.course-context strong{font-size:16px}.select-wrap{min-width:240px;max-width:420px}.select-wrap select{width:100%;background:#fff;border:1px solid var(--border);border-radius:11px;padding:10px 12px;color:var(--navy)}.taxonomy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.crumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:#67809c;font-size:12px;margin-bottom:15px}.topic-list{display:flex;gap:8px;flex-wrap:wrap}.topic-pill{border:1px solid #d8e3f3;background:#f4f8ff;border-radius:100px;padding:7px 11px;font-weight:650;color:#35577d;font-size:12px}.content-panel{min-height:160px}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-link{display:block;padding:16px;border:1px solid #dce7f6;border-radius:14px;color:#255897;font-weight:750;background:#f7faff}.quick-link:hover{background:#edf4ff}.section-content{margin:19px 0}.section-content .card{min-height:130px}.spinner{display:inline-block;width:17px;height:17px;border-radius:50%;border:2px solid #c3d6f5;border-top-color:#2a63b7;animation:spin .8s linear infinite;vertical-align:middle;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.intro-loading{padding:90px 20px;text-align:center;color:#5e7490}.danger-note{background:#fff7e9;color:#856020;padding:13px 15px;border-radius:12px}.info-note{font-size:12px;color:#67809c}.profile-menu{position:relative}.menu-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:white;border:1px solid var(--border);border-radius:14px;padding:7px;z-index:30;box-shadow:0 16px 36px #1439671d}.menu-pop button{display:block;text-align:left;width:100%;border:0;background:transparent;padding:10px;border-radius:8px;color:#294567}.menu-pop button:hover{background:#eef5ff}.status-dot{display:inline-block;background:#12aa81;width:8px;height:8px;border-radius:50%}.loading-card{padding:28px;text-align:center}.card-note{font-size:12px;color:var(--muted)}.alert-count{font-size:11px;color:#fff;background:#e65364;border-radius:50%;padding:1px 5px;position:relative;top:-8px;left:-3px}.heading-action{white-space:nowrap}
@media(max-width:840px){.layout-two,.grid-3{grid-template-columns:1fr 1fr}.welcome h1{font-size:25px}.brand-title{font-size:18px}.header-inner{min-height:82px}}
@media(max-width:650px){.container{width:min(100% - 22px,1200px)}.header-inner{min-height:78px}.brand-mark{width:44px;height:44px;border-radius:12px;font-size:19px}.brand-title{font-size:15px;letter-spacing:-.4px}.brand-tagline{font-size:8px;letter-spacing:1.2px}.header-actions{gap:5px}.icon-button{padding:8px;min-height:38px}.header-profile{height:37px;width:37px}.nav-shell{margin:12px 0 20px;padding:5px}.nav-item{padding:9px 12px;font-size:12px}.page-head h1{font-size:24px}.welcome{padding:24px;align-items:flex-start;flex-direction:column}.welcome h1{font-size:24px}.welcome .button{width:100%;text-align:center}.grid,.grid-3,.layout-two,.quick-grid{grid-template-columns:1fr}.card{padding:18px}.taxonomy,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.course-context{flex-direction:column;align-items:stretch}.select-wrap{width:100%;max-width:none;min-width:0}.auth-shell{margin:22px auto 55px}.auth-shell .card{padding:22px}.footer{justify-content:center;text-align:center;padding-top:24px}}

/* Student PR 2 — readable learning, complete taxonomy and assessment-safe Practice */
.learning-tabs{display:flex;align-items:center;gap:5px;overflow-x:auto;white-space:nowrap;margin:18px 0;padding:7px;background:#fff;border:1px solid var(--border);border-radius:15px;scrollbar-width:thin}
.learning-tabs .nav-item{flex:0 0 auto;font-size:13px}
.scope-toolbar{display:grid;gap:12px;background:#f5f8fe;border:1px solid #e0eaf7;padding:16px;border-radius:14px;margin:14px 0}
.scope-toolbar input{accent-color:#245dc1}
.scope-tree{max-height:390px;overflow:auto;border:1px solid var(--border);border-radius:13px;padding:12px;background:#fff;display:grid;gap:11px}
.scope-subject{padding:10px 12px;border:1px solid #e7edf7;border-radius:11px}
.scope-chapter{margin:6px 0 0 16px;border-left:2px solid #e0e9f6;padding:7px 0 7px 14px}
.scope-topics{margin-left:14px;display:flex;flex-direction:column;gap:6px}
.scope-choice{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:750;cursor:pointer;color:#21426c}
.scope-choice input{accent-color:#275fb9;width:16px;height:16px}
.scope-choice.depth-1{font-weight:650}.scope-choice.depth-2{font-weight:500;color:#52677f}
.practice-count{margin:15px 0;max-width:260px}
.question-stem{font-size:18px;font-weight:720;color:#1d3453;line-height:1.7;margin:27px 0}
.rich-read{white-space:pre-wrap;overflow-wrap:anywhere}.rich-read>span+span:before{content:" "}
.answer-list{display:grid;gap:12px;margin-bottom:18px}
.answer-option{display:flex;align-items:center;gap:12px;border:1px solid #dce5f1;border-radius:13px;padding:13px 16px;cursor:pointer;color:#29425e;background:#fff}
.answer-option.selected{border-color:#6791d6;background:#f0f6ff}
.answer-option input{accent-color:#2459b4;width:17px;height:17px;flex:0 0 auto}
.answer-option b{color:#42658d}
.answer-option .rich-read{font-weight:500}
.question-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:15px 0}
.question-palette button{border:1px solid #dbe5f2;border-radius:9px;background:#f2f5fb;color:#315376;min-height:40px;font-weight:750}
.question-palette button.answered{background:#dcf4e8;border-color:#a8dec6;color:#176f51}
.question-palette button.current{outline:2px solid #2b62bc;outline-offset:1px}
.practice-controls{padding-top:18px;border-top:1px solid #e3eaf3}
.learning-media-placeholder{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;background:#f0f6ff;border-radius:10px;padding:10px;margin:5px 0}
.chem-block{white-space:pre-wrap;color:#355273;background:#f0f5fb;padding:2px 5px;border-radius:4px}
.lesson-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;margin:19px 0;padding:18px 0;border-top:1px solid #e7edf5;border-bottom:1px solid #e7edf5;font-size:15px}
.media-grid{display:grid;gap:10px;margin:16px 0}.media-asset{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;border:1px solid #e2eaf4;padding:12px;border-radius:12px}
.protected-preview{padding:12px;margin:16px 0;border:1px solid #dfe7f3;border-radius:12px;background:#f7faff}
.protected-preview img,.protected-preview video{max-width:100%;width:auto;max-height:540px;display:block;margin:auto}
.protected-preview iframe{width:100%;height:540px;border:0}
.tab.active{background:#eaf2ff;color:#1753a6;border-color:#b9d2f6}
@media(max-width:650px){.scope-tree{max-height:440px}.question-stem{font-size:16px}.question-palette{grid-template-columns:repeat(5,minmax(0,1fr))}.answer-option{padding:11px}.learning-tabs .nav-item{padding:9px}.protected-preview iframe{height:420px}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}*,*:before,*:after{scroll-behavior:auto!important}}

.studio-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:17px;margin:19px 0}.studio-section{grid-column:span var(--col-desktop,12);min-width:0}.studio-section>.section-content{margin:0}.studio-section .section-content .card{height:100%}:root[data-density="compact"] .studio-section .card{padding:16px}:root[data-density="spacious"] .studio-section .card{padding:30px}
@media(max-width:840px){.studio-section{grid-column:span var(--col-tablet,12)}}@media(max-width:650px){.studio-section{grid-column:span var(--col-mobile,12)}.studio-grid{gap:12px}}


/* PR3: professional and responsive CBT player, published exam and review surfaces */
.exam-status-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:18px 0;padding:14px 20px;background:#eaf2fe;border:1px solid #d5e5f9;border-radius:14px;color:#31577f;font-size:13px}
.exam-clock{font-variant-numeric:tabular-nums;font-size:21px;color:#174e9a;letter-spacing:1px}.exam-clock[data-expired="true"]{color:#a53642}
.exam-unsaved{color:#b55e15;font-weight:800}
.scope-toolbar{padding:10px 0}.scope-tree{max-height:390px;overflow:auto;border:1px solid #e0e9f5;border-radius:13px;background:#f9fbff;padding:12px 18px;margin-bottom:13px}
.scope-choice{display:flex;gap:10px;align-items:center;padding:7px 5px;font-size:13px;color:#294e78}
.scope-choice input{width:17px;height:17px;accent-color:#2158b8}
.scope-subject{border-bottom:1px solid #e4ecf5;padding:5px 0}.scope-subject:last-child{border-bottom:0}
.scope-chapter{padding-left:19px}.scope-topics{padding-left:20px}
.question-stem{font-size:16px;font-weight:650;color:#1b3457;line-height:1.75;padding:18px 0}
.answer-list{display:grid;gap:10px}.answer-option{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #dce6f2;background:#fff;border-radius:12px;font-size:14px;cursor:pointer}
.answer-option input{margin-top:4px;accent-color:#2158b8}.answer-option.selected{border-color:#78a3dc;background:#f0f6ff}
.answer-option b,.answer-option strong{color:#2158b8;min-width:20px}.answer-option .rich-read{flex:1}
.question-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.question-palette button{border:1px solid #dce5f2;background:#f4f7fc;color:#416184;padding:9px 4px;border-radius:9px;font-weight:800}
.question-palette button.current{outline:2px solid #2466c4;outline-offset:1px}
.question-palette button.answered,.question-palette button.answered-and-marked-for-review{background:#d7f5e9;color:#08684f}
.question-palette button.marked-for-review{background:#fbeac9;color:#86591d}
.practice-controls{padding-top:20px;border-top:1px solid #ecf1f8;margin-top:20px}
.question-medium{margin:16px 0;max-width:270px}.rich-read{line-height:1.7;overflow-wrap:anywhere}.rich-read code{white-space:pre-wrap}
@media(max-width:650px){.exam-status-row{gap:8px;padding:12px}.exam-clock{font-size:18px}.question-palette{grid-template-columns:repeat(5,minmax(0,1fr))}.question-stem{font-size:15px}.scope-tree{max-height:400px}.practice-controls .button{flex:1;min-width:110px}}

/* PR4: student services: clean support, private messages, security and commerce */
.learning-tabs{display:flex;gap:7px;align-items:center;overflow-x:auto;white-space:nowrap;background:#fff;border:1px solid #dce5ef;border-radius:15px;padding:7px;margin:18px 0}
.learning-tabs .nav-item{font-size:12.5px;padding:9px 13px}
.long-code{display:block;overflow-wrap:anywhere;background:#f0f5ff;border:1px solid #dce8fa;border-radius:9px;padding:12px;font-size:12px}
.list-row>.button{flex:0 0 auto}
.list-row>div{min-width:0;overflow-wrap:anywhere}
.service-value{font-variant-numeric:tabular-nums;font-weight:750}
.service-warning{font-size:13px;color:#9a5f1b}
.service-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.form-grid .field select{width:100%}
.card .notice-card p{margin:.3rem 0}
.card form .button{width:max-content;max-width:100%}
@media(max-width:650px){.list-row{align-items:start;gap:12px;flex-wrap:wrap}.list-row>.button{min-width:110px}.form-grid .field{min-width:0}.card form .button{width:100%}}


/* 2026-11-01 professional CBT rework — restrained examination-first layout. */
body.cbt-mode{background:#edf1f6}
body.cbt-mode .site-header,body.cbt-mode #mainNav,body.cbt-mode .footer{display:none!important}
body.cbt-mode .container{width:min(1540px,calc(100% - 28px));max-width:none}
body.cbt-mode #main{min-height:calc(100dvh - 25px)}
.cbt-exam-shell{--cbt-navy:#173454;--cbt-border:#d7e0ea;background:#f1f4f8;color:#233449;margin:10px 0 28px;border:1px solid #d3dfe9;border-radius:7px;overflow:hidden;box-shadow:0 3px 17px #102b4610;font-size:14px}
.cbt-exam-header{background:#fff;display:grid;grid-template-columns:minmax(230px,1fr) minmax(200px,1.3fr) auto;align-items:center;gap:18px;padding:16px 23px;border-bottom:3px solid #2464aa}
.cbt-exam-brand{display:flex;align-items:center;gap:11px}
.cbt-brand-emblem{display:grid;place-items:center;width:44px;height:44px;border-radius:6px;background:#235ca4;color:white;font-weight:900;font-size:16px}
.cbt-exam-brand strong{display:block;font-size:17px;color:#1e3f65;letter-spacing:-.3px}
.cbt-exam-brand small{display:block;font-size:11px;font-weight:700;color:#728197;margin-top:3px}
.cbt-exam-identity{text-align:center;display:grid;gap:3px}
.cbt-exam-identity strong{font-size:17px;line-height:1.3;color:#1d3553}
.cbt-exam-identity span{font-size:12px;color:#556983}
.cbt-timer-block{display:grid;gap:3px;min-width:150px;text-align:center;padding:10px 16px;border:1px solid #d7e3f1;border-radius:5px;background:#eef5fc}
.cbt-timer-block span{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#4c6684}
.cbt-timer-block .exam-clock{font-size:26px;line-height:1.2;color:#184e8e;letter-spacing:1px;font-variant-numeric:tabular-nums}
.cbt-timer-block .exam-clock[data-expired="true"]{color:#aa3434}
.cbt-subbar{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:11px 18px;border-bottom:1px solid #d8e2ef;background:#e7f0f9}
.cbt-chip{background:#225d9c;color:#fff;font-size:11px;letter-spacing:.5px;font-weight:850;border-radius:3px;padding:6px 10px}
.cbt-subbar-state{font-weight:800;color:#234767}
.cbt-server-badge{color:#2d6b50;font-weight:750;margin-left:auto;font-size:12px}
.cbt-subbar .button{font-size:12px}
.cbt-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 304px;min-height:620px;gap:0;align-items:start}
.cbt-question-panel{background:white;min-width:0;border-right:1px solid var(--cbt-border);display:flex;flex-direction:column;min-height:620px}
.cbt-question-top{display:flex;justify-content:space-between;align-items:center;gap:13px;padding:17px 24px;border-bottom:1px solid var(--cbt-border)}
.cbt-question-number{font-size:18px;font-weight:850;color:#1d426e;margin-right:10px}
.cbt-question-type{font-size:11px;font-weight:750;color:#60788d;letter-spacing:.3px}
.cbt-marks{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;font-weight:750}
.cbt-marks span{background:#eaf6ef;color:#22744a;border-radius:3px;padding:6px 8px}
.cbt-marks span+span{background:#fff2ed;color:#a84c36}
.cbt-question-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:11px 24px;border-bottom:1px solid #e6edf4;background:#fafcfe}
.cbt-language-label{font-size:12px;font-weight:800;color:#365572}
.cbt-question-toolbar select{border:1px solid #bed2e7;border-radius:5px;padding:8px 30px 8px 11px;background:white;min-width:145px;font-weight:750;color:#23496e}
.cbt-locked-medium{font-size:12px;font-weight:800;color:#456680}
.cbt-question-body{padding:27px 28px;flex:1;min-height:260px}
.cbt-question-prompt{font-size:16.5px;font-weight:750;color:#1e2f43;line-height:1.8;margin-bottom:25px}
.cbt-question-prompt .rich-read{line-height:1.8}
.cbt-options{display:grid;gap:10px;max-width:960px}
.cbt-option.answer-option{width:100%;display:flex;align-items:center;gap:13px;border:1px solid #dce4ed;border-radius:5px;background:#fff;padding:13px 16px;min-height:58px;font-weight:600;color:#273e56;cursor:pointer;box-shadow:none}
.cbt-option.answer-option:hover{background:#f6fafe;border-color:#a9c4e2}
.cbt-option.answer-option.selected{background:#edf5ff;border-color:#528bce;box-shadow:inset 3px 0 0 #2466a5}
.cbt-option input{width:16px;height:16px;accent-color:#215aa0;flex-shrink:0}
.cbt-option-key{font-weight:850;color:#285f9e;min-width:22px}
.cbt-option-content{flex:1;min-width:0;font-weight:550}
.cbt-option-content .rich-read{display:inline;line-height:1.5}
.cbt-written{max-width:780px}
.cbt-save-message{font-size:12px;color:#6d7e90;margin:0 27px;padding:12px 0;border-top:1px solid #e8eef5}
.cbt-saved{color:#287050;font-weight:700}
.cbt-unsaved{color:#976020;font-weight:750}
.cbt-action-bar{display:flex;gap:9px;flex-wrap:wrap;padding:13px 23px;border-top:1px solid #e3eaf1;background:#f8fafc}
.cbt-action-bar .button{border-radius:4px;font-size:13px;box-shadow:none}
.button-cbt-save{background:#16885d;border-color:#16885d;color:white}
.button-cbt-save:hover{background:#0f6d49}
.button-cbt-review{background:#7763a6;border-color:#7763a6;color:white}
.button-cbt-review:hover{background:#62508e}
.button-cbt-submit{background:#2060a7;border-color:#2060a7;color:white}
.button-cbt-submit:hover{background:#174c8c}
.cbt-bottom-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid #dce5ee;padding:13px 22px;background:#fff}
.cbt-bottom-bar .button{border-radius:4px;box-shadow:none}
.cbt-step-actions,.cbt-final-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cbt-sidebar{min-width:0;background:#f8fafc}
.cbt-palette-panel{background:#fff;padding:0}
.cbt-panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:17px 16px;background:#f1f5fa;border-bottom:1px solid #dbe5ef;color:#234361}
.cbt-panel-title strong{font-size:15px}
.cbt-panel-title span{font-size:12px;color:#657d95}
.cbt-legend{display:grid;grid-template-columns:1fr 1fr;gap:11px 6px;padding:17px 14px;border-bottom:1px solid #e4eaf1}
.cbt-legend-item{display:flex;align-items:center;gap:7px;font-size:11px;color:#3c546e;line-height:1.3}
.cbt-state{display:grid;place-items:center;min-width:38px;min-height:35px;border-radius:4px;border:1px solid #c5ced8;background:#eef0f3;color:#41566a;font-size:13px;font-weight:850}
.cbt-state.not-visited{background:#e9edf2;color:#37485a;border-color:#c8d2dd}
.cbt-state.not-answered{background:#c94848;color:#fff;border-color:#b03939}
.cbt-state.answered{background:#208b5d;color:#fff;border-color:#16714a}
.cbt-state.marked-for-review{background:#7662b1;color:#fff;border-color:#66539d}
.cbt-state.answered-and-marked-for-review{background:#7762ab;color:#fff;border-color:#624d91;position:relative}
.cbt-state.answered-and-marked-for-review:after{content:"";width:7px;height:7px;border-radius:50%;background:#50e4af;position:absolute;right:3px;bottom:3px;border:1px solid white}
.cbt-question-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;padding:18px 15px 22px}
.cbt-question-grid button{min-width:0;min-height:41px;font-size:14px;cursor:pointer;transition:transform .1s}
.cbt-question-grid button:hover{transform:translateY(-1px)}
.cbt-question-grid button.current{outline:3px solid #174b86;outline-offset:2px}
.cbt-palette-bottom{padding:14px;border-top:1px solid #e5edf4}
.cbt-security-note{padding:15px;color:#5c7188;font-size:12px;line-height:1.5;margin:0}
.cbt-palette-mobile{display:none}
.practice-setup-medium{display:flex;align-items:end;gap:16px;flex-wrap:wrap;padding:14px 16px;margin-bottom:17px;border:1px solid #cadcf0;background:#f2f7ff;border-radius:9px}
.practice-language-control{min-width:185px;max-width:300px}
.practice-question-language{display:flex;justify-content:flex-end;align-items:center;background:#f6faff;border-bottom:1px solid #dce7f4;padding:7px 15px;margin-top:15px}
.practice-question-language .practice-language-control{min-width:190px}
@media(max-width:1040px){.cbt-main-grid{grid-template-columns:minmax(0,1fr) 270px}.cbt-exam-header{grid-template-columns:1fr 1fr auto}}
@media(max-width:780px){
 .cbt-main-grid{display:block}.cbt-question-panel{min-height:0;border-right:0}
 .cbt-exam-header{grid-template-columns:1fr auto}.cbt-exam-identity{grid-row:2;grid-column:1/-1;text-align:left;display:flex;flex-wrap:wrap;gap:10px;padding-top:7px;border-top:1px solid #e7edf4}
 .cbt-palette-desktop{display:none}.cbt-palette-mobile{display:block;background:#fff;border-top:1px solid #dce5f1}
 .cbt-palette-mobile summary{padding:15px 18px;background:#eaf2fa;font-weight:850;color:#225384;cursor:pointer}
 .cbt-palette-mobile .cbt-question-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
 .cbt-security-note{display:none}
}
@media(max-width:560px){
 body.cbt-mode .container{width:100%}
 .cbt-exam-shell{margin:0;border:0;border-radius:0}
 .cbt-exam-header{padding:12px 15px;gap:9px}
 .cbt-exam-brand strong{font-size:14px}.cbt-exam-brand small{font-size:10px}.cbt-brand-emblem{width:37px;height:37px}
 .cbt-timer-block{padding:7px 8px;min-width:118px}
 .cbt-timer-block .exam-clock{font-size:20px}
 .cbt-subbar{padding:9px 13px;gap:9px}
 .cbt-server-badge{margin-left:0}
 .cbt-question-top{padding:14px 16px;align-items:start;flex-wrap:wrap}
 .cbt-question-toolbar{padding:10px 16px}
 .cbt-question-body{padding:20px 17px}
 .cbt-question-prompt{font-size:15px}
 .cbt-option.answer-option{padding:12px 10px}
 .cbt-action-bar{padding:14px 12px;gap:8px}
 .cbt-action-bar .button{flex:1 1 calc(50% - 8px)}
 .cbt-bottom-bar{padding:12px;align-items:stretch}
 .cbt-step-actions,.cbt-final-actions{width:100%}
 .cbt-step-actions .button{flex:1}.cbt-final-actions .button{flex:1}
 .cbt-question-grid button{min-height:42px}
 .cbt-palette-mobile .cbt-question-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
 .practice-setup-medium{align-items:stretch;gap:9px}
}


/* Accessible exam final-submission confirmation */
.cbt-submit-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#091b32b5;padding:18px;overflow-y:auto}
.cbt-submit-dialog{background:#fff;color:#203b59;width:min(540px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;border-radius:8px;box-shadow:0 16px 60px #061a3036;padding:26px;border:1px solid #cfdaea}
.cbt-submit-dialog h2{font-size:22px;margin:0 0 12px;color:#1b436c}
.cbt-submit-dialog p{font-size:13px;line-height:1.65;color:#4d6177}
.cbt-submit-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px 0}
.cbt-submit-stats>div{border:1px solid #dce5ef;border-radius:5px;padding:12px;background:#f8fafc;display:flex;align-items:center;gap:10px}
.cbt-submit-stats strong{font-size:21px;color:#234e85;min-width:23px}
.cbt-submit-stats span{font-size:12px;color:#405b74}
.cbt-submit-caution{padding:12px;background:#fff5e5;border:1px solid #f3dfbc;border-radius:5px;color:#805c2d!important}
.cbt-submit-buttons{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
.cbt-submit-buttons .button{border-radius:4px}
@media(max-width:560px){.cbt-submit-dialog{padding:18px}.cbt-submit-buttons .button{flex:1 1 100%}.cbt-submit-stats{gap:7px}}


/* Student Upgrade 1 — minimal, responsive five-destination shell.
   Owner published theme tokens remain authoritative. */
.spa-home-intro{padding:12px 0 24px}
.spa-home-intro h1{font-size:clamp(25px,3vw,34px);font-weight:800;line-height:1.18;letter-spacing:-.8px;color:var(--navy);margin:9px 0 7px}
.spa-home-intro p{font-size:14px;color:var(--muted);margin:0}
.spa-home-grid{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);gap:18px;align-items:stretch}
.spa-home-card{box-shadow:none;min-height:250px;display:flex;flex-direction:column}
.spa-home-card h2{font-size:18px;margin:12px 0 8px;line-height:1.35}
.spa-home-course-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.spa-home-course-heading h2{font-size:21px;margin:8px 0}
.spa-home-recent{font-size:13px;line-height:1.6;margin:12px 0;color:var(--muted)}
.spa-home-recent strong{color:var(--ink)}
.spa-home-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:auto;padding-top:18px}
.spa-home-secondary{padding-top:13px}
.spa-next-steps h2{margin:8px 0 13px}
.spa-next-link{display:flex;align-items:center;gap:13px;width:100%;padding:16px 8px;text-align:left;border:0;border-top:1px solid var(--border);background:transparent;color:var(--ink);border-radius:0}
.spa-next-link:hover,.spa-feature-link:hover{background:var(--soft)}
.spa-next-link>span:nth-child(2){flex:1;display:flex;flex-direction:column}
.spa-next-link strong{font-size:14px}
.spa-next-link small{font-size:12px;color:var(--muted);font-weight:400}
.spa-next-symbol{width:34px;height:34px;display:grid;place-items:center;color:var(--blue);border-radius:9px;background:var(--soft);font-weight:800}
.spa-home-access{margin-top:17px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--border);background:var(--soft);border-radius:12px;padding:13px 17px;font-size:13px;color:var(--ink)}
.spa-home-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin:24px 0 6px;padding:15px 0;border-top:1px solid var(--border);color:var(--muted);font-size:12px}
.spa-owner-sections{margin-top:22px}
.spa-owner-sections .section-heading h2{font-size:16px}
.spa-owner-sections .studio-section .welcome{background:var(--soft);color:var(--ink);padding:24px}
.spa-owner-sections .studio-section .welcome p,.spa-owner-sections .studio-section .welcome .eyebrow{color:var(--muted)}
.spa-owner-sections .studio-section .welcome h1{font-size:22px;color:var(--navy)}
.spa-course-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.spa-course-card{min-height:220px;box-shadow:none}
.spa-course-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.spa-course-icon{display:grid;place-items:center;width:44px;height:44px;font-size:13px;font-weight:900;letter-spacing:.3px;color:var(--blue);border-radius:11px;background:var(--soft)}
.spa-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.spa-feature-card{box-shadow:none}
.spa-feature-card h2{font-size:15px}
.spa-feature-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:transparent;border:0;border-top:1px solid var(--border);border-radius:0;padding:12px 4px;text-align:left;color:var(--ink);font-size:13px;font-weight:600}
.spa-breadcrumb{font-size:12px;color:var(--muted);margin:0 0 18px;overflow-wrap:anywhere}
.spa-taxonomy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.spa-taxonomy-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:2px;min-height:84px;width:100%;text-align:left;border:1px solid var(--border);background:var(--card-background,#fff);border-radius:13px;padding:16px;color:var(--ink)}
.spa-taxonomy-item:hover{border-color:var(--blue);background:var(--soft)}
.spa-taxonomy-title{font-weight:750;grid-column:2;grid-row:1;overflow-wrap:anywhere}
.spa-taxonomy-subtitle{font-size:12px;color:var(--muted);grid-column:2;grid-row:2}
.spa-taxonomy-arrow{grid-column:3;grid-row:1/span 2;font-size:23px;color:var(--muted)}
.spa-taxonomy-num{grid-column:1;grid-row:1/span 2;width:33px;height:33px;background:var(--soft);border-radius:9px;display:grid;place-items:center;color:var(--blue);font-size:12px;font-weight:800}
.spa-taxonomy-item:not(:has(.spa-taxonomy-num)) .spa-taxonomy-title{grid-column:1}
.spa-taxonomy-item:not(:has(.spa-taxonomy-num)) .spa-taxonomy-subtitle{grid-column:1}
.spa-chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.spa-chapter-card{display:flex;flex-direction:column;box-shadow:none;min-height:205px}
.spa-chapter-symbol{font-size:24px;color:var(--blue);line-height:1}
.spa-chapter-card h2{margin:16px 0 7px}
.spa-chapter-card .spa-chapter-card-footer{margin-top:auto;padding-top:18px}
.spa-chapter-topics{margin-top:28px}
.spa-chapter-topics h3{font-size:14px;color:var(--ink);margin:0 0 12px}
.nav-shell{justify-content:flex-start;overflow-x:auto}
.nav-shell .nav-item[aria-current=page]{background:var(--soft);color:var(--blue)}
@media(max-width:850px){.spa-home-grid{grid-template-columns:1fr 1fr;gap:12px}.spa-home-card{min-height:245px}.spa-home-actions .button{flex:1;text-align:center}.spa-feature-grid,.spa-chapter-grid,.spa-course-list{gap:12px}}
@media(max-width:690px){.spa-home-grid,.spa-course-list,.spa-feature-grid,.spa-taxonomy-grid,.spa-chapter-grid{grid-template-columns:1fr}.spa-home-card{min-height:auto}.spa-home-intro{padding-top:4px}.spa-home-intro h1{font-size:25px}.spa-home-course-heading h2{font-size:18px}.spa-home-actions .button{flex:1}.spa-home-footer{align-items:flex-start}.spa-taxonomy-item{min-height:72px}}
@media(prefers-reduced-motion:reduce){.spa-next-link,.spa-taxonomy-item{transition:none}}


/* Student Upgrade 3 — student-safe inline textbook and focused Practice player. */
.spa-textbook-index,.spa-textbook-question{box-shadow:none;margin:16px 0}
.spa-textbook-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.spa-textbook-toolbar>.field{width:min(360px,100%);min-width:230px}
.spa-textbook-toolbar .field label,.spa-textbook-language label{color:var(--muted);font-size:12px}
.spa-textbook-toolbar select,.spa-textbook-language select{width:100%;border:1px solid var(--border);border-radius:9px;background:var(--card-background,#fff);color:var(--ink);padding:11px 12px}
.spa-textbook-numbers{display:flex;flex-wrap:wrap;gap:9px;padding-top:14px;border-top:1px solid var(--border)}
.spa-textbook-number{min-width:58px;min-height:43px;padding:9px 12px;border:1px solid var(--border);border-radius:9px;background:var(--card-background,#fff);color:var(--navy);font-weight:750;line-height:1.2}
.spa-textbook-number:hover,.spa-textbook-number.active{border-color:var(--blue);background:var(--soft);color:var(--blue)}
.spa-textbook-number:focus-visible{outline:3px solid #3977d266;outline-offset:2px}
.spa-textbook-more{margin-top:15px}
.spa-textbook-hint{border:1px dashed var(--border);border-radius:12px;padding:18px 22px;font-size:13px;color:var(--muted);background:var(--card-background,#fff)}
.spa-textbook-question-head{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:14px;padding-bottom:17px;border-bottom:1px solid var(--border)}
.spa-textbook-question-head h2{font-size:24px;font-weight:800;margin:5px 0 0;letter-spacing:-.4px}
.spa-textbook-language{min-width:175px;max-width:230px}
.spa-textbook-stem{font-size:17px;line-height:1.85;margin:22px 0 16px}
.spa-textbook-option{display:flex;gap:13px;align-items:flex-start;padding:13px 16px;border:1px solid var(--border);border-radius:11px;margin-bottom:9px;line-height:1.65;font-size:14px}
.spa-textbook-option>b{display:grid;place-items:center;min-width:28px;min-height:28px;color:var(--blue);border-radius:7px;background:var(--soft)}
.spa-textbook-option>.rich-read{min-width:0}
.spa-textbook-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:18px;margin-top:19px;border-top:1px solid var(--border)}
.spa-saved-indicator{display:inline-flex;align-items:center;border-radius:8px;background:#eaf7f1;color:#17644c;font-weight:700;font-size:13px;padding:10px 12px}
.spa-textbook-solution{margin-top:20px;padding:18px 20px;border:1px solid var(--border);border-radius:12px;background:var(--soft)}
.spa-textbook-solution h3{font-size:16px;margin:0 0 13px;color:var(--navy)}
.spa-textbook-answer-key{font-size:13px;color:var(--ink)}
body.practice-mode{background:#edf2f9}
body.practice-mode .site-header,body.practice-mode #mainNav,body.practice-mode .footer{display:none!important}
body.practice-mode .container{width:min(1440px,calc(100% - 28px));max-width:none}
body.practice-mode #main{min-height:calc(100dvh - 24px)}
body.practice-mode .page-head{margin-top:17px}
body.practice-mode .page-head h1{font-size:22px}
body.practice-mode .page-head p{font-size:13px}
.spa-practice-player-grid{grid-template-columns:minmax(0,1fr) minmax(250px,290px);align-items:start;gap:16px}
body.practice-mode .spa-practice-player-grid>.card{box-shadow:none;border-radius:12px}
body.practice-mode .spa-practice-player-grid .question-stem{font-size:17px;line-height:1.85}
body.practice-mode .spa-practice-player-grid .question-palette{grid-template-columns:repeat(5,minmax(0,1fr))}
body.practice-mode .spa-practice-player-grid .practice-controls{display:flex;justify-content:flex-start;gap:10px}
body.practice-mode .practice-language-control{max-width:240px}
body.practice-mode .practice-question-language{padding:13px 0 0}
@media(max-width:820px){.spa-practice-player-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){
  body.practice-mode .container{width:min(100% - 18px,1440px)}
  .spa-textbook-toolbar{align-items:stretch}
  .spa-textbook-toolbar>.field{width:100%;min-width:0}
  .spa-textbook-number{min-width:51px;min-height:42px;padding:8px}
  .spa-textbook-language{width:100%;min-width:0;max-width:none}
  .spa-textbook-stem{font-size:16px}
  .spa-textbook-option{padding:12px}
  .spa-textbook-actions .button{flex:1}
  body.practice-mode .spa-practice-player-grid .question-stem{font-size:16px}
}


/* Scientific-content renderer: KaTeX/mhchem, responsive and screen-reader friendly. */
.spa-scientific-read{font-size:inherit;line-height:1.8;min-width:0}
.spa-science-formula{display:inline-block;max-width:100%;vertical-align:middle;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding:1px 3px}
.spa-science-formula.spa-science-display{display:block;text-align:center;margin:14px 0;padding:12px 5px}
.spa-science-formula .katex{font-size:1.06em;line-height:1.3}
.spa-science-formula .katex-display{max-width:100%;margin:0;overflow-x:auto;overflow-y:hidden}
.spa-scientific-read .katex span+span:before{content:none!important}
.spa-science-fallback{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--border);background:var(--soft);color:var(--ink);padding:3px 5px;border-radius:6px;font-size:.9em}
.spa-chemical-structure{display:inline-flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:5px 9px;border:1px solid var(--border);border-radius:7px;background:var(--soft)}
.spa-chemical-label{font-size:.84em;font-weight:650;color:var(--muted)}
.spa-chemical-smiles{font-size:.9em;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--ink)}
.spa-textbook-stem .spa-science-formula,.cbt-question-prompt .spa-science-formula{font-weight:500}
@media(max-width:650px){
 .spa-science-formula{max-width:min(100%,calc(100vw - 55px));font-size:.95em}
 .spa-science-formula.spa-science-display{padding:8px 2px}
 .spa-scientific-read{overflow-wrap:anywhere}
}


/* Student Upgrade 4 — focused government-style Test Centre, release-gated paper review. */
body.cbt-mode{background:#e9eef6}
body.cbt-mode .cbt-exam-shell{box-shadow:none;border:1px solid #cdd9e7}
.spa-exam-official-card{box-shadow:none;border:1px solid #dce5f1;border-radius:12px;padding:23px;max-width:850px}
.spa-exam-official-card h2{font-size:19px;line-height:1.35;margin:14px 0}
.spa-exam-official-card .inline-row{justify-content:space-between}
.spa-exam-official-card .button{margin-top:16px}
.cbt-section-single{font-weight:700;font-size:12px;color:#26476a;padding:5px 8px;border-radius:5px;background:#f3f7fb}
.cbt-palette-sections{padding:10px 15px;border-bottom:1px solid #e4ebf3;display:flex;flex-wrap:wrap;gap:8px}
.cbt-palette-sections span{font-size:11px;font-weight:800;color:#284d74;border:1px solid #d1dfef;padding:7px 10px;background:#f7fafe;border-radius:5px}
.cbt-exam-header{background:#fff}
.cbt-question-panel{background:#fff}
.cbt-main-grid{min-height:70vh}
.cbt-exam-header,.cbt-question-top,.cbt-bottom-bar{font-variant-numeric:tabular-nums}
.cbt-question-prompt{font-size:17px}
.cbt-save-message{min-height:43px}
.cbt-legend-item{font-size:11px}
.cbt-palette-desktop .cbt-palette-panel{border-left:1px solid #e0e8f2}
.cbt-action-bar{position:relative;z-index:1}
.cbt-action-bar .button{min-height:43px}
.cbt-bottom-bar .button{min-height:42px}
.cbt-submit-dialog{width:min(625px,100%);box-shadow:0 30px 90px #0b244d55}
.spa-mock-summary{background:#f7faff;border:1px solid #dce8f5;border-radius:12px;padding:16px 18px;display:grid;gap:8px;margin:18px 0 0}
.spa-mock-summary>strong{font-size:14px;color:#153d68}
.spa-mock-summary>div{font-size:13px;color:#335b82}
.spa-mock-summary .small{margin:2px 0 0}
.spa-mock-preview-actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}
.spa-mock-preview-ready{background:#f2f8f4;border:1px solid #cde5d4;border-radius:11px;color:#225c43;padding:15px 17px;margin-top:16px}
.spa-mock-preview-ready p{margin:6px 0 0;font-size:13px}
.cbt-paper-notice{border:1px solid #d6e3f3;border-radius:8px;background:#f1f6fc;color:#234870;font-size:13px;padding:13px 17px;margin:15px 0 21px}
.cbt-paper-grid{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:16px;align-items:start}
.cbt-paper-content{border:1px solid #dce5ef;border-radius:12px;background:#fff;min-width:0;overflow:hidden}
.cbt-paper-header{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:20px 24px;border-bottom:1px solid #e2ebf5}
.cbt-paper-header h2{margin:5px 0 0;font-size:20px;color:#153e68}
.cbt-paper-marks{font-size:12px;font-weight:700;color:#436484}
.cbt-paper-toolbar{background:#f9fbfd;border-bottom:1px solid #e4ebf5;padding:13px 24px;display:flex;justify-content:flex-end}
.cbt-paper-medium{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;color:#284f75}
.cbt-paper-medium select{border:1px solid #ccdcf0;border-radius:7px;padding:9px 12px;background:#fff;color:#24476c}
.cbt-paper-stem{padding:24px 24px 14px;font-size:16px;line-height:1.8;color:#152d4a}
.cbt-paper-options{padding:0 24px 14px;display:grid;gap:10px}
.cbt-paper-option{display:flex;gap:12px;align-items:flex-start;border:1px solid #e1e8f1;border-radius:9px;padding:12px 15px;font-size:14px;min-width:0}
.cbt-paper-option>strong{min-width:25px;color:#255e99}
.cbt-paper-option .rich-read{flex:1;min-width:0}
.cbt-paper-response{margin:9px 24px 17px;background:#f4f8fc;border:1px solid #dce7f4;border-radius:9px;padding:13px 16px;display:grid;gap:6px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}
.cbt-paper-response strong{color:#264a70}
.cbt-paper-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 24px;padding:17px 0;border-top:1px solid #e5ecf5}
.cbt-paper-content>.muted.small{margin:0 24px 22px;line-height:1.6}
.cbt-paper-navigation{background:#fff;border:1px solid #dce5ef;border-radius:12px;padding:18px 14px;min-width:0}
.cbt-paper-navigation>strong{font-size:15px;color:#1e4168}
.cbt-paper-status{color:#5f7790;font-size:12px;margin:5px 0 12px}
.cbt-paper-groups{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.cbt-paper-groups button{border:1px solid #d5e1ef;color:#2e5375;background:#f7fafe;border-radius:6px;padding:7px 10px;font-size:12px;font-weight:750}
.cbt-paper-groups button.selected{background:#e8f1fb;border-color:#7fa7d8}
.cbt-paper-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.cbt-paper-palette button{min-width:0;min-height:40px;cursor:pointer}
.cbt-paper-palette button.current{outline:3px solid #245c9c;outline-offset:2px}
.cbt-paper-legend{margin-top:20px;border-top:1px solid #e9eef5;padding-top:13px;display:grid;gap:7px}
.cbt-paper-legend span{font-size:11px;color:#5b708a}
.cbt-results-actions{margin:15px 0 4px;display:flex;gap:10px}
@media(max-width:900px){.cbt-paper-grid{grid-template-columns:minmax(0,1fr) 235px}}
@media(max-width:740px){
 .cbt-paper-grid{grid-template-columns:1fr}
 .cbt-paper-navigation{grid-row:1}
 .cbt-paper-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cbt-paper-header,.cbt-paper-toolbar{padding:15px 18px}
 .cbt-paper-stem{padding:19px 18px 10px}
 .cbt-paper-options{padding:0 18px 12px}
 .cbt-paper-response{margin:9px 18px 13px}
 .cbt-paper-actions{margin:0 18px}
 .cbt-paper-content>.muted.small{margin:0 18px 16px}
 .cbt-main-grid{min-height:0}
 .cbt-exam-shell{border-radius:0}
}
@media(max-width:560px){
 .cbt-section-single{order:3;flex-basis:100%}
 .cbt-paper-grid{gap:12px}
 .cbt-paper-marks{width:100%}
 .cbt-paper-palette{gap:6px}
 .cbt-paper-actions .button{flex:1}
 .spa-exam-official-card{padding:16px}
 .spa-mock-preview-actions .button{width:100%}
}
@media(prefers-reduced-motion:reduce){.cbt-paper-palette button,.cbt-paper-groups button{transition:none}}


/* Official CBT instructions: required before creating a server attempt. */
.spa-official-instructions{max-width:880px;margin:18px auto;padding:26px 32px;box-shadow:none}
.spa-official-instructions h2{font-size:21px;margin:10px 0 15px;color:var(--navy)}
.spa-official-instructions h3{font-size:15px;margin:24px 0 10px;color:var(--navy)}
.spa-instruction-meta{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:19px;border-bottom:1px solid var(--border)}
.spa-instruction-meta span{font-size:12px;color:#436480;background:#f3f7fc;border-radius:6px;padding:8px 10px}
.spa-instruction-list{padding-left:24px;margin:0;display:grid;gap:12px;line-height:1.65;font-size:14px;color:var(--ink)}
.spa-instruction-consent{display:flex;align-items:flex-start;gap:10px;margin:25px 0 15px;padding:15px 17px;border:1px solid #cbdff1;border-radius:9px;background:#f4f8fd;font-size:13px;font-weight:700;line-height:1.55;color:var(--navy)}
.spa-instruction-consent input{width:18px;height:18px;flex:none;accent-color:var(--blue);margin-top:1px}
.spa-instruction-actions{display:flex;justify-content:flex-end;gap:11px;flex-wrap:wrap}
.spa-instruction-actions .button{min-height:43px}
@media(max-width:650px){.spa-official-instructions{padding:18px 16px}.spa-instruction-actions .button{flex:1}.spa-instruction-list{font-size:13px;padding-left:21px}}


/* Student Upgrade 5 — Results and review, restrained premium academic UI. */
.spa-analytics-tabs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:16px 0 20px;padding:6px;background:#f0f4f9;border:1px solid #dfe8f2;border-radius:11px}
.spa-analytics-tabs button{border:0;background:transparent;border-radius:8px;color:#496784;font-size:13px;font-weight:750;padding:12px 15px;cursor:pointer}
.spa-analytics-tabs button[aria-current=page]{background:white;color:#17477b;box-shadow:0 2px 8px #112c5215}
.spa-analytics-filters{display:flex;align-items:end;flex-wrap:wrap;gap:11px;background:white;border:1px solid #e1e8f2;border-radius:12px;padding:15px 17px;margin:0 0 19px}
.spa-analytics-filters .field{flex:1 1 170px;min-width:130px;margin:0}
.spa-analytics-filters .field label{font-size:12px;color:#58718d;font-weight:700}
.spa-analytics-filters .field select{border:1px solid #d5e0ef;border-radius:8px;background:#fff;padding:11px 12px;width:100%;color:#254568}
.spa-analytics-filters .button{min-height:43px}
.spa-analytics-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin:0 0 19px}
.spa-analytics-metric{background:#fff;border:1px solid #e0e8f2;border-radius:12px;padding:17px 19px;display:grid;gap:7px}
.spa-analytics-metric>span{font-size:12px;color:#5a718a;font-weight:650}
.spa-analytics-metric>strong{font-size:23px;letter-spacing:-.4px;line-height:1.25;color:#173d68;overflow-wrap:anywhere}
.spa-analytics-metric>small{font-size:11px;line-height:1.45;color:#718299}
.spa-analytics-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:15px;margin:0 0 20px}
.spa-analytics-card{background:#fff;border:1px solid #dfe8f2;border-radius:12px;padding:20px 22px;margin:0 0 18px;min-width:0}
.spa-analytics-card h3{font-size:16px;color:#183d69;margin:0 0 14px}
.spa-analytics-bar-row{margin:0 0 14px}
.spa-analytics-bar-row>div:first-child{display:flex;gap:10px;justify-content:space-between;font-size:12px;line-height:1.4;color:#4d6780;margin:0 0 7px}
.spa-analytics-bar-row strong{color:#173f6c;font-size:12px}
.spa-analytics-bar-track{height:8px;border-radius:20px;background:#eaf0f7;overflow:hidden}
.spa-analytics-bar-track>div{height:100%;background:#2c6da8;border-radius:20px}
.spa-result-list-row{padding:15px 0;display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #e9eef5}
.spa-result-list-row:first-of-type{border-top:0}
.spa-result-list-row>div{display:grid;gap:5px;min-width:0}
.spa-result-list-row strong{color:#173e69;font-size:14px}
.spa-result-list-row small{display:block;font-size:12px;line-height:1.5;color:#6b7f93}
.spa-result-list-row .button{white-space:nowrap}
.spa-analytics-empty{padding:20px 12px;text-align:center;color:#5e7289;line-height:1.5}
.spa-analytics-empty strong{color:#365c7d;font-size:14px}
.spa-analytics-empty p{font-size:12px;margin:7px 0 0}
.spa-analytics-warning{background:#fff8ed;border:1px solid #f0ddba;border-radius:10px;color:#805d27;font-size:13px;line-height:1.5;padding:13px 17px;margin:0 0 18px}
.spa-analytics-warning p{margin:2px 0}
.spa-analytics-held{background:#f4f7fb;border:1px solid #dfe8f4;border-radius:9px;color:#4d6580;padding:15px 18px;line-height:1.6;font-size:13px}
.spa-analytics-disclaimer{font-size:11px;color:#697f97;line-height:1.6;margin:13px 0 20px}
.spa-result-detail{border-color:#bed5ef}
.spa-result-detail>.inline-row{justify-content:space-between;align-items:center;margin-bottom:14px}
.spa-result-detail .spa-analytics-metrics{margin:10px 0 15px}
.spa-review-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.spa-review-metrics>div{border:1px solid #e0e8f2;background:#fff;border-radius:11px;padding:15px 19px;display:grid;gap:7px}
.spa-review-metrics span{font-size:12px;color:#627993}
.spa-review-metrics strong{font-size:22px;line-height:1.2;color:#184776}
.spa-review-filter-panel,.spa-review-list,.spa-review-detail{background:#fff;border:1px solid #dee7f2;border-radius:12px;padding:21px 23px;margin-bottom:17px;min-width:0}
.spa-review-filter-panel h2,.spa-review-list h2,.spa-review-detail h2{font-size:16px;font-weight:800;color:#193e66;margin:0}
.spa-review-filter-panel>.inline-row,.spa-review-list>.inline-row{justify-content:space-between;align-items:center;gap:13px;margin-bottom:16px}
.spa-review-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.spa-review-filters>.field{min-width:0}
.spa-review-filters label{font-size:12px;color:#59738e;font-weight:700}
.spa-review-filters select{width:100%;border:1px solid #d7e3f0;border-radius:8px;background:#fff;padding:11px;color:#254d72;min-width:0}
.spa-review-list-row{padding:15px 0;border-top:1px solid #e9eef5;display:flex;align-items:center;justify-content:space-between;gap:13px}
.spa-review-list-row>div{display:grid;gap:6px}
.spa-review-list-row strong{font-size:14px;color:#214971}
.spa-review-list-row p{font-size:12px;color:#687e96;margin:0}
.spa-review-source{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spa-review-source-kind{background:#edf4fc;color:#275a90;border-radius:5px;padding:4px 7px;font-size:11px;font-weight:800}
.spa-review-status{color:#5f7188;font-size:11px;font-weight:650}
.spa-review-load{border-top:1px solid #e9eef5;padding-top:17px}
.spa-review-detail{border-color:#bcd5f0}
.spa-review-detail>.inline-row{justify-content:space-between;align-items:center;margin-bottom:18px}
.spa-review-printed{font-size:13px;font-weight:800;color:#285a8a;background:#f1f6fc;border-radius:7px;display:inline-flex;padding:8px 12px;margin-bottom:17px}
.spa-review-stem{font-size:16px;line-height:1.85;margin:20px 0}
.spa-review-option{display:flex;gap:13px;border:1px solid #e1eaf3;border-radius:8px;padding:12px 16px;margin:0 0 9px;font-size:14px;line-height:1.7}
.spa-review-option>strong{min-width:22px;color:#2866a1}
.spa-review-correct{padding:13px 16px;border-radius:8px;background:#f0f9f4;border:1px solid #cae5d5;color:#1f6b47;font-size:13px;margin-top:17px}
.spa-review-locked{padding:13px 16px;border-radius:8px;background:#f6f8fb;color:#526e89;border:1px solid #e0e7f0;font-size:12px;margin-top:17px}
.spa-review-explanation{border:1px solid #d4e5f6;background:#f4f8fd;border-radius:10px;padding:18px 20px;margin-top:18px}
.spa-review-explanation h3{font-size:14px;color:#1c4e7d;margin:7px 0 12px}
.spa-review-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:17px 0 0;margin-top:19px;border-top:1px solid #e6edf5}
.spa-review-disclaimer{font-size:11px;color:#73869a;line-height:1.55}
@media(max-width:900px){.spa-review-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
 .spa-analytics-tabs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:thin}
 .spa-analytics-tabs button{flex:0 0 auto;white-space:nowrap;padding:10px 12px}
 .spa-analytics-filters{align-items:stretch}
 .spa-analytics-filters .field{min-width:100%;flex-basis:100%}
 .spa-analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .spa-analytics-metric{padding:13px 15px}
 .spa-analytics-metric>strong{font-size:19px}
 .spa-analytics-card,.spa-review-filter-panel,.spa-review-list,.spa-review-detail{padding:16px}
 .spa-analytics-charts{grid-template-columns:1fr}
 .spa-review-filters{grid-template-columns:1fr}
 .spa-review-metrics{gap:8px}
 .spa-review-metrics>div{padding:11px}
 .spa-review-metrics strong{font-size:19px}
 .spa-result-list-row{align-items:flex-start;flex-wrap:wrap}
 .spa-result-list-row .button{width:100%}
 .spa-review-list-row{align-items:flex-start;flex-wrap:wrap}
 .spa-review-list-row .button{width:100%}
 .spa-review-actions .button{flex:1}
}


/* Final student integration: server-derived trial and purchase notices. */
.spa-home-access{display:flex;align-items:center;gap:15px;justify-content:space-between;flex-wrap:wrap;border:1px solid #d9e4f1;border-radius:11px;background:#f5f8fc;padding:16px 20px;line-height:1.55}
.spa-access-message{flex:1 1 250px;min-width:0}
.spa-access-message strong{font-size:13px;color:#244c74;font-weight:800}
.spa-access-message p{font-size:13px;line-height:1.6;color:#526d86;margin:5px 0}
.spa-access-message small{font-size:11px;color:#6f8097}
.spa-trial-practice-alert{display:grid;gap:14px;padding:10px 0}
.spa-trial-practice-alert .danger-note{line-height:1.6;margin:0}
.spa-trial-practice-alert .button,.spa-trial-cta .button{justify-self:start}
.spa-trial-cta{padding:12px 0 2px;display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:650px){
 .spa-home-access{align-items:stretch;padding:14px 16px}
 .spa-home-access>.button,.spa-trial-practice-alert .button,.spa-trial-cta .button{width:100%;text-align:center}
}

/* Owner-published, access-controlled Student Studio images. */
.spa-studio-media{display:block;max-width:100%;width:auto;height:auto;max-height:300px;object-fit:contain;border-radius:var(--card-radius,14px);margin-top:1rem}

/* Route transitions keep the previous page visible and accessible while data arrives. */
.nav-shell[aria-busy="true"]{position:relative}
.nav-shell[aria-busy="true"]::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(90deg,transparent,#2b63ba,transparent);background-size:200% 100%;animation:spa-route-loading 1.1s ease-in-out infinite}
@keyframes spa-route-loading{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.nav-shell[aria-busy="true"]::after{animation:none;background:#2b63ba}}
