/* Shared product language; the blue brand icon remains unchanged. */
:root{--product-green:#225f4b;--product-ink:#193d38;--product-paper:#f5f7f3}
#topic-panel .hero-copy,#home-page:has(#topic-panel:not(.hidden)){color:var(--product-ink);background:var(--product-paper)}
#topic-panel .hero-copy h2 em,#landing-example-solution strong{color:var(--product-green)}
#topic-panel .topic-button{background:var(--product-green);box-shadow:none}
#topic-panel .topic-button:hover{background:#174b3a}
.learning-demo{padding:26px;transform:none}.learning-demo h3{font-size:24px;letter-spacing:-.6px;margin:14px 0}.learning-demo p{font-size:14px;line-height:1.65;color:#526d63}.learning-demo .demo-equation{font-size:30px;color:var(--product-ink);margin:20px 0}.demo-options{display:flex;gap:10px;flex-wrap:wrap}.demo-options button,.demo-next{font:600 15px/1.4 "Segoe UI",Arial,sans-serif;padding:12px 20px;border:1px solid #c9d9cd;border-radius:10px;background:white;color:#225f4b;cursor:pointer}.demo-options button:hover{background:#edf4eb}.demo-options button[aria-pressed=true]{background:#225f4b;color:white}.demo-feedback{border-top:1px solid #dfe7df;margin-top:20px;padding-top:14px;min-height:100px}.demo-next{margin-top:10px}.demo-label{font-size:11px!important;letter-spacing:.5px}.demo-progress{display:flex;gap:8px;margin:20px 0 0}.demo-progress span{height:4px;flex:1;background:#e2e9df}.demo-progress span.active{background:#225f4b}
.grade details{margin-top:8px;font-size:11px;line-height:1.5}.grade summary{cursor:pointer;color:#225f4b}.grade details p{font-size:12px;max-width:240px}.grade .grade-empty{font-size:16px;line-height:1.3;margin:6px 0}.grade button{background:none;border:0;padding:5px 0;color:#225f4b;text-decoration:underline;font:inherit;cursor:pointer}
.exam-surface{position:relative;border:0!important;background:transparent!important;padding:0!important}.exam-surface .existing-frame{border:0;border-radius:0;background:transparent}.frame-loading{padding:32px;border:1px solid #dfe7df;border-radius:16px;background:white;color:#193d38}.frame-loading p{color:#667b75}.frame-loading[hidden]{display:none}.exam-guidance{padding:16px 0;border-top:1px solid #dfe7df;color:#667b75;font-size:13px;line-height:1.6}.exam-guidance summary{cursor:pointer;color:#225f4b;font-weight:600}.exam-guidance p{max-width:780px}
.account-dialog{font-family:'Segoe UI',Arial,sans-serif;color:#193d38}.account-dialog h2,.account-dialog h3{letter-spacing:-.5px}.account-dialog .ws-button{border-radius:10px}.account-page-back::before{content:'Raise Maths / ';font-weight:700}.account-dialog-body{width:100%;box-sizing:border-box}.account-dialog input:focus-visible,.account-page-nav button:focus-visible,.demo-options button:focus-visible,.demo-next:focus-visible{outline:3px solid #89ae97;outline-offset:3px}
@media(max-width:600px){.learning-demo{padding:20px}.learning-demo h3{font-size:22px}.grade details p{max-width:160px}.exam-surface{min-width:0}.frame-loading{padding:22px}.account-page-back::before{content:'Raise Maths · '}}

.top-bar .account-button,.top-bar .signup-cta{background:#225f4b;border-color:#225f4b;color:white}.top-bar .account-button.signed-in{background:white;color:#225f4b}#topic-panel .topic-button{border-color:#225f4b}

@media(max-width:600px){.grade .grade-empty{font-size:12px;line-height:1.35}.grade button{font-size:10px}.grade{padding:10px!important}.top:has(.grade)>div:first-child{min-width:0;flex:1}.top h1{overflow-wrap:break-word}}

/* The learning-step overview fills the viewport; other dialogs stay compact. */
html:has(#settings[open] .flow-track){overflow:hidden}
#settings:has(.flow-track){position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;background:#f5f7f3;padding:32px max(24px,calc((100vw - 1120px)/2));overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
#settings:has(.flow-track)::backdrop{background:#f5f7f3;backdrop-filter:none}
#settings:has(.flow-track) .dialog-head{position:sticky;top:-32px;background:#f5f7f3;z-index:3;padding:20px 0;border-bottom:1px solid #dfe7df;align-items:center}
#settings:has(.flow-track) .flow-track{margin:32px 0}
#settings:has(.flow-track) .flow-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
#settings:has(.flow-track) .flow-card{padding:24px;display:flex;flex-direction:column}
#settings:has(.flow-track) .flow-card button{margin-top:auto;align-self:flex-start}
#settings:has(.flow-track) .unit-checkpoint{margin:24px 0}
@media(max-width:760px){#settings:has(.flow-track){padding:16px 18px max(24px,env(safe-area-inset-bottom))}#settings:has(.flow-track) .dialog-head{top:-16px;padding:14px 0;gap:12px}#settings:has(.flow-track) .dialog-head h2{font-size:24px}#settings:has(.flow-track) .flow-cards{grid-template-columns:1fr;gap:14px}#settings:has(.flow-track) .flow-card{padding:20px}#settings:has(.flow-track) .flow-track{margin:24px 0}}

/* Connect circle centres without protruding beyond the first or last step. */
#settings:has(.flow-track) .flow-track{column-gap:0}
#settings:has(.flow-track) .flow-track:before{left:calc(100% / 6);right:calc(100% / 6)}
#settings:has(.flow-track) .flow-track:after{left:calc(100% / 6);width:calc(100% / 3 * var(--step))}

/* Quiet feedback, limited to actionable surfaces. */
.stage-body,.flow-card,.primary,.secondary,.account-link,.demo-options button{transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease,background-color 160ms ease}
@media(hover:hover) and (pointer:fine){.stage-body:not([data-locked=true]):hover,.flow-card:has(button:not(:disabled)):hover{transform:translateY(-3px);border-color:#91b79e;box-shadow:0 8px 22px #193d3810}.primary:not(:disabled):hover,.secondary:not(:disabled):hover{box-shadow:0 4px 12px #193d3814}}
:is(.primary,.secondary,.stage-body,.demo-options button):not(:disabled):active{transform:translateY(1px) scale(.985)}
button[aria-busy=true]{cursor:progress;opacity:.75}
#settings:has(.flow-track) .flow-track.flow-advanced:after{animation:advance-step 480ms ease both}
.flow-advanced .flow-stop.complete span{animation:step-confirm 400ms ease both}
@keyframes advance-step{from{width:calc(100% / 3 * var(--previous-step))}to{width:calc(100% / 3 * var(--step))}}
@keyframes step-confirm{0%{transform:scale(.9)}65%{transform:scale(1.08)}100%{transform:scale(1)}}
html.reduce-motion *,html.reduce-motion *:before,html.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.reduce-motion .stage-body:hover,html.reduce-motion .flow-card:hover,html.reduce-motion button:active{transform:none!important}
@media(prefers-reduced-motion:reduce){.stage-body,.flow-card,.primary,.secondary,.account-link,.demo-options button{transition:none!important}.flow-advanced:after,.flow-advanced .flow-stop span{animation:none!important}.stage-body:hover,.flow-card:hover,button:active{transform:none!important}}

.home-exam-showcase{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;padding:64px 0;border-bottom:1px solid #dfe7df}.showcase-copy h2{font-size:clamp(28px,3.4vw,42px);line-height:1.15;letter-spacing:-1.2px;color:#193d38}.showcase-copy>p{font-size:16px;line-height:1.8;color:#61776d}.showcase-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}.showcase-stats strong{display:block;font-size:23px;color:#225f4b}.showcase-stats span{font-size:12px;line-height:1.6;color:#61776d;display:block;margin-top:6px}.showcase-note{font-size:11px!important;line-height:1.7;color:#6b7d74}.mock-tour{border:1px solid #d4e2d7;border-radius:18px;background:white;padding:28px;box-shadow:0 12px 35px #193d3809}.mock-tour-top{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:1px;color:#657b6e;border-bottom:1px solid #e2e9e1;padding-bottom:16px}.mock-tour-dots{display:flex;gap:8px;margin:22px 0}.mock-tour-dots>*{display:grid;place-items:center;width:27px;height:27px;border:1px solid #cddcd0;border-radius:50%;font-size:11px}.mock-tour-dots b{border-color:#225f4b;color:#225f4b}.tour-answered .mock-tour-dots b{background:#225f4b;color:white;transition:background .2s}.mock-tour h3{font-size:18px}.tour-equation{font:30px Georgia,serif;color:#193d38}.mock-tour label{display:block;font-size:13px;color:#61776d}.mock-tour input{display:block;width:100%;box-sizing:border-box;margin:10px 0 14px;padding:12px;border:1px solid #cbdacf;border-radius:8px;font:inherit}.mock-tour input[hidden]{display:none}.tour-status{font-size:13px;line-height:1.7;color:#4f6c5c;min-height:75px;margin-top:16px}.home-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:40px 0}.home-feature-grid article{padding:24px;border:1px solid #dfe7df;border-radius:14px;background:#fff}.home-feature-grid h3{font-size:21px;color:#193d38;margin:14px 0}.home-feature-grid p,.home-join p{font-size:14px;line-height:1.8;color:#61776d}.home-join{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#eaf1e6;border-radius:16px;padding:28px;margin-bottom:36px}.home-join h2{font-size:26px;color:#193d38}.home-join button{white-space:nowrap;background:#225f4b;color:white;border:0;border-radius:10px;padding:14px 20px;cursor:pointer}.mock-tour .primary{background:#225f4b;color:white;border:0;border-radius:9px;padding:13px 18px;cursor:pointer}
@media(max-width:760px){.home-exam-showcase{grid-template-columns:1fr;gap:24px;padding:38px 0}.home-feature-grid{grid-template-columns:1fr;gap:14px}.home-join{align-items:flex-start;flex-direction:column}.mock-tour{padding:20px}.showcase-stats{gap:10px}.showcase-stats strong{font-size:20px}}

.tour-answered .mock-tour-dots span:first-of-type{border:2px solid #225f4b;color:#225f4b}.tour-answered .tour-equation{animation:tour-reveal .2s ease both}@keyframes tour-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.tour-answered .tour-equation{animation:none}}

.header-support{display:inline-flex;align-items:center;gap:16px;margin:0 18px}.header-support a{font:600 13px 'Segoe UI',Arial,sans-serif;color:#225f4b;text-decoration:none;white-space:nowrap}.header-support a:hover{text-decoration:underline}.journey-account-menu{position:fixed;z-index:100;min-width:240px;background:white;border:1px solid #d5e1d8;border-radius:14px;padding:8px;box-shadow:0 14px 40px #193d3826}.journey-account-menu[hidden]{display:none}.journey-account-menu a{display:flex;justify-content:space-between;gap:20px;padding:12px;border-radius:8px;text-decoration:none;color:#193d38;font-size:14px}.journey-account-menu a:hover,.journey-account-menu a:focus-visible{background:#edf4e9}.account-page-back::before{content:none!important}.account-page-back{display:inline-flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #bbcebf;border-radius:10px;background:#f1f6ed;min-height:44px;box-sizing:border-box}.account-page-back>span{font-size:23px;line-height:1}.account-dialog>header{gap:12px}.account-dialog>header .header-support{margin-left:auto;margin-right:0}
@media(max-width:650px){body>header:has(#journey-account),.top-bar:has(.header-support){height:auto!important;min-height:76px;flex-wrap:wrap;gap:8px;padding-top:10px!important;padding-bottom:10px!important}.header-support{gap:12px;margin:0 6px}.header-support a{font-size:11px}.journey-account-name{display:none}.account-dialog>header .account-page-back{width:auto}.account-dialog>header h2{width:100%;margin-top:12px}}

/* Daily goal: calm content panel and distinct progress summary. */
.today-goal.card{display:grid;grid-template-columns:minmax(0,7fr) minmax(230px,3fr);gap:0;padding:0;overflow:hidden;background:#f8fbf5;border:1px solid #ceddcc;box-shadow:0 8px 26px rgba(28,64,49,.055)}
.today-goal .goal-content{padding:32px 34px;align-self:center;min-width:0}.today-goal .goal-content h2{font-size:clamp(23px,2.5vw,30px);line-height:1.2;margin:12px 0}.today-goal .goal-content p{max-width:600px;line-height:1.7;color:#506b60}.today-goal .actions{margin:22px 0 15px;display:flex;flex-wrap:wrap;gap:10px}.today-goal .goal-summary{padding:25px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:linear-gradient(145deg,#285d4d,#194838);color:#fff;border-left:1px solid #285c4a}.goal-kicker{font-size:10px;letter-spacing:1.8px;font-weight:650;color:#d7e8d9}.goal-dial{width:148px;height:148px;position:relative;flex-shrink:0}.goal-dial svg{width:100%;height:100%;transform:rotate(-90deg)}.goal-dial circle{fill:none;stroke-width:5}.goal-track{stroke:rgba(255,255,255,.16)}.goal-fill{stroke:#c9e9ae;stroke-linecap:round}.goal-dial>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.goal-dial strong{font-size:38px;line-height:1;font-weight:650;letter-spacing:-1px;color:#fff}.goal-dial strong span{font-size:21px;color:#c8dccf;letter-spacing:0}.goal-dial>div>span{font-size:12px;color:#e0ebe1}.goal-caption{font-size:12px;color:#d7e8d9}.dashboard-grid .card{border-top:3px solid #cfdfc9}
@media(max-width:600px){.today-goal.card{grid-template-columns:minmax(0,1fr) 125px}.today-goal .goal-content{padding:22px 16px}.today-goal .goal-content h2{font-size:22px}.today-goal .goal-summary{padding:18px 8px;gap:12px}.goal-dial{width:108px;height:108px}.goal-dial strong{font-size:29px}.goal-dial strong span{font-size:17px}.goal-dial>div>span{font-size:10px}.goal-kicker{font-size:8px;letter-spacing:1px;text-align:center;line-height:1.6}.goal-caption{text-align:center;font-size:10px;line-height:1.6}.today-goal .actions{margin:16px 0 12px}.today-goal .actions button{width:100%;padding:11px 9px;font-size:12px}.today-goal .goal-content p{font-size:12px}.today-goal .goal-content small{font-size:10px}}

.today-goal .goal-summary{align-self:stretch}.goal-dial[aria-valuenow="0"] .goal-fill{opacity:0}

/* Shared, gentle hover feedback; translate preserves existing paper rotations. */
:is(button,a.account-link,a.account-page-back,.header-support a,.journey-account-menu a){transition:translate .18s ease,filter .18s ease,box-shadow .18s ease,background-color .18s ease,transform .18s ease}
@media(hover:hover) and (pointer:fine){:is(button,a.account-link,a.account-page-back,.header-support a,.journey-account-menu a):not(:disabled):not([aria-disabled=true]):not([data-locked=true]):not([aria-busy=true]):hover{translate:0 -2px;filter:brightness(1.08);box-shadow:0 5px 16px rgba(54,107,79,.13)}}
:is(button,a.account-link,a.account-page-back):not(:disabled):active{translate:0 0}
html.reduce-motion :is(button,a.account-link,a.account-page-back,.header-support a,.journey-account-menu a){translate:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){:is(button,a.account-link,a.account-page-back,.header-support a,.journey-account-menu a){translate:none!important;transition:none!important}}

/* Compact grade badge; expanded explanation floats rather than stretching the header. */
.top .grade{position:relative;width:240px;padding:12px 16px;font-size:11px}.top .grade .grade-empty{font-size:14px;line-height:1.25;margin:4px 0}.top .grade button{min-height:28px;padding:3px 0}.top .grade details{margin-top:4px}.top .grade details[open] p{position:absolute;right:0;top:100%;z-index:25;width:290px;max-width:calc(100vw - 32px);padding:16px;background:white;border:1px solid #d5e1d8;border-radius:12px;box-shadow:0 8px 24px #193d381a;margin:7px 0;line-height:1.6}.top .grade strong:not(.grade-empty){font-size:24px;line-height:1.2}.top .grade small{font-size:10px}
@media(max-width:600px){.top .grade{width:135px;padding:9px 10px!important}.top .grade .grade-empty{font-size:11px}.top .grade button{font-size:10px}.top .grade details{font-size:10px}.top .grade details[open] p{width:260px}}

.next-step{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:18px;background:#f8fbf5}.next-step h3{margin:7px 0}.next-step p{margin-bottom:0;max-width:690px}.next-step>button{flex-shrink:0}.outcomes{margin-top:18px}.evidence-row{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid #e0e8de}.evidence-row p{margin:5px 0;font-size:13px}.evidence-row small{color:#61776d}.outcomes>button{margin-top:18px}.topic-search{display:block;font-size:12px;color:#526d63;margin:18px 0}.topic-search input{display:block;width:100%;border:1px solid #cbdacc;border-radius:10px;padding:12px;margin-top:6px;background:#fbfdf9;color:#193d38}.topic-search-status,.evidence-note{background:#edf4e8;border-radius:10px;padding:12px;font-size:13px}.journey .stage[hidden],.unit-checkpoint[hidden]{display:none!important}@media(max-width:600px){.next-step{display:block}.next-step>button{margin-top:16px;width:100%}}

/* Segmented learning navigation slides horizontally, never lifts on hover. */
.learning-tabs{position:relative;isolation:isolate;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0!important;width:min(100%,570px);padding:4px!important}.learning-tabs .learning-tab-indicator{position:absolute;z-index:-1;top:4px;bottom:4px;left:calc(4px + (100% - 8px)/3 * var(--tab-index));width:calc((100% - 8px)/3);border-radius:9px;background:#e4efdf;box-shadow:0 1px 4px #193d3810;pointer-events:none}.learning-tabs button,.learning-tabs button:hover,.learning-tabs button:active,.learning-tabs button.active{translate:none!important;transform:none!important;filter:none!important;box-shadow:none!important;background:transparent!important;min-width:0;white-space:normal}.learning-tabs button:hover{color:#397357}.learning-tabs button.active{color:#194d3a;font-weight:700}@media(max-width:600px){.learning-tabs button{padding:10px 5px;font-size:12px}}
/* V1.2 detail pass: calm hierarchy, explicit controls and compact small screens. */
body:has(#progress-source) :is(button,a,input,select,summary):focus-visible{outline:3px solid #598768;outline-offset:3px}
body:has(#progress-source) button:disabled{cursor:not-allowed;box-shadow:none;filter:none}
#app .grid{align-items:start}
#app .card h2{line-height:1.25;letter-spacing:-.6px}
#app .card p{line-height:1.7}
.review-queue{list-style:none;padding:0;margin:20px 0;display:grid;gap:10px}
.review-queue li{padding:16px;border:1px solid #dbe5d9;border-radius:12px;background:#f8faf6}
.review-queue li.is-due{background:#eef5eb;border-color:#c4d8bd}
.review-queue li>strong{display:block;font-size:16px;overflow-wrap:anywhere}
.review-queue li p{font-size:12px;margin:8px 0 12px;color:#526b5d}
.review-state{display:inline-block;border-radius:6px;background:#e1eddb;color:#285438;padding:3px 7px;font-weight:650}
.review-queue li:not(.is-due) .review-state{background:#edf0e9;color:#536650}
.review-queue button{min-height:44px}
:is(.review-plan,.outcomes) details{border-top:1px solid #dce6d8;margin-top:16px;padding-top:8px}
:is(.review-plan,.outcomes) summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;cursor:pointer;list-style:none;font-size:13px;font-weight:650;color:#225f4b}
:is(.review-plan,.outcomes) summary::-webkit-details-marker{display:none}
:is(.review-plan,.outcomes) summary:after{content:'+';font-size:20px;flex-shrink:0;font-weight:400}
:is(.review-plan,.outcomes) details[open]>summary:after{content:'−'}
.evidence-row>div{min-width:0}.evidence-row>strong{font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap;align-self:flex-start;padding:5px 9px;border-radius:8px;background:#edf3e9;color:#254f3d}
.evidence-row strong{overflow-wrap:anywhere}
#nav button{min-height:44px;position:relative}
#nav button.active:after{content:'';position:absolute;bottom:5px;left:calc(50% - 8px);width:16px;height:2px;border-radius:2px;background:currentColor}
@media(max-width:600px){
 .today-goal.card{grid-template-columns:1fr}
 .today-goal .goal-content{padding:22px}
 .today-goal .goal-content h2{font-size:24px}
 .today-goal .goal-content p{font-size:13px}
 .today-goal .goal-content small{font-size:11px}
 .today-goal .actions{gap:8px;margin:18px 0 12px}
 .today-goal .actions button{width:auto;flex:1 1 130px;min-height:44px}
 .today-goal .goal-summary{border-left:0;display:grid;grid-template-columns:1fr 80px;gap:4px 12px;padding:14px 22px;text-align:left}
 .goal-summary .goal-kicker{grid-column:1;grid-row:1;align-self:end;text-align:left;font-size:10px}
 .goal-summary .goal-caption{grid-column:1;grid-row:2;align-self:start;text-align:left;font-size:12px}
 .goal-summary .goal-dial{grid-column:2;grid-row:1/3;width:80px;height:80px}
 .goal-summary .goal-dial strong{font-size:23px}.goal-summary .goal-dial>div{gap:4px}.goal-summary .goal-dial>div>span{font-size:8px}
 .review-queue li{padding:14px}.review-queue button{width:100%}
 #app .card h2{overflow-wrap:break-word}
}
@media(max-width:420px){#app .grid>.card .actions{display:flex;flex-direction:column;align-items:stretch}#app .grid>.card .actions button{flex:auto;width:100%;min-height:44px}}
.journey-account-menu a{align-items:center}
.journey-account-menu a>span:last-child{margin-left:auto;flex:0 0 16px;display:flex;align-items:center;justify-content:flex-end}
