/* Road Coach app shell. Every colour and font comes from the --rc-* variables set by theme.js. */
:root{--rc-ground:#F4F6F3;--rc-surface:#FFFFFF;--rc-raised:#ECEFEA;--rc-ink:#15201B;--rc-muted:#55605A;--rc-line:#DCE1DA;--rc-accent:#0B6B4F;--rc-accent-ink:#FFFFFF;--rc-accent-soft:#E2EFEA;--rc-hl:#F2B705;--rc-hl-ink:#10150F;--rc-hl-soft:#FCF1CD;--rc-good:#11774F;--rc-good-soft:#E7F2ED;--rc-bad:#B3261E;--rc-bad-soft:#F9E8E7;--rc-font-display:'Electrolize','Noto Sans Georgian',sans-serif;--rc-font-body:'Exo 2','Noto Sans Georgian',sans-serif;--rc-font-brand:Audiowide,'Noto Sans Georgian',sans-serif;--rc-display-weight:400}
*{box-sizing:border-box}
html,body{margin:0;background:var(--rc-ground);color:var(--rc-ink);font-family:var(--rc-font-body);font-size:17px;line-height:1.5;-webkit-text-size-adjust:100%;font-synthesis:none}
button,select,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--rc-hl);outline-offset:2px}
.rc-app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.rc-main{flex:1;display:flex;flex-direction:column;gap:16px;padding:calc(12px + env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom))}

/* Header: mode switch, trail, title. Same place on every screen. */
.rc-header{display:flex;flex-direction:column;gap:6px}
.rc-header-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rc-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-title{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:28px;line-height:1.12;letter-spacing:-.01em}
.rc-title:focus{outline:none}
.rc-trail{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--rc-muted)}
.rc-trail ol{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.rc-trail li{display:flex;gap:6px}
.rc-trail a{color:var(--rc-muted);text-decoration:none}.rc-trail a:hover{text-decoration:underline}
.rc-trail-link{padding:0;border:0;background:none;font:inherit;color:var(--rc-muted);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.rc-trail-link:hover{color:var(--rc-ink);text-decoration-color:currentColor}
.rc-trail [aria-current=page]{color:var(--rc-ink)}

/* Guided / Free form switch: always visible. */
.rc-mode-switch{display:flex;gap:2px;padding:4px;border-radius:999px;background:var(--rc-raised)}
.rc-mode-switch button{display:flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:0;border-radius:999px;background:transparent;font-size:14px;font-weight:700;cursor:pointer}
.rc-mode-switch .is-on{background:var(--rc-accent);color:var(--rc-accent-ink)}

/* Appearance: scheme chip, light/dark/auto, font ← list →. Behind the Aa button in the top-right corner on
   every device. The panel has a fixed width and its controls use the body font, so changing the font never
   moves the arrows or anything else. */
.rc-appearance{position:relative;display:flex;align-items:center}
.rc-appearance-toggle{width:44px;height:44px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);font-family:var(--rc-font-display);font-weight:800;font-size:17px;cursor:pointer}
.rc-appearance-toggle[aria-expanded=true]{background:var(--rc-accent);color:var(--rc-accent-ink);border-color:var(--rc-accent)}
.rc-appearance-panel{display:none}
.rc-appearance-panel.is-open{position:absolute;z-index:15;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 32px));display:grid;gap:12px;padding:14px;border-radius:16px;border:1px solid var(--rc-line);background:var(--rc-surface);box-shadow:0 18px 50px rgba(10,20,15,.18)}
.rc-appearance-panel,.rc-appearance-panel button,.rc-appearance-panel select,.rc-appearance-panel label{font-family:var(--rc-font-body)!important;font-weight:600!important}
.rc-appearance-panel .rc-chip{width:100%;justify-content:flex-start}.rc-appearance-panel .rc-chip svg{margin-left:auto}
.rc-appearance-panel .rc-segment{display:grid;grid-template-columns:repeat(3,1fr)}
.rc-scheme{position:relative}
.rc-chip,.rc-step,.rc-segment,.rc-font select{min-height:44px;border:1px solid var(--rc-line);border-radius:10px;background:var(--rc-surface)}
.rc-chip{display:flex;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:700;cursor:pointer}
.rc-dot{width:14px;height:14px;border-radius:50%;flex:none}
.rc-scheme-menu{position:absolute;z-index:20;top:50px;left:0;right:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:8px;border-radius:14px;border:1px solid var(--rc-line);background:var(--rc-surface);box-shadow:0 18px 50px rgba(10,20,15,.18)}
.rc-scheme-menu button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 10px;border:1px solid transparent;border-radius:10px;background:transparent;font-size:14px;font-weight:600;text-align:left;cursor:pointer}
.rc-scheme-menu [aria-checked=true]{background:var(--rc-accent-soft);border-color:var(--rc-accent)}
.rc-segment{display:flex;padding:3px;gap:2px}
.rc-segment button{min-height:36px;padding:0 10px;border:0;border-radius:7px;background:transparent;font-size:13px;font-weight:700;cursor:pointer}
.rc-segment .is-on{background:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-font{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px}
.rc-font label{grid-column:1/-1;font-size:13px;color:var(--rc-muted)}
.rc-step{width:44px;font-size:18px;cursor:pointer}
.rc-font select{width:100%;min-width:0;padding:0 8px;font-size:14px;text-overflow:ellipsis}

/* Tabs: bottom bar on phones. */
.rc-tabs{position:fixed;z-index:10;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px 8px calc(8px + env(safe-area-inset-bottom));background:var(--rc-surface);border-top:1px solid var(--rc-line)}
.rc-tabs button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;border:0;background:transparent;font-size:12px;font-weight:700;color:var(--rc-muted);cursor:pointer}
.rc-tab-icon{display:flex;align-items:center;justify-content:center;width:56px;height:30px;border-radius:999px}
.rc-tabs .is-on{color:var(--rc-ink)}
.rc-tabs .is-on .rc-tab-icon{background:var(--rc-accent-soft);color:var(--rc-accent)}
.rc-brand{display:none;padding:0 8px 18px;font-family:var(--rc-font-brand);font-weight:400;font-size:17px;letter-spacing:.04em}.rc-brand b{color:var(--rc-accent)}
.rc-header{position:relative}
.rc-placeholder{padding:24px;border:2px dashed var(--rc-line);border-radius:18px;color:var(--rc-muted)}

/* iPad: rail on the left; mode switch moves to the right of the header. */
@media (min-width:744px){
 .rc-app{flex-direction:row}
 .rc-tabs{position:sticky;top:0;height:100vh;width:92px;display:flex;flex-direction:column;justify-content:flex-start;gap:6px;padding:24px 8px;border-top:0;border-right:1px solid var(--rc-line)}
 .rc-main{padding:24px 28px 32px}
 .rc-header-bar{justify-content:flex-end}
 .rc-title{font-size:32px}
}
/* Desktop: labelled sidebar. */
@media (min-width:1200px){
 .rc-tabs{width:240px;padding:28px 16px}
 .rc-brand{display:block}
 .rc-tabs button{flex-direction:row;justify-content:flex-start;gap:10px;min-height:48px;padding:0 8px;border-radius:12px;font-size:15px}
 .rc-tabs .is-on{background:var(--rc-accent-soft);color:var(--rc-accent)}
 .rc-tabs .is-on .rc-tab-icon{background:transparent}
 .rc-tab-icon{width:28px}
 .rc-main{padding:32px 40px;max-width:1200px}
 .rc-title{font-size:38px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* Menus, buttons, tabs and the trail use the chosen font (like the menu font on tools.l3v.ai). */
.rc-trail,.rc-mode-switch button,.rc-tabs button{font-family:var(--rc-font-display);font-weight:var(--rc-display-weight)}
.rc-appearance-toggle{font-family:var(--rc-font-brand);font-weight:400}
.rc-size{display:grid;gap:6px}.rc-size-label{font-size:13px;color:var(--rc-muted)}
.rc-size .rc-segment button{display:flex;align-items:baseline;justify-content:center;gap:4px}

/* Cards, buttons and the difficulty picker. */
.rc-card{display:flex;flex-direction:column;gap:10px;margin:0;padding:18px;border-radius:18px;background:var(--rc-surface);border:1px solid var(--rc-line)}
.rc-card h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:22px;line-height:1.2}
.rc-card p{margin:0}
.rc-eyebrow{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--rc-accent)}
.rc-muted-note{font-size:14px;color:var(--rc-muted)}
.rc-primary,.rc-secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:54px;padding:0 20px;border-radius:16px;font-size:17px;font-weight:700;cursor:pointer}
.rc-primary{border:0;background:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-primary[aria-disabled=true]{background:var(--rc-raised);color:var(--rc-muted);cursor:not-allowed}
.rc-secondary{border:1px solid var(--rc-line);background:var(--rc-surface)}
.rc-link-btn{padding:4px 0;border:0;background:none;color:var(--rc-accent);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.rc-icon-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);cursor:pointer}
.rc-icon-btn[aria-pressed=true]{background:var(--rc-hl-soft);border-color:var(--rc-hl)}
.rc-icon-btn[aria-pressed=true] svg{fill:currentColor}
.rc-pill{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--rc-line);background:var(--rc-surface);color:var(--rc-ink);font-size:14px;font-weight:700;text-decoration:none;cursor:pointer}
.rc-pill.is-primary{background:var(--rc-accent);border-color:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-levels{display:grid;gap:8px}
.rc-level{display:grid;gap:2px;min-height:56px;padding:10px 14px;border:2px solid var(--rc-line);border-radius:14px;background:var(--rc-surface);text-align:left;cursor:pointer}
.rc-level span{font-size:14px;color:var(--rc-muted)}
.rc-level.is-on{border-color:var(--rc-accent);background:var(--rc-accent-soft)}

/* Question screen. Question, answers and explanations follow the Aa text size. */
.rc-quiz{display:flex;flex-direction:column;gap:14px;max-width:720px}
.rc-quiz-bar{display:flex;align-items:center;gap:8px}
.rc-quiz-progress{flex:1;display:grid;gap:6px;min-width:0}
.rc-quiz-count{font-size:14px;font-weight:700;color:var(--rc-muted)}
.rc-meter{display:block;height:8px;border-radius:999px;background:var(--rc-raised);overflow:hidden}
.rc-meter span{display:block;height:100%;border-radius:999px;background:var(--rc-accent);transition:width .3s}
.rc-quiz-figure{position:relative;display:block;padding:0;border:0;border-radius:16px;overflow:hidden;background:var(--rc-raised);cursor:zoom-in}
.rc-quiz-figure img{display:block;width:100%;height:clamp(140px,26vh,200px);object-fit:cover}
@media (min-width:744px){.rc-quiz-figure img{height:clamp(160px,24vh,240px)}}
.rc-quiz-body,.rc-quiz-stem,.rc-quiz-answer{display:flex;flex-direction:column;gap:14px}
@media (min-width:1100px){
 .rc-quiz{max-width:1120px}
 .rc-quiz-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;align-items:start}
 .rc-quiz-stem{position:sticky;top:24px}
 .rc-quiz-figure img{height:auto;max-height:340px;aspect-ratio:4/3}
}
.rc-zoom-badge{position:absolute;right:10px;bottom:10px;display:flex;padding:8px;border-radius:10px;background:var(--rc-surface);color:var(--rc-ink)}
.rc-question{margin:0;font-family:var(--rc-font-body);font-weight:700;font-size:calc(20px * var(--rc-text-scale,1));line-height:1.35}
.rc-question:focus{outline:none}
.rc-options{display:grid;gap:8px}
.rc-option{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 14px 8px 10px;border:2px solid var(--rc-line);border-radius:14px;background:var(--rc-surface);font-size:calc(17px * var(--rc-text-scale,1));font-weight:600;line-height:1.35;text-align:left;cursor:pointer}
.rc-option-key{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:9px;background:var(--rc-raised);font-size:15px;font-weight:800}
.rc-option-text{flex:1}
.rc-option-tag{flex:none;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--rc-surface)}
.rc-option.is-selected{border-color:var(--rc-accent);background:var(--rc-accent-soft)}
.rc-option.is-selected .rc-option-key{background:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-option.is-right{border-color:var(--rc-good);background:var(--rc-good-soft);color:var(--rc-good)}
.rc-option.is-right .rc-option-key{background:var(--rc-good);color:#fff}
.rc-option.is-wrong{border-color:var(--rc-bad);background:var(--rc-bad-soft);color:var(--rc-bad)}
.rc-option.is-wrong .rc-option-key{background:var(--rc-bad);color:#fff}
.rc-option[aria-disabled=true]{cursor:default}
.rc-hint-btn{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:44px;padding:0 16px;border:2px dashed var(--rc-hl);border-radius:999px;background:var(--rc-hl-soft);color:var(--rc-ink);font-weight:700;cursor:pointer}
.rc-hint{margin:0;padding:12px 14px;border-left:4px solid var(--rc-hl);border-radius:10px;background:var(--rc-hl-soft);font-size:calc(16px * var(--rc-text-scale,1))}
.rc-feedback{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:18px;background:var(--rc-surface);border:2px solid var(--rc-line);animation:rc-rise .25s ease-out}
.rc-feedback.is-right{border-color:var(--rc-good)}.rc-feedback.is-wrong{border-color:var(--rc-bad)}.rc-feedback.is-hinted{border-color:var(--rc-hl)}
.rc-feedback-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.rc-feedback h3{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:22px}
.rc-feedback.is-right h3{color:var(--rc-good)}.rc-feedback.is-wrong h3{color:var(--rc-bad)}
.rc-chip-note{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--rc-raised);color:var(--rc-muted)}
.rc-explanation{margin:0;font-size:calc(16px * var(--rc-text-scale,1))}
.rc-why{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:calc(15px * var(--rc-text-scale,1))}
.rc-why li{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--rc-raised)}
.rc-why li.is-right{background:var(--rc-good-soft)}
.rc-feedback-links{display:flex;flex-wrap:wrap;gap:8px}
.rc-report{display:grid;gap:10px;padding:12px;border-radius:12px;background:var(--rc-raised)}
.rc-report fieldset{display:grid;gap:6px;margin:0;padding:0;border:0}
.rc-report legend{margin-bottom:6px;font-weight:700}
.rc-report label{display:flex;align-items:center;gap:8px;min-height:36px}
.rc-report-note{flex-direction:column;align-items:stretch!important;font-size:14px}
.rc-report textarea{width:100%;padding:8px;border:1px solid var(--rc-line);border-radius:10px;background:var(--rc-surface);resize:vertical}
.rc-report-actions{display:flex;justify-content:flex-end;gap:8px}
.rc-reported{margin:0;font-size:14px;color:var(--rc-muted)}
.rc-quiz-actions{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom));z-index:5;display:grid;gap:4px;padding:10px 0 4px;background:linear-gradient(transparent,var(--rc-ground) 22%)}
.rc-keys{display:none;font-size:12px;color:var(--rc-muted);text-align:center}
.rc-zoom{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(8,12,10,.88)}
.rc-zoom img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;background:#fff}
.rc-zoom-close{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px}
.rc-results{display:grid;gap:16px;align-items:start}
.rc-results-score{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:28px}
.rc-results-actions{display:grid;gap:8px}
@keyframes rc-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (min-width:744px){
 .rc-quiz-actions{bottom:0}
 .rc-keys{display:block}
 .rc-results-actions{grid-template-columns:1fr 1fr}
 .rc-primary,.rc-secondary{width:auto}
 .rc-start .rc-primary,.rc-quiz-actions .rc-primary{max-width:360px}
}

/* Free-form practice home: one big card per practice type, then topics. */
.rc-practice{display:flex;flex-direction:column;gap:14px;max-width:1120px}
.rc-practice-grid{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.rc-practice-card{display:grid;gap:4px;width:100%;height:100%;min-height:96px;padding:14px 16px;border:2px solid var(--rc-line);border-radius:16px;background:var(--rc-surface);color:var(--rc-ink);text-align:left;text-decoration:none;cursor:pointer}
.rc-practice-card:hover{border-color:var(--rc-accent)}
.rc-practice-card[aria-disabled=true]{cursor:default;border-style:dashed}
.rc-practice-card[aria-disabled=true]:hover{border-color:var(--rc-line)}
.rc-practice-card.is-locked{background:var(--rc-raised)}
.rc-practice-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:19px}
.rc-practice-about{font-size:15px}
.rc-practice-meta{font-size:13px;font-weight:700;color:var(--rc-muted)}
.rc-practice-cta{justify-self:start;margin-top:4px;font-size:14px;font-weight:700;color:var(--rc-accent);text-decoration:underline;text-underline-offset:3px}
.rc-topics h2{margin:6px 0 8px;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:20px}
.rc-topics ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rc-topic{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:52px;padding:8px 14px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);color:var(--rc-ink);font-weight:700;text-align:left;text-decoration:none;cursor:pointer}
.rc-topic.is-locked{background:var(--rc-raised);color:var(--rc-muted)}
.rc-topic-meta{display:inline-flex;align-items:center;gap:4px;flex:none;font-size:13px;color:var(--rc-muted)}
/* Results that coach. */
.rc-results-topics h3,.rc-coach h3{margin:0 0 6px;font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-muted)}
.rc-results-topics ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rc-results-topics li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px}
.rc-results-topics li .rc-meter{grid-column:1/-1;grid-row:2}
.rc-results-topics li strong{font-size:14px;text-align:right}
.rc-coach{padding:14px;border-radius:14px;background:var(--rc-accent-soft)}
.rc-coach p{margin:0;font-size:calc(16px * var(--rc-text-scale,1))}
@media (min-width:744px){
 .rc-practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .rc-results-actions{grid-template-columns:repeat(3,auto);justify-content:start}
}
@media (min-width:1200px){.rc-practice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rc-practice > p{margin:0}

/* Guided road: mastery ring, one stop per topic, one Continue button. */
.rc-road-screen{display:flex;flex-direction:column;gap:16px;max-width:760px}
.rc-readiness{flex-direction:row;align-items:center;gap:16px}
.rc-ring{position:relative;width:76px;height:76px;flex:none}
.rc-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:18px}
.rc-readiness-text{display:grid;gap:2px;min-width:0}
.rc-readiness-text > strong{font-size:18px}
.rc-readiness-text > span{font-size:14px;color:var(--rc-muted)}
.rc-readiness-text .rc-start-level{margin:4px 0 0;font-size:14px}
.rc-road ol{position:relative;display:grid;gap:10px;margin:0;padding:0;list-style:none}
.rc-road ol::before{content:"";position:absolute;left:22px;top:24px;bottom:24px;border-left:3px dashed var(--rc-line)}
.rc-stop{position:relative;display:flex;align-items:center;gap:14px;padding:6px 0}
.rc-stop-dot{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex:none;border-radius:50%;background:var(--rc-raised);color:var(--rc-muted)}
.rc-stop-text{display:grid;gap:2px;flex:1;min-width:0}
.rc-stop-text strong{font-size:16px}
.rc-stop-text span{font-size:13px;color:var(--rc-muted)}
.rc-stop.is-done .rc-stop-dot{background:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-stop.is-current{padding:12px 12px 12px 0;border-radius:18px;background:var(--rc-surface);box-shadow:0 1px 2px rgba(16,24,20,.05),0 10px 28px rgba(16,24,20,.07)}
.rc-stop.is-current .rc-stop-dot{background:var(--rc-hl);color:var(--rc-hl-ink)}
.rc-stop.is-locked strong{color:var(--rc-muted)}
.rc-stop.is-goal .rc-stop-dot{background:var(--rc-surface);border:2px solid var(--rc-line)}
.rc-here{flex:none;padding:4px 8px;border-radius:999px;background:var(--rc-hl);color:var(--rc-hl-ink);font-size:12px;font-weight:700}
.rc-continue{justify-content:space-between;min-height:64px;text-align:left}
.rc-continue-text{display:grid;gap:2px}
.rc-continue-text span{font-size:13px;font-weight:600;opacity:.9}
@media (min-width:744px){.rc-continue{max-width:420px}}

/* Study, Progress, Me. */
.rc-study{max-width:1120px}
.rc-progress,.rc-me{display:grid;gap:16px}
.rc-card h2{font-size:20px}
.rc-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.rc-stats div{padding:12px;border-radius:12px;background:var(--rc-raised)}
.rc-stats dt{font-size:13px;color:var(--rc-muted)}
.rc-stats dd{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:24px}
.rc-history,.rc-checklist{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rc-history li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:var(--rc-raised)}
.rc-history li > span{display:grid}
.rc-history li > span span{font-size:13px;color:var(--rc-muted)}
.rc-checklist li{display:flex;align-items:center;gap:10px}
.rc-checklist li > span:first-child{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex:none;border-radius:50%;border:2px solid var(--rc-line)}
.rc-checklist li.is-done > span:first-child{background:var(--rc-good);border-color:var(--rc-good);color:#fff}
.rc-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.rc-pill.is-danger{border-color:var(--rc-bad);color:var(--rc-bad)}
.rc-me .rc-pill{align-self:flex-start}
/* Flashcards. */
.rc-flash{display:flex;flex-direction:column;gap:14px;max-width:720px}
.rc-flashcard{display:grid;gap:12px;min-height:200px;padding:24px;border:2px solid var(--rc-line);border-radius:20px;background:var(--rc-surface);color:var(--rc-ink);text-align:left;cursor:pointer}
.rc-flashcard.is-flipped{min-height:0;border-color:var(--rc-accent)}
.rc-flash-front{font-weight:700;font-size:calc(21px * var(--rc-text-scale,1));line-height:1.35}
.rc-flash-cta{align-self:end;font-size:14px;font-weight:700;color:var(--rc-accent)}
.rc-flash-back{display:grid;gap:8px;padding:18px;border-radius:18px;background:var(--rc-good-soft);font-size:calc(16px * var(--rc-text-scale,1))}
.rc-flash-back strong{color:var(--rc-good);font-size:calc(18px * var(--rc-text-scale,1))}
.rc-flash-back p{margin:0}
.rc-flash-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (min-width:744px){.rc-flash-actions{max-width:420px}.rc-flash-actions .rc-primary,.rc-flash-actions .rc-secondary{width:100%}}

/* State chip and picker sheet. */
.rc-state-chip{display:flex;align-items:center;gap:4px;height:44px;padding:0 12px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);font-family:var(--rc-font-body);font-weight:700;font-size:15px;cursor:pointer}
.rc-header-actions{flex-wrap:nowrap}
.rc-sheet-backdrop{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;background:rgba(8,12,10,.45)}
.rc-sheet{display:flex;flex-direction:column;gap:8px;width:100%;max-width:560px;max-height:86vh;overflow:auto;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--rc-surface);animation:rc-rise .2s ease-out}
.rc-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rc-sheet h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:22px}
.rc-sheet h3{margin:8px 0 2px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-muted)}
.rc-state-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.rc-state-option{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:0 14px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);color:var(--rc-ink);font-size:16px;font-weight:600;text-align:left;cursor:pointer}
.rc-state-option[aria-current=true]{border:2px solid var(--rc-accent);background:var(--rc-accent-soft)}
.rc-state-option svg{margin-left:auto;color:var(--rc-accent)}
.rc-state-code{display:inline-flex;align-items:center;justify-content:center;width:40px;height:30px;border-radius:8px;background:var(--rc-raised);font-size:13px;font-weight:800}
@media (min-width:744px){
 .rc-sheet-backdrop{align-items:center}
 .rc-sheet{border-radius:22px;max-height:80vh}
 .rc-state-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Sign-in form. */
.rc-signin{display:grid;gap:10px;max-width:440px}
.rc-signin h2{margin:0}
.rc-signin label{font-size:14px;font-weight:700}
.rc-signin input{min-height:48px;padding:0 12px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);font-size:17px}
.rc-signin .rc-segment{display:grid;grid-template-columns:1fr 1fr}
.rc-signin p{margin:0}
.rc-form-error{padding:10px 12px;border-radius:10px;background:var(--rc-bad-soft);color:var(--rc-bad);font-weight:600}
.rc-language{display:grid;grid-template-columns:1fr 1fr;max-width:320px}

/* Road signs library. */
.rc-signs{display:flex;flex-direction:column;gap:14px;max-width:1120px}
.rc-filter{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.rc-filter button{flex:none;min-height:40px;padding:0 14px;border:1px solid var(--rc-line);border-radius:999px;background:var(--rc-surface);font-size:14px;font-weight:700;cursor:pointer}
.rc-filter .is-on{background:var(--rc-accent);border-color:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-sign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.rc-sign-tile{display:grid;justify-items:center;align-content:start;gap:8px;width:100%;height:100%;padding:14px 10px;border:1px solid var(--rc-line);border-radius:16px;background:var(--rc-surface);color:var(--rc-ink);font-size:14px;font-weight:700;text-align:center;cursor:pointer}
.rc-sign-tile img{width:88px;height:88px;object-fit:contain}
.rc-sign-detail img{display:block;width:160px;height:160px;margin:4px auto;object-fit:contain}
.rc-sign-detail p{margin:0;font-size:calc(16px * var(--rc-text-scale,1))}
@media (min-width:744px){.rc-sign-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1200px){.rc-sign-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
/* Road signs in questions are shown whole on a plain background, never cropped. */
.rc-quiz-figure.is-sign{background:var(--rc-surface);border:1px solid var(--rc-line)}
.rc-quiz-figure.is-sign img{height:clamp(120px,20vh,180px);object-fit:contain;padding:12px;aspect-ratio:auto}
.rc-links{display:grid;gap:8px;margin:0;padding-left:18px}

.rc-road-wide{display:grid;gap:22px}
.rc-track{padding:18px 20px 6px;border-radius:22px;background:var(--rc-surface);border:1px solid var(--rc-line)}
.rc-track-line{position:relative;height:150px}
.rc-track-line svg{position:absolute;inset:0;width:100%;height:100%}
.rc-track-dot{position:absolute;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:var(--rc-raised);color:var(--rc-muted);border:3px solid var(--rc-surface);box-shadow:0 2px 8px rgba(16,24,20,.12)}
.rc-track-dot.is-done{background:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-track-dot.is-current{width:58px;height:58px;margin:-29px 0 0 -29px;background:var(--rc-hl);color:var(--rc-hl-ink);box-shadow:0 0 0 6px var(--rc-hl-soft)}
.rc-track-dot.is-upcoming{background:var(--rc-surface);border-color:var(--rc-line)}
.rc-track-dot.is-goal{background:var(--rc-surface);border:2px solid var(--rc-line);color:var(--rc-ink)}
.rc-track-labels{display:grid;gap:8px;margin:6px 0 8px;padding:0;list-style:none}
.rc-track-stop > *{display:grid;justify-items:center;align-content:start;gap:2px;width:100%;height:100%;padding:8px 4px;border:0;border-radius:12px;background:transparent;color:var(--rc-ink);text-align:center;text-decoration:none;font:inherit;cursor:pointer}
.rc-track-stop div{cursor:default}
.rc-track-stop button:hover,.rc-track-stop a:hover{background:var(--rc-raised)}
.rc-track-stop strong{font-size:15px;line-height:1.25}
.rc-track-stop span{font-size:12px;color:var(--rc-muted);line-height:1.35}
.rc-track-stop.is-locked strong{color:var(--rc-muted)}
.rc-track-stop .rc-here{margin-top:4px;color:var(--rc-hl-ink)}
.rc-road-cards{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:stretch}
.rc-next-card{justify-content:flex-start;background:var(--rc-accent-soft);border-color:transparent}
.rc-next-card h2{font-size:26px}
.rc-next-card .rc-continue{max-width:none}
.rc-readiness-head{display:flex;align-items:center;gap:16px}
.rc-readiness-head h2{margin:0 0 4px}
.rc-ring-lg{width:88px;height:88px}
.rc-factors{display:grid;gap:12px;margin:4px 0 0}
.rc-factors div{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center}
.rc-factors dt{font-size:14px;color:var(--rc-muted)}
.rc-factors dd{margin:0;font-weight:700;font-size:14px}
.rc-factors .rc-meter{grid-column:1/-1}
.rc-weak-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.rc-weak-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:var(--rc-raised)}
.rc-weak-list li > span{display:grid}
.rc-weak-list li > span span{font-size:13px;color:var(--rc-muted)}

/* ---------- Approved desktop design (docs/DESIGN-SYSTEM.md, desktop board). Phone and iPad rules first, then ≥1200px. ---------- */
.rc-header{display:flex;flex-direction:column;gap:8px}
.rc-header-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.rc-header-bar{order:-1}
.rc-subline{margin:0;font-size:15px;color:var(--rc-muted)}
.rc-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rc-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--rc-accent-soft);color:var(--rc-accent);font-family:var(--rc-font-body);font-size:12px;font-weight:700}
.rc-tabs-foot{display:none}
.rc-field{display:grid;gap:6px;font-size:14px;font-weight:700}
.rc-field select,.rc-field input{min-height:44px;padding:0 10px;border:1px solid var(--rc-line);border-radius:10px;background:var(--rc-surface);font-size:15px;font-weight:500}
.rc-check{display:flex;align-items:center;gap:10px;min-height:36px;font-size:15px}
.rc-check input{width:20px;height:20px;accent-color:var(--rc-accent)}
.rc-search{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;border-radius:12px;background:var(--rc-surface);border:1px solid var(--rc-line);color:var(--rc-muted)}
.rc-search:focus-within{outline:3px solid var(--rc-hl);outline-offset:2px}
.rc-search input{flex:1;min-width:0;border:0;background:transparent;font-size:16px;color:var(--rc-ink);outline:none}

/* Free-form practice: today's session, the other practice types, topics with mastery. */
.rc-practice{display:grid;gap:18px;max-width:none}
.rc-practice-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.rc-practice-hero{grid-template-columns:minmax(0,1fr) auto;column-gap:20px;padding:20px 22px;background:var(--rc-accent);border-color:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-practice-hero:hover{border-color:var(--rc-accent)}
.rc-practice-hero > *{grid-column:1}
.rc-practice-hero .rc-eyebrow{color:inherit;opacity:.85}
.rc-practice-hero .rc-practice-head{font-size:24px}
.rc-practice-hero .rc-practice-meta{color:inherit;opacity:.9}
.rc-hero-go{grid-column:2;grid-row:1/span 4;align-self:center;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 20px;border-radius:14px;background:var(--rc-surface);color:var(--rc-accent);font-weight:700;font-size:17px}
.rc-topics{gap:6px}
.rc-topics h2{margin:0}
.rc-topics ul{gap:0}
.rc-topic{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 10px;min-height:0;padding:12px 0;border:0;border-top:1px solid var(--rc-line);border-radius:0;background:transparent}
.rc-topic .rc-topic-meta{justify-self:start;flex-wrap:wrap;min-width:0} /* the note under the name: a long name or note never overlaps */
.rc-topic .rc-meter{grid-column:1/-1}
.rc-topic.is-locked{background:transparent}
.rc-topic-name{min-width:0}
.rc-topics .rc-start-level{margin:6px 0 0;font-size:14px}
@media (max-width:743px){.rc-hero-go{grid-column:1;grid-row:auto;justify-self:start;margin-top:8px}}

/* Practice question: step squares, stem on the left, answers and feedback on the right. */
.rc-quiz-steps{display:none}
.rc-leave-text{display:none}
.rc-quiz-answer .rc-quiz-actions .rc-primary{justify-content:center}

/* Mock exam and simulator: focus mode. */
.rc-app.is-focus{display:block}
.rc-exam{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.rc-exam-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--rc-surface);border-bottom:1px solid var(--rc-line)}
.rc-exam-title{font-size:22px}
.rc-exam-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rc-exam-clock{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-radius:12px;background:var(--rc-raised);font-weight:700;font-size:17px;font-variant-numeric:tabular-nums}
.rc-exam-tools .rc-secondary,.rc-exam-nav .rc-secondary,.rc-exam-nav .rc-primary{width:auto;min-height:48px}
.rc-exam-body{display:grid;gap:20px;padding:20px 16px 32px}
.rc-exam-main{display:flex;flex-direction:column;gap:16px;max-width:820px;min-width:0}
.rc-exam-stem{display:flex;flex-direction:column;gap:16px}
.rc-exam-stem img{width:150px;height:150px;object-fit:contain;padding:14px;border-radius:18px;background:var(--rc-surface);border:1px solid var(--rc-line)}
.rc-exam-stem img:not(.is-sign){width:100%;height:200px;padding:0;object-fit:cover}
.rc-exam-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.rc-exam-gap{flex:1}
.rc-exam-nav .rc-secondary:disabled{opacity:.5;cursor:default}
.rc-exam-flag[aria-pressed=true]{background:var(--rc-hl-soft);border-color:var(--rc-hl)}
.rc-exam-side{display:grid;gap:16px;align-content:start}
.rc-exam-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none}
.rc-exam-grid button{width:100%;height:38px;padding:0;border:1px solid var(--rc-line);border-radius:10px;background:var(--rc-surface);color:var(--rc-muted);font-size:13px;font-weight:700;cursor:pointer}
.rc-exam-grid .is-answered{background:var(--rc-accent-soft);border-color:transparent;color:var(--rc-accent)}
.rc-exam-grid .is-current{background:var(--rc-accent);border-color:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-exam-grid .is-flagged{box-shadow:inset 0 0 0 2px var(--rc-hl)}
.rc-exam-legend{display:flex;flex-wrap:wrap;gap:14px;margin:0;font-size:13px;color:var(--rc-muted)}
.rc-exam-legend span{display:inline-flex;align-items:center;gap:6px}
.rc-exam-legend span::before{content:"";width:12px;height:12px;border-radius:4px;border:1px solid var(--rc-line);background:var(--rc-surface)}
.rc-exam-legend .is-answered::before{background:var(--rc-accent-soft);border-color:transparent}
.rc-exam-legend .is-current::before{background:var(--rc-accent);border-color:var(--rc-accent)}
.rc-exam-legend .is-flagged::before{box-shadow:inset 0 0 0 2px var(--rc-hl)}
.rc-exam-pass strong{font-size:20px}
.rc-exam-dialog h2{margin:0}
.rc-exam-dialog p{margin:0}
.rc-exam-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rc-exam-dialog-actions > *{width:100%}
.rc-exam-dialog .rc-link-btn{justify-self:center;align-self:center}

/* Results that coach. */
.rc-results-main{gap:18px}
.rc-results-head{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.rc-ring-xl{width:128px;height:128px}
.rc-ring-xl span{font-size:28px}
.rc-results-headline{display:grid;gap:6px;min-width:0}
.rc-status-pill{justify-self:start;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}
.rc-status-pill.is-good{background:var(--rc-good-soft);color:var(--rc-good)}
.rc-status-pill.is-bad{background:var(--rc-bad-soft);color:var(--rc-bad)}
.rc-results-facts{margin:0;padding-left:20px;font-size:15px}
.rc-results-side{display:grid;gap:16px;align-content:start}
.rc-coach{display:grid;gap:12px;padding:20px;border-radius:20px}
.rc-coach h3{margin:0;font-size:13px;color:var(--rc-accent)}
.rc-coach p{font-size:calc(17px * var(--rc-text-scale,1))}
.rc-coach .rc-results-actions{grid-template-columns:1fr}
.rc-coach .rc-primary,.rc-coach .rc-secondary{width:100%;max-width:none}
.rc-results-topics li.is-low .rc-meter span{background:var(--rc-hl)}
.rc-missed ul{margin:0;padding:0;list-style:none}
.rc-missed li{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--rc-line);font-size:15px}
.rc-missed-yours,.rc-missed-right{display:flex;align-items:flex-start;gap:6px}
.rc-missed-yours{color:var(--rc-bad)}.rc-missed-right{color:var(--rc-good)}
.rc-missed svg{flex:none;margin-top:4px}
.rc-flash-done{padding:20px;border-radius:18px;background:var(--rc-surface);border:1px solid var(--rc-line)}

/* Study: road signs across the top, then the other cards; test facts on the side. */
.rc-study{display:grid;gap:16px}
.rc-sign-thumbs{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.rc-sign-thumbs img{width:48px;height:48px;object-fit:contain}
.rc-facts{margin:0}
.rc-facts div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--rc-line);font-size:15px}
.rc-facts dt{color:var(--rc-muted)}
.rc-facts dd{margin:0;font-weight:700;text-align:right}
@media (min-width:744px){.rc-study-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rc-study-wide{grid-column:1/-1}}

/* Road signs: search, filter, grid; a side panel on desktop. */
.rc-signs{display:grid;gap:16px;max-width:none}
.rc-signs-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.rc-sign-tile.is-on{border:2px solid var(--rc-accent);background:var(--rc-accent-soft)}
.rc-sign-panel img{display:block;width:180px;height:180px;margin:0 auto;object-fit:contain}
.rc-sign-panel h3,.rc-sign-detail h3{margin:6px 0 0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--rc-muted)}
.rc-sign-panel p,.rc-sign-detail p{margin:0}
.rc-sign-detail .rc-primary,.rc-sign-panel .rc-primary{margin-top:6px}

/* Flashcards: question and answer side by side on desktop; deck settings in a rail. */
.rc-flash-page{display:grid;gap:18px;align-items:start}
.rc-flash{max-width:none}
.rc-flash-pair{display:grid;gap:14px}
.rc-flash-meta{font-size:14px;color:var(--rc-muted)}
.rc-flash-back .rc-eyebrow{color:var(--rc-good)}
.rc-flash-placeholder{display:none}
.rc-flash-rail .rc-stats dd{font-size:24px}

/* Progress: four numbers, last sessions against the 80% line, checklist, topics. */
.rc-progress{max-width:none}
.rc-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.rc-kpi{display:grid;gap:4px;align-content:start;padding:16px 18px;border-radius:18px;background:var(--rc-surface);border:1px solid var(--rc-line)}
.rc-kpi dt{font-size:14px;color:var(--rc-muted)}
.rc-kpi dd{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:26px;line-height:1.15}
.rc-kpi span{font-size:13px;color:var(--rc-muted)}
.rc-kpi.rc-readiness{display:flex;flex-direction:row;align-items:center;gap:14px}
.rc-kpi.rc-readiness > span{display:grid;gap:2px}
.rc-kpi .rc-ring span{font-size:15px;color:var(--rc-ink)}
.rc-progress-cols,.rc-progress-left{display:grid;gap:16px;align-items:start}
.rc-chart{position:relative;display:flex;gap:10px;height:200px;margin:0;padding:0;list-style:none;border-bottom:1px solid var(--rc-line)}
.rc-chart::before{content:"";position:absolute;left:0;right:0;bottom:146px;border-top:2px dashed var(--rc-line)}
.rc-chart li{flex:1;display:grid;grid-template-rows:18px 150px 20px;row-gap:6px;justify-items:center;min-width:0}
.rc-chart-value{font-size:12px;font-weight:700}
.rc-chart-track{position:relative;width:100%;max-width:44px;height:150px}
.rc-chart-bar{position:absolute;left:0;right:0;bottom:0;border-radius:8px 8px 4px 4px;background:var(--rc-hl)}
.rc-chart li.is-good .rc-chart-bar{background:var(--rc-accent)}
.rc-chart-day{font-size:12px;color:var(--rc-muted);white-space:nowrap}

/* Me: sign-in with what it gives you; settings in cards. */
.rc-me{max-width:none}
.rc-signin-panel{display:grid;gap:16px}
.rc-benefits{display:grid;gap:16px;padding:24px;border-radius:20px;background:var(--rc-accent-soft)}
.rc-benefits h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:24px;line-height:1.2}
.rc-benefits ul{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.rc-benefits li{display:flex;align-items:flex-start;gap:12px}
.rc-benefits li > span:last-child{display:grid}
.rc-benefits li > span:last-child span{font-size:14px;color:var(--rc-muted)}
.rc-benefit-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--rc-surface);color:var(--rc-accent)}
.rc-signin-card{padding:24px}
.rc-me-nav{display:none}
.rc-me-col{display:grid;gap:16px;align-content:start}
.rc-me h3.rc-eyebrow{margin:6px 0 0}
.rc-field-row{display:grid;gap:12px}
.rc-reset{display:grid;gap:8px;margin-top:6px;padding-top:12px;border-top:1px solid var(--rc-line)}
.rc-reset h3{margin:0}
.rc-links .rc-link-btn{padding:0;text-align:left}

/* Help. */
.rc-help{display:grid;gap:16px}
.rc-help-nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.rc-help-nav button{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;min-height:44px;padding:0 14px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);font-size:15px;font-weight:600;text-align:left;cursor:pointer}
.rc-help-nav .is-on{background:var(--rc-accent-soft);border-color:transparent;color:var(--rc-accent);font-weight:700}
.rc-help-count{font-size:13px;color:var(--rc-muted)}
.rc-faq details{padding:14px 0;border-top:1px solid var(--rc-line)}
.rc-faq summary{font-weight:700;font-size:calc(17px * var(--rc-text-scale,1));cursor:pointer}
.rc-faq details p{margin:10px 0 0;font-size:calc(16px * var(--rc-text-scale,1));line-height:1.55}
.rc-contact-icon{color:var(--rc-accent)}
.rc-contact .rc-primary{width:100%;text-decoration:none}
.rc-contact h3{margin:6px 0 0}

/* State picker. */
.rc-state-sheet .rc-search{margin:4px 0}

/* First run. */
.rc-onboard{display:grid;min-height:100vh;min-height:100dvh;background:var(--rc-ground)}
.rc-onboard-side{display:grid;gap:14px;align-content:start;padding:calc(24px + env(safe-area-inset-top)) 20px 24px;background:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-onboard-brand{font-family:var(--rc-font-brand);font-size:20px;letter-spacing:.04em}.rc-onboard-brand b{font-weight:400;color:var(--rc-hl)}
.rc-onboard-side h1{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:30px;line-height:1.1}
.rc-onboard-side p{margin:0;font-size:16px;opacity:.92}
.rc-onboard-steps{display:none}
.rc-onboard-free{font-size:14px!important;opacity:.85!important}
.rc-onboard-main{display:flex;flex-direction:column;gap:16px;width:100%;max-width:760px;padding:24px 20px 40px}
.rc-onboard-main h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:30px;line-height:1.15}
.rc-onboard-main h2:focus{outline:none}
.rc-onboard-main p{margin:0}
.rc-choices{display:grid;gap:10px}
.rc-choice{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 16px;border:1px solid var(--rc-line);border-radius:14px;background:var(--rc-surface);color:var(--rc-ink);font-size:16px;font-weight:700;text-align:left;cursor:pointer}
.rc-choice.is-on{border:2px solid var(--rc-accent);background:var(--rc-accent-soft)}
.rc-choice svg{margin-left:auto;color:var(--rc-accent)}
.rc-onboard-select{max-width:320px}
.rc-onboard-actions{display:flex;gap:12px;margin-top:6px}
.rc-onboard-actions > *{width:auto}
.rc-onboard-actions .rc-primary{min-width:200px}
.rc-onboard-skip{align-self:flex-start}
@media (min-width:744px){.rc-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.rc-field-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (min-width:1000px){
 .rc-onboard{grid-template-columns:minmax(380px,520px) minmax(0,1fr)}
 .rc-onboard-side{grid-template-rows:auto auto auto auto 1fr;gap:28px;padding:48px}
 .rc-onboard-side h1{font-size:44px}
 .rc-onboard-side p{font-size:18px}
 .rc-onboard-steps{display:grid;gap:18px;margin:0;padding:22px;list-style:none;border-radius:20px;background:rgba(255,255,255,.1)}
 .rc-onboard-steps li{display:flex;align-items:center;gap:12px}
 .rc-onboard-steps li > span:first-child{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border-radius:50%;background:rgba(255,255,255,.18);font-weight:800}
 .rc-onboard-steps li.is-current > span:first-child{background:var(--rc-hl);color:var(--rc-hl-ink)}
 .rc-onboard-steps li.is-done > span:first-child{background:var(--rc-accent-ink);color:var(--rc-accent)}
 .rc-onboard-steps li > span:last-child{display:grid}
 .rc-onboard-steps li > span:last-child span{font-size:13px;opacity:.82}
 .rc-onboard-free{align-self:end}
 .rc-onboard-main{justify-content:center;gap:22px;padding:64px 96px}
 .rc-onboard-main h2{font-size:38px}
 .rc-choices-5{grid-template-columns:repeat(3,minmax(0,1fr))}
 .rc-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media (min-width:1200px){
 .rc-main{max-width:1480px;padding:28px 40px 32px;gap:22px}
 .rc-tabs{width:248px;padding:26px 18px;gap:4px}
 .rc-brand{padding:0 8px 22px;font-size:20px}
 .rc-tabs-foot{display:grid;gap:10px;margin-top:auto}
 .rc-plan-card{display:grid;gap:4px;padding:14px;border-radius:14px;background:var(--rc-hl-soft);color:var(--rc-ink);text-decoration:none}
 .rc-plan-card.is-full{background:var(--rc-accent-soft)}
 .rc-plan-card strong{font-size:14px}
 .rc-plan-card span{font-size:13px;color:var(--rc-muted)}
 .rc-plan-card .rc-plan-cta{color:var(--rc-accent);font-weight:700;text-decoration:underline;text-underline-offset:3px}
 .rc-tabs .rc-help-link{min-height:44px;color:var(--rc-muted)}
 .rc-header{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:24px}
 .rc-header-bar{order:0;flex:none;flex-wrap:nowrap}
 .rc-title{font-size:34px}
 .rc-card{padding:22px;border-radius:20px}
 .rc-road-screen,.rc-quiz,.rc-signs,.rc-study{max-width:none}
 /* Practice */
 .rc-practice{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:20px;align-items:start}
 .rc-practice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
 .rc-practice-card{padding:18px 20px;border-width:1px;border-radius:18px}
 .rc-practice-card .rc-practice-meta{margin-top:auto}
 .rc-practice-head{font-size:21px}
 .rc-practice-hero{padding:24px 26px;border-radius:20px}
 .rc-practice-hero .rc-practice-head{font-size:28px}
 .rc-practice-hero .rc-practice-meta{margin-top:0}
 /* Question */
 .rc-quiz-bar{gap:16px}
 .rc-quiz-steps{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
 .rc-quiz-steps li{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--rc-raised);color:var(--rc-muted);font-size:13px;font-weight:700}
 .rc-quiz-steps .is-right{background:var(--rc-good-soft);color:var(--rc-good)}
 .rc-quiz-steps .is-wrong{background:var(--rc-bad-soft);color:var(--rc-bad)}
 .rc-quiz-steps .is-hinted{background:var(--rc-hl-soft);color:var(--rc-ink)}
 .rc-quiz-steps .is-current{background:var(--rc-accent);color:var(--rc-accent-ink)}
 .rc-quiz-steps + .rc-quiz-progress .rc-meter{display:none}
 .rc-leave{width:auto;gap:8px;padding:0 16px;font-weight:700}
 .rc-leave-text{display:inline}
 .rc-quiz-body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
 .rc-quiz-figure img{height:300px;max-height:none;aspect-ratio:auto}
 .rc-quiz-figure.is-sign img{height:240px}
 .rc-question{font-size:calc(26px * var(--rc-text-scale,1))}
 .rc-quiz-answer .rc-quiz-actions{position:static;padding:0;background:none}
 .rc-quiz-answer .rc-quiz-actions .rc-primary{width:100%;max-width:none;min-height:56px}
 /* Exam */
 .rc-exam-head{padding:18px 40px}
 .rc-exam-title{font-size:26px}
 .rc-exam-body{grid-template-columns:minmax(0,1fr) 380px;gap:32px;padding:28px 40px}
 .rc-exam-side{position:sticky;top:24px;align-self:start}
 .rc-exam-stem.has-image{flex-direction:row;align-items:flex-start;gap:22px}
 .rc-exam-stem.has-image img:not(.is-sign){width:260px;height:180px;flex:none}
 .rc-exam-stem img.is-sign{flex:none}
 .rc-exam-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
 /* Results */
 .rc-results{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}
 .rc-results-score{font-size:34px}
 .rc-coach{padding:24px}
 .rc-missed li{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
 .rc-missed-q{grid-column:1/-1;font-weight:600}
 .rc-flash-done{max-width:none}
 /* Study */
 .rc-study{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:20px;align-items:start}
 .rc-study-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .rc-study .rc-practice-card{padding:22px;border-radius:20px;min-height:150px}
 .rc-sign-thumbs{gap:14px}
 .rc-sign-thumbs img{width:58px;height:58px}
 /* Signs */
 .rc-signs{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:20px;align-items:start}
 .rc-filter{flex-wrap:wrap;overflow:visible}
 .rc-sign-grid{gap:12px}
 .rc-sign-tile img{width:72px;height:72px}
 .rc-sign-panel{position:sticky;top:24px}
 /* Flashcards */
 .rc-flash-page{grid-template-columns:minmax(0,2.4fr) minmax(0,1fr);gap:24px}
 .rc-flash-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .rc-flashcard,.rc-flash-back,.rc-flash-placeholder{min-height:300px;padding:30px;border-radius:24px}
 .rc-flashcard{align-content:space-between}
 .rc-flashcard.is-flipped{min-height:300px}
 .rc-flash-back{align-content:start}
 .rc-flash-placeholder{display:flex;align-items:center;justify-content:center;border:2px dashed var(--rc-line);color:var(--rc-muted);text-align:center;font-size:16px}
 .rc-flash-front{font-size:calc(26px * var(--rc-text-scale,1))}
 .rc-flash-back strong{font-size:calc(26px * var(--rc-text-scale,1))}
 .rc-flash .rc-quiz-actions{position:static;background:none}
 .rc-flash-actions{max-width:none;gap:16px}
 .rc-flash-actions .rc-primary,.rc-flash-actions .rc-secondary{min-height:60px;max-width:none;width:100%}
 .rc-flash .rc-quiz-actions > .rc-primary{max-width:none;width:100%;min-height:60px}
 /* Progress */
 .rc-progress{gap:20px}
 .rc-kpi{padding:18px 20px}
 .rc-kpi dd{font-size:34px}
 .rc-progress-cols{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px}
 .rc-progress-left{gap:20px}
 /* Me */
 .rc-me{grid-template-columns:200px minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
 .rc-signin-panel{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start;max-width:1000px}
 .rc-benefits{padding:28px}
 .rc-signin-card{padding:28px}
 .rc-me-nav{position:sticky;top:24px;display:flex;flex-direction:column;gap:4px}
 .rc-me-nav a{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:12px;color:var(--rc-ink);font-weight:600;text-decoration:none}
 .rc-me-nav a:hover{background:var(--rc-accent-soft);color:var(--rc-accent)}
 .rc-me .rc-levels{grid-template-columns:repeat(3,minmax(0,1fr))}
 .rc-field-row{grid-template-columns:repeat(3,minmax(0,1fr))}
 /* Help */
 .rc-help{grid-template-columns:260px minmax(0,1fr) 320px;gap:20px;align-items:start}
 .rc-help-nav{flex-direction:column;overflow:visible;padding:0}
 .rc-help-nav button{border-color:transparent;background:transparent}
 .rc-help-nav .is-on{background:var(--rc-accent-soft)}
 /* State picker */
 .rc-state-sheet{max-width:880px;padding:28px;gap:12px}
 .rc-state-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
 .rc-state-option{min-height:44px;padding:0 12px;font-size:15px}
 .rc-state-list.is-featured .rc-state-option{min-height:56px;font-size:16px;font-weight:700}
}
.rc-feedback .rc-link-btn{align-self:flex-start}

/* Links in the app use the accent colour. */
.rc-app a:not([class]){color:var(--rc-accent);text-underline-offset:3px}
.rc-links a{color:var(--rc-accent)}
@media (max-width:999px){.rc-kpi.rc-readiness{grid-column:1/-1}}
.rc-habits{margin:0;padding:12px 16px;border-radius:14px;background:var(--rc-accent-soft);color:var(--rc-ink);font-weight:600;font-size:15px}

/* Road Coach assistant (docs/AI-COACH.md): launcher bottom right; panel as a sheet on phones, a side panel on wider screens. */
.rc-coach-launcher{position:fixed;z-index:25;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border:0;border-radius:999px;background:var(--rc-ink);color:var(--rc-surface);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(10,20,15,.25);cursor:pointer}
.rc-app.is-run .rc-coach-launcher{display:none}
.rc-coach-panel{position:fixed;z-index:35;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:10px;max-height:88vh;max-height:88dvh;padding:16px 16px calc(14px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:var(--rc-surface);border:1px solid var(--rc-line);box-shadow:0 -18px 50px rgba(10,20,15,.22);animation:rc-rise .2s ease-out}
.rc-coach-head{display:flex;align-items:flex-start;gap:10px}
.rc-coach-head > div{flex:1;min-width:0}
.rc-coach-head h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:20px}
.rc-coach-head p{margin:2px 0 0;font-size:13px;color:var(--rc-muted)}
.rc-coach-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--rc-accent-soft);color:var(--rc-accent)}
.rc-coach-context{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:var(--rc-hl-soft);font-size:13px}
.rc-coach-context > span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rc-coach-context .rc-icon-btn{width:32px;height:32px}
.rc-coach-list{flex:1;display:flex;flex-direction:column;gap:10px;min-height:120px;margin:0;padding:0 2px;list-style:none;overflow-y:auto}
.rc-coach-msg{max-width:88%;padding:10px 12px;border-radius:14px;font-size:calc(15px * var(--rc-text-scale,1));line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.rc-coach-msg.is-user{align-self:flex-end;background:var(--rc-accent);color:var(--rc-accent-ink);border-bottom-right-radius:4px}
.rc-coach-msg.is-assistant{align-self:flex-start;background:var(--rc-raised);border-bottom-left-radius:4px}
.rc-coach-typing{color:var(--rc-muted);font-style:italic}
.rc-coach-starters{display:flex;flex-wrap:wrap;gap:8px}
.rc-coach-starters .rc-pill{text-align:left;min-height:36px;font-weight:600}
.rc-coach-form{display:flex;gap:8px;align-items:flex-end}
.rc-coach-form textarea{flex:1;min-width:0;min-height:48px;max-height:120px;padding:10px 12px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);font-size:16px;resize:none}
.rc-coach-form .rc-primary{width:auto;min-height:48px;padding:0 16px}
.rc-coach-form .rc-primary:disabled{background:var(--rc-raised);color:var(--rc-muted);cursor:default}
.rc-coach-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:var(--rc-muted)}
.rc-coach-note{margin:0;font-size:12px;color:var(--rc-muted)}
.rc-pill.is-coach{border-color:var(--rc-accent);color:var(--rc-accent)}
@media (min-width:744px){
 .rc-coach-launcher{bottom:24px;right:24px}
 .rc-app.is-run .rc-coach-launcher{display:flex}
 .rc-coach-panel{left:auto;right:24px;bottom:24px;width:420px;max-height:min(680px,calc(100vh - 48px));border-radius:22px}
}

/* The header row never wraps: with a wide font the mode switch shrinks, so the state chip and Aa never move. */
.rc-header-bar{flex-wrap:nowrap}
.rc-header-bar .rc-mode-switch{flex:0 1 auto;min-width:0;overflow:hidden}
.rc-header-bar .rc-mode-switch button{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-header-bar .rc-mode-switch button svg{flex:none}
.rc-header-bar .rc-mode-switch .rc-mode-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* Phones: tighter switch buttons so longer labels (Georgian, Russian) fit beside the state chip and Aa. */
@media (max-width:479px){.rc-header-bar .rc-mode-switch button{padding:0 10px;font-size:13px}.rc-header-bar .rc-mode-switch button svg{display:none}}
/* Phones: the road's Continue card sticks to the bottom; the coach button sits above it instead of covering it. */
@media (max-width:743px){.rc-app:has(.rc-quiz-actions .rc-continue) .rc-coach-launcher{bottom:calc(164px + env(safe-area-inset-bottom))}}
.rc-header-actions{flex:none;margin-left:auto}

/* qscreen: question grid with right / wrong colours and mistakes allowed (Q5), review note (Q6), free-preview unlock panel (M7) */
.rc-quiz-allow{font-size:13px;font-weight:600;color:var(--rc-muted)}
.rc-quiz-allow.is-last{color:var(--rc-ink)}
.rc-quiz-allow.is-out{color:var(--rc-bad)}
.rc-exam-allow{margin:0;font-size:14px;font-weight:600}
.rc-results-review{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--rc-line)}
.rc-results-review h3{margin:0;font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-muted)}
.rc-review-mistakes{margin:0;font-size:14px;font-weight:600}
.rc-review-grid button{position:relative}
.rc-review-grid .is-right{background:var(--rc-good-soft);border-color:transparent;color:var(--rc-good)}
.rc-review-grid .is-hinted{background:var(--rc-hl-soft);border-color:transparent;color:var(--rc-ink)}
.rc-review-grid .is-wrong{background:var(--rc-bad-soft);border-color:var(--rc-bad);color:var(--rc-bad)}
.rc-review-grid .is-open{border-style:dashed}
.rc-review-grid .is-current{box-shadow:0 0 0 2px var(--rc-surface),0 0 0 4px var(--rc-accent)}
/* Shape as well as colour: a small mark in the corner says right, wrong or open. */
.rc-review-grid button::after{position:absolute;top:1px;right:4px;font-size:10px;line-height:1}
.rc-review-grid .is-right::after,.rc-review-grid .is-hinted::after{content:"✓"}
.rc-review-grid .is-wrong::after{content:"✕"}
.rc-review-legend .is-right::before{background:var(--rc-good-soft);border-color:transparent}
.rc-review-legend .is-hinted::before{background:var(--rc-hl-soft);border-color:transparent}
.rc-review-legend .is-wrong::before{background:var(--rc-bad-soft);border-color:var(--rc-bad)}
.rc-review-legend .is-open::before{border-style:dashed}
.rc-review-detail{display:grid;gap:8px;padding:14px;border-radius:14px;background:var(--rc-raised)}
.rc-review-q{margin:0;font-size:calc(17px * var(--rc-text-scale,1));line-height:1.4}
.rc-review-detail img{max-width:100%;max-height:180px;justify-self:start;border-radius:10px}
.rc-review-detail img.is-sign{max-height:120px}
.rc-review-yours,.rc-review-right{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:15px}
.rc-review-yours svg,.rc-review-right svg{flex:none;margin-top:3px}
.rc-review-detail .is-right{color:var(--rc-good)}
.rc-review-detail .is-wrong{color:var(--rc-bad)}
.rc-review-nav{display:flex;gap:8px;flex-wrap:wrap}
.rc-review-nav .rc-pill:disabled{opacity:.5;cursor:default}
.rc-unlock{background:var(--rc-hl-soft);border-color:transparent}
.rc-unlock h2{margin:0;font-size:18px}
.rc-unlock ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rc-unlock li{display:flex;align-items:flex-start;gap:8px;font-size:15px}
.rc-unlock li svg{flex:none;margin-top:3px;color:var(--rc-accent)}
.rc-unlock .rc-pill{align-self:flex-start}
/* reminders: study reminder settings in Me, the streak card on Learn (gap E1). */
.rc-nudge{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 16px;border-color:var(--rc-hl);background:var(--rc-hl-soft);color:var(--rc-ink)}
.rc-nudge-head{display:flex;align-items:center;gap:10px;flex:1 1 260px;min-width:0}
.rc-nudge-head h2{font-size:19px}
.rc-nudge-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--rc-hl);color:var(--rc-hl-ink)}
.rc-nudge>p{flex:1 1 100%;margin:0}
.rc-nudge-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
.rc-nudge-go{min-height:44px;border-color:var(--rc-ink)}
.rc-nudge-actions .rc-link-btn{min-height:44px;color:var(--rc-ink)}
.rc-remind .rc-pill{align-self:flex-start;min-height:44px}
.rc-remind .rc-pill:disabled{opacity:.5;cursor:default}
.rc-remind-time{max-width:220px}
.rc-remind-days{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;border:0;min-width:0}
.rc-remind-days legend{margin-bottom:6px;padding:0}
.rc-day{min-width:44px;min-height:44px;padding:0 8px;border:1px solid var(--rc-line);border-radius:10px;background:var(--rc-surface);color:var(--rc-ink);font-size:14px;font-weight:700;cursor:pointer}
.rc-day.is-on{background:var(--rc-accent);border-color:var(--rc-accent);color:var(--rc-accent-ink)}
.rc-remind-summary{font-weight:600}
/* family: family seats, joining with an invitation and the parent dashboard (gaps F1, F2) */
.rc-family{display:grid;gap:16px;align-content:start}
.rc-family-col{display:grid;gap:16px;align-content:start;min-width:0}
.rc-family h2,.rc-family h3,.rc-family h4{margin:0}
.rc-family h2 svg,.rc-family h3 svg{vertical-align:-3px;color:var(--rc-good)}
.rc-family form{display:grid;gap:10px}
.rc-family-input,.rc-family-invite input{width:100%;min-height:48px;padding:0 12px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);color:var(--rc-ink);font-size:16px}
.rc-family-consent{display:grid;gap:6px;padding:12px 14px;border-radius:14px;background:var(--rc-accent-soft)}
.rc-family-consent h3{display:flex;align-items:center;gap:8px;font-size:16px}
.rc-family-consent h3 svg{color:var(--rc-accent)}
.rc-family-consent p{margin:0;font-size:15px;line-height:1.5}
.rc-family-list,.rc-family-exams{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rc-family-seat{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border-radius:12px;border:1px solid var(--rc-line)}
.rc-family-seat > span{display:grid;flex:1;min-width:0;overflow-wrap:anywhere}
.rc-family-seat.is-pending{border-style:dashed}
.rc-family-seat.is-free{background:var(--rc-raised);border-color:transparent}
.rc-family-seat .rc-pill{min-height:44px}
.rc-family-ask{display:flex !important;flex-wrap:wrap;align-items:center;gap:8px;flex-basis:100%}
.rc-family-ask > span{flex-basis:100%;font-weight:600}
.rc-family-invite{display:grid;gap:8px;padding-top:6px;border-top:1px solid var(--rc-line)}
.rc-family-invite .rc-muted-note{margin:-2px 0 0}
.rc-family-fresh{display:grid;gap:10px;padding:14px;border-radius:14px;background:var(--rc-good-soft)}
.rc-family-code{padding:2px 6px;border-radius:6px;background:var(--rc-surface);font-size:14px;overflow-wrap:anywhere;word-break:break-all}
.rc-family-actions,.rc-family-links{display:flex;flex-wrap:wrap;gap:8px}
.rc-family-actions .rc-pill,.rc-family-links .rc-pill{min-height:44px;text-decoration:none}
.rc-family-fresh .rc-link-btn,.rc-family-back{justify-self:start;min-height:44px}
.rc-family-learner p{margin:0}
.rc-family-learner .rc-pill{align-self:flex-start;min-height:44px}
.rc-family-status{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;background:var(--rc-raised);font-size:13px;font-weight:700}
.rc-family-status.is-ready{background:var(--rc-good-soft);color:var(--rc-good)}
.rc-family-exams li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:15px}
.rc-family-exams li > span:first-child{flex:1;min-width:0}
.rc-family-result{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--rc-bad)}
.rc-family-result.is-pass{color:var(--rc-good)}
@media (min-width:1024px){.rc-family.is-owner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
/* coach: manual citations as page chips, the study note they open, and the voice-input button */
.rc-coach-cite{display:inline-flex;align-items:center;gap:4px;min-height:28px;margin:2px 0;padding:0 10px;border:1px solid var(--rc-accent);border-radius:999px;background:var(--rc-surface);color:var(--rc-accent);font:inherit;font-size:13px;font-weight:700;line-height:1;white-space:nowrap;vertical-align:middle;cursor:pointer}
.rc-coach-cite:hover{background:var(--rc-accent-soft)}
.rc-coach-cite:focus-visible,.rc-coach-mic:focus-visible{outline:3px solid var(--rc-accent);outline-offset:2px}
.rc-coach-page{flex:1;display:flex;flex-direction:column;gap:10px;min-height:120px;overflow-y:auto;padding:12px 14px;border-radius:14px;background:var(--rc-raised)}
.rc-coach-page h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-accent)}
.rc-coach-page h3:focus{outline:none}
.rc-coach-page-text p{margin:0 0 8px;font-size:calc(15px * var(--rc-text-scale,1));line-height:1.55;overflow-wrap:anywhere}
.rc-coach-page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.rc-coach-page-actions .rc-pill{min-height:40px}
.rc-coach-mic{flex:none;width:48px;height:48px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);color:var(--rc-ink)}
.rc-coach-mic.is-listening{border-color:var(--rc-accent);background:var(--rc-accent);color:var(--rc-accent-ink);animation:rc-coach-listen 1.2s ease-in-out infinite}
.rc-coach-mic:disabled{opacity:.5;cursor:default}
@keyframes rc-coach-listen{50%{box-shadow:0 0 0 6px var(--rc-accent-soft)}}
@media (prefers-reduced-motion:reduce){.rc-coach-mic.is-listening{animation:none}}
/* practice: repeat until right, custom test builder, module tests and the final test (gaps T3, T8, T9). */
.rc-again{align-self:flex-start;background:var(--rc-hl-soft);color:var(--rc-hl-ink)}
.rc-module-go{min-height:44px;font-size:15px}
.rc-quiz-actions .rc-module-go{max-width:420px;margin-top:4px}
.rc-next-card .rc-module-go{max-width:none;margin-top:10px}
/* Phones: the module test button sits under Continue in the sticky card; the coach button moves above both. */
@media (max-width:743px){.rc-app:has(.rc-quiz-actions .rc-module-go) .rc-coach-launcher{bottom:calc(212px + env(safe-area-inset-bottom))}}
.rc-modules{display:grid;gap:8px}
.rc-modules h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:20px}
.rc-modules ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rc-module{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:52px;padding:8px 14px;border:1px solid var(--rc-line);border-radius:12px;background:var(--rc-surface);color:var(--rc-ink);font-weight:700;text-align:left;text-decoration:none;cursor:pointer}
.rc-module:hover{border-color:var(--rc-accent)}
.rc-module.is-locked{background:var(--rc-raised);color:var(--rc-muted)}
.rc-module.is-passed .rc-module-meta{color:var(--rc-good)}
.rc-module-name{min-width:0;overflow-wrap:anywhere}
.rc-module-meta{display:inline-flex;align-items:center;gap:4px;flex:none;font-size:13px;color:var(--rc-muted)}
.rc-builder{display:grid;gap:14px;max-width:720px}
.rc-builder h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:22px}
.rc-builder p{margin:0}
.rc-builder fieldset{display:grid;gap:8px;margin:0;padding:0;border:0;min-width:0}
.rc-builder legend{padding:0;margin-bottom:8px;font-weight:700}
.rc-builder fieldset > .rc-link-btn{justify-self:start}
.rc-builder-lengths{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.rc-builder-lengths button{min-height:40px;font-size:15px}
.rc-builder-topics{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.rc-builder-topics .rc-check{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:44px;padding:0 4px;color:var(--rc-ink);text-decoration:none}
.rc-builder-topics .rc-check.is-locked{color:var(--rc-muted)}
.rc-builder-repeat{align-items:flex-start;padding:12px 14px;border:1px solid var(--rc-line);border-radius:12px}
.rc-builder-repeat > span{display:grid;gap:2px}
.rc-builder-summary{font-weight:700}
.rc-builder-actions{display:grid;gap:10px}
.rc-builder-actions .rc-primary[aria-disabled=true]{background:var(--rc-raised);color:var(--rc-muted);cursor:default}
@media (min-width:744px){.rc-builder-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.rc-modules ul{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* parentpay: Ask a parent to pay in Me › Plan (M5) and the parent note in onboarding (F5). */
.rc-parent-pay{display:grid;gap:10px;min-width:0;margin-top:6px;padding-top:14px;border-top:1px solid var(--rc-line)}
.rc-parent-pay>*{min-width:0;overflow-wrap:anywhere}
.rc-parent-pay h3{margin:0}.rc-parent-pay p{margin:0}
.rc-parent-pay .rc-choice{justify-content:space-between;min-height:48px;font-size:15px}
.rc-pp-price{color:var(--rc-muted);font-weight:600}
.rc-pp-status{padding:10px 12px;border-radius:12px;background:var(--rc-accent-soft);color:var(--rc-ink);font-weight:700}
.rc-pp-actions{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.rc-parent-pay input[readonly]{width:100%;min-width:0;max-width:100%;box-sizing:border-box;font-size:13px}
.rc-pp-code{display:grid;justify-items:start;gap:6px;margin:0}
.rc-pp-qr{width:176px;height:176px;border-radius:10px;border:1px solid var(--rc-line)}
.rc-renew{display:grid;gap:6px;justify-items:start}.rc-renew p{margin:0}
.rc-redeem{display:grid;gap:10px;min-width:0;margin-top:6px;padding-top:14px;border-top:1px solid var(--rc-line)}
.rc-redeem>*{min-width:0;overflow-wrap:anywhere}
.rc-redeem h3,.rc-redeem p{margin:0}
.rc-redeem-form{display:grid;gap:10px}
.rc-redeem input{width:100%;min-width:0;max-width:100%;box-sizing:border-box;text-transform:uppercase;letter-spacing:.04em}
.rc-onboard-parent{display:grid;gap:8px;padding:16px;border-radius:14px;border:1px solid var(--rc-line);background:var(--rc-accent-soft)}
.rc-onboard-parent p{font-size:15px}

/* pwa: install prompt after a finished session (A3) and the offline note (A4). */
.rc-install{position:fixed;z-index:30;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:18px;background:var(--rc-surface);border:1px solid var(--rc-line);box-shadow:0 18px 50px rgba(10,20,15,.22);animation:rc-rise .2s ease-out}
.rc-install-head{display:flex;align-items:center;gap:10px}
.rc-install-head img{flex:none;border-radius:10px}
.rc-install-head h2{flex:1;min-width:0;margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:18px;line-height:1.25}
.rc-install p{margin:0;font-size:15px;color:var(--rc-muted)}
.rc-install-steps{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:15px}
.rc-install-steps li{display:flex;align-items:center;gap:10px}
.rc-install-mark{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:8px;background:var(--rc-accent-soft);color:var(--rc-accent);font-weight:800;font-size:18px}
.rc-install-actions{display:flex;gap:8px}
.rc-install-actions button{flex:1;min-height:48px;border-radius:12px;font-weight:700;cursor:pointer}
.rc-offline{display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;margin:0 0 12px;padding:6px 12px;border-radius:999px;background:var(--rc-hl-soft);color:var(--rc-ink);font-size:13px;font-weight:700}
.rc-offline svg{flex:none}
@media (min-width:744px){.rc-install{left:auto;right:24px;bottom:24px;width:380px}}

/* pages: the personal DMV checklist in Study (frontend/src/next/checklist.jsx, gap H6). */
.rc-checklist{max-width:880px}
.rc-checklist .rc-meter{display:block;margin:8px 0 12px}
.rc-checklist-group h3{margin:16px 0 4px;font-size:16px}
.rc-checklist-group ul{list-style:none;margin:0;padding:0}
.rc-checklist-group li{display:block;padding:8px 0;border-top:1px solid var(--rc-line)}
.rc-checklist-group li:first-child{border-top:0}
.rc-checklist .rc-check{align-items:flex-start;min-height:44px;font-size:calc(16px * var(--rc-text-scale,1));line-height:1.45;cursor:pointer}
.rc-checklist .rc-check input{flex:none;width:22px;height:22px;margin-top:2px}
.rc-checklist-source{display:block;text-align:left;margin:2px 0 0 32px;font-size:13px;color:var(--rc-muted);overflow-wrap:anywhere}
.rc-checklist-print{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:8px;text-decoration:none}

/* readiness: plan card (countdown, today's goal, readiness meter and reasons) and the personal plan screen (G3, G4, G6). */
.rc-goal-card h2{font-size:20px}
.rc-goal-today{display:grid;gap:6px}
.rc-goal-today p{margin:0}
.rc-goal-count{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--rc-muted)}
.rc-goal-count.is-met{color:var(--rc-good);font-weight:700}
.rc-ready-meter{display:grid;gap:6px;padding:12px;border-radius:14px;background:var(--rc-raised)}
.rc-ready-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0}
.rc-ready-top strong{font-family:var(--rc-font-display);font-size:24px}
.rc-ready-band{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--rc-surface);border:1px solid var(--rc-line)}
.rc-ready-meter.is-close .rc-ready-band{background:var(--rc-hl-soft);border-color:var(--rc-hl);color:var(--rc-ink)}
.rc-ready-meter.is-ready .rc-ready-band{background:var(--rc-good-soft);border-color:var(--rc-good);color:var(--rc-good)}
.rc-ready-scale{position:relative;display:block;height:10px;border-radius:999px;background:var(--rc-surface);overflow:visible}
.rc-ready-fill{display:block;height:100%;border-radius:999px;background:var(--rc-accent);transition:width .3s}
.rc-ready-mark{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--rc-ink)}
.rc-ready-meter .rc-muted-note{font-size:13px}
.rc-reasons{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rc-reasons li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--rc-line)}
.rc-reasons li > span{display:grid;min-width:0}
.rc-reasons li > span span{font-size:13px;color:var(--rc-muted)}
.rc-reasons .rc-pill{flex:none}
.rc-goal-card .rc-factors{margin:0}
.rc-plan-screen{display:grid;gap:16px;max-width:760px}
.rc-plan-hero h2{font-size:26px}
.rc-plan-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.rc-plan-facts div{display:grid;gap:2px;padding:12px;border-radius:12px;background:var(--rc-raised)}
.rc-plan-facts dt{font-size:13px;color:var(--rc-muted)}
.rc-plan-facts dd{margin:0;font-weight:700;font-size:17px}
.rc-plan-facts span{font-size:12px;color:var(--rc-muted)}
.rc-plan-date{max-width:260px}
.rc-plan-how{display:grid;gap:8px;margin:0;padding-left:20px}
.rc-plan-actions{display:grid;gap:10px}
.rc-plan-actions p{margin:0}
@media (min-width:1200px){
 .rc-plan-screen{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);max-width:none;align-items:start}
 .rc-plan-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
 .rc-plan-actions{grid-column:1/-1;grid-template-columns:auto auto 1fr;align-items:center}
 .rc-plan-actions .rc-primary,.rc-plan-actions .rc-secondary{width:auto;padding:0 22px}
}
/* reports: exam history on Progress (mock exams and the simulator, latest first) */
.rc-exam-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rc-exam-list li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding:10px 12px;border:1px solid var(--rc-line);border-radius:14px}
.rc-exam-kind{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0}
.rc-exam-kind time{font-size:13px;color:var(--rc-muted)}
.rc-exam-score{grid-column:1;font-size:14px;color:var(--rc-muted)}
.rc-exam-result{grid-column:2;grid-row:1/span 2;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.rc-exam-list li.is-passed .rc-exam-result{background:var(--rc-good-soft);color:var(--rc-good)}
.rc-exam-list li.is-failed .rc-exam-result{background:var(--rc-bad-soft);color:var(--rc-bad)}

/* passpromise: pass promise claims under Me › Plan (gap M4). */
.rc-promise{display:grid;gap:10px;margin-top:4px}
.rc-promise .rc-pill{justify-self:start;min-height:44px}
.rc-promise-claims{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.rc-promise-claim{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--rc-line);border-radius:12px;font-size:15px}
.rc-promise-status{font-weight:700}
.rc-promise-status.is-approved{color:var(--rc-good)}
.rc-promise-status.is-rejected{color:var(--rc-bad)}
.rc-promise-form{display:grid;gap:12px}
.rc-promise-form textarea{padding:8px 10px;border:1px solid var(--rc-line);border-radius:10px;background:var(--rc-surface);color:var(--rc-ink);font:inherit;font-size:15px;font-weight:500;resize:vertical}
.rc-promise-form input{max-width:220px;color:var(--rc-ink)}
.rc-promise-form .rc-pill:disabled{opacity:.5;cursor:default}
.rc-promise-error{margin:0;color:var(--rc-bad);font-weight:600}

/* guides: the printable study guide in Study (gap D3). On screen a paper-like page under a print toolbar; printed,
   only the guide: no tabs, header, coach or toolbar, black on white, each part from a new page. */
.rc-guide{display:grid;gap:16px;max-width:900px}
.rc-guide-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}
.rc-guide-toolbar .rc-pill{min-height:44px}
.rc-guide-toolbar .rc-muted-note{flex:1 1 220px;margin:0}
.rc-guide-alert{flex:1 1 100%;margin:0;padding:10px 12px;border-radius:12px;background:var(--rc-bad-soft);color:var(--rc-ink)}
.rc-guide-alert p{margin:0 0 8px}
.rc-guide-preview{border-color:var(--rc-hl);background:var(--rc-hl-soft)}
.rc-guide-preview ul{margin:0;padding-left:20px}
.rc-guide-preview .rc-pill{align-self:flex-start;min-height:44px}
.rc-guide-paper{display:grid;gap:28px;padding:24px 20px;border:1px solid var(--rc-line);border-radius:18px;background:var(--rc-surface);color:var(--rc-ink);overflow-wrap:anywhere}
.rc-guide-paper h2,.rc-guide-paper h3{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);line-height:1.2}
.rc-guide-paper h2{font-size:22px}
.rc-guide-paper h3{font-size:18px}
.rc-guide-paper p{margin:0}
.rc-guide-paper .rc-guide-title{font-size:28px}
.rc-guide-cover,.rc-guide-section{display:grid;gap:10px}
.rc-guide-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:4px 0}
.rc-guide-facts div{padding:10px 12px;border-radius:12px;background:var(--rc-raised)}
.rc-guide-facts dt{font-size:13px;color:var(--rc-muted)}
.rc-guide-facts dd{margin:0;font-weight:700;font-size:20px}
.rc-guide-contents ol{display:grid;gap:4px;margin:0;padding-left:24px}
.rc-guide-numbers{display:grid;gap:8px;margin:0;padding-left:26px}
.rc-guide-numbers li{padding-bottom:8px;border-bottom:1px solid var(--rc-line)}
.rc-guide-numbers li>*{display:block}
.rc-guide-numbers small,.rc-guide-why{font-size:14px;color:var(--rc-muted)}
.rc-guide-stops{display:grid;gap:18px;margin:0;padding:0;list-style:none}
.rc-guide-stop{display:grid;gap:6px}
.rc-guide-stop ul{display:grid;gap:10px;margin:0;padding-left:18px}
.rc-guide-q{font-weight:600}
.rc-guide-a{font-weight:700;color:var(--rc-accent)}
.rc-guide-locked{display:flex;align-items:center;gap:8px;color:var(--rc-muted);font-size:15px}
.rc-guide-note{display:grid;gap:6px;padding-top:12px;border-top:1px solid var(--rc-line)}
.rc-guide-note-text{white-space:pre-line}
.rc-guide-sign-group{display:grid;gap:10px}
.rc-guide-signs{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.rc-guide-signs li{display:flex;align-items:flex-start;gap:12px}
.rc-guide-signs img{flex:none;width:56px;height:56px;object-fit:contain}
.rc-guide-signs p{font-size:15px}
.rc-guide-footer{display:grid;gap:4px;padding-top:12px;border-top:1px solid var(--rc-line);font-size:14px;color:var(--rc-muted)}
@media (min-width:744px){.rc-guide-paper{padding:36px 40px}.rc-guide-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.rc-guide-signs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{
 @page{margin:14mm 12mm}
 :root{--rc-ground:#fff!important;--rc-surface:#fff!important;--rc-raised:#f2f2f2!important;--rc-ink:#000!important;--rc-muted:#333!important;--rc-line:#bbb!important;--rc-accent:#000!important}
 html,body{background:#fff!important;color:#000;font-size:12pt}
 .rc-app:has(.rc-guide){display:block;min-height:0}
 .rc-app:has(.rc-guide)>:not(.rc-main),.rc-main:has(.rc-guide)>:not(.rc-guide),.rc-guide-toolbar,.rc-guide-preview{display:none!important}
 .rc-main:has(.rc-guide){display:block;max-width:none;margin:0;padding:0}
 .rc-guide{display:block;max-width:none}
 .rc-guide-paper{display:block;padding:0;border:0;border-radius:0}
 .rc-guide-paper a{color:#000;text-decoration:none}
 .rc-guide-contents a[href]::after{content:none}
 .rc-guide-section{display:block;break-before:page}
 .rc-guide-section>*+*{margin-top:8pt}
 .rc-guide-paper h2,.rc-guide-paper h3{break-after:avoid}
 .rc-guide-numbers li,.rc-guide-stop ul li,.rc-guide-signs li,.rc-guide-facts div{break-inside:avoid}
 .rc-guide-stop{break-inside:avoid-page;margin-top:12pt}
 .rc-guide-note{margin-top:12pt}
 .rc-guide-signs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .rc-guide-sign-group{margin-top:12pt}
 .rc-guide-footer{margin-top:18pt}
}

/* a11yv: visual accessibility (gap A8): reading font and spacing, text size for all reading text, focus ring,
   field borders, forced colours, 44 px targets on touch screens, reflow at 320 px and on short screens. */
:root{--rc-focus:#0B6B4F;--rc-control-line:#76817B;--rc-letter-spacing:normal;--rc-word-spacing:normal;--rc-line-height:1.5}
/* Focus ring and field borders: tokens from theme.js that reach 3:1 on every surface (test/next-contrast.test.js). */
:focus-visible{outline-color:var(--rc-focus)}
.rc-search:focus-within{outline-color:var(--rc-focus)}
/* Exam answer grid: answered and flagged are shown by a mark as well as colour (WCAG 1.4.1). */
.rc-exam-grid .is-flagged,.rc-exam-legend .is-flagged::before{box-shadow:inset 0 0 0 2px var(--rc-focus)}
.rc-exam-grid button{position:relative}
.rc-exam-grid .is-answered,.rc-exam-legend .is-answered::before{border-color:var(--rc-accent)}
.rc-exam-grid .is-answered::after{content:"✓";position:absolute;top:2px;right:4px;font-size:10px;line-height:1}
.rc-exam-grid .is-flagged::before{content:"⚑";position:absolute;top:2px;left:4px;font-size:10px;line-height:1;color:var(--rc-ink)}
.rc-field select,.rc-field input,.rc-signin input,.rc-search,.rc-report textarea,.rc-coach-form textarea,.rc-font select,.rc-reading select,
.rc-family-input,.rc-family-invite input,.rc-parent-pay input[readonly],.rc-promise-form textarea,.rc-promise-form input{border-color:var(--rc-control-line)}
/* Onboarding steps: full-strength text on the tinted box (4.5:1 in every scheme). */
.rc-onboard-steps li > span:last-child span{opacity:1}

/* Aa panel: reading font and wider spacing, below the font row so nothing above them moves. */
.rc-reading{display:grid;gap:6px}
.rc-reading > label:first-child{font-size:13px;color:var(--rc-muted)}
.rc-reading select{width:100%;min-width:0;min-height:44px;padding:0 8px;border:1px solid var(--rc-control-line);border-radius:10px;background:var(--rc-surface);font-size:14px}
.rc-reading-note{margin:0;font-size:12px;line-height:1.4;color:var(--rc-muted)}
.rc-appearance-panel .rc-check{min-height:44px;font-size:14px;line-height:1.3}
.rc-appearance-panel .rc-check input{flex:none}

/* Text size (Aa) scales all reading text: body text inherits it, and the smaller notes and labels on each screen follow.
   Headings, buttons, tabs and the header stay put, so the layout never jumps. */
@media screen{
body{font-size:calc(17px * var(--rc-text-scale,1))}
.rc-appearance-panel{font-size:14px}
.rc-muted-note,.rc-level span,.rc-quiz-count,.rc-report-note,.rc-reported,.rc-readiness-text > span,.rc-readiness-text .rc-start-level,
.rc-factors dt,.rc-factors dd,.rc-field,.rc-signin label,.rc-flash-meta,.rc-sign-tile,.rc-benefits li > span:last-child span,
.rc-topics .rc-start-level,.rc-exam-allow,.rc-review-mistakes,.rc-results-topics li strong,.rc-practice-cta,.rc-kpi .rc-kpi-label,.rc-goal-count,
.rc-exam-score,.rc-guide-numbers small,.rc-guide-why,.rc-guide-footer{font-size:calc(14px * var(--rc-text-scale,1))}
.rc-practice-about,.rc-subline,.rc-check,.rc-results-facts,.rc-missed li,.rc-facts div,.rc-habits,.rc-review-yours,.rc-review-right,
.rc-unlock li,.rc-family-consent p,.rc-family-exams li,.rc-onboard-parent p,.rc-track-stop strong,.rc-promise-claim,.rc-guide-locked,.rc-guide-signs p,
.rc-install p,.rc-install-steps{font-size:calc(15px * var(--rc-text-scale,1))}
.rc-stop-text strong,.rc-choice{font-size:calc(16px * var(--rc-text-scale,1))}
.rc-practice-meta,.rc-topic-meta,.rc-stop-text span,.rc-stats dt,.rc-history li > span span,.rc-weak-list li > span span,.rc-coach-head p,
.rc-coach-foot,.rc-coach-context,.rc-quiz-allow,.rc-module-meta,.rc-exam-legend,.rc-help-count,.rc-reasons li > span span,.rc-plan-facts dt,
.rc-exam-kind time,.rc-checklist-source,.rc-guide-facts dt,.rc-ready-meter .rc-muted-note{font-size:calc(13px * var(--rc-text-scale,1))}
.rc-option-tag,.rc-chip-note,.rc-track-stop span,.rc-coach-note,.rc-plan-facts span{font-size:calc(12px * var(--rc-text-scale,1))}
/* Longer stop names (es, ru, ka) fit their column on the road. */
:is(:lang(es),:lang(ru),:lang(ka)) .rc-track-stop strong{font-size:calc(13px * var(--rc-text-scale,1))}
:is(:lang(es),:lang(ru),:lang(ka)) .rc-track-stop span{font-size:calc(11px * var(--rc-text-scale,1))}
/* Russian and Georgian names are the longest: a little smaller, the columns closer. A word never splits: one too long
   for its column ends in "…", and the stop's title (a tooltip) has the full name. */
:is(:lang(ru),:lang(ka)) .rc-track-labels{gap:2px}
:is(:lang(ru),:lang(ka)) .rc-track-stop > *{padding-inline:1px}
:is(:lang(ru),:lang(ka)) .rc-track-stop strong{font-size:calc(12px * var(--rc-text-scale,1))}
:is(:lang(ru),:lang(ka)) .rc-track-stop span{font-size:calc(10.5px * var(--rc-text-scale,1))}
:is(:lang(es),:lang(ru),:lang(ka)) .rc-track-labels > li{min-width:0}
:is(:lang(es),:lang(ru),:lang(ka)) .rc-track-stop :is(strong,span){min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.rc-readiness-text > strong{font-size:calc(18px * var(--rc-text-scale,1))}
.rc-plan-facts dd{font-size:calc(17px * var(--rc-text-scale,1))}
}

/* Wider spacing (Aa): the WCAG 1.4.12 values on body text; the header, tabs and Aa panel keep theirs. */
html[data-spacing=wide] :is(p,li,dt,dd,label,summary,.rc-question,.rc-option,.rc-hint,.rc-explanation,.rc-why,.rc-flash-front,.rc-flash-back,
.rc-coach-msg,.rc-review-q,.rc-muted-note,.rc-subline,.rc-sign-tile,.rc-topic,.rc-level,.rc-choice,.rc-module):not(.rc-trail *,.rc-tabs *,.rc-appearance-panel *,.rc-appearance-panel){
 letter-spacing:var(--rc-letter-spacing);word-spacing:var(--rc-word-spacing);line-height:var(--rc-line-height)}

/* Touch screens: every target at least 44 x 44 px (docs/DESIGN-SYSTEM.md rule 8). */
@media (max-width:743px),(pointer:coarse){
 .rc-mode-switch{padding:0}
 .rc-mode-switch button,.rc-segment button,.rc-filter button,.rc-pill,.rc-coach-starters .rc-pill,.rc-coach-page-actions .rc-pill,
 .rc-builder-lengths button,.rc-report label,.rc-check{min-height:44px}
 .rc-link-btn{display:inline-flex;align-items:center;min-height:44px}
 .rc-exam-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}
 .rc-exam-grid button{height:44px}
 .rc-coach-context .rc-icon-btn{width:44px;height:44px}
}

/* Reflow at 320 px and in Georgian: long words wrap instead of widening the page. */
.rc-sign-tile{min-width:0;overflow-wrap:anywhere}
.rc-option-tag{flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}
.rc-option-text{min-width:0;overflow-wrap:anywhere}
.rc-me > *,.rc-signin-panel > *,.rc-me-col > *,.rc-field > *{min-width:0;overflow-wrap:break-word}
.rc-field select{max-width:100%}
@media (max-width:479px){
 .rc-header-bar .rc-mode-switch{gap:0}
 .rc-header-bar .rc-mode-switch button{padding:0 6px;font-size:12px}
 .rc-header-bar .rc-state-chip{padding:0 8px}
 .rc-header-bar .rc-mode-switch button,.rc-header-bar .rc-mode-switch .rc-mode-label{white-space:normal;text-overflow:clip;overflow-wrap:anywhere;line-height:1.1;text-align:center}
}
/* Short screens (400% zoom, phones in landscape): bars scroll with the page instead of covering half of it. */
@media (max-height:500px){
 .rc-quiz-actions,.rc-quiz-answer .rc-quiz-actions{position:static}
 .rc-coach-launcher{position:static;align-self:flex-end;margin:0 16px 16px}
}
@media (max-height:500px) and (max-width:743px){
 .rc-tabs{position:static;order:1}
 .rc-main{padding-bottom:24px}
}

/* Windows contrast themes (forced colours): selected states, button edges, bars and focus stay visible. */
@media (forced-colors:active){
 :focus-visible{outline:3px solid Highlight;outline-offset:2px}
 .rc-primary,.rc-secondary,.rc-appearance-toggle,.rc-coach-launcher,.rc-zoom-badge,.rc-hero-go{border:2px solid ButtonText}
 .rc-mode-switch,.rc-segment,.rc-meter,.rc-option-key,.rc-tab-icon{border:1px solid CanvasText}
 .is-on,.rc-option.is-selected,[aria-checked=true],[aria-pressed=true],button[aria-current=page],.rc-state-option[aria-current=true],
 .rc-exam-grid .is-current,.rc-quiz-steps .is-current,.rc-appearance-toggle[aria-expanded=true]{outline:3px solid Highlight;outline-offset:-3px;border-color:Highlight}
 .rc-option.is-right,.rc-option.is-wrong,.rc-exam-grid .is-answered{border:3px double CanvasText}
 .rc-exam-grid .is-flagged{box-shadow:none;border:2px dashed CanvasText}
 .rc-meter span,.rc-chart-bar,.rc-stop.is-done .rc-stop-dot,.rc-track-dot.is-done,.rc-stop.is-current .rc-stop-dot,.rc-track-dot.is-current{forced-color-adjust:none;background:Highlight;color:HighlightText}
 .rc-primary[aria-disabled=true],.rc-exam-nav .rc-secondary:disabled{border-style:dashed;color:GrayText}
}

/* a11yb: accessibility behaviour and semantics (A8): focus not hidden by fixed bars, question picture and zoom
   button, Progress numbers as a list, result headings, exam legend marks, coach sheet, skip link. */
html{scroll-padding-bottom:calc(152px + env(safe-area-inset-bottom))}
html:has(.rc-app.is-run){scroll-padding-bottom:calc(230px + env(safe-area-inset-bottom))}
@media (min-width:744px){html{scroll-padding-bottom:88px}html:has(.rc-app.is-run){scroll-padding-bottom:150px}}
/* The page can scroll its last line above the coach button, so nothing at the end stays under it. */
@media (max-width:743px){.rc-app:has(.rc-coach-launcher) .rc-main{padding-bottom:calc(152px + env(safe-area-inset-bottom))}}
.rc-visually-hidden{white-space:nowrap;margin:-1px;border:0;padding:0}
.rc-skip{position:absolute;z-index:60;left:12px;top:12px;padding:10px 16px;border-radius:10px;background:var(--rc-ink);color:var(--rc-surface);font-weight:700;transform:translateY(-200%)}
.rc-skip:focus{transform:none}
.rc-main:focus{outline:none}
figure.rc-quiz-figure{margin:0}
.rc-quiz-figure img{cursor:zoom-in}
.rc-quiz-figure .rc-zoom-badge{align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--rc-line);cursor:pointer}
.rc-kpis{padding:0;list-style:none}
.rc-kpi .rc-kpi-label{font-size:14px;color:var(--rc-muted)}
.rc-kpi .rc-kpi-value{font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:26px;line-height:1.15;color:var(--rc-ink)}
@media (min-width:1200px){.rc-kpi .rc-kpi-value{font-size:34px}}
.rc-results .rc-results-topics h2,.rc-results-review .rc-card-head h2{margin:0 0 6px;font-family:inherit;font-weight:700;font-size:15px;line-height:1.3;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-muted)}
.rc-results-review .rc-card-head h2{margin:0}
.rc-coach h2{margin:0;font-size:13px;line-height:1.3;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-accent)}
.rc-results-review h3.rc-review-q{font-size:calc(17px * var(--rc-text-scale,1));line-height:1.4;text-transform:none;letter-spacing:normal;color:inherit}
.rc-exam-grid .is-current.is-flagged::before{color:inherit}
.rc-exam-legend .is-answered::before,.rc-exam-legend .is-flagged::before{display:inline-flex;align-items:center;justify-content:center;font-size:9px;line-height:1}
.rc-exam-legend .is-answered::before{content:"✓";color:var(--rc-accent)}
.rc-exam-legend .is-flagged::before{content:"⚑";color:var(--rc-ink)}
.rc-scheme-options{display:contents}
.rc-shortcuts{margin-top:14px;font-weight:600}
.rc-coach-backdrop{position:fixed;inset:0;z-index:34;background:rgba(8,12,10,.45)}
.rc-coach-panel > .rc-coach-starters{flex:none}
.rc-plan-facts dd.rc-plan-fact-note{font-size:calc(12px * var(--rc-text-scale,1));font-weight:400;color:var(--rc-muted)}
.rc-factors dd.rc-meter{margin:0}

/* master: the Master exam (money-back guarantee): intro, the two grades (DMV pass mark and 98% guarantee grade) side
   by side on results, Progress and the claim screen, the road stop, and the claim kinds under Me › Plan. */
.rc-master-intro{display:grid;gap:12px;max-width:720px}
.rc-master-intro h2{margin:0}
.rc-master-intro h2:focus{outline:none}
.rc-master-lead{margin:0;font-size:calc(18px * var(--rc-text-scale,1));font-weight:600}
.rc-master-bars{display:grid;gap:6px;margin:0;padding-left:20px}
.rc-grades{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.rc-grades li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:8px 12px;border:1px solid var(--rc-line);border-radius:10px}
.rc-grades li.is-yes{border-color:var(--rc-good);background:var(--rc-good-soft)}
.rc-grades li.is-yes strong{color:var(--rc-good)}
.rc-grades li.is-no strong{color:var(--rc-bad)}
.rc-master-result,.rc-master-card{display:grid;gap:10px}
.rc-master-result h2,.rc-master-card h2{margin:0}
.rc-master-ok{margin:0;font-weight:700;color:var(--rc-good)}
.rc-master-facts{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;color:var(--rc-muted);font-size:calc(14px * var(--rc-text-scale,1))}
.rc-master-card .rc-pill{justify-self:start;min-height:44px}
.rc-exam-guarantee{grid-column:1 / -1;font-size:calc(13px * var(--rc-text-scale,1));color:var(--rc-muted)}
.rc-exam-guarantee.is-reached{color:var(--rc-good);font-weight:700}
.rc-stop:has(.rc-master-go){flex-wrap:wrap}
.rc-stop .rc-master-go{margin-left:auto;min-height:44px}
.rc-promise-master{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--rc-line);border-radius:12px}
.rc-promise-master h4{margin:0}
.rc-promise-master p{margin:0}
.rc-promise-kinds{display:grid;gap:8px;margin:0;padding:0;border:0}
.rc-promise-kinds legend{margin-bottom:6px;padding:0;font-weight:700}
.rc-promise-kind{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--rc-line);border-radius:12px;cursor:pointer}
.rc-promise-kind:has(input:checked){border-color:var(--rc-accent);background:var(--rc-accent-soft)}
.rc-promise-kind.is-off{cursor:default;opacity:.7}
.rc-promise-kind input{margin-top:4px;width:20px;height:20px;flex:none}
.rc-promise-kind > span{display:grid;gap:2px}
.rc-master-error{margin:0;padding:10px 12px;border-radius:10px;background:var(--rc-bad-soft);color:var(--rc-bad);font-weight:600}
.rc-master-sending{display:grid;gap:12px;max-width:640px;margin:24px auto}
.rc-master-sending .rc-title:focus{outline:none}
.rc-exam-clock.is-short{color:var(--rc-bad);font-weight:700}

/* wide: the app on wide desktop screens (owner, September 28, 2026). The first run: content centred in the right
   area, larger type, state chips that never wrap, a full-width state search; and every screen from 1680 px: the whole
   approved 1440 px design scaled up (--rc-zoom) with the content centred, so nothing sits small in a corner. */
.rc-onboard-main{margin-inline:auto}
.rc-choice-name{min-width:0}
.rc-choices-5 .rc-choice-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-choices-5 .rc-state-code{flex:none}
a.rc-onboard-brand{align-self:start;color:inherit;text-decoration:none}
.rc-onboard-search{position:relative}
.rc-onboard-search > label{font-size:calc(15px * var(--rc-text-scale,1))}
.rc-combo{position:relative}
.rc-onboard-search .rc-search{min-height:56px;border-color:var(--rc-control-line);border-radius:14px}
.rc-onboard-search .rc-search input{min-height:54px;padding:0;border:0;border-radius:0;font-size:calc(17px * var(--rc-text-scale,1));font-weight:500}
.rc-onboard-search .rc-search input::placeholder{color:var(--rc-muted);opacity:1}
.rc-combo-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 6px);max-height:min(336px,50vh);overflow:auto;margin:0;padding:6px;list-style:none;
 border:1px solid var(--rc-line);border-radius:14px;background:var(--rc-surface);box-shadow:0 18px 50px rgba(10,20,15,.18)}
.rc-combo-list[hidden]{display:none}
.rc-combo-list li{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 10px;border-radius:10px;font-size:calc(16px * var(--rc-text-scale,1));font-weight:600;cursor:pointer}
.rc-combo-list li.is-active{background:var(--rc-accent-soft);outline:2px solid var(--rc-accent);outline-offset:-2px}
.rc-combo-list li[aria-selected=true]{font-weight:800}
.rc-combo-list li svg{margin-left:auto;color:var(--rc-accent)}
.rc-onboard-select input[type=date]{min-height:52px;font-size:calc(16px * var(--rc-text-scale,1))}
.rc-onboard-main > .rc-field{font-size:calc(15px * var(--rc-text-scale,1))}
.rc-onboard-parent .rc-pill{justify-self:start;min-height:44px}
@media (max-width:999px){.rc-onboard{grid-template-rows:auto 1fr}}
@media (min-width:744px) and (max-width:999px){
 .rc-onboard-side{padding:32px 40px}
 .rc-onboard-side h1{font-size:38px}
 .rc-onboard-side p{font-size:17px}
 .rc-onboard-main{padding:40px 40px 48px}
 .rc-onboard-main h2{font-size:36px}
 .rc-onboard-main > .rc-muted-note{font-size:calc(16px * var(--rc-text-scale,1))}
}
@media (min-width:1000px){
 .rc-onboard{grid-template-columns:clamp(400px,32vw,560px) minmax(0,1fr)}
 .rc-onboard-side{display:flex;flex-direction:column;gap:28px;padding:56px 56px 48px}
 .rc-onboard-side h1{margin-top:auto;font-size:48px}
 .rc-onboard-side p{font-size:19px}
 .rc-onboard-steps li > span:last-child strong{font-size:18px}
 .rc-onboard-steps li > span:last-child span{font-size:15px}
 .rc-onboard-steps{margin-bottom:auto}
 .rc-onboard-free{align-self:auto;font-size:16px!important}
 .rc-onboard-main{max-width:820px;padding:64px 56px;gap:24px}
 .rc-onboard-main > .rc-quiz-count{font-size:calc(16px * var(--rc-text-scale,1))}
 .rc-onboard-main h2{font-size:44px}
 .rc-onboard-main > .rc-muted-note{font-size:calc(18px * var(--rc-text-scale,1))}
 .rc-onboard .rc-choices{gap:12px}
 .rc-onboard .rc-choices-5{grid-template-columns:repeat(auto-fill,minmax(224px,1fr))}
 .rc-onboard .rc-state-code{width:44px;height:32px;font-size:14px}
 .rc-onboard .rc-choice{min-height:64px;padding:0 18px;font-size:calc(17px * var(--rc-text-scale,1))}
 .rc-onboard-actions{margin-top:10px}
 .rc-onboard-actions .rc-primary,.rc-onboard-actions .rc-secondary{min-height:58px;font-size:18px}
 .rc-onboard-actions .rc-primary{min-width:260px}
 .rc-onboard-actions .rc-secondary{min-width:140px}
 .rc-onboard-skip{font-size:16px}
}
/* Wide screens: the approved 1440 px design scaled up, so type, targets and cards grow with the screen. Viewport
   units scale with zoom too, so full-height parts divide by it. Printing (the study guide) is never zoomed. */
:root{--rc-zoom:1}
@media (min-width:1680px) and (min-height:760px){:root{--rc-zoom:1.1}}
@media (min-width:1920px) and (min-height:840px){:root{--rc-zoom:1.2}}
@media (min-width:2240px) and (min-height:980px){:root{--rc-zoom:1.3}}
@media (min-width:2560px) and (min-height:1100px){:root{--rc-zoom:1.4}}
@media screen and (min-width:1680px){
 html{zoom:var(--rc-zoom)}
 .rc-app,.rc-exam,.rc-onboard{min-height:calc(100vh / var(--rc-zoom))}
 .rc-tabs{height:calc(100vh / var(--rc-zoom))}
 .rc-sheet{max-height:calc(80vh / var(--rc-zoom))}
 .rc-coach-panel{max-height:min(680px,calc(100vh / var(--rc-zoom) - 48px))}
 .rc-combo-list{max-height:min(336px,calc(50vh / var(--rc-zoom)))}
 .rc-main{margin-inline:auto}
}
/* Desktop pages that ran one long column across the whole width: the readiness card on Progress puts what moves it
   beside the meter and the points, and the DMV checklist lays its groups out in two columns. */
@media (min-width:1200px){
 .rc-goal-card.is-progress{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 36px;align-items:start;align-content:start}
 .rc-goal-card.is-progress > *{grid-column:1}
 .rc-goal-card.is-progress > .rc-card-head{grid-column:1 / -1}
 .rc-goal-card.is-progress > h3:has(+ .rc-reasons){grid-column:2;grid-row:2}
 .rc-goal-card.is-progress > .rc-reasons{grid-column:2;grid-row:3 / span 5}
 .rc-checklist{max-width:none}
 .rc-checklist > .rc-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 40px;align-items:start}
 .rc-checklist > .rc-card > :not(.rc-checklist-group){grid-column:1 / -1}
 .rc-checklist > .rc-card > .rc-checklist-print{justify-self:start;width:auto;padding:0 22px}
}
/* A link styled as a button reads in ink, not the browser's link blue (the checklist's Printable version). */
a.rc-secondary{color:var(--rc-ink);text-decoration:none}
/* State picker on desktop: columns wide enough that no state name wraps (North Dakota, West Virginia). */
@media (min-width:1200px){
 .rc-state-sheet{max-width:1120px}
 .rc-state-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
 .rc-state-option > span:not(.rc-state-code){white-space:nowrap}
 .rc-state-option .rc-state-code{flex:none}
}
/* site: the sidebar wordmark links to roadcoach.ai (docs/SITE.md) */
a.rc-brand{color:inherit;text-decoration:none;border-radius:8px}
a.rc-brand:hover b{text-decoration:underline;text-underline-offset:4px}

/* platfix: fixes from the platform end-to-end tests (touch targets, safe areas, Russian at the largest text, the install
   panel over a focused control). */
/* Links listed one per line (Me and Help, the DMV checklist's sources, the study guide's contents): 44 px tall on touch
   screens (docs/DESIGN-SYSTEM.md rule 8); mouse screens keep their density. */
@media screen and (pointer:coarse){
 .rc-links a,.rc-guide-contents a{display:inline-flex;align-items:center;min-height:44px}
 .rc-checklist-source{display:flex;align-items:center;min-height:44px}
}
/* The narrowest phones: the Guided / Free switch keeps 44 px wide buttons (Spanish "Libre"). */
@media (max-width:479px){.rc-header-bar .rc-mode-switch button{min-width:44px}}
/* Phones on their side (viewport-fit=cover): nothing to tap under the notch or the rounded corners at either side. */
.rc-app,.rc-onboard{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.rc-sheet,.rc-coach-panel{padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right))}
.rc-zoom-close{right:calc(12px + env(safe-area-inset-right))}
@media (min-width:744px){
 .rc-coach-launcher,.rc-coach-panel,.rc-install{right:calc(24px + env(safe-area-inset-right))}
 /* iPads from the home screen: the sticky action bar (Continue, Check answer, Next) clears the home indicator. */
 .rc-quiz-actions{padding-bottom:calc(4px + env(safe-area-inset-bottom))}
}
/* The largest text with wider spacing (Russian, Georgian): a line and its pill in Learn's lists (what moves readiness
   most, the topics to review) wrap instead of widening the page; the pill takes its own line when the text would be
   squeezed under about ten characters. */
.rc-weak-list li,.rc-reasons li{flex-wrap:wrap}
.rc-weak-list li > span,.rc-reasons li > span{flex:1 1 10em;min-width:0;overflow-wrap:anywhere;hyphens:auto}
.rc-weak-list .rc-pill,.rc-reasons .rc-pill{max-width:100%;white-space:normal}
/* The install panel never hides a focused control (WCAG 2.4.11): while it shows, focus stays above the part of the
   screen it covers (--rc-install-space, measured by pwa.jsx), and the page can scroll its last line clear of it. */
html:has(.rc-app > .rc-install){scroll-padding-bottom:max(calc(152px + env(safe-area-inset-bottom)),calc(var(--rc-install-space,0px) + 16px))}
.rc-app:has(> .rc-install) .rc-main{padding-bottom:max(calc(152px + env(safe-area-inset-bottom)),calc(var(--rc-install-space,0px) + 16px))}
/* Spotlight tour (tour.jsx): the page dims, a soft cut-out lights one element in sign yellow, a card explains it.
   The light and the card glide between steps (not under reduced motion: the rule near the top stops transitions). */
html:has(.rc-tour){scroll-padding:24px}
.rc-tour{position:fixed;z-index:60;inset:0;overflow:hidden;--rc-tour-dim:rgba(9,15,13,.64)}
:root[data-theme=dark] .rc-tour{--rc-tour-dim:rgba(0,0,0,.72)}
.rc-tour-hole{position:absolute;top:50%;left:50%;width:0;height:0;border-radius:16px;pointer-events:none;
 box-shadow:0 0 0 3px var(--rc-hl),0 0 0 10px color-mix(in srgb,var(--rc-hl) 30%,transparent),0 0 0 200vmax var(--rc-tour-dim);
 transition:top .4s cubic-bezier(.2,.8,.2,1),left .4s cubic-bezier(.2,.8,.2,1),width .4s cubic-bezier(.2,.8,.2,1),height .4s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.rc-tour-hole.is-empty{box-shadow:0 0 0 0 transparent,0 0 0 0 transparent,0 0 0 200vmax var(--rc-tour-dim)}
.rc-tour-card{position:absolute;left:16px;bottom:16px;width:min(380px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;display:grid;gap:10px;margin:0;padding:18px;
 border-radius:18px;border:1px solid var(--rc-line);border-top:4px solid var(--rc-accent);background:var(--rc-surface);color:var(--rc-ink);box-shadow:0 18px 50px rgba(0,0,0,.3);
 transition:top .4s cubic-bezier(.2,.8,.2,1),left .4s cubic-bezier(.2,.8,.2,1)}
.rc-tour-card:focus{outline:none}
.rc-tour-count{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:13px;color:var(--rc-muted)}
.rc-tour-card h2{margin:0;font-family:var(--rc-font-display);font-weight:var(--rc-display-weight);font-size:21px;line-height:1.2}
#rc-tour-body{margin:0;font-size:calc(16px * var(--rc-text-scale,1));line-height:1.5}
.rc-tour-dots{display:flex;gap:6px}
.rc-tour-dots span{width:8px;height:8px;border-radius:50%;background:var(--rc-line)}
.rc-tour-dots .is-on{width:22px;border-radius:999px;background:var(--rc-accent)}
.rc-tour-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.rc-tour-actions .rc-tour-skip{margin-right:auto;min-height:44px}
.rc-tour-actions .rc-primary,.rc-tour-actions .rc-secondary{width:auto;min-width:96px;min-height:44px;font-size:16px;border-radius:12px}
.rc-contact .rc-tour-replay{margin-top:4px}
@media (forced-colors:active){.rc-tour-hole{forced-color-adjust:none;box-shadow:none;outline:4px solid Highlight}.rc-tour-card{border:2px solid CanvasText}}
