:root{color:#172038;font-synthesis:none;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);background:#edf1ff;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(145deg,#eef2ff 0%,#f8f9ff 48%,#e9f5ff 100%);min-width:320px;min-height:100dvh;margin:0}button{cursor:pointer;min-width:48px;min-height:48px;font:inherit;touch-action:manipulation;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:0}button:focus-visible{outline-offset:2px;outline:3px solid #7e9aff}button:disabled{cursor:default;opacity:.58;transform:none!important}.app-shell{width:min(100%,900px);min-height:100dvh;padding:max(24px, calc(16px + var(--safe-top))) 24px calc(120px + var(--safe-bottom));margin:0 auto}.header{justify-content:space-between;align-items:center;gap:16px;margin:0 0 28px;display:flex}.brand{letter-spacing:-.04em;align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.brand span{color:#fff;letter-spacing:0;background:linear-gradient(135deg,#4665e7,#7c70e9);border-radius:13px;place-items:center;width:39px;height:39px;font-size:14px;display:inline-grid;box-shadow:0 7px 17px #4665e742}.hero,.question-card,.task-card,.score-card,.info-grid article{background:#ffffffeb;border:1px solid #4b62b11c;box-shadow:0 16px 38px #253d8117}.hero{background:radial-gradient(circle at 94% 7%,#dfe4ff 0 8%,#0000 30%),#fffffff0;border-radius:28px;padding:clamp(28px,6vw,52px)}.hero.compact{padding:28px 32px}.hero h1,.question-card h1{letter-spacing:-.045em;margin:6px 0 15px;font-size:clamp(27px,4vw,40px);line-height:1.25}.hero h2{margin:0 0 8px;font-size:24px}.hero p{color:#5d6885;max-width:620px;margin:0 0 25px;font-size:16px;line-height:1.75}.eyebrow{color:#5069cb;letter-spacing:.05em;margin:0;font-size:13px;font-weight:750}.primary,.secondary,.quiet,.option{border-radius:14px;min-height:48px;padding:11px 18px;font-weight:700;transition:transform .16s,box-shadow .16s,background .16s}@media (hover:hover){.primary:hover,.secondary:hover,.option:hover{transform:translateY(-1px)}}.primary:active,.secondary:active,.quiet:active,.option:active{transform:scale(.985)}.primary{color:#fff;background:linear-gradient(135deg,#3e5cdc,#675ee5);box-shadow:0 8px 18px #4458d33d}.primary.small{min-width:84px;min-height:48px;padding:10px 14px}.secondary{color:#3651bf;background:#edf0ff}.quiet{color:#63708e;background:0 0;min-height:48px;padding:8px 12px;font-weight:650}.info-grid,.score-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px;display:grid}.info-grid article{border-radius:19px;align-content:center;gap:5px;min-height:112px;padding:21px;display:grid}.info-grid b{color:#3655cc;font-size:24px}.info-grid span,.score-card span{color:#6b7690;font-size:14px}.task-list{margin-top:30px}.task-list h2{margin:0 0 13px;font-size:22px}.task-card{border-radius:19px;justify-content:space-between;align-items:center;gap:22px;margin:10px 0;padding:21px 22px;display:flex}.task-card h3{margin:7px 0 4px;font-size:18px}.task-card p{color:#6c7690;max-width:550px;margin:0;font-size:14px;line-height:1.55}.task-minutes{color:#4461d7;font-size:13px;font-weight:800}.done{color:#258758;text-align:center;min-width:84px;font-size:14px;font-weight:800}.score-grid{grid-template-columns:repeat(6,1fr)}.score-grid.parent{margin-top:0}.score-card{border-radius:18px;align-content:center;gap:6px;min-height:106px;padding:17px;display:grid}.score-card b{color:#314da9;font-size:24px}.bottom-nav{z-index:5;left:50%;bottom:calc(12px + var(--safe-bottom));width:min(calc(100% - 28px - var(--safe-left) - var(--safe-right)), 560px);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffffe8;border:1px solid #384d9c1f;border-radius:19px;grid-template-columns:repeat(4,1fr);gap:3px;padding:7px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 12px 34px #22336b2e}.bottom-nav button{color:#75809a;background:0 0;border-radius:12px;min-height:48px;font-size:13px;font-weight:750}.bottom-nav button.active{color:#3654cc;background:#e9edff}.question-wrap{width:min(100%,700px);margin:0 auto}.progress-label{color:#64708d;justify-content:space-between;gap:12px;margin-bottom:9px;font-size:14px;font-weight:700;display:flex}.progress{background:#dfe5fb;border-radius:99px;height:8px;overflow:hidden}.progress i{border-radius:inherit;background:linear-gradient(90deg,#4b64df,#826ee7);height:100%;transition:width .2s;display:block}.question-card{border-radius:27px;margin-top:19px;padding:clamp(23px,5vw,42px)}.question-card h1{white-space:pre-line;font-size:clamp(24px,3.8vw,34px)}.options{gap:11px;margin-top:24px;display:grid}.option{color:#2c3859;text-align:left;background:#f7f8fd;border:1px solid #e2e7f4;min-height:58px;padding:15px 18px}.option.selected{color:#304dbd;background:#e9edff;border-color:#687ee6;box-shadow:inset 0 0 0 1px #687ee6}.actions{justify-content:flex-end;gap:11px;margin-top:28px;display:flex}.hint,.feedback{border-radius:15px;margin-top:20px;padding:15px 17px;line-height:1.55}.hint{color:#536483;background:#f0f4fb}.feedback p{margin:6px 0 0}.feedback.good{color:#176f46;background:#e8f7ef}.feedback.bad{color:#9a4d21;background:#fff1e7}.speaking{justify-items:start;gap:16px;display:grid}.speaking h1{margin:0}.speaking .muted{color:#77829c;margin:0;font-size:14px;line-height:1.55}.next-line{color:#405ed1;text-underline-offset:4px;margin-top:8px;text-decoration:underline}.sync-note{background:#edf8f0;border-radius:10px;padding:7px 10px;display:inline-block;color:#41604e!important;margin:4px 0 0!important;font-size:13px!important;line-height:1.45!important}.sync-note.offline,.sync-note.error,.sync-note.needs-pairing,.sync-note.unavailable{background:#fff4e8;color:#8a5a21!important}.parent-summary{margin-top:18px}.parent-panel{background:#ffffffeb;border:1px solid #4b62b11c;border-radius:22px;margin-top:18px;padding:24px;box-shadow:0 12px 30px #253d8112}.parent-panel h2{margin:0 0 8px;font-size:20px}.parent-panel>p{color:#66718c;margin:0 0 15px;line-height:1.6}.muted{color:#71809c;font-size:13px;line-height:1.55}.inline-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:15px;display:flex}.form-stack{gap:12px;margin-top:17px;display:grid}.field-label{color:#45516f;gap:7px;font-size:14px;font-weight:750;display:grid}.field-label input{color:#26314f;width:100%;min-height:48px;font:inherit;background:#fbfcff;border:1px solid #dbe1ef;border-radius:13px;padding:11px 13px}.field-label input:focus{border-color:#7088e8;outline:3px solid #7e9aff6b}.check-row{color:#56637e;align-items:flex-start;gap:10px;font-size:13px;line-height:1.55;display:flex}.check-row input{accent-color:#536bc9;flex:none;width:20px;height:20px;margin:1px 0 0}.form-message{color:#586681;margin:14px 0 0;line-height:1.55}.form-message.notice{color:#4058a8;background:#eef3ff;border-radius:14px;padding:13px 15px}.recovery-card{color:#664a20;background:#fff8e9;border:1px solid #e4bb69;border-radius:16px;gap:10px;margin-top:16px;padding:17px;display:grid}.recovery-card code{overflow-wrap:anywhere;color:#473416;background:#fff;border-radius:9px;padding:11px;font-size:13px;line-height:1.5}.recovery-card p{margin:0;font-size:13px;line-height:1.55}.danger-link{color:#9b4d47;text-underline-offset:4px;background:0 0;min-height:auto;margin-top:19px;padding:4px 0;font-size:13px;font-weight:700;text-decoration:underline}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=640px){.app-shell{padding:max(18px, calc(12px + var(--safe-top))) 16px calc(120px + var(--safe-bottom))}.header{margin-bottom:20px}.hero{border-radius:23px}.hero.compact{padding:25px}.task-card{align-items:flex-start;padding:18px}.task-card>.primary,.task-card>.done{flex:none;margin-top:4px}.info-grid{grid-template-columns:1fr}.info-grid article{grid-template-columns:90px 1fr;align-items:center;min-height:78px}.score-grid{grid-template-columns:repeat(2,1fr)}.score-card{min-height:88px}.question-card{border-radius:21px}.actions{justify-content:stretch}.actions button{flex:1}.parent-panel{border-radius:19px;padding:20px}.inline-actions>button{flex:150px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
