@layer ui-sdk;:root{--bg:#f6f1e7;--surface:#fffdf8;--paper:#fffdf6;--paper-dim:#f3efe2;--rule:#c9c2ea;--rule-faint:#ece8f7;--ink:#4b2a9a;--ink-soft:#ece6fa;--frame:#2b2d42;--text:#23212e;--muted:#625d75;--line:#e3dccb;--red:#d62839;--red-soft:#fdecee;--green:#1d7a45;--green-soft:#e5f4ea;--amber:#a85d00;--amber-soft:#fff1dc;--radius:14px;--shadow:0 1px 2px #23212e0f, 0 6px 20px -8px #23212e2e;--hand:"Patrick Hand", "Be Vietnam Pro", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-family:Be Vietnam Pro,system-ui,-apple-system,sans-serif;font-size:17px;line-height:1.5}button{font:inherit;color:inherit}button,[role=button]{touch-action:manipulation;-webkit-user-select:none;user-select:none}:focus-visible{outline:3px solid color-mix(in oklab, var(--ink) 55%, transparent);outline-offset:2px}.primary,.secondary,.ghost{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-weight:600;transition:transform .12s ease-out,background-color .15s ease-out;display:inline-flex}.primary{background:var(--ink);color:#fff}.primary:active:not(:disabled){transform:scale(.97)}.secondary{background:var(--surface);border-color:var(--line)}.secondary svg{width:20px;height:20px}.ghost{color:var(--muted);background:0 0}.big{min-height:56px;padding:0 26px;font-size:18px}:is(.primary,.secondary,.ghost):disabled{opacity:.45;cursor:default}@media (hover:hover){.primary:hover:not(:disabled){background:color-mix(in oklab, var(--ink) 88%, black)}.secondary:hover:not(:disabled){background:#fff}}.icon-button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;place-items:center;width:48px;height:48px;display:inline-grid}.icon-button.small{flex:none;width:40px;height:40px}.icon-button svg{width:22px;height:22px}.home,.summary{max-width:760px;padding:max(28px, env(safe-area-inset-top)) 24px 48px;margin:0 auto}.home-top{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.brand{font-family:var(--hand);color:var(--ink);margin:0;font-size:22px}.greeting{letter-spacing:-.01em;margin:0;font-size:34px;font-weight:700;line-height:1.2}.topic{background-color:var(--paper);background-image:linear-gradient(var(--rule-faint) 1px, transparent 1px), linear-gradient(90deg, var(--rule-faint) 1px, transparent 1px);border:1px solid var(--line);box-shadow:var(--shadow);background-size:28px 28px;border-radius:20px;padding:28px;position:relative;overflow:hidden}.topic-grade{color:var(--muted);margin:0 0 6px;font-size:14px;font-weight:600}.topic-title{max-width:15ch;margin:0;font-size:28px;line-height:1.25}.topic-sub{color:var(--muted);max-width:34ch;margin:10px 0 24px}.topic-sample{font-family:var(--hand);color:var(--ink);grid-template-columns:auto auto;font-size:40px;line-height:1.15;display:grid;position:absolute;top:26px;right:30px;transform:rotate(-3deg)}.topic-sample-div{border-left:3px solid var(--frame);border-bottom:3px solid var(--frame);padding-left:12px}.topic-sample-q{border-left:3px solid var(--frame);grid-column:2;padding-left:12px}.topic-actions{flex-wrap:wrap;gap:12px;display:flex}.topic-meta{color:var(--muted);margin:16px 0 0;font-size:14px}@media (width<=560px){.topic-sample{display:none}}.stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;display:grid}.stat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;padding:16px 18px;display:flex}.stat-num{font-family:var(--hand);color:var(--ink);font-variant-numeric:tabular-nums;font-size:36px;line-height:1.1}.stat-label{color:var(--muted);font-size:14px}.footnote{color:var(--muted);text-align:center;margin-top:28px;font-size:14px}.backdrop{background:#23212e59;transition:opacity .18s ease-out;position:fixed;inset:0}.backdrop[data-starting-style],.backdrop[data-ending-style]{opacity:0}.dialog{background:var(--surface);width:min(480px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);border:0;border-radius:20px;flex-direction:column;gap:18px;padding:24px;transition:opacity .18s ease-out,scale .18s ease-out;display:flex;position:fixed;top:50%;left:50%;overflow:auto;translate:-50% -50%;box-shadow:0 24px 60px -12px #23212e59}.dialog[data-starting-style],.dialog[data-ending-style]{opacity:0;scale:.96}.dialog-title{margin:0;font-size:22px}.dialog-desc{color:var(--muted);margin:-12px 0 0;font-size:15px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-size:15px;font-weight:600}.field-desc{color:var(--muted);font-size:13px}.input{border:1px solid var(--line);width:100%;min-height:48px;font:inherit;background:#fff;border-radius:12px;padding:0 14px;font-size:17px}.input.number{font-family:var(--hand);text-align:center;font-size:28px}.custom-form{flex-direction:column;gap:16px;display:flex}.custom-row{grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;display:grid}.custom-colon{font-family:var(--hand);padding-top:30px;font-size:32px}.error{color:var(--red);margin:0;font-size:15px}.seg{isolation:isolate;background:var(--bg);border-radius:12px;padding:4px;display:flex;position:relative}.seg-indicator{z-index:-1;top:var(--segmented-control-indicator-top);left:var(--segmented-control-indicator-left);width:var(--segmented-control-indicator-width);height:var(--segmented-control-indicator-height);background:#fff;border-radius:9px;transition-property:left,width;transition-duration:.2s;transition-timing-function:cubic-bezier(.2,0,0,1);position:absolute;box-shadow:0 1px 3px #23212e26}.seg-item{min-height:42px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;font-size:15px;font-weight:500}.seg-item[data-checked]{color:var(--text);font-weight:600}.switch-row{justify-content:space-between;align-items:center;gap:16px;font-size:15px;font-weight:600;display:flex}.switch-row small{color:var(--muted);font-size:13px;font-weight:400;display:block}.switch{cursor:pointer;background:#d8d3c6;border:0;border-radius:999px;flex:none;width:52px;height:32px;padding:0;transition:background-color .15s ease-out;position:relative}.switch[data-checked]{background:var(--ink)}.switch-thumb{background:#fff;border-radius:50%;width:26px;height:26px;transition:translate .18s cubic-bezier(.2,0,0,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.switch-thumb[data-checked]{translate:20px}.practice{height:100dvh;padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;gap:12px;display:flex}.practice-top{align-items:center;gap:16px;display:flex}.round-progress{flex:1;grid-template-columns:auto 1fr;align-items:center;gap:12px;max-width:420px;display:grid}.round-label{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.round-track{background:#e7e0cf;border-radius:999px;height:10px;overflow:hidden}.round-fill{height:100%;width:var(--progress-value);background:var(--ink);border-radius:inherit;transition:width .3s cubic-bezier(.2,0,0,1)}.practice-body{flex:1;grid-template-columns:minmax(0,1fr) 340px;gap:16px;min-height:0;display:grid}.workspace{flex-direction:column;gap:8px;min-height:0;display:flex}.task{flex-wrap:wrap;align-items:baseline;gap:16px;margin:0;display:flex}.task-label{color:var(--muted);font-size:17px;font-weight:600}.task-expr{font-family:var(--hand);color:var(--text);font-variant-numeric:tabular-nums;font-size:44px;font-weight:400;line-height:1}.task-hint{color:var(--muted);margin:0;font-size:14px}.paper-area{flex:1;align-items:flex-start;min-height:0;display:flex;position:relative}.paper-wrap{justify-content:center;width:100%;display:flex}.paper{box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:6px;position:relative;overflow:visible}.paper canvas{border-radius:6px;position:absolute;inset:0}.paper-live{touch-action:none;cursor:crosshair}.paper-live[data-tool=eraser]{cursor:cell}.read-chip{z-index:2;border:1.5px solid var(--muted);min-width:22px;height:22px;color:var(--muted);cursor:pointer;background:#fff;border-radius:7px;padding:0 5px;font-family:Be Vietnam Pro,sans-serif;font-size:13px;font-weight:700;line-height:1;position:absolute}.read-chip:after{content:"";position:absolute;inset:-10px}.read-chip[data-mark=ok]{border-color:var(--green);color:var(--green)}.read-chip[data-mark=wrong]{border-color:var(--red);color:var(--red)}.read-chip[data-mark=misplaced]{border-color:var(--amber);color:var(--amber)}.digit-pop{z-index:10;border:1px solid var(--line);background:var(--surface);transform-origin:var(--transform-origin);border-radius:16px;padding:12px;transition:opacity .15s ease-out,scale .15s ease-out;box-shadow:0 16px 40px -10px #23212e4d}.digit-pop[data-starting-style],.digit-pop[data-ending-style]{opacity:0;scale:.95}.digit-pop-title{color:var(--muted);margin:0 0 8px;font-size:14px;font-weight:600}.digit-pad{grid-template-columns:repeat(3,52px);gap:6px;display:grid}.digit-key{border:1px solid var(--line);height:52px;font-family:var(--hand);cursor:pointer;background:#fff;border-radius:10px;font-size:28px}.digit-key[data-current]{background:var(--ink-soft);border-color:var(--ink)}.stamp{border:5px solid var(--red);width:108px;height:108px;font-family:var(--hand);color:var(--red);pointer-events:none;border-radius:50%;place-items:center;font-size:66px;line-height:1;animation:.42s cubic-bezier(.2,.9,.3,1.2) both stamp;display:grid;position:absolute;top:4px;right:6%;rotate:-12deg}@keyframes stamp{0%{opacity:0;scale:1.6}}.tools{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-self:center;align-items:center;gap:8px;padding:6px;display:flex}.tool-group{gap:4px;display:flex}.tool{min-width:72px;height:58px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.tool svg{width:24px;height:24px}.tool[data-pressed]{background:var(--ink-soft);color:var(--ink)}.tool[data-disabled]{opacity:.4}.tool-sep{background:var(--line);align-self:stretch;width:1px;margin:8px 2px}.coach{background:var(--surface);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:14px;min-height:0;padding:18px;display:flex;overflow:auto}.verdict{font-size:22px;font-weight:700;line-height:1.3}.verdict[data-verdict=idle],.verdict[data-verdict=reading]{color:var(--muted);font-size:17px;font-weight:600}.verdict[data-verdict=correct]{color:var(--green)}.verdict[data-verdict=wrong]{color:var(--red)}.verdict[data-verdict=incomplete],.verdict[data-verdict=unreadable]{color:var(--amber)}.bubble{background:var(--ink-soft);border-radius:16px;align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.bubble p{font-family:var(--hand);color:#2e1a66;flex:1;margin:0;font-size:22px;line-height:1.35}.note{color:var(--muted);margin:0;font-size:14px}.hints{background:var(--amber-soft);border-radius:14px;margin:0;padding:12px 14px 12px 34px;font-size:15px}.hints li+li{margin-top:6px}.coach-actions{flex-wrap:wrap;gap:8px;display:flex}.coach-actions .primary{flex:100%;min-height:56px;font-size:18px}.parent-notes{color:var(--muted);font-size:14px}.parent-notes summary{cursor:pointer;min-height:32px;font-weight:600}.parent-notes ul{margin:6px 0 0;padding-left:18px}.sol{background:var(--paper);border:1px solid var(--rule);width:max-content;font-family:var(--hand);border-radius:12px;padding:10px 14px;font-size:26px;line-height:1;display:grid}.sol-cell{place-items:center;width:30px;height:34px;display:grid}.sol-minus{color:var(--muted)}.sol-bar{background:var(--frame);width:3px}.sol-under{border-bottom:3px solid var(--frame)}.sol-q{color:var(--ink)}.summary-sub{color:var(--muted);margin:8px 0 24px}.summary-list{gap:8px;margin:0 0 28px;padding:0;list-style:none;display:grid}.summary-list li{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.summary-expr{font-family:var(--hand);font-size:28px}.summary-badge{border-radius:999px;padding:4px 10px;font-size:14px;font-weight:600}[data-result=first-try] .summary-badge{background:var(--green-soft);color:var(--green)}[data-result=solved] .summary-badge{background:var(--ink-soft);color:var(--ink)}[data-result=skipped] .summary-badge{background:var(--bg);color:var(--muted)}@media (width<=920px),(orientation:portrait){.practice{height:auto;min-height:100dvh}.practice-body{grid-template-columns:1fr}.paper-area{flex:none;height:min(56dvh,88.8889vw - 28.4444px)}.coach{overflow:visible}.coach .verdict{order:-2}.coach-actions{order:-1}.coach-actions .primary{flex:2 200px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.voice-row{justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.secondary.small{min-height:40px;padding:0 14px;font-size:15px}.read-chip[data-unsure]{border-color:var(--amber);background:var(--amber-soft);color:var(--amber);min-width:30px;height:30px;font-size:17px;animation:1.6s ease-in-out infinite nudge}@keyframes nudge{50%{scale:1.12}}.fix-options{gap:8px;margin-bottom:10px;display:flex}.fix-option{border:1.5px solid var(--ink);background:var(--ink-soft);min-height:56px;color:var(--ink);font-family:var(--hand);cursor:pointer;border-radius:12px;flex:1;font-size:32px}.fix-draft{background:var(--paper);border:1px solid var(--rule);min-height:44px;font-family:var(--hand);text-align:center;border-radius:10px;margin-bottom:8px;padding:2px 10px;font-size:32px;line-height:40px;display:block}.digit-key.small{font-family:Be Vietnam Pro,sans-serif;font-size:16px}.digit-key.ok{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.digit-key.ok:disabled{opacity:.4}.fix-remove{width:100%;min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;margin-top:8px;font-size:13px;display:block}.confirm-note{background:var(--amber-soft);border-radius:14px;margin:0;padding:12px 14px;font-size:16px}
