/* Fysiikka Sprintti · puhelin ensin, työpöydällä tilaa hyödyntävä asettelu */
@font-face{font-family:Manrope;src:url("../assets/fonts/Manrope-Variable.ttf") format("truetype");font-weight:200 800;font-style:normal;font-display:swap}
:root{font-family:Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.6;font-synthesis:none;color-scheme:dark;--bg:#202023;--outer:#17171a;--paper:#28282c;--raised:#303035;--ink:#f5f4f8;--muted:#b9b7c1;--faint:#a7a2b1;--line:#3d3b45;--accent:#b794f6;--accent-strong:#a881ed;--accent-ink:#21172f;--soft:#302a3e;--green:var(--accent);--success:#86d5a5;--success-bg:#25382d;--red:#f1a3ab;--error-bg:#3a282f;--amber:#e4b17a;--blue:#96c8ed;--diagram-bg:#242429;--diagram-ground:#32313b;--diagram-object:#4b415e;--diagram-edge:#a79bb9;--diagram-line:#b794f6;--diagram-area:#b794f6;--diagram-guide:#81768f;--diagram-rope:#86d5a5;--diagram-person:#c5b3db;--diagram-force:#edbd83;--gutter:20px;--nav-rail:96px}
:root[data-theme="light"]{color-scheme:light;--bg:#f5f3f8;--outer:#e9e6ef;--paper:#fff;--raised:#eeebf3;--ink:#292330;--muted:#625b6d;--faint:#6c6377;--line:#ddd7e6;--accent:#7550ac;--accent-strong:#bfa0f0;--accent-ink:#241534;--soft:#ece5f6;--success:#2f7346;--success-bg:#e5f1e8;--red:#ac3f57;--error-bg:#f9e7ed;--amber:#93592a;--blue:#326f9c;--diagram-bg:#f8f6fc;--diagram-ground:#e8e2f0;--diagram-object:#cbbade;--diagram-edge:#8d789f;--diagram-line:#7550ac;--diagram-area:#9162c3;--diagram-guide:#a89ab6;--diagram-rope:#367a53;--diagram-person:#89709e;--diagram-force:#9e6226}
*{box-sizing:border-box}html{background:var(--bg);scroll-padding-bottom:120px;-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);background:var(--bg);min-height:100dvh;overflow-wrap:break-word;-webkit-tap-highlight-color:transparent}
button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer;color:inherit;border:0}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}button,a,summary,input,select{outline-offset:4px}:is(button,a,input,select,summary,h1,[tabindex]):focus-visible{outline:3px solid var(--accent)}[hidden]{display:none!important}svg{display:block;max-width:100%}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon,button svg,a svg{width:1.25em;height:1.25em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon{display:inline-block;vertical-align:-.25em}summary{list-style:none}summary::-webkit-details-marker{display:none}.chevron{transition:transform .2s;margin-left:auto}details[open]>summary .chevron{transform:rotate(180deg)}
p{margin:0 0 16px}h1,h2,h3{font-weight:700;line-height:1.3;letter-spacing:-.035em;margin:0}h1{font-size:30px;margin-bottom:20px}h1 em{font-style:normal;color:var(--accent)}h2{font-size:21px}h3{font-size:17px}
main{max-width:1180px;margin:0 auto;padding:0 var(--gutter) calc(110px + env(safe-area-inset-bottom))}.view{padding:20px 0 8px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(18px + env(safe-area-inset-top)) 0 14px}.brand{display:flex;align-items:center;gap:10px;min-height:44px}.brand-mark{display:grid;place-items:center;background:var(--soft);color:var(--accent);width:40px;height:42px;border-radius:13px;font-size:28px;font-weight:650;line-height:1}.brand>span:last-child{font-size:16px;letter-spacing:-.03em;font-weight:800;line-height:1.1}.brand-sub{display:block;font-size:13px;color:var(--muted);letter-spacing:.02em;font-weight:500;margin-top:3px}.topbar-right{display:flex;align-items:center;gap:8px}.xp-pill{display:flex;align-items:center;gap:6px;background:var(--paper);padding:9px 13px;border-radius:30px;font-size:14px;font-weight:700;white-space:nowrap}.xp-pill svg{width:16px;height:18px;fill:var(--amber);stroke:var(--amber);stroke-linejoin:round}
.skip-link{position:fixed;top:-120px;left:20px;z-index:100;padding:14px 18px;background:var(--accent-strong);color:var(--accent-ink);border-radius:12px;font-weight:700}.skip-link:focus{top:16px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg);border-top:1px solid var(--line);padding:8px 10px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -12px 24px color-mix(in srgb,var(--bg) 80%,transparent)}.app-nav .nav-brand{display:none}.app-nav a[data-nav]{min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--faint);font-size:13px;font-weight:650;border-radius:14px}.app-nav svg{width:24px;height:24px;stroke-width:1.9}.app-nav a[aria-current=page]{color:var(--ink)}.app-nav a[aria-current=page] svg{color:var(--accent);stroke-width:2.2}.app-nav a:active,.app-nav a:hover{background:var(--raised)}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.page-heading h1{font-size:28px;margin:0}.accent-dot{color:var(--accent)}.eyebrow{color:var(--faint);font-size:12px;font-weight:750;letter-spacing:.12em;margin:0 0 8px}.round-link{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;background:var(--paper);border-radius:50%;color:var(--muted)}
.notice{padding:15px 17px;background:var(--error-bg);color:var(--red);border:1px solid var(--red);border-radius:16px;font-size:15px;line-height:1.7;margin:12px 0}.notice.info{background:var(--soft);color:var(--ink);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}
.resume-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding:14px 16px;margin:6px 0 4px;background:var(--soft);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:18px}.resume-banner p{margin:0;font-size:15px;color:var(--ink);min-width:0;flex:1 1 220px}
/* Etusivu */
.home-grid{display:grid;gap:18px}.progress-hero{position:relative;margin:14px 0 20px;text-align:center;padding-top:10px}.mastery-gauge{position:relative;max-width:290px;margin:auto}.mastery-gauge svg{width:100%;overflow:visible}.gauge-track,.gauge-fill{fill:none;stroke-width:12;stroke-linecap:round}.gauge-track{stroke:var(--soft)}.gauge-fill{stroke:url(#progress-gradient);transition:stroke-dasharray .6s ease}.gauge-copy{position:absolute;inset:65px 0 auto;display:flex;flex-direction:column;align-items:center}.gauge-copy strong{font-size:46px;line-height:1.2;font-weight:750;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.gauge-copy strong>span{font-size:36px;letter-spacing:-.04em;margin-left:1px}.gauge-fraction{font-size:14px;color:var(--muted);background:var(--paper);padding:3px 12px;border-radius:20px;margin-top:6px}.gauge-caption{font-size:15px;color:var(--muted);margin:4px 0 0}.orbit-symbol{position:absolute;z-index:0;color:var(--raised);font-size:30px;font-weight:800;pointer-events:none}.orbit-one{left:3px;top:70px;transform:rotate(-20deg)}.orbit-two{right:16px;top:20px;transform:rotate(20deg)}.orbit-three{right:0;bottom:36px;transform:rotate(-20deg)}
.encouragement{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);border-radius:24px;padding:17px}.encouragement-icon{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;border-radius:50%;border:2px solid color-mix(in srgb,var(--success) 30%,transparent);color:var(--success);background:color-mix(in srgb,var(--success) 6%,transparent)}.encouragement-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.encouragement strong{font-size:16px;letter-spacing:-.02em;font-weight:700;display:block}.encouragement p{font-size:14px;color:var(--muted);line-height:1.6;margin:4px 0 0}
.progress-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.metric-card{background:var(--paper);border:1px solid color-mix(in srgb,var(--line) 55%,transparent);padding:18px 16px;border-radius:24px;min-width:0}.metric-top{display:flex;align-items:center;gap:7px;justify-content:space-between;margin-bottom:12px}.metric-top>strong{font-size:27px;font-weight:650;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums;white-space:nowrap}.metric-tag{font-size:12px;font-weight:750;padding:2px 8px;line-height:1.5;border-radius:6px;background:var(--soft);color:var(--accent)}.metric-tag.cool{color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent)}.metric-card>span{font-size:14px;line-height:1.45;color:var(--muted);display:block}.scope-note{font-size:14px;line-height:1.65;color:var(--muted);margin:0 2px}
.next-lesson{background:linear-gradient(130deg,var(--paper),color-mix(in srgb,var(--soft) 55%,var(--paper)));border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:25px;padding:22px;margin-bottom:14px}.section-kicker{display:flex;align-items:center;gap:7px;color:var(--accent);font-size:12px;font-weight:750;letter-spacing:.08em;margin-bottom:14px}.tiny-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}.lesson-duration{color:var(--faint);margin-left:auto;font-size:12px;letter-spacing:.06em}.next-lesson h2{font-size:25px;line-height:1.3;margin-bottom:10px}.next-lesson>p:not(.lesson-progress){font-size:16px;color:var(--muted);line-height:1.7;margin-bottom:18px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:13px 20px;border-radius:17px;font-size:16px;font-weight:750;line-height:1.4;text-align:center;transition:filter .15s,transform .15s}.button.compact{min-height:46px;padding:10px 16px;font-size:15px}.button:active:not(:disabled){transform:scale(.985)}.button.primary{color:var(--accent-ink);background:var(--accent-strong);box-shadow:inset 0 1px #ffffff17}.button.primary:hover{filter:brightness(1.07)}.button.secondary{background:var(--raised);color:var(--ink);border:1px solid var(--line)}.hero-actions .button,.resume-card .button{width:100%}.resume-card p{font-size:15px;color:var(--muted);margin-bottom:14px;line-height:1.6}.resume-card~.hero-actions .button{margin-top:10px;min-height:46px;font-size:15px}
.scope-select{display:grid;gap:7px;font-size:14px;font-weight:650;color:var(--muted);margin-top:16px}select{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:16px;max-width:100%;min-height:48px}.scope-select select{width:100%}.lesson-progress{font-size:14px;text-align:center;color:var(--faint);margin:14px 0 0;line-height:1.6}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:30px 0 14px}.section-head h2{font-size:20px;letter-spacing:-.025em}.text-link{font-size:15px;color:var(--muted);min-height:44px;display:inline-flex;align-items:center;gap:6px}.text-link .icon{color:var(--accent)}
.topic-grid{display:grid;gap:10px}.topic-card{display:grid;grid-template-columns:46px minmax(0,1fr) 20px;gap:13px;align-items:center;width:100%;padding:17px;background:var(--paper);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);border-radius:22px;text-align:left}.topic-card>div{min-width:0}.topic-card h3{font-size:17px;margin-bottom:2px;letter-spacing:-.025em}.topic-card p{font-size:14px;color:var(--muted);margin-bottom:10px}.topic-sign{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;font-size:24px;font-weight:500}.lavender{color:var(--accent);background:var(--soft)}.amber{color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent)}.blue{color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent)}.topic-arrow{color:var(--faint)}.topic-progress{height:4px;background:var(--raised);border-radius:10px;overflow:hidden}.topic-progress>span{display:block;height:100%;width:0;background:var(--accent);border-radius:10px}.topic-meta{font-size:13px;color:var(--faint);display:block;margin-top:6px}.topic-card:active,.topic-card:hover{background:var(--raised)}
.home-options{margin-top:22px;border:1px solid var(--line);border-radius:20px;padding:0 17px}.home-options>summary{display:flex;align-items:center;gap:10px;padding:16px 0;min-height:56px;font-size:16px;font-weight:650;color:var(--muted);cursor:pointer}.mode-grid{display:grid;gap:8px;margin:4px 0 14px}.mode-card{display:grid;grid-template-columns:30px minmax(0,1fr) 20px;gap:10px;align-items:center;width:100%;text-align:left;padding:15px;background:var(--paper);border-radius:16px}.mode-card h3{font-size:16px;letter-spacing:-.02em}.mode-card p{font-size:14px;color:var(--muted);margin:3px 0 0}.mode-card>.icon{color:var(--faint)}.card-icon{font-size:23px;color:var(--accent)}.timer-option{display:flex;align-items:center;gap:10px;font-size:15px;line-height:1.6;color:var(--muted);padding:5px 0 18px}.timer-option input{flex-shrink:0;width:22px;height:22px;accent-color:var(--accent)}
.quiet-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 18px;color:var(--faint);font-size:14px;padding:10px 0}.quiet-stats strong{font-weight:650}
.footer{display:flex;justify-content:space-between;gap:15px;color:var(--faint);font-size:12px;letter-spacing:.08em;padding:28px 0 10px;margin-top:16px;border-top:1px solid var(--line)}.lead{font-size:16px;line-height:1.75;color:var(--muted);margin:0 0 22px;max-width:70ch}.muted,.quiet{color:var(--muted);font-size:15px;line-height:1.7}.empty-state{padding:20px 0;font-size:15px;color:var(--muted)}
/* Osaaminen, kaavat ja asetukset */
.skills-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.skills-controls label{font-size:14px;font-weight:650;color:var(--muted);min-width:0}.skills-controls select{width:100%;margin-top:7px}.skills-list{display:grid;gap:10px}
.skill-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:20px}.skill-row h3{font-size:17px;letter-spacing:-.02em;margin-bottom:4px}.skill-status{font-size:15px;font-weight:650;color:var(--muted);margin:0 0 10px}.skill-status.level-2{color:var(--accent)}.skill-status.level-3{color:var(--success)}.skill-steps{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;list-style:none;margin:0 0 6px;padding:0;font-size:13px;color:var(--faint)}.skill-steps li{display:flex;align-items:center;gap:7px;line-height:1.35}.skill-steps li.done{color:var(--ink)}.skill-steps .icon{color:var(--success);width:17px;height:17px}.step-dot{width:11px;height:11px;margin:3px;border-radius:50%;border:2px solid var(--line);flex-shrink:0}.skill-more>summary{display:inline-flex;align-items:center;min-height:40px;font-size:13px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line)}.skill-more p{font-size:13px;color:var(--muted);margin:2px 0 4px}
.skill-button{display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:10px 14px;background:var(--soft);color:var(--accent);border-radius:12px;font-size:15px;font-weight:700}
.history-item{display:grid;gap:4px;padding:16px 17px;background:var(--paper);border-radius:16px;margin-bottom:8px;font-size:15px;color:var(--muted)}.history-item button{display:inline-flex;align-items:center;gap:6px;justify-self:start;min-height:44px;background:none;padding:6px 0;color:var(--accent);font-size:15px;font-weight:650}.history-more{width:100%;margin-top:4px}
.reset-section{font-size:15px;border-top:1px solid var(--line);margin-top:28px;padding-top:15px;color:var(--muted)}.reset-section summary{padding:12px 0;min-height:44px;cursor:pointer}.reset-section p{font-size:15px;line-height:1.75}.text-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;background:none;padding:10px 0;font-size:15px;color:var(--muted);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--line)}.text-button.danger{color:var(--red)}
.formula-session{display:grid;gap:12px;padding:16px;margin:0 0 18px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--soft);border-radius:18px}.formula-session p{margin:0;font-size:15px;line-height:1.65}.formula-session .button{justify-self:start}
.formula-grid{display:grid;gap:13px}.formula-card{background:var(--paper);border:1px solid var(--line);border-radius:23px;padding:22px}.formula-card h2{font-size:19px}.formula-expression{font-size:22px;line-height:1.7;letter-spacing:-.01em;color:var(--accent);white-space:pre-line;margin:16px 0}.formula-card p{font-size:15px;color:var(--muted);line-height:1.75;margin:0}
.settings-grid{display:grid;gap:15px;align-items:start}.settings-card{position:relative;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:25px}.settings-card h2{font-size:21px;margin-bottom:8px}.settings-card p{font-size:15px;color:var(--muted);line-height:1.7}.settings-card>.button{width:100%}.settings-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--soft);color:var(--accent);font-size:26px;margin-bottom:16px}.install-card{background:linear-gradient(140deg,var(--soft),var(--paper))}.settings-link{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:50px;font-size:16px;border-top:1px solid var(--line)}.settings-link .icon{color:var(--accent)}.settings-privacy{font-size:14px;color:var(--faint);line-height:1.75;padding:14px 6px}.offline-status{margin:16px 0 0;font-size:14px!important}.offline-status.is-ready{color:var(--success)}.app-update{margin-top:15px;padding-top:18px;border-top:1px solid var(--line)}#install-instructions{margin-top:16px}
/* Ääni: kytkin, voimakkuus ja selostuksen tila */
.audio-settings{display:grid}.audio-row{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);align-items:center;gap:8px 16px;padding:12px 0;border-top:1px solid var(--line)}.audio-row-label{font-size:15px;font-weight:650;color:var(--ink)}.audio-row-controls{display:flex;flex-wrap:wrap;gap:8px}.audio-status{grid-column:1/-1;font-size:14px;color:var(--muted);margin:0;line-height:1.6}.audio-status:empty{display:none}.audio-card .audio-row:first-child{border-top:0}
.switch{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:4px 2px;background:none;font-size:15px;color:var(--muted)}.switch-track{position:relative;width:48px;height:28px;border-radius:20px;background:var(--raised);border:1px solid var(--line);transition:background .15s}.switch-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}.switch[aria-pressed=true]{color:var(--ink)}.switch[aria-pressed=true] .switch-track{background:var(--accent-strong);border-color:var(--accent-strong)}.switch[aria-pressed=true] .switch-thumb{transform:translateX(20px);background:var(--accent-ink)}.switch:focus-visible{outline-offset:2px}
.volume-control{display:flex;align-items:center;gap:12px;min-width:0}.volume-control output{min-width:52px;text-align:right;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.range{--fill:50%;-webkit-appearance:none;appearance:none;width:100%;min-width:0;height:44px;margin:0;background:transparent;cursor:pointer}.range:focus{outline:none}.range::-webkit-slider-runnable-track{height:8px;border-radius:8px;border:1px solid var(--line);background:linear-gradient(to right,var(--accent) 0 var(--fill),var(--raised) var(--fill) 100%)}.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;margin-top:-9px;border-radius:50%;background:var(--paper);border:3px solid var(--accent);box-shadow:0 1px 4px #0005}.range::-moz-range-track{height:8px;border-radius:8px;border:1px solid var(--line);background:var(--raised)}.range::-moz-range-progress{height:8px;border-radius:8px;background:var(--accent)}.range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--paper);border:3px solid var(--accent);box-shadow:0 1px 4px #0005}.range:focus-visible::-webkit-slider-thumb{outline:3px solid var(--accent);outline-offset:3px}.range:focus-visible::-moz-range-thumb{outline:3px solid var(--accent);outline-offset:3px}
.lesson-audio{margin:22px 0 0;color:var(--muted);border:1px solid var(--line);border-radius:16px;background:var(--paper)}.lesson-audio>summary{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:650;min-height:50px;padding:6px 8px 6px 14px;cursor:pointer;color:var(--ink)}.lesson-audio>summary>.icon{color:var(--accent)}.chevron-box{display:grid;place-items:center;width:36px;height:36px;margin-left:auto;border-radius:10px;background:var(--raised)}.chevron-box .chevron{margin:0}.lesson-audio .audio-settings{padding:0 14px 6px}
/* Tulokset */
.result-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}.result-stat{background:var(--paper);border:1px solid var(--line);padding:20px;border-radius:22px}.result-stat strong{font-size:28px;font-weight:700;letter-spacing:-.05em;color:var(--accent);display:block}.result-stat span{font-size:15px;color:var(--muted)}.results-actions{display:grid;gap:10px;margin-bottom:30px}.review-heading{margin:25px 0 10px}.result-review{display:grid;gap:10px}.review-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.review-card>summary{padding:17px 18px;cursor:pointer;font-size:16px;font-weight:650;line-height:1.5}.review-badge{display:block;color:var(--accent);font-size:14px;font-weight:600;margin-top:4px}.review-badge.outcome-skipped,.review-badge.outcome-wrong{color:var(--red)}.review-badge.outcome-independent{color:var(--success)}.review-body{padding:0 18px 20px}.review-context{font-size:15px;color:var(--muted);line-height:1.75}
.solution-steps{font-size:16px;line-height:1.8;padding-left:22px}.solution-steps li{padding:5px 0;white-space:pre-line}.solution-answer{display:grid;gap:4px;font-size:15px;border-top:1px solid var(--line);padding:14px 0}.solution-answer span{color:var(--accent)}.solution-answer .your-answer{color:var(--muted)}
.force-compare{display:grid;gap:14px;margin:12px 0}.force-compare figure,.solution-figure{margin:0}.force-compare-title{font-size:14px;font-weight:750;color:var(--accent);margin:0 0 6px;letter-spacing:.02em}.force-compare-text{font-size:14px;color:var(--muted);margin:6px 0 0}.solution-figure{margin-bottom:14px}
/* Harjoittelu omana sivunäkymänä */
body.is-studying .app-nav,body.is-studying .topbar,body.is-studying .footer,body.is-studying .resume-banner{display:none}body.is-studying main{padding-bottom:0}html:has(body.is-studying){scroll-padding-bottom:110px}
.play-view{padding:0}.play-header{display:flex;align-items:center;gap:14px;padding:calc(12px + env(safe-area-inset-top)) 0 12px}.back-button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:9px 15px 9px 12px;border-radius:14px;background:var(--paper);border:1px solid var(--line);color:var(--ink);font-size:15px;font-weight:650;flex-shrink:0}.back-button:hover{border-color:var(--accent)}.play-meta{display:flex;flex-direction:column;gap:1px;min-width:0;margin-left:auto;text-align:right}.play-meta #session-mode{font-size:15px;font-weight:700;letter-spacing:-.01em}.play-meta #session-count{font-size:14px;color:var(--muted)}
.session-progress{height:6px;background:var(--soft);overflow:hidden;border-radius:10px}.session-progress>span{display:block;background:var(--accent);height:100%;width:0;border-radius:10px;transition:width .25s}
.play-layout{display:grid;grid-template-areas:"head" "context" "work";grid-template-columns:minmax(0,1fr);max-width:760px;margin:0 auto;padding:22px 0 24px}.play-head{grid-area:head;min-width:0}.play-context{grid-area:context;min-width:0}.play-work{grid-area:work;min-width:0}
.wizard-step-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.step-label{font-size:13px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.wizard-step-heading .quiet{font-size:14px;white-space:nowrap}.wizard-topic{display:block;font-size:14px;color:var(--faint);margin:0 0 6px}.wizard-topic:empty{display:none}.task-title{font-size:27px;letter-spacing:-.035em;line-height:1.3;margin:0 0 18px}
.context-details,.visual-details{margin-bottom:14px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.visual-details>summary{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:650;color:var(--ink);padding:11px 16px;cursor:pointer;min-height:48px}.context-details .task-context{border:0;margin:0;padding:17px;background:none}.visual-details>div{padding:0 12px}
.task-context{font-size:16px;line-height:1.8;color:var(--ink);margin:0}.givens{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.given{font-size:14px;color:var(--accent);background:var(--soft);padding:7px 10px;border-radius:8px}.diagram-container{margin:2px 0 12px}.diagram-caption{font-size:14px;color:var(--muted);line-height:1.65;margin:10px 0}
.physics-svg{display:block;width:100%;height:auto;overflow:visible}.physics-svg text{font:13px Manrope,sans-serif;fill:var(--muted)}.physics-svg:not(.plot-svg) text{font-size:28px;fill:var(--ink)}.physics-svg .axis-label{font-size:13px;font-weight:700}.physics-svg .force-label{font-weight:750;fill:var(--diagram-force);font-size:32px}.physics-svg .segment-number{font-size:18px;font-weight:750;fill:var(--amber)}.physics-svg .gridline{stroke:var(--line);stroke-width:1}.physics-svg .axisline{stroke:var(--diagram-guide);stroke-width:1.5}
.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:15px;margin:12px 0}.data-table th,.data-table td{border-bottom:1px solid var(--line);text-align:left;padding:9px 10px;white-space:nowrap}.data-table th{color:var(--accent);background:var(--soft);font-weight:650}.table-details{font-size:15px;color:var(--muted);margin-bottom:12px}.table-details>summary{min-height:44px;padding:11px 0;cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line)}
.field{border:0;margin:0;padding:0;min-width:0}.number-input-wrap{display:flex;align-items:stretch;width:100%;border:1px solid var(--diagram-guide);background:var(--paper);border-radius:16px;overflow:hidden;min-height:62px}.number-input-wrap input{min-width:0;flex:1;border:0;background:transparent;color:var(--ink);font-size:25px;font-weight:600;letter-spacing:-.02em;padding:14px 17px;border-radius:15px;outline-offset:-3px}.number-input-wrap input::placeholder{font-size:18px;font-weight:400;color:var(--faint)}.unit{display:flex;align-items:center;justify-content:center;padding:12px;min-width:60px;font-size:16px;color:var(--muted);background:var(--raised);border-left:1px solid var(--line)}
.precision{font-size:14px;line-height:1.6;color:var(--muted);margin:10px 0 0}.number-entry-tools{display:flex;align-items:center;gap:10px;margin-top:8px}.number-entry-tools .precision{margin:0}.sign-toggle{min-width:46px;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--accent);font-size:22px}
.choice-options{display:grid;gap:10px}.choice-option{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--paper);padding:15px 17px;border-radius:17px;min-height:58px;font-size:16px;line-height:1.6;cursor:pointer}.choice-option input{accent-color:var(--accent);width:20px;height:20px;margin:0;flex-shrink:0}.choice-option:has(input:checked){background:var(--soft);border-color:var(--accent)}
.force-grid{display:grid;gap:12px}.force-row{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.force-row label{font-size:15px;font-weight:650;color:var(--ink)}.force-row select{min-width:0;width:100%}
.field-feedback{font-size:15px;line-height:1.7;color:var(--muted);margin:10px 0 0}.field.is-correct .field-feedback{color:var(--success)}.field.is-correct .number-input-wrap{border-color:var(--success)}.field.is-wrong .number-input-wrap{border-color:var(--red)}.field.is-wrong .field-feedback{display:none}
.feedback{display:grid;gap:4px;margin:18px 0 0;padding:16px 17px;background:var(--success-bg);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);border-radius:17px;font-size:15px;line-height:1.7;color:var(--success)}.feedback.error{background:var(--error-bg);border-color:color-mix(in srgb,var(--red) 35%,transparent);color:var(--red)}.feedback strong{font-weight:750;font-size:16px}
.play-actions{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:12px;margin:0 calc(-1 * var(--gutter));padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px)}.play-actions .button{flex:1;min-width:0;max-width:420px;margin-left:auto;min-height:54px;font-size:16px;padding:12px 16px}.play-actions .text-button{font-size:15px;text-decoration:none;flex-shrink:0;max-width:45%;text-align:left}
.step-tools{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.step-tool-buttons{display:flex;gap:8px;flex-wrap:wrap}.step-tool{display:inline-flex;align-items:center;gap:7px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;font-size:15px;min-height:46px;padding:9px 14px;line-height:1.4}.step-tool:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.support-note{font-size:14px;line-height:1.65;color:var(--muted);margin:12px 0 0}.step-tools #skip-task{margin-top:4px}
.hint-list{display:grid;gap:10px}.hint-item{border:1px solid var(--line);border-radius:15px;background:var(--paper);padding:0 16px;margin-top:10px}.hint-item>summary{font-size:15px;font-weight:650;color:var(--accent);cursor:pointer;padding:12px 0;min-height:46px}.hint-item>p{font-size:16px;line-height:1.75;color:var(--ink);padding-bottom:15px;margin:0}.formula-mini{border-bottom:1px solid var(--line);padding:14px 0}.formula-mini strong{font-size:15px;color:var(--accent)}.formula-mini p{font-size:15px;color:var(--muted);white-space:pre-line;line-height:1.75;margin:6px 0 0}
.wizard-constants{font-size:14px;color:var(--muted);margin-top:20px;line-height:1.7}.source-details{font-size:14px;color:var(--faint);margin-top:8px}.source-details>summary{padding:11px 0;min-height:44px;cursor:pointer}.source-note{font-size:14px;line-height:1.6}
.solution-panel{border:1px solid var(--line);background:var(--paper);border-radius:19px;padding:20px}.solution-step-text{font-size:18px;line-height:1.85;color:var(--ink);white-space:pre-line;overflow-wrap:anywhere;margin:0}.conclusion{border-left:3px solid var(--accent);padding-left:13px;font-size:15px;color:var(--muted);line-height:1.75;margin:18px 0 0}
.exam-review .lead{margin-bottom:8px}.exam-review-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}.exam-review-item{padding:16px 17px;background:var(--paper);border:1px solid var(--line);border-radius:18px}.exam-review-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:8px}.exam-review-head h2{font-size:17px}.exam-review-status{font-size:14px;color:var(--success)}.exam-review-status.incomplete{color:var(--red)}.exam-review-answers{display:grid;gap:2px;margin:0 0 10px;font-size:15px}.exam-review-answers dt{color:var(--muted);margin-top:6px}.exam-review-answers dd{margin:0;color:var(--ink);font-weight:600}
/* Visuaalinen opetus */
.lesson-path{margin:0 0 16px}.lesson-path ol{display:flex;gap:5px;list-style:none;margin:0;padding:0}.lesson-path li{flex:1;min-width:0;text-align:center;border-top:3px solid var(--line);padding:7px 2px 0;font-size:13px;line-height:1.3;color:var(--faint)}.lesson-path li.done{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--muted)}.lesson-path li.active{color:var(--accent);border-color:var(--accent);font-weight:750}
.lesson-copy{font-size:17px;line-height:1.8;color:var(--ink);margin:0 0 18px}.lesson-demo{background:var(--diagram-bg);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin:18px 0 22px}.lesson-graphic{line-height:0}.lesson-svg{width:100%;height:auto;display:block}.lesson-svg text{font:26px Manrope,sans-serif;font-weight:650;fill:var(--ink)}
.lesson-notes{list-style:none;margin:0;padding:10px 16px 12px;display:grid;gap:3px;border-top:1px solid var(--line);font-size:15px;line-height:1.55;color:var(--muted)}.lesson-notes .is-status{color:var(--ink);font-weight:700}
.demo-background{fill:var(--diagram-bg)}.demo-axis{stroke:var(--diagram-guide);stroke-width:2}.demo-object{fill:var(--diagram-object);stroke:var(--diagram-edge);stroke-width:2}.demo-wheel{fill:var(--diagram-edge)}.demo-outline{fill:var(--diagram-ground);stroke:var(--diagram-edge);stroke-width:2}.demo-person{fill:var(--diagram-person)}.demo-person-line{stroke:var(--diagram-person);stroke-width:5}.demo-trail{fill:var(--diagram-line)}.demo-ground{stroke:var(--diagram-edge);stroke-width:5}.demo-dashed{stroke:var(--diagram-guide);stroke-width:1.5;stroke-dasharray:6 5}.demo-rope{stroke:var(--diagram-rope);stroke-width:5}.demo-curve{stroke:var(--diagram-line);stroke-width:3}.demo-dot{fill:var(--diagram-line)}.demo-area-positive{fill:var(--diagram-area);opacity:.3}.demo-area-negative{fill:var(--red);opacity:.25}.lesson-svg :is(.demo-force,.demo-resistance,.demo-normal,.demo-gravity) line{stroke:currentColor;stroke-width:3}.lesson-svg :is(.demo-force,.demo-resistance,.demo-normal,.demo-gravity) text{fill:currentColor;font-weight:750}.lesson-svg .demo-force{color:var(--diagram-force)}.lesson-svg .demo-resistance{color:var(--diagram-rope)}.lesson-svg .demo-normal{color:var(--diagram-line)}.lesson-svg .demo-gravity{color:var(--red)}
.lesson-metrics{display:flex;justify-content:space-around;gap:5px;padding:12px 9px;border-top:1px solid var(--line);text-align:center}.lesson-metrics>div{flex:1;min-width:0}.lesson-metrics strong{font-size:17px;color:var(--accent);display:block;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.lesson-metrics span{font-size:13px;color:var(--muted)}.lesson-parameter{display:block;padding:12px 17px 4px;font-size:15px;color:var(--ink);border-top:1px solid var(--line)}.lesson-parameter>span{display:block}.animation-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 16px 12px}.animation-timeline{flex:1;min-width:120px}
.lesson-formula{padding:18px 20px;border-radius:17px;background:var(--soft);border-left:3px solid var(--accent);font-size:18px;line-height:1.8;color:var(--accent);white-space:pre-line;overflow-wrap:anywhere}.lesson-example-label{font-size:13px;font-weight:700;letter-spacing:.05em;line-height:1.6;color:var(--accent);margin-bottom:12px}.lesson-example-context{font-size:16px;color:var(--ink);line-height:1.8}.context-details .lesson-example-context{padding:16px;margin:0}.lesson-worked-step{padding:20px;background:var(--soft);border:1px solid var(--line);border-radius:19px;font-size:18px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere;margin:16px 0}.lesson-example-diagram{margin:16px 0}.lesson-example-diagram svg{max-width:100%;height:auto}.lesson-repeat{margin-top:18px;color:var(--accent)}
.lesson-choices{display:grid;gap:10px}.lesson-choice{width:100%;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:16px 17px;border-radius:17px;line-height:1.6;text-align:left;font-size:16px;min-height:58px}.lesson-choice:hover{border-color:var(--accent)}.lesson-choice.correct{background:var(--success-bg);border-color:var(--success)}.lesson-choice.incorrect{background:var(--error-bg);border-color:var(--red)}.lesson-check{padding:16px 17px;background:var(--success-bg);border-left:3px solid var(--success);border-radius:14px;font-size:16px;line-height:1.7;margin:18px 0}.lesson-check p{margin:6px 0 0;color:var(--ink)}.lesson-check.incorrect{background:var(--error-bg);border-left-color:var(--red)}#lesson-panel .quiet{font-size:14px;margin-top:12px}
.confirm-dialog{width:calc(100% - 32px);max-width:440px;border:1px solid var(--line);padding:24px;border-radius:25px;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #0005}.confirm-dialog::backdrop{background:#101014b3}.confirm-dialog h2{font-size:22px;margin-bottom:14px}.confirm-dialog p{font-size:15px;color:var(--muted);line-height:1.75}.dialog-actions{display:grid;gap:10px;margin-top:20px}.dialog-actions .text-button{justify-self:center}
/* Tabletti ja työpöytä */
@media(min-width:621px){:root{--gutter:28px}.topbar{padding-top:24px}.view{padding-top:24px}.page-heading h1{font-size:32px}.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topic-card{grid-template-columns:minmax(0,1fr) 20px;grid-template-rows:auto auto}.topic-card .topic-sign{grid-column:1/-1}.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-card{grid-template-columns:minmax(0,1fr) 20px}.mode-card .card-icon{grid-column:1/-1}.formula-grid,.settings-grid,.force-compare{grid-template-columns:repeat(2,minmax(0,1fr))}.results-actions{grid-template-columns:auto auto;justify-content:start}.force-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:12px}.task-title{font-size:30px}}
@media(min-width:960px){main{padding-left:calc(var(--nav-rail) + var(--gutter))}body.is-studying main{padding-left:var(--gutter);max-width:1280px}.app-nav{top:0;right:auto;width:var(--nav-rail);grid-template-columns:none;grid-auto-rows:min-content;align-content:start;gap:6px;padding:20px 10px;border-top:0;border-right:1px solid var(--line);box-shadow:none}.app-nav .nav-brand{display:grid;place-items:center;margin-bottom:18px;min-height:56px}.app-nav a[data-nav]{min-height:68px}.topbar .brand-mark{display:none}.home-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:28px;align-items:start}.home-actions{padding-top:14px}.skills-list{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.play-actions{margin:0;border-radius:18px 18px 0 0;border-inline:1px solid var(--line)}}
@media(min-width:1000px){.play-layout.has-context{max-width:none;grid-template-areas:"context head" "context work";grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:36px}.play-layout.has-context .play-context{position:sticky;top:16px;align-self:start;max-height:calc(100dvh - 120px);overflow:auto;padding-right:4px}.play-layout.has-context .context-details .task-context{font-size:17px}}
@media(max-width:620px){.play-actions .button{max-width:none}}
@media(max-width:420px){.skills-controls{grid-template-columns:1fr}.audio-row{grid-template-columns:1fr;gap:4px}.skill-row{grid-template-columns:1fr}.skill-button{justify-self:start}.back-button span{font-size:14px}}
@media(max-width:359px){:root{--gutter:16px}.page-heading h1{font-size:24px}.metric-card{padding:16px 13px}.metric-top>strong{font-size:23px}.encouragement{padding:15px;gap:10px}.next-lesson{padding:19px}.lesson-duration{display:none}.task-title{font-size:24px}.lesson-metrics strong{font-size:15px}.app-nav{padding-inline:4px}.app-nav a[data-nav]{font-size:12px}.topic-card{padding:15px;gap:10px}.skill-steps{grid-template-columns:1fr}.lesson-path li{font-size:12px}}
/* Matala näyttö ja avoin virtuaalinäppäimistö: toimintopalkki tiivistyy */
@media(max-height:520px){.play-actions{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.play-actions .button{min-height:46px}.play-header{padding-top:8px;padding-bottom:8px}.play-layout{padding-top:14px}.task-title{font-size:23px;margin-bottom:12px}}
.keyboard-open .play-actions{padding-top:6px;padding-bottom:6px}.keyboard-open .play-actions .button{min-height:44px}
@media(max-height:720px) and (max-width:620px){.progress-hero{margin:8px 0 16px;padding-top:0}.mastery-gauge{max-width:240px}.gauge-copy{top:49px}.gauge-copy strong{font-size:39px}.gauge-copy strong>span{font-size:31px}.gauge-fraction{margin-top:4px}.topbar{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{html,body,main{background:white;color:#222;max-width:none;padding:0;box-shadow:none}.topbar,.app-nav,.play-header,.play-actions,.step-tools,.lesson-audio{display:none}.view{padding:20px}.lesson-demo,.solution-panel,.lesson-worked-step{break-inside:avoid}}
@supports(-webkit-touch-callout:none){select{font-size:16px}}
/* Käyttöohje omana luettavana sivunaan */
.doc-page{max-width:760px;margin:0 auto;padding:0 var(--gutter) 60px}.doc-page .topbar{padding-left:0;padding-right:0}.doc-page h1{font-size:34px}.doc-page h2{font-size:23px;margin:38px 0 12px}.doc-page h3{font-size:18px;margin:22px 0 8px}.doc-page p,.doc-page li{font-size:17px;line-height:1.75}.doc-page ul,.doc-page ol{padding-left:24px;margin:0 0 16px}.doc-page li{margin:6px 0}.doc-page code{font-size:.92em;background:var(--raised);padding:1px 6px;border-radius:6px}.doc-page a:not(.button):not(.brand){color:var(--accent);text-decoration:underline;text-underline-offset:4px}.doc-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:0;list-style:none}.doc-toc a{display:inline-flex;min-height:44px;align-items:center;padding:8px 14px;border-radius:12px;background:var(--paper);border:1px solid var(--line);font-size:15px;text-decoration:none!important;color:var(--ink)!important}.doc-callout{padding:16px 18px;border-radius:18px;background:var(--soft);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));margin:18px 0}.doc-callout p:last-child{margin:0}
.doc-page .topbar .brand-mark{display:grid}

/* Tekstinvalinta ja zoomaus pois käytöstä; lomakekentät sallivat valinnan */
html{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-x pan-y}input,textarea,select,[contenteditable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
/* Logon molemmat rivit samalla tyylillä; ohjelmallisesti fokusoitu otsikko ilman reunusta */
.brand-sub{font-size:inherit;font-weight:inherit;color:inherit;letter-spacing:inherit;margin-top:0}
h1[tabindex]:focus,h1[tabindex]:focus-visible,main[tabindex]:focus,main[tabindex]:focus-visible{outline:none}
.symbol-legend{display:grid;gap:4px;margin:10px 0 14px;padding:12px 14px;border-radius:14px;background:var(--soft);border:1px solid var(--line);font-size:14px;line-height:1.5}.symbol-legend>div{display:grid;grid-template-columns:minmax(44px,auto) 1fr;gap:10px;align-items:baseline}.symbol-legend dt{font-weight:750;color:var(--accent);white-space:nowrap}.symbol-legend dd{margin:0;color:var(--muted)}.givens .symbol-legend{flex-basis:100%;width:100%}.formula-mini-expression{font-size:17px;color:var(--accent);white-space:pre-line}#settings-voice{flex:1 1 180px;min-width:0}
.update-toast{position:fixed;z-index:50;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:480px;display:flex;align-items:center;gap:10px;padding:12px 8px 12px 16px;background:var(--paper);color:var(--ink);border:1px solid var(--accent);border-radius:16px;box-shadow:0 12px 40px #0006}.update-toast[hidden]{display:none}.update-toast p{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}.update-toast strong{color:var(--ink)}.update-toast .icon-button{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:none;color:var(--muted)}
.update-changes{margin-top:14px;padding:14px 16px;border-radius:16px;background:var(--soft);border:1px solid var(--line)}.update-changes[hidden]{display:none}.update-changes h3,.changelog-title{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 6px}.update-changes ul,.changelog-entry ul{margin:0;padding-left:20px;display:grid;gap:5px}.update-changes li,.changelog-entry li{font-size:14px;line-height:1.55;color:var(--muted)}.changelog-entry{padding:12px 0;border-top:1px solid var(--line)}.changelog-entry>summary{cursor:pointer;min-height:40px;display:flex;align-items:center;margin:0}.changelog-entry[open]>summary{margin-bottom:6px}.backup-actions{display:grid;gap:10px;margin-top:14px}.version-card .muted{margin-bottom:6px}

.math-block{display:grid;gap:12px;white-space:normal;color:var(--ink);font-size:16px;line-height:1.7}.math-prose{margin:0;font-size:inherit;line-height:1.7;color:var(--ink)}.math-group{display:grid;gap:8px;min-width:0}.math-label{font-size:12px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.math-arrow{color:var(--faint);font-size:18px;line-height:1;padding-left:8px}.math-tail{margin:0;color:var(--muted)}
.c0{--c:var(--accent)}.c1{--c:var(--blue)}.c2{--c:var(--success)}.c3{--c:var(--amber)}.c4{--c:var(--red)}
.ann-formula{position:relative;overflow-x:auto;overflow-y:hidden;padding:6px 2px 4px;-webkit-overflow-scrolling:touch}.ann-expr{display:inline-block;font-size:24px;font-weight:600;line-height:1.35;white-space:nowrap;color:var(--ink);letter-spacing:.01em}.ann-sym{color:var(--c);font-weight:750}.ann-anchor{box-shadow:inset 0 -2px 0 var(--c)}.ann-rel{color:var(--muted);font-weight:500;padding:0 2px}.ann-op,.ann-sup{color:var(--muted);font-weight:500}.ann-fn{color:var(--ink);font-weight:500}.ann-num{color:var(--ink)}.ann-unit{color:var(--muted);font-weight:500}
.ann-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ann-badge{display:inline-flex;align-items:baseline;gap:6px;max-width:260px;padding:4px 10px;border:1.5px solid var(--c);border-radius:12px;background:var(--paper);font-size:13px;font-weight:600;line-height:1.35;color:var(--ink);white-space:normal;box-shadow:0 2px 10px #0002}.ann-badge b{color:var(--c);font-weight:800;white-space:nowrap}.ann-formula.is-laid .ann-badges{display:block;position:relative;margin-top:0}.ann-formula.is-laid .ann-badge{position:absolute;width:max-content}.ann-line{position:absolute;width:2px;margin-left:0;background:var(--c);border-radius:2px;opacity:.85}
.calc-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:baseline;padding:8px 12px;border-radius:12px;background:var(--soft)}.calc-row:not(:has(.calc-label)){grid-template-columns:minmax(0,1fr)}.calc-label{font-size:11.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.calc-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0}.calc-line .ann-expr{font-size:18px;white-space:normal;overflow-wrap:anywhere}.ann-inline{display:inline-flex;gap:5px;align-items:baseline;font-size:12.5px;font-weight:600;line-height:1.4;padding:2px 9px;border:1px solid var(--c);border-radius:999px;color:var(--ink)}.ann-inline b{color:var(--c)}.ann-legend{display:flex;flex-wrap:wrap;gap:6px}
.lesson-formula .math-block,.formula-expression .math-block,.formula-mini-expression .math-block{color:var(--ink);font-size:15px}.lesson-formula{white-space:normal;color:var(--ink)}.formula-expression{white-space:normal;color:var(--ink);font-size:16px}.hint-item>.math-block{padding-bottom:15px}.solution-step-text{white-space:normal}.lesson-worked-step{white-space:normal}
@media(max-width:420px){.ann-expr{font-size:21px}.calc-row{grid-template-columns:1fr;gap:2px}}
