/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--text-xs:.75rem;--text-sm:.875rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--radius-sm:.25rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{color-scheme:light;--text-2xs:.8125rem;--text-xs:.875rem;--text-sm:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--paper:#faf9f5;--paper-raised:#fff;--paper-sunken:#f3f1ea;--ink:#1f1d1a;--ink-soft:#5c574f;--ink-faint:#8a847a;--line:#e3e0d6;--line-strong:#d0ccbf;--accent:#c15f3c;--accent-soft:#f5e8e1;--accent-deep:#9c4a2e;--success:#4a7c59;--success-soft:#e7efe7;--warn:#b4632a;--warn-soft:#f6ebdd;--danger:#a84638;--danger-soft:#f5e6e3;--radius-sm:10px;--radius:16px;--radius-lg:22px;--shadow-card:0 1px 2px #1f1d1a0a,0 4px 16px #1f1d1a0d;--shadow-lift:0 2px 4px #1f1d1a0d,0 10px 28px #1f1d1a14;--font-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Segoe UI",sans-serif;--font-serif:"Songti SC","STSong","Noto Serif SC","Source Han Serif SC",Georgia,"Times New Roman",serif;--font-math:"STIX Two Math","Times New Roman",Georgia,serif;font-family:var(--font-sans);background:var(--paper);color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-size:var(--text-md);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E");line-height:1.6;overflow-x:hidden}button,input,select,textarea{font:inherit}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.student-demo-stage{justify-content:center;align-items:stretch;min-height:100dvh;display:flex}.phone-canvas{background:var(--paper);width:min(100%,430px);height:100dvh;min-height:100dvh;position:relative;overflow:hidden auto}.authenticated-app,.immersive-screen{min-height:inherit}.immersive-screen{flex-direction:column;height:100%;min-height:100dvh;display:flex}.immersive-screen>main,.lesson-content,.mistake-practice-content,.mistakes-content,.photo-note-content,.practice-center-content,.practice-content,.results-content{flex:1;min-height:0;overflow-y:auto}.authenticated-app{flex-direction:column;height:100%;min-height:100dvh;display:flex}@media (min-width:1367px){.authenticated-app,.immersive-screen{min-height:100%}}svg{width:100%;height:100%;display:block}.primary-button,.secondary-button{border-radius:var(--radius-sm);min-height:50px;font-size:var(--text-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:10px;font-weight:650;transition:transform .16s ease-out,box-shadow .16s ease-out,background .16s ease-out,border-color .16s ease-out;display:flex}.primary-button{background:var(--ink);color:var(--paper);box-shadow:0 1px 2px #1f1d1a2e,0 6px 16px #1f1d1a1f}.primary-button:hover{background:#2a2823}.secondary-button{border-color:var(--line-strong);background:var(--paper-raised);color:var(--ink)}.secondary-button:hover{border-color:var(--ink-soft)}.primary-button:active,.secondary-button:active{transform:scale(.98)}.primary-button:disabled,.secondary-button:disabled,button:disabled{cursor:not-allowed}.primary-button:disabled{background:var(--paper-sunken);color:var(--ink-faint);box-shadow:none}.secondary-button:disabled{color:var(--ink-faint)}.eyebrow,.section-label{color:var(--ink-faint);font-size:var(--text-2xs);letter-spacing:.08em;margin:0;font-weight:700}.eyebrow{text-transform:none}.muted{color:var(--ink-soft)}.soft-icon{border-radius:var(--radius-sm);flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;font-weight:700;display:inline-flex}.soft-icon.blue{background:var(--accent-soft);color:var(--accent-deep)}.soft-icon.orange{background:var(--warn-soft);color:var(--warn)}.login-screen{background:var(--paper);color:var(--ink);flex-direction:column;display:flex;position:relative;overflow:hidden}.login-orb{pointer-events:none;border-radius:999px;position:absolute}.login-orb-one{border:1px solid var(--line-strong);opacity:.6;width:240px;height:240px;top:-90px;right:-80px}.login-orb-two{background:var(--accent-soft);opacity:.7;filter:blur(2px);width:180px;height:180px;top:250px;left:-80px}.login-hero{z-index:1;padding:max(46px,env(safe-area-inset-top)) 26px 40px;position:relative}.brand-mark{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper-raised);width:56px;height:56px;box-shadow:var(--shadow-card);color:var(--accent);font-family:var(--font-serif);place-items:center;margin-bottom:22px;font-size:26px;font-weight:700;display:grid;position:relative}.brand-mark i{background:var(--accent);width:24px;height:24px;color:var(--paper);border-radius:8px;place-items:center;font-size:13px;font-style:normal;display:grid;position:absolute;bottom:-6px;right:-7px}.eyebrow.light{color:var(--accent)}.login-hero h1{font-family:var(--font-serif);font-size:var(--text-3xl);letter-spacing:-.01em;margin:12px 0 14px;font-weight:700;line-height:1.3}.login-hero h1 em{color:var(--accent);font-style:normal}.login-hero>p{max-width:340px;color:var(--ink-soft);font-size:var(--text-md);margin:0;line-height:1.75}.hero-chips{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.hero-chips span{border:1px solid var(--line-strong);color:var(--ink-soft);font-size:var(--text-2xs);border-radius:999px;padding:7px 12px;font-weight:600}.hero-chips span,.login-panel{background:var(--paper-raised)}.login-panel{z-index:2;padding:15px 24px calc(26px + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;color:var(--ink);border:1px solid var(--line);border-bottom:0;flex:1;position:relative;box-shadow:0 -10px 32px #1f1d1a0f}.panel-handle{background:var(--line-strong);border-radius:999px;width:38px;height:4px;margin:0 auto 18px}.login-panel h2{font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:-.01em;margin:0;font-weight:700}.login-panel>p.muted{font-size:var(--text-sm);margin:8px 0 20px}.wechat-login-button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);width:100%;min-height:52px;color:var(--ink);font-size:var(--text-sm);cursor:pointer;justify-content:center;align-items:center;gap:10px;font-weight:700;transition:border-color .16s ease-out,background .16s ease-out,transform .16s ease-out;display:flex;box-shadow:0 1px 2px #1f1d1a0d}.wechat-login-button:hover{background:#f7fbf8;border-color:#76a889}.wechat-login-button:active{transform:scale(.99)}.wechat-login-button:disabled{opacity:.58}.wechat-mark{flex:0 0 25px;width:25px;height:21px;display:inline-block;position:relative}.wechat-mark b,.wechat-mark i{background:#2f9f5b;border-radius:50%;display:block;position:absolute}.wechat-mark i{width:18px;height:16px;top:1px;left:0}.wechat-mark b{border:2px solid var(--paper-raised);width:15px;height:13px;bottom:0;right:0}.wx-login-backdrop{z-index:40;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));overscroll-behavior:contain;background:#1f1d1a7a;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0;overflow:hidden}.wx-login-dialog{width:min(100%,410px);max-height:calc(100dvh - max(24px, env(safe-area-inset-top)) - max(24px, env(safe-area-inset-bottom)));padding:22px 24px calc(22px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 14px 14px;background:var(--paper-raised);text-align:center;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;position:relative;overflow:hidden auto;box-shadow:0 24px 64px #1f1d1a3d}.wx-login-close{z-index:2;background:var(--paper-sunken);width:44px;height:44px;color:var(--ink-soft);cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:24px;line-height:1;display:grid;position:absolute;top:12px;right:12px}.wx-login-brand{background:#f2f8f4;border:1px solid #cfe0d5;border-radius:50%;place-items:center;width:48px;height:48px;margin:0 auto 12px;display:grid}.wx-login-dialog .eyebrow{color:#2f7f4f}.wx-login-dialog h2{font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:-.01em;margin:7px 44px 8px;line-height:1.35}.wx-login-help{max-width:320px;color:var(--ink-soft);font-size:var(--text-sm);margin:0 auto 14px;line-height:1.6}.wx-qr-frame{aspect-ratio:1;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;place-items:center;width:min(68vw,260px,38dvh);margin:0 auto;padding:10px;display:grid;position:relative;overflow:hidden}.wx-qr-frame img{object-fit:contain;width:100%;height:100%;display:block}.wx-qr-placeholder{border-radius:var(--radius-sm);background:linear-gradient(100deg,var(--paper-sunken) 20%,#fff 40%,var(--paper-sunken) 60%);background-size:220% 100%;width:72%;height:72%;animation:wx-qr-loading 1.4s linear infinite}.wx-scan-line{background:#2f9f5bb8;height:2px;animation:wx-scan-line 2.2s ease-in-out infinite;position:absolute;top:12px;left:12px;right:12px;box-shadow:0 2px 8px #2f9f5b4d}.wx-login-status{min-height:24px;color:var(--ink-soft);font-size:var(--text-xs);margin:12px 0 0;line-height:1.5}.wx-login-retry{width:100%;margin-top:8px}.wx-login-security{color:var(--ink-faint);font-size:var(--text-2xs);margin:8px 0 0;line-height:1.5}@keyframes wx-qr-loading{to{background-position:-120% 0}}@keyframes wx-scan-line{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:.85;transform:translateY(calc(min(68vw,260px,38dvh) - 26px))}}@media (min-width:720px){.wx-login-backdrop{align-items:center}.wx-login-dialog{border-radius:var(--radius-lg)}}@media (max-height:620px){.wx-login-dialog{padding-top:16px}.wx-login-brand{display:none}.wx-login-help{margin-bottom:10px}}@media (prefers-reduced-motion:reduce){.wx-qr-placeholder,.wx-scan-line{animation:none}}.invite-form label{color:var(--ink-soft);font-size:var(--text-xs);margin-bottom:8px;font-weight:650;display:block}.input-row{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);height:54px;transition:border-color .16s,box-shadow .16s;display:flex;overflow:hidden}.input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-row input{min-width:0;color:var(--ink);font-size:var(--text-md);background:0 0;border:0;outline:0;flex:1;padding:0 15px}.input-row input::placeholder{color:var(--ink-faint)}.input-row button{border:0;border-left:1px solid var(--line);background:var(--paper-sunken);min-width:76px;color:var(--accent-deep);font-size:var(--text-sm);font-weight:700}.input-row button:disabled,.login-divider{color:var(--ink-faint)}.login-divider{font-size:var(--text-2xs);align-items:center;gap:12px;margin:16px 0;display:flex}.login-divider:after,.login-divider:before{background:var(--line);content:"";flex:1;height:1px}.demo-login-button{width:100%}.demo-login-button svg{width:19px;height:19px}.inline-error,.login-error{color:var(--danger);font-size:var(--text-xs);margin:10px 2px 0;line-height:1.5}.privacy-note{color:var(--ink-faint);font-size:var(--text-2xs);text-align:center;margin:16px 4px 0;line-height:1.6}.subject-chinese{--subject-color:#a4633a;--subject-soft:#f5eae1;--subject-deep:#7c4a28}.subject-english{--subject-color:#6b5ca5;--subject-soft:#ece9f4;--subject-deep:#4e4179}.subject-math{--subject-color:#3e5f8a;--subject-soft:#e5ebf2;--subject-deep:#2c4766}.subject-physics{--subject-color:#4a7c82;--subject-soft:#e5efef;--subject-deep:#355a5e}.subject-chemistry{--subject-color:#4f7a5c;--subject-soft:#e7efe8;--subject-deep:#395a44}.subject-biology{--subject-color:#5e7a48;--subject-soft:#ebf0e4;--subject-deep:#455a34}.subject-picker-screen{min-height:inherit;background:var(--paper)}.subject-picker-header{z-index:5;min-height:64px;padding:max(12px,env(safe-area-inset-top)) 20px 10px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf9f5eb;align-items:center;gap:12px;display:flex;position:sticky;top:0}.mini-brand{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);width:38px;height:38px;color:var(--accent);font-family:var(--font-serif);place-items:center;font-size:19px;font-weight:700;display:grid}.subject-picker-header>div:nth-child(2){flex-direction:column;flex:1;gap:2px;display:flex}.subject-picker-header>div:nth-child(2) span{color:var(--accent);font-size:var(--text-2xs);letter-spacing:.1em;font-weight:700}.subject-picker-header>div:nth-child(2) strong{font-size:var(--text-md);font-weight:700}.subject-picker-header>button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);min-height:38px;color:var(--ink-soft);font-size:var(--text-2xs);padding:0 13px;font-weight:650}.subject-picker-content{padding:8px 18px calc(28px + env(safe-area-inset-bottom))}.subject-picker-hero{padding:18px 4px 20px}.subject-picker-hero h1{font-family:var(--font-serif);font-size:var(--text-3xl);letter-spacing:-.01em;margin:4px 0 10px;font-weight:700}.subject-picker-hero p{color:var(--ink-soft);font-size:var(--text-sm);margin:0;line-height:1.65}.subject-group{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-card);margin-bottom:14px;padding:17px}.subject-group-heading{justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:14px;display:flex}.subject-group-heading>div{flex:1}.subject-group-heading span{color:var(--accent);font-size:var(--text-2xs);letter-spacing:.08em;font-weight:700}.subject-group-heading h2{font-family:var(--font-serif);font-size:var(--text-lg);margin:4px 0 0;font-weight:700}.subject-group-heading p{width:130px;color:var(--ink-faint);font-size:var(--text-2xs);text-align:right;margin:0;line-height:1.5}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.subject-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);text-align:left;cursor:pointer;align-items:center;gap:10px;min-width:0;min-height:88px;padding:12px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}.subject-card:hover{border-color:var(--subject-color);box-shadow:var(--shadow-card)}.subject-card:active{transform:scale(.98)}.subject-card-icon{border-radius:var(--radius-sm);background:var(--subject-soft);width:42px;height:42px;color:var(--subject-deep);font-size:var(--text-md);flex:0 0 42px;place-items:center;font-weight:700;display:grid}.subject-card-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.subject-card-copy strong{font-size:var(--text-md);font-weight:650}.subject-card-copy small{color:var(--ink-faint);font-size:var(--text-2xs);line-height:1.4}.subject-card>b{color:var(--subject-color);font-size:var(--text-lg);font-weight:500}.subject-picker-note{color:var(--ink-faint);font-size:var(--text-2xs);text-align:center;margin:18px 8px 0;line-height:1.6}.main-header{padding:max(18px,env(safe-area-inset-top)) 20px 12px;border-bottom:1px solid var(--line);background:#faf9f5f0;justify-content:space-between;align-items:center;display:flex}.header-kicker{color:var(--accent);font-size:var(--text-2xs);letter-spacing:.1em;margin-bottom:4px;font-weight:700;display:block}.main-header h1{font-family:var(--font-serif);font-size:var(--text-xl);letter-spacing:-.01em;margin:0;font-weight:700}.header-progress,.subject-switch{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper-raised);min-width:56px;height:56px;box-shadow:var(--shadow-card);justify-content:center;align-items:center;display:flex}.header-progress{flex-direction:column;width:56px}.header-progress strong{color:var(--accent-deep);font-size:var(--text-md);font-weight:700}.header-progress span{color:var(--ink-faint);font-size:var(--text-2xs)}.subject-switch{cursor:pointer;gap:7px;padding:0 11px}.subject-switch>span{background:var(--subject-soft);width:28px;height:28px;color:var(--subject-deep);font-size:var(--text-2xs);border-radius:8px;place-items:center;font-weight:700;display:grid}.subject-switch strong{font-size:var(--text-xs);font-weight:650}.subject-switch small{color:var(--subject-color);font-size:var(--text-2xs);font-weight:650}.main-content{min-height:0;padding:6px 18px calc(24px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.screen-stack{flex-direction:column;gap:16px;display:flex}.bottom-nav{z-index:20;width:100%;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;flex:none;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:relative;box-shadow:0 -6px 20px #1f1d1a0d}.bottom-nav button{border-radius:var(--radius-sm);min-width:0;min-height:54px;color:var(--ink-faint);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding-inline:3px;font-weight:600;display:flex;position:relative}.bottom-nav button.active{color:var(--accent-deep);font-weight:700}.bottom-nav button.active:before{background:var(--accent);content:"";border-radius:0 0 3px 3px;width:22px;height:3px;position:absolute;top:0}.nav-icon{width:22px;height:22px}.chapter-tree,.course-cover,.daily-focus-card,.profile-actions-card,.profile-hero,.review-card,.settings-card,.stats-grid,.week-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-card)}.math-home-heading{justify-content:space-between;align-items:center;padding:2px 3px 0;display:flex}.math-home-heading h2{font-family:var(--font-serif);font-size:var(--text-xl);margin:0;font-weight:700}.math-home-heading>span{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-deep);font-size:var(--text-2xs);padding:6px 10px;font-weight:700}.learning-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.learning-module-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);min-width:0;min-height:200px;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;padding:18px;transition:box-shadow .16s,transform .16s;display:flex;position:relative;overflow:hidden}.learning-module-card:active{transform:scale(.99)}.module-number{color:var(--ink-faint);font-size:var(--text-2xs);letter-spacing:.08em;font-weight:700}.module-icon{border-radius:var(--radius-sm);background:var(--paper-sunken);width:44px;height:44px;color:var(--ink);place-items:center;margin-top:14px;font-size:20px;font-weight:700;display:grid}.course-module .module-icon{background:var(--accent-soft);color:var(--accent-deep)}.practice-module .module-icon{background:var(--warn-soft);color:var(--warn)}.learning-module-card h2{font-family:var(--font-serif);font-size:var(--text-lg);letter-spacing:-.01em;margin:13px 0 6px;font-weight:700}.learning-module-card>p{color:var(--ink-soft);font-size:var(--text-2xs);margin:0;line-height:1.55}.module-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.module-tags span{background:var(--paper-sunken);color:var(--ink-soft);font-size:var(--text-2xs);border-radius:7px;padding:5px 8px;font-weight:600}.learning-module-card>b{z-index:1;color:var(--accent-deep);font-size:var(--text-sm);margin-top:auto;padding-top:14px;font-weight:650;position:relative}.language-hero,.language-module-grid,.language-principle,.preview-chapters-card,.profile-subject-note,.subject-home-banner{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-card)}.subject-home-banner{background:linear-gradient(145deg,var(--paper-raised),var(--subject-soft));align-items:center;gap:15px;padding:18px;display:flex;overflow:hidden}.subject-home-banner>div{border-radius:var(--radius);background:var(--subject-color);width:56px;height:56px;color:var(--paper);flex:0 0 56px;place-items:center;display:grid}.subject-home-banner>div span{font-size:var(--text-lg);font-weight:700}.subject-home-banner h2{font-family:var(--font-serif);font-size:var(--text-xl);margin:3px 0 4px;font-weight:700}.subject-home-banner p{color:var(--ink-soft);font-size:var(--text-xs);margin:0;line-height:1.55}.subject-home-banner>section{flex:1;min-width:0}.preview-chapters-card{overflow:hidden}.preview-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px;display:flex}.preview-heading h3{font-size:var(--text-md);margin:3px 0 0;font-weight:700}.preview-heading em{background:var(--paper-sunken);color:var(--ink-faint);font-size:var(--text-2xs);border-radius:8px;padding:5px 9px;font-style:normal;font-weight:650}.preview-chapter-row{border-bottom:1px solid var(--line);grid-template-columns:36px 1fr auto;align-items:center;gap:10px;min-height:60px;padding:10px 15px;display:grid}.preview-chapter-row:last-child{border-bottom:0}.preview-chapter-row>span{color:var(--subject-color,var(--accent));font-size:var(--text-xs);font-weight:700}.preview-chapter-row>strong{font-size:var(--text-sm);font-weight:650}.preview-chapter-row>small{color:var(--ink-faint);font-size:var(--text-2xs)}.science-course-preview .preview-chapter-row{grid-template-columns:36px 1fr}.science-course-preview .preview-chapter-row small{grid-column:2;margin-top:-14px}.language-hero{background:linear-gradient(145deg,var(--paper-raised),var(--subject-soft));gap:15px;padding:20px 18px;display:flex;position:relative;overflow:hidden}.language-hero-icon{z-index:1;border-radius:var(--radius);background:var(--subject-color);width:56px;height:56px;color:var(--paper);font-size:var(--text-md);flex:0 0 56px;place-items:center;font-weight:700;display:grid;position:relative}.language-hero>div{z-index:1;flex:1;min-width:0;position:relative}.language-hero h2{font-family:var(--font-serif);font-size:var(--text-lg);margin:4px 0 7px;font-weight:700;line-height:1.4}.language-hero p{color:var(--ink-soft);font-size:var(--text-xs);margin:0;line-height:1.65}.language-principle{border-color:var(--subject-color);align-items:center;gap:12px;display:flex}@supports (color:color-mix(in lab,red,red)){.language-principle{border-color:color-mix(in srgb,var(--subject-color) 20%,var(--paper-raised))}}.language-principle{background:var(--subject-soft);padding:14px}.language-principle span{border-radius:var(--radius-sm);background:var(--subject-color);color:var(--paper);font-size:var(--text-2xs);flex:none;padding:7px 10px;font-weight:700}.language-principle p{color:var(--subject-deep);font-size:var(--text-xs);margin:0;line-height:1.55}.language-module-grid{background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.language-module-grid article{background:var(--paper-raised);flex-direction:column;gap:7px;min-height:112px;padding:15px;display:flex;position:relative}.language-module-grid article>span{color:var(--subject-color);font-size:var(--text-2xs);font-weight:700}.language-module-grid h3{font-size:var(--text-sm);margin:0 0 4px;font-weight:700}.language-module-grid p{color:var(--ink-soft);font-size:var(--text-2xs);margin:0;line-height:1.5}.language-module-grid em{background:var(--subject-soft);color:var(--subject-color);font-size:var(--text-2xs);border-radius:7px;padding:4px 7px;font-style:normal;font-weight:650;position:absolute;top:12px;right:12px}.language-module-grid article>b{color:var(--subject-color);font-size:var(--text-md)}.profile-subject-note{background:linear-gradient(145deg,var(--paper-raised),var(--subject-soft));align-items:center;gap:12px;padding:14px;display:flex}.profile-subject-note>span{border-radius:var(--radius-sm);background:var(--subject-color);width:44px;height:44px;color:var(--paper);font-size:var(--text-sm);place-items:center;font-weight:700;display:grid}.profile-subject-note p{color:var(--ink-faint);font-size:var(--text-2xs);flex-direction:column;margin:0;display:flex}.profile-subject-note strong{color:var(--ink);font-size:var(--text-md);margin-top:2px;font-weight:700}.profile-subject-note small{color:var(--ink-soft);font-size:var(--text-2xs);margin-top:3px}.daily-focus-card{color:var(--ink);background:var(--paper-sunken);padding:22px;position:relative;overflow:hidden}.card-heading-row,.focus-topline,.progress-meta{justify-content:space-between;align-items:center;display:flex}.subject-pill,.time-pill{z-index:1;font-size:var(--text-2xs);border-radius:999px;padding:6px 10px;font-weight:650;position:relative}.subject-pill{background:var(--accent);color:var(--paper)}.time-pill{background:var(--paper-raised);color:var(--ink-soft);border:1px solid var(--line)}.daily-focus-card .section-label{color:var(--ink-faint);margin-top:22px}.daily-focus-card h2{z-index:1;font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:-.01em;margin:6px 0 8px;font-weight:700;position:relative}.focus-copy{z-index:1;max-width:320px;color:var(--ink-soft);font-size:var(--text-sm);margin:0;line-height:1.65;position:relative}.linear-progress{background:var(--line);border-radius:999px;height:5px;overflow:hidden}.lesson-progress i,.linear-progress i{border-radius:inherit;background:var(--accent);height:100%;transition:width .26s;display:block}.daily-focus-card .linear-progress{z-index:1;background:var(--line-strong);margin-top:18px;position:relative}.progress-meta{z-index:1;color:var(--ink-soft);font-size:var(--text-2xs);margin-top:8px;position:relative}.progress-meta strong{color:var(--ink)}.daily-focus-card .primary-button{z-index:1;background:var(--ink);width:100%;min-height:50px;color:var(--paper);justify-content:space-between;margin-top:18px;padding:0 18px;position:relative}.review-card,.week-card{padding:18px}.review-card.review-due{border-color:var(--warn);background:var(--warn-soft)}.heading-with-icon{align-items:center;gap:12px;min-width:0;display:flex}.card-heading-row h3{font-size:var(--text-md);margin:3px 0 0;font-weight:700}.mastered-pill{background:var(--success-soft);color:var(--success);font-size:var(--text-2xs);border-radius:999px;padding:6px 9px;font-weight:700}.review-card>p{color:var(--ink-soft);font-size:var(--text-xs);margin:13px 0 0;line-height:1.6}.review-start-button{border-radius:var(--radius-sm);background:var(--accent);width:100%;min-height:44px;color:var(--paper);font-size:var(--text-sm);cursor:pointer;border:0;margin-top:12px;font-weight:650}.due-list{flex-direction:column;gap:9px;margin-top:14px;display:flex}.due-item{border:1px solid var(--warn);border-radius:var(--radius);background:var(--paper-raised);align-items:center;gap:10px;padding:12px;display:flex}.due-item>div{flex:1;min-width:0}.due-item span,.due-item strong{display:block}.due-item span{color:var(--warn);font-size:var(--text-2xs);font-weight:700}.due-item strong{font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-weight:650;overflow:hidden}.due-item button{border-radius:var(--radius-sm);background:var(--accent);min-height:38px;color:var(--paper);font-size:var(--text-2xs);cursor:pointer;border:0;flex:none;padding:0 13px;font-weight:700}.mastered-row{color:var(--success);font-size:var(--text-xs);align-items:center;gap:7px;margin-top:12px;font-weight:650;display:flex}.mastered-row svg{width:16px;height:16px}.streak-number{color:var(--accent-deep);align-items:baseline;display:flex}.streak-number strong{font-size:var(--text-2xl);font-weight:700}.streak-number span{font-size:var(--text-2xs);margin-left:3px;font-weight:650}.week-dots{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:18px;display:grid}.week-dots div{flex-direction:column;align-items:center;gap:6px;display:flex}.week-dots div span{border:1.5px solid var(--line-strong);width:32px;height:32px;color:var(--ink-soft);font-size:var(--text-2xs);border-radius:50%;place-items:center;font-weight:700;display:grid}.week-dots div.done span{border-color:var(--success);background:var(--success);color:var(--paper)}.week-dots div.current span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep);box-shadow:0 0 0 3px var(--accent-soft)}.week-dots div.current small{color:var(--accent-deep);font-weight:700}.week-dots small{color:var(--ink-faint);font-size:var(--text-2xs)}.mistake-shortcut{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);min-height:72px;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:12px 14px;display:flex}.mistake-shortcut>span:nth-child(2),.profile-actions-card button>span:nth-child(2){flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.mistake-shortcut strong,.profile-actions-card strong{font-size:var(--text-md);font-weight:650}.mistake-shortcut small,.profile-actions-card small{color:var(--ink-soft);font-size:var(--text-xs)}.mistake-shortcut b,.profile-actions-card b{color:var(--ink-faint);font-size:22px;font-weight:400}.course-cover{align-items:center;gap:18px;padding:18px;display:flex}.book-art{border:1px solid var(--line-strong);background:var(--ink);width:94px;height:126px;color:var(--paper);border-radius:6px 14px 14px 6px;flex-direction:column;flex:0 0 94px;justify-content:space-between;padding:18px 12px 14px 18px;display:flex;position:relative;overflow:hidden;box-shadow:-4px 6px 16px #1f1d1a2e}.book-art:before{content:"";background:#faf9f533;width:1px;position:absolute;inset:0 auto 0 7px}.book-art span{font-family:var(--font-serif);letter-spacing:.04em;font-size:24px;font-weight:700}.book-art small{color:#faf9f5b3;font-size:var(--text-2xs)}.course-cover h2{font-family:var(--font-serif);font-size:var(--text-lg);margin:4px 0 7px;font-weight:700;line-height:1.4}.course-cover p{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.chapter-heading{justify-content:space-between;align-items:end;padding:8px 3px 0;display:flex}.chapter-heading span{color:var(--accent);font-size:var(--text-2xs);font-weight:700}.chapter-heading h3{font-family:var(--font-serif);font-size:var(--text-lg);margin:3px 0 0;font-weight:700}.chapter-heading>strong{color:var(--accent-deep);font-size:var(--text-sm);font-weight:650}.chapter-tree{overflow:hidden}.chapter-row{border:0;border-bottom:1px solid var(--line);background:var(--paper-raised);text-align:left;align-items:center;width:100%;min-height:76px;padding:10px 14px 10px 0;display:flex;position:relative}.chapter-row:last-child{border-bottom:0}.chapter-row.active{background:var(--accent-soft);cursor:pointer}.chapter-row:disabled{opacity:1}.chapter-row.animation{background:var(--success-soft);cursor:pointer}.chapter-row.animation .tree-line i{border-color:var(--success);background:var(--success)}.chapter-row.animation .chapter-number,.chapter-row.animation .chapter-state{color:var(--success)}.tree-line{flex:0 0 42px;place-items:center;width:42px;height:76px;display:grid;position:relative}.tree-line i{z-index:2;border:2px solid var(--line-strong);background:var(--paper-raised);width:22px;height:22px;color:var(--paper);border-radius:50%;place-items:center;font-size:9px;font-style:normal;display:grid;position:relative}.chapter-row.active .tree-line i{border-color:var(--accent);background:var(--accent)}.tree-line b{z-index:1;background:var(--line);width:2px;position:absolute;top:50%;bottom:-50%;left:50%;transform:translate(-50%)}.chapter-number{width:40px;color:var(--ink-faint);font-size:var(--text-xs);font-weight:700}.chapter-row.active .chapter-number{color:var(--accent-deep)}.chapter-copy{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.chapter-copy strong{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.chapter-copy small,.chapter-state{color:var(--ink-faint);font-size:var(--text-2xs)}.chapter-state{min-width:34px;text-align:right;font-weight:650}.chapter-row.active .chapter-state{color:var(--accent-deep)}.preview-note{border-radius:var(--radius);background:var(--paper-sunken);color:var(--ink-soft);font-size:var(--text-xs);padding:13px 15px;line-height:1.6}.profile-hero{align-items:center;gap:15px;padding:18px;display:flex}.avatar{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--accent-soft);width:62px;height:62px;color:var(--accent-deep);font-family:var(--font-serif);flex:0 0 62px;place-items:center;font-size:24px;font-weight:700;display:grid;position:relative}.avatar i{border:3px solid var(--paper-raised);background:var(--success);border-radius:50%;width:14px;height:14px;position:absolute;bottom:-2px;right:-2px}.profile-hero h2{font-family:var(--font-serif);font-size:var(--text-xl);margin:3px 0;font-weight:700}.profile-hero p{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.stats-grid{background:var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:hidden}.stats-grid>div{background:var(--paper-raised);flex-direction:column;justify-content:space-between;min-height:100px;padding:16px;display:flex;position:relative;overflow:hidden}.stats-grid span{color:var(--ink-soft);font-size:var(--text-2xs)}.stats-grid strong{font-size:var(--text-2xl);letter-spacing:-.01em;font-weight:700}.stats-grid strong small{color:var(--ink-faint);font-size:var(--text-xs);font-weight:500}.stats-grid i{opacity:.08;border:9px solid;border-radius:50%;width:52px;height:52px;position:absolute;bottom:-14px;right:-12px}.blue-line{color:var(--accent)}.orange-line{color:var(--warn)}.profile-actions-card{overflow:hidden}.profile-actions-card button{border:0;border-bottom:1px solid var(--line);background:var(--paper-raised);text-align:left;cursor:pointer;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px 14px;display:flex}.profile-actions-card button:last-child{border-bottom:0}.demo-tip{border:1px solid var(--warn);border-radius:var(--radius);background:var(--warn-soft);gap:10px;padding:14px;display:flex}.demo-tip p{margin:0;line-height:1.6}.demo-tip p,.demo-tip strong{color:var(--warn);font-size:var(--text-xs)}.settings-card{overflow:hidden}.settings-card button{border:0;border-bottom:1px solid var(--line);background:var(--paper-raised);width:100%;min-height:54px;color:var(--ink-soft);font-size:var(--text-sm);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:0 15px;font-weight:600;display:flex}.settings-card button:last-child{border-bottom:0}.settings-card button span{color:var(--ink-faint);font-size:18px}.settings-card button small{color:var(--ink-faint);font-size:var(--text-2xs);margin-left:auto}.settings-card button.logout-action{color:var(--danger)}.settings-card button.logout-action span{color:inherit}.local-data-note{color:var(--ink-faint);font-size:var(--text-2xs);text-align:center;margin:0}.immersive-screen{background:var(--paper)}.immersive-header{z-index:15;min-height:68px;padding:max(8px,env(safe-area-inset-top)) 14px 8px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf9f5f0;flex:none;grid-template-columns:44px 1fr 44px;align-items:center;display:grid;position:relative}.immersive-header>div{flex-direction:column;align-items:center;gap:3px;min-width:0;display:flex}.immersive-header>div span{font-size:var(--text-sm);font-weight:700}.immersive-header>div strong{color:var(--ink-faint);font-size:var(--text-2xs);font-weight:600}.icon-button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-raised);width:40px;height:40px;color:var(--ink-soft);cursor:pointer;place-items:center;display:grid}.icon-button svg{width:20px;height:20px}.header-spacer{width:40px}.lesson-progress{background:var(--line);flex:none;height:3px}.lesson-dots{justify-content:center;gap:6px;padding:15px 20px 2px;display:flex}.lesson-dots i{background:var(--line-strong);border-radius:99px;width:18px;height:4px}.lesson-dots i.done{background:var(--ink-faint)}.lesson-dots i.current{background:var(--accent);width:28px}.lesson-content{padding:14px 18px 132px}.lesson-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-lift);padding:24px 20px 22px}.intro-animation-screen{flex-direction:column;display:flex}.intro-animation-frame{border:none;flex:1;width:100%;display:block}.lesson-number{background:var(--accent-soft);color:var(--accent-deep);font-size:var(--text-2xs);letter-spacing:.08em;border-radius:8px;padding:6px 10px;font-weight:700;display:inline-flex}.lesson-card>h1{font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:-.01em;margin:13px 0 15px;font-weight:700;line-height:1.3}.lesson-goal{border-radius:var(--radius);background:var(--paper-sunken);align-items:flex-start;gap:11px;margin-bottom:21px;padding:12px;display:flex}.lesson-goal span{background:var(--paper-raised);color:var(--ink-soft);font-size:var(--text-2xs);border-radius:7px;flex:none;padding:4px 7px;font-weight:700}.lesson-goal p{color:var(--ink);font-size:var(--text-xs);margin:1px 0 0;font-weight:600;line-height:1.55}.lesson-body{flex-direction:column;gap:13px;display:flex}.lesson-body p{color:var(--ink);font-size:var(--text-md);margin:0;line-height:1.85}.formula-stack{flex-direction:column;gap:9px;margin:20px 0;display:flex}.formula-box{border:1px solid var(--line-strong);background:var(--paper-sunken);color:var(--ink);font-family:var(--font-math);font-size:var(--text-md);text-align:center;white-space:nowrap;padding:15px 13px;font-weight:600;line-height:1.4;overflow-x:auto}.formula-box,.insight-box{border-radius:var(--radius)}.insight-box{gap:12px;margin-top:14px;padding:14px;display:flex}.insight-box>span{border-radius:var(--radius-sm);flex:0 0 30px;place-items:center;width:30px;height:30px;font-weight:700;display:grid}.insight-box strong{font-size:var(--text-xs);margin-bottom:5px;display:block}.insight-box p{font-size:var(--text-sm);margin:0;line-height:1.65}.pitfall-box{border:1px solid var(--warn);background:var(--warn-soft);color:var(--warn)}.pitfall-box>span{background:var(--paper-raised);color:var(--warn)}.pitfall-box p{color:var(--ink-soft)}.takeaway-box{border:1px solid var(--success);background:var(--success-soft);color:var(--success)}.takeaway-box>span{background:var(--paper-raised);color:var(--success)}.takeaway-box p{color:var(--ink-soft)}.summary-grid{gap:10px;margin-top:20px;display:grid}.summary-grid section{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);padding:13px}.summary-grid h3{color:var(--accent-deep);font-size:var(--text-sm);margin:0 0 8px;font-weight:700}.summary-grid p{color:var(--ink-soft);font-size:var(--text-xs);margin:4px 0;line-height:1.6}.help-trigger{border:1px dashed var(--accent);border-radius:var(--radius);background:var(--accent-soft);text-align:left;cursor:pointer;align-items:center;gap:12px;width:100%;min-height:68px;margin-top:14px;padding:11px 14px;display:flex}.help-trigger>span{border-radius:var(--radius-sm);background:var(--accent);width:38px;height:38px;color:var(--paper);place-items:center;font-weight:700;display:grid}.help-trigger>div{flex-direction:column;flex:1;gap:3px;display:flex}.help-trigger strong{font-size:var(--text-sm);font-weight:650}.help-trigger small{color:var(--ink-soft);font-size:var(--text-2xs)}.help-trigger b{color:var(--ink-faint);font-size:22px;font-weight:400}.lesson-actions{z-index:12;width:min(100%,430px);padding:12px 17px calc(13px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf9f5f5;grid-template-columns:.8fr 1.7fr;gap:10px;display:grid;position:fixed;bottom:0;right:50%;transform:translate(50%);box-shadow:0 -8px 24px #1f1d1a0f}.lesson-actions .primary-button,.lesson-actions .secondary-button{min-height:50px}.sheet-backdrop{z-index:40;background:#1f1d1a80;align-items:flex-end;display:flex;position:absolute;inset:0}.help-sheet{width:100%;padding:14px 19px calc(20px + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--paper-raised);border:1px solid var(--line);border-bottom:0;box-shadow:0 -14px 40px #1f1d1a2e}.help-heading,.help-heading>div{align-items:center;display:flex}.help-heading{justify-content:space-between}.help-heading>div{gap:11px}.help-heading h2{font-family:var(--font-serif);font-size:var(--text-lg);margin:3px 0 0;font-weight:700}.help-chips{gap:7px;margin-top:17px;display:flex}.help-chips button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);min-height:40px;color:var(--ink-soft);font-size:var(--text-2xs);cursor:pointer;flex:1;padding:0 6px;font-weight:650}.help-chips button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.help-answer{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-sunken);gap:11px;min-height:105px;margin:12px 0;padding:15px;display:flex}.help-answer>span{width:22px;height:22px;color:var(--accent);flex:0 0 22px}.help-answer p{color:var(--ink);font-size:var(--text-sm);margin:0;line-height:1.75}.help-sheet>.primary-button{width:100%}.mistake-practice-content,.practice-center-content{padding:16px 18px calc(30px + env(safe-area-inset-bottom))}.practice-center-hero{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-sunken);color:var(--ink);padding:22px 19px;position:relative;overflow:hidden}.practice-center-hero .section-label{color:var(--accent)}.practice-center-hero h1{z-index:1;font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:-.01em;margin:8px 0;font-weight:700;position:relative}.practice-center-hero p{z-index:1;max-width:320px;color:var(--ink-soft);font-size:var(--text-xs);margin:0;line-height:1.65;position:relative}.practice-path-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.practice-path-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);min-height:80px;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.practice-path-card:disabled{opacity:1;cursor:default}.practice-path-card.featured{border-color:var(--success);background:var(--success-soft)}.practice-path-card.featured:disabled{border-color:var(--line);background:var(--paper-sunken)}.path-index{color:var(--ink-faint);font-size:var(--text-2xs);font-weight:700}.path-icon{border-radius:var(--radius-sm);width:44px;height:44px;font-size:var(--text-sm);place-items:center;font-weight:700;display:grid}.path-icon.amber{background:var(--warn-soft);color:var(--warn)}.path-icon.blue,.path-icon.violet{background:var(--accent-soft);color:var(--accent-deep)}.path-icon.coral{background:var(--danger-soft);color:var(--danger)}.path-icon.green{background:var(--success-soft);color:var(--success)}.path-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.path-copy strong{font-size:var(--text-sm);font-weight:650}.path-copy small{color:var(--ink-soft);font-size:var(--text-2xs);line-height:1.4}.practice-path-card>em{color:var(--accent-deep);font-size:var(--text-2xs);white-space:nowrap;font-style:normal;font-weight:700}.practice-path-card.preview>em,.practice-path-card:disabled>em{color:var(--ink-faint)}.practice-path-card.featured:not(:disabled)>em{color:var(--success)}.practice-empty-guide{border:1px solid var(--warn);border-radius:var(--radius);background:var(--warn-soft);margin-top:14px;padding:14px}.practice-empty-guide>span{color:var(--warn);font-size:var(--text-2xs);font-weight:700}.practice-empty-guide p{color:var(--ink-soft);font-size:var(--text-xs);margin:6px 0 10px;line-height:1.6}.practice-empty-guide button{color:var(--accent-deep);font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.practice-header{grid-template-columns:42px 1fr auto}.text-button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);min-height:38px;color:var(--ink-soft);font-size:var(--text-2xs);cursor:pointer;padding:0 11px;font-weight:650}.mistakes-content,.practice-content,.results-content{padding:16px 18px calc(28px + env(safe-area-inset-bottom))}.practice-intro{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-sunken);align-items:center;gap:12px;margin-bottom:15px;padding:14px;display:flex}.practice-intro h1{font-family:var(--font-serif);font-size:var(--text-lg);margin:0 0 4px;font-weight:700}.practice-intro p{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.question-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);min-width:0;box-shadow:var(--shadow-card);margin:0 0 15px;padding:19px 17px}.question-card legend{align-items:center;gap:9px;padding:0 3px;display:flex}.question-card legend span{border-radius:var(--radius-sm);background:var(--accent);width:30px;height:30px;color:var(--paper);font-size:var(--text-2xs);place-items:center;font-weight:700;display:grid}.question-card legend small{color:var(--accent-deep);font-size:var(--text-2xs);font-weight:700}.question-card h2{font-size:var(--text-md);margin:9px 0 15px;font-weight:650;line-height:1.65}.option-list{flex-direction:column;gap:10px;display:flex}.option-list label{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper-raised);cursor:pointer;align-items:center;gap:11px;min-height:56px;padding:10px 12px;transition:border-color .15s,background .15s,transform .15s;display:flex}.option-list label:active{transform:scale(.99)}.option-list label.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.option-list input{opacity:0;width:1px;height:1px;position:absolute}.option-letter{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);width:32px;height:32px;color:var(--ink-soft);font-size:var(--text-xs);flex:0 0 32px;place-items:center;font-weight:700;display:grid}.selected .option-letter{border-color:var(--accent);background:var(--accent);color:var(--paper)}.option-text{min-width:0;color:var(--ink);font-size:var(--text-sm);flex:1;line-height:1.5}.selection-check{width:18px;height:18px;color:var(--accent);opacity:0;flex:0 0 18px}.selected .selection-check{opacity:1}.practice-submit-card{flex-direction:column;align-items:center;gap:10px;padding:10px 0 8px;display:flex}.practice-submit-card p{color:var(--ink-faint);font-size:var(--text-2xs);margin:0}.practice-submit-card .primary-button{width:100%}.practice-submit-card .inline-error{text-align:center;margin:0}.score-hero{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-sunken);color:var(--ink);align-items:center;gap:17px;padding:20px;display:flex;overflow:hidden}.score-ring{background:conic-gradient(var(--accent) var(--score),var(--line-strong) 0);border-radius:50%;flex:0 0 96px;place-items:center;width:96px;height:96px;display:grid}.score-ring:before{background:var(--paper-raised);content:"";border-radius:50%;grid-area:1/1;width:76px;height:76px}.score-ring>div{grid-area:1/1;align-items:baseline;display:flex;position:relative}.score-ring strong{font-size:var(--text-3xl);font-weight:700}.score-ring span{color:var(--ink-soft);font-size:var(--text-2xs)}.score-hero .section-label{color:var(--accent)}.score-hero h1{font-family:var(--font-serif);font-size:var(--text-lg);margin:5px 0 6px;font-weight:700;line-height:1.4}.score-hero p{color:var(--ink-soft);font-size:var(--text-xs);margin:0;line-height:1.6}.result-overview{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);grid-template-columns:repeat(3,1fr);margin:13px 0 20px;display:grid;overflow:hidden}.result-overview div{border-right:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;min-height:76px;display:flex}.result-overview div:last-child{border-right:0}.result-overview strong{color:var(--accent-deep);font-size:var(--text-xl);font-weight:700}.result-overview span{color:var(--ink-soft);font-size:var(--text-2xs);margin-top:3px}.result-list-heading{justify-content:space-between;align-items:baseline;margin:0 2px 10px;display:flex}.result-list-heading span{font-size:var(--text-lg);font-weight:700;font-family:var(--font-serif)}.result-list-heading small{color:var(--ink-faint);font-size:var(--text-2xs)}.result-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-card);margin-bottom:14px;padding:17px;overflow:hidden}.result-card.correct{border-top:3px solid var(--success)}.result-card.wrong{border-top:3px solid var(--danger)}.result-card-title{gap:10px;display:flex}.result-card-title>span{border-radius:var(--radius-sm);background:var(--success-soft);width:30px;height:30px;color:var(--success);flex:0 0 30px;place-items:center;font-weight:700;display:grid}.result-card.wrong .result-card-title>span{background:var(--danger-soft);color:var(--danger)}.result-card-title small{color:var(--ink-faint);font-size:var(--text-2xs)}.result-card-title h2{font-size:var(--text-sm);margin:5px 0 13px;font-weight:650;line-height:1.6}.answer-comparison,.wrong-answer-row{gap:8px;display:grid}.answer-comparison p,.wrong-answer-row p{border-radius:var(--radius-sm);background:var(--paper-sunken);align-items:flex-start;gap:8px;margin:0;padding:10px;display:flex}.answer-comparison span,.wrong-answer-row span{color:var(--ink-faint);font-size:var(--text-2xs);flex:0 0 54px}.answer-comparison strong,.wrong-answer-row strong{font-size:var(--text-xs);font-weight:650;line-height:1.5}.explanation-box{border-radius:var(--radius);background:var(--paper-sunken);margin-top:12px;padding:13px}.explanation-box>strong{color:var(--accent-deep);font-size:var(--text-xs);font-weight:700}.explanation-box p{color:var(--ink-soft);font-size:var(--text-xs);margin:6px 0 0;line-height:1.65}.explanation-box small{border-top:1px solid var(--line-strong);color:var(--warn);font-size:var(--text-2xs);margin-top:8px;padding-top:8px;line-height:1.55;display:block}.variant-box{border:1px solid var(--warn);border-radius:var(--radius);background:var(--warn-soft);margin-top:13px;padding:13px}.variant-heading{justify-content:space-between;display:flex}.variant-heading span{font-weight:700}.variant-heading em,.variant-heading span{color:var(--warn);font-size:var(--text-2xs)}.variant-heading em{background:var(--paper-raised);border-radius:7px;padding:4px 7px;font-style:normal;font-weight:650}.variant-box h3{font-size:var(--text-sm);margin:9px 0;font-weight:650;line-height:1.55}.variant-box>div:nth-of-type(2){border-radius:var(--radius-sm);background:var(--paper-raised);padding:10px}.variant-box>div:nth-of-type(2) p{color:var(--ink-soft);font-size:var(--text-xs);gap:8px;margin:3px 0;line-height:1.55;display:flex}.variant-box>div:nth-of-type(2) p span{color:var(--warn);flex:0 0 28px;font-weight:700}.variant-box button,.wrongbook-variant button{border:1px solid var(--warn);border-radius:var(--radius-sm);background:var(--paper-raised);width:100%;min-height:42px;color:var(--warn);font-size:var(--text-xs);cursor:pointer;margin-top:10px;font-weight:700}.variant-box button:disabled,.wrongbook-variant button:disabled{border-color:var(--success);background:var(--success-soft);color:var(--success)}.result-actions{grid-template-columns:1.3fr 1fr;gap:10px;margin-top:6px;display:grid}.result-home-link{min-height:42px;color:var(--ink-soft);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:0;margin:8px auto 0;font-weight:650;display:block}.locked-variant-box h3{color:var(--ink-soft);font-weight:600}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:560px;padding:30px;display:flex}.empty-illustration{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--accent-soft);place-items:center;width:110px;height:110px;margin-bottom:22px;display:grid}.empty-illustration span{border-radius:var(--radius);background:var(--accent);width:52px;height:52px;color:var(--paper);place-items:center;font-size:24px;font-weight:700;display:grid}.empty-state h1{font-family:var(--font-serif);font-size:var(--text-2xl);margin:0 0 8px;font-weight:700}.empty-state p{max-width:300px;color:var(--ink-soft);font-size:var(--text-sm);margin:0 0 23px;line-height:1.7}.empty-state .primary-button{width:100%}.mistake-summary{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);grid-template-columns:repeat(2,1fr);gap:1px;margin-bottom:14px;display:grid;overflow:hidden}.mistake-summary div{background:var(--paper-raised);flex-direction:column;justify-content:center;align-items:center;min-height:80px;display:flex}.mistake-summary span{color:var(--ink-soft);font-size:var(--text-2xs)}.mistake-summary strong{color:var(--accent-deep);font-size:var(--text-2xl);margin-top:4px;font-weight:700}.mistake-summary p{background:var(--paper-sunken);color:var(--ink-soft);font-size:var(--text-2xs);text-align:center;grid-column:1/-1;margin:0;padding:12px}.mistake-practice-entry{border-radius:var(--radius-lg);background:var(--success);width:100%;min-height:80px;color:var(--paper);box-shadow:var(--shadow-card);text-align:left;cursor:pointer;border:0;align-items:center;gap:12px;margin-bottom:14px;padding:14px 15px;display:flex}.mistake-practice-entry>span{border-radius:var(--radius-sm);width:44px;height:44px;font-size:var(--text-2xs);background:#faf9f529;flex:0 0 44px;place-items:center;font-weight:700;display:grid}.mistake-practice-entry>div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.mistake-practice-entry strong{font-size:var(--text-md);font-weight:650}.mistake-practice-entry small{color:#faf9f5d9;font-size:var(--text-2xs)}.mistake-practice-entry>b{font-size:var(--text-lg);font-weight:500}.wrongbook-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-card);margin-bottom:14px;padding:17px}.wrongbook-top{justify-content:space-between;align-items:center;display:flex}.wrongbook-top span{font-weight:700}.wrongbook-top em,.wrongbook-top span{color:var(--danger);font-size:var(--text-2xs)}.wrongbook-top em{background:var(--danger-soft);border-radius:8px;padding:4px 8px;font-style:normal;font-weight:650}.wrongbook-top em.mastered{background:var(--success-soft);color:var(--success)}.wrongbook-card>h2{font-size:var(--text-sm);margin:11px 0 14px;font-weight:650;line-height:1.6}.wrongbook-variant{border:1px dashed var(--warn);border-radius:var(--radius);background:var(--warn-soft);margin-top:12px;padding:13px}.wrongbook-variant>span{color:var(--warn);font-size:var(--text-2xs);font-weight:700}.wrongbook-variant h3{font-size:var(--text-xs);margin:8px 0;font-weight:650;line-height:1.55}.wrongbook-variant p{color:var(--ink-soft);font-size:var(--text-2xs);margin:4px 0;line-height:1.55}.mistake-practice-intro{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-sunken);align-items:center;gap:12px;margin-bottom:15px;padding:14px;display:flex}.mistake-practice-intro.due{border-color:var(--warn);background:var(--warn-soft)}.mistake-practice-intro>span{border-radius:var(--radius-sm);background:var(--accent);width:44px;height:44px;color:var(--paper);font-size:var(--text-xs);flex:0 0 44px;place-items:center;font-weight:700;display:grid}.mistake-practice-intro.due>span{background:var(--warn)}.mistake-practice-intro h1{font-family:var(--font-serif);font-size:var(--text-md);margin:3px 0 0;font-weight:700;line-height:1.4}.mistake-retry-card{margin-bottom:13px}.option-list label.retry-wrong{border-color:var(--danger);background:var(--danger-soft)}.option-list label.retry-wrong .option-letter{border-color:var(--danger);background:var(--danger);color:var(--paper)}.option-list label.retry-wrong .selection-check{opacity:0}.option-list label.retry-correct{border-color:var(--success);background:var(--success-soft)}.option-list label.retry-correct .option-letter{border-color:var(--success);background:var(--success);color:var(--paper)}.option-list label.retry-correct .selection-check{color:var(--success);opacity:1}.retry-feedback{border-radius:var(--radius);margin-top:13px;padding:12px}.retry-feedback strong{font-size:var(--text-xs);font-weight:700}.retry-feedback p{font-size:var(--text-2xs);margin:5px 0 0;line-height:1.55}.retry-feedback.wrong{border:1px solid var(--danger);background:var(--danger-soft);color:var(--danger)}.retry-feedback.correct{border:1px solid var(--success);background:var(--success-soft);color:var(--success)}.retry-reveal .explanation-box{border:1px solid var(--line-strong)}.revealed-variant{border:1px solid var(--warn);border-radius:var(--radius);background:var(--warn-soft);margin-top:12px;padding:13px}.revealed-variant>div{justify-content:space-between;align-items:center;display:flex}.revealed-variant>div span{color:var(--warn);font-size:var(--text-2xs);font-weight:700}.revealed-variant>div em{background:var(--paper-raised);color:var(--warn);font-size:var(--text-2xs);border-radius:7px;padding:4px 7px;font-style:normal;font-weight:650}.revealed-variant h3{font-size:var(--text-sm);margin:9px 0;font-weight:650;line-height:1.55}.revealed-variant p{color:var(--ink-soft);font-size:var(--text-2xs);margin:4px 0;line-height:1.55}.mistake-practice-actions{flex-direction:column;align-items:center;gap:9px;display:flex}.mistake-practice-actions .primary-button{width:100%}.mistake-practice-actions p{color:var(--ink-faint);font-size:var(--text-2xs);margin:0}.practice-complete-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:600px;padding:30px 22px;display:flex}.practice-complete-card>span{border:1px solid var(--success);border-radius:var(--radius-lg);background:var(--success-soft);width:92px;height:92px;color:var(--success);place-items:center;margin-bottom:22px;display:grid}.practice-complete-card>span svg{width:40px;height:40px}.practice-complete-card h1{font-family:var(--font-serif);font-size:var(--text-2xl);margin:7px 0 9px;font-weight:700}.practice-complete-card>p:not(.section-label){max-width:300px;color:var(--ink-soft);font-size:var(--text-sm);margin:0 0 24px;line-height:1.7}.practice-complete-card .primary-button{width:100%}.empty-state.compact{min-height:600px}.loading-screen{background:var(--paper);flex-direction:column;justify-content:center;align-items:center;display:flex}.loading-logo{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper-raised);width:62px;height:62px;color:var(--accent);box-shadow:var(--shadow-card);font-family:var(--font-serif);place-items:center;font-size:26px;font-weight:700;display:grid}.loading-line{background:var(--line-strong);border-radius:99px;width:90px;height:4px;margin:24px 0 10px;overflow:hidden}.loading-line:after{border-radius:inherit;background:var(--accent);content:"";width:45%;height:100%;animation:loading-slide 1s ease-in-out infinite alternate;display:block}.loading-screen p{color:var(--ink-soft);font-size:var(--text-xs)}.demo-toast{z-index:70;right:50%;bottom:calc(90px + env(safe-area-inset-bottom));border-radius:var(--radius-sm);background:var(--ink);max-width:min(330px,100vw - 34px);color:var(--paper);box-shadow:var(--shadow-lift);font-size:var(--text-xs);text-align:center;padding:12px 16px;font-weight:600;animation:toast-in .18s ease-out;position:fixed;transform:translate(50%)}@keyframes loading-slide{0%{transform:translate(0)}to{transform:translate(122%)}}@keyframes toast-in{0%{opacity:0;transform:translate(50%,8px)}to{opacity:1;transform:translate(50%)}}.notes-center-screen{gap:14px}.confirmed-note-hero>div,.detail-section-heading,.note-editor-heading,.note-section-heading,.note-variant-card>div,.notes-heading,.original-photo-heading{justify-content:space-between;align-items:center;display:flex}.notes-heading{padding:4px 3px 0}.notes-heading h2{font-family:var(--font-serif);font-size:var(--text-2xl);margin:5px 0 0;font-weight:700}.notes-heading>strong{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-deep);font-size:var(--text-2xs);padding:6px 10px;font-weight:700}.note-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.note-entry-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);min-height:150px;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;padding:16px;display:flex;position:relative}.note-entry-card>span{border-radius:var(--radius-sm);background:var(--accent-soft);width:44px;height:44px;color:var(--accent-deep);place-items:center;display:grid}.note-entry-card>span svg{width:21px;height:21px}.note-entry-card>div{flex-direction:column;gap:5px;margin-top:14px;display:flex}.note-entry-card strong{font-size:var(--text-md);font-weight:650}.note-entry-card small{color:var(--ink-faint);font-size:var(--text-2xs)}.note-entry-card>b{color:var(--accent-deep);font-size:var(--text-lg);font-weight:500;position:absolute;bottom:14px;right:16px}.note-entry-card>em{background:var(--paper-sunken);color:var(--ink-faint);font-size:var(--text-2xs);border-radius:7px;padding:4px 8px;font-style:normal;font-weight:650;position:absolute;top:14px;right:13px}.note-entry-card.chat-entry{background:var(--paper-sunken);box-shadow:none}.note-entry-card.chat-entry>span{background:var(--paper-raised);color:var(--ink-faint)}.note-list-section{flex-direction:column;gap:10px;display:flex}.note-section-heading{padding:1px 3px}.note-section-heading h3{font-size:var(--text-md);margin:0;font-weight:700}.note-section-heading span{color:var(--ink-faint);font-size:var(--text-2xs);font-weight:650}.note-card-list{flex-direction:column;gap:9px;display:flex}.note-list-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);width:100%;min-height:88px;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;grid-template-columns:44px minmax(0,1fr) 14px;align-items:center;gap:12px;padding:12px;display:grid}.note-list-card>span{border-radius:var(--radius-sm);background:var(--accent-soft);width:44px;height:44px;color:var(--accent-deep);place-items:center;display:grid}.note-list-card>span svg{width:20px;height:20px}.note-list-card>div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.note-list-card em,.note-list-card small{color:var(--ink-faint);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;font-style:normal;overflow:hidden}.note-list-card strong{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.note-list-card .local-demo-note-badge{background:var(--warn-soft);color:var(--warn);font-size:var(--text-2xs);border-radius:7px;align-self:flex-start;padding:3px 7px;font-weight:650;line-height:1.3}.note-list-card>b{color:var(--ink-faint);font-size:var(--text-md);font-weight:500}.note-list-card.draft{border-color:var(--warn);background:var(--warn-soft)}.note-list-card.draft>span{background:var(--paper-raised);color:var(--warn)}.chapter-note-group{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-sunken);overflow:hidden}.chapter-note-title{grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:14px;display:grid}.chapter-note-title>span{border-radius:var(--radius-sm);background:var(--accent);width:40px;height:40px;color:var(--paper);font-size:var(--text-2xs);place-items:center;font-weight:700;display:grid}.chapter-note-title>div{flex-direction:column;gap:3px;display:flex}.chapter-note-title strong{font-size:var(--text-sm);font-weight:650}.chapter-note-title small{color:var(--ink-faint);font-size:var(--text-2xs)}.chapter-note-title>em{background:var(--paper-raised);width:24px;height:24px;color:var(--accent-deep);font-size:var(--text-2xs);border-radius:8px;place-items:center;font-style:normal;font-weight:700;display:grid}.chapter-note-group .note-card-list{padding:0 9px 9px}.chapter-note-group .note-list-card{box-shadow:none}.notes-empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--paper-raised);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:250px;padding:24px;display:flex}.notes-empty-state>span{border-radius:var(--radius);background:var(--accent-soft);width:52px;height:52px;color:var(--accent-deep);place-items:center;display:grid}.notes-empty-state>span svg{width:25px;height:25px}.notes-empty-state h3{font-size:var(--text-md);margin:15px 0 7px;font-weight:700}.notes-empty-state p{max-width:260px;color:var(--ink-soft);font-size:var(--text-xs);margin:0 0 18px;line-height:1.65}.notes-empty-state .primary-button{width:100%;min-height:48px;font-size:var(--text-sm)}.photo-note-screen{background:var(--paper)}.photo-note-content{flex-direction:column;gap:14px;padding:14px 18px 30px;display:flex}.confirmed-note-hero,.note-detail-section,.note-editor-card,.note-step-card,.note-variant-card,.original-photo-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-card)}.note-detail-section,.note-editor-card,.note-step-card{padding:17px}.note-step-heading{align-items:center;gap:11px;margin-bottom:15px;display:flex}.note-step-heading>span{border-radius:var(--radius-sm);background:var(--accent);width:32px;height:32px;color:var(--paper);font-size:var(--text-xs);flex:0 0 32px;place-items:center;font-weight:700;display:grid}.note-step-heading h2,.note-step-heading p{margin:0}.note-step-heading h2{font-size:var(--text-md);font-weight:700}.note-step-heading p{color:var(--ink-faint);font-size:var(--text-2xs);margin-top:3px}.note-kind-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.note-kind-grid button{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;min-height:116px;padding:13px;display:flex}.note-kind-grid button>span{border-radius:var(--radius-sm);background:var(--paper-sunken);width:34px;height:34px;color:var(--ink-soft);place-items:center;display:grid}.note-kind-grid button>span svg{width:17px;height:17px}.note-kind-grid button strong{font-size:var(--text-sm);margin-top:10px;font-weight:650}.note-kind-grid button small{color:var(--ink-faint);font-size:var(--text-2xs);margin-top:3px;line-height:1.45}.note-kind-grid button.active{border-color:var(--accent);background:var(--accent-soft)}.note-kind-grid button.active>span{background:var(--accent);color:var(--paper)}.visually-hidden-file{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.photo-upload-zone{border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--paper-sunken);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:230px;display:flex}.photo-upload-zone>span{border-radius:var(--radius);background:var(--accent-soft);width:54px;height:54px;color:var(--accent-deep);place-items:center;display:grid}.photo-upload-zone>span svg{width:26px;height:26px}.photo-upload-zone>strong{font-size:var(--text-md);margin-top:12px;font-weight:650}.photo-upload-zone>div{gap:9px;margin-top:15px;display:flex}.photo-upload-zone>div button{border-radius:var(--radius-sm);background:var(--accent);min-height:40px;color:var(--paper);font-size:var(--text-xs);cursor:pointer;border:0;padding:0 14px;font-weight:700}.photo-upload-zone>div button+button{border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink)}.photo-upload-zone .demo-photo-link{color:var(--ink-soft);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:0;margin-top:15px;padding:3px;font-weight:650}.original-photo-card{overflow:hidden}.original-photo-heading{gap:10px;min-height:58px;padding:11px 13px}.original-photo-heading>span{border-radius:var(--radius-sm);background:var(--accent-soft);width:38px;height:38px;color:var(--accent-deep);flex:0 0 38px;place-items:center;display:grid}.original-photo-heading>span svg{width:18px;height:18px}.original-photo-heading>div{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.original-photo-heading strong{font-size:var(--text-sm);font-weight:650}.original-photo-heading small{color:var(--ink-faint);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.original-photo-heading>em{background:var(--success-soft);color:var(--success);font-size:var(--text-2xs);border-radius:7px;padding:4px 8px;font-style:normal;font-weight:650}.original-photo-card img{object-fit:contain;border-block:1px solid var(--line);background:var(--paper-sunken);width:100%;max-height:430px;display:block}.original-photo-card>button{background:var(--paper-raised);width:100%;min-height:42px;color:var(--ink-soft);font-size:var(--text-xs);cursor:pointer;border:0;font-weight:650}.original-photo-card.compact img{max-height:280px}.photo-loading{border-top:1px solid var(--line);min-height:160px;color:var(--ink-faint);font-size:var(--text-2xs);place-items:center;display:grid}.draft-confirm-note,.note-boundary-strip{border-radius:var(--radius-sm);background:var(--success-soft);color:var(--success);align-items:flex-start;gap:9px;margin-top:11px;padding:11px;display:flex}.draft-confirm-note>span,.note-boundary-strip span{font-size:var(--text-xs);font-weight:700}.draft-confirm-note p,.note-boundary-strip p{font-size:var(--text-xs);margin:0;line-height:1.55}.generate-note-button{width:100%}.generate-note-button svg{width:20px;height:20px}.draft-note-content{padding-bottom:calc(30px + env(safe-area-inset-bottom))}.note-editor-heading{margin-bottom:15px}.note-editor-heading>div{align-items:center;gap:9px;display:flex}.note-editor-heading>div>span{border-radius:var(--radius-sm);background:var(--accent-soft);width:32px;height:32px;color:var(--accent-deep);font-size:var(--text-2xs);place-items:center;font-weight:700;display:grid}.note-editor-heading svg{width:16px;height:16px}.note-editor-heading h2{font-size:var(--text-md);margin:0;font-weight:700}.note-editor-heading>em{background:var(--accent-soft);color:var(--accent-deep);font-size:var(--text-2xs);border-radius:7px;padding:4px 8px;font-style:normal;font-weight:650}.note-field{flex-direction:column;gap:7px;margin-top:13px;display:flex}.note-field>span{color:var(--ink);font-size:var(--text-xs);font-weight:700}.note-field>span small{color:var(--ink-faint);font-size:var(--text-2xs);font-weight:500}.approach-editor input,.approach-editor textarea,.note-field input,.note-field select,.note-field textarea,.variant-editor input,.variant-editor textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);width:100%;color:var(--ink);font:inherit;font-size:var(--text-sm);resize:vertical;padding:11px;line-height:1.6}.approach-editor input:focus,.approach-editor textarea:focus,.note-field input:focus,.note-field select:focus,.note-field textarea:focus,.variant-editor input:focus,.variant-editor textarea:focus{border-color:var(--accent);outline:3px solid var(--accent-soft)}.note-archive-fields{grid-template-columns:1fr 1fr;gap:9px;display:grid}.note-archive-value strong{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-sunken);min-height:44px;color:var(--ink-soft);font-size:var(--text-xs);padding:11px;font-weight:650;line-height:1.55}.solution-editor-card{border-color:var(--line-strong);background:var(--paper-raised)}.solution-editor-card .note-editor-heading>em{background:var(--warn-soft);color:var(--warn)}.approach-editor{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);margin-top:13px;padding:11px}.approach-editor>strong{color:var(--accent-deep);font-size:var(--text-2xs);margin-bottom:8px;font-weight:700;display:block}.approach-editor textarea,.variant-editor input,.variant-editor textarea{margin-top:8px}.variant-editor{border:1px solid var(--warn);border-radius:var(--radius);background:var(--warn-soft);margin-top:14px;padding:12px}.variant-editor>div{justify-content:space-between;align-items:center;display:flex}.variant-editor strong{font-size:var(--text-xs);font-weight:700}.variant-editor em{color:var(--warn);font-size:var(--text-2xs);font-style:normal;font-weight:650}.variant-editor p{color:var(--ink-soft);font-size:var(--text-2xs);margin:9px 0 0}.draft-confirm-note{background:var(--accent-soft);color:var(--accent-deep);margin-top:0}.draft-confirm-note>span{width:18px;height:18px}.note-draft-actions{grid-template-columns:.8fr 1.45fr;gap:10px;display:grid}.note-draft-actions button{min-height:50px;font-size:var(--text-sm)}.discard-note-button{color:var(--danger);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:0;align-self:center;padding:8px;font-weight:650}.confirmed-note-hero{background:linear-gradient(145deg,var(--paper-raised),var(--success-soft));padding:18px}.confirmed-note-hero>div>span{border-radius:var(--radius-sm);background:var(--success);width:38px;height:38px;color:var(--paper);place-items:center;display:grid}.confirmed-note-hero>div>span svg{width:20px;height:20px}.confirmed-note-hero>div>em{background:var(--success-soft);color:var(--success);font-size:var(--text-2xs);border-radius:8px;padding:5px 9px;font-style:normal;font-weight:650}.confirmed-note-hero>small{color:var(--ink-faint);font-size:var(--text-2xs);margin-top:16px;display:block}.confirmed-note-hero h1{font-family:var(--font-serif);font-size:var(--text-2xl);margin:7px 0 8px;font-weight:700}.confirmed-note-hero>p{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.local-demo-note-disclosure{border:1px solid var(--warn);border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);padding:13px 14px}.local-demo-note-disclosure strong{font-size:var(--text-xs);font-weight:700}.local-demo-note-disclosure p{color:var(--ink-soft);font-size:var(--text-xs);margin:6px 0 0;line-height:1.6}.detail-section-heading{margin-bottom:11px}.detail-section-heading span{color:var(--accent-deep);font-size:var(--text-sm);font-weight:700}.note-detail-section li,.note-detail-section>p,.note-detail-section>strong{color:var(--ink);font-size:var(--text-sm);line-height:1.75}.note-detail-section>p,.note-detail-section>strong{margin:0}.note-detail-section>strong{margin-bottom:9px;display:block}.note-detail-section ol,.note-detail-section ul{margin:0;padding-left:20px}.note-detail-section li+li{margin-top:6px}.note-detail-section.warm{border-color:var(--warn);background:var(--warn-soft)}.note-detail-section.warm .detail-section-heading span{color:var(--warn)}.note-detail-section.blue{border-color:var(--line-strong);background:var(--paper-sunken)}.approach-detail-section article{border-top:1px solid var(--line);gap:11px;padding:11px 0;display:flex}.approach-detail-section article>span{border-radius:var(--radius-sm);background:var(--accent-soft);width:28px;height:28px;color:var(--accent-deep);font-size:var(--text-2xs);flex:0 0 28px;place-items:center;font-weight:700;display:grid}.approach-detail-section article strong{font-size:var(--text-sm);font-weight:650}.approach-detail-section article p{color:var(--ink-soft);font-size:var(--text-xs);margin:4px 0 0;line-height:1.65}.note-variant-card{border-color:var(--warn);background:var(--warn-soft);padding:17px}.note-variant-card>div span{color:var(--warn);font-size:var(--text-xs);font-weight:700}.note-variant-card>div em{background:var(--paper-raised);color:var(--warn);font-size:var(--text-2xs);border-radius:7px;padding:4px 8px;font-style:normal;font-weight:650}.note-variant-card h2{color:var(--ink);font-size:var(--text-sm);margin:13px 0 9px;font-weight:650;line-height:1.6}.note-variant-card p{color:var(--ink-soft);font-size:var(--text-xs);margin:0}.note-variant-card small{border-top:1px solid var(--warn);color:var(--ink-soft);font-size:var(--text-2xs);margin-top:13px;padding-top:11px;font-weight:650;display:block}.module-section-heading{justify-content:space-between;align-items:center;padding:2px 4px 0;display:flex}.module-section-heading h3{font-family:var(--font-serif);font-size:var(--text-md);margin:0;font-weight:700}.module-section-heading span{background:var(--subject-soft);color:var(--subject-color);font-size:var(--text-2xs);border-radius:7px;padding:5px 8px;font-weight:650}.practice-flow-strip{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-sunken);justify-content:space-between;align-items:center;min-height:68px;padding:12px 15px;display:flex}.practice-flow-strip span{border-radius:var(--radius-sm);background:var(--accent-soft);width:46px;height:36px;color:var(--accent-deep);font-size:var(--text-2xs);place-items:center;font-weight:700;display:grid}.practice-flow-strip b{color:var(--ink-faint);font-size:var(--text-xs);font-weight:500}.practice-status-strip{border:1px solid var(--line);border-radius:var(--radius);background:var(--line);grid-template-columns:repeat(3,1fr);margin-top:13px;display:grid;overflow:hidden}.practice-status-strip>div{background:var(--paper-raised);flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:74px;display:flex}.practice-status-strip span{color:var(--ink-soft);font-size:var(--text-2xs)}.practice-status-strip strong{color:var(--accent-deep);font-size:var(--text-md);font-weight:700}.recent-learning-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);width:100%;min-height:94px;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;grid-template-columns:1fr auto;align-items:center;gap:7px 14px;padding:15px 16px;display:grid}.recent-learning-card>span{color:var(--accent);font-size:var(--text-2xs);grid-column:1/-1;font-weight:700}.recent-learning-card>div{flex-direction:column;gap:3px;display:flex}.recent-learning-card strong{font-size:var(--text-md);font-weight:650}.recent-learning-card small{color:var(--ink-faint);font-size:var(--text-2xs)}.recent-learning-card>i{background:var(--line);border-radius:999px;grid-column:1;height:4px;overflow:hidden}.recent-learning-card>i b{border-radius:inherit;background:var(--accent);height:100%;display:block}.recent-learning-card>em{color:var(--accent-deep);font-size:var(--text-2xs);grid-area:2/2/span 2;font-style:normal;font-weight:700}.language-daily-card{border:1px solid var(--subject-color);justify-content:space-between;align-items:center;min-height:110px;display:flex}@supports (color:color-mix(in lab,red,red)){.language-daily-card{border:1px solid color-mix(in srgb,var(--subject-color) 18%,var(--paper-raised))}}.language-daily-card{border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--paper-raised),var(--subject-soft));box-shadow:var(--shadow-card);padding:17px 18px}.language-daily-card>div{flex-direction:column;display:flex}.language-daily-card span{color:var(--subject-color);font-size:var(--text-2xs);font-weight:700}.language-daily-card h3{font-family:var(--font-serif);font-size:var(--text-lg);margin:7px 0 4px;font-weight:700}.language-daily-card p{color:var(--ink-soft);font-size:var(--text-2xs);margin:0}.language-daily-card>b{border-radius:var(--radius-sm);background:var(--subject-color);width:40px;height:40px;color:var(--paper);place-items:center;display:grid}.intro-animation-screen .immersive-header{grid-template-columns:44px 1fr 44px}.intro-control-bar{z-index:18;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf9f5f5;flex:none;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid;position:relative}.intro-control-bar button{cursor:pointer;min-height:44px}.control-toggle{border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink-soft);font-size:var(--text-2xs);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-weight:650;display:inline-flex}.control-toggle i{background:var(--line-strong);border-radius:50%;width:8px;height:8px;transition:background .16s}.control-toggle.on{border-color:var(--accent);color:var(--accent-deep);background:var(--accent-soft)}.control-toggle.on i{background:var(--accent)}.control-compose{border:1px dashed var(--line-strong);background:var(--paper-sunken);color:var(--ink-faint);font-size:var(--text-xs);text-align:left;border-radius:999px;padding:0 16px}.control-compose:not(:disabled):active{border-color:var(--accent);color:var(--accent-deep)}.control-compose:disabled{opacity:.55;cursor:not-allowed}.control-skip{color:var(--accent-deep);font-size:var(--text-xs);white-space:nowrap;background:0 0;border:0;padding:0 4px;font-weight:700}.intro-animation-stage{flex:1;min-height:0;display:flex;position:relative}.intro-animation-stage .intro-animation-frame{flex:1}.danmu-layer{inset:0;overflow:hidden}.danmu-layer,.danmu-track{pointer-events:none;position:absolute}.danmu-track{height:150px;bottom:12px;left:0;right:0}.danmu-item{white-space:nowrap;will-change:transform;animation-name:danmu-fly;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;left:100%}.danmu-text{color:var(--paper);font-size:var(--text-xs);background:#1f1d1ac7;border-radius:999px;padding:5px 12px;font-weight:600;display:inline-block;box-shadow:0 2px 8px #1f1d1a2e}.danmu-item.teacher .danmu-text{background:var(--paper-raised);color:var(--accent-deep);border:1px solid var(--accent)}.danmu-sticker{filter:drop-shadow(0 2px 6px #1f1d1a33);width:44px;height:44px;display:block}@keyframes danmu-fly{0%{transform:translate(0)}to{transform:translate(calc(-100vw - 100%))}}.danmu-composer{pointer-events:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);box-shadow:var(--shadow-lift);padding:12px;animation:composer-in .18s ease-out;position:absolute;bottom:10px;left:10px;right:10px}@keyframes composer-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.danmu-composer-tabs{gap:8px;margin-bottom:11px;display:flex}.danmu-composer-tabs button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper-raised);min-height:34px;color:var(--ink-soft);font-size:var(--text-2xs);cursor:pointer;padding:0 13px;font-weight:650}.danmu-composer-tabs button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.danmu-composer-tabs .danmu-close{color:var(--ink-faint);background:0 0;border:0;margin-left:auto;font-size:20px}.danmu-quick-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.danmu-quick-grid button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-sunken);min-height:42px;color:var(--ink);font-size:var(--text-xs);cursor:pointer;font-weight:600}.danmu-quick-grid button:active{background:var(--accent-soft);border-color:var(--accent)}.sticker-picker{max-height:220px;overflow-y:auto}.sticker-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.sticker-cell{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-sunken);cursor:pointer;place-items:center;padding:6px;display:grid}.sticker-cell img{object-fit:contain;border-radius:6px;width:100%;height:100%}.sticker-cell:active{border-color:var(--accent);background:var(--accent-soft)}.sticker-cell.sticker-add{color:var(--ink-faint);border-style:dashed;border-color:var(--line-strong);flex-direction:column}.sticker-cell.sticker-add span{font-size:22px;line-height:1}.sticker-cell.sticker-add small,.sticker-error{font-size:var(--text-2xs)}.sticker-error{color:var(--danger);margin:9px 0 0}.simple-mode .control-compose,.simple-mode .danmu-track{display:none}.simple-mode .learning-module-card{min-height:120px}.simple-mode .chapter-copy small,.simple-mode .learning-module-card>p,.simple-mode .module-tags,.simple-mode .preview-chapter-row>small,.simple-mode .week-dots small{display:none}.simple-mode .screen-stack{gap:20px}.simple-mode .lesson-body p{line-height:2}@media (max-width:370px){.danmu-quick-grid{grid-template-columns:repeat(2,1fr)}.sticker-grid{grid-template-columns:repeat(4,1fr)}.intro-control-bar{gap:8px;padding-left:10px;padding-right:10px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (min-width:601px) and (max-width:1366px){.student-demo-stage{padding:0}.phone-canvas{width:100%;min-height:100dvh}.lesson-actions{width:100%}.lesson-content,.mistake-practice-content,.mistakes-content,.photo-note-content,.practice-center-content,.practice-content,.results-content{max-width:760px;margin:0 auto}.main-content{width:100%;max-width:860px;margin:0 auto}.learning-module-grid,.note-entry-grid,.note-kind-grid,.subject-grid{gap:14px}}@media (min-width:1367px){.student-demo-stage{align-items:flex-start;padding:18px}.phone-canvas{border:1px solid var(--line-strong);scrollbar-width:none;border-radius:32px;height:min(844px,100vh - 36px);min-height:min(844px,100vh - 36px);overflow-y:auto;box-shadow:0 24px 60px #1f1d1a29}.phone-canvas::-webkit-scrollbar{display:none}.login-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.bottom-nav{border-radius:0 0 31px 31px}.lesson-actions{bottom:18px}.sheet-backdrop{border-radius:32px;width:430px;height:min(844px,100vh - 36px);position:fixed;inset:18px calc(50% - 215px) auto;overflow:hidden}.demo-toast{position:fixed}}@media (max-width:370px){.login-hero{padding-left:21px;padding-right:21px}.login-panel{padding-left:20px;padding-right:20px}.hero-chips span:last-child{display:none}.main-content,.subject-picker-content{padding-left:14px;padding-right:14px}.subject-group{padding-left:13px;padding-right:13px}.subject-card{padding-left:9px;padding-right:9px}.subject-card-icon{flex-basis:38px;width:38px;height:38px}.learning-module-card{min-height:190px;padding-left:14px;padding-right:14px}.daily-focus-card{padding:18px}.lesson-card{padding-left:17px;padding-right:17px}.mistake-practice-content,.mistakes-content,.practice-center-content,.practice-content,.results-content{padding-left:14px;padding-right:14px}.score-ring{flex-basis:84px;width:84px;height:84px}.score-ring:before{width:66px;height:66px}}.admin-app{--admin-blue:#2563eb;--admin-blue-dark:#1d4ed8;--admin-orange:#f59e0b;--admin-bg:#f7f9fd;--admin-surface:#fff;--admin-text:#172033;--admin-muted:#66758c;--admin-border:#dfe6f1;background:var(--admin-bg);min-width:0;min-height:100dvh;color:var(--admin-text);grid-template-columns:220px minmax(0,1fr);font-size:14px;display:grid}.admin-app button,.admin-app input,.admin-app select{font:inherit}.admin-app a:focus-visible,.admin-app button:focus-visible,.admin-app input:focus-visible,.admin-app select:focus-visible{outline-offset:2px;outline:3px solid #2563eb3d}.admin-sidebar{z-index:30;color:#dce6f7;background:#172033;flex-direction:column;min-width:0;height:100dvh;padding:24px 15px 18px;display:flex;position:sticky;top:0}.admin-brand{align-items:center;gap:11px;padding:0 9px 24px;display:flex}.admin-brand>span{background:var(--admin-blue);color:#fff;border-radius:11px;flex:0 0 38px;place-items:center;width:38px;height:38px;font-size:17px;font-weight:850;display:grid;box-shadow:0 8px 20px #2563eb4d}.admin-brand div{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-brand strong{color:#fff;letter-spacing:-.01em;font-size:15px}.admin-brand small{color:#8fa1bb;font-size:11px}.admin-nav{flex-direction:column;gap:5px;display:flex}.admin-nav button,.admin-student-link{color:#aebcd0;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:11px;min-height:42px;padding:0 12px;font-size:13px;font-weight:650;text-decoration:none;transition:background .15s,color .15s;display:flex}.admin-nav button:hover,.admin-student-link:hover{color:#fff;background:#ffffff12}.admin-nav button.active{color:#fff;background:#2563eb33;box-shadow:inset 3px 0 #60a5fa}.admin-nav button>span,.admin-student-link>span{flex:0 0 18px;width:18px;height:18px}.admin-student-link{border:1px solid #ffffff17;margin-top:auto}.admin-main-column{min-width:0}.admin-topbar{z-index:20;border-bottom:1px solid var(--admin-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;justify-content:space-between;align-items:center;gap:24px;min-height:76px;padding:12px clamp(18px,2.7vw,34px);display:flex;position:sticky;top:0}.admin-topbar>div:first-child{min-width:0}.admin-topbar>div:first-child>span{color:var(--admin-muted);font-size:11px;display:none}.admin-topbar h1{letter-spacing:-.025em;margin:0;font-size:21px;line-height:1.25}.admin-environment-status{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-topbar-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.admin-environment-status>span{color:#53627a;white-space:nowrap;background:#f8fafc;border:1px solid #dce4ef;border-radius:8px;align-items:center;gap:6px;min-height:30px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.admin-environment-status>span svg{width:14px;height:14px}.admin-environment-status>span.connected{color:#167348;background:#f0fbf5;border-color:#bfe5cf}.admin-environment-status>span.error{color:#b4232d;background:#fff5f5;border-color:#f2c6c6}.admin-environment-status>span.loading svg{animation:admin-pulse 1.3s ease-in-out infinite}.admin-main{width:100%;min-width:0;padding:26px clamp(18px,2.7vw,34px) 44px}.admin-panel-stack{flex-direction:column;gap:20px;min-width:0;display:flex}.admin-surface{border:1px solid var(--admin-border);background:var(--admin-surface);border-radius:14px;min-width:0;box-shadow:0 5px 18px #1e2f4d0b}.admin-button{cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:13px;font-weight:750;line-height:1;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.admin-button:hover:not(:disabled){transform:translateY(-1px)}.admin-button:disabled{cursor:not-allowed;opacity:.55}.admin-button-primary{border-color:var(--admin-blue);background:var(--admin-blue);color:#fff;box-shadow:0 5px 12px #2563eb29}.admin-button-primary:hover:not(:disabled){border-color:var(--admin-blue-dark);background:var(--admin-blue-dark)}.admin-button-secondary{color:#415169;background:#fff;border-color:#d8e0ec}.admin-button-secondary:hover:not(:disabled){background:#f8fafc;border-color:#b8c7dc}.admin-button-danger{color:#fff;background:#d83b47;border-color:#d83b47}.admin-button-compact{min-height:38px;padding-inline:12px}.admin-button-icon{flex:0 0 16px;width:16px;height:16px}.admin-icon-button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;width:40px;min-height:40px;display:grid}.admin-icon-button svg{width:18px;height:18px}.admin-section-heading{justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.admin-preview-header h3,.admin-section-heading h2,.admin-subsection-heading h3{color:var(--admin-text);letter-spacing:-.015em;margin:0;font-size:15px}.admin-section-heading p{color:var(--admin-muted);margin:5px 0 0;font-size:11px}.admin-section-count{color:var(--admin-muted);font-size:11px;font-weight:700}.admin-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-width:0;display:grid}.admin-stat{border:1px solid var(--admin-border);background:#fff;border-radius:13px;align-items:center;gap:13px;min-width:0;padding:16px;display:flex;box-shadow:0 4px 14px #1e2f4d09}.admin-stat-icon{width:40px;height:40px;color:var(--admin-blue);background:#edf3ff;border-radius:11px;flex:0 0 40px;place-items:center;display:grid}.admin-stat:nth-child(3) .admin-stat-icon,.admin-stat:nth-child(4) .admin-stat-icon{color:#bd7007;background:#fff6e5}.admin-stat-icon svg{width:19px;height:19px}.admin-stat>div{grid-template-columns:1fr auto;align-items:baseline;gap:1px 8px;min-width:0;display:grid}.admin-stat span:not(.admin-stat-icon){color:var(--admin-muted);font-size:11px;font-weight:700}.admin-stat strong{color:var(--admin-text);letter-spacing:-.04em;grid-row:span 2;font-size:24px;line-height:1}.admin-stat small{color:#8491a4;white-space:nowrap;font-size:10px}.admin-overview-grid{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:18px;min-width:0;display:grid}.admin-boundary-panel,.admin-invite-section,.admin-production-overview,.admin-users-section{padding:19px}.admin-production-list{border-top:1px solid #edf1f6;margin-top:15px}.admin-production-row{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:16px;min-height:61px;padding:10px 2px;display:flex}.admin-production-row:last-child{border-bottom:0}.admin-production-chapter{flex-direction:column;gap:4px;min-width:0;display:flex}.admin-production-chapter span{color:var(--admin-muted);font-size:10px}.admin-production-chapter strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.admin-production-latest{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.admin-muted-text,.admin-production-latest small{color:#8794a7;font-size:10px}.admin-boundary-panel ul{flex-direction:column;margin:14px 0 0;padding:0;list-style:none;display:flex}.admin-boundary-panel li{border-top:1px solid #edf1f6;align-items:center;gap:10px;min-height:48px;display:flex}.admin-boundary-panel li>span{width:28px;height:28px;color:var(--admin-blue);background:#edf3ff;border-radius:8px;flex:0 0 28px;place-items:center;display:grid}.admin-boundary-panel li:nth-child(2)>span,.admin-boundary-panel li:nth-child(3)>span{color:#ac6607;background:#fff5df}.admin-boundary-panel li svg{width:15px;height:15px}.admin-boundary-panel li strong{font-size:12px}.admin-status-badge{color:#5d6b7f;white-space:nowrap;background:#f7f9fc;border:1px solid #dfe6ef;border-radius:999px;align-items:center;gap:6px;min-height:24px;padding:0 8px;font-size:10px;font-weight:750;line-height:1;display:inline-flex}.admin-status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.admin-status-queued,.admin-status-running{color:#2563eb;background:#eff5ff;border-color:#c9daf8}.admin-status-awaiting_approval{color:#a75f05;background:#fff8e8;border-color:#f1d297}.admin-status-published,.admin-step-succeeded{color:#18754b;background:#effaf4;border-color:#bde3cd}.admin-status-failed,.admin-step-failed{color:#b4232d;background:#fff3f4;border-color:#f1c1c5}.admin-status-cancelled{color:#667085}.admin-empty-row{color:var(--admin-muted);text-align:center;padding:28px 6px;font-size:12px}.admin-production-layout{grid-template-columns:282px minmax(0,1fr);align-items:start;gap:18px;min-width:0;display:grid}.admin-catalog{overflow:hidden}.admin-catalog>.admin-section-heading{padding:18px 17px 14px}.admin-catalog-groups{border-top:1px solid #edf1f6;padding:7px 10px 12px}.admin-subject-group+.admin-subject-group{border-top:1px solid #e7edf5;margin-top:13px;padding-top:13px}.admin-subject-group>h3{color:#34445c;margin:6px 7px 9px;font-size:12px}.admin-textbook-group+.admin-textbook-group{margin-top:12px}.admin-textbook-group>header{flex-direction:column;gap:2px;padding:0 7px 7px;display:flex}.admin-textbook-group>header strong{font-size:11px}.admin-textbook-group>header span{color:#8895a8;font-size:9px}.admin-chapter-list{flex-direction:column;gap:3px;display:flex}.admin-chapter-list>button{color:#526176;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-width:0;min-height:50px;padding:7px 8px;display:grid}.admin-chapter-list>button:hover:not(:disabled){background:#f4f7fc}.admin-chapter-list>button.active{color:#1e4fb6;background:#eef4ff;border-color:#cbdaf7}.admin-chapter-list>button:disabled{cursor:not-allowed;opacity:.64}.admin-chapter-code{color:#607088;background:#eef2f7;border-radius:7px;place-items:center;min-width:34px;height:28px;font-size:10px;font-weight:800;display:grid}.admin-chapter-list>button.active .admin-chapter-code{color:#1d4ed8;background:#dbe8ff}.admin-chapter-name{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.admin-chapter-name strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.admin-chapter-name .admin-status-badge{min-height:18px;padding-inline:6px;font-size:8px}.admin-chapter-arrow{width:15px;height:15px}.admin-chapter-list>button em{color:#7a8799;white-space:nowrap;background:#eef1f5;border-radius:6px;padding:4px 6px;font-size:8px;font-style:normal;font-weight:750}.admin-run-workspace{min-height:550px;overflow:hidden}.admin-run-header{border-bottom:1px solid #e8edf5;justify-content:space-between;align-items:flex-start;gap:20px;min-width:0;padding:19px 20px;display:flex}.admin-run-title{min-width:0}.admin-run-title>small,.admin-run-title>span{color:var(--admin-muted);font-size:10px;display:block}.admin-run-title h2{letter-spacing:-.025em;margin:5px 0 6px;font-size:19px}.admin-run-actions{flex-wrap:wrap;flex:0 480px;justify-content:flex-end;align-items:center;gap:8px;display:flex}.admin-provenance-badge{color:#97600c;white-space:nowrap;background:#fff9ec;border:1px solid #f0d69e;border-radius:8px;align-items:center;gap:6px;min-height:29px;padding:0 9px;font-size:10px;font-weight:750;display:inline-flex}.admin-provenance-badge svg{width:13px;height:13px}.admin-run-detail{flex-direction:column;gap:20px;min-width:0;padding:16px 20px 20px;display:flex}.admin-run-meta{color:#7a879a;justify-content:space-between;align-items:center;gap:12px;font-size:10px;display:flex}.admin-run-meta strong{color:#b4232d}.admin-run-empty{min-height:430px;color:var(--admin-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex}.admin-run-empty>span{width:52px;height:52px;color:var(--admin-blue);background:#edf3ff;border-radius:15px;place-items:center;display:grid}.admin-run-empty>span svg{width:24px;height:24px}.admin-run-empty h3{color:var(--admin-text);margin:14px 0 6px;font-size:15px}.admin-run-empty p{margin:0;font-size:11px}.admin-run-error{color:#a9232d;background:#fff5f5;border:1px solid #f0c7ca;border-radius:11px;align-items:center;gap:12px;margin:18px 20px 0;padding:12px;display:flex}.admin-run-error>span{flex:0 0 20px;width:20px;height:20px}.admin-run-error>div{flex:1;min-width:0}.admin-run-error strong{font-size:12px}.admin-run-error p{margin:3px 0 0;font-size:10px}.admin-run-error .admin-button svg{width:15px;height:15px}.admin-run-loading{gap:12px;padding:20px;display:grid}.admin-run-loading span{background:linear-gradient(90deg,#f0f3f8 25%,#f8fafd 50%,#f0f3f8 75%) 0 0/200% 100%;border-radius:10px;height:54px;animation:admin-shimmer 1.4s linear infinite;display:block}.admin-generation-steps{min-width:0}.admin-subsection-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:11px;display:flex}.admin-subsection-heading span{color:var(--admin-muted);font-size:10px;font-weight:750}.admin-step-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.admin-step-item{background:#fafbfd;border:1px solid #e1e7f0;border-radius:10px;align-items:flex-start;gap:9px;min-width:0;min-height:76px;padding:11px;display:flex}.admin-step-item-running{background:#f2f6ff;border-color:#bcd0f4}.admin-step-item-succeeded{background:#f4fbf7;border-color:#cae5d6}.admin-step-item-failed{background:#fff6f6;border-color:#f0c8ca}.admin-step-status{color:#7b8799;background:#fff;border:1px solid #d8e0ea;border-radius:50%;flex:0 0 25px;place-items:center;width:25px;height:25px;display:grid}.admin-step-status-icon{width:13px;height:13px}.admin-step-running{color:var(--admin-blue);border-color:#a9c4f3}.admin-step-running svg{animation:admin-spin 1s linear infinite}.admin-step-succeeded{color:#18754b}.admin-step-failed{color:#b4232d}.admin-step-item>div{flex-direction:column;gap:5px;min-width:0;display:flex}.admin-step-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.admin-step-item>div>span{color:#768397;font-size:9px;line-height:1.45}.admin-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.admin-preview{background:#fff;border:1px solid #dee5ef;border-radius:12px;min-width:0;overflow:hidden}.admin-preview-header{border-bottom:1px solid #e7ecf3;justify-content:space-between;align-items:flex-end;gap:16px;min-width:0;padding:14px 15px 0;display:flex}.admin-preview-header>div:first-child{flex-direction:column;gap:4px;min-width:100px;padding-bottom:12px;display:flex}.admin-preview-header>div:first-child span{color:var(--admin-muted);font-size:9px}.admin-preview-tabs{scrollbar-width:thin;gap:3px;min-width:0;max-width:100%;display:flex;overflow-x:auto}.admin-preview-tabs button{color:#6c788b;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;min-width:max-content;min-height:40px;padding:0 9px;font-size:10px;font-weight:750;display:inline-flex}.admin-preview-tabs button.active{border-bottom-color:var(--admin-blue);color:var(--admin-blue)}.admin-preview-tabs svg{width:14px;height:14px}.admin-preview-body{background:#fafbfd;min-width:0}.admin-card-preview-layout{grid-template-columns:190px minmax(0,1fr);align-items:start;min-width:0;display:grid}.admin-lesson-card-nav{background:#f6f8fc;border-right:1px solid #e5eaf2;flex-direction:column;gap:4px;min-width:0;padding:10px;display:flex}.admin-lesson-card-nav button{color:#5b687b;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;width:100%;min-height:42px;padding:5px 7px;display:grid}.admin-lesson-card-nav button.active,.admin-lesson-card-nav button:hover{background:#fff;border-color:#cfdbef}.admin-lesson-card-nav button.active{color:var(--admin-blue);box-shadow:0 3px 10px #203a630d}.admin-lesson-card-nav button>span{background:#e9edf4;border-radius:7px;place-items:center;width:24px;height:24px;font-size:9px;font-weight:800;display:grid}.admin-lesson-card-nav button.active>span{background:#e4edff}.admin-lesson-card-nav button strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.admin-lesson-card-detail{background:#fff;min-width:0;padding:20px}.admin-lesson-card-detail>header>span{color:var(--admin-blue);font-size:9px;font-weight:800}.admin-lesson-card-detail h4{letter-spacing:-.025em;margin:6px 0 7px;font-size:18px}.admin-lesson-card-detail>header>p{color:#56667c;margin:0;font-size:11px;line-height:1.6}.admin-card-body-copy{gap:8px;margin-top:18px;display:grid}.admin-card-body-copy p{color:#39495f;margin:0;font-size:11px;line-height:1.72}.admin-formula-list{flex-wrap:wrap;gap:7px;max-width:100%;margin-top:15px;display:flex}.admin-formula-list code{overflow-wrap:anywhere;color:#234f9d;background:#f2f6fd;border:1px solid #d9e4f7;border-radius:7px;max-width:100%;padding:7px 9px;font-size:10px}.admin-card-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:17px 0 0;display:grid}.admin-card-notes>div{background:#f6f9ff;border:1px solid #dce7f7;border-radius:9px;padding:10px}.admin-card-notes>div:last-child{background:#fffaf0;border-color:#f0dfb9}.admin-card-notes dt{color:var(--admin-blue);font-size:9px;font-weight:800}.admin-card-notes>div:last-child dt{color:#a86409}.admin-card-notes dd{color:#47576d;margin:5px 0 0;font-size:10px;line-height:1.55}.admin-question-list{gap:12px;padding:14px;display:grid}.admin-question-card{background:#fff;border:1px solid #dfe6ef;border-radius:10px;min-width:0;padding:15px}.admin-question-card>header{align-items:center;gap:7px;display:flex}.admin-question-card>header em,.admin-question-card>header span{color:#2559b8;background:#eaf1ff;border-radius:6px;padding:4px 7px;font-size:8px;font-style:normal;font-weight:800}.admin-question-card>header em{color:#66758a;background:#f0f2f6}.admin-question-card h4{color:#26364c;margin:11px 0;font-size:12px;line-height:1.55}.admin-question-card ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;padding:0;list-style:none;display:grid}.admin-question-card li{background:#fafbfd;border:1px solid #e0e6ee;border-radius:8px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;min-height:42px;padding:7px;display:grid}.admin-question-card li.correct{background:#f2fbf6;border-color:#addabe}.admin-question-card li>span{color:#506079;background:#e9edf4;border-radius:6px;place-items:center;width:24px;height:24px;font-size:9px;font-weight:850;display:grid}.admin-question-card li.correct>span{color:#18754b;background:#d9f1e3}.admin-question-card li p{color:#45556b;margin:0;font-size:10px;line-height:1.45}.admin-question-card li>strong{color:#18754b;white-space:nowrap;align-items:center;gap:3px;font-size:8px;display:inline-flex}.admin-question-card li>strong svg{width:11px;height:11px}.admin-question-card>footer{border-top:1px solid #edf1f5;grid-template-columns:auto 1fr;gap:8px;margin-top:11px;padding-top:10px;display:grid}.admin-question-card>footer strong{color:#a45f09;font-size:9px}.admin-question-card>footer p{color:#56667b;margin:0;font-size:10px;line-height:1.55}.admin-event-list{flex-direction:column;margin:0;padding:17px;list-style:none;display:flex}.admin-event-list li{gap:11px;min-height:55px;display:flex;position:relative}.admin-event-list li:not(:last-child):before{content:"";background:#dfe5ee;width:1px;position:absolute;top:26px;bottom:0;left:13px}.admin-event-marker{z-index:1;width:27px;height:27px;color:var(--admin-blue);background:#f0f5ff;border:1px solid #d5e1f4;border-radius:50%;flex:0 0 27px;place-items:center;display:grid}.admin-event-marker svg{width:13px;height:13px}.admin-event-list li>div{flex-direction:column;gap:5px;min-width:0;padding-top:1px;display:flex}.admin-event-list strong{color:#405067;font-size:10px;line-height:1.5}.admin-event-list li>div>span{color:#8793a5;font-size:9px}.admin-preview-empty{min-height:250px;color:var(--admin-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:28px;display:flex}.admin-preview-empty>span{color:#8290a5;width:30px;height:30px}.admin-preview-empty strong{color:#45546b;margin-top:10px;font-size:12px}.admin-preview-empty p{margin:5px 0 0;font-size:10px}.admin-approval-footer{z-index:8;background:#fffaf0;border:1px solid #f0d18c;border-radius:11px;justify-content:space-between;align-items:center;gap:14px;padding:12px 13px;display:flex;position:sticky;bottom:14px;box-shadow:0 9px 22px #5b3c0a1a}.admin-approval-footer>div{align-items:center;gap:10px;min-width:0;display:flex}.admin-approval-footer>div>span{color:#a76106;background:#ffedc2;border-radius:9px;flex:0 0 32px;place-items:center;width:32px;height:32px;display:grid}.admin-approval-footer>div>span svg{width:17px;height:17px}.admin-approval-footer strong{font-size:11px}.admin-approval-footer p{color:#856b43;margin:3px 0 0;font-size:9px}.admin-inline-notice{color:#8e5c0b;background:#fff9ec;border:1px solid #f0d49b;border-radius:10px;align-items:center;gap:9px;min-height:44px;padding:9px 12px;display:flex}.admin-inline-notice>span{width:17px;height:17px}.admin-inline-notice strong{font-size:11px}.admin-model-list{gap:13px;display:grid}.admin-connection-card{padding:17px}.admin-connection-card .admin-section-heading{margin-bottom:14px}.admin-connection-fields{grid-template-columns:minmax(150px,.8fr) minmax(220px,1.35fr) minmax(180px,1fr);gap:12px;min-width:0;display:grid}.admin-field small{color:#7a8799;overflow-wrap:anywhere;font-size:9px}.admin-connection-test-passed,.admin-field small.configured{color:#18754b}.admin-connection-error,.admin-connection-test-failed,.admin-field small.missing,.admin-model-validation-error{color:#b4232d}.admin-connection-actions,.admin-connection-footer{align-items:center;gap:8px;min-width:0;display:flex}.admin-connection-footer{justify-content:space-between;margin-top:14px}.admin-connection-error,.admin-model-discovery-summary,.admin-model-validation-error{color:var(--admin-muted);overflow-wrap:anywhere;margin:0;font-size:10px}.admin-connection-error,.admin-model-validation-error{color:#b4232d;margin-top:10px}.admin-connection-test-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0;margin-top:14px;display:grid}.admin-connection-test-grid>div{border:1px solid #e8edf4;border-radius:8px;flex-direction:column;gap:3px;min-width:0;padding:8px 10px;display:flex}.admin-connection-test-grid span,.admin-connection-test-grid strong{overflow-wrap:anywhere;font-size:9px}.admin-model-card{padding:17px}.admin-model-card>header{justify-content:space-between;align-items:center;gap:14px;min-width:0;margin-bottom:14px;display:flex}.admin-model-card>header>div{min-width:0}.admin-model-card h2{margin:0;font-size:14px}.admin-model-card code{color:#7a879a;margin-top:4px;font-size:9px;display:inline-block}.admin-switch-field{color:#617087;align-items:center;gap:9px;min-height:40px;font-size:10px;font-weight:700;display:inline-flex}.admin-switch{cursor:pointer;background:0 0;border:0;width:44px;min-width:44px;min-height:40px;padding:0;position:relative}.admin-switch:before{content:"";background:#c8d0dc;border-radius:999px;width:42px;height:24px;transition:background .15s;position:absolute;top:8px;left:1px}.admin-switch[aria-checked=true]:before{background:var(--admin-blue)}.admin-switch:disabled{opacity:.55}.admin-switch>span{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:11px;left:4px;box-shadow:0 1px 4px #17203340}.admin-switch[aria-checked=true]>span{transform:translate(18px)}.admin-model-fields{grid-template-columns:minmax(150px,1fr) minmax(180px,1.35fr) minmax(130px,.7fr) 145px;align-items:end;gap:12px;min-width:0;display:grid}.admin-field{flex-direction:column;gap:6px;min-width:0;display:flex}.admin-field>span{color:#617087;font-size:10px;font-weight:700}.admin-field input,.admin-field select{color:#34445b;background:#fff;border:1px solid #d8e0eb;border-radius:8px;width:100%;min-width:0;min-height:40px;padding:0 10px;font-size:12px}.admin-field input:disabled,.admin-field select:disabled{color:#7a8799;background:#f2f4f7}.admin-model-save{flex-direction:column;align-items:flex-end;gap:5px;min-width:0;display:flex}.admin-model-save>span{color:#8a95a6;min-height:12px;font-size:9px}.admin-model-save>span.admin-save-success{color:#18754b;font-weight:750}.admin-model-save .admin-button{width:100%}.admin-users-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);align-items:start;gap:18px;min-width:0;display:grid}.admin-invite-list,.admin-user-list{border-top:1px solid #e9eef5;margin-top:14px}.admin-user-row{border-bottom:1px solid #e9eef5;grid-template-columns:minmax(160px,.8fr) minmax(250px,1.25fr) auto;align-items:center;gap:16px;min-width:0;padding:13px 2px;display:grid}.admin-invite-row:last-child,.admin-user-row:last-child{border-bottom:0}.admin-user-profile{align-items:center;gap:10px;min-width:0;display:flex}.admin-user-avatar{width:34px;height:34px;color:var(--admin-blue);background:#eaf1ff;border-radius:10px;flex:0 0 34px;place-items:center;display:grid}.admin-user-avatar svg{width:17px;height:17px}.admin-user-profile>div{flex-direction:column;gap:4px;min-width:0;display:flex}.admin-user-profile strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.admin-user-profile>div>span{color:#7a879a;flex-wrap:wrap;align-items:center;gap:5px;font-size:9px;display:flex}.admin-user-profile em{color:#9c610b;background:#fff0cf;border-radius:5px;padding:3px 5px;font-size:8px;font-style:normal;font-weight:750}.admin-user-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0;margin:0;display:grid}.admin-user-metrics>div{border-left:1px solid #e6ebf2;min-width:0;padding-left:9px}.admin-user-metrics dt{color:#7a8798;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.admin-user-metrics dd{color:#27384e;margin:3px 0 0;font-size:13px;font-weight:800}.admin-reset-button{white-space:nowrap}.admin-invite-row{border-bottom:1px solid #e9eef5;justify-content:space-between;gap:13px;min-height:76px;padding:12px 2px}.admin-invite-main,.admin-invite-row{align-items:center;min-width:0;display:flex}.admin-invite-main{gap:10px}.admin-invite-main code{color:#365986;background:#f4f7fc;border:1px solid #d8e2f1;border-radius:7px;flex:none;padding:7px 8px;font-size:10px;font-weight:800}.admin-invite-main>div{flex-direction:column;gap:4px;min-width:0;display:flex}.admin-invite-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.admin-invite-main span,.admin-invite-side small{color:#7a8799;font-size:9px}.admin-invite-side{flex-direction:column;flex:none;align-items:flex-end;display:flex}.admin-invite-side .admin-switch-field{min-height:30px}.admin-confirm-note{color:#536278;background:#f8fafc;border:1px solid #e0e6ee;border-radius:8px;align-items:center;gap:8px;margin-top:14px;padding:9px 10px;font-size:10px;display:flex}.admin-confirm-note svg{flex:0 0 15px;width:15px;height:15px}.admin-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0e17278a;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.admin-modal{background:#fff;border:1px solid #dce3ed;border-radius:15px;width:min(100%,430px);padding:23px;position:relative;box-shadow:0 24px 60px #0c172b3d}.admin-modal-icon{width:42px;height:42px;color:var(--admin-blue);background:#eaf1ff;border-radius:12px;place-items:center;display:grid}.admin-modal-icon-danger{color:#c32d38;background:#fff0f1}.admin-modal-icon svg{width:20px;height:20px}.admin-modal-close{position:absolute;top:14px;right:14px}.admin-modal h2{letter-spacing:-.025em;margin:15px 0 7px;font-size:18px}.admin-modal>p{color:#617087;margin:0;font-size:11px;line-height:1.65}.admin-modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:20px;display:grid}.admin-toast{z-index:120;color:#176c46;background:#f1fbf5;border:1px solid #b9e1ca;border-radius:11px;grid-template-columns:24px minmax(0,1fr) 32px;align-items:center;gap:8px;width:min(380px,100vw - 28px);min-height:50px;padding:8px 8px 8px 12px;animation:admin-toast-in .18s ease-out;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 14px 35px #152b4429}.admin-toast-error{color:#a8242e;background:#fff4f5;border-color:#efc2c6}.admin-toast-icon{background:#ffffffbd;border-radius:7px;place-items:center;width:24px;height:24px;display:grid}.admin-toast-icon svg{width:14px;height:14px}.admin-toast p{margin:0;font-size:11px;font-weight:650;line-height:1.5}.admin-toast button{color:currentColor;cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;width:32px;min-height:40px;display:grid}.admin-toast button svg{width:15px;height:15px}.admin-loading{flex-direction:column;gap:18px;display:flex}.admin-loading-panels,.admin-loading-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.admin-loading-panels span,.admin-loading-stats span{background:linear-gradient(90deg,#e9eef5 25%,#f5f7fb 50%,#e9eef5 75%) 0 0/200% 100%;border-radius:13px;height:90px;animation:admin-shimmer 1.4s linear infinite;display:block}.admin-loading-panels{grid-template-columns:minmax(0,1fr) 260px}.admin-loading-panels span{height:330px}.admin-global-error{text-align:center;background:#fff;border:1px solid #efc7ca;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:420px;padding:28px;display:flex}.admin-global-error>span{color:#c52e39;width:42px;height:42px}.admin-global-error h2{margin:14px 0 6px;font-size:17px}.admin-global-error p{color:#66758b;max-width:420px;margin:0 0 18px;font-size:11px;line-height:1.6}@keyframes admin-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes admin-spin{to{transform:rotate(1turn)}}@keyframes admin-pulse{50%{opacity:.42}}@keyframes admin-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1180px){.admin-stat{align-items:flex-start}.admin-stat>div{flex-direction:column;display:flex}.admin-stat strong{order:-1}.admin-stat small{white-space:normal}.admin-connection-fields,.admin-model-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-model-save{align-items:stretch}.admin-users-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:1060px){.admin-production-layout{grid-template-columns:minmax(0,1fr)}.admin-catalog-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;max-height:370px;display:grid;overflow-y:auto}.admin-subject-group+.admin-subject-group{border-top:0;margin-top:0;padding-top:0}}@media (max-width:900px){.admin-app{display:block}.admin-sidebar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;height:auto;min-height:0;padding:10px 14px 9px;display:grid;position:sticky}.admin-brand{grid-area:1/1;padding:0}.admin-brand>span{border-radius:9px;flex-basis:32px;width:32px;height:32px;font-size:14px}.admin-brand small{display:none}.admin-nav{scrollbar-width:none;flex-direction:row;grid-area:2/1/auto/-1;gap:4px;min-width:0;display:flex;overflow-x:auto}.admin-nav::-webkit-scrollbar{display:none}.admin-nav button{min-width:max-content;min-height:40px}.admin-nav button.active{box-shadow:inset 0 -2px #60a5fa}.admin-student-link{grid-area:1/2;min-height:36px;margin-top:0;padding-inline:10px}.admin-topbar{position:static}.admin-topbar>div:first-child>span{display:block}.admin-overview-grid{grid-template-columns:minmax(0,1fr)}.admin-boundary-panel ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.admin-boundary-panel li{border:1px solid #edf1f6;border-radius:9px;padding:8px}.admin-loading-panels{grid-template-columns:minmax(0,1fr)}.admin-loading-panels span:last-child{height:150px}}@media (max-width:720px){.admin-topbar{flex-direction:column;align-items:flex-start;gap:10px;min-height:0;padding-block:14px}.admin-environment-status{justify-content:flex-start}.admin-connection-footer,.admin-topbar-actions{flex-direction:column;justify-content:flex-start;align-items:stretch;width:100%}.admin-logout-button{align-self:flex-start}.admin-connection-fields,.admin-connection-test-grid{grid-template-columns:minmax(0,1fr)}.admin-connection-actions{flex-wrap:wrap;width:100%}.admin-main{padding:16px 14px 34px}.admin-loading-stats,.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stat{flex-direction:column;gap:9px;min-height:108px;padding:13px}.admin-stat-icon{flex-basis:34px;width:34px;height:34px}.admin-production-row{flex-direction:column;align-items:flex-start;gap:8px}.admin-production-latest{flex-direction:row;align-items:center}.admin-run-header{flex-direction:column}.admin-run-actions{flex:none;justify-content:flex-start;width:100%}.admin-step-list{grid-template-columns:minmax(0,1fr)}.admin-step-item{min-height:58px}.admin-step-item strong{white-space:normal}.admin-preview-header{flex-direction:column;align-items:stretch;gap:0;padding-right:9px}.admin-preview-header>div:first-child{padding-bottom:4px}.admin-card-preview-layout{grid-template-columns:minmax(0,1fr)}.admin-lesson-card-nav{border-bottom:1px solid #e5eaf2;border-right:0;flex-direction:row;overflow-x:auto}.admin-lesson-card-nav button{width:140px;min-width:140px}.admin-card-notes,.admin-question-card ol{grid-template-columns:minmax(0,1fr)}.admin-approval-footer{flex-direction:column;align-items:stretch;position:static}.admin-model-fields,.admin-user-row{grid-template-columns:minmax(0,1fr)}.admin-user-metrics{border:1px solid #e7ebf2;border-radius:9px;padding:8px}.admin-user-metrics>div:first-child{border-left:0}.admin-reset-button{width:100%}}@media (max-width:520px){.admin-brand strong{font-size:13px}.admin-student-link{font-size:11px}.admin-section-heading{flex-direction:column;align-items:flex-start}.admin-section-heading .admin-button{width:100%}.admin-boundary-panel ul,.admin-catalog-groups{grid-template-columns:minmax(0,1fr)}.admin-run-detail,.admin-run-header{padding-inline:14px}.admin-provenance-badge,.admin-run-actions .admin-button{width:100%}.admin-run-actions .admin-status-badge{order:-1}.admin-run-error{flex-direction:column;align-items:stretch;margin-inline:14px}.admin-run-error .admin-button{width:100%}.admin-lesson-card-detail{padding:15px}.admin-question-card li{grid-template-columns:24px minmax(0,1fr)}.admin-question-card li>strong{grid-column:2}.admin-invite-row,.admin-model-card>header{flex-direction:column;align-items:flex-start}.admin-invite-side{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.admin-modal-backdrop{align-items:end;padding:12px}.admin-modal{border-radius:15px 15px 10px 10px;padding:20px}.admin-toast{bottom:14px;right:14px}}@media (prefers-reduced-motion:reduce){.admin-app *,.admin-app :after,.admin-app :before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.settings-card .snake-game-entry{border:0;border-bottom:1px solid var(--line);background:var(--paper-raised);width:100%;min-height:54px;color:var(--ink-soft);font-size:var(--text-sm);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:0 15px;font-weight:600;text-decoration:none;display:flex}.settings-card .snake-game-entry span{color:var(--accent);font-size:18px}.settings-card .snake-game-entry small{color:var(--ink-faint);font-size:var(--text-2xs);margin-left:auto}.settings-card .snake-game-entry:hover{color:var(--accent-deep)}.snake-page{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-sans);-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:20px;padding:24px;display:flex}.snake-header{justify-content:space-between;align-items:flex-end;gap:16px;width:100%;max-width:560px;display:flex}.snake-back-link{color:var(--ink-faint);font-size:var(--text-2xs);text-decoration:none}.snake-back-link:hover{color:var(--accent-deep)}.snake-header h1{font-family:var(--font-serif);font-size:var(--text-3xl);margin:6px 0 0;font-weight:600;line-height:1.1}.snake-header p{color:var(--ink-faint);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;margin:6px 0 0}.snake-hud{gap:12px;display:flex}.snake-stat{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:88px;box-shadow:var(--shadow-card);text-align:center;padding:10px 16px}.snake-stat span{color:var(--ink-faint);font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;display:block}.snake-stat strong{font-family:ui-monospace,SF Mono,JetBrains Mono,monospace;font-size:var(--text-2xl);font-variant-numeric:tabular-nums;font-weight:600;transition:transform .15s ease-out,color .15s ease-out;display:block}.snake-stat strong.snake-score-pop{color:var(--accent-deep);transform:scale(1.35)}.snake-stat.best strong{color:var(--accent)}.snake-board{aspect-ratio:1;background:var(--ink);border-radius:var(--radius-lg);width:100%;max-width:520px;box-shadow:var(--shadow-lift),inset 0 1px 0 #faf9f50f;touch-action:none;position:relative;overflow:hidden}.snake-board canvas{width:100%;height:100%;display:block}.snake-shake{animation:snake-shake .35s}@keyframes snake-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px,3px)}40%{transform:translate(6px,-4px)}60%{transform:translate(-5px,-3px)}80%{transform:translate(4px,4px)}}.snake-overlay{z-index:5;-webkit-backdrop-filter:blur(6px);background:#1f1d1ad1;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.snake-overlay h2{font-family:var(--font-serif);color:var(--paper);font-size:var(--text-3xl);margin:0;font-weight:600}.snake-overlay p{color:#faf9f58c;font-size:var(--text-2xs);letter-spacing:.08em;margin:0}.snake-overlay .primary-button{margin-top:8px}.snake-final-score{color:var(--accent-soft);font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,JetBrains Mono,monospace;font-size:44px;font-weight:700}.snake-new-best{text-transform:uppercase;color:var(--accent-soft)!important;font-size:var(--text-2xs)!important;letter-spacing:.12em!important}.snake-footer{justify-content:space-between;gap:12px;width:100%;max-width:560px}.snake-footer,.snake-hint{align-items:center;display:flex}.snake-hint{color:var(--ink-faint);font-size:var(--text-2xs);gap:6px;margin:0}.snake-hint kbd{border:solid var(--line);border-width:1px 1px 2px;border-radius:6px;padding:2px 7px;font-family:ui-monospace,SF Mono,monospace;font-size:11px}.snake-hint kbd,.snake-pause-button{background:var(--paper-raised);color:var(--ink-soft)}.snake-pause-button{border:1px solid var(--line);border-radius:var(--radius-sm);width:44px;height:44px;font-size:var(--text-sm);cursor:pointer;flex:none;justify-content:center;align-items:center;transition:color .15s ease-out,border-color .15s ease-out;display:flex}.snake-pause-button:hover{color:var(--accent-deep);border-color:var(--accent-soft)}@media (max-width:480px){.snake-header h1{font-size:var(--text-2xl)}.snake-stat{min-width:74px;padding:8px 12px}.snake-stat strong{font-size:var(--text-xl)}.snake-hint{display:none}}@media (prefers-reduced-motion:reduce){.snake-shake{animation:none}.snake-page *{transition-duration:.01ms!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}