:root{--ink:#1b302d;--forest:#173f3a;--deep:#102b28;--sea:#4d8278;--sun:#e49a4b;--coral:#cb6d4d;--paper:#fffdf8;--line:#d7dfd5;--muted:#61736d;--shadow:0 18px 45px rgba(31,58,50,.11);font-family:ui-rounded,"SF Pro Rounded","Avenir Next",Inter,system-ui,sans-serif}.today-card .primary:disabled{cursor:not-allowed;opacity:.55;filter:saturate(.35);box-shadow:none}
.preview-badge{padding:5px 8px;border-radius:999px;color:#805019;background:#f7dfb8;font-size:.55rem;font-weight:900;letter-spacing:.06em;text-align:center}
.pronunciation-shelf,.literacy-panel,.keyboard-setup{margin:0 0 18px;padding:14px;border:1px solid #d9e5d8;border-radius:16px;background:#f0f6ed}.pronunciation-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:4px 10px;align-items:start;padding:8px 0;border-top:1px solid #dbe5d9}.pronunciation-row>strong,.pronunciation-row>.pronunciation-ru,.pronunciation-row>small{grid-column:1;min-width:0;overflow-wrap:anywhere}.pronunciation-row>.pronunciation-ru:empty{display:none}.pronunciation-row>.sound-mini{grid-column:2;grid-row:1 / span 3}.pronunciation-row:first-of-type{border-top:0}.pronunciation-row strong{color:var(--forest);font-size:1.05rem}.pronunciation-row small{color:var(--muted);font-size:.7rem}.pronunciation-ru{display:block;color:#a34f31;font-size:.82rem;font-style:normal;font-weight:850}.pronunciation-warning{margin:10px 0 0;font-size:.7rem}.sound-mini{min-width:44px;min-height:44px;border-radius:10px;color:var(--forest);background:#dfeade}.literacy-chips,.greek-character-picker{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.literacy-chips span,.greek-character-picker button{padding:7px 10px;border-radius:10px;color:var(--forest);background:#fff;font-weight:850}.greek-character-picker button{min-width:44px;min-height:44px;border:1px solid #ccdccc;font-size:1.05rem}.keyboard-setup summary,.literacy-panel summary{color:var(--forest);font-weight:850;cursor:pointer}.keyboard-setup li{margin:7px 0;color:var(--muted);font-size:.82rem}.alphabet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}.alphabet-grid span{padding:8px;border-radius:10px;background:#fff}.alphabet-grid b,.alphabet-grid small{display:block}.alphabet-grid small{color:var(--muted);font-size:.68rem}
@media(max-width:420px){body .lesson-card{padding:21px 17px}.literacy-panel .alphabet-grid{grid-template-columns:1fr}}
*{box-sizing:border-box}html{background:#f5f0e7}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 93% 5%,rgba(228,154,75,.3),transparent 18rem),linear-gradient(145deg,#f8f3e9 0%,#edf2e9 55%,#f6ede0 100%)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer;min-height:44px}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(228,154,75,.7);outline-offset:2px}.app-shell{width:min(100%,620px);min-height:100vh;margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 18px calc(110px + env(safe-area-inset-bottom))}.screen[hidden],.voice-sheet[hidden]{display:none}.topbar,.welcome-row,.screen-heading,.lesson-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.topbar{align-items:center;margin-bottom:28px}.brand,.back{color:var(--forest);background:transparent;font-weight:850}.brand{display:flex;align-items:center;gap:8px;padding:0;font-size:1.14rem}.brand-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:10px;color:#fff8ea;background:var(--forest);font-size:1.25rem}.icon-button{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:var(--forest);background:rgba(255,253,248,.8);font-size:1.45rem}.back{padding:4px 0}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.2rem,10vw,3.5rem);line-height:.99;letter-spacing:-.065em;margin-bottom:17px}h2{font-size:clamp(1.55rem,7vw,2.1rem);line-height:1.04;letter-spacing:-.055em;margin-bottom:13px}h3{margin-bottom:6px}p{color:var(--muted);line-height:1.52}.lead{max-width:31rem;font-size:1.05rem}.lead.compact{font-size:.96rem}.eyebrow{margin-bottom:8px;color:var(--sea);font-size:.68rem;font-weight:900;letter-spacing:.15em}.quiet{margin:18px 3px;font-size:.78rem}.sun-disc{position:absolute;right:14px;top:69px;z-index:-1;width:110px;height:110px;border-radius:50%;background:linear-gradient(145deg,#f4ca72,var(--sun));opacity:.26}.card,.today-card,.lesson-card{border:1px solid rgba(215,223,213,.9);border-radius:27px;background:rgba(255,253,248,.88);box-shadow:var(--shadow)}.form-card,.diagnostic-card{display:grid;gap:17px;padding:22px;margin-top:26px}.consent{display:flex;align-items:flex-start;font-weight:500;font-size:.8rem}.consent input{width:auto;margin:3px 8px 0 0;accent-color:var(--forest)}select,input[type=text],textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px;color:var(--ink);background:rgba(255,255,255,.74)}.primary,.secondary{min-height:52px;padding:13px 17px;border-radius:15px;font-weight:850}.primary{color:#fffdf7;background:var(--forest);box-shadow:0 10px 18px rgba(23,63,58,.2)}.secondary{color:var(--forest);background:#e4ece4}.primary:hover,.secondary:hover{filter:brightness(.98);transform:translateY(-1px)}.full{width:100%}.milestone-note{margin:0;padding:12px;border-radius:13px;color:var(--forest);background:#eef4eb}.step-number,.level-pill{width:max-content;padding:7px 11px;border-radius:999px;color:var(--forest);background:#dbe9dd;font-weight:900;font-size:.74rem}.step-number{color:#805019;background:#f7dfb8}.status-line{margin:0;padding:11px 13px;border-radius:13px;color:#356359;background:#ebf3ec;font-size:.83rem}.today-card{margin:19px 0;padding:24px;color:#fffdf8;background:linear-gradient(150deg,var(--forest),#285d55)}.today-card .eyebrow{color:#f7c571}.today-card p{color:#d8e4dc}.today-card .primary{color:#51310f;background:var(--sun);box-shadow:none}.today-steps{display:grid;gap:0;margin:18px 0 21px}.today-steps div{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid rgba(255,255,255,.16);font-size:.86rem}.today-steps b{color:#f5c775;font-size:.78rem}.skill-progress{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.skill{padding:13px;border:1px solid var(--line);border-radius:17px;background:rgba(255,253,248,.68)}.skill div{display:flex;justify-content:space-between;gap:5px}.skill span{font-size:.77rem;font-weight:850}.skill small,.skill em{color:var(--muted);font-size:.64rem;font-style:normal}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.quick-actions button{min-height:55px;padding:10px 7px;border:1px solid var(--line);border-radius:15px;color:var(--forest);background:rgba(255,253,248,.66);font-size:.72rem;font-weight:800}.screen-heading{margin-bottom:14px}.screen-heading h1{margin-bottom:0;font-size:2.05rem}.path-list,.stack-list{display:grid;gap:10px}.path-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 13px;border:1px solid var(--line);border-radius:18px;background:rgba(255,253,248,.75)}.path-item.locked{opacity:.58}.path-item>span{color:var(--sun);font-weight:950}.path-item p{margin:4px 0;font-size:.73rem}.path-item button{padding:8px 0 8px 7px;color:var(--forest);background:transparent;font-size:.75rem;font-weight:900}.lesson-title{margin:22px 0 17px}.stage-dots{display:flex;gap:4px;margin:0 3px 18px}.stage-dots span{flex:1;height:5px;border-radius:99px;background:#dae3da}.stage-dots span.active{background:var(--sun)}.stage-dots span.done{background:var(--sea)}.lesson-card{min-height:300px;padding:24px 20px}.lesson-card .eyebrow{color:var(--coral)}.scene-copy,.memory-cue{color:var(--ink);font-size:1.05rem}.hint{padding:11px 13px;border-left:3px solid var(--sun);color:#795e37;background:#fff5df;font-size:.85rem}.contrast{display:grid;gap:8px;margin:18px 0}.contrast span{padding:11px;border-radius:12px;color:var(--forest);background:#e8f0e8;font-size:.86rem;font-weight:700}.greek-large{margin:16px 0;color:var(--forest);font-size:2rem;line-height:1.1;font-weight:900}.greek-large.small{font-size:1.45rem}.micro-list{display:grid;gap:9px;margin:20px 0;padding-left:23px;color:var(--muted);font-size:.88rem}.dialogue{display:grid;gap:10px}.turn{max-width:88%;padding:11px 13px;border-radius:15px 15px 15px 4px;background:#e9f0e8}.turn.learner-turn{justify-self:end;border-radius:15px 15px 4px;color:#fff;background:var(--forest)}.turn small,.turn span{display:block;font-size:.68rem}.turn strong{display:block;margin:3px 0}.turn.learner-turn small,.turn.learner-turn span{color:#cfe1d3}.reading-text{margin:20px 0;padding:17px;border-radius:15px;color:var(--forest);background:#ecf2e8;font-size:1.8rem;font-weight:900}.answer-option{display:flex;align-items:center;gap:10px;margin:9px 0;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fffefa;cursor:pointer}.answer-option input{width:auto;accent-color:var(--coral)}.answer-option:has(input:checked){border-color:var(--sun);background:#fff5e5}.voice-action{width:100%;min-height:58px;border-radius:18px;color:#8c3825;background:#f9ddcf;font-weight:900}.voice-action.recording{color:#fff;background:#a94331}.listen-button{min-height:52px;padding:12px 15px;border-radius:14px;color:#fffaf0;background:var(--coral);font-weight:850}.homework{padding:15px;border-radius:16px;background:#fff3dd}.homework p{color:var(--ink);font-weight:700}.review-card,.print-card{display:flex;align-items:flex-start;gap:14px;padding:15px;border:1px solid var(--line);border-radius:18px;background:rgba(255,253,248,.78)}.review-card{justify-content:space-between}.review-card p,.print-card p{margin:5px 0;font-size:.78rem}.print-card{cursor:pointer}.print-card input{width:20px;height:20px;margin-top:3px;accent-color:var(--forest)}.print-card strong{color:var(--forest);font-size:1.14rem}.unavailable{padding:14px;border-radius:15px;color:#79422e;background:#fff2e9}.unavailable p{color:#79422e}.remediation{margin-bottom:14px;padding:13px;border-radius:14px;color:#78522a;background:#fff1de}.remediation p{color:#78522a}.voice-sheet{position:fixed;z-index:4;inset:0;display:grid;align-items:end;padding:16px;background:rgba(16,43,40,.42);backdrop-filter:blur(5px)}.sheet-card{position:relative;width:100%;max-width:620px;margin:auto;padding:26px 20px calc(24px + env(safe-area-inset-bottom));border-radius:27px;background:var(--paper);box-shadow:0 -12px 45px rgba(0,0,0,.18)}.sheet-close{position:absolute;top:12px;right:16px;width:37px;height:37px;border-radius:50%;color:var(--forest);background:#e4ece4;font-size:1.4rem}.voice-orb{display:grid;place-items:center;width:78px;height:78px;margin:19px auto;border-radius:50%;color:#fffdf5;background:var(--coral);font-size:2.2rem}.command-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.command-chips button{padding:9px 11px;border-radius:999px;color:var(--forest);background:#e6eee5;font-size:.77rem;font-weight:800}.toast{position:fixed;z-index:6;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;width:min(92vw,420px);transform:translateX(-50%);padding:12px 15px;border-radius:15px;color:#fffdf8;background:var(--deep);text-align:center;font-size:.82rem}@media(min-width:700px){.app-shell{padding-left:25px;padding-right:25px}.skill-progress{grid-template-columns:repeat(3,1fr)}.lesson-card{padding:30px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}@media print{body{background:#fff}.topbar,.screen:not(#print),#select-print,#activate-print,#print-status,.voice-sheet,.toast{display:none!important}.app-shell{width:100%;padding:0}.screen#print{display:block!important}.print-card{break-inside:avoid;box-shadow:none;background:#fff}.print-card.unselected{display:none!important}}

audio[controls]:not([hidden]) { display: block; width: 100%; max-width: 100%; }
.speaking-playback audio { margin: .5rem 0 1rem; }

/* Keep the current writing field and its action clear of the Android keyboard. */
#lesson-card textarea:focus{max-height:calc(100dvh - 112px)}
/* Functional speaking pictures stay within the existing lesson card. */
.practice-scene { margin: 1rem 0; min-width: 0; }
.practice-scene img { display: block; width: 100%; height: auto; max-height: 20rem; object-fit: contain; border-radius: 1rem; }
.practice-scene img[hidden] { display: none; }
.practice-scene figcaption { margin-top: .5rem; overflow-wrap: anywhere; }
/* Separate each homework source fact from its bridge-language meaning. */
.homework .prompt-bubble > small { display: block; margin-top: .35em; }
.homework > small { display: block; margin-bottom: .75rem; }
