.toast-container[data-v-f61ecfd5]{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.toast[data-v-f61ecfd5]{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;font-size:16px;font-weight:500;min-width:200px;max-width:400px;box-shadow:0 10px 40px #00000026;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast-success[data-v-f61ecfd5]{background:linear-gradient(135deg,#10b981,#34d399);color:#fff}.toast-error[data-v-f61ecfd5]{background:linear-gradient(135deg,#ef4444,#f87171);color:#fff}.toast-warning[data-v-f61ecfd5]{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff}.toast-info[data-v-f61ecfd5]{background:linear-gradient(135deg,#3b82f6,#60a5fa);color:#fff}.toast-icon[data-v-f61ecfd5]{display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-message[data-v-f61ecfd5]{flex:1;word-break:break-word}.toast-close[data-v-f61ecfd5]{background:#fff3;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .2s;opacity:.8}.toast-close[data-v-f61ecfd5]:hover{background:#ffffff4d;opacity:1}.toast-enter-active[data-v-f61ecfd5]{animation:toastIn-f61ecfd5 .4s cubic-bezier(.16,1,.3,1)}.toast-leave-active[data-v-f61ecfd5]{animation:toastOut-f61ecfd5 .3s ease-in}@keyframes toastIn-f61ecfd5{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut-f61ecfd5{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.95)}}.confirm-overlay[data-v-f61ecfd5]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000}.confirm-dialog[data-v-f61ecfd5]{background:#fff;border-radius:20px;padding:32px;width:90%;max-width:420px;text-align:center;box-shadow:0 25px 50px -12px #00000040}.confirm-icon[data-v-f61ecfd5]{width:64px;height:64px;margin:0 auto 20px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#f59e0b}.confirm-title[data-v-f61ecfd5]{font-size:20px;font-weight:600;color:#1f2937;margin:0 0 12px}.confirm-message[data-v-f61ecfd5]{font-size:16px;color:#6b7280;line-height:1.5;margin:0 0 24px}.confirm-actions[data-v-f61ecfd5]{display:flex;gap:12px}.confirm-btn[data-v-f61ecfd5]{flex:1;padding:12px 20px;border-radius:12px;font-size:16px;font-weight:500;border:none;cursor:pointer;transition:all .2s}.confirm-btn-cancel[data-v-f61ecfd5]{background:#f3f4f6;color:#6b7280}.confirm-btn-cancel[data-v-f61ecfd5]:hover{background:#e5e7eb}.confirm-btn-confirm[data-v-f61ecfd5]{background:linear-gradient(135deg,#ef4444,#f87171);color:#fff;box-shadow:0 4px 12px #ef44444d}.confirm-btn-confirm[data-v-f61ecfd5]:hover{transform:translateY(-1px);box-shadow:0 6px 16px #ef444466}.confirm-enter-active[data-v-f61ecfd5]{animation:confirmIn-f61ecfd5 .3s cubic-bezier(.16,1,.3,1)}.confirm-leave-active[data-v-f61ecfd5]{animation:confirmOut-f61ecfd5 .2s ease-in}@keyframes confirmIn-f61ecfd5{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes confirmOut-f61ecfd5{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.nav-icon[data-v-8b3c5954]{width:20px;height:20px;flex-shrink:0}.sidebar[data-v-beee49be]{background:radial-gradient(120% 80% at 0% 0%,rgba(99,102,241,.18) 0%,transparent 60%),radial-gradient(120% 80% at 100% 100%,rgba(139,92,246,.2) 0%,transparent 60%),linear-gradient(180deg,#16182d,#1d2040,#23264a);display:flex;flex-direction:column;z-index:100;color:#fff;flex-shrink:0;transition:left .3s ease}@media(max-width:768px){.sidebar[data-v-beee49be]{position:fixed;left:-260px;top:0;bottom:0;width:260px;z-index:200;height:100vh;overflow-y:auto;transition:left .3s ease}.sidebar.open[data-v-beee49be]{left:0}}@media(min-width:769px){.sidebar[data-v-beee49be]{width:220px}}.sidebar-header[data-v-beee49be]{min-height:72px;display:flex;align-items:center;padding:28px 20px 20px;border-bottom:1px solid rgba(255,255,255,.1);gap:10px;box-sizing:border-box}.sidebar-logo[data-v-beee49be]{width:52px;height:52px;flex-shrink:0}.sidebar-logo svg[data-v-beee49be]{width:100%;height:100%}.sidebar-title[data-v-beee49be]{font-size:18px;font-weight:700;color:#fff}.nav-list[data-v-beee49be]{flex:1;padding:12px 10px;overflow-y:auto}.nav-item[data-v-beee49be]{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;color:#ffffffb3;font-size:16px;font-weight:500;margin-bottom:4px;transition:all .25s ease;cursor:pointer;position:relative}.nav-text[data-v-beee49be]{flex:1;min-width:0;text-align:left}.nav-item[data-v-beee49be]:hover{background:#ffffff0f;color:#ffffffe6}.nav-item.active[data-v-beee49be]{background:linear-gradient(135deg,#6366f1f2,#8b5cf6f2);box-shadow:0 8px 24px -8px #6366f199;color:#fff}.nav-item.active[data-v-beee49be]:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:4px;height:60%;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#a5b4fc,#c4b5fd)}.nav-item .nav-icon[data-v-beee49be]{width:20px;height:20px;flex-shrink:0}.nav-group[data-v-beee49be]{margin-bottom:4px}.nav-group-head[data-v-beee49be]{width:100%;background:transparent;border:none;font-family:inherit;margin-bottom:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.nav-group-head[data-v-beee49be]:focus-visible{outline:2px solid rgba(165,180,252,.8);outline-offset:2px}.group-dot[data-v-beee49be]{width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#a5b4fc,#c4b5fd);box-shadow:0 0 8px #a5b4fce6;flex-shrink:0}.nav-group-head.group-collapsed-active[data-v-beee49be]{color:#fffffff2}.nav-caret[data-v-beee49be]{width:16px;height:16px;flex-shrink:0;opacity:.55;transition:transform .28s ease,opacity .2s ease}.nav-caret.open[data-v-beee49be]{transform:rotate(180deg);opacity:.85}.nav-group-head:hover .nav-caret[data-v-beee49be]{opacity:.95}.nav-sub[data-v-beee49be]{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.nav-sub.open[data-v-beee49be]{grid-template-rows:1fr}.nav-sub-inner[data-v-beee49be]{overflow:hidden;min-height:0;padding-left:18px;position:relative}.nav-sub-inner[data-v-beee49be]:before{content:"";position:absolute;left:25px;top:6px;bottom:10px;width:1.5px;border-radius:2px;background:#ffffff1f}.nav-sub.open .nav-sub-inner[data-v-beee49be]{padding-top:4px}.nav-sub-item[data-v-beee49be]{padding:10px 14px;font-size:14px;gap:10px;margin-bottom:3px}.nav-sub-item .nav-icon[data-v-beee49be]{width:17px;height:17px}.nav-sub-item.active[data-v-beee49be]:before{left:-11px;height:55%;width:3px}.sidebar-footer[data-v-beee49be]{padding:14px 20px;border-top:1px solid rgba(255,255,255,.1);font-size:14px;color:#ffffff80}.student-selector[data-v-beee49be]{display:flex;align-items:center;gap:10px}.student-avatar[data-v-beee49be]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:600}.checkin-card[data-v-beee49be]{margin:0 12px 12px;padding:16px;border-radius:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.checkin-header[data-v-beee49be]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.checkin-icon[data-v-beee49be]{font-size:18px}.checkin-title[data-v-beee49be]{font-size:14px;font-weight:600;color:#fff}.checkin-text[data-v-beee49be]{font-size:14px;color:#ffffff80;margin-bottom:12px}.checkin-days[data-v-beee49be]{display:flex;gap:8px}.checkin-day[data-v-beee49be]{flex:1;height:8px;border-radius:4px;background:#ffffff26;transition:all .3s ease}.checkin-day.checked[data-v-beee49be]{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.bottom-nav[data-v-f6930e80]{display:none}@media(max-width:768px){.bottom-nav[data-v-f6930e80]{display:flex;position:fixed;bottom:0;left:0;right:0;height:60px;background:#fffffffa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(238,240,246,.8);z-index:100;justify-content:space-around;align-items:center;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 20px #0000000d}.bottom-nav-item[data-v-f6930e80]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;color:#8b91a8;font-size:12px;font-weight:500;border-radius:12px;transition:all .25s ease;min-width:48px}.bottom-nav-item.active[data-v-f6930e80]{color:#4f8cff}.bottom-nav-item.active .bottom-nav-icon[data-v-f6930e80]{stroke:#4f8cff;transform:scale(1.1)}.bottom-nav-icon[data-v-f6930e80]{width:20px;height:20px;transition:all .25s ease}}.dic-fab[data-v-f16eb5ba]{position:fixed;width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,#ff9a3d,#ff5e8a 60%,#7b61ff);border:none;cursor:grab;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px #ff5e8a66;z-index:1000;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;animation:fabPulse-f16eb5ba 2.5s ease-in-out infinite;-webkit-user-select:none;user-select:none}.dic-fab.dragging[data-v-f16eb5ba]{cursor:grabbing;transform:scale(1.15)!important;box-shadow:0 15px 50px #ff5e8a8c!important;animation:none}.dic-fab[data-v-f16eb5ba]:hover{transform:scale(1.08) rotate(4deg);box-shadow:0 14px 40px #ff5e8a8c}.dic-fab.open[data-v-f16eb5ba]{transform:rotate(45deg) scale(1.05);box-shadow:0 10px 30px #7b61ff73;animation:none}.dic-fab .icon[data-v-f16eb5ba]{font-size:32px;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));transition:transform .3s}.dic-fab:hover .icon[data-v-f16eb5ba]{transform:scale(1.1)}.dic-fab-tooltip[data-v-f16eb5ba]{position:fixed;background:#2d2d3ae0;color:#fff;font-size:14px;padding:8px 14px;border-radius:10px;pointer-events:none;opacity:0;transform:translate(10px);transition:all .25s;white-space:nowrap;z-index:999}.dic-fab:hover~.dic-fab-tooltip[data-v-f16eb5ba]{opacity:1;transform:translate(0)}@keyframes fabPulse-f16eb5ba{0%,to{box-shadow:0 10px 30px #ff5e8a66}50%{box-shadow:0 10px 40px #ff5e8a99}}.dic-overlay[data-v-f16eb5ba]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1f3c59;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .3s;z-index:998}.dic-overlay.show[data-v-f16eb5ba]{opacity:1;pointer-events:auto}.dic-panel[data-v-f16eb5ba]{position:fixed;right:34px;bottom:110px;width:460px;max-width:calc(100vw - 48px);max-height:calc(100vh - 150px);background:#fff;border-radius:28px;box-shadow:0 24px 60px #0000002e;display:flex;flex-direction:column;transform:translateY(30px) scale(.92);opacity:0;pointer-events:none;transition:all .35s cubic-bezier(.34,1.56,.64,1);z-index:999;overflow:hidden}.dic-panel.show[data-v-f16eb5ba]{transform:translateY(0) scale(1);opacity:1;pointer-events:auto}.dic-header[data-v-f16eb5ba]{padding:22px 24px 18px;background:linear-gradient(135deg,#7b61ff,#ff5e8a);color:#fff;position:relative;flex-shrink:0}.dic-header .title-row[data-v-f16eb5ba]{display:flex;justify-content:space-between;align-items:center}.dic-header h2[data-v-f16eb5ba]{font-size:20px;font-weight:700;display:flex;align-items:center;gap:8px}.dic-header .subtitle[data-v-f16eb5ba]{font-size:14px;opacity:.85;margin-top:4px}.dic-close[data-v-f16eb5ba]{width:32px;height:32px;border-radius:50%;background:#fff3;border:none;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.dic-close[data-v-f16eb5ba]:hover{background:#ffffff59}.dic-body[data-v-f16eb5ba]{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;min-height:0}.dic-body[data-v-f16eb5ba]::-webkit-scrollbar{width:5px}.dic-body[data-v-f16eb5ba]::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}.search-wrap[data-v-f16eb5ba]{position:relative;margin-bottom:14px;transition:all .3s ease}.search-wrap.narrowed[data-v-f16eb5ba]{margin-bottom:0;padding-bottom:0}.search-box[data-v-f16eb5ba]{display:flex;align-items:center;background:#f5f7fb;border:2px solid transparent;border-radius:16px;padding:4px;transition:border-color .2s,box-shadow .2s}.search-box[data-v-f16eb5ba]:focus-within{border-color:#7b61ff;background:#fff;box-shadow:0 0 0 4px #7b61ff1a}.search-input[data-v-f16eb5ba]{flex:1;border:none;background:transparent;padding:12px 10px 12px 14px;font-size:18px;outline:none;color:#2d2d3a;min-width:0}.search-input[data-v-f16eb5ba]::placeholder{color:#9ca3af}.lang-toggle[data-v-f16eb5ba]{display:flex;gap:2px;padding:3px;border-radius:12px;background:#0000000a;flex-shrink:0;white-space:nowrap}.lang-toggle button[data-v-f16eb5ba]{border:none;background:transparent;padding:6px 10px;border-radius:10px;font-size:14px;color:#6b7280;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.lang-toggle button.active[data-v-f16eb5ba]{background:#fff;color:#7b61ff;font-weight:600;box-shadow:0 2px 6px #0000000f}.search-btn[data-v-f16eb5ba]{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#7b61ff,#9b7cff);border:none;color:#fff;font-size:18px;cursor:pointer;margin-left:6px;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;flex-shrink:0}.search-btn[data-v-f16eb5ba]:hover{transform:translateY(-1px);box-shadow:0 6px 16px #7b61ff59}.search-hint[data-v-f16eb5ba]{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#9ca3af;margin-top:8px}.hot-words[data-v-f16eb5ba]{display:flex;gap:6px;flex-wrap:wrap}.hot-words span[data-v-f16eb5ba]{padding:4px 10px;border-radius:20px;background:#f3f0ff;color:#7b61ff;font-size:14px;cursor:pointer;transition:all .2s}.hot-words span[data-v-f16eb5ba]:hover{background:#7b61ff;color:#fff}.suggest-list[data-v-f16eb5ba]{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;border-radius:16px;box-shadow:0 16px 40px #0000001a;max-height:220px;overflow-y:auto;z-index:20;display:none}.suggest-list.show[data-v-f16eb5ba]{display:block}.suggest-item[data-v-f16eb5ba]{padding:11px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .15s;font-size:16px}.suggest-item[data-v-f16eb5ba]:first-child{border-radius:16px 16px 0 0}.suggest-item[data-v-f16eb5ba]:last-child{border-radius:0 0 16px 16px}.suggest-item[data-v-f16eb5ba]:hover,.suggest-item.selected[data-v-f16eb5ba]{background:#f3f0ff}.suggest-item .lang-tag[data-v-f16eb5ba]{font-size:14px;padding:2px 7px;border-radius:6px;color:#7b61ff;background:#f3f0ff}.dic-tabs[data-v-f16eb5ba]{display:flex;gap:8px;margin-bottom:16px;background:#f5f7fb;padding:4px;border-radius:14px}.dic-tab[data-v-f16eb5ba]{flex:1;text-align:center;padding:9px;border-radius:11px;border:none;background:transparent;color:#6b7280;font-size:14px;cursor:pointer;transition:all .2s;font-weight:500;position:relative}.dic-tab.active[data-v-f16eb5ba]{background:#fff;color:#7b61ff;box-shadow:0 2px 8px #0000000f}.dic-tab .count[data-v-f16eb5ba]{display:inline-block;margin-left:4px;min-width:18px;padding:1px 5px;border-radius:9px;background:#fff0f0;color:#ff6b6b;font-size:14px}.tab-panel[data-v-f16eb5ba]{display:none;animation:fadeIn-f16eb5ba .3s}.tab-panel.active[data-v-f16eb5ba]{display:block}@keyframes fadeIn-f16eb5ba{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.empty[data-v-f16eb5ba]{text-align:center;padding:50px 10px;color:#9ca3af}.empty .big[data-v-f16eb5ba]{font-size:48px;margin-bottom:10px}.empty p[data-v-f16eb5ba]{font-size:16px}.result-card[data-v-f16eb5ba]{background:#fff;border-radius:14px;border:1px solid #F0F2F8;padding:18px;margin-bottom:14px;display:flex;flex-direction:column}.word-head[data-v-f16eb5ba]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;flex-shrink:0}.word-title[data-v-f16eb5ba]{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.word-title .word[data-v-f16eb5ba]{font-size:34px;font-weight:800;color:#2d2d3a}.word-title .phonetic[data-v-f16eb5ba]{font-size:18px;color:#7b61ff;font-weight:500}.word-actions[data-v-f16eb5ba]{display:flex;gap:8px}.icon-btn[data-v-f16eb5ba]{width:34px;height:34px;border-radius:10px;border:1px solid #E5E7EF;background:#fff;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:18px}.icon-btn[data-v-f16eb5ba]:hover{border-color:#7b61ff;color:#7b61ff;background:#f3f0ff}.icon-btn.active[data-v-f16eb5ba]{background:#fff0f0;border-color:#ff6b6b;color:#ff6b6b}.meta-row[data-v-f16eb5ba]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;flex-shrink:0}.meta-tag[data-v-f16eb5ba]{padding:5px 11px;border-radius:8px;background:#f5f7fb;color:#6b7280;font-size:14px}.meta-tag b[data-v-f16eb5ba]{color:#2d2d3a;margin-left:3px}.section-title[data-v-f16eb5ba]{font-size:14px;font-weight:700;color:#2d2d3a;margin:14px 0 8px;display:flex;align-items:center;gap:6px}.def-text[data-v-f16eb5ba]{font-size:16px;color:#2d2d3a;line-height:1.7}.bottom-actions[data-v-f16eb5ba]{display:flex;gap:10px;margin-top:auto;flex-shrink:0}.btn[data-v-f16eb5ba]{flex:1;padding:10px;border-radius:12px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:5px}.btn-primary[data-v-f16eb5ba]{background:linear-gradient(135deg,#7b61ff,#9b7cff);color:#fff;box-shadow:0 4px 14px #7b61ff4d}.btn-primary[data-v-f16eb5ba]:hover{transform:translateY(-1px);box-shadow:0 6px 18px #7b61ff66}.btn-secondary[data-v-f16eb5ba]{background:#f5f7fb;color:#6b7280}.btn-secondary[data-v-f16eb5ba]:hover{background:#f0f2f8}.list-item[data-v-f16eb5ba]{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:14px;background:#f5f7fb;margin-bottom:8px;cursor:pointer;transition:all .2s}.list-item[data-v-f16eb5ba]:hover{background:#f3f0ff}.list-item .left[data-v-f16eb5ba]{display:flex;flex-direction:column;gap:2px}.list-item .word[data-v-f16eb5ba]{font-size:16px;font-weight:600}.list-item .time[data-v-f16eb5ba]{font-size:14px;color:#9ca3af}.list-item .del[data-v-f16eb5ba]{width:26px;height:26px;border-radius:7px;border:none;background:transparent;color:#9ca3af;cursor:pointer;display:flex;align-items:center;justify-content:center}.list-item .del[data-v-f16eb5ba]:hover{background:#fff0f0;color:#ff6b6b}.list-empty[data-v-f16eb5ba]{text-align:center;padding:30px 0;color:#9ca3af;font-size:14px}.list-header[data-v-f16eb5ba]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.clear-btn[data-v-f16eb5ba]{font-size:14px;color:#9ca3af;background:transparent;border:none;cursor:pointer}.clear-btn[data-v-f16eb5ba]:hover{color:#ff6b6b}@media(max-width:768px){.dic-fab[data-v-f16eb5ba]{width:58px;height:58px;right:16px;bottom:86px}.dic-fab .icon[data-v-f16eb5ba]{font-size:30px}.dic-fab-tooltip[data-v-f16eb5ba]{display:none}.dic-overlay[data-v-f16eb5ba]{background:#0f172a73}.dic-panel[data-v-f16eb5ba]{right:0;left:0;bottom:0;width:100%;max-width:100%;max-height:82vh;border-radius:24px 24px 0 0;transform:translateY(100%)}.dic-panel.show[data-v-f16eb5ba]{transform:translateY(0)}.dic-header[data-v-f16eb5ba]{padding:18px 18px 14px}.dic-body[data-v-f16eb5ba]{padding:16px}.search-input[data-v-f16eb5ba]{padding:10px 8px 10px 12px;font-size:18px;min-width:0}.lang-toggle button[data-v-f16eb5ba]{padding:5px 8px;font-size:14px}.search-btn[data-v-f16eb5ba]{width:38px;height:38px;flex-shrink:0}.result-card[data-v-f16eb5ba]{padding:14px}.word-title .word[data-v-f16eb5ba]{font-size:30px}.bottom-actions[data-v-f16eb5ba]{margin-top:16px}}.page-footer[data-v-9f85a3c8]{text-align:center;padding:24px;color:#94a3b8;font-size:13px;line-height:1.8;border-top:none;margin-top:24px;background:linear-gradient(180deg,#fff0,#f8fafc);border-radius:12px}.footer-text[data-v-9f85a3c8]{color:#94a3b8;letter-spacing:.3px}.footer-beian[data-v-9f85a3c8]{display:block}.footer-beian a[data-v-9f85a3c8]{color:#64748b;text-decoration:none;transition:color .2s ease}.footer-beian a[data-v-9f85a3c8]:hover{color:#3b82f6;text-decoration:underline}.sep[data-v-9f85a3c8]{color:#cbd5e1}.app-layout[data-v-8f035453]{display:flex;height:100vh;overflow:hidden}.main-wrapper[data-v-8f035453]{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.header[data-v-8f035453]{height:80px;background:#fff;border-bottom:1px solid #eef0f6;display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}.header-title[data-v-8f035453]{font-size:24px;font-weight:700;color:#1a1d29}.header-subtitle[data-v-8f035453]{font-size:16px;color:#8b91a8;display:none}.header-search[data-v-8f035453]{display:flex;align-items:center;background:#f5f6fb;border-radius:12px;padding:8px 12px;border:1px solid #eef0f6}.header-notification[data-v-8f035453]{position:relative;padding:8px;border-radius:12px;cursor:pointer;transition:background .2s}.header-notification[data-v-8f035453]:hover{background:#f5f6fb}.notification-dot[data-v-8f035453]{position:absolute;top:6px;right:6px;width:8px;height:8px;background:#ef4444;border-radius:50%;border:2px solid white}.student-avatar[data-v-8f035453]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:600}.student-avatar-img[data-v-8f035453]{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #f5f6fb}.student-avatar-circle[data-v-8f035453]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:600;flex-shrink:0}.parent-info-display[data-v-8f035453]{display:flex;align-items:center;gap:10px}.parent-avatar-wrap[data-v-8f035453]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:600;flex-shrink:0;overflow:hidden}.parent-avatar-img[data-v-8f035453]{width:100%;height:100%;object-fit:cover}.parent-info-text[data-v-8f035453]{display:flex;flex-direction:column}.parent-name[data-v-8f035453]{font-size:16px;font-weight:600;color:#1a1d29}.current-student-tag[data-v-8f035453]{font-size:14px;color:#8b91a8;margin-top:2px}.student-info[data-v-8f035453]{display:flex;flex-direction:column}.student-name[data-v-8f035453]{font-size:16px;font-weight:600;color:#1a1d29}.student-grade[data-v-8f035453]{font-size:14px;color:#8b91a8}.user-menu-wrapper[data-v-8f035453]{position:relative;display:inline-flex;flex-direction:column;align-items:flex-end}.user-menu[data-v-8f035453]{padding:8px;cursor:pointer;transition:background .2s;border-radius:8px}.user-menu[data-v-8f035453]:hover{background:#f5f6fb}.user-menu-dropdown[data-v-8f035453]{position:absolute;top:100%;right:0;min-width:160px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:8px 0;z-index:1000;border:1px solid #eef0f6;margin-top:0}.user-menu-dropdown[data-v-8f035453]:before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px;background:transparent}.user-menu-wrapper>.user-menu-dropdown[data-v-8f035453]{pointer-events:auto}.user-menu-item[data-v-8f035453]{width:100%;display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:14px;color:#5b6278;background:transparent;border:none;cursor:pointer;transition:background .2s;text-align:left}.user-menu-item[data-v-8f035453]:hover{background:#f5f6fb;color:#1a1d29}.dropdown-enter-active[data-v-8f035453],.dropdown-leave-active[data-v-8f035453]{transition:opacity .2s ease,transform .2s ease}.dropdown-enter-from[data-v-8f035453],.dropdown-leave-to[data-v-8f035453]{opacity:0;transform:translateY(-8px)}.student-switcher-dropdown[data-v-8f035453]{padding:8px 12px 4px;border-bottom:1px solid #eef0f6;margin-bottom:4px;position:relative}.switcher-label[data-v-8f035453]{font-size:14px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;padding-left:4px}.switcher-student[data-v-8f035453]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;transition:background .2s}.switcher-student[data-v-8f035453]:hover{background:#f5f6fb}.switcher-avatar[data-v-8f035453]{width:24px;height:24px;border-radius:50%;object-fit:cover}.switcher-avatar-placeholder[data-v-8f035453]{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600;flex-shrink:0}.switcher-name[data-v-8f035453]{font-size:14px;font-weight:600;color:#1a1d29;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-grade[data-v-8f035453]{font-size:14px;color:#8b91a8;white-space:nowrap}.switcher-list[data-v-8f035453]{position:absolute;top:100%;right:0;min-width:200px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:4px 0;z-index:1001;border:1px solid #eef0f6;margin-top:4px}.switcher-option[data-v-8f035453]{width:100%;display:flex;align-items:center;gap:10px;padding:8px 16px;font-size:14px;color:#5b6278;background:transparent;border:none;cursor:pointer;transition:background .2s;text-align:left}.switcher-option[data-v-8f035453]:hover{background:#f5f6fb}.switcher-option.active[data-v-8f035453]{background:#eef2ff;color:#4f46e5}.switcher-option-avatar[data-v-8f035453]{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.switcher-option-avatar-placeholder[data-v-8f035453]{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600;flex-shrink:0}.switcher-option-name[data-v-8f035453]{font-size:14px;font-weight:600;color:#1a1d29}.switcher-option-grade[data-v-8f035453]{font-size:14px;color:#8b91a8}.main-content[data-v-8f035453]{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 24px 120px;width:100%;box-sizing:border-box;min-width:0}.profile-page-container .main-content[data-v-8f035453]{overflow-y:auto!important;padding-bottom:160px!important}.notification-panel[data-v-8f035453]{position:fixed;top:80px;right:24px;width:360px;max-height:calc(100vh - 100px);background:#fff;border-radius:16px;box-shadow:0 12px 32px #00000026;z-index:999;display:flex;flex-direction:column;overflow:hidden}.notification-panel-header[data-v-8f035453]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eef0f6}.notification-panel-header h3[data-v-8f035453]{font-size:18px;font-weight:600;color:#1a1d29;margin:0}.close-btn[data-v-8f035453]{padding:4px;border:none;background:transparent;cursor:pointer;border-radius:8px;color:#8b91a8;transition:background .2s}.close-btn[data-v-8f035453]:hover{background:#f5f6fb;color:#1a1d29}.notification-list[data-v-8f035453]{overflow-y:auto;padding:8px 0;flex:1}.notification-empty[data-v-8f035453]{text-align:center;padding:32px 16px;color:#8b91a8}.notification-empty span[data-v-8f035453]{font-size:36px;display:block;margin-bottom:8px}.notification-item[data-v-8f035453]{display:flex;align-items:flex-start;gap:12px;padding:12px 20px;border-left:3px solid;transition:background .2s}.notification-item[data-v-8f035453]:hover{background:#f5f6fb}.notification-overlay[data-v-8f035453]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:998;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.notification-icon-wrapper[data-v-8f035453]{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0}.notification-body[data-v-8f035453]{flex:1;min-width:0}.notification-title[data-v-8f035453]{font-size:14px;font-weight:500;color:#1a1d29;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-desc[data-v-8f035453]{font-size:14px;color:#8b91a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slide-up-enter-active[data-v-8f035453],.slide-up-leave-active[data-v-8f035453]{transition:opacity .2s ease,transform .2s ease}.slide-up-enter-from[data-v-8f035453],.slide-up-leave-to[data-v-8f035453]{opacity:0;transform:translateY(-8px)}.menu-toggle[data-v-8f035453]{display:none;width:36px;height:36px;border-radius:12px;background:transparent;border:none;color:#8b91a8;cursor:pointer;transition:background .2s}.menu-toggle[data-v-8f035453]:hover{background:#f5f6fb}.sidebar-overlay[data-v-8f035453]{display:none}@media(max-width:768px){.app-layout[data-v-8f035453]{height:100vh;overflow:hidden}.header[data-v-8f035453]{height:54px;padding:0 12px}.header-title[data-v-8f035453]{font-size:18px}.header-subtitle[data-v-8f035453],.header-search[data-v-8f035453]{display:none}.menu-toggle[data-v-8f035453]{display:flex;align-items:center;justify-content:center}.parent-info-text[data-v-8f035453],.student-info[data-v-8f035453]{display:none}.main-content[data-v-8f035453]{padding:12px 12px 80px}.profile-page-container .main-content[data-v-8f035453]{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))!important}.sidebar-overlay[data-v-8f035453]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@media(min-width:769px){.header-subtitle[data-v-8f035453]{display:inline}}.login-page[data-v-ef24eeb5]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 80% at 0% 0%,rgba(99,102,241,.18) 0%,transparent 60%),radial-gradient(120% 80% at 100% 100%,rgba(139,92,246,.2) 0%,transparent 60%),linear-gradient(180deg,#16182d,#1d2040,#23264a)}.login-container[data-v-ef24eeb5]{width:100%;max-width:400px;padding:40px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.login-header[data-v-ef24eeb5]{text-align:center;margin-bottom:32px}.login-logo[data-v-ef24eeb5]{margin-bottom:12px}.login-logo svg[data-v-ef24eeb5]{width:52px;height:52px}.login-title[data-v-ef24eeb5]{font-size:32px;font-weight:700;color:#fff;margin-bottom:6px}.login-subtitle[data-v-ef24eeb5]{font-size:18px;color:#ffffff80}.login-form[data-v-ef24eeb5]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-ef24eeb5]{display:flex;flex-direction:column;gap:8px}.form-label[data-v-ef24eeb5]{font-size:16px;font-weight:500;color:#fffc}.form-input[data-v-ef24eeb5]{padding:14px 16px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;color:#fff;font-size:18px;transition:all .2s}.form-input[data-v-ef24eeb5]:focus{outline:none;border-color:#6366f180;background:#ffffff1a}.form-input[data-v-ef24eeb5]::placeholder{color:#ffffff4d}.checkbox-group[data-v-ef24eeb5]{flex-direction:row;align-items:center;padding:0}.checkbox-label[data-v-ef24eeb5]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.form-checkbox[data-v-ef24eeb5]{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}.checkbox-text[data-v-ef24eeb5]{font-size:16px;color:#ffffffb3}.checkbox-label:hover .checkbox-text[data-v-ef24eeb5]{color:#ffffffe6}.login-btn[data-v-ef24eeb5]{padding:14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:20px;font-weight:600;border-radius:12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.login-btn[data-v-ef24eeb5]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px -8px #6366f199}.login-btn[data-v-ef24eeb5]:disabled{opacity:.6;cursor:not-allowed}.loading-spinner[data-v-ef24eeb5]{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-ef24eeb5 .8s linear infinite}@keyframes spin-ef24eeb5{to{transform:rotate(360deg)}}.login-footer[data-v-ef24eeb5]{margin-top:24px;text-align:center}.register-link[data-v-ef24eeb5]{background:none;border:none;color:#ffffff8c;font-size:16px;cursor:pointer;transition:color .2s}.register-link[data-v-ef24eeb5]:hover{color:#8b5cf6}.login-hint[data-v-ef24eeb5]{color:#fff6;font-size:16px}.modal-overlay[data-v-ef24eeb5]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9!important;display:flex!important;align-items:center;justify-content:center;z-index:9999!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1!important}.modal[data-v-ef24eeb5]{width:90%;max-width:450px;background:#252540!important;border:2px solid #6366f1!important;border-radius:16px;overflow:hidden;box-shadow:0 0 40px #6366f180!important}.modal-header[data-v-ef24eeb5]{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3[data-v-ef24eeb5]{color:#fff!important;font-size:28px;font-weight:700}.modal-close[data-v-ef24eeb5]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#ffffff80;font-size:28px;border-radius:8px;cursor:pointer;transition:all .2s}.modal-close[data-v-ef24eeb5]:hover{background:#ffffff1a;color:#fff}.modal-body[data-v-ef24eeb5]{padding:24px}.modal-footer[data-v-ef24eeb5]{display:flex;gap:12px;padding:20px 24px;border-top:1px solid rgba(255,255,255,.1)}.btn[data-v-ef24eeb5]{flex:1;padding:12px;border-radius:10px;font-size:18px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary[data-v-ef24eeb5]{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.btn-primary[data-v-ef24eeb5]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #6366f166}.btn-outline[data-v-ef24eeb5]{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fffc}.btn-outline[data-v-ef24eeb5]:hover{background:#ffffff1a}.btn[data-v-ef24eeb5]:disabled{opacity:.6;cursor:not-allowed}.toast-error[data-v-ef24eeb5]{position:fixed;top:40px;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:12px;padding:14px 20px;background:#252540f2;border:1px solid rgba(231,76,60,.45);border-radius:12px;box-shadow:0 16px 40px #00000059;color:#fff;font-size:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toast-icon[data-v-ef24eeb5]{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e74c3ce6;color:#fff;font-size:14px;font-weight:700;flex-shrink:0}.toast-text[data-v-ef24eeb5]{line-height:1.5;white-space:nowrap}.toast-close[data-v-ef24eeb5]{margin-left:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#ffffff80;font-size:18px;cursor:pointer;transition:all .2s;flex-shrink:0}.toast-close[data-v-ef24eeb5]:hover{background:#ffffff1a;color:#fff}.toast-enter-active[data-v-ef24eeb5],.toast-leave-active[data-v-ef24eeb5]{transition:all .25s ease}.toast-enter-from[data-v-ef24eeb5],.toast-leave-to[data-v-ef24eeb5]{opacity:0;transform:translate(-50%) translateY(-16px)}@media(max-width:480px){.login-container[data-v-ef24eeb5]{margin:20px;padding:30px 24px}.login-title[data-v-ef24eeb5]{font-size:28px}}@font-face{font-family:iconfont;src:url(/assets/iconfont-D1iIL5AW.woff2?t=1784643544398) format("woff2"),url(/assets/iconfont-aleiz14w.woff?t=1784643544398) format("woff"),url(/assets/iconfont-Dqp6UkHC.ttf?t=1784643544398) format("truetype"),url(iconfont.svg?t=1784643544398#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.zuoye-icon-tushu:before{content:""}.zuoye-icon-yuwen:before{content:""}.zuoye-icon-yuwen1:before{content:""}.zuoye-icon-shuxue:before{content:""}.zuoye-icon-yingyu:before{content:""}.zuoye-icon-yingyushuiping:before{content:""}.zuoye-icon-yuedujilu:before{content:""}.zuoye-icon-yuedujilu1:before{content:""}.zuoye-icon-yuedujilu2:before{content:""}.zuoye-icon-shuxue1:before{content:""}.zuoye-icon-wuli:before{content:""}.zuoye-icon-yingyu-tianchong:before{content:""}.zuoye-icon-wuli-tianchong:before{content:""}.zuoye-icon-zuoye:before{content:""}.zuoye-icon-yuedujilu3:before{content:""}.zuoye-icon-yuwen2:before{content:""}.zuoye-icon-shuben:before{content:""}.zuoye-icon-cuotiben:before{content:""}.zuoye-icon-shuben_2:before{content:""}.zuoye-icon-yingyu1:before{content:""}.zuoye-icon-shouye:before{content:""}.zuoye-icon-cuotiben1:before{content:""}.zuoye-icon-cuotiben2:before{content:""}.zuoye-icon-shuxue2:before{content:""}.zuoye-icon-cuotiben3:before{content:""}:root{--primary: #4f8cff;--primary-dark: #3a7bff;--primary-light: #e8f1ff;--bg: #f5f6fb;--card-bg: #ffffff;--text: #1a1d29;--text-light: #7f8c8d;--text-lighter: #b0b8c1;--muted: #8b91a8;--border: #eef0f6;--border-light: #f0f3f7;--success: #2ecc71;--success-light: #e8f9f0;--warning: #f39c12;--warning-light: #fef5e7;--danger: #e74c3c;--danger-light: #fdecea;--info: #3498db;--purple: #9b59b6;--purple-light: #f5eef8;--shadow: 0 2px 12px rgba(0,0,0,.06);--shadow-lg: 0 8px 30px rgba(0,0,0,.12);--shadow-hover: 0 4px 20px rgba(0,0,0,.1);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--sidebar-w: 220px;--topbar-h: 60px;--bottom-nav-h: 56px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:18px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:inherit}ul{list-style:none}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{background:var(--card-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100;flex-shrink:0}.sidebar-header{height:var(--topbar-h);display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--border-light);gap:10px}.sidebar-logo{font-size:24px}.sidebar-title{font-size:18px;font-weight:700;color:var(--text)}.nav-list{flex:1;padding:12px 10px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:var(--radius-sm);color:var(--text-light);font-size:16px;font-weight:500;margin-bottom:4px;transition:all .2s;cursor:pointer}.nav-item:hover{background:var(--primary-light);color:var(--primary)}.nav-item.active{background:var(--primary);color:#fff}.nav-item .nav-icon{font-size:20px;width:24px;text-align:center}.sidebar-footer{padding:14px 20px;border-top:1px solid var(--border-light);font-size:14px;color:var(--text-lighter)}.main-content{flex:1;margin-left:0;display:flex;flex-direction:column}.main-wrapper{flex:1;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);background:var(--card-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50}.topbar-left{display:flex;align-items:center;gap:14px}.topbar-title{font-size:20px;font-weight:700;font-size:24px;cursor:pointer;padding:4px}.topbar-right{display:flex;align-items:center;gap:12px}.menu-toggle{display:none}@media(max-width:768px){.menu-toggle{display:flex}}.student-selector{display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--bg);border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.student-selector:hover{background:var(--primary-light)}.student-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600}.bell-btn{position:relative;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;transition:all .2s}.bell-btn:hover{background:var(--primary-light)}.bell-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;background:var(--danger);color:#fff;font-size:14px;font-weight:600;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px}.content-area{flex:1;padding:24px;max-width:1400px;width:100%;margin:0 auto}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:18px;font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:20px}.stat-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;position:relative;overflow:hidden;transition:all .2s}.stat-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.stat-card .stat-icon{position:absolute;top:16px;right:16px;font-size:36px;opacity:.2}.stat-card .stat-value{font-size:32px;font-weight:700;line-height:1.2}.stat-card .stat-label{font-size:14px;color:var(--text-light);margin-top:4px}.stat-card .stat-extra{font-size:14px;margin-top:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-sm);font-size:16px;font-weight:500;transition:all .2s;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border:1px solid var(--border);color:var(--text);background:var(--card-bg)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-success{background:var(--success);color:#fff}.btn-sm{padding:5px 12px;font-size:14px}.btn-icon{padding:8px;border-radius:var(--radius-sm)}.btn-icon:hover{background:var(--bg)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px;color:var(--text)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:16px;background:var(--card-bg);color:var(--text);transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-textarea{resize:vertical;min-height:80px}.form-row{display:flex;gap:12px}.form-row>.form-group{flex:1}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:14px;font-weight:600}.tag-blue{background:var(--primary-light);color:var(--primary)}.tag-green{background:var(--success-light);color:var(--success)}.tag-orange{background:var(--warning-light);color:var(--warning)}.tag-red{background:var(--danger-light);color:var(--danger)}.tag-gray{background:#f0f3f7;color:var(--text-light)}.tag-purple{background:var(--purple-light);color:var(--purple)}.list-item{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;margin-bottom:12px;display:flex;align-items:center;gap:14px;transition:all .2s;border-left:4px solid transparent}.list-item:hover{box-shadow:var(--shadow-hover)}.list-item.done{opacity:.65}.list-item.done .item-title{text-decoration:line-through}.list-item-body{flex:1;min-width:0}.list-item-title{font-size:18px;font-weight:600;margin-bottom:4px}.list-item-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--text-light)}.list-item-actions{display:flex;gap:6px;align-items:center}.subject-dot{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-weight:600}.subject-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.check-box{width:22px;height:22px;border:2px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.check-box:hover{border-color:var(--primary)}.check-box.checked{background:var(--success);border-color:var(--success);color:#fff}.check-box.checked:after{content:"✓";font-size:16px;font-weight:700}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;opacity:0;visibility:hidden;transition:all .25s}.modal-overlay.active{opacity:1;visibility:visible}.modal{background:var(--card-bg);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);transform:translateY(20px) scale(.98);transition:transform .25s}.modal-overlay.active .modal{transform:translateY(0) scale(1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border-light)}.modal-title{font-size:18px;font-weight:700}.modal-close{font-size:28px;color:var(--text-lighter);cursor:pointer;line-height:1;padding:4px}.modal-close:hover{color:var(--text)}.modal-body{padding:24px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--border-light)}.reminder-panel{position:fixed;top:var(--topbar-h);right:16px;width:360px;max-height:70vh;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden;display:none;flex-direction:column}.reminder-panel.active{display:flex;animation:slideDown .25s ease}@keyframes slideDown{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.reminder-panel-header{padding:16px 20px;border-bottom:1px solid var(--border-light);font-weight:700;font-size:18px}.reminder-list{flex:1;overflow-y:auto;padding:8px}.reminder-item{display:flex;gap:12px;padding:12px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.reminder-item:hover{background:var(--bg)}.reminder-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.reminder-body{flex:1;min-width:0}.reminder-title{font-size:14px;font-weight:600;margin-bottom:2px}.reminder-desc{font-size:14px;color:var(--text-light)}.reminder-empty{padding:40px 20px;text-align:center;color:var(--text-lighter);font-size:16px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-lighter)}.empty-state .empty-icon{font-size:52px;margin-bottom:12px}.empty-state .empty-text{font-size:18px}.progress-bar{width:100%;height:8px;background:var(--border-light);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:4px;transition:width .4s ease}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:20px}.filter-bar .form-select,.filter-bar .form-input{width:auto;min-width:130px;padding:8px 12px}.bottom-nav{display:none}@media(max-width:1024px){:root{--sidebar-w: 200px}.content-area{padding:20px}}@media(max-width:768px){:root{--topbar-h: 54px;--bottom-nav-h: 60px}html{font-size:16px}.flex.h-screen>main{margin-left:0!important}.sidebar,.subjects-page .sidebar,#app .sidebar{position:fixed!important;left:-300px;top:0;bottom:0;width:260px!important;z-index:200;height:100vh;overflow-y:auto;transition:left .3s ease}.sidebar.open,.subjects-page .sidebar.open,#app .sidebar.open{left:0}body>.flex>main,.subjects-page>main,#app>.flex>main{margin-left:0!important;padding-bottom:calc(var(--bottom-nav-h) + 20px)}.menu-toggle{display:block}.topbar{padding:0 12px;height:var(--topbar-h)}.topbar-title{font-size:18px}.topbar-left{gap:10px}.topbar-right{gap:8px}.student-selector{padding:4px 10px}.content-area{padding:12px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:14px}.stat-card .stat-value{font-size:28px}.stat-card .stat-icon{font-size:32px}.card{padding:14px}.panel{padding:12px}.form-row{flex-direction:column;gap:0}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-h);background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);z-index:100;justify-content:space-around;align-items:center;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 10px #0000000d}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;color:var(--text-lighter);font-size:12px;font-weight:500;border-radius:var(--radius-sm);transition:all .2s;min-width:48px}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item.active svg{stroke:var(--primary)}.bottom-nav-item svg{font-size:20px;stroke-width:2}.reminder-panel{width:calc(100% - 16px);right:8px;left:8px}.list-item{padding:12px;gap:8px;flex-wrap:wrap}.list-item-actions{width:100%;justify-content:flex-end}.modal{max-width:100%;margin:12px}.modal-header{padding:14px 18px}.modal-body{padding:18px}.modal-footer{padding:12px 18px}.filter-bar{gap:8px}.filter-bar .form-select,.filter-bar .form-input{min-width:0;flex:1;padding:6px 10px}.fab{bottom:calc(var(--bottom-nav-h) + 16px);right:16px;width:50px;height:50px}.fab svg{width:24px;height:24px}.mini-stat{padding:12px 14px}.mini-stat .text-2xl{font-size:1.5rem}.mini-stat .text-xs{font-size:.65rem}.px-7{padding-left:12px;padding-right:12px}.py-6{padding-top:12px;padding-bottom:12px}h1.text-22px{font-size:1.25rem}.subject-card{padding:16px}.grid.grid-cols-2,.grid.grid-cols-4,.grid.grid-cols-3{grid-template-columns:repeat(2,1fr)!important}.subjects-page .hero{padding:18px 20px;flex-direction:column;align-items:flex-start;gap:14px}.subjects-page .hero h2{font-size:20px}.subjects-page .hero p{font-size:14px}.subjects-page .hero .actions{width:100%}.subjects-page .hero .actions button{width:100%;justify-content:center}.subjects-page .kpis{grid-template-columns:repeat(2,1fr);gap:12px}.subjects-page .kpi .num{font-size:28px}.subjects-page .subjects{grid-template-columns:1fr}.subjects-page .subject{padding:16px}.subjects-page .subj-top{flex-wrap:wrap}.subjects-page .subj-actions{margin-left:0;width:100%;justify-content:flex-end;margin-top:8px}.homework-page .mini-stat{padding:14px}.homework-page .day-header{padding:14px 16px}.homework-page .day-group.open .day-body{padding:0 16px 16px}.homework-page .homework-card{padding:12px;flex-wrap:wrap}.homework-page .homework-card>div:first-child{flex:1;min-width:0}.homework-page .homework-card .sub-icon{width:36px;height:36px;font-size:14px}.homework-page .filter-bar{flex-wrap:wrap;gap:6px}.homework-page .filter-chip{padding:6px 10px;font-size:14px}.reading-page .stats-row{grid-template-columns:repeat(2,1fr);gap:12px}.reading-page .stat-card{padding:14px}.reading-page .stat-card .num{font-size:28px}.reading-page .date-filter{flex-wrap:wrap;gap:6px}.reading-page .date-filter button{padding:6px 10px;font-size:14px}.recitation-page .stats-row{grid-template-columns:repeat(2,1fr);gap:12px}.recitation-page .stat-card{padding:14px}.recitation-page .stat-card .num{font-size:28px}.recitation-page .filter-bar,.errors-page .filter-bar{flex-wrap:wrap;gap:6px}.errors-page .error-card{padding:14px}}@media(max-width:480px){.stats-grid{grid-template-columns:repeat(2,1fr)}.topbar-title{display:none}.student-selector span:not(.student-avatar){display:none}.topbar .relative{display:none}.stat-card .stat-value{font-size:24px}.mini-stat .text-2xl{font-size:1.25rem}.panel{padding:10px}.bottom-nav-item{font-size:12px}.bottom-nav-item svg{font-size:18px}.modal-footer button{padding:8px 14px;font-size:14px}.grid.grid-cols-2{grid-template-columns:1fr!important}.grid.grid-cols-4{grid-template-columns:repeat(2,1fr)!important}.grid.grid-cols-3{grid-template-columns:1fr!important}.subjects-page .kpis{grid-template-columns:1fr}.homework-page .mini-stat,.homework-page .day-header{padding:12px}.homework-page .homework-card{padding:10px}.homework-page .homework-card .sub-icon{width:32px;height:32px;font-size:14px}.reading-page .stats-row{grid-template-columns:1fr}.reading-page .stat-card .num{font-size:24px}.recitation-page .stats-row{grid-template-columns:1fr}.recitation-page .stat-card .num{font-size:24px}}.pagination-wrapper{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 3px #0000000a}.pagination-left{font-size:14px;color:var(--muted)}.pagination-total{font-weight:500;color:var(--text)}.pagination-right{display:flex;align-items:center;gap:16px}.page-nav{display:flex;align-items:center;gap:10px}.page-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:var(--card-bg);color:var(--text);cursor:pointer;transition:all .2s ease}.page-btn:hover:not(.disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.page-btn.disabled{opacity:.35;cursor:not-allowed}.page-indicator{display:flex;align-items:center;gap:6px;padding:0 8px;font-size:14px}.current-page{min-width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--primary);color:#fff;font-weight:600;font-size:14px}.page-divider,.total-pages{color:var(--muted)}.page-size-select{height:34px;padding:0 12px;font-size:14px;border:1px solid var(--border);border-radius:10px;background:var(--card-bg);color:var(--text);cursor:pointer;outline:none;transition:all .2s ease;min-width:96px}.page-size-select:hover,.page-size-select:focus{border-color:var(--primary)}@media(max-width:640px){.pagination-wrapper{flex-direction:column;gap:12px;align-items:stretch}.pagination-right{justify-content:space-between}}.overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.overlay.active{display:block}.notify-hint{position:fixed;bottom:70px;right:20px;background:var(--warning);color:#fff;padding:12px 18px;border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:14px;z-index:300;display:none;gap:8px;align-items:center}.notify-hint.active{display:flex}.notify-hint .close-hint{cursor:pointer;margin-left:8px;opacity:.8}.notify-hint .close-hint:hover{opacity:1}.toast-container{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{padding:10px 20px;border-radius:var(--radius-sm);font-size:16px;font-weight:500;box-shadow:var(--shadow-lg);animation:toastIn .3s ease;max-width:90vw}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}.toast-info{background:var(--text);color:#fff}@keyframes toastIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.chart-container{position:relative;height:200px;margin-top:10px}.subject-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:flex;align-items:center;gap:14px;transition:all .2s}.subject-card:hover{box-shadow:var(--shadow-hover)}.subject-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.mastery-stars{display:inline-flex;gap:2px}.mastery-stars .star{font-size:16px}.mastery-stars .star.active{color:var(--warning)}.mastery-stars .star.inactive{color:var(--border)}.date-group-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000f,0 2px 8px #0000000a;border:1px solid var(--border-light);margin-bottom:16px;overflow:hidden;transition:all .25s ease}.date-group-card:hover{box-shadow:0 4px 16px #00000014}.date-group-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;transition:all .2s ease;background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.date-group-header:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.date-group-left{display:flex;align-items:center;gap:14px}.date-arrow-wrapper{width:32px;height:32px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000014;transition:all .2s ease;flex-shrink:0}.date-arrow-wrapper:hover{transform:scale(1.05)}.date-arrow{width:16px;height:16px;color:var(--primary);transition:transform .25s ease}.date-group-header.expanded .date-arrow{transform:rotate(90deg)}.date-info{display:flex;flex-direction:column;gap:2px}.date-title{font-size:18px;font-weight:700;color:var(--text)}.date-meta{display:flex;gap:12px}.meta-item{font-size:14px;color:var(--text-light)}.meta-item.done{color:var(--success);font-weight:600}.meta-item.overdue{color:var(--danger);font-weight:600}.date-group-right{display:flex;align-items:center;gap:16px}.date-progress{display:flex;align-items:center;gap:8px}.progress-bar-bg{width:60px;height:6px;border-radius:3px;background:#e2e8f0;overflow:hidden}.progress-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--success),#86efac);transition:width .4s ease}.progress-text{font-size:14px;font-weight:600;color:var(--text-light);min-width:36px}.date-actions{display:flex;gap:6px}.action-btn{width:36px;height:36px;border-radius:10px;border:none;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000000f}.action-btn svg{width:16px;height:16px}.copy-btn{color:var(--primary)}.copy-btn:hover{background:var(--primary-light);transform:translateY(-1px)}.batch-btn{color:var(--purple)}.batch-btn:hover{background:var(--purple-light);transform:translateY(-1px)}.add-btn{color:var(--success)}.add-btn:hover{background:var(--success-light);transform:translateY(-1px)}.date-group-content{padding:12px 20px 20px;display:none;animation:slideDown .25s ease}.date-group-content.show{display:block}.hw-card{display:flex;align-items:center;gap:14px;padding:14px 18px;background:#fafafa;border-radius:12px;margin-bottom:8px;border:1px solid transparent;transition:all .2s ease}.hw-card:hover{background:#fff;border-color:var(--border);box-shadow:0 2px 12px #0000000f}.hw-card.hw-done{opacity:.6}.hw-card.hw-overdue{border-color:#e74c3c4d;background:#e74c3c08}.hw-checkbox{width:24px;height:24px;border-radius:8px;border:2px solid #cbd5e1;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s ease}.hw-checkbox:hover{border-color:var(--success)}.hw-card.hw-done .hw-checkbox{background:var(--success);border-color:var(--success)}.hw-checkbox svg{width:14px;height:14px}.hw-body{flex:1;min-width:0}.hw-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.hw-subject-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.hw-title{font-size:18px;font-weight:600;color:var(--text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hw-card.hw-done .hw-title{text-decoration:line-through;color:var(--text-light)}.overdue-badge{padding:2px 8px;border-radius:4px;background:var(--danger);color:#fff;font-size:14px;font-weight:600;flex-shrink:0}.hw-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.hw-tag{padding:2px 8px;border-radius:6px;background:#f1f5f9;color:var(--text-light);font-size:14px;font-weight:500}.hw-content{font-size:14px;color:var(--text-light);margin:0;line-height:1.5}.hw-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.hw-btn-complete{padding:6px 14px;border-radius:8px;background:var(--success);color:#fff;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.hw-btn-complete:hover{background:#22c55e;transform:translateY(-1px)}.hw-btn-edit,.hw-btn-delete{width:30px;height:30px;border-radius:8px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.hw-btn-edit:hover{background:#e0e7ff}.hw-btn-delete:hover{background:#fee2e2}.hw-btn-edit svg,.hw-btn-delete svg{width:14px;height:14px}.hw-btn-edit{color:var(--primary)}.hw-btn-delete{color:var(--danger)}:root{--muted: #8b91a8;--brand: #6366f1;--brand-2: #8b5cf6}body{font-family:Inter,Noto Sans SC,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar{background:radial-gradient(120% 80% at 0% 0%,rgba(99,102,241,.18) 0%,transparent 60%),radial-gradient(120% 80% at 100% 100%,rgba(139,92,246,.2) 0%,transparent 60%),linear-gradient(180deg,#16182d,#1d2040,#23264a);display:flex;flex-direction:column}body>.flex{display:flex;min-height:100vh;height:100vh}main{overflow-y:auto;flex:1}.nav-item{position:relative;transition:all .25s ease}.nav-item:hover{background:#ffffff0f}.nav-item.active{background:linear-gradient(135deg,#6366f1f2,#8b5cf6f2);box-shadow:0 8px 24px -8px #6366f199}.nav-item.active:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:4px;height:60%;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#a5b4fc,#c4b5fd)}.stat-card{position:relative;overflow:hidden;border-radius:20px;padding:22px 22px 20px;color:#fff;box-shadow:0 10px 30px -12px #0000002e;transition:transform .3s ease,box-shadow .3s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -12px #00000038}.stat-card:after{content:"";position:absolute;right:-30px;top:-30px;width:140px;height:140px;border-radius:50%;background:#ffffff1a}.stat-card:before{content:"";position:absolute;right:-10px;bottom:-50px;width:90px;height:90px;border-radius:50%;background:#ffffff12}.c-purple{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.c-amber{background:linear-gradient(135deg,#f59e0b,#fb923c)}.c-pink{background:linear-gradient(135deg,#ec4899,#f472b6)}.c-cyan{background:linear-gradient(135deg,#06b6d4,#3b82f6)}.panel{background:#fff;border-radius:20px;box-shadow:0 1px 2px #0f172a0a,0 8px 24px -12px #0f172a14;border:1px solid var(--border)}.progress-track{height:8px;border-radius:999px;background:#eef0f6;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width 1.2s cubic-bezier(.2,.8,.2,1)}.progress-fill.amber{background:linear-gradient(90deg,#f59e0b,#fb923c)}.progress-fill.pink{background:linear-gradient(90deg,#ec4899,#f472b6)}.fab-notify{position:fixed;right:24px;bottom:24px;background:linear-gradient(135deg,#1f2937,#374151);color:#fff;padding:12px 18px 12px 14px;border-radius:999px;display:flex;align-items:center;gap:10px;box-shadow:0 12px 30px -8px #1f293780;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .2s ease}.fab-notify:hover{transform:translateY(-2px)}.fab-notify .dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 #10b98199;animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 #10b98199}70%{box-shadow:0 0 0 10px #10b98100}to{box-shadow:0 0 #10b98100}}.section-title{font-size:18px;font-weight:600;color:#1a1d29;display:flex;align-items:center;gap:8px}.section-title .bar{width:4px;height:16px;border-radius:2px;background:linear-gradient(180deg,#6366f1,#8b5cf6)}.mini-stat{position:relative;border-radius:16px;padding:16px 18px;color:#fff;box-shadow:0 6px 18px -8px #0000002e;transition:transform .25s ease}.mini-stat:hover{transform:translateY(-2px)}.mini-stat:after{content:"";position:absolute;right:-18px;top:-18px;width:80px;height:80px;border-radius:50%;background:#ffffff14}.sub-语文{background:linear-gradient(135deg,#f59e0b,#fbbf24)}.sub-数学{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.sub-英语{background:linear-gradient(135deg,#ec4899,#f472b6)}.sub-物理{background:linear-gradient(135deg,#06b6d4,#3b82f6)}.sub-化学{background:linear-gradient(135deg,#10b981,#34d399)}.sub-政治{background:linear-gradient(135deg,#8b5cf6,#a855f7)}.sub-历史{background:linear-gradient(135deg,#f97316,#fb923c)}.fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -8px #6366f18c;cursor:pointer;transition:transform .2s;z-index:100}.fab:hover{transform:translateY(-3px) scale(1.05)}.status-badge{font-size:14px;padding:5px 10px;border-radius:999px;font-weight:500;white-space:nowrap}.c-emerald{background:linear-gradient(135deg,#10b981,#34d399)}.c-rose{background:linear-gradient(135deg,#f43f5e,#fb7185)}.c-indigo{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#ec4899);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:16px;box-shadow:0 4px 12px -2px #6366f166}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .6s ease both}.fade-up.d1{animation-delay:.05s}.fade-up.d2{animation-delay:.12s}.fade-up.d3{animation-delay:.2s}.fade-up.d4{animation-delay:.28s}.fade-up.d5{animation-delay:.36s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#d4d6e0;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#b6b9c8}.homework-page{font-family:Inter,Noto Sans SC,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.homework-page .filter-chip{background:#fff;border:1px solid var(--border);border-radius:12px;padding:8px 14px;font-size:14px;color:var(--text);display:flex;align-items:center;gap:8px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.homework-page .filter-chip:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.homework-page .filter-chip select{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:4px;font-weight:500}.homework-page .filter-chip .form-label{font-size:14px;color:var(--muted);white-space:nowrap;font-weight:500}.homework-page .filter-chip .form-select{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:4px;min-width:80px;font-weight:500}.homework-page .filter-chip .form-input{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);cursor:pointer;width:auto;font-weight:500}.homework-page .day-group{border-radius:20px;background:#fff;border:1px solid var(--border);box-shadow:0 1px 2px #0f172a08,0 8px 24px -12px #0f172a0f;overflow:hidden;transition:box-shadow .2s ease}.homework-page .day-group:hover{box-shadow:0 4px 16px -8px #0f172a1a}.section-label{font-size:16px;font-weight:600;color:#1a1d29;display:flex;align-items:center;gap:8px}.section-label:before{content:"";width:4px;height:18px;border-radius:2px;background:linear-gradient(135deg,#6366f1,#8b5cf6)}.divider-section{display:flex;align-items:center;gap:16px;margin-top:8px}.divider-section:before,.divider-section:after{content:"";flex:1;height:1px;background:var(--border)}.divider-section span{font-size:14px;color:var(--muted);white-space:nowrap;padding:0 8px}.homework-page .day-header{padding:18px 22px;display:flex;align-items:center;gap:14px;cursor:pointer;background:#fff;transition:background .2s}.homework-page .day-header:hover{background:#fafbff}.homework-page .day-toggle{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef0f6;color:#6366f1;transition:transform .25s,background .2s}.homework-page .day-group.open .day-toggle{transform:rotate(90deg);background:#e0e7ff}.homework-page .day-body{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease}.homework-page .day-group.open:not(.scrollable) .day-body{max-height:800px;padding:0 22px 20px}.homework-page .day-group.open.scrollable .day-body{max-height:340px;padding:0 22px 20px;overflow-y:auto}.homework-page .homework-card{border-radius:16px;padding:16px;display:flex;align-items:center;gap:14px;border:1px solid var(--border);background:#fff;transition:all .2s ease}.homework-page .homework-card:hover{border-color:#c7d2fe;box-shadow:0 4px 14px -6px #6366f11f}.homework-page .sub-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;flex-shrink:0}.homework-page .sub-语文{background:linear-gradient(135deg,#f59e0b,#fbbf24)}.homework-page .sub-数学{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.homework-page .sub-英语{background:linear-gradient(135deg,#ec4899,#f472b6)}.homework-page .sub-物理{background:linear-gradient(135deg,#06b6d4,#3b82f6)}.homework-page .sub-化学{background:linear-gradient(135deg,#10b981,#34d399)}.homework-page .status-badge{font-size:14px;padding:5px 10px;border-radius:999px;font-weight:500;white-space:nowrap}.homework-page .status-已完成{background:#d1fae5;color:#047857}.homework-page .status-退回重做{background:#ffedd5;color:#c2410c}.homework-page .status-待批改{background:#fef3c7;color:#92400e}.homework-page .status-进行中{background:#e0e7ff;color:#3730a3}.homework-page .status-待开始{background:#f3f4f6;color:#4b5563}.homework-page .status-未完成,.homework-page .status-逾期{background:#fee2e2;color:#991b1b}.homework-page .select-checkbox{width:18px;height:18px;border:2px solid #d1d5db;border-radius:4px;cursor:pointer;transition:.2s;flex-shrink:0;accent-color:#6366f1}.homework-page .select-checkbox:hover:not(:disabled){border-color:#6366f1}.homework-page .select-checkbox:disabled{opacity:.5;cursor:not-allowed}.homework-page .progress-track{height:6px;border-radius:999px;background:#eef0f6;overflow:hidden}.homework-page .progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width 1s ease}.errors-page{font-family:Inter,Noto Sans SC,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.errors-page .filter-chip{background:#fff;border:1px solid var(--border);border-radius:12px;padding:0 12px;font-size:14px;color:var(--text);display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:border-color .2s,box-shadow .2s;overflow:visible;position:relative;z-index:10;height:32px;box-sizing:border-box}.errors-page .filter-chip:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.errors-page .filter-chip select{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:100px;width:auto;height:100%;padding:0 4px 0 0;line-height:1}.errors-page .filter-chip input{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);width:120px;height:100%;padding:0;line-height:1}.errors-page .filter-chip select:focus,.errors-page .filter-chip input:focus{outline:none!important;box-shadow:none!important;border:none!important}.filter-bar-chip{background:#fff;border:1px solid var(--border);border-radius:12px;padding:0 12px;font-size:14px;color:var(--text);display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:border-color .2s,box-shadow .2s;overflow:visible;position:relative;z-index:10;height:32px;box-sizing:border-box}.filter-bar-chip:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.filter-bar-chip>span{white-space:nowrap}.filter-bar-chip select,.filter-bar-chip .form-select{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:100px;width:auto;height:100%;padding:0 4px 0 0;line-height:1}.filter-bar-chip input,.filter-bar-chip .form-input{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);width:120px;height:100%;padding:0;line-height:1}.filter-bar-chip select:focus,.filter-bar-chip .form-select:focus,.filter-bar-chip input:focus,.filter-bar-chip .form-input:focus{outline:none!important;box-shadow:none!important;border:none!important}.errors-page .mistake-card{border-radius:18px;background:#fff;border:1px solid var(--border);padding:18px;display:flex;align-items:flex-start;gap:14px;transition:all .2s ease}.errors-page .mistake-card:hover{border-color:#c7d2fe;box-shadow:0 6px 18px -8px #6366f11f;transform:translateY(-1px)}.errors-page .action-btn{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#f9fafb;border:1px solid #e5e7eb;color:#6b7280;cursor:pointer;transition:all .2s}.errors-page .action-btn:hover{background:#f3f4f6;border-color:#d1d5db;color:#374151}.errors-page .sub-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;flex-shrink:0}.errors-page .status-已掌握{background:#d1fae5;color:#047857}.errors-page .status-进行中{background:#e0e7ff;color:#3730a3}.errors-page .status-待开始{background:#f3f4f6;color:#4b5563}.errors-page .status-逾期,.errors-page .status-未掌握{background:#fee2e2;color:#991b1b}.errors-page .status-待复习{background:#e0e7ff;color:#3730a3}.errors-page .tag{font-size:14px;padding:3px 8px;border-radius:6px;font-weight:500}.errors-page .tag-概念{background:#fef3c7;color:#b45309}.errors-page .tag-计算{background:#e0e7ff;color:#3730a3}.errors-page .tag-粗心{background:#fce7f3;color:#be185d}.errors-page .tag-理解{background:#d1fae5;color:#047857}.errors-page .empty-state{border-radius:24px;background:linear-gradient(135deg,#fff,#fafbff);border:1px dashed #d4d6e0;padding:56px 24px;text-align:center}.errors-page .empty-icon{width:88px;height:88px;border-radius:50%;margin:0 auto 20px;background:linear-gradient(135deg,#e0e7ff,#f3e8ff);display:flex;align-items:center;justify-content:center;color:#6366f1}.errors-page .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#16182d73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s ease}.errors-page .modal-overlay.open{opacity:1;pointer-events:auto;visibility:visible}.errors-page .modal-content{background:#fff;border-radius:24px;width:100%;max-width:480px;box-shadow:0 24px 60px -16px #0f172a40;transform:translateY(12px) scale(.98);transition:transform .25s ease}.errors-page .modal-overlay.open .modal-content{transform:translateY(0) scale(1)}.errors-page .image-upload-area{border:2px dashed var(--border);border-radius:14px;padding:20px;text-align:center;transition:all .2s;background:#fafbfc}.errors-page .image-upload-area:hover{border-color:#6366f1;background:#f8f9ff}.errors-page .upload-btn{display:inline-flex;flex-direction:column;align-items:center;gap:8px;color:#8b91a8;font-size:14px;cursor:pointer;transition:color .2s}.errors-page .upload-btn:hover{color:#6366f1}.errors-page .upload-btn svg{opacity:.6}.errors-page .image-preview{position:relative;display:inline-block}.errors-page .image-preview img{max-width:100%;max-height:200px;border-radius:10px;object-fit:contain}.errors-page .remove-image{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;background:#ef4444;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px #ef444466}.errors-page .remove-image:hover{background:#dc2626;transform:scale(1.1)}.errors-page .image-preview-modal{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.errors-page .image-preview-modal img{max-width:100%;max-height:85vh;border-radius:12px;box-shadow:0 20px 60px #0000004d}.errors-page .close-preview{position:absolute;top:-40px;right:0;width:36px;height:36px;border-radius:50%;background:#0009;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.errors-page .close-preview:hover{background:#000c}.recitation-page{font-family:Inter,Noto Sans SC,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.recitation-page .mini-stat .num{font-size:32px;font-weight:800;line-height:1}.recitation-page .mini-stat .lbl{font-size:14px;opacity:.85;margin-top:4px}.recitation-page .recite-card{border-radius:18px;background:#fff;border:1px solid var(--border);padding:18px;display:flex;align-items:flex-start;gap:14px;transition:all .2s ease}.recitation-page .recite-card:hover{border-color:#c7d2fe;box-shadow:0 6px 18px -8px #6366f11f;transform:translateY(-1px)}.recitation-page .sub-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;flex-shrink:0}.recitation-page .status-已掌握{background:#d1fae5;color:#047857}.recitation-page .status-复习中{background:#fef3c7;color:#b45309}.recitation-page .status-待复习{background:#e0e7ff;color:#3730a3}.recitation-page .type-badge{font-size:14px;padding:3px 8px;border-radius:6px;font-weight:500}.recitation-page .type-背诵{background:#e0e7ff;color:#3730a3}.recitation-page .type-听写{background:#fce7f3;color:#be185d}.recitation-page .star{color:#fbbf24}.recitation-page .star-empty{color:#e5e7eb}.recitation-page .empty-state{border-radius:24px;background:linear-gradient(135deg,#fff,#fafbff);border:1px dashed #d4d6e0;padding:56px 24px;text-align:center}.recitation-page .empty-icon{width:88px;height:88px;border-radius:50%;margin:0 auto 20px;background:linear-gradient(135deg,#e0e7ff,#f3e8ff);display:flex;align-items:center;justify-content:center;color:#6366f1}.subjects-page{font-family:Inter,Noto Sans SC,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.subjects-page .hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:18px;padding:22px 26px;background:#fff;border:1px solid #EEF2F0;box-shadow:0 8px 24px -10px #0f172a14;overflow:hidden}.subjects-page .hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,#6366f1,#8b5cf6)}.subjects-page .hero-text{min-width:0}.subjects-page .hero h2{font-size:24px;font-weight:800;letter-spacing:-.01em;color:#0f172a}.subjects-page .hero p{margin-top:6px;font-size:14px;color:#64748b;max-width:680px}.subjects-page .hero .actions{flex-shrink:0;display:flex;gap:10px}.subjects-page .btn{border:0;cursor:pointer;border-radius:10px;padding:10px 16px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:8px;transition:all .15s ease}.subjects-page .btn-white{background:#fff;color:#0f172a;font-weight:700;box-shadow:0 8px 20px #00000029}.subjects-page .btn-white:hover{transform:translateY(-2px);box-shadow:0 12px 28px #00000038}.subjects-page .btn-ghost{background:#eef2ff;color:#4f46e5;border:1px solid #E0E7FF;font-weight:700}.subjects-page .btn-ghost:hover{background:#e0e7ff}.subjects-page .section{margin-top:28px}.subjects-page .section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.subjects-page .section-head h3{font-size:18px;font-weight:800;letter-spacing:-.01em}.subjects-page .section-head p{font-size:14px;color:#64748b;margin-top:2px}.subjects-page .tabs{display:flex;gap:4px;background:#fff;padding:4px;border-radius:12px;border:1px solid #E2E8F0;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f}.subjects-page .tab{padding:7px 12px;font-size:14px;font-weight:600;color:#64748b;border-radius:8px;cursor:pointer;border:0;background:transparent}.subjects-page .tab.active{background:linear-gradient(135deg,#eef2ff,#f5f3ff);color:#6366f1}.subjects-page .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.subjects-page .kpi{position:relative;overflow:hidden;border-radius:16px;padding:20px;min-height:120px;background:#fff;border:1px solid #EEF2F0;box-shadow:0 6px 18px -10px #0f172a1a;transition:transform .2s ease,box-shadow .2s ease}.subjects-page .kpi:hover{transform:translateY(-3px);box-shadow:0 14px 30px -12px #0f172a29}.subjects-page .kpi .row{display:flex;align-items:center;justify-content:space-between}.subjects-page .kpi .label{font-size:14px;color:#64748b;letter-spacing:.02em}.subjects-page .kpi .ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center}.subjects-page .kpi .ico svg{color:#fff}.subjects-page .kpi .num{font-size:38px;font-weight:800;margin-top:10px;letter-spacing:-.02em;line-height:1;color:#0f172a}.subjects-page .kpi .sub{font-size:14px;color:#94a3b8;margin-top:6px}.subjects-page .kpi.purple .ico{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.subjects-page .kpi.orange .ico{background:linear-gradient(135deg,#0ea5e9,#6366f1)}.subjects-page .kpi.blue .ico{background:linear-gradient(135deg,#6366f1,#a855f7)}.subjects-page .kpi.green .ico{background:linear-gradient(135deg,#f59e0b,#ef4444)}.subjects-page .subjects-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.subjects-page .filter-bar{display:flex;align-items:center;gap:10px}.subjects-page .filter-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid #E2E8F0;font-size:14px;color:#334155;cursor:pointer;font-weight:600;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f;transition:all .15s ease}.subjects-page .filter-chip:hover{color:#0f172a}.subjects-page .filter-chip.active{background:#0f172a;color:#fff;border-color:#0f172a}.subjects-page .subjects{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.subjects-page .subject{position:relative;background:#fff;border-radius:18px;padding:18px;border:1px solid #E2E8F0;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden}.subjects-page .subject:hover{transform:translateY(-3px);box-shadow:0 12px 32px #0f172a1a,0 4px 8px #0f172a0a;border-color:#6366f140}.subjects-page .subject:before{content:"";position:absolute;left:0;right:0;top:0;height:4px}.subjects-page .subject.cn:before{background:linear-gradient(90deg,#ef4444,#f59e0b)}.subjects-page .subject.math:before{background:linear-gradient(90deg,#0ea5e9,#6366f1)}.subjects-page .subject.en:before{background:linear-gradient(90deg,#10b981,#0ea5e9)}.subjects-page .subject.other:before{background:linear-gradient(90deg,#8b5cf6,#ec4899)}.subjects-page .subj-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.subjects-page .subj-top>div:first-child+div{flex:1;min-width:0}.subjects-page .subj-actions{margin-left:auto;display:flex;gap:4px}.subjects-page .subj-badge{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:28px;color:#fff;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f}.subjects-page .subj-name{font-size:18px;font-weight:800}.subjects-page .subj-meta{font-size:14px;color:#64748b;margin-top:2px;display:flex;align-items:center;gap:6px}.subjects-page .subj-meta .dot{width:6px;height:6px;border-radius:50%;background:#10b981}.subjects-page .subj-actions button{width:28px;height:28px;border-radius:8px;border:0;background:#f1f5f9;color:#64748b;cursor:pointer;display:grid;place-items:center;transition:all .15s ease}.subjects-page .subj-actions button:hover{background:#e2e8f0;color:#0f172a}.subjects-page .subj-actions button.danger:hover{background:#ef44441f;color:#ef4444}.subjects-page .subj-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.subjects-page .mini{background:#f1f5f9;border-radius:12px;padding:10px 12px}.subjects-page .mini .lbl{font-size:14px;color:#64748b}.subjects-page .mini .val{font-size:18px;font-weight:800;margin-top:2px;color:#0f172a}.subjects-page .mini .val.warn{color:#ef4444}.subjects-page .progress-row{margin-top:14px}.subjects-page .progress-row .top{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:#64748b;margin-bottom:6px}.subjects-page .progress-row .top b{color:#0f172a;font-weight:800}.subjects-page .bar{height:8px;border-radius:999px;background:#f1f5f9;overflow:hidden;position:relative}.subjects-page .bar>i{display:block;height:100%;width:0%;border-radius:999px;position:relative}@media(max-width:1180px){.subjects-page .kpis,.subjects-page .subjects{grid-template-columns:repeat(2,1fr)}}@media(max-width:880px){.subjects-page .kpis,.subjects-page .subjects{grid-template-columns:1fr}}.subjects-page .sub-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;flex-shrink:0;box-shadow:0 4px 12px -2px #0000001f}.subjects-page .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#16182d73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s ease}.subjects-page .modal-overlay.open{opacity:1;pointer-events:auto;visibility:visible}.subjects-page .modal-content{background:#fff;border-radius:24px;width:100%;max-width:440px;box-shadow:0 24px 60px -16px #0f172a40;transform:translateY(12px) scale(.98);transition:transform .25s ease}.subjects-page .modal-overlay.open .modal-content{transform:translateY(0) scale(1)}.subjects-page .color-radio{width:32px;height:32px;border-radius:50%;cursor:pointer;position:relative;border:3px solid transparent;transition:all .2s}.subjects-page .color-radio input{display:none}.subjects-page .color-radio.selected{border-color:#fff;box-shadow:0 0 0 2px #6366f1}.subjects-page .fade-in-up{animation:fadeInUp .55s ease both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.reading-page{font-family:Inter,Noto Sans SC,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reading-page .mini-stat .num{font-size:32px;font-weight:800;line-height:1}.reading-page .mini-stat .lbl{font-size:14px;opacity:.85;margin-top:4px}.reading-page .book-summary{padding:20px;background:#fff;border-radius:16px;border:1px solid var(--border);transition:all .25s ease}.reading-page .book-summary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #6366f11a}.reading-page .book-details{animation:slideDown .3s ease}.reading-page .modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#16182d73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s ease}.reading-page .modal-overlay.open{opacity:1;pointer-events:auto;visibility:visible}.reading-page .modal-content{background:#fff;border-radius:24px;width:100%;max-width:480px;box-shadow:0 24px 60px -16px #0f172a40;transform:translateY(12px) scale(.98);transition:transform .25s ease}.reading-page .modal-overlay.open .modal-content{transform:translateY(0) scale(1)}.reading-page .filter-chip{background:#fff;border:1px solid var(--border);border-radius:12px;padding:0 12px;font-size:14px;color:var(--text);display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:border-color .2s,box-shadow .2s;overflow:visible;position:relative;z-index:10;height:32px;box-sizing:border-box}.reading-page .filter-chip:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.reading-page .filter-chip select{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:100px;width:auto;height:100%;padding:0 24px 0 0;line-height:1}.reading-page .filter-chip input{border:none;outline:none;background:transparent;font-size:14px;color:var(--text);width:120px;height:100%;padding:0;line-height:1}.reading-page .filter-chip select:focus,.reading-page .filter-chip input:focus{outline:none!important;box-shadow:none!important;border:none!important}.reading-page .filter-book-dropdown{position:relative}.reading-page .filter-book-dropdown .absolute{z-index:100}
