.grade-mask[data-v-b3dd4838]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#5a4a3a73;padding:24px}.grade-panel[data-v-b3dd4838]{width:100%;max-width:560px;background:var(--color-cream);border-radius:var(--radius-lg);padding:40px 32px 28px;text-align:center;box-shadow:0 16px 48px #ff9f4559;animation:pop-in-b3dd4838 .25s ease-out}@keyframes pop-in-b3dd4838{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.grade-mascot[data-v-b3dd4838]{font-size:56px;margin-bottom:8px}.grade-title[data-v-b3dd4838]{font-size:30px;color:var(--color-primary);margin-bottom:8px}.grade-sub[data-v-b3dd4838]{font-size:19px;color:var(--color-text-light);margin-bottom:28px}.grade-grid[data-v-b3dd4838]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.grade-card[data-v-b3dd4838]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 8px;background:#fff;border:3px solid #eee2d2;border-radius:var(--radius-md);box-shadow:0 4px 12px #ff9f451f;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.grade-card[data-v-b3dd4838]:hover:not(:disabled){transform:translateY(-4px);border-color:var(--color-primary);box-shadow:0 8px 20px #ff9f4540}.grade-card[data-v-b3dd4838]:disabled{cursor:not-allowed;opacity:.7}.grade-emoji[data-v-b3dd4838]{font-size:40px}.grade-label[data-v-b3dd4838]{font-size:21px;font-weight:700;color:var(--color-text)}.grade-saving[data-v-b3dd4838]{font-size:14px;color:var(--color-primary)}.grade-skip[data-v-b3dd4838]{font-size:17px;color:var(--color-text-light);padding:8px 20px;border-radius:999px}.grade-skip[data-v-b3dd4838]:hover:not(:disabled){color:var(--color-text);background:#ffffffb3}@media (max-width: 560px){.grade-panel[data-v-b3dd4838]{padding:32px 20px 22px}.grade-title[data-v-b3dd4838]{font-size:25px}.grade-grid[data-v-b3dd4838]{grid-template-columns:repeat(2,1fr);gap:12px}.grade-card[data-v-b3dd4838]{padding:18px 6px}.grade-emoji[data-v-b3dd4838]{font-size:34px}}.eye-rest-overlay[data-v-9aa88328]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#5a4a3ab8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.eye-rest-card[data-v-9aa88328]{background:linear-gradient(160deg,#fff8ec,#ffefd9);border-radius:32px;padding:48px 56px;text-align:center;border:3px solid var(--color-primary);box-shadow:0 18px 48px #00000040;max-width:420px;margin:0 20px;animation:pop-9aa88328 .35s cubic-bezier(.34,1.56,.64,1)}.eye-emoji[data-v-9aa88328]{font-size:72px;margin-bottom:10px}.eye-title[data-v-9aa88328]{font-size:30px;font-weight:800;color:var(--color-text);margin-bottom:8px}.eye-text[data-v-9aa88328]{font-size:18px;color:var(--color-text-light);margin-bottom:22px}.countdown[data-v-9aa88328]{font-size:22px;font-weight:800;color:var(--color-primary);margin-bottom:18px}.rest-done-btn[data-v-9aa88328]{padding:15px 44px;font-size:20px;font-weight:800;color:#fff;background:var(--color-success);border-radius:999px;box-shadow:0 6px 16px #6bcb7766;transition:transform .15s ease,opacity .2s ease}.rest-done-btn[data-v-9aa88328]:hover:not(:disabled){transform:translateY(-2px)}.rest-done-btn[data-v-9aa88328]:disabled{opacity:.45;cursor:not-allowed}@keyframes pop-9aa88328{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.app-layout[data-v-b58effb4]{min-height:100%;display:flex;flex-direction:column}.app-header[data-v-b58effb4]{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 32px;background:linear-gradient(135deg,var(--color-primary),#ffb876);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:0 4px 16px #ff9f454d;flex-wrap:wrap}.logo[data-v-b58effb4]{font-size:26px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgb(0 0 0 / 12%)}.nav[data-v-b58effb4]{display:flex;gap:12px;flex-wrap:wrap;flex:1}.nav-item[data-v-b58effb4]{display:inline-flex;align-items:center;gap:6px;padding:10px 22px;font-size:19px;font-weight:600;color:#fff;background:#ffffff38;border-radius:999px;transition:transform .15s ease,background .15s ease}.nav-item[data-v-b58effb4]:hover{transform:translateY(-2px);background:#ffffff59}.nav-item--active[data-v-b58effb4]{background:#fff;color:var(--color-primary)}.nav-emoji[data-v-b58effb4]{font-size:20px}.app-main[data-v-b58effb4]{flex:1;padding:28px 32px 48px;max-width:1280px;width:100%;margin:0 auto}.app-footer[data-v-b58effb4]{display:flex;align-items:center;justify-content:center;gap:16px;padding:18px 24px 26px;font-size:15px;color:var(--color-text-light);flex-wrap:wrap}.footer-link[data-v-b58effb4]{color:var(--color-primary);font-weight:600;text-decoration:underline;text-underline-offset:3px}.footer-note[data-v-b58effb4]{opacity:.85}.bottom-tabs[data-v-b58effb4]{display:none}@media (max-width: 1024px){.app-layout[data-v-b58effb4]{--app-header-h: 56px}.app-header[data-v-b58effb4]{height:var(--app-header-h);flex-shrink:0;box-sizing:border-box;padding:0 14px;gap:10px;flex-wrap:nowrap}.logo[data-v-b58effb4]{font-size:19px}.nav[data-v-b58effb4]{display:none}.app-main[data-v-b58effb4]{padding:16px 14px 96px}.app-footer[data-v-b58effb4]{padding:10px 16px 88px;gap:10px;font-size:12px}.bottom-tabs[data-v-b58effb4]{position:fixed;left:0;right:0;bottom:0;z-index:1000;display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:6px 2px calc(6px + env(safe-area-inset-bottom,0px));background:#fffffff7;border-top:1px solid rgb(255 159 69 / 25%);box-shadow:0 -4px 18px #ff9f4524}.tab-item[data-v-b58effb4]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 2px;border-radius:12px;color:var(--color-text-light);font-size:11px;font-weight:700;line-height:1.1;-webkit-tap-highlight-color:transparent}.tab-emoji[data-v-b58effb4]{font-size:21px;line-height:1}.tab-item--active[data-v-b58effb4]{color:var(--color-primary);background:#fff3e2}.app-layout--immersive .bottom-tabs[data-v-b58effb4]{display:none}.app-layout--immersive .app-main[data-v-b58effb4]{padding-bottom:12px}.app-layout--immersive .app-footer[data-v-b58effb4]{display:none}}@media (max-width: 380px){.logo[data-v-b58effb4]{font-size:17px}.logo .logo-text[data-v-b58effb4]{display:none}.tab-label[data-v-b58effb4]{font-size:10px}.tab-emoji[data-v-b58effb4]{font-size:19px}}.today-panel[data-v-a41496a5]{margin-bottom:28px}.streak-bar[data-v-a41496a5]{display:flex;align-items:center;gap:10px;padding:14px 22px;margin-bottom:18px;background:linear-gradient(90deg,#fff3e0,#ffe8d1);border-radius:var(--radius-md);border:2px solid var(--color-primary);box-shadow:0 4px 12px #ff9f452e}.streak-flame[data-v-a41496a5]{font-size:30px}.streak-text[data-v-a41496a5]{font-size:20px;color:var(--color-text)}.streak-text b[data-v-a41496a5]{font-size:26px;color:var(--color-primary)}.streak-cheer[data-v-a41496a5]{margin-left:auto;font-size:16px;color:var(--color-text-light)}.queue-cards[data-v-a41496a5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.queue-card[data-v-a41496a5]{background:#fff;border-radius:var(--radius-lg);padding:22px 16px;text-align:center;border:3px solid var(--color-secondary);box-shadow:0 6px 18px #4d96ff29;transition:transform .15s ease}.queue-card[data-v-a41496a5]:hover{transform:translateY(-3px)}.queue-card--new[data-v-a41496a5]{border-color:var(--color-success);box-shadow:0 6px 18px #6bcb772e}.queue-card--wrong[data-v-a41496a5]{border-color:var(--color-danger);box-shadow:0 6px 18px #ff6b6b29}.queue-card--dim[data-v-a41496a5]{opacity:.55;filter:grayscale(.4);box-shadow:none}.card-emoji[data-v-a41496a5]{font-size:42px;margin-bottom:6px}.card-label[data-v-a41496a5]{font-size:18px;color:var(--color-text-light);margin-bottom:4px}.card-count[data-v-a41496a5]{font-size:36px;font-weight:800;color:var(--color-text);margin-bottom:12px}.card-btn[data-v-a41496a5]{padding:10px 28px;font-size:17px;font-weight:700;color:#fff;background:var(--color-primary);border-radius:999px;box-shadow:0 4px 10px #ff9f4559;transition:transform .15s ease}.card-btn[data-v-a41496a5]:hover{transform:scale(1.05)}.queue-card--dim .card-btn[data-v-a41496a5]{background:#d8cdbd;box-shadow:none}.skeleton-bar[data-v-a41496a5]{justify-content:center}.skeleton-text[data-v-a41496a5]{font-size:18px;color:var(--color-text-light)}.queue-card--skeleton[data-v-a41496a5]{border-color:#eee4d6;box-shadow:none;cursor:default}.queue-card--skeleton[data-v-a41496a5]:hover{transform:none}.sk-emoji[data-v-a41496a5]{width:44px;height:44px;margin:0 auto 10px;border-radius:50%;background:#f2ece2;animation:pulse-a41496a5 1.2s ease-in-out infinite}.sk-line[data-v-a41496a5]{height:16px;margin:8px auto;border-radius:8px;background:#f2ece2;animation:pulse-a41496a5 1.2s ease-in-out infinite}.sk-line--short[data-v-a41496a5]{width:60%}@keyframes pulse-a41496a5{0%,to{opacity:1}50%{opacity:.4}}.home-topbar[data-v-f62a05d0]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.page-title[data-v-f62a05d0]{font-size:32px;color:var(--color-text)}.user-chip[data-v-f62a05d0]{padding:10px 24px;font-size:18px;font-weight:600;color:#fff;background:var(--color-secondary);border-radius:999px;box-shadow:0 4px 12px #4d96ff59;transition:transform .15s ease}.user-chip[data-v-f62a05d0]:hover{transform:translateY(-2px)}.hint[data-v-f62a05d0]{font-size:20px;color:var(--color-text-light);text-align:center;padding:60px 0}.book-grid[data-v-f62a05d0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.book-card[data-v-f62a05d0]{background:#fff;border-radius:var(--radius-lg);padding:28px 20px;text-align:center;cursor:pointer;border:3px solid var(--color-primary);box-shadow:0 6px 18px #ff9f452e;transition:transform .15s ease,box-shadow .15s ease}.book-card[data-v-f62a05d0]:hover{transform:translateY(-4px);box-shadow:0 10px 24px #ff9f4547}.book-card--disabled[data-v-f62a05d0]{border-color:#e8e0d4;filter:grayscale(.7);opacity:.7;box-shadow:none}.book-emoji[data-v-f62a05d0]{font-size:48px;margin-bottom:12px}.book-title[data-v-f62a05d0]{font-size:22px;font-weight:700;margin-bottom:6px}.book-code[data-v-f62a05d0]{font-size:16px;color:var(--color-text-light);margin-bottom:14px;letter-spacing:2px}.book-badge[data-v-f62a05d0]{display:inline-block;padding:6px 18px;font-size:15px;border-radius:999px;background:#f2ece2;color:var(--color-text-light)}.book-badge--on[data-v-f62a05d0]{background:var(--color-success);color:#fff}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.visible,[visible=""]{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.grid{display:grid}[rows~="5"]{grid-template-rows:repeat(5,minmax(0,1fr))}.me{margin-inline-end:1rem}.ms{margin-inline-start:1rem}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.flex{display:flex}.inline-flex{display:inline-flex}.flex-shrink{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize,[resize=""]{resize:both}.b,.border,[b=""]{border-width:1px}[\!b=""]{border-width:1px!important}.px{padding-left:1rem;padding-right:1rem}.pt{padding-top:1rem}.pt\[0\]{padding-top:0}.pt\[1\]{padding-top:1}[text~="-1"]{font-size:-.25rem}[text~="1"]{font-size:.25rem}.lowercase{text-transform:lowercase}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline{text-decoration-line:underline}.tab,[aria-selected~=tab][aria-selected=true]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.text-shadow{--un-text-shadow:0 0 1px var(--un-text-shadow-color, rgb(0 0 0 / .2)),0 0 1px var(--un-text-shadow-color, rgb(1 0 5 / .1));text-shadow:var(--un-text-shadow)}.shadow{--un-shadow:var(--un-shadow-inset) 0 1px 3px 0 var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 1px 2px -1px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.outline{outline-style:solid}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease,.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--color-primary: #ff9f45;--color-secondary: #4d96ff;--color-success: #6bcb77;--color-danger: #ff6b6b;--color-cream: #fff8ec;--confetti-pink: #ff6b9d;--confetti-yellow: #ffd93d;--confetti-green: #6bcb77;--confetti-blue: #4d96ff;--confetti-purple: #9d4edd;--confetti-orange: #ff9f45;--color-text: #5a4a3a;--color-text-light: #9c8b7a;--radius-lg: 24px;--radius-md: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Yuanti SC,YouYuan,ui-rounded,system-ui,-apple-system,sans-serif;font-size:18px;color:var(--color-text);background-color:var(--color-cream);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;border:none;cursor:pointer;background:none}.app-toast{position:fixed;top:24px;left:50%;transform:translate(-50%);padding:12px 28px;background:#fff;color:var(--color-text);font-size:18px;border-radius:999px;box-shadow:0 6px 24px #ff9f4559;z-index:10000;animation:toast-in .25s ease-out;pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}
