@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:400;font-display:swap;src:url('assets/nunito-sans-400.ttf') format('truetype')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:500;font-display:swap;src:url('assets/nunito-sans-500.ttf') format('truetype')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:600;font-display:swap;src:url('assets/nunito-sans-600.ttf') format('truetype')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:700;font-display:swap;src:url('assets/nunito-sans-700.ttf') format('truetype')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:800;font-display:swap;src:url('assets/nunito-sans-800.ttf') format('truetype')}

/* A compact student workspace, with Vector's teal and yellow leading the way. */
:root{
  --ink:#1b2c42;--muted:#59656b;--green:#254c52;--lime:#f5e6ad;
  --paper:#fcfbf7;--white:#fff;--line:#dbded8;--amber:#78571f;
  --slate:#456269;--sage:#e9f0eb;--butter:#f9efce;--yellow:#f4d77f;
  --body-font:'Nunito Sans',Arial,sans-serif;--heading-font:var(--body-font);
  --supporting-copy-size:14px;
}
body{font-family:var(--body-font);font-size:16px;line-height:1.55;color:var(--ink);background:#eeeee8;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font-family:var(--body-font)}
h1,h2,h3,h4,#main h1,#main h2,#main h3{font-family:var(--body-font);font-weight:800;letter-spacing:-.45px;line-height:1.25;color:var(--ink)}
#main h1{font-size:30px;margin:0 0 10px;max-width:none}
#main h2{font-size:21px;margin:0 0 10px}
#main h3{font-size:17px;letter-spacing:-.15px}
#main p{line-height:1.6}
a,button{transition:background .15s,color .15s,border-color .15s;touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #426c73;outline-offset:3px}
main:focus,#focus-question-title:focus,#quiz-result-title:focus{outline:none}
button:disabled{cursor:not-allowed}
.shell{background:var(--paper);max-width:720px;min-height:100dvh}
.mobile-header{padding:14px 20px 13px;border-bottom:1px solid var(--line);background:var(--paper);align-items:center}
.mobile-wordmark{font-size:0;line-height:1.15;letter-spacing:0}
.mobile-wordmark .wordmark-name{font:bold 23px Georgia,'Times New Roman',serif;letter-spacing:-.5px;color:#14233b;transform:none;margin:0;display:block}
.mobile-wordmark small{font-size:11px;letter-spacing:.25px;font-weight:600;margin-top:4px;color:var(--muted);text-transform:none}
.mobile-header>div{display:none}
.mobile-calendar{height:48px;width:48px;background:#f9edc5;border:1px solid #e6d597;border-radius:10px;color:#254c52}
.mobile-calendar:hover{background:#f4df9a}
.mobile-calendar svg{width:21px;height:21px}
#main{padding:20px 20px 24px;min-height:calc(100dvh - 174px)}
.main-shell>footer,.hosted-app .main-shell>footer{padding:20px 24px 110px;font-size:12px;color:var(--muted);align-items:flex-start;line-height:1.5}
.main-shell>footer .text-button{font-size:13px}
.bottom-nav,.hosted-app .bottom-nav{width:100%;max-width:720px;background:#fff;border-top:1px solid #cdd4ce;backdrop-filter:none;box-shadow:none;padding:6px 10px calc(6px + env(safe-area-inset-bottom));gap:4px}
.bottom-nav a{border-radius:9px;min-height:56px;font-size:12px;font-weight:800;color:#59656b;padding:7px 3px;gap:4px}
.bottom-nav a svg{width:22px;height:22px;stroke-width:1.7}
.bottom-nav a.active{background:#254c52;color:#fff}
.bottom-nav a.active svg{color:var(--yellow)}
.bottom-nav a:hover{background:#f2f4ef}
.bottom-nav a.active:hover{background:#1d3e43}
.heading,.quiz-library-heading{margin:0 0 18px}
.heading h1,.quiz-library-heading h1{margin:0 0 9px}
.heading .sub,.quiz-library-heading>.sub{font-size:16px;color:var(--muted);max-width:52ch}
.heading .course-pill{display:none}
.eyebrow,.mini-title{font-family:var(--body-font);font-size:13px;letter-spacing:0;font-weight:700;color:var(--muted);text-transform:none}
#main :is(.helper,.compact-note,.stat-label,.confidence-labels,.mini-title,.library-meta,.compact-disclosure,.badge,.eyebrow,.inline-link,.text-button,.note,.course-grade,.course-meta,.today-date,.course-context-picker label,.home-shortcuts span,.home-metrics span,.week-header>span,.section-title>span,.unit-progress-row span,.unit-progress-row strong,.quiz-list-copy p,.quiz-list-action,.focus-top>span,.plan-step-copy p,.more-menu small,small){font-size:14px}
.sub,.preserve{font-size:16px}
.helper,.compact-note,.muted{color:var(--muted);line-height:1.55}
label,.label,.field label{font-size:14px;font-weight:700;color:var(--ink);line-height:1.4}
.course-context-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'label browse' 'course course';gap:0 12px;margin:0 0 20px;align-items:center}
.course-context-picker label{grid-area:label;letter-spacing:0;text-transform:none;font-weight:800;margin:0;color:var(--muted)}
.course-context-picker select{grid-area:course;width:100%;min-width:0;background:#fff;font-size:16px!important;font-weight:600;border-radius:8px;box-shadow:none}
.course-context-picker>a{grid-area:browse;justify-self:end;display:flex;align-items:center;gap:5px;min-height:48px;font-size:14px;color:#315c63;font-weight:700;margin:0;padding:8px 0;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.course-context-picker>a svg{width:15px;height:15px}
.course-switch label,.unit-switcher label{font-size:14px;letter-spacing:0;text-transform:none;color:var(--muted)}
input:not([type=radio]),select,textarea{font-size:16px!important;line-height:1.45;background:white;color:var(--ink);border:1px solid #b8c2bd;border-radius:7px;min-height:48px;box-shadow:none;padding:11px 12px}
select{padding-right:30px}
textarea{min-height:120px}
input::placeholder,textarea::placeholder{color:#6b7779;opacity:1}
.field{margin-bottom:21px}
.btn{font-size:15px;font-weight:800;letter-spacing:0;min-height:48px;border-radius:8px;padding:12px 18px;background:var(--green);color:#fff;box-shadow:none;line-height:1.35}
.btn:hover{background:#1d3e43}
.btn.lime{background:var(--green);color:white;border:1px solid var(--green)}
.btn.lime:hover{background:#1d3e43}
.btn.secondary{background:transparent;color:#254c52;border:1px solid #9dada8;box-shadow:none}
.btn.secondary:hover{background:#eaf0eb}
.btn:disabled{opacity:1;background:#e8ebe5;color:#727d77;border-color:#d7ddd5;box-shadow:none}
.btn svg{width:18px;height:18px;stroke-width:1.8}
.text-button{font-size:14px;color:#315c63;font-weight:700;text-underline-offset:4px;min-height:48px;padding:9px 0}
.inline-link{font-size:14px;color:#315c63;font-weight:700;text-underline-offset:4px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px;box-shadow:none}
.card h2{font-size:21px}
.card h3{font-size:17px}
.stack{gap:22px}
.two-col{gap:24px}
.badge{background:#eaf0eb;color:#36534a;border-radius:4px;padding:3px 7px;font-size:13px;font-weight:700;letter-spacing:0}
.badge.amber{background:#f9efce;color:#735320}
.feature-icon{background:transparent;color:#44685e;border-radius:0;width:32px;height:32px}
.feature-icon svg{width:23px;height:23px;stroke-width:1.7}
.note{background:#f3f4ed;border:0;border-left:3px solid #c6d3c7;border-radius:0;padding:13px 16px;color:#526159;font-size:14px;line-height:1.6;margin-top:20px}
.note strong{color:#28453a}
.feedback{background:#edf4ed;border:1px solid #cadbc9;border-radius:7px;padding:16px}
.feedback.warn{background:#fbf3df;border-color:#e5d4ac}
.feedback h3{font-size:17px}
.compact-disclosure,.library-note,.assessment-rules{font-size:14px;color:var(--muted);margin:20px 0;line-height:1.6}
.compact-disclosure summary,.library-note summary,.assessment-rules summary{min-height:48px;font-size:14px;color:#4c6264;display:flex;align-items:center;cursor:pointer;font-weight:600;gap:8px}
.compact-disclosure summary:before{content:none}
.compact-disclosure summary:after,.library-note summary:after,.assessment-rules summary:after{content:'+';font-size:20px;line-height:1;margin-left:auto;color:#5d706e}
.compact-disclosure[open]>summary:after,.library-note[open]>summary:after,.assessment-rules[open]>summary:after{content:'−'}
.compact-disclosure p,.library-note p,.assessment-rules p{font-size:14px;margin:7px 0 13px}
/* Home: one piece of work, then the student's own list. */
.student-home-heading{margin:0 0 10px}
.student-home-heading .home-date{font-size:14px;color:var(--muted);margin:0 0 5px}
#main .student-home-heading h1{font-size:30px;margin:0}
.home-task,.next-action-card{background:#254c52;color:#fff;border:1px solid #254c52;border-radius:12px;padding:22px;margin:0 0 22px;box-shadow:none;position:relative}
.home-task .home-task-label,.home-task .section-kicker{color:#f6df9d;font-size:14px;font-weight:800;min-height:27px;margin:0 0 8px;padding-right:40px}
.home-task-icon{position:absolute;top:17px;right:18px;display:grid;place-items:center;width:36px;height:36px;border:1px solid #75928e;border-radius:8px;color:#f4d77f;background:#315d61}
.home-task-icon svg{width:21px;height:21px}
#main .home-task h2{font-size:24px;max-width:100%;margin:0 0 9px;color:#fff}
.home-task p{font-size:15px;color:#e2ece9;max-width:50ch;margin:0 0 18px}
.home-task .btn{margin-top:0;min-width:160px;background:var(--yellow);color:#193c41;border:1px solid var(--yellow)}
.home-task .btn:hover{background:#ffe39a;border-color:#ffe39a}
.home-task .btn:focus-visible{outline-color:#fff}
.home-task:after,.next-action-card:after,.today-heading-mark:after,.unit-locked-card:after{content:none}
.next-action-art,.today-heading-mark,.result-celebration{display:none}
.home-section{margin:24px 0}
.home-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px}
#main .home-section>header h2{font-size:18px;margin:0}
.home-section>header .inline-link{margin:0;min-height:48px;display:flex;align-items:center}
.home-work-list{display:grid;gap:0;border-top:1px solid var(--line)}
.home-work-list>a{display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:16px 0;text-decoration:none;min-height:76px}
.home-work-list>a:hover{background:#f4f6f0}
.home-work-list>a>span,.student-links>a>span{flex:1;min-width:0}
.home-work-list strong,.student-links strong{display:block;font-size:16px;font-weight:800;color:var(--ink)}
.home-work-list small,.student-links small{display:block;font-size:14px;color:var(--muted);margin-top:4px;line-height:1.45}
.home-work-list svg,.student-links svg{width:20px;height:20px;flex-shrink:0;color:#4e7067}
.student-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0}
.student-links>a{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:12px;align-items:start;min-width:0;min-height:144px;padding:16px;border:1px solid #ccddd5;border-radius:10px;background:#edf5f0;text-decoration:none}
.student-links>a>span{grid-column:1/-1;grid-row:2;align-self:start}
.student-links>a>svg:first-child{grid-column:1;grid-row:1;width:36px;height:36px;padding:8px;border-radius:8px;background:#d5e7dd;color:#254c52;margin:0}
.student-links>a>svg:last-child{grid-column:2;grid-row:1;align-self:center}
.student-links>a:nth-child(2),.student-links>a.student-link-question{background:#fff5d8;border-color:#e8dba8}
.student-links>a:nth-child(2)>svg:first-child,.student-link-question>svg:first-child{background:#f2dc95;color:#66501e}
.student-links>a:nth-child(3),.student-links>a.student-link-booking{grid-column:1/-1;display:flex;align-items:center;gap:13px;min-height:86px;background:#fff;border-color:var(--line)}
.student-links>a:nth-child(3)>svg:first-child,.student-link-booking>svg:first-child{background:#e3ebed;color:#315c63}
.student-links>a:hover{border-color:#7d9b8c;background:#e3f0e8}
.student-links>a:nth-child(2):hover{border-color:#b9a467;background:#fff0c1}
.student-links>a:nth-child(3):hover{background:#f1f5f2}
.home-results-link{display:inline-flex;align-items:center;min-height:48px;margin:12px 0 0}
.waiting-review{background:#fbf2d8;border:0;border-left:3px solid #d5bd79;border-radius:0;padding:14px 17px;margin:22px 0;font-size:15px}
.waiting-review strong{font-size:15px}
.waiting-review small{font-size:14px}
.home-metrics{border-block:1px solid var(--line);padding:18px 0;gap:12px}
.home-metrics strong{font:800 25px var(--body-font);letter-spacing:-.5px}
.home-metrics strong small{font:500 14px var(--body-font)}
.home-metrics span{font-size:14px}
.support-row{background:transparent;border-block:1px solid var(--line);border-radius:0;padding:18px 0;gap:14px}
.support-row strong{font-size:16px}
.support-row p{font-size:14px}
/* Practice is a list, not a stack of promotional cards. */
.assessment-navigation{padding:4px;border:1px solid #cfdbd3;border-radius:10px;background:#eaf0eb;gap:4px;margin:0 0 20px}
.assessment-navigation button{flex:1 1 0;min-width:0;padding:11px 8px;border:0;border-radius:7px;font:800 15px var(--body-font);color:#496059;margin:0;min-height:48px}
.assessment-navigation button.is-active{background:#254c52;color:#fff;box-shadow:none}
.assessment-navigation button:hover{background:#dce8df;color:#254c52}
.assessment-navigation button.is-active:hover{background:#1d3e43;color:#fff}
.unit-switcher{margin:16px 0 20px}
.unit-switcher select{font-size:16px!important}
.library-meta{font-size:14px;margin:12px 0;color:var(--muted);gap:6px 12px;justify-content:space-between;flex-wrap:wrap}
.library-meta>span:last-child{color:#315c53;font-weight:800}
.unit-progress-mini{margin:12px 0 0;gap:5px}
.unit-progress-mini>span{background:#dfe6df;height:6px;border-radius:2px}
.unit-progress-mini>span.is-complete{background:#3b7965}
.quiz-list{gap:0;margin:10px 0 22px;border-top:1px solid var(--line)}
.quiz-list-item{padding:15px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;gap:12px;background:transparent;box-shadow:none;min-height:84px}
.quiz-list-index{background:#fbefc8;border:1px solid #ebdcaa;width:36px;height:40px;border-radius:8px;font:800 15px var(--body-font);color:#685225}
.quiz-list-index svg{width:20px;height:20px}
.quiz-list-copy h3,#main .quiz-list-copy h3{font-size:16px;font-weight:800;letter-spacing:0;margin:0 0 3px}
.quiz-list-copy p,#main .quiz-list-copy p{font-size:14px;line-height:1.45;color:var(--muted);margin:3px 0}
.quiz-list-action,#main .quiz-list-action{border:1px solid #b5c8be;background:#edf4ee;color:#254c52;min-height:48px;min-width:68px;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:800;flex-shrink:0;box-shadow:none}
.quiz-list-action:hover{background:#eaf0eb}
.quiz-list-action.is-resume{background:#254c52;color:white;border-color:#254c52}
.quiz-list-item.has-draft{background:#fff6dc;border-color:#e5d6a7;padding-inline:10px;border-radius:8px}
.quiz-list-item.has-draft .quiz-list-index{background:#f4d77f;border-color:#dfc068;color:#5d471a}
.quiz-list-item.is-complete .quiz-list-index{background:#dcece2;border-color:#c0d8c8;color:#2e6850}
.quiz-list-item.is-locked{background:transparent}
.quiz-list-action:disabled{background:#edf0e9;color:#66736b;border-color:#dbe2d7;font-size:14px}
.assessment-group{margin:28px 0}
#main .assessment-group>h2{font-size:19px;margin:0 0 5px}
.assessment-group>.helper{margin:0 0 12px}
.assessment-group .quiz-list-item:first-of-type{border-top:1px solid var(--line)}
.library-repetition{font-size:14px}
.unit-locked-card,.compact-unit-lock{background:#f2f4ed;border:1px solid #d9dfd2;border-radius:8px;padding:24px;text-align:left;box-shadow:none;margin:24px 0}
.unit-lock-symbol{width:32px;height:32px;background:transparent;color:#64755e;border-radius:0;margin:0 0 12px}
.unit-lock-symbol svg{width:25px;height:25px}
.unit-locked-card>.badge{background:transparent;color:#5c6b54;font-size:13px;padding:0;letter-spacing:0}
#main .unit-locked-card h2{font-size:23px;max-width:none;margin:12px 0}
.unit-locked-card p,.unit-locked-card .helper{font-size:15px;max-width:50ch;margin-left:0;margin-right:0}
.unit-locked-card .btn{margin-top:12px}
/* Set-up and questions favour clear instructions and generous answer targets. */
.assessment-setup{padding:0;background:transparent;border:0;border-radius:0}
.assessment-setup>.text-button{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px}
.assessment-setup>.text-button svg{width:17px;height:17px;transform:rotate(180deg)}
#main .assessment-setup h1{font-size:28px;margin:0 0 8px}
.assessment-timing-options{margin:26px 0 22px}
.assessment-timing-options legend{font-size:16px;font-weight:800;margin-bottom:12px}
.assessment-timing-option{background:#fff;border:1px solid #bdc8c0;border-radius:7px;padding:16px;gap:13px;margin-bottom:10px;min-height:72px}
.assessment-timing-option:has(input:checked){border:2px solid #456e60;padding:15px;background:#edf4ed;box-shadow:none}
.assessment-timing-option input{width:20px;height:20px;min-width:20px;accent-color:#315c4e}
.assessment-timing-option strong{font-size:16px}
.assessment-timing-option small,#main .assessment-timing-option small{font-size:14px;color:#5a685f;line-height:1.5}
.assessment-setup>.btn{width:100%;margin:0 0 4px}
.assessment-start-note{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 22px}
.assessment-rules{border-top:1px solid var(--line);padding-top:5px}
.assessment-timer{background:#eef3ed;border:0;border-left:3px solid #517465;border-radius:0;padding:12px 15px;margin:14px 0 22px;gap:5px 12px}
.assessment-timer>span{font-size:14px;font-weight:700}
.assessment-timer strong{font-size:19px;letter-spacing:0;font-variant-numeric:tabular-nums}
.assessment-timer small,#main .assessment-timer small{font-size:13px;color:#5a685e}
.assessment-timer.is-short{background:#fcf2d8;border-color:#be862d}
.focus-top{font-size:14px;align-items:center;line-height:1.4}
.focus-top .text-button{font-size:14px;white-space:nowrap}
.focus-top>span{text-align:right;max-width:60%}
.focus-question{font:400 16px/1.6 var(--body-font);letter-spacing:0;margin:24px 0 18px;scroll-margin-top:24px}
#main .focus-question h1{font-size:24px;font-weight:700;line-height:1.4;letter-spacing:-.15px;margin:16px 0 22px}
#main .focus-question h1.long-question{font-size:20px;line-height:1.5;font-weight:600;letter-spacing:0}
.focus-question h1,.answer-review-copy,.answer-explanation{overflow-wrap:anywhere;white-space:pre-line}
.quiz-option>span:nth-child(2){min-width:0;flex:1;white-space:pre-wrap}
.focus-question>.eyebrow{font-size:14px;font-weight:700;margin:0}
.focus-question>.helper{font-size:14px;margin:4px 0}
.question-progress{gap:4px;margin:18px 0 24px}
.question-progress>span{height:4px;background:#dfe5dc;border-radius:0}
.question-progress>span.is-answered{background:#507869}
.question-progress>span.is-current{box-shadow:0 3px 0 #c9aa53}
.focus-quiz .quiz-options{margin:0}
.quiz-option{font-family:var(--body-font);font-size:16px;letter-spacing:0;line-height:1.5;min-height:60px;padding:15px;border:1px solid #bdc8c0;border-radius:7px;box-shadow:none;background:#fff;margin-top:11px;gap:12px}
.quiz-option:hover{background:#f5f8f2;border-color:#6d8b79}
.quiz-option.selected{border:2px solid #456e60;padding:14px;background:#edf4ed;color:var(--ink)}
.option-letter{border:0;width:28px;height:28px;border-radius:4px;background:#f0f2eb;color:#68746a;font-size:13px;font-weight:800}
.quiz-option.selected .option-letter{background:#315c4e;color:#fff;border:0}
.quiz-option.selected>svg{color:#315c4e}
.focus-actions{position:sticky;z-index:3;display:flex;align-items:center;flex-wrap:wrap;border-top:1px solid #bdcec4;background:var(--paper);padding:12px 0 calc(10px + env(safe-area-inset-bottom));margin-top:20px;bottom:0;gap:8px;max-width:100%}
.focus-actions .btn{flex:1 1 88px;min-width:0;min-height:48px;white-space:normal;padding-inline:12px}
.focus-actions .text-button{width:auto;flex:0 1 auto;min-height:48px;padding:10px 12px;white-space:normal}
.focus-actions>.helper{font-size:14px}
.focus-saved{text-align:left;font-size:14px}
.assessment-question-jump{margin:22px 0 16px;gap:8px 12px}
.assessment-question-jump label{font-size:14px}
.assessment-question-jump select{font-size:16px!important}
.assessment-question-jump .text-button{font-size:14px}
.quiz-result{padding-top:0}
#main .quiz-result h1{font-size:28px}
.quiz-result .result-score{font-family:var(--body-font);font-size:58px;font-weight:800;letter-spacing:-2px;color:#254c52;margin:12px 0;line-height:1.1}
.result-score span{font:600 22px var(--body-font);letter-spacing:0;color:#657569}
.quiz-result>.sub{font-size:16px;max-width:52ch}
.assessment-result-time{border:0;border-left:3px solid #c3d2c1;background:#f0f4ec;border-radius:0;font-size:14px;padding:12px 15px;margin:20px 0}
.result-actions{gap:10px;margin:22px 0;flex-wrap:wrap}
.result-actions .btn{font-size:14px;min-height:48px;white-space:normal}
.quiz-feedback-summary{font-size:15px;margin:0 0 15px}
.answer-review{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:20px 0;margin:0}
.answer-review.is-missed{border-color:var(--line);background:transparent}
.answer-review summary{font-size:16px;font-weight:700;line-height:1.5;gap:11px}
.answer-review-copy{gap:5px}
.answer-review-label,#main .answer-review-label{font-size:13px;font-weight:800;color:#366447;letter-spacing:0}
.is-missed .answer-review-label{color:#835e26}
.answer-review-status{width:25px;height:25px;border-radius:4px;background:#e4eee3;color:#366447;font-size:13px}
.is-missed .answer-review-status{background:#faedce;color:#835e26}
.answer-review-body{border-top:0;margin-top:13px;padding-top:0;padding-left:36px}
.quiz-review .answer-review-body .helper{font-size:13px;font-weight:700;margin-top:14px}
.quiz-review .answer-review-body .submitted-answer,.quiz-review .answer-review-body .correct-answer{font-size:16px;line-height:1.55}
.answer-explanation{background:#f1f4ed;color:#425c50;border-radius:0;border-left:2px solid #c0d0bb;padding:12px 14px;font-size:14px!important}
.quiz-review .answer-explanation>strong{font-size:13px}
.quiz-review .answer-explanation p{font-size:15px;line-height:1.6}
/* Homework, questions and progress use familiar form and list styling. */
.assignment-group{gap:14px;margin:24px 0}
.student-help-note{padding:20px 0;border-top:1px solid var(--line)}
.student-help-note p{font-size:15px;color:var(--muted);margin:8px 0 12px}
.student-help-note .inline-link{display:inline-flex;align-items:center;min-height:48px}
#main .more-section-heading{font-family:var(--body-font);font-size:17px;letter-spacing:0;text-transform:none;font-weight:800;margin:24px 0 12px;color:var(--ink)}
.assignment,.followup{border-radius:8px}
.item-top{margin-bottom:13px;gap:10px}
.assignment h2,.followup h2,#main .assignment h2,#main .followup h2{font-size:22px}
.assignment textarea[readonly]{background:#f4f6f0;color:#536259}
.assignment-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #e2e8dc}
.assignment-actions .text-button{min-height:44px}
.inactive-assignment{background:#f7f8f3}
.inactive-assignment .btn{margin-top:16px}
.tutor-feedback{background:#fbf2d8;border-left:3px solid #b79c51;border-radius:0;padding:14px 16px}
.tutor-feedback p,.student-work p{font-size:16px}
.question{background:#f4f6ef;border:1px solid #dce3d5;border-radius:7px;padding:20px}
.question .math{font-family:var(--body-font);font-size:25px;font-weight:700;letter-spacing:0}
.question p{font-size:16px}
.confidence{gap:9px}
.confidence button{background:white;border:1px solid #bbc7bd;border-radius:7px;font-size:22px;font-weight:700;min-height:54px}
.confidence button.selected{border:2px solid #456e60;background:#edf4ed;color:#254c52}
.confidence-labels{font-size:14px;margin-bottom:24px}
.radio-row{background:transparent;border:0;border-radius:0;padding:10px 0;font-size:16px;gap:11px;line-height:1.5;min-height:48px}
.radio-row input{width:20px;height:20px;accent-color:#315c4e;flex-shrink:0}
.stats{gap:0;border-block:1px solid var(--line);padding:18px 0;margin:24px 0}
.stat{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:0 14px;text-align:left;box-shadow:none}
.stat:first-child{padding-left:0}.stat:last-child{border-right:0;padding-right:0}
.stat-number,.progress-overview .stat-number{font:800 28px/1.2 var(--body-font);letter-spacing:-.5px;color:var(--ink)}
.stat-number small{font:500 14px var(--body-font);color:var(--muted)}
.stat-label{font-size:14px;line-height:1.4;margin-top:6px}
.result-history-card{padding:0;border:0;background:transparent;margin:28px 0}
.result-filters{gap:16px;margin:18px 0}
.repeat-history{border-color:var(--line);padding:18px 0}
.repeat-history summary strong{font-size:16px;font-weight:800}
.repeat-history small{font-size:14px}
.repeat-history li{border-radius:0;background:#f1f4ec;padding:12px 14px}
.repeat-history li>strong{font-family:var(--body-font);font-size:20px;font-weight:800}
.unit-progress-row strong,.unit-progress-row>div:first-child span{font-size:14px}
.progress-track{height:5px;background:#e1e6dc;border-radius:0}
.progress-track span{background:#52786b}
.chart-track{background:#e8eee3}.chart-track span{background:#52786b}
.chart-col strong{font-size:14px}.chart-col small{font-size:12px}
.sample-checker-progress{border-style:solid}
.list li{font-size:15px;padding:13px 0}
.empty,.activity,.save-status{font-size:14px}
.activity{padding:17px 0}
/* Booking and course browsing: one obvious action, details when needed. */
.booking-intro{padding:22px;margin-bottom:24px;border:1px solid #ead897;border-radius:12px;background:#fff2c7}
.booking-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #e0c46c;border-radius:9px;background:#f4db8e;color:#254c52;margin-bottom:15px}
.booking-icon svg{width:24px;height:24px}
#main .booking-intro h2{font-size:23px;max-width:22ch;margin:0 0 10px;color:#263e43}
.booking-intro p{font-size:16px;color:#5e5c46;max-width:49ch;margin:0 0 16px}
.booking-link{display:inline-flex;background:var(--green);color:#fff;border:1px solid var(--green);border-radius:7px;padding:12px 18px;margin:10px 0 4px;font-size:15px;min-height:48px}
.booking-link:hover{background:#1d3e43;color:#fff}
.booking-intro>.helper{font-size:14px;color:#686044;margin:12px 0 0}
.booking-details{padding-top:20px;margin:28px 0 0;border-top:1px solid var(--line);max-width:54ch}
.booking-prepare h2,#main .booking-prepare h2{font-size:18px;margin-bottom:8px}
.booking-prepare p{font-size:15px;color:var(--muted);max-width:54ch}
.booking-prepare{padding:22px 0;border-top:1px solid var(--line);margin-top:22px}
.booking-prepare .inline-link{display:inline-flex;align-items:center;gap:8px;min-height:48px;margin-top:4px}
.catalog-intro{background:transparent;color:var(--ink);padding:0;border:0;border-radius:0;margin:0 0 24px}
.course-manager{background:#edf3ee;border:1px solid #d5e1d4;border-radius:8px;padding:18px;margin:0 0 24px}
#main .course-manager h2{font-size:18px;margin:0 0 10px}
.course-manager>p{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}
.course-manager>p:last-child{margin-bottom:0}
.course-manager-chip{display:inline-block;background:white;border:1px solid #c5d4c9;border-radius:5px;padding:5px 9px;font-size:13px;font-weight:700}
.course-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin-top:12px}
.course-card-actions .text-button{color:#6a3e25;min-height:44px}
.course-card-actions .text-button:disabled{color:var(--muted);text-decoration:none}
.course-choices{border:0;padding:0;margin:18px 0;min-width:0}
.course-choices legend{font-weight:800;font-size:16px;padding:0}
.course-choices>.helper{margin:4px 0 12px}
.course-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.course-choice{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #cbd6ce;border-radius:7px;padding:11px;min-height:58px;cursor:pointer}
.course-choice:has(input:checked){background:#edf3ee;border-color:#628376}
.course-choice input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:0 0 20px;padding:0;accent-color:#254c52}
.course-choice span{display:block;min-width:0;line-height:1.3}
.course-choice strong,.course-choice small{display:block}
.course-choice small{color:var(--muted);font-size:12px!important}
.catalog-intro>div p,.catalog-intro>p{font-size:15px;color:var(--muted);line-height:1.6;letter-spacing:0}
.catalog-controls{gap:14px}
.catalog-controls label{font-size:14px}
.catalog-result-line{margin:16px 0 8px}
.catalog-result-line p,.catalog-result-line button{font-size:14px}
.course-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.course-card{display:block;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:22px 0;box-shadow:none}
.selected-course{background:#f2f6ed;border-color:var(--line);box-shadow:none}
.course-card h2,#main .course-card h2{font-size:20px;margin:8px 0}
.course-card .item-top{margin-bottom:9px}
.course-card .course-topic{min-height:0;font-size:15px}
.course-card .course-meta,.course-card .course-grade,.course-card .helper{font-size:14px}
.course-card .helper{margin-bottom:13px}
.course-card .btn{width:auto;font-size:14px;min-height:48px;margin-top:7px}
.more-menu{background:transparent;border:0;border-radius:0;border-top:1px solid var(--line)}
.more-menu>a{padding:19px 0;border-bottom:1px solid var(--line);gap:16px}
.more-menu>a:last-child{border-bottom:1px solid var(--line)}
.more-menu .feature-icon{width:27px;height:30px;background:transparent;border-radius:0;color:#4b6a5f}
.more-menu strong{font-size:16px;font-weight:800}
.more-menu small{font-size:14px;line-height:1.45;color:var(--muted)}
.more-menu>a>svg{width:18px;height:18px;color:#5a7266}
.phone-account-note{border:0;border-top:1px solid var(--line);border-radius:0;padding:22px 0;background:transparent}
/* Tutor tools retain their information hierarchy without ornamental panels. */
.roster-panel,.tutor-team-panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px}
.tutor-team-panel>details>summary{font:800 21px/1.4 var(--body-font);min-height:44px}
.team-owner-badge{font-size:13px;letter-spacing:0;margin:4px 0 14px}
.tutor-team-panel p,.tutor-team-panel .helper,.roster-panel .helper{font-size:14px}
.team-owner,.team-person{font-size:16px}
.team-owner>span,.team-person>span,.team-status{font-size:14px}
.team-sharing-note{background:#f1f4ed;border-radius:0;border-left:3px solid #c4d0be}
.team-list-heading h3,.team-sharing-note h3{font-size:16px}
.team-list button{font-size:14px;max-width:100px}
.tutor-unit-list{gap:18px}
.tutor-unit-card{border-radius:7px;background:#fff}
.tutor-unit-card.is-unlocked{background:#f5f8f1;border-color:#a9bca7}
#main .tutor-unit-card h3{font-size:21px}
.tutor-unit-card .item-top>.helper{font-size:13px;letter-spacing:0}
.tutor-unit-card>.btn{width:auto}
.tutor-answer-key summary{font-size:14px;min-height:44px}
.unit-access-preview{font-size:14px;border:0;border-left:3px solid #ccd7c6;border-radius:0;background:#f1f4ed}
.account-chip{background:#edf3ee;border:0;border-left:3px solid #b8ccba;border-radius:0;padding:12px 16px;font-size:14px}
.account-sync{font-size:12px;border-radius:4px;background:#f5f7f0;right:10px;top:6px;padding:4px 8px}
.account-sync.is-error{font-size:14px;padding:8px 12px;min-height:44px}
.account-gate{font-family:var(--body-font)}
.account-gate h1{font-family:var(--body-font);font-size:30px;font-weight:800}
.account-gate .brand-name{font:bold 25px Georgia,serif}
.curriculum-map{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;margin:24px 0}
.curriculum-map>summary{padding:18px 0}
.curriculum-map>summary strong{font:800 17px var(--body-font)}
.curriculum-map>summary small{font-size:14px;line-height:1.5}
.curriculum-map-body{padding:0 0 18px}
.curriculum-outcome{padding:18px 0;border-color:var(--line)}
.curriculum-outcome>p{font-size:15px}
.outcome-heading>strong{font-size:14px}
.outcome-mode{font-size:13px;border-radius:4px;background:#f5ecd3;color:#735521}
.outcome-mode.quiz-only{background:#e9f0e5;color:#40613a}
.outcome-task{background:#f1f4ed;border-radius:0;padding:12px 14px}
.outcome-task summary,.outcome-task p,.outcome-source{font-size:14px}
.review-choices{font-size:16px;line-height:1.5}
.correct-choice{background:#eaf3e6;border-radius:3px}
#toast{font-size:14px;border-radius:7px;background:#254c52;box-shadow:none;bottom:96px;width:calc(100% - 32px);max-width:520px;line-height:1.5}
.preview-learning #toast{left:50%;right:auto;transform:translateX(-50%);max-width:520px}
@media(min-width:768px){
  .hosted-app{background:#eeeee8}
  .hosted-app .shell{max-width:720px!important;width:720px!important;min-height:100dvh;border:0;border-inline:1px solid #dce1d7;border-radius:0;box-shadow:none;overflow:visible}
  .hosted-app .main-shell{width:100%!important;margin-left:0!important}
  .hosted-app #main{padding:32px 40px 28px!important}
  .hosted-app .mobile-header{padding:22px 40px 19px}
  .hosted-app .main-shell>footer{padding-inline:40px}
  .hosted-app .bottom-nav{left:50%;right:auto;transform:translateX(-50%);max-width:720px;width:720px;padding-inline:32px}
  .bottom-nav a{flex-direction:row;justify-content:center;gap:8px;min-height:48px;font-size:14px}
  .bottom-nav a svg{width:21px;height:21px}
  .course-context-picker{grid-template-columns:minmax(0,1fr) auto}
  .student-links{grid-template-columns:1fr 1fr;gap:14px}
  .student-links>a{min-height:144px}
  .student-links>a.student-link-booking{min-height:86px}
  .home-task{padding:26px}
  .home-task-icon{top:22px;right:24px}
  .home-task .btn{width:auto}
  .catalog-controls{grid-template-columns:1.6fr 1fr 1fr}
  .catalog-controls>div:first-child{grid-column:auto}
}
@media(max-width:767px){
  body{background:var(--paper)}
  .shell{max-width:720px}
  .mobile-header{padding-top:max(12px,env(safe-area-inset-top))}
  .bottom-nav,.hosted-app .bottom-nav{max-width:720px;width:100%}
  .assessment-timer{position:sticky;top:0;z-index:4;padding:10px 13px;margin:10px 0 16px;gap:3px 10px;background:#edf3ed}
  .assessment-timer strong{font-size:18px}
  .assessment-timer.is-short{background:#fcf2d8}
  .focus-question{scroll-margin-top:104px}
  .focus-quiz{padding-bottom:12px}
}
@media(max-width:560px){
  .course-choice-grid{grid-template-columns:1fr}
  .context-fields,.result-filters{grid-template-columns:1fr;gap:0}
  .heading .sub{font-size:15px}
  .home-task{padding:20px}
  .home-task .btn{width:100%}
  .quiz-list-action,#main .quiz-list-action{font-size:14px;padding:10px;min-width:64px}
  .booking-link{width:100%}
  .booking-intro{padding:20px}
  .result-actions .btn{flex:1 1 125px}
}
@media(max-width:359px){
  #main{padding-inline:16px}
  .mobile-header{padding-inline:16px}
  .mobile-wordmark .wordmark-name{font-size:21px}
  #main h1,#main .student-home-heading h1{font-size:27px}
  .home-task,.card,.roster-panel,.tutor-team-panel,.unit-locked-card,.booking-intro{padding:18px}
  .assessment-setup,.result-history-card,.course-card,.phone-account-note{padding-left:0;padding-right:0}
  .quiz-list-item{gap:8px}
  .quiz-list-index{width:32px;height:36px}
  .quiz-list-action svg{display:none}
  .student-links{gap:10px}
  .student-links>a{padding:14px;gap:10px}
  .student-links>a>svg:first-child{width:32px;height:32px;padding:6px}
  .student-links>a:nth-child(3){padding:14px}
  .bottom-nav a{font-size:11px;padding-inline:2px}
  #main .focus-question h1{font-size:22px}
  .stat{padding-inline:10px}
  .stat-number,.progress-overview .stat-number{font-size:25px}
  .answer-review-body{padding-left:0}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Keep the unit and question level together without a wall of setup text. */
.unit-level-picker{padding:12px 0 0;margin:14px 0 20px;border:0;background:transparent;border-radius:0}
.unit-level-picker legend{padding:0;margin-bottom:8px}
.unit-level-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.unit-level-choices .assessment-timing-option{align-items:flex-start;gap:8px;padding:12px;min-height:92px}
.unit-level-choices .assessment-timing-option:has(input:checked){padding:11px}
.unit-level-choices .assessment-timing-option input{margin-top:3px}
.unit-level-picker>.helper{margin:10px 0 0}
@media(max-width:380px){.unit-level-choices .assessment-timing-option{padding:10px;gap:7px}.unit-level-choices .assessment-timing-option:has(input:checked){padding:9px}.unit-level-choices .assessment-timing-option input{width:17px;height:17px;min-width:17px}.unit-level-choices .assessment-timing-option strong{font-size:15px}#main .unit-level-choices .assessment-timing-option small{font-size:13px}}
@media(min-width:541px){.unit-level-choices .assessment-timing-option{min-height:76px}}

/* Avoid a second block of empty space above the first homework group. */
.stack>.assignment-group:first-child{margin-top:8px}
