.expired-page[data-v-99e0220c]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f5f5f7;padding:20px}.card[data-v-99e0220c]{background:#fff;border-radius:16px;padding:48px 40px;max-width:480px;width:100%;text-align:center;box-shadow:0 4px 24px #00000014}.icon[data-v-99e0220c]{font-size:64px;margin-bottom:16px}h1[data-v-99e0220c]{font-size:24px;font-weight:600;color:#e74c3c;margin:0 0 16px}.desc[data-v-99e0220c]{font-size:15px;color:#555;line-height:1.6;margin:0 0 12px}.hint[data-v-99e0220c]{font-size:14px;color:#999;margin:0 0 28px}.btn[data-v-99e0220c]{display:inline-block;padding:10px 32px;border:none;border-radius:8px;background:#1a5c4b;color:#fff;font-size:15px;cursor:pointer}.btn[data-v-99e0220c]:hover{background:#134438}.icp-footer-login[data-v-3885eb6e]{text-align:center;margin-top:16px;font-size:12px;color:#a0a0a6}.icp-footer-login a[data-v-3885eb6e]{color:#a0a0a6;text-decoration:none}.icp-footer-login a[data-v-3885eb6e]:hover{color:#1a5c4b}.login-page[data-v-3885eb6e]{position:relative;display:flex;align-items:center;justify-content:flex-end;width:100vw;height:100vh;overflow:hidden;background:#0a0f14;padding-right:70px}.bg-layer[data-v-3885eb6e]{position:absolute;inset:0;background:#0a0f14}.arrow-canvas[data-v-3885eb6e]{position:absolute;inset:0;z-index:1;pointer-events:none}.bg-slide[data-v-3885eb6e]{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;opacity:0;transition:opacity 1.5s cubic-bezier(.4,0,.2,1)}.bg-slide.active[data-v-3885eb6e]{opacity:1}.bg-slide.exiting[data-v-3885eb6e]{opacity:0;transition:opacity 1.2s cubic-bezier(.4,0,.2,1)}.bg-dots[data-v-3885eb6e]{position:absolute;inset:0;pointer-events:none}.dot[data-v-3885eb6e]{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffffff26;animation:dotPulse-3885eb6e 5s ease-in-out infinite}@keyframes dotPulse-3885eb6e{0%,to{transform:scale(1);opacity:.02}50%{transform:scale(2.5);opacity:.1}}.floating-stars[data-v-3885eb6e]{position:absolute;inset:0;pointer-events:none;overflow:hidden}.fstar[data-v-3885eb6e]{position:absolute;bottom:-10%;color:#ffffff40;animation:rise-3885eb6e linear infinite}@keyframes rise-3885eb6e{0%{transform:translateY(0) rotate(0) scale(.5);opacity:0}10%{opacity:1}90%{opacity:.3}to{transform:translateY(-110vh) rotate(360deg) scale(1.2);opacity:0}}.bg-content[data-v-3885eb6e]{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;max-width:480px;padding:60px 80px 60px 70px;margin:0;animation:contentIn-3885eb6e 1.2s cubic-bezier(.16,1,.3,1);min-height:0}.bg-decor[data-v-3885eb6e]{margin-top:36px;opacity:.5}.decor-svg[data-v-3885eb6e]{width:160px;height:160px;filter:drop-shadow(0 4px 20px rgba(0,0,0,.2))}@keyframes contentIn-3885eb6e{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.bg-title[data-v-3885eb6e]{font-size:44px;font-weight:700;color:#fff;line-height:1.4;margin-bottom:18px;width:12em;word-break:break-all}.bg-desc[data-v-3885eb6e]{font-size:16px;color:#ffffffa6;line-height:1.75;max-width:480px;font-weight:400}.bg-tags[data-v-3885eb6e]{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.bg-tag[data-v-3885eb6e]{padding:7px 18px;border:1px solid rgba(255,255,255,.2);border-radius:22px;font-size:13px;font-weight:500;color:#fffc;background:#ffffff0d;letter-spacing:1px}.slide-indicators[data-v-3885eb6e]{position:absolute;bottom:32px;left:80px;display:flex;gap:10px;z-index:3}.indicator-dot[data-v-3885eb6e]{width:8px;height:8px;border-radius:50%;background:#ffffff40;cursor:pointer;transition:all .4s ease}.indicator-dot.active[data-v-3885eb6e]{background:#fff;transform:scale(1.4);box-shadow:0 0 8px #ffffff4d}.login-side[data-v-3885eb6e]{position:relative;z-index:5;display:flex;align-items:center;justify-content:center;width:460px;flex-shrink:0;padding:40px}.login-card[data-v-3885eb6e]{width:100%;max-width:380px;background:#fff;border-radius:24px;padding:36px 34px;box-shadow:0 8px 32px #0000002e,0 24px 64px #00000024,inset 0 1px #fff9;border:1px solid rgba(255,255,255,.5);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}.login-card[data-v-3885eb6e]:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000038,0 32px 80px #0000002e,inset 0 1px #fff9}.login-brand[data-v-3885eb6e]{text-align:center;margin-bottom:28px}.brand-icon[data-v-3885eb6e]{font-size:44px;margin-bottom:12px}.login-brand h1[data-v-3885eb6e]{font-size:24px;font-weight:700;margin:0 0 4px;background:linear-gradient(135deg,#1a5c4b,#47a885);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-brand p[data-v-3885eb6e]{font-size:14px;color:#6b7280;margin:0}.login-form[data-v-3885eb6e]{display:flex;flex-direction:column;gap:14px}.form-group[data-v-3885eb6e]{display:flex;flex-direction:column;gap:4px}.form-group label[data-v-3885eb6e]{font-size:12px;font-weight:600;color:#4b5563}.form-group input[data-v-3885eb6e]{padding:9px 12px;font-size:14px;color:#1e1b4b;background:#fff;border:1.5px solid #E2E8F0;border-radius:10px;transition:all .15s ease;font-family:inherit}.form-group input[data-v-3885eb6e]::placeholder{color:#9ca3af}.form-group input[data-v-3885eb6e]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.form-group input[data-v-3885eb6e]:disabled{background:#f9fafb;cursor:not-allowed}.form-hint[data-v-3885eb6e]{font-size:11px;color:#9ca3af}.form-error[data-v-3885eb6e]{font-size:13px;color:#dc2626;background:#fee2e2;padding:8px 12px;border-radius:8px}.login-btn[data-v-3885eb6e]{padding:11px;font-size:15px;font-weight:600;background:linear-gradient(135deg,#1a5c4b,#2d7d5f);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .15s ease;font-family:inherit;box-shadow:0 2px 8px #1a5c4b40;letter-spacing:4px}.login-btn[data-v-3885eb6e]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1a5c4b59}.login-btn[data-v-3885eb6e]:active{transform:scale(.97)}.login-btn[data-v-3885eb6e]:disabled{opacity:.6;cursor:not-allowed;transform:none}.register-section[data-v-3885eb6e]{margin-top:22px;padding-top:18px;border-top:1px solid #F3F4F6}.school-mask[data-v-3885eb6e]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:300}.school-modal[data-v-3885eb6e]{width:360px;max-width:90vw;background:#fff;border-radius:18px;padding:24px 20px 16px}.school-modal-title[data-v-3885eb6e]{font-size:18px;font-weight:700;color:#111827;text-align:center}.school-modal-sub[data-v-3885eb6e]{font-size:12px;color:#9ca3af;text-align:center;margin:6px 0 16px}.school-option[data-v-3885eb6e]{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border-radius:10px;cursor:pointer}.school-option[data-v-3885eb6e]:hover{background:#f0f7f4}.school-option+.school-option[data-v-3885eb6e]{margin-top:2px}.school-option-name[data-v-3885eb6e]{font-size:15px;font-weight:600;color:#111827}.school-option-role[data-v-3885eb6e]{font-size:11px;color:#1a5c4b;background:#eaf6f1;border-radius:999px;padding:3px 10px}.register-title[data-v-3885eb6e]{font-size:12px;color:#9ca3af;text-align:center;margin-bottom:12px}.register-entries[data-v-3885eb6e]{display:flex;gap:10px}.register-entry[data-v-3885eb6e]{flex:1;display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f8faf9;border:1.5px solid #E8EFEC;border-radius:10px;text-decoration:none;transition:all .15s ease}.register-entry[data-v-3885eb6e]:hover{border-color:#1a5c4b;background:#f0f7f4;transform:translateY(-1px)}.entry-icon[data-v-3885eb6e]{font-size:20px;line-height:1}.entry-text[data-v-3885eb6e]{display:flex;flex-direction:column;gap:1px;min-width:0}.entry-title[data-v-3885eb6e]{font-size:13px;font-weight:600;color:#1e4b3c}.entry-desc[data-v-3885eb6e]{font-size:11px;color:#9ca3af;white-space:nowrap}@media(max-width:1024px){.login-page[data-v-3885eb6e]{padding-right:36px}.login-side[data-v-3885eb6e]{width:400px;padding:24px}.login-card[data-v-3885eb6e]{max-width:360px;padding:30px 28px;border-radius:20px}.bg-content[data-v-3885eb6e]{max-width:400px;padding:40px 40px 40px 50px}.bg-title[data-v-3885eb6e]{font-size:32px}.bg-desc[data-v-3885eb6e]{font-size:14px}.bg-tag[data-v-3885eb6e]{padding:6px 14px;font-size:12px}.decor-svg[data-v-3885eb6e]{width:120px;height:120px}.bg-decor[data-v-3885eb6e]{margin-top:26px}.slide-indicators[data-v-3885eb6e]{left:50px}}@media(max-width:768px){.login-page[data-v-3885eb6e]{flex-direction:column;justify-content:flex-start;align-items:stretch;padding:0;overflow-y:auto}.bg-slide[data-v-3885eb6e]{align-items:flex-start;justify-content:center}.bg-content[data-v-3885eb6e]{max-width:100%;width:100%;padding:44px 24px 0;text-align:left}.bg-title[data-v-3885eb6e]{font-size:26px;margin-bottom:10px}.bg-desc[data-v-3885eb6e]{font-size:13px;line-height:1.6}.bg-tags[data-v-3885eb6e]{gap:8px;margin-top:14px}.bg-tag[data-v-3885eb6e]{padding:5px 12px;font-size:12px}.bg-decor[data-v-3885eb6e]{display:none}.floating-stars[data-v-3885eb6e]{opacity:.4}.login-side[data-v-3885eb6e]{width:100%;padding:24px 18px 60px;align-items:center}.login-card[data-v-3885eb6e]{max-width:420px;width:100%;padding:28px 24px;border-radius:20px}.login-card[data-v-3885eb6e]:hover{transform:none}.slide-indicators[data-v-3885eb6e]{left:50%;transform:translate(-50%);bottom:18px}}@media(max-width:400px){.bg-title[data-v-3885eb6e]{font-size:22px}.bg-content[data-v-3885eb6e]{padding:32px 18px 0}.login-side[data-v-3885eb6e]{padding:18px 14px 56px}}.register-page[data-v-789444bf]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f5e9,#d1e8d8,#b7dfc4);padding:24px}.register-card[data-v-789444bf]{background:#fff;border-radius:20px;padding:36px;width:100%;max-width:520px;box-shadow:0 8px 32px #1a5c4b1f}.register-header[data-v-789444bf]{text-align:center;margin-bottom:24px}.register-header h1[data-v-789444bf]{font-size:22px;font-weight:700;margin:0 0 4px;color:#0f2e24}.register-header p[data-v-789444bf]{font-size:14px;color:#6b7280;margin:0}.register-form[data-v-789444bf]{display:flex;flex-direction:column;gap:16px}.form-section h3[data-v-789444bf]{font-size:15px;font-weight:600;color:#0f2e24;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #F3F4F6}.form-row[data-v-789444bf]{display:flex;gap:10px}.flex-1[data-v-789444bf]{flex:1}.form-group[data-v-789444bf]{display:flex;flex-direction:column;gap:3px}.form-group label[data-v-789444bf]{font-size:12px;font-weight:600;color:#4b5563}.required[data-v-789444bf]{color:#ef4444}.input[data-v-789444bf]{border:1.5px solid #E2E8F0;border-radius:10px;padding:9px 12px;font-size:13px;color:#0f2e24;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease;width:100%;box-sizing:border-box}.input[data-v-789444bf]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.form-error[data-v-789444bf]{font-size:13px;color:#dc2626;background:#fee2e2;padding:8px 12px;border-radius:8px}.submit-btn[data-v-789444bf]{padding:10px;font-size:15px;font-weight:600;background:linear-gradient(135deg,#1a5c4b,#2d7d5f);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .15s ease;font-family:inherit;box-shadow:0 2px 8px #1a5c4b40}.submit-btn[data-v-789444bf]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1a5c4b59}.submit-btn[data-v-789444bf]:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-link[data-v-789444bf]{text-align:center;font-size:13px;color:#6b7280}.login-link a[data-v-789444bf]{color:#1a5c4b;text-decoration:none;font-weight:500}.login-link a[data-v-789444bf]:hover{text-decoration:underline}.success-box[data-v-789444bf]{text-align:center;padding:20px 0}.success-icon[data-v-789444bf]{font-size:48px;margin-bottom:12px}.success-box h3[data-v-789444bf]{font-size:20px;font-weight:700;color:#0f2e24;margin:0 0 8px}.success-box p[data-v-789444bf]{font-size:14px;color:#6b7280;margin:0 0 8px}.success-hint[data-v-789444bf]{font-size:12px;color:#9ca3af;margin-bottom:20px}.btn[data-v-789444bf]{display:inline-block;padding:10px 24px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .15s ease;font-family:inherit}.btn-primary[data-v-789444bf]{background:linear-gradient(135deg,#1a5c4b,#2d7d5f);color:#fff;box-shadow:0 2px 8px #1a5c4b40}.btn-primary[data-v-789444bf]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1a5c4b59}.layout[data-v-f4aa8436]{display:flex;min-height:100vh}.sidebar[data-v-f4aa8436]{width:220px;background:linear-gradient(180deg,#0f2e24,#1a5c4b);border-right:1px solid rgba(0,0,0,.15);display:flex;flex-direction:column;transition:width .2s ease,margin-left .2s ease;overflow:hidden}.sidebar.collapsed[data-v-f4aa8436]{width:64px}.sidebar.hidden[data-v-f4aa8436]{margin-left:-220px;width:220px}.sidebar.hidden.collapsed[data-v-f4aa8436]{margin-left:-64px;width:64px}.sidebar-brand[data-v-f4aa8436]{height:56px;display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-icon[data-v-f4aa8436]{font-size:22px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff24;border-radius:8px;flex-shrink:0}.brand-text[data-v-f4aa8436]{font-size:19px;font-weight:700;color:#fff;letter-spacing:-.01em}.brand-version[data-v-f4aa8436]{font-size:11px;font-weight:600;color:#ffd9a0;background:#ffffff1f;border:1px solid rgba(255,217,160,.35);border-radius:6px;padding:1px 6px;line-height:1.4;flex-shrink:0}.sidebar-school[data-v-f4aa8436]{display:flex;align-items:center;gap:6px;background:#ffffff1a;margin:10px 12px 8px;padding:8px 12px;border-radius:8px}.school-icon[data-v-f4aa8436]{font-size:14px}.school-name[data-v-f4aa8436]{font-size:13px;font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav[data-v-f4aa8436]{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:4px}.nav-link[data-v-f4aa8436]{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;color:#fff;font-size:16px;font-weight:700;text-decoration:none;transition:all .15s ease}.nav-link[data-v-f4aa8436]:hover{color:#fff;background:#ffffff24}.nav-link.active[data-v-f4aa8436]{color:#0f2e24;background:#ffd9a0;font-weight:800;box-shadow:0 2px 8px #0000002e}.nav-icon[data-v-f4aa8436]{font-size:19px;width:26px;text-align:center;flex-shrink:0}.nav-group-header[data-v-f4aa8436]{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .15s ease;user-select:none}.nav-group-header[data-v-f4aa8436]:hover{color:#fff;background:#ffffff24}.nav-arrow[data-v-f4aa8436]{margin-left:auto;font-size:12px;color:#ffffffbf;transition:transform .15s ease}.nav-group-children[data-v-f4aa8436]{padding-left:8px;display:flex;flex-direction:column;gap:2px}.nav-link-child[data-v-f4aa8436]{padding-left:38px;font-size:15px;font-weight:600}.nav-link-child .nav-icon[data-v-f4aa8436]{font-size:15px;width:22px}.icp-footer[data-v-f4aa8436]{text-align:center;padding:10px 0 16px;font-size:12px;color:#a0a0a6}.icp-footer a[data-v-f4aa8436]{color:#a0a0a6;text-decoration:none}.icp-footer a[data-v-f4aa8436]:hover{color:#1a5c4b}.sidebar-footer[data-v-f4aa8436]{padding:12px;border-top:1px solid rgba(255,255,255,.1)}.collapse-btn[data-v-f4aa8436]{width:100%;padding:9px;border:none;background:#ffffff24;border-radius:8px;font-size:15px;color:#fff;cursor:pointer;transition:all .15s ease}.collapse-btn[data-v-f4aa8436]:hover{background:#ffffff3d}.main-wrapper[data-v-f4aa8436]{flex:1;display:flex;flex-direction:column;min-width:0}.topbar[data-v-f4aa8436]{height:56px;background:#fff;border-bottom:1px solid #E5E5EA;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.topbar-title[data-v-f4aa8436]{font-size:16px;font-weight:600;color:#1c1c1e}.topbar-left[data-v-f4aa8436]{display:flex;align-items:center;gap:14px}.hamburger-btn[data-v-f4aa8436]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:#f2f2f7;color:#1c1c1e;cursor:pointer;transition:all .15s ease}.hamburger-btn[data-v-f4aa8436]:hover{background:#e5e5ea}.topbar-user[data-v-f4aa8436]{display:flex;align-items:center;gap:12px}.user-name[data-v-f4aa8436]{font-size:14px;font-weight:500;color:#1c1c1e}.user-role[data-v-f4aa8436]{font-size:12px;color:#6e6e73;background:#f2f2f7;padding:2px 8px;border-radius:6px}.user-school[data-v-f4aa8436]{font-size:12px;font-weight:600;color:#fff;background:linear-gradient(135deg,#4f46e5,#818cf8);padding:3px 10px;border-radius:6px;margin-right:4px}.expiry-banner[data-v-f4aa8436]{background:#fff8e1;color:#8d6e00;padding:10px 20px;font-size:14px;text-align:center;border-bottom:1px solid #FFE082}.logout-btn[data-v-f4aa8436]{padding:6px 14px;font-size:13px;font-weight:500;color:#ff3b30;background:#ffeded;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.logout-btn[data-v-f4aa8436]:hover{background:#ffdede}.page-content[data-v-f4aa8436]{flex:1;padding:24px;overflow-y:auto}.modal-overlay[data-v-f4aa8436]{position:fixed;inset:0;background:#00000061;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400;padding:20px}.modal-content[data-v-f4aa8436]{background:#fff;border-radius:16px;padding:24px;max-width:480px;width:100%;box-shadow:0 8px 32px #0f2e2433;animation:slideUp-f4aa8436 .2s cubic-bezier(.16,1,.3,1)}@keyframes slideUp-f4aa8436{0%{opacity:0;transform:translateY(10px) scale(.98)}}.btn[data-v-f4aa8436]{padding:8px 18px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .12s ease;font-family:inherit}.btn-primary[data-v-f4aa8436]{background:#1a5c4b;color:#fff}.btn-primary[data-v-f4aa8436]:hover{background:#0f3d32}.btn-primary[data-v-f4aa8436]:disabled{opacity:.6;cursor:not-allowed}.btn-outline[data-v-f4aa8436]{background:#fff;color:#1a5c4b;border:1.5px solid #1A5C4B}.btn-outline[data-v-f4aa8436]:hover{background:#e8f3ef}.ann-modal-head[data-v-f4aa8436]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ann-modal-head h3[data-v-f4aa8436]{font-size:17px;font-weight:700;margin:0;color:#1c1c1e;display:flex;align-items:center;gap:8px}.ann-count[data-v-f4aa8436]{font-size:12px;font-weight:600;color:#fff;background:#ff6b35;border-radius:10px;padding:2px 8px}.ann-modal-close[data-v-f4aa8436]{border:none;background:#f2f2f7;color:#6e6e73;width:28px;height:28px;border-radius:50%;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}.ann-modal-close[data-v-f4aa8436]:hover{background:#e5e5ea}.ann-modal-list[data-v-f4aa8436]{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.ann-modal-item[data-v-f4aa8436]{border:1px solid #EEF1EF;border-radius:10px;overflow:hidden}.ann-modal-title[data-v-f4aa8436]{display:flex;align-items:center;gap:8px;padding:12px 14px;cursor:pointer;transition:background .12s ease}.ann-modal-title[data-v-f4aa8436]:hover{background:#f7faf9}.ann-pin[data-v-f4aa8436]{font-size:13px;flex-shrink:0}.ann-modal-t[data-v-f4aa8436]{flex:1;min-width:0;font-size:14px;font-weight:600;color:#1c1c1e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ann-modal-date[data-v-f4aa8436]{font-size:12px;color:#9ca3af;flex-shrink:0}.ann-modal-arrow[data-v-f4aa8436]{font-size:12px;color:#b0b8b5;flex-shrink:0}.ann-modal-content[data-v-f4aa8436]{padding:0 14px 14px;font-size:14px;line-height:1.7;color:#48484a;white-space:pre-wrap}.ann-modal-actions[data-v-f4aa8436]{display:flex;justify-content:flex-end;gap:10px}.dashboard[data-v-3218b2db]{max-width:1200px}.loading-state[data-v-3218b2db]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:#8e8e93;gap:12px}.spinner[data-v-3218b2db]{width:32px;height:32px;border:3px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-3218b2db .8s linear infinite}@keyframes spin-3218b2db{to{transform:rotate(360deg)}}.error-card[data-v-3218b2db]{background:#fff;border:1px solid #FF3B30;border-radius:12px;padding:24px;text-align:center;color:#ff3b30}.error-card button[data-v-3218b2db]{margin-top:12px}.welcome-section[data-v-3218b2db]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.welcome-text h2[data-v-3218b2db]{font-size:22px;font-weight:600;color:#1c1c1e;margin:0 0 6px}.welcome-sub[data-v-3218b2db]{font-size:14px;color:#6e6e73;margin:0;display:flex;align-items:center;gap:8px}.semester-badge[data-v-3218b2db]{background:#e8f3ef;color:#1a5c4b;font-size:12px;font-weight:600;padding:2px 10px;border-radius:4px}.role-badge[data-v-3218b2db]{font-size:12px;font-weight:600;padding:4px 12px;border-radius:6px}.role-badge.admin[data-v-3218b2db]{background:#1a5c4b;color:#fff}.role-badge.homeroom_teacher[data-v-3218b2db]{background:#d4920a;color:#fff}.role-badge.subject_head[data-v-3218b2db]{background:#3b82f6;color:#fff}.role-badge.researcher[data-v-3218b2db]{background:#8b5cf6;color:#fff}.role-badge.teacher[data-v-3218b2db]{background:#e8f3ef;color:#1a5c4b}.stats-grid[data-v-3218b2db]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}@media(max-width:1024px){.stats-grid[data-v-3218b2db]{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-grid[data-v-3218b2db]{grid-template-columns:1fr}}.stat-card[data-v-3218b2db]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:4px}.stat-card[data-v-3218b2db]:hover{box-shadow:0 4px 12px #1c3c321a;transform:translateY(-1px)}.stat-icon[data-v-3218b2db]{margin-bottom:6px}.stat-value[data-v-3218b2db]{font-size:32px;font-weight:700;color:#1c1c1e}.stat-label[data-v-3218b2db]{font-size:13px;color:#6e6e73}.dashboard-grid[data-v-3218b2db]{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:900px){.dashboard-grid[data-v-3218b2db]{grid-template-columns:1fr}}.card[data-v-3218b2db]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;padding:20px}.card-title[data-v-3218b2db]{font-size:16px;font-weight:600;color:#1c1c1e;margin:0 0 16px;display:flex;align-items:center;gap:8px}.card-subtitle[data-v-3218b2db]{font-size:12px;font-weight:400;color:#8e8e93}.links-grid[data-v-3218b2db]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-link-btn[data-v-3218b2db]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;background:#fafafa;border:1px solid #F2F2F7;border-radius:10px;cursor:pointer;transition:all .15s ease;font-size:13px;font-weight:500;color:#3a3a3c;font-family:inherit}.quick-link-btn[data-v-3218b2db]:hover{background:#e8f3ef;border-color:#1a5c4b;color:#1a5c4b}.quick-link-btn svg[data-v-3218b2db]{width:22px;height:22px}.announcements-card[data-v-3218b2db]{grid-row:span 2;min-height:300px;background:linear-gradient(180deg,#f8fdfb,#fff);border-color:#c9e8dd}.ann-list[data-v-3218b2db]{display:flex;flex-direction:column;gap:10px;max-height:520px;overflow-y:auto}.ann-item[data-v-3218b2db]{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;background:#fafafa;border:1px solid #F0F0F2;border-left:4px solid #1A5C4B;cursor:pointer;transition:all .15s}.ann-item[data-v-3218b2db]:hover{box-shadow:0 3px 10px #1a5c4b1f;transform:translateY(-1px);border-left-color:#0f3d32}.ann-item.pinned[data-v-3218b2db]{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-left-color:#f59e0b;border-color:#fde68a}.ann-pin[data-v-3218b2db]{background:#f59e0b;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;flex-shrink:0}.ann-title[data-v-3218b2db]{flex:1;min-width:0;font-size:14px;font-weight:700;color:#1c1c1e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ann-date[data-v-3218b2db]{font-size:11px;color:#9ca3af;flex-shrink:0}.ann-arrow[data-v-3218b2db]{color:#c7c7cc;font-size:16px;flex-shrink:0}.ann-more[data-v-3218b2db]{text-align:center;font-size:11px;color:#9ca3af;padding:8px 0 0}.modal-overlay[data-v-3218b2db]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:500}.modal-content[data-v-3218b2db]{background:#fff;border-radius:16px;padding:28px;max-width:520px;width:92%;box-shadow:0 8px 40px #00000026;animation:modalIn-3218b2db .2s ease}@keyframes modalIn-3218b2db{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.ann-dialog-head[data-v-3218b2db]{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid #F2F2F7;margin-bottom:16px}.ann-dialog-head h3[data-v-3218b2db]{font-size:18px;font-weight:700;margin:0;color:#1c1c1e}.ann-dialog-content[data-v-3218b2db]{font-size:14px;color:#4b5563;line-height:1.9;white-space:pre-wrap;max-height:50vh;overflow-y:auto}.ann-dialog-meta[data-v-3218b2db]{display:flex;justify-content:space-between;font-size:12px;color:#9ca3af;margin-top:20px;padding-top:12px;border-top:1px solid #F2F2F7}.modal-actions[data-v-3218b2db]{display:flex;justify-content:flex-end;margin-top:16px}.btn[data-v-3218b2db]{padding:8px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}.btn-primary[data-v-3218b2db]{background:#1a5c4b;color:#fff}.btn-primary[data-v-3218b2db]:hover{background:#134438}.recent-exams-card[data-v-3218b2db]{min-height:180px}.empty-state[data-v-3218b2db]{text-align:center;padding:36px 20px;color:#8e8e93;font-size:14px}.empty-hint[data-v-3218b2db]{font-size:12px;color:#b0b8b5}.ann-unread-dot[data-v-3218b2db]{width:8px;height:8px;border-radius:50%;background:#ff6b35;flex-shrink:0;box-shadow:0 0 0 3px #ff6b352e}.exam-list[data-v-3218b2db]{display:flex;flex-direction:column;gap:4px}.exam-item[data-v-3218b2db]{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:8px;cursor:pointer;transition:background .15s ease}.exam-item[data-v-3218b2db]:hover{background:#f2f2f7}.exam-dot[data-v-3218b2db]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.exam-dot.active[data-v-3218b2db]{background:#34c759}.exam-dot.published[data-v-3218b2db]{background:#1a5c4b}.exam-info[data-v-3218b2db]{flex:1;min-width:0}.exam-title[data-v-3218b2db]{font-size:14px;font-weight:600;color:#1c1c1e;margin-bottom:2px}.exam-meta[data-v-3218b2db]{display:flex;align-items:center;gap:8px;font-size:12px;color:#8e8e93}.exam-subject[data-v-3218b2db]{background:#f2f2f7;padding:0 6px;border-radius:3px}.exam-arrow[data-v-3218b2db]{color:#c7c7cc;flex-shrink:0}.exam-item:hover .exam-arrow[data-v-3218b2db]{color:#1a5c4b}.teacher-list[data-v-aaeb87c5]{max-width:1200px}.toolbar[data-v-aaeb87c5]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.toolbar-actions[data-v-aaeb87c5]{display:flex;gap:10px}.filters[data-v-aaeb87c5]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.fi[data-v-aaeb87c5]{padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;background:#fff}.fi[data-v-aaeb87c5]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.search-btn[data-v-aaeb87c5]{padding:10px 18px;font-size:14px;font-weight:500;color:#1a5c4b;background:#e8f3ef;border:none;border-radius:8px;cursor:pointer}.search-btn[data-v-aaeb87c5]:hover{background:#d4e8e0}.batch-bar[data-v-aaeb87c5]{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#e8f3ef;border-radius:8px;margin-bottom:12px;font-size:14px}.batch-info[data-v-aaeb87c5]{font-weight:600;color:#1a5c4b}.btn-danger-sm[data-v-aaeb87c5]{padding:6px 14px;font-size:13px;font-weight:500;color:#fff;background:#ff3b30;border:none;border-radius:6px;cursor:pointer}.btn-danger-sm[data-v-aaeb87c5]:hover{background:#d92b20}.btn-text[data-v-aaeb87c5]{padding:6px 14px;font-size:13px;font-weight:500;color:#6e6e73;background:transparent;border:1px solid #E5E5EA;border-radius:6px;cursor:pointer}.btn-text[data-v-aaeb87c5]:hover{background:#f2f2f7}.table-card[data-v-aaeb87c5]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;overflow:visible}table[data-v-aaeb87c5]{width:100%;border-collapse:collapse;font-size:14px}thead[data-v-aaeb87c5]{position:sticky;top:0;z-index:2}th[data-v-aaeb87c5]{text-align:left;padding:14px 16px;font-weight:600;color:#3a3a3c;background:#fafafa;border-bottom:1px solid #E5E5EA;font-size:13px;position:relative}td[data-v-aaeb87c5]{padding:14px 16px;border-bottom:1px solid #F2F2F7;color:#1c1c1e}tr:hover td[data-v-aaeb87c5]{background:#fafafa}.col-check[data-v-aaeb87c5]{width:40px;text-align:center}.col-check input[data-v-aaeb87c5]{width:16px;height:16px;cursor:pointer}.name-link[data-v-aaeb87c5]{color:#1a5c4b;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.name-link[data-v-aaeb87c5]:hover{color:#0f3d31}.detail-head[data-v-aaeb87c5]{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid #F0F0F2;margin-bottom:14px}.detail-avatar[data-v-aaeb87c5]{width:52px;height:52px;border-radius:50%;background:#e8f3ef;color:#1a5c4b;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.detail-name[data-v-aaeb87c5]{font-size:17px;font-weight:700;margin-bottom:6px}.detail-tags[data-v-aaeb87c5]{display:flex;gap:6px}.detail-rows[data-v-aaeb87c5]{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.detail-row[data-v-aaeb87c5]{display:flex;font-size:14px}.detail-row .dr-label[data-v-aaeb87c5]{width:84px;color:#8e8e93;flex-shrink:0}.filterable-header[data-v-aaeb87c5]{cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;user-select:none;transition:background .15s ease}.filterable-header[data-v-aaeb87c5]:hover{background:#e8f3ef}.filterable-header.active[data-v-aaeb87c5]{background:#e8f3ef;color:#1a5c4b}.filter-badge[data-v-aaeb87c5]{display:inline-block;font-size:10px;font-weight:600;color:#fff;background:#1a5c4b;padding:1px 6px;border-radius:10px;margin-left:2px}.filter-dropdown[data-v-aaeb87c5]{position:absolute;top:100%;left:4px;z-index:100;background:#fff;border:1px solid #E5E5EA;border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:140px;padding:6px 0;max-height:260px;overflow-y:auto}.fd-item[data-v-aaeb87c5]{padding:8px 16px;font-size:13px;cursor:pointer;color:#1c1c1e;transition:background .15s ease}.fd-item[data-v-aaeb87c5]:hover{background:#f2f2f7}.fd-item.active[data-v-aaeb87c5]{color:#1a5c4b;font-weight:600;background:#e8f3ef}.badge[data-v-aaeb87c5]{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.badge-subject[data-v-aaeb87c5]{background:#e8f0fe;color:#007aff}.badge-group[data-v-aaeb87c5]{background:#f0eafd;color:#7c3aed}.badge-active[data-v-aaeb87c5]{background:#e8f9ee;color:#1b7f37}.badge-pending[data-v-aaeb87c5]{background:#fff8e1;color:#b26a00}.badge-leave[data-v-aaeb87c5]{background:#fff3e0;color:#e65100}.badge-exchange[data-v-aaeb87c5]{background:#e3f2fd;color:#1565c0}.badge-resigned[data-v-aaeb87c5]{background:#f5f5f5;color:#616161}.badge-inactive[data-v-aaeb87c5]{background:#ffeded;color:#ff3b30}.badge-suspended[data-v-aaeb87c5]{background:#e8e8ed;color:#48484a}.grade-tags[data-v-aaeb87c5]{font-size:13px;color:#48484a}.action-btn[data-v-aaeb87c5]{padding:6px 12px;font-size:13px;font-weight:500;color:#1a5c4b;background:transparent;border:1px solid #1A5C4B;border-radius:6px;cursor:pointer;transition:all .15s ease}.action-btn[data-v-aaeb87c5]:hover{background:#e8f3ef}.action-group[data-v-aaeb87c5]{display:flex;gap:6px}.action-btn-danger[data-v-aaeb87c5]{color:#ff3b30;border-color:#ff3b30}.action-btn-danger[data-v-aaeb87c5]:hover{background:#ffeded}.action-btn-ok[data-v-aaeb87c5]{color:#1b7f37;border-color:#1b7f37}.action-btn-ok[data-v-aaeb87c5]:hover{background:#e8f9ee}.empty[data-v-aaeb87c5]{text-align:center;color:#8e8e93;padding:40px}.pagination[data-v-aaeb87c5]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid #F2F2F7;font-size:13px;color:#6e6e73}.pagination button[data-v-aaeb87c5]{padding:8px 14px;font-size:13px;font-weight:500;color:#1a5c4b;background:#e8f3ef;border:none;border-radius:6px;cursor:pointer}.pagination button[data-v-aaeb87c5]:hover:not(:disabled){background:#d4e8e0}.pagination button[data-v-aaeb87c5]:disabled{opacity:.4;cursor:not-allowed}.modal-overlay[data-v-aaeb87c5]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-aaeb87c5]{background:#fff;border-radius:16px;padding:28px;width:90%}.modal-content h3[data-v-aaeb87c5]{font-size:18px;font-weight:600;margin:0 0 20px}.form-group[data-v-aaeb87c5]{margin-bottom:16px}.form-group label[data-v-aaeb87c5]{display:block;font-size:13px;font-weight:500;color:#3a3a3c;margin-bottom:6px}.form-group input[data-v-aaeb87c5],.form-group select[data-v-aaeb87c5]{width:100%;padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;box-sizing:border-box}.form-group input[data-v-aaeb87c5]:focus,.form-group select[data-v-aaeb87c5]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.form-actions[data-v-aaeb87c5]{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.grade-checkboxes[data-v-aaeb87c5]{display:flex;flex-wrap:wrap;gap:10px}.subject-tags[data-v-aaeb87c5]{display:flex;gap:4px;flex-wrap:wrap}.subject-checkboxes[data-v-aaeb87c5]{display:flex;flex-wrap:wrap;gap:10px;max-height:200px;overflow-y:auto;padding:4px 0}.sc-item[data-v-aaeb87c5]{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;padding:4px 8px;border:1px solid #E5E5EA;border-radius:8px;transition:all .15s ease}.sc-item[data-v-aaeb87c5]:hover{border-color:#1a5c4b;background:#e8f3ef}.sc-item input[data-v-aaeb87c5]{width:auto}.text-muted[data-v-aaeb87c5]{color:#8e8e93}.gc-item[data-v-aaeb87c5]{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;padding:4px 0}.gc-item input[data-v-aaeb87c5]{width:auto}.btn[data-v-aaeb87c5]{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.btn-primary[data-v-aaeb87c5]{color:#fff;background:#1a5c4b}.btn-primary[data-v-aaeb87c5]:hover{background:#0f3d32}.btn-outline[data-v-aaeb87c5]{color:#1a5c4b;background:transparent;border:1px solid #1A5C4B}.btn-outline[data-v-aaeb87c5]:hover{background:#e8f3ef}.import-guide[data-v-aaeb87c5]{background:#f8f9fa;border-radius:10px;padding:16px;margin-bottom:16px}.guide-step[data-v-aaeb87c5]{font-size:13px;color:#3a3a3c;margin:4px 0}.guide-step .dl-link[data-v-aaeb87c5]{color:#1a5c4b;font-weight:600;text-decoration:underline}.guide-note[data-v-aaeb87c5]{font-size:12px;color:#8e8e93;margin-top:8px;line-height:1.6}.import-file-area[data-v-aaeb87c5]{margin-bottom:16px}.import-file-input[data-v-aaeb87c5]{font-size:14px}.file-name[data-v-aaeb87c5]{margin-left:10px;font-size:13px;color:#1a5c4b;font-weight:500}.import-errors[data-v-aaeb87c5]{background:#fff6e0;border-radius:8px;padding:12px 16px;margin-bottom:16px;max-height:150px;overflow-y:auto}.err-title[data-v-aaeb87c5]{font-size:13px;font-weight:600;color:#9b6d08;margin:0 0 6px}.import-errors ul[data-v-aaeb87c5]{margin:0;padding-left:18px;font-size:12px;color:#9b6d08}.import-errors li[data-v-aaeb87c5]{margin:2px 0}.import-preview[data-v-aaeb87c5]{margin-bottom:16px}.preview-title[data-v-aaeb87c5]{font-size:13px;font-weight:600;color:#1c1c1e;margin:0 0 8px}.preview-table-wrap[data-v-aaeb87c5]{max-height:300px;overflow-y:auto;border:1px solid #E5E5EA;border-radius:8px}.preview-table[data-v-aaeb87c5]{width:100%;border-collapse:collapse;font-size:13px}.preview-table th[data-v-aaeb87c5]{padding:8px 12px;font-weight:600;color:#3a3a3c;background:#fafafa;border-bottom:1px solid #E5E5EA;text-align:left;position:sticky;top:0}.preview-table td[data-v-aaeb87c5]{padding:8px 12px;border-bottom:1px solid #F2F2F7;color:#1c1c1e}.more-rows[data-v-aaeb87c5]{text-align:center;color:#8e8e93;font-style:italic}.import-result[data-v-aaeb87c5]{border-radius:8px;padding:14px 16px;margin-bottom:16px;background:#e8f9ee}.import-result.has-fail[data-v-aaeb87c5]{background:#fff6e0}.result-summary[data-v-aaeb87c5]{font-size:14px;font-weight:600;margin:0 0 6px}.result-errors[data-v-aaeb87c5]{margin-top:8px}.result-errors p[data-v-aaeb87c5]{font-size:12px;font-weight:600;margin:0 0 4px;color:#ff3b30}.result-errors ul[data-v-aaeb87c5]{margin:0;padding-left:18px;font-size:12px;color:#ff3b30}.result-errors li[data-v-aaeb87c5]{margin:2px 0}.super-admin-tip[data-v-aaeb87c5]{font-size:12px;color:#e8927a;margin-top:4px}.student-manager[data-v-d4aa2db2]{max-width:1200px}.toast[data-v-d4aa2db2]{padding:10px 18px;border-radius:8px;background:#e8f9ee;color:#1b7f37;font-size:14px;font-weight:500;margin-bottom:16px;animation:fadeIn-d4aa2db2 .2s ease}.toast.error[data-v-d4aa2db2]{background:#ffeded;color:#ff3b30}@keyframes fadeIn-d4aa2db2{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.section[data-v-d4aa2db2]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;padding:20px;margin-bottom:16px}.section-header[data-v-d4aa2db2]{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-header h2[data-v-d4aa2db2]{font-size:20px;font-weight:700;color:#1c1c1e;margin:0}.section-header h3[data-v-d4aa2db2]{font-size:16px;font-weight:600;color:#1c1c1e;margin:0}.section-actions[data-v-d4aa2db2]{display:flex;gap:8px}.btn[data-v-d4aa2db2]{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn[data-v-d4aa2db2]:disabled{opacity:.5;cursor:not-allowed}.btn-sm[data-v-d4aa2db2]{padding:8px 16px;font-size:13px;font-weight:500}.btn-primary[data-v-d4aa2db2]{color:#fff;background:#1a5c4b}.btn-primary[data-v-d4aa2db2]:hover{background:#0f3d32}.btn-outline[data-v-d4aa2db2]{color:#1a5c4b;background:transparent;border:1px solid #1A5C4B}.btn-outline[data-v-d4aa2db2]:hover{background:#e8f3ef}.grade-tabs[data-v-d4aa2db2]{display:flex;gap:8px;flex-wrap:wrap}.grade-tab[data-v-d4aa2db2]{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid #E5E5EA;border-radius:10px;background:#fafafa;cursor:pointer;transition:all .15s ease;font-size:14px}.grade-tab[data-v-d4aa2db2]:hover{border-color:#1a5c4b;background:#e8f3ef}.grade-tab.active[data-v-d4aa2db2]{border-color:#1a5c4b;background:#e8f3ef;font-weight:600}.gt-name[data-v-d4aa2db2]{color:#1c1c1e}.gt-count[data-v-d4aa2db2]{font-size:12px;color:#8e8e93;background:#f2f2f7;padding:2px 8px;border-radius:6px}.gt-del[data-v-d4aa2db2]{font-size:16px;color:#c7c7cc;line-height:1;padding:0 2px;transition:color .15s ease}.gt-del[data-v-d4aa2db2]:hover{color:#ff3b30}.class-strip[data-v-d4aa2db2]{display:flex;gap:8px;flex-wrap:wrap}.class-chip[data-v-d4aa2db2]{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #E5E5EA;border-radius:8px;background:#fff;cursor:pointer;transition:all .15s ease;font-size:14px}.class-chip[data-v-d4aa2db2]:hover{border-color:#2d8b72}.class-chip.active[data-v-d4aa2db2]{border-color:#1a5c4b;background:#e8f3ef;font-weight:600}.chip-count[data-v-d4aa2db2]{font-size:12px;color:#8e8e93;margin-left:2px}.chip-name[data-v-d4aa2db2]{font-weight:600}.chip-teacher[data-v-d4aa2db2]{font-size:11px;color:#4f46e5;background:#eef2ff;padding:1px 6px;border-radius:4px;white-space:nowrap}.cls-edit[data-v-d4aa2db2]{font-size:13px;color:#c7c7cc;line-height:1;margin-left:6px;padding:0 2px;transition:color .15s ease}.cls-edit[data-v-d4aa2db2]:hover{color:#1a5c4b}.cls-del[data-v-d4aa2db2]{font-size:16px;color:#c7c7cc;line-height:1;margin-left:6px;padding:0 2px;transition:color .15s ease}.cls-del[data-v-d4aa2db2]:hover{color:#ff3b30}.filter-bar[data-v-d4aa2db2]{display:flex;gap:10px;margin-bottom:14px}.filter-input[data-v-d4aa2db2]{padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;flex:1;max-width:280px}.filter-input[data-v-d4aa2db2]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.filter-select[data-v-d4aa2db2]{padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;background:#fff;min-width:100px;cursor:pointer}.filter-select[data-v-d4aa2db2]:focus{outline:none;border-color:#1a5c4b}.filter-row[data-v-d4aa2db2]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grade-filter[data-v-d4aa2db2]{min-width:180px}.class-filter[data-v-d4aa2db2]{min-width:220px;flex:1;max-width:360px}tr.selected td[data-v-d4aa2db2]{background:#e8f3ef}.batch-bar[data-v-d4aa2db2]{display:flex;align-items:center;gap:12px;padding:10px 16px;margin-bottom:12px;background:#fff6e0;border:1px solid #D4920A;border-radius:10px;font-size:14px;color:#9b6d08}.batch-bar strong[data-v-d4aa2db2]{font-weight:700}.btn-danger[data-v-d4aa2db2]{color:#fff;background:#ff3b30;border:none;padding:8px 16px;font-size:13px;font-weight:500;border-radius:8px;cursor:pointer}.btn-danger[data-v-d4aa2db2]:hover{background:#e6352b}.table-card[data-v-d4aa2db2]{border:1px solid #E5E5EA;border-radius:10px;overflow:hidden}table[data-v-d4aa2db2]{width:100%;border-collapse:collapse;font-size:14px}thead[data-v-d4aa2db2]{position:sticky;top:0;z-index:2}th[data-v-d4aa2db2]{text-align:left;padding:12px 16px;font-weight:600;color:#3a3a3c;background:#fafafa;border-bottom:1px solid #E5E5EA;font-size:13px}td[data-v-d4aa2db2]{padding:12px 16px;border-bottom:1px solid #F2F2F7;color:#1c1c1e}tr:hover td[data-v-d4aa2db2]{background:#fafafa}code[data-v-d4aa2db2]{font-family:JetBrains Mono,monospace;font-size:13px;color:#48484a}.td-name[data-v-d4aa2db2]{font-weight:500}.action-btn[data-v-d4aa2db2]{padding:6px 12px;font-size:13px;font-weight:500;color:#1a5c4b;background:transparent;border:1px solid #1A5C4B;border-radius:6px;cursor:pointer;margin-right:6px;transition:all .15s ease}.action-btn[data-v-d4aa2db2]:hover{background:#e8f3ef}.action-btn.danger[data-v-d4aa2db2]{color:#ff3b30;border-color:#ff3b30}.action-btn.danger[data-v-d4aa2db2]:hover{background:#ffeded}.empty[data-v-d4aa2db2]{text-align:center;color:#8e8e93;padding:32px}.empty-hint[data-v-d4aa2db2]{font-size:13px;color:#8e8e93;padding:8px 0}.empty-state[data-v-d4aa2db2]{text-align:center;color:#8e8e93;padding:48px 0;font-size:15px}.pagination[data-v-d4aa2db2]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid #F2F2F7;font-size:13px;color:#6e6e73}.pagination button[data-v-d4aa2db2]{padding:8px 14px;font-size:13px;font-weight:500;color:#1a5c4b;background:#e8f3ef;border:none;border-radius:6px;cursor:pointer}.pagination button[data-v-d4aa2db2]:hover:not(:disabled){background:#d4e8e0}.pagination button[data-v-d4aa2db2]:disabled{opacity:.4;cursor:not-allowed}.modal-overlay[data-v-d4aa2db2]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-d4aa2db2]{background:#fff;border-radius:16px;padding:28px;width:90%}.modal-content h3[data-v-d4aa2db2]{font-size:18px;font-weight:600;margin:0 0 20px}.form-group[data-v-d4aa2db2]{margin-bottom:16px}.form-group label[data-v-d4aa2db2]{display:block;font-size:13px;font-weight:500;color:#3a3a3c;margin-bottom:6px}.form-group input[data-v-d4aa2db2],.form-group select[data-v-d4aa2db2],.form-group textarea[data-v-d4aa2db2]{width:100%;padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;box-sizing:border-box;font-family:inherit}.form-group textarea[data-v-d4aa2db2]{resize:vertical}.form-group input[data-v-d4aa2db2]:focus,.form-group select[data-v-d4aa2db2]:focus,.form-group textarea[data-v-d4aa2db2]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.form-actions[data-v-d4aa2db2]{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.batch-hint[data-v-d4aa2db2]{font-size:14px;color:#6e6e73;margin:-10px 0 16px}.file-toolbar[data-v-d4aa2db2]{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.upload-label[data-v-d4aa2db2]{cursor:pointer}.file-hint[data-v-d4aa2db2]{font-size:12px;color:#8e8e93}.batch-msg[data-v-d4aa2db2]{padding:10px 14px;border-radius:8px;margin-bottom:12px;background:#e8f9ee;color:#1b7f37;font-size:14px}.batch-msg.error[data-v-d4aa2db2]{background:#ffeded;color:#ff3b30}.preview-box[data-v-d4aa2db2]{margin-top:8px;padding:8px 12px;background:#f2f2f7;border-radius:8px;font-size:13px}.preview-label[data-v-d4aa2db2]{color:#6e6e73}.preview-names[data-v-d4aa2db2]{color:#1a5c4b;font-weight:500}.sc-tag[data-v-d4aa2db2]{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle}.tag-gifted[data-v-d4aa2db2]{background:#22c55e}.tag-talent[data-v-d4aa2db2]{background:#f59e0b}.tag-special[data-v-d4aa2db2]{background:#ef4444}.dt-header[data-v-d4aa2db2]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #F2F2F7}.dt-health-card[data-v-d4aa2db2]{display:flex;align-items:center;gap:20px;padding:14px 16px;background:#f8faf9;border:1px solid #E8EFEC;border-radius:12px;margin-bottom:14px}.dh-photo[data-v-d4aa2db2]{width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid #E5E5EA;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;overflow:hidden}.dh-photo img[data-v-d4aa2db2]{width:100%;height:100%;object-fit:cover}.dh-items[data-v-d4aa2db2]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 16px;flex:1}.dh-item[data-v-d4aa2db2]{text-align:center;background:#fff;border:1px solid #EEF2F0;border-radius:8px;padding:8px 4px}.dh-label[data-v-d4aa2db2]{font-size:11px;color:#8e8e93;margin-bottom:3px}.dh-value[data-v-d4aa2db2]{font-size:16px;font-weight:700;color:#1c1c1e}.dh-unit[data-v-d4aa2db2]{font-size:11px;font-weight:500;color:#8e8e93;margin-left:2px}.dt-name[data-v-d4aa2db2]{font-size:20px;font-weight:700;color:#1c1c1e}.dt-meta[data-v-d4aa2db2]{font-size:13px;color:#8e8e93;margin-top:2px}.dh-tag[data-v-d4aa2db2]{font-size:12px;padding:4px 12px;border-radius:20px;font-weight:600}.dh-gifted[data-v-d4aa2db2]{background:#e8f3ef;color:#1a5c4b}.dh-talent[data-v-d4aa2db2]{background:#fffbeb;color:#d97706;border:1px solid #FDE68A}.dh-special[data-v-d4aa2db2]{background:#fff0f0;color:#dc2626;border:1px solid #FFCDD2}.dt-card[data-v-d4aa2db2]{display:flex;gap:12px;background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:14px;margin-bottom:10px}.dt-card-icon[data-v-d4aa2db2]{font-size:20px;width:28px;text-align:center;flex-shrink:0}.dt-card-title[data-v-d4aa2db2]{font-size:13px;font-weight:600;color:#1c1c1e;margin-bottom:4px}.dt-card-text[data-v-d4aa2db2]{font-size:13px;color:#3a3a3c;line-height:1.6;white-space:pre-wrap}.advice-row[data-v-d4aa2db2]{display:flex;gap:10px;padding:6px 0}.advice-subj[data-v-d4aa2db2]{font-size:13px;font-weight:600;color:#1a5c4b;width:40px;flex-shrink:0}.advice-text[data-v-d4aa2db2]{font-size:13px;color:#3a3a3c}.honor-item[data-v-d4aa2db2]{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#fafafa;border-radius:6px;margin-bottom:4px}.honor-year[data-v-d4aa2db2]{font-size:11px;color:#8e8e93;width:80px}.honor-title[data-v-d4aa2db2]{font-size:13px;color:#1c1c1e;flex:1}.honor-level[data-v-d4aa2db2]{font-size:10px;padding:1px 8px;border-radius:10px;font-weight:600}.hl-nat[data-v-d4aa2db2]{background:#fef3c7;color:#d97706}.hl-prov[data-v-d4aa2db2]{background:#e0e7ff;color:#4338ca}.hl-city[data-v-d4aa2db2]{background:#e0f2fe;color:#0284c7}.hl-schl[data-v-d4aa2db2]{background:#f3f4f6;color:#6b7280}.track-item[data-v-d4aa2db2]{background:#fafafa;border:1px solid #E5E5EA;border-radius:8px;padding:10px;margin-bottom:6px}.track-term[data-v-d4aa2db2]{font-size:12px;font-weight:600;color:#1a5c4b;margin-bottom:4px}.track-line[data-v-d4aa2db2]{font-size:12px;color:#3a3a3c;margin-bottom:2px}.tab-sm[data-v-d4aa2db2]{padding:4px 12px;font-size:12px;border:1px solid #E5E5EA;border-radius:6px;background:#f5f5f5;cursor:pointer;color:#3a3a3c}.tab-sm.active[data-v-d4aa2db2]{background:#1a5c4b;color:#fff;border-color:#1a5c4b}.tab-sm-group[data-v-d4aa2db2]{display:flex;gap:4px}.form-row[data-v-d4aa2db2]{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.form-row label[data-v-d4aa2db2]{width:70px;font-size:12px;font-weight:600;color:#3a3a3c;padding-top:6px;flex-shrink:0}.student-link[data-v-d4aa2db2]{color:#2563eb;cursor:pointer;font-weight:600}.student-link[data-v-d4aa2db2]:hover{text-decoration:underline}.readonly-view[data-v-d4aa2db2]{padding:4px 0}.info-line[data-v-d4aa2db2]{display:flex;gap:8px;margin-bottom:10px;padding:6px 0;border-bottom:1px solid #F0F0F0}.info-label[data-v-d4aa2db2]{width:70px;font-size:12px;font-weight:600;color:#6e6e73;flex-shrink:0;padding-top:2px}.info-value[data-v-d4aa2db2]{flex:1;font-size:13px;color:#1c1c1e;line-height:1.5;white-space:pre-wrap}.stu-photo[data-v-d4aa2db2]{width:36px;height:36px;border-radius:50%;object-fit:cover;border:1px solid #E5E5EA;display:flex;align-items:center;justify-content:center;font-size:16px;background:#f2f2f7}.stu-photo.placeholder[data-v-d4aa2db2]{color:#b0b0b5}.class-manager[data-v-82a5c845]{padding:20px;max-width:1200px;margin:0 auto}.toast[data-v-82a5c845]{padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;margin-bottom:14px;background:#e8f9ee;color:#1b7f37;border:1px solid #B8E6C8}.toast.error[data-v-82a5c845]{background:#ffeded;color:#e64340;border-color:#ffd0d0}.section[data-v-82a5c845]{background:#fff;border-radius:14px;padding:18px 20px;margin-bottom:18px;box-shadow:0 2px 10px #1c3c320f}.section-header[data-v-82a5c845]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px}.section-header h2[data-v-82a5c845]{margin:0;font-size:19px;font-weight:700;color:#1c1c1e}.section-header h3[data-v-82a5c845]{margin:0;font-size:16px;font-weight:700;color:#1c1c1e}.section-actions[data-v-82a5c845]{display:flex;gap:8px;flex-wrap:wrap}.grade-tabs[data-v-82a5c845]{display:flex;gap:10px;flex-wrap:wrap}.grade-tab[data-v-82a5c845]{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border:1.5px solid #E5E5EA;border-radius:10px;background:#fff;cursor:pointer;min-width:86px;text-align:left}.grade-tab.active[data-v-82a5c845]{border-color:#1a5c4b;background:#eff7f3}.gt-name[data-v-82a5c845]{font-size:14px;font-weight:700;color:#1c1c1e}.gt-count[data-v-82a5c845]{font-size:12px;color:#8e8e93}.gt-del[data-v-82a5c845]{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#e64340;color:#fff;font-size:12px;line-height:18px;text-align:center;display:none;cursor:pointer}.grade-tab:hover .gt-del[data-v-82a5c845]{display:block}.class-strip[data-v-82a5c845]{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}.class-chip[data-v-82a5c845]{position:relative;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1.5px solid #E5E5EA;border-radius:10px;background:#fff;cursor:pointer;min-width:0;text-align:left;box-sizing:border-box}.class-chip.active[data-v-82a5c845]{border-color:#2d7d9a;background:#f0f8fc}.chip-name[data-v-82a5c845]{font-size:14px;font-weight:700;color:#1c1c1e}.chip-count[data-v-82a5c845]{font-size:12px;color:#8e8e93}.chip-teacher[data-v-82a5c845]{font-size:12px;color:#6e6e73}.cls-edit[data-v-82a5c845]{position:absolute;top:-6px;right:16px;width:18px;height:18px;border-radius:50%;background:#2d6a9f;color:#fff;font-size:11px;line-height:18px;text-align:center;display:none;cursor:pointer}.cls-del[data-v-82a5c845]{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#e64340;color:#fff;font-size:12px;line-height:18px;text-align:center;display:none;cursor:pointer}.class-chip:hover .cls-edit[data-v-82a5c845],.class-chip:hover .cls-del[data-v-82a5c845]{display:block}.empty-hint[data-v-82a5c845]{color:#c7c7cc;font-size:13px;padding:10px 0;width:100%;text-align:center}.modal-overlay[data-v-82a5c845]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:500}.modal-content[data-v-82a5c845]{background:#fff;border-radius:14px;padding:22px;width:100%;box-shadow:0 8px 32px #1c3c3224}.modal-content h3[data-v-82a5c845]{margin:0 0 6px;font-size:16px;font-weight:700;color:#1c1c1e}.form-group[data-v-82a5c845]{margin-bottom:12px}.form-group label[data-v-82a5c845]{display:block;font-size:13px;font-weight:600;color:#3a3a3c;margin-bottom:6px}.form-group input[data-v-82a5c845]{width:100%;padding:9px 10px;border:1px solid #E5E5EA;border-radius:8px;font-size:14px;box-sizing:border-box}.form-actions[data-v-82a5c845]{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.preview-box[data-v-82a5c845]{margin-top:8px;font-size:13px;color:#1a5c4b}.batch-msg[data-v-82a5c845]{margin-top:8px;font-size:13px;color:#1b7f37}.batch-msg.error[data-v-82a5c845]{color:#e64340}.btn[data-v-82a5c845]{border-radius:8px;font-size:14px;font-weight:600;padding:8px 14px;border:none;cursor:pointer}.btn-sm[data-v-82a5c845]{padding:5px 10px;font-size:13px}.btn-primary[data-v-82a5c845]{background:#1a5c4b;color:#fff}.btn-outline[data-v-82a5c845]{background:#fff;color:#1a5c4b;border:1.5px solid #1A5C4B}.btn-ghost[data-v-82a5c845]{background:#f2f2f7;color:#48484a}.btn-ghost.active[data-v-82a5c845]{background:#dde7e2;color:#1a5c4b}.sc-page[data-v-a1cd0a1d]{max-width:900px;padding:20px}.topbar[data-v-a1cd0a1d]{display:flex;align-items:center;gap:16px;margin-bottom:14px;flex-wrap:wrap}.topbar h2[data-v-a1cd0a1d]{font-size:20px;font-weight:600;margin:0}.tabs[data-v-a1cd0a1d]{display:flex;gap:6px}.tab-btn[data-v-a1cd0a1d]{padding:7px 16px;border:1.5px solid #E5E5EA;border-radius:8px;font-size:14px;font-weight:600;background:#fff;color:#6e6e73;cursor:pointer;font-family:inherit}.tab-btn.active[data-v-a1cd0a1d]{background:#1a5c4b;border-color:#1a5c4b;color:#fff}.orient-label[data-v-a1cd0a1d]{font-size:13px;color:#8e8e93}.size-input[data-v-a1cd0a1d]{width:72px}.filters[data-v-a1cd0a1d]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.input[data-v-a1cd0a1d]{padding:8px 12px;border:1.5px solid #E5E5EA;border-radius:8px;font-size:14px;background:#fff;font-family:inherit}.btn[data-v-a1cd0a1d]{padding:8px 18px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}.btn-outline[data-v-a1cd0a1d]{background:#fff;border:1.5px solid #D1D5DB;color:#374151}.btn-outline[data-v-a1cd0a1d]:hover{border-color:#1a5c4b;color:#1a5c4b}.btn-primary[data-v-a1cd0a1d]{background:#1a5c4b;color:#fff}.btn-primary[data-v-a1cd0a1d]:hover{background:#134438}.btn[data-v-a1cd0a1d]:disabled{opacity:.5;cursor:not-allowed}.sc-msg[data-v-a1cd0a1d]{font-size:13px;color:#1a5c4b;font-weight:500;margin-bottom:8px}.sc-hint[data-v-a1cd0a1d]{font-size:12px;color:#8e8e93}.print-area[data-v-a1cd0a1d]{padding:20px}.print-empty[data-v-a1cd0a1d]{text-align:center;color:#c7c7cc;font-size:14px;padding:60px}.print-page[data-v-a1cd0a1d]{position:relative;width:194mm;height:281mm;break-inside:avoid;page-break-inside:avoid}.print-page[data-v-a1cd0a1d]:not(:last-child){page-break-after:always;break-after:page}.card[data-v-a1cd0a1d]{position:absolute;width:85.5mm;height:54mm;background:#fff;border:.9mm solid #1A5C4B;border-radius:3mm;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.card-top[data-v-a1cd0a1d]{height:11mm;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fff}.card-school[data-v-a1cd0a1d]{font-size:4mm;font-weight:700;color:#1a5c4b}.card-logo[data-v-a1cd0a1d]{height:8mm;width:auto;max-width:40mm;object-fit:contain}.card-body[data-v-a1cd0a1d]{flex:1;display:flex;align-items:center;gap:4mm;padding:2mm 16mm 4mm 4.5mm;min-height:0}.card-photo[data-v-a1cd0a1d]{width:28mm;height:35mm;flex-shrink:0;border-radius:2mm;border:.4mm solid #E5E5EA;background:#f2f2f7;overflow:hidden;display:flex;align-items:center;justify-content:center}.card-photo img[data-v-a1cd0a1d]{width:100%;height:100%;object-fit:cover}.no-photo[data-v-a1cd0a1d]{font-size:8mm;color:#b0b0b5}.card-info[data-v-a1cd0a1d]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.6mm}.card-name[data-v-a1cd0a1d]{font-size:6mm;font-weight:800;color:#1c1c1e;line-height:1.2;margin-bottom:.8mm}.card-line[data-v-a1cd0a1d]{font-size:3.6mm;color:#6e6e73;display:flex;align-items:center;gap:2mm}.card-line .lbl[data-v-a1cd0a1d]{color:#8e8e93}.card-line b[data-v-a1cd0a1d]{color:#1c1c1e}.card-qr[data-v-a1cd0a1d]{position:absolute;right:3mm;bottom:2.5mm;width:14mm;height:14mm;background:#fff;border:.3mm solid #D1D5DB;border-radius:1.5mm;overflow:hidden}.qr-img[data-v-a1cd0a1d]{width:100%;height:100%;object-fit:contain;display:block}.qr-dots[data-v-a1cd0a1d]{position:absolute;inset:1.6mm;background-image:radial-gradient(circle,#1C1C1E .7mm,transparent .8mm);background-size:3mm 3mm}.qr-corner[data-v-a1cd0a1d]{position:absolute;width:4mm;height:4mm;border:1mm solid #1C1C1E}.qr-corner.tl[data-v-a1cd0a1d]{top:.8mm;left:.8mm}.qr-corner.tr[data-v-a1cd0a1d]{top:.8mm;right:.8mm}.qr-corner.bl[data-v-a1cd0a1d]{bottom:.8mm;left:.8mm}.card.portrait[data-v-a1cd0a1d]{width:54mm;height:85.5mm;flex-direction:column}.card.portrait .card-top[data-v-a1cd0a1d]{height:9mm}.card.portrait .card-body[data-v-a1cd0a1d]{flex:1;flex-direction:column;justify-content:flex-start;gap:2.5mm;padding:2mm 3mm 0}.card.portrait .card-photo[data-v-a1cd0a1d]{width:30mm;height:36mm}.card.portrait .card-info[data-v-a1cd0a1d]{align-items:center;text-align:center;gap:1.2mm;padding-bottom:2mm}.card.portrait .card-name[data-v-a1cd0a1d]{font-size:5.5mm}.card.portrait .card-qr[data-v-a1cd0a1d]{right:2.5mm;bottom:2mm;width:13mm;height:13mm}.label-sticker[data-v-a1cd0a1d]{position:absolute;background:#fff;border:.4mm solid #1A5C4B;border-radius:1.5mm;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;padding:1.5mm 2mm;overflow:hidden}.label-qr[data-v-a1cd0a1d]{object-fit:contain;flex-shrink:0;margin-right:1.5mm}.label-sticker.label-col[data-v-a1cd0a1d]{flex-direction:column;justify-content:center}.label-col .label-qr[data-v-a1cd0a1d]{margin-right:0;margin-bottom:1mm}.label-col .label-info[data-v-a1cd0a1d]{align-items:center;text-align:center;width:100%}.label-info[data-v-a1cd0a1d]{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.8mm}.label-name[data-v-a1cd0a1d]{font-weight:800;color:#1c1c1e;line-height:1.2;overflow:hidden;white-space:nowrap}.label-no[data-v-a1cd0a1d]{font-size:2.6mm;font-weight:600;color:#555;margin-left:1.5mm}.label-cls[data-v-a1cd0a1d]{font-size:3.4mm;font-weight:700;color:#000;line-height:1.2;overflow:hidden;white-space:nowrap}@media print{@page{size:A4;margin:8mm}.no-print[data-v-a1cd0a1d]{display:none!important}.print-area[data-v-a1cd0a1d]{position:static;padding:0;background:#fff}.print-page[data-v-a1cd0a1d]{position:relative;width:194mm;height:281mm;page-break-after:always;break-after:page}.print-page[data-v-a1cd0a1d]:last-child{page-break-after:auto}.print-empty[data-v-a1cd0a1d]{display:none}}@media print{.sidebar,.topbar,.modal-overlay,.ann-modal{display:none!important}.main-wrapper{margin-left:0!important}.page-content{padding:0!important}#app{background:#fff!important}}.assignment-page[data-v-274a1e2d]{max-width:1200px}.grade-subjects-section[data-v-274a1e2d]{background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:16px 18px;margin-bottom:16px}.section-title-row[data-v-274a1e2d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.section-title[data-v-274a1e2d]{font-size:15px;font-weight:700;color:#1c1c1e}.section-desc[data-v-274a1e2d]{font-size:12px;color:#8e8e93;margin:0 0 12px}.gs-grid[data-v-274a1e2d]{display:flex;flex-direction:column;gap:10px}.gs-grade[data-v-274a1e2d]{display:flex;align-items:flex-start;gap:12px}.gs-grade-name[data-v-274a1e2d]{font-size:13px;font-weight:600;color:#1a5c4b;width:80px;flex-shrink:0;padding-top:4px}.gs-subjects[data-v-274a1e2d]{display:flex;flex-wrap:wrap;gap:6px}.gs-sub[data-v-274a1e2d]{display:flex;align-items:center;gap:3px;cursor:pointer;padding:4px 10px;border:1px solid #E5E5EA;border-radius:5px;font-size:13px;transition:all .15s ease}.gs-sub[data-v-274a1e2d]:hover{border-color:#1a5c4b}.gs-sub.checked[data-v-274a1e2d]{background:#e8f3ef;border-color:#1a5c4b;color:#1a5c4b;font-weight:600}.gs-order-row[data-v-274a1e2d]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;transition:background .15s ease}.gs-order-row[data-v-274a1e2d]:hover{background:#f2f2f7}.gs-order-arrows[data-v-274a1e2d]{display:flex;flex-direction:column;gap:1px}.gs-arrow-btn[data-v-274a1e2d]{background:transparent;border:1px solid #E5E5EA;border-radius:3px;cursor:pointer;font-size:10px;padding:0 4px;line-height:1.4;color:#8e8e93}.gs-arrow-btn[data-v-274a1e2d]:hover:not(:disabled){border-color:#1a5c4b;color:#1a5c4b}.gs-arrow-btn[data-v-274a1e2d]:disabled{opacity:.3;cursor:default}.gs-order-num[data-v-274a1e2d]{font-size:11px;color:#c7c7cc;width:16px;text-align:center;flex-shrink:0}.gs-order-name[data-v-274a1e2d]{font-size:14px;font-weight:600;color:#1c1c1e;width:80px;flex-shrink:0}.gs-order-grades[data-v-274a1e2d]{display:flex;gap:4px;flex-wrap:wrap}.gs-tag[data-v-274a1e2d]{display:flex;align-items:center;gap:2px;cursor:pointer;padding:2px 8px;border:1px solid #E5E5EA;border-radius:10px;font-size:11px;transition:all .15s ease;color:#8e8e93}.gs-tag[data-v-274a1e2d]:hover{border-color:#1a5c4b}.gs-tag.on[data-v-274a1e2d]{background:#e8f3ef;border-color:#1a5c4b;color:#1a5c4b;font-weight:600}.gs-tag input[data-v-274a1e2d]{display:none}.toast[data-v-274a1e2d]{padding:10px 18px;border-radius:8px;background:#e8f9ee;color:#1b7f37;font-size:14px;margin-bottom:16px}.toast.error[data-v-274a1e2d]{background:#ffeded;color:#ff3b30}.page-header[data-v-274a1e2d]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h2[data-v-274a1e2d]{font-size:22px;font-weight:700;color:#1c1c1e;margin:0}.header-actions[data-v-274a1e2d]{display:flex;gap:8px}.filter-bar[data-v-274a1e2d]{display:flex;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:8px}.btn[data-v-274a1e2d]{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.btn-sm[data-v-274a1e2d]{padding:6px 12px;font-size:12px;font-weight:500}.btn-primary[data-v-274a1e2d]{color:#fff;background:#1a5c4b}.btn-primary[data-v-274a1e2d]:hover{background:#0f3d32}.btn-primary[data-v-274a1e2d]:disabled{opacity:.5;cursor:not-allowed}.btn-outline[data-v-274a1e2d]{color:#1a5c4b;background:transparent;border:1px solid #1A5C4B}.btn-outline[data-v-274a1e2d]:hover{background:#e8f3ef}.btn-danger[data-v-274a1e2d]{color:#ff3b30;background:transparent;border:1px solid #FF3B30}.btn-danger[data-v-274a1e2d]:hover{background:#ffeded}.table-wrap[data-v-274a1e2d]{overflow-x:auto;background:#fff;border:1px solid #E5E5EA;border-radius:12px}.schedule-table[data-v-274a1e2d]{width:100%;border-collapse:collapse;font-size:14px}.schedule-table thead[data-v-274a1e2d]{position:sticky;top:0;z-index:2}.schedule-table th[data-v-274a1e2d]{text-align:left;padding:10px 12px;font-weight:600;color:#3a3a3c;background:#fafafa;border-bottom:1px solid #E5E5EA;font-size:13px;white-space:nowrap}.th-sortable[data-v-274a1e2d]{user-select:none}.th-content[data-v-274a1e2d]{display:flex;align-items:center;gap:6px;justify-content:space-between}.th-arrows[data-v-274a1e2d]{display:flex;gap:1px;opacity:0;transition:opacity .15s ease}.th-sortable:hover .th-arrows[data-v-274a1e2d]{opacity:1}.th-arrow[data-v-274a1e2d]{background:transparent;border:1px solid #D1D1D6;border-radius:3px;cursor:pointer;font-size:11px;padding:0 4px;line-height:1.3;color:#8e8e93}.th-arrow[data-v-274a1e2d]:hover:not(:disabled){border-color:#1a5c4b;color:#1a5c4b;background:#e8f3ef}.th-arrow[data-v-274a1e2d]:disabled{opacity:.2;cursor:default}.schedule-table td[data-v-274a1e2d]{padding:8px 12px;border-bottom:1px solid #F2F2F7}.schedule-table tr:hover td[data-v-274a1e2d]{background:#fafafa}.cell-class[data-v-274a1e2d]{font-weight:500;color:#1c1c1e;white-space:nowrap}.cell-teacher[data-v-274a1e2d]{cursor:pointer;position:relative}.cell-teacher[data-v-274a1e2d]:hover{background:#e8f3ef!important}.cell-teacher.editing[data-v-274a1e2d]{padding:4px 8px}.cell-teacher.saving[data-v-274a1e2d]:after{content:"";position:absolute;inset:0;background:#1a5c4b14;border-radius:4px;animation:pulse-274a1e2d 1s infinite}@keyframes pulse-274a1e2d{0%,to{opacity:.3}50%{opacity:.6}}.teacher-name[data-v-274a1e2d]{font-size:13px;color:#48484a}.teacher-name.orphan[data-v-274a1e2d]{color:#ff3b30;font-style:italic}.loading-state[data-v-274a1e2d]{text-align:center;padding:40px;color:#8e8e93;font-size:14px}.fg-inline[data-v-274a1e2d]{display:inline-flex;align-items:center}.grade-tab[data-v-274a1e2d]{padding:7px 14px;border:1.5px solid #E5E5EA;border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:#3a3a3c;cursor:pointer;transition:all .15s ease}.grade-tab[data-v-274a1e2d]:hover{border-color:#b8cfc6}.grade-tab.active[data-v-274a1e2d]{border-color:#1a5c4b;background:#eff7f3;color:#1a5c4b}.modal-overlay[data-v-274a1e2d]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-274a1e2d]{background:#fff;border-radius:16px;padding:24px;width:90%;max-height:90vh;overflow-y:auto}.modal-header[data-v-274a1e2d]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-header h3[data-v-274a1e2d]{font-size:18px;font-weight:600;margin:0}.modal-content h4[data-v-274a1e2d]{font-size:15px;font-weight:600;margin:0 0 12px;color:#3a3a3c}.form-group[data-v-274a1e2d]{margin-bottom:16px;display:block}.form-group label[data-v-274a1e2d]{display:block;font-size:13px;font-weight:500;color:#3a3a3c;margin-bottom:6px}.form-actions[data-v-274a1e2d]{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.semester-list[data-v-274a1e2d]{border:1px solid #E5E5EA;border-radius:8px;overflow:hidden;margin-bottom:16px}.semester-item[data-v-274a1e2d]{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #F2F2F7;transition:background .15s}.semester-item[data-v-274a1e2d]:last-child{border-bottom:none}.semester-item.current[data-v-274a1e2d]{background:#e8f3ef}.semester-item.editing[data-v-274a1e2d]{background:#fff9e6;border-left:3px solid #D4920A}.semester-info[data-v-274a1e2d]{flex:1;min-width:0}.semester-name[data-v-274a1e2d]{font-weight:500;color:#1c1c1e;font-size:14px}.semester-meta[data-v-274a1e2d]{font-size:12px;color:#8e8e93;margin-top:2px}.current-tag[data-v-274a1e2d]{display:inline-block;padding:2px 8px;border-radius:4px;background:#1a5c4b;color:#fff;font-size:11px;margin-left:6px}.semester-actions[data-v-274a1e2d]{display:flex;gap:6px;flex-shrink:0}.semester-empty[data-v-274a1e2d]{text-align:center;color:#8e8e93;padding:24px;font-size:14px}.semester-form-panel[data-v-274a1e2d]{background:#fafafa;border:1px solid #E5E5EA;border-radius:12px;padding:16px;margin-top:8px}.form-row[data-v-274a1e2d]{display:flex;gap:12px;margin-bottom:12px}.form-col[data-v-274a1e2d]{flex:1}.form-col label[data-v-274a1e2d]{display:block;font-size:13px;font-weight:500;color:#3a3a3c;margin-bottom:6px}.checkbox-label[data-v-274a1e2d]{display:flex;align-items:center;gap:6px;font-size:14px;color:#3a3a3c;cursor:pointer}.checkbox-label input[data-v-274a1e2d]{width:16px;height:16px}.batch-msg[data-v-274a1e2d]{padding:10px 14px;border-radius:8px;margin-bottom:12px;background:#e8f9ee;color:#1b7f37;font-size:14px}.batch-msg.error[data-v-274a1e2d]{background:#ffeded;color:#ff3b30}.cell-search-input[data-v-274a1e2d]{width:100%;padding:4px 8px;border:1.5px solid #1A5C4B;border-radius:6px;font-size:13px;outline:none;box-sizing:border-box}.teacher-dropdown{position:fixed;z-index:500;background:#fff;border:1px solid #E5E5EA;border-radius:10px;box-shadow:0 8px 28px #00000024;max-height:340px;overflow-y:auto;padding:4px}.dd-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px;transition:background 80ms}.dd-item:hover,.dd-item.highlighted{background:#e8f3ef}.dd-clear{color:#ff3b30;font-weight:500;justify-content:center}.dd-name{font-weight:500;color:#1c1c1e}.dd-subject{font-size:11px;color:#8e8e93;background:#f2f2f7;padding:1px 6px;border-radius:4px}.dd-empty{text-align:center;color:#8e8e93;font-size:13px;padding:16px}.exam-page[data-v-b10608c1]{max-width:100%;height:100%}.toast[data-v-b10608c1]{padding:10px 18px;border-radius:8px;background:#e8f9ee;color:#1b7f37;font-size:14px;font-weight:500;margin-bottom:12px}.toast.error[data-v-b10608c1]{background:#ffeded;color:#ff3b30}.page-header[data-v-b10608c1]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h2[data-v-b10608c1]{font-size:22px;font-weight:700;color:#1c1c1e;margin:0}.dual-column[data-v-b10608c1]{display:flex;gap:16px;align-items:flex-start}.timeline-panel[data-v-b10608c1]{width:300px;flex-shrink:0;background:#fff;border:1px solid #E5E5EA;border-radius:12px;overflow:hidden}.timeline-filters[data-v-b10608c1]{display:flex;gap:6px;padding:10px;border-bottom:1px solid #F2F2F7;background:#fafafa}.timeline-scroll[data-v-b10608c1]{height:calc(100vh - 200px);overflow-y:auto;padding:12px 0 12px 10px}.timeline-empty[data-v-b10608c1]{text-align:center;color:#8e8e93;padding:40px 16px;font-size:14px;line-height:1.8}.timeline-list[data-v-b10608c1]{position:relative}.timeline-list[data-v-b10608c1]:before{content:"";position:absolute;left:40px;top:0;bottom:0;width:2px;background:#d0e8df;border-radius:1px;z-index:0}.tdg-card[data-v-b10608c1]{position:relative;border-color:#d0d0d0!important;cursor:pointer}.tdg-card[data-v-b10608c1]:hover{border-color:#1a5c4b!important}.tdg-card .tc-bar[data-v-b10608c1]{background:#1a5c4b!important}.tdg-card .tc-row1[data-v-b10608c1]{padding:0}.tdg-count-tag[data-v-b10608c1]{font-size:11px;color:#8e8e93;background:#f2f2f7;padding:1px 7px;border-radius:8px;font-weight:500}.tdg-arrow[data-v-b10608c1]{font-size:18px;color:#c7c7cc;transition:transform .2s ease;margin-left:auto;line-height:1;font-weight:300}.tdg-arrow.open[data-v-b10608c1]{transform:rotate(90deg);color:#1a5c4b}.timeline-dot.groupClosed[data-v-b10608c1]{background:#c7c7cc!important;box-shadow:0 0 0 1.5px #c7c7cc4d}.sub-item[data-v-b10608c1]{margin-bottom:0!important;padding:1px 10px 1px 80px!important}.sub-node[data-v-b10608c1]{top:3px!important}.sub-dot[data-v-b10608c1]{width:10px!important;height:10px!important}.sub-card[data-v-b10608c1]{border-color:#e5e5ea!important;box-shadow:none!important;margin-bottom:3px}.sub-card .tc-body[data-v-b10608c1]{padding:5px 10px!important}.sub-card .tc-row1[data-v-b10608c1]{display:flex;align-items:center;gap:6px;margin-bottom:1px}.sub-card .tc-row2[data-v-b10608c1]{display:flex;align-items:center;gap:4px;margin-bottom:0}.sub-card .tc-row3[data-v-b10608c1]{display:flex;align-items:center;gap:4px;margin-top:1px}.sub-item:hover .sub-card[data-v-b10608c1]{box-shadow:0 1px 4px #00000014!important}.sub-item.selected .sub-card[data-v-b10608c1]{border-color:var(--accent)!important;background:var(--accent-bg)!important}.tc-chip-sm[data-v-b10608c1]{font-size:10px;color:#6e6e73;background:#f2f2f7;padding:0 5px;border-radius:3px;font-weight:500;line-height:1.5}.grade-chip-sm[data-v-b10608c1]{font-size:9px;font-weight:600}.tc-count-sm[data-v-b10608c1]{font-size:10px;color:#8e8e93;line-height:1.5}.timeline-group-body[data-v-b10608c1]{overflow:hidden;transition:max-height .3s ease,opacity .25s ease;max-height:2000px;opacity:1}.timeline-group-body.collapsed[data-v-b10608c1]{max-height:0;opacity:0;margin:0;padding:0;pointer-events:none}.timeline-item[data-v-b10608c1]{position:relative;padding-left:80px;padding-right:10px;margin-bottom:10px;cursor:pointer}.timeline-item[data-v-b10608c1]:after{display:none}.timeline-node[data-v-b10608c1]{position:absolute;left:10px;top:8px;display:flex;flex-direction:column;align-items:center;gap:3px;width:60px;z-index:2}.tn-date[data-v-b10608c1]{font-size:11px;color:#6e6e73;font-weight:500;white-space:nowrap;text-align:center;line-height:1.2}.timeline-dot[data-v-b10608c1]{position:relative;width:18px;height:18px;border-radius:50%;border:2.5px solid #FFF;box-shadow:0 0 0 1.5px #00000014;z-index:1;flex-shrink:0}.timeline-card[data-v-b10608c1]{display:flex;background:#fff;border:1px solid #E5E5EA;border-radius:10px;box-shadow:0 1px 4px #0000000f;transition:all .15s ease;overflow:hidden}.timeline-item:hover .timeline-card[data-v-b10608c1]{box-shadow:0 2px 8px #0000001a}.timeline-item.selected .timeline-card[data-v-b10608c1]{border-color:var(--accent);background:var(--accent-bg)}.tc-bar[data-v-b10608c1]{width:3px;flex-shrink:0}.tc-body[data-v-b10608c1]{padding:12px 14px;flex:1;min-width:0}.tc-row1[data-v-b10608c1]{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px}.tc-title[data-v-b10608c1]{font-size:14px;font-weight:600;color:#1c1c1e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.tc-type-tag[data-v-b10608c1]{font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0}.tc-row2[data-v-b10608c1]{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}.tc-chip[data-v-b10608c1]{font-size:12px;padding:1px 6px;background:#f2f2f7;border-radius:4px;color:#48484a}.grade-chip[data-v-b10608c1]{font-weight:600;font-size:11px}.tc-row3[data-v-b10608c1]{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#8e8e93}.tc-actions[data-v-b10608c1]{display:flex;gap:2px;justify-content:flex-end;margin-top:4px;opacity:0;transition:opacity .2s}.timeline-item:hover .tc-actions[data-v-b10608c1]{opacity:1}.tc-action-btn[data-v-b10608c1]{background:none;border:none;cursor:pointer;font-size:13px;padding:1px 4px;border-radius:4px;line-height:1;opacity:.6;transition:opacity .15s}.tc-action-btn[data-v-b10608c1]:hover{opacity:1;background:#f0f0f0}.tc-action-del[data-v-b10608c1]:hover{background:#ffebee}.tc-action-sm[data-v-b10608c1]{font-size:11px;padding:0 3px}.tc-count[data-v-b10608c1]{color:#8e8e93}.tc-entry-status[data-v-b10608c1]{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px}.tc-entry-status.open[data-v-b10608c1]{background:#e8f9ee;color:#1b7f37}.tc-entry-status.closed[data-v-b10608c1]{background:#f2f2f7;color:#8e8e93}.score-panel[data-v-b10608c1]{flex:1;min-width:0;background:#fff;border:1px solid #E5E5EA;border-radius:12px;display:flex;flex-direction:column;height:calc(100vh - 140px);overflow:hidden}.score-placeholder[data-v-b10608c1]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8e8e93}.placeholder-icon[data-v-b10608c1]{font-size:48px;margin-bottom:12px;opacity:.4}.score-placeholder p[data-v-b10608c1]{font-size:15px;margin:0}.score-toolbar[data-v-b10608c1]{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid #F2F2F7;flex-wrap:wrap;gap:8px}.toolbar-left[data-v-b10608c1]{display:flex;align-items:center;gap:10px}.toolbar-title[data-v-b10608c1]{font-size:16px;font-weight:600;color:#1c1c1e}.toolbar-type[data-v-b10608c1]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px}.toolbar-hint[data-v-b10608c1]{font-size:13px;color:#8e8e93}.toolbar-right[data-v-b10608c1]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.subject-tabs[data-v-b10608c1]{display:inline-flex;gap:2px;background:#f2f2f7;border-radius:8px;padding:2px}.subj-tab-btn[data-v-b10608c1]{padding:5px 12px;font-size:13px;font-weight:500;border:none;border-radius:6px;background:transparent;color:#6e6e73;cursor:pointer;transition:all .15s ease}.subj-tab-btn.active[data-v-b10608c1]{background:#fff;color:#1a5c4b;font-weight:600;box-shadow:0 1px 3px #00000014}.jump-input[data-v-b10608c1]{width:130px}.entry-closed-hint[data-v-b10608c1]{font-size:13px;color:#ff9500;font-weight:500;padding:4px 10px;background:#fff6e0;border-radius:6px}.subj-teacher-bar[data-v-b10608c1]{display:flex;gap:8px;padding:8px 20px;border-bottom:1px solid #F2F2F7;flex-wrap:wrap}.badge-subject[data-v-b10608c1]{font-size:12px;padding:2px 8px;background:#e8f3ef;color:#1a5c4b;border-radius:6px;font-weight:500}.class-selector[data-v-b10608c1]{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid #F2F2F7}.class-selector label[data-v-b10608c1]{font-size:13px;font-weight:500;color:#3a3a3c}.score-table-container[data-v-b10608c1]{flex:1;overflow-y:auto;padding:0}.score-empty[data-v-b10608c1]{text-align:center;color:#8e8e93;padding:40px;font-size:14px}.score-table[data-v-b10608c1]{width:100%;border-collapse:collapse;font-size:14px}.score-table th[data-v-b10608c1]{text-align:left;padding:10px 14px;font-weight:600;color:#3a3a3c;background:#fafafa;border-bottom:1px solid #E5E5EA;font-size:13px;position:sticky;top:0;z-index:1}.score-table td[data-v-b10608c1]{padding:8px 14px;border-bottom:1px solid #F2F2F7}.score-table tr:hover td[data-v-b10608c1]{background:#fafafa}.score-input[data-v-b10608c1]{width:80px;padding:7px 10px;font-size:14px;border:1px solid #E5E5EA;border-radius:6px;text-align:center;font-family:inherit;transition:border-color .15s ease}.score-input[data-v-b10608c1]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.score-input[data-v-b10608c1]:disabled{background:#f2f2f7;color:#8e8e93;cursor:not-allowed}.score-input[data-v-b10608c1]::placeholder{color:#c7c7cc}tr.highlighted td[data-v-b10608c1]{background:#fff6e0!important;transition:background .3s}code[data-v-b10608c1]{font-family:JetBrains Mono,monospace;font-size:13px;color:#48484a}.score-footer[data-v-b10608c1]{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-top:1px solid #F2F2F7;min-height:44px}.jump-result[data-v-b10608c1]{font-size:13px;color:#1a5c4b;font-weight:500}.footer-actions[data-v-b10608c1]{display:flex;gap:8px}.btn[data-v-b10608c1]{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.btn-sm[data-v-b10608c1]{padding:7px 14px;font-size:13px;font-weight:500}.btn-primary[data-v-b10608c1]{color:#fff;background:#1a5c4b}.btn-primary[data-v-b10608c1]:hover{background:#0f3d32}.btn-outline[data-v-b10608c1]{color:#1a5c4b;background:transparent;border:1px solid #1A5C4B}.btn-outline[data-v-b10608c1]:hover{background:#e8f3ef}.btn-success[data-v-b10608c1]{color:#fff;background:#1b7f37;border:none}.btn-success[data-v-b10608c1]:hover{background:#156328}.btn-danger[data-v-b10608c1]{color:#fff;background:#ff3b30;border:none}.btn-danger[data-v-b10608c1]:hover{background:#d63026}@keyframes pulse-b10608c1{0%,to{opacity:1}50%{opacity:.5}}.mini-btn[data-v-b10608c1]{padding:4px 10px;font-size:12px;border:1px solid #E5E5EA;border-radius:6px;background:transparent;color:#1a5c4b;cursor:pointer;transition:all .15s ease}.mini-btn[data-v-b10608c1]:hover{background:#e8f3ef}.mini-btn-danger[data-v-b10608c1]{color:#ff3b30}.mini-btn-danger[data-v-b10608c1]:hover{background:#ffeded}.fi[data-v-b10608c1]{padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;background:#fff;font-family:inherit}.fi-sm[data-v-b10608c1]{padding:7px 10px;font-size:13px}.fi[data-v-b10608c1]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.modal-overlay[data-v-b10608c1]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-b10608c1]{background:#fff;border-radius:16px;padding:28px;width:90%;max-height:90vh;overflow-y:auto}.modal-content h3[data-v-b10608c1]{font-size:18px;font-weight:600;margin:0 0 20px}.fg[data-v-b10608c1]{margin-bottom:16px}.fg label[data-v-b10608c1]{display:block;font-size:13px;font-weight:500;color:#3a3a3c;margin-bottom:6px}.fg input[data-v-b10608c1],.fg select[data-v-b10608c1],.fg textarea[data-v-b10608c1]{width:100%;padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;box-sizing:border-box;font-family:inherit}.fg textarea[data-v-b10608c1]{resize:vertical}.fg input[data-v-b10608c1]:focus,.fg select[data-v-b10608c1]:focus,.fg textarea[data-v-b10608c1]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.form-row[data-v-b10608c1]{display:flex;gap:12px}.fg-half[data-v-b10608c1]{flex:1}.form-actions[data-v-b10608c1]{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.hint[data-v-b10608c1]{font-size:13px;color:#6e6e73;margin:-10px 0 16px}.exam-types[data-v-b10608c1]{display:flex;gap:10px}.et-option[data-v-b10608c1]{display:flex;align-items:center;gap:6px;padding:10px 16px;border:1px solid #E5E5EA;border-radius:10px;cursor:pointer;transition:all .15s ease;font-size:14px;flex:1;justify-content:center}.et-option[data-v-b10608c1]:hover{border-color:#1a5c4b}.et-option.active[data-v-b10608c1]{border-color:#1a5c4b;background:#e8f3ef;font-weight:600}.et-option input[data-v-b10608c1]{display:none}.subject-checkboxes[data-v-b10608c1]{display:flex;flex-wrap:wrap;gap:8px}.sc-item[data-v-b10608c1]{display:flex;align-items:center;gap:4px;font-size:14px;cursor:pointer;padding:6px 10px;border:1px solid #E5E5EA;border-radius:6px;transition:all .15s ease}.sc-item[data-v-b10608c1]:hover{border-color:#1a5c4b;background:#e8f3ef}.sc-item.checked[data-v-b10608c1]{border-color:#1a5c4b;background:#e8f3ef;font-weight:600}.sc-item input[data-v-b10608c1]{width:16px;height:16px;accent-color:#1A5C4B}.grade-checkboxes[data-v-b10608c1]{display:flex;flex-wrap:wrap;gap:6px}.gc-item[data-v-b10608c1]{display:flex;align-items:center;gap:4px;font-size:14px;cursor:pointer;padding:6px 12px;border:1px solid #E5E5EA;border-radius:6px;transition:all .15s ease}.gc-item[data-v-b10608c1]:hover{border-color:#1a5c4b}.gc-item.checked[data-v-b10608c1]{background:#e8f3ef;border-color:#1a5c4b;color:#1a5c4b;font-weight:600}.gc-item input[data-v-b10608c1]{display:none}.sub-hint[data-v-b10608c1]{font-size:11px;color:#8e8e93;margin-top:4px}.batch-msg[data-v-b10608c1]{padding:10px 14px;border-radius:8px;margin-bottom:12px;background:#e8f9ee;color:#1b7f37;font-size:14px}.batch-msg.error[data-v-b10608c1]{background:#ffeded;color:#ff3b30}.assign-groups[data-v-b10608c1]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.assign-group-label[data-v-b10608c1]{font-size:12px;color:#8e8e93;white-space:nowrap}.assign-group-chip[data-v-b10608c1]{padding:4px 12px;border-radius:14px;font-size:12px;cursor:pointer;background:#f2f2f7;color:#3a3a3c;border:1px solid #E5E5EA;user-select:none}.assign-group-chip[data-v-b10608c1]:hover{border-color:#1a5c4b}.assign-group-chip.all[data-v-b10608c1]{background:#1a5c4b;color:#fff;border-color:#1a5c4b}.assign-group-chip.some[data-v-b10608c1]{background:#e8f3ef;color:#1a5c4b;border-color:#1a5c4b}.assign-filters[data-v-b10608c1]{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.assign-list[data-v-b10608c1]{max-height:300px;overflow-y:auto;border:1px solid #E5E5EA;border-radius:8px;padding:4px}.assign-teacher-item[data-v-b10608c1]{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;border-radius:6px;transition:background .15s ease}.assign-teacher-item[data-v-b10608c1]:hover{background:#fafafa}.assign-teacher-item.selected[data-v-b10608c1]{background:#e8f3ef}.teacher-name[data-v-b10608c1]{font-weight:500;flex-shrink:0}.teacher-grades[data-v-b10608c1]{font-size:12px;color:#8e8e93;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assign-empty[data-v-b10608c1]{text-align:center;padding:20px;color:#8e8e93}.assign-footer[data-v-b10608c1]{margin-top:10px;font-size:14px;color:#6e6e73}.timeline-scroll[data-v-b10608c1]::-webkit-scrollbar,.score-table-container[data-v-b10608c1]::-webkit-scrollbar,.assign-list[data-v-b10608c1]::-webkit-scrollbar{width:6px}.timeline-scroll[data-v-b10608c1]::-webkit-scrollbar-thumb,.score-table-container[data-v-b10608c1]::-webkit-scrollbar-thumb,.assign-list[data-v-b10608c1]::-webkit-scrollbar-thumb{background:#d1d1d6;border-radius:3px}.timeline-scroll[data-v-b10608c1]::-webkit-scrollbar-thumb:hover,.score-table-container[data-v-b10608c1]::-webkit-scrollbar-thumb:hover,.assign-list[data-v-b10608c1]::-webkit-scrollbar-thumb:hover{background:#b0b0b5}.page[data-v-b258a7e2]{padding:0}.page-header[data-v-b258a7e2]{margin-bottom:20px}.page-header h1[data-v-b258a7e2]{font-size:20px;font-weight:600;color:#1c1c1e;margin:0 0 16px}.selector-bar[data-v-b258a7e2]{display:flex;gap:16px;align-items:flex-end}.selector-group[data-v-b258a7e2]{display:flex;flex-direction:column;gap:4px}.selector-group label[data-v-b258a7e2]{font-size:12px;font-weight:600;color:#6e6e73;text-transform:uppercase;letter-spacing:.05em}.fi[data-v-b258a7e2]{height:36px;padding:0 12px;border:1px solid #E5E5EA;border-radius:8px;font-size:14px;color:#1c1c1e;background:#fff;min-width:160px;outline:none;transition:border-color .15s ease}.fi[data-v-b258a7e2]:focus{border-color:#1a5c4b}.placeholder[data-v-b258a7e2]{display:flex;align-items:center;justify-content:center;padding:80px 20px;color:#8e8e93;font-size:15px}.tabs[data-v-b258a7e2]{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid #E5E5EA;padding-bottom:12px}.tab-btn[data-v-b258a7e2]{padding:8px 18px;border:none;border-radius:8px;font-size:14px;font-weight:500;color:#6e6e73;background:transparent;cursor:pointer;transition:all .15s ease}.tab-btn[data-v-b258a7e2]:hover{background:#f2f2f7;color:#1c1c1e}.tab-btn.active[data-v-b258a7e2]{background:#e8f3ef;color:#1a5c4b;font-weight:600}.section[data-v-b258a7e2]{margin-bottom:24px}.section-title[data-v-b258a7e2]{font-size:16px;font-weight:600;color:#1c1c1e;margin-bottom:12px;display:flex;align-items:center;gap:12px}.section-subtitle[data-v-b258a7e2]{font-size:13px;font-weight:400;color:#8e8e93}.empty-state[data-v-b258a7e2]{text-align:center;padding:60px 20px;color:#8e8e93;background:#fafafa;border-radius:10px;font-size:14px}.table-wrap[data-v-b258a7e2]{overflow-x:auto;border:1px solid #E5E5EA;border-radius:10px;background:#fff;max-height:520px;overflow-y:auto}.score-matrix[data-v-b258a7e2]{width:100%;border-collapse:collapse;font-size:13px;min-width:600px}.score-matrix th[data-v-b258a7e2]{background:#fafafa;padding:10px 8px;text-align:center;font-weight:600;color:#1c1c1e;border-bottom:1px solid #E5E5EA;white-space:nowrap;position:sticky;top:0;z-index:2;border-right:1px solid #E5E5EA}.score-matrix th[data-v-b258a7e2]:last-child{border-right:none}.score-matrix td[data-v-b258a7e2]{padding:8px;text-align:center;border-bottom:1px solid #F2F2F7;white-space:nowrap;border-right:1px solid #F2F2F7}.score-matrix td[data-v-b258a7e2]:last-child{border-right:none}.score-matrix tr:last-child td[data-v-b258a7e2]{border-bottom:none}.score-matrix tr:hover td[data-v-b258a7e2]{background:#fafafa}.sticky-th[data-v-b258a7e2],.sticky-td[data-v-b258a7e2]{position:sticky;z-index:3;background:#fff;left:0}.sticky-th[data-v-b258a7e2]{background:#fafafa;z-index:4}.sticky-th[data-v-b258a7e2]:first-child,.sticky-td[data-v-b258a7e2]:first-child{z-index:5}.sticky-td[data-v-b258a7e2]{text-align:left!important;padding-left:12px!important}.sticky-td code[data-v-b258a7e2]{font-size:12px;color:#6e6e73}.exam-col-title[data-v-b258a7e2]{font-size:12px;max-width:80px;overflow:hidden;text-overflow:ellipsis}.exam-col-sub[data-v-b258a7e2]{font-size:10px;color:#8e8e93;font-weight:400;margin-top:2px}.score-cell[data-v-b258a7e2]{min-width:50px}.score-val[data-v-b258a7e2]{font-weight:600;font-size:14px}.score-val.good[data-v-b258a7e2]{color:#1a5c4b}.score-val.warn[data-v-b258a7e2]{color:#d4920a}.score-val.bad[data-v-b258a7e2]{color:#ff3b30}.score-na[data-v-b258a7e2]{color:#d1d1d6}.export-btn[data-v-b258a7e2]{margin-left:auto;padding:6px 16px;font-size:13px;font-weight:500;color:#1a5c4b;background:#e8f3ef;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.export-btn[data-v-b258a7e2]:hover{background:#d0e8df}.chart-container[data-v-b258a7e2]{background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:20px;height:360px}.page[data-v-f0b762a5]{padding:0}.page-header[data-v-f0b762a5]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.page-header h1[data-v-f0b762a5]{font-size:20px;font-weight:600;color:#1c1c1e;margin:0}.filter-bar[data-v-f0b762a5]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.search-btn[data-v-f0b762a5]{padding:6px 12px;border:1px solid #E5E5EA;border-radius:8px;background:#f5f5f5;font-size:13px;cursor:pointer}.search-btn[data-v-f0b762a5]:hover{background:#e8e8ed}.placeholder[data-v-f0b762a5]{display:flex;align-items:center;justify-content:center;padding:80px 20px;color:#8e8e93;background:#fafafa;border-radius:12px}.overview-section[data-v-f0b762a5]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;padding:16px;margin-bottom:16px}.overview-cards[data-v-f0b762a5]{display:flex;gap:10px;margin-bottom:12px}.ov-card[data-v-f0b762a5]{flex:1;text-align:center;padding:10px;background:#fafafa;border-radius:8px}.ov-num[data-v-f0b762a5]{font-size:22px;font-weight:700;color:#1a5c4b}.ov-label[data-v-f0b762a5]{font-size:11px;color:#8e8e93;margin-top:2px}.grade-dist[data-v-f0b762a5]{display:flex;gap:4px;height:32px}.gd-item[data-v-f0b762a5]{display:flex;align-items:center;position:relative;min-width:40px;border-radius:4px;overflow:hidden}.gd-fill[data-v-f0b762a5]{position:absolute;inset:0;opacity:.15;border-radius:4px}.gd-label[data-v-f0b762a5]{position:relative;font-size:10px;color:#1c1c1e;font-weight:500;padding:0 4px;white-space:nowrap}.table-card[data-v-f0b762a5]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;overflow:hidden}.table-wrap[data-v-f0b762a5]{overflow-x:auto;max-height:600px;overflow-y:auto}table[data-v-f0b762a5]{width:100%;border-collapse:collapse;font-size:13px}thead[data-v-f0b762a5]{position:sticky;top:0;z-index:2}th[data-v-f0b762a5]{text-align:left;padding:10px 12px;font-weight:600;color:#3a3a3c;background:#fafafa;border-bottom:1px solid #E5E5EA;font-size:12px;white-space:nowrap}th.sortable[data-v-f0b762a5]{cursor:pointer;user-select:none}th.sortable[data-v-f0b762a5]:hover{background:#f0f0f5}td[data-v-f0b762a5]{padding:8px 12px;border-bottom:1px solid #F2F2F7;color:#1c1c1e}tr:last-child td[data-v-f0b762a5]{border-bottom:none}tr:hover td[data-v-f0b762a5]{background:#fafafa}.student-link[data-v-f0b762a5]{color:#2563eb;cursor:pointer;font-weight:600}.student-link[data-v-f0b762a5]:hover{text-decoration:underline}.sc-tag[data-v-f0b762a5]{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:2px;vertical-align:middle}.tag-gifted[data-v-f0b762a5]{background:#22c55e}.tag-talent[data-v-f0b762a5]{background:#f59e0b}.tag-special[data-v-f0b762a5]{background:#ef4444}.tag-btn[data-v-f0b762a5]{font-size:11px;padding:2px 8px;border-radius:6px;border:1px solid #E5E5EA;cursor:pointer;background:#f5f5f5;margin-right:4px}.tag-btn-gifted[data-v-f0b762a5]{color:#1a5c4b;border-color:#1a5c4b;background:#e8f3ef}.tag-btn-special[data-v-f0b762a5]{color:#ff3b30;border-color:#ff3b30;background:#ffeded}.tag-btn-remove[data-v-f0b762a5]{color:#8e8e93}.tag-btn[data-v-f0b762a5]:hover{opacity:.8}.tag-talent[data-v-f0b762a5]{background:#fff3e0;color:#e65100;border:1px solid #E65100}.form-row[data-v-f0b762a5]{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.form-row label[data-v-f0b762a5]{width:70px;font-size:12px;font-weight:600;color:#3a3a3c;padding-top:6px;flex-shrink:0}.tab-sm[data-v-f0b762a5]{padding:4px 12px;font-size:12px;border:1px solid #E5E5EA;border-radius:6px;background:#f5f5f5;cursor:pointer;color:#3a3a3c}.tab-sm.active[data-v-f0b762a5]{background:#1a5c4b;color:#fff;border-color:#1a5c4b}.dt-header[data-v-f0b762a5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #F2F2F7}.dt-name[data-v-f0b762a5]{font-size:20px;font-weight:700;color:#1c1c1e}.dt-meta[data-v-f0b762a5]{font-size:13px;color:#8e8e93;margin-top:2px}.dh-tag[data-v-f0b762a5]{font-size:12px;padding:4px 12px;border-radius:20px;font-weight:600}.dh-gifted[data-v-f0b762a5]{background:#e8f3ef;color:#1a5c4b}.dh-talent[data-v-f0b762a5]{background:#fffbeb;color:#d97706;border:1px solid #FDE68A}.dh-special[data-v-f0b762a5]{background:#fff0f0;color:#dc2626;border:1px solid #FFCDD2}.dh-none[data-v-f0b762a5]{background:#f5f5f5;color:#8e8e93}.dt-card[data-v-f0b762a5]{display:flex;gap:12px;background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:14px;margin-bottom:10px}.dt-card-icon[data-v-f0b762a5]{font-size:20px;width:28px;text-align:center;flex-shrink:0}.dt-card-body[data-v-f0b762a5]{flex:1}.dt-card-title[data-v-f0b762a5]{font-size:13px;font-weight:600;color:#1c1c1e;margin-bottom:4px}.dt-card-text[data-v-f0b762a5]{font-size:13px;color:#3a3a3c;line-height:1.6;white-space:pre-wrap}.advice-row[data-v-f0b762a5]{display:flex;gap:10px;padding:6px 0}.honor-list[data-v-f0b762a5]{display:flex;flex-direction:column;gap:6px}.honor-item[data-v-f0b762a5]{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#fafafa;border-radius:6px}.honor-year[data-v-f0b762a5]{font-size:11px;color:#8e8e93;width:80px;flex-shrink:0}.honor-title[data-v-f0b762a5]{font-size:13px;color:#1c1c1e;flex:1}.honor-level[data-v-f0b762a5]{font-size:10px;padding:1px 8px;border-radius:10px;font-weight:600}.hl-nat[data-v-f0b762a5]{background:#fef3c7;color:#d97706}.hl-prov[data-v-f0b762a5]{background:#e0e7ff;color:#4338ca}.hl-city[data-v-f0b762a5]{background:#e0f2fe;color:#0284c7}.hl-schl[data-v-f0b762a5]{background:#f3f4f6;color:#6b7280}.track-item[data-v-f0b762a5]{background:#fafafa;border:1px solid #E5E5EA;border-radius:8px;padding:10px;margin-bottom:6px}.track-term[data-v-f0b762a5]{font-size:12px;font-weight:600;color:#1a5c4b;margin-bottom:4px}.track-line[data-v-f0b762a5]{font-size:12px;color:#3a3a3c;margin-bottom:2px}.pagination[data-v-f0b762a5]{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;border-top:1px solid #F2F2F7}.pagination button[data-v-f0b762a5]{padding:6px 14px;border:1px solid #E5E5EA;border-radius:6px;background:#f5f5f5;font-size:12px;cursor:pointer}.pagination button[data-v-f0b762a5]:disabled{opacity:.4;cursor:default}.pagination button[data-v-f0b762a5]:hover:not(:disabled){background:#e8e8ed}.pagination span[data-v-f0b762a5]{font-size:12px;color:#8e8e93}.modal-overlay[data-v-f0b762a5]{position:fixed;inset:0;background:#0000004d;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-content[data-v-f0b762a5]{background:#fff;border-radius:12px;padding:24px;width:90%;max-width:500px}.form-actions[data-v-f0b762a5]{display:flex;gap:8px;justify-content:flex-end}.btn[data-v-f0b762a5]{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:none}.btn-primary[data-v-f0b762a5]{background:#1a5c4b;color:#fff}.btn-outline[data-v-f0b762a5]{background:#f5f5f5;border:1px solid #E5E5EA;color:#3a3a3c}.chart-box[data-v-f0b762a5]{background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:12px}.advice-row[data-v-f0b762a5]{display:flex;gap:10px;padding:6px 10px;background:#fafafa;border-radius:6px;margin-bottom:4px}.advice-subj[data-v-f0b762a5]{font-size:13px;font-weight:600;color:#1a5c4b;width:40px;flex-shrink:0}.advice-text[data-v-f0b762a5]{font-size:13px;color:#3a3a3c}.tag-archive[data-v-f0b762a5]{background:#f0f5ff;border:1px solid #D6E4FF;border-radius:8px;padding:12px;margin-bottom:8px}.tag-archive-title[data-v-f0b762a5]{font-size:13px;font-weight:600;color:#1c1c1e;margin-bottom:6px}.page[data-v-9255040d]{padding:0}.page-header[data-v-9255040d]{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.page-header h1[data-v-9255040d]{font-size:20px;font-weight:600;color:#1c1c1e;margin:0}.filter-bar[data-v-9255040d]{display:flex;gap:12px}.fg[data-v-9255040d]{display:flex;flex-direction:column;gap:4px}.fg label[data-v-9255040d]{font-size:12px;font-weight:600;color:#6e6e73}.analysis-tabs[data-v-9255040d]{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;border-bottom:1px solid #E5E5EA;padding-bottom:8px}.tab-btn[data-v-9255040d]{padding:8px 20px;font-size:14px;font-weight:600;border:1.5px solid #D1D5DB;border-radius:8px;background:#fff;color:#1c1c1e;cursor:pointer;transition:all .15s ease;letter-spacing:.3px}.tab-btn[data-v-9255040d]:hover{background:#e8f3ef;border-color:#1a5c4b;color:#1a5c4b}.tab-btn.active[data-v-9255040d]{background:#1a5c4b;color:#fff;border-color:#1a5c4b;box-shadow:0 2px 8px #1a5c4b40}.tab-content[data-v-9255040d]{min-height:200px}.unified-report-wrap[data-v-9255040d]{border:1px solid #E5E5EA;border-radius:10px;background:#fff;max-height:600px;overflow-y:auto}.unified-report-inner[data-v-9255040d]{padding:16px 20px}.unified-report-inner h2[data-v-9255040d]{font-size:15px;color:#1a5c4b;margin:16px 0 8px;border-left:3px solid #1A5C4B;padding-left:10px}.unified-report-inner h3[data-v-9255040d]{font-size:13px;color:#3a3a3c;margin:12px 0 6px}.unified-report-inner p[data-v-9255040d]{font-size:13px;color:#3a3a3c;line-height:1.7;margin:4px 0}.unified-report-inner ul[data-v-9255040d]{font-size:13px;color:#3a3a3c;padding-left:20px}.unified-report-inner li[data-v-9255040d]{margin:3px 0}.report-content[data-v-9255040d]{background:#fafafa;border-radius:10px;padding:16px 20px;line-height:1.8;font-size:14px;color:#1c1c1e;white-space:pre-wrap}.report-ai[data-v-9255040d]{background:#f0f5ff;border:1px solid #D6E4FF}.report-line[data-v-9255040d]{margin-bottom:4px}.report-header[data-v-9255040d]{font-weight:600;font-size:15px;margin-top:12px;margin-bottom:6px;color:#1a5c4b}.report-section-title[data-v-9255040d]{font-size:15px;font-weight:600;color:#1c1c1e;margin-bottom:8px}.refresh-btn[data-v-9255040d]{margin-left:auto;font-size:12px;padding:3px 10px;border:1px solid #E5E5EA;border-radius:6px;background:#f5f5f5;cursor:pointer;color:#3a3a3c}.refresh-btn[data-v-9255040d]:hover{background:#e8e8ed}.cs-analysis-box[data-v-9255040d]{background:#f0f5ff;border:1px solid #D6E4FF;border-radius:10px;padding:16px 18px;margin-bottom:16px}.cs-analysis-title[data-v-9255040d]{font-size:15px;font-weight:600;color:#1c1c1e;margin-bottom:10px}.cs-analysis-body p[data-v-9255040d]{font-size:13px;color:#3a3a3c;line-height:1.7;margin:0 0 6px}.comp-card[data-v-9255040d]{background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:16px;margin-bottom:16px}.comp-card-title[data-v-9255040d]{font-size:15px;font-weight:600;color:#1c1c1e;margin-bottom:4px}.comp-card-sub[data-v-9255040d]{font-size:12px;color:#8e8e93;margin-bottom:10px}.comp-sub-title[data-v-9255040d]{font-size:14px;font-weight:600;margin-bottom:8px}.comp-empty[data-v-9255040d]{font-size:13px;color:#8e8e93;padding:12px 0}.teacher-block[data-v-9255040d]{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:default}.top-block[data-v-9255040d]{background:#e8f3ef;color:#1a5c4b;border:1px solid #1A5C4B}.bottom-block[data-v-9255040d]{background:#ffeded;color:#ff3b30;border:1px solid #FF3B30}.teacher-block[data-v-9255040d]:hover{opacity:.85}.teacher-block[data-v-9255040d]{position:relative}.teacher-block[data-tip][data-v-9255040d]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);white-space:nowrap;background:#1c1c1e;color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:400;z-index:100;pointer-events:none;box-shadow:0 2px 8px #00000026}.rank-class-item[data-v-9255040d]{display:flex;flex-direction:column;align-items:center;padding:6px 4px;background:#f0f5ff;border:1px solid #D6E4FF;border-radius:8px;line-height:1.3}.rank-best[data-v-9255040d]{background:#e8f3ef;border-color:#1a5c4b}.rc-name[data-v-9255040d]{font-size:12px;font-weight:600;color:#1c1c1e}.rc-count[data-v-9255040d]{font-size:16px;font-weight:700;color:#1a5c4b}.rank-best .rc-count[data-v-9255040d]{color:#1a5c4b}.rc-pct[data-v-9255040d]{font-size:10px;color:#8e8e93}.grade-buttons[data-v-9255040d]{display:flex;gap:6px;flex-wrap:wrap}.grade-btn[data-v-9255040d]{padding:8px 16px;font-size:14px;font-weight:500;border:1px solid #E5E5EA;border-radius:8px;background:#f5f5f5;color:#3a3a3c;cursor:pointer;transition:all .15s ease}.grade-btn[data-v-9255040d]:hover{background:#e8e8ed}.grade-btn.active[data-v-9255040d]{background:#1a5c4b;color:#fff;border-color:#1a5c4b}.subject-tabs[data-v-9255040d]{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.subject-tab[data-v-9255040d]{padding:6px 16px;font-size:14px;font-weight:500;border:1px solid #E5E5EA;border-radius:20px;background:#fff;color:#3a3a3c;cursor:pointer;transition:all .15s ease}.subject-tab[data-v-9255040d]:hover{border-color:#1a5c4b;color:#1a5c4b}.subject-tab.active[data-v-9255040d]{background:#1a5c4b;color:#fff;border-color:#1a5c4b}.exam-analysis-layout[data-v-9255040d]{display:flex;flex-direction:column;gap:20px}.timeline-bar[data-v-9255040d]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;overflow:hidden}.timeline-bar-header[data-v-9255040d]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid #F2F2F7;background:#fafafa}.bar-label[data-v-9255040d]{font-size:14px;font-weight:600;color:#1c1c1e}.bar-count[data-v-9255040d]{font-size:12px;color:#8e8e93}.timeline-scroll-x[data-v-9255040d]{display:flex;gap:0;padding:16px 16px 12px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth}.tlx-placeholder[data-v-9255040d]{text-align:center;padding:30px 16px;color:#8e8e93;font-size:14px;width:100%}.tlx-item[data-v-9255040d]{display:flex;flex-direction:column;align-items:center;min-width:100px;max-width:120px;cursor:pointer;transition:all .15s ease;padding:0 4px;flex-shrink:0}.tlx-item:hover .tlx-card[data-v-9255040d]{background:#f2f2f7}.tlx-item.active .tlx-card[data-v-9255040d]{background:#e8f3ef;border-color:#1a5c4b}.tlx-dot-line[data-v-9255040d]{display:flex;align-items:center;width:100%;margin-bottom:8px}.tlx-dot[data-v-9255040d]{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:2px solid #FFF;box-shadow:0 0 0 1px #00000014;z-index:1;margin:0 auto}.tlx-line[data-v-9255040d]{flex:1;height:2px;background:#e5e5ea;margin-left:-7px}.tlx-item:last-child .tlx-line[data-v-9255040d]{display:none}.tlx-card[data-v-9255040d]{text-align:center;padding:8px 10px;border-radius:8px;border:1px solid transparent;transition:all .15s ease;width:100%}.tlx-title[data-v-9255040d]{font-size:12px;font-weight:600;color:#1c1c1e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tlx-meta[data-v-9255040d]{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:4px}.tlx-badge[data-v-9255040d]{font-size:10px;padding:1px 6px;border-radius:4px;font-weight:500}.tlx-date[data-v-9255040d]{font-size:10px;color:#8e8e93}.tlx-expand[data-v-9255040d]{font-size:10px;color:#1a5c4b;cursor:pointer;font-weight:500}.tlx-group-header[data-v-9255040d]{cursor:pointer}.tlx-group-header:hover .tlx-card[data-v-9255040d]{background:#f5f5f7}.tlx-card-group[data-v-9255040d]{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:70px}.tlx-group-label[data-v-9255040d]{font-size:12px;font-weight:600;color:#1a5c4b;white-space:nowrap}.tlx-dot-sm[data-v-9255040d]{width:8px;height:8px}.tlx-dot.collapsed[data-v-9255040d]{opacity:.5}.tlx-sub .tlx-card[data-v-9255040d]{min-width:90px}.tlx-grade-tag[data-v-9255040d]{font-size:10px;color:#6e6e73}.analysis-content[data-v-9255040d]{flex:1;min-width:0}.placeholder[data-v-9255040d]{display:flex;align-items:center;justify-content:center;padding:80px 20px;color:#8e8e93;font-size:15px;background:#fafafa;border-radius:12px}.section[data-v-9255040d]{margin-bottom:24px}.section-title[data-v-9255040d]{font-size:16px;font-weight:600;color:#1c1c1e;margin-bottom:12px;display:flex;align-items:center;gap:10px}.badge[data-v-9255040d]{font-size:11px;padding:2px 8px;border-radius:6px;font-weight:500}.section-subtitle[data-v-9255040d]{font-size:12px;color:#8e8e93;margin:-8px 0 12px}.info-row[data-v-9255040d]{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:#6e6e73;padding:10px 14px;background:#fafafa;border-radius:8px}.stat-cards[data-v-9255040d]{display:flex;flex-wrap:wrap;gap:10px}.stat-card[data-v-9255040d]{flex:1;min-width:100px;background:#fafafa;border-radius:10px;padding:16px;text-align:center;border:1px solid #F2F2F7}.stat-num[data-v-9255040d]{font-size:24px;font-weight:700;color:#1c1c1e}.stat-label[data-v-9255040d]{font-size:12px;color:#8e8e93;margin-top:4px}.stat-card.accent .stat-num[data-v-9255040d]{color:#2563eb}.stat-card.good .stat-num[data-v-9255040d]{color:#1a5c4b}.stat-card.bad .stat-num[data-v-9255040d]{color:#ff3b30}.stat-hint[data-v-9255040d]{font-size:12px;color:#8e8e93;margin-top:6px;padding:6px 12px;background:#fafafa;border-radius:6px}.chart-box[data-v-9255040d]{background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:16px;height:260px;margin-bottom:12px}.data-table-wrap[data-v-9255040d]{border:1px solid #E5E5EA;border-radius:10px;overflow:visible}.data-table[data-v-9255040d]{width:100%;border-collapse:collapse;font-size:13px}.data-table thead[data-v-9255040d]{position:sticky;top:0;z-index:2}.data-table th[data-v-9255040d]{background:#fafafa;padding:10px 12px;text-align:left;font-weight:600;color:#1c1c1e;border-bottom:1px solid #E5E5EA;font-size:12px}.data-table td[data-v-9255040d]{padding:8px 12px;border-bottom:1px solid #F2F2F7}.data-table tr:last-child td[data-v-9255040d]{border-bottom:none}.data-table tbody tr[data-v-9255040d]:hover{background:#fafafa}.total-row[data-v-9255040d]{background:#f9fafb;font-weight:600}.num-accent[data-v-9255040d]{font-weight:600;color:#2563eb;font-size:15px}.best td[data-v-9255040d],.above td[data-v-9255040d]{background:#f0fdf4}.tag-up[data-v-9255040d]{font-size:11px;color:#1a5c4b;background:#e8f3ef;padding:2px 8px;border-radius:4px}.tag-down[data-v-9255040d]{font-size:11px;color:#ff3b30;background:#ffeded;padding:2px 8px;border-radius:4px}.rank-num[data-v-9255040d]{font-size:14px;font-weight:700;color:#1a5c4b;text-align:center}.foldable[data-v-9255040d]{cursor:pointer;user-select:none}.foldable[data-v-9255040d]:hover{opacity:.7}.fold-icon[data-v-9255040d]{font-size:20px;color:#c7c7cc;transition:transform .2s ease;margin-left:auto;font-weight:300}.fold-icon.open[data-v-9255040d]{transform:rotate(90deg);color:#1a5c4b}.fold-body[data-v-9255040d]{overflow:hidden;transition:max-height .4s ease,opacity .3s ease;max-height:5000px;opacity:1}.fold-body.collapsed[data-v-9255040d]{max-height:0;opacity:0;margin:0;padding:0;pointer-events:none}.fold-item[data-v-9255040d]{margin-bottom:16px}.fold-item-title[data-v-9255040d]{font-size:14px;font-weight:600;color:#1c1c1e;margin-bottom:8px}.section-row[data-v-9255040d]{display:flex;gap:16px;margin-bottom:24px;align-items:stretch}.section-col[data-v-9255040d]{flex:1;min-width:0;display:flex;flex-direction:column}.section-col[data-v-9255040d]:first-child{flex:0 0 280px}.section-col[data-v-9255040d]:last-child{flex:1;min-width:0}.section-col .chart-box[data-v-9255040d]{flex:1}.class-dist-grid[data-v-9255040d]{display:flex;flex-direction:column;gap:6px}.cd-range-view[data-v-9255040d]{display:flex;flex-direction:column;gap:3px;flex:1}.cd-range-row[data-v-9255040d]{display:flex;align-items:center;gap:6px;padding:2px 6px;background:#fafafa;border-radius:6px}.cd-range-header[data-v-9255040d]{background:#f0f5f3;position:sticky;top:0;z-index:1}.cd-range-label[data-v-9255040d]{font-size:10px;font-weight:600;color:#6e6e73;width:42px;flex-shrink:0;text-align:right}.cd-range-bars[data-v-9255040d]{display:flex;align-items:flex-end;gap:2px;flex:1;height:44px}.cd-range-bar-wrap[data-v-9255040d]{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0;height:100%;justify-content:flex-end}.cd-range-bar[data-v-9255040d]{width:70%;border-radius:3px 3px 0 0;min-height:2px;margin:0 auto;transition:height .5s ease}.cd-range-count[data-v-9255040d]{font-size:8px;color:#6e6e73;font-weight:500;line-height:1;margin-bottom:1px}.cd-range-header-name[data-v-9255040d]{font-size:9px;color:#1a5c4b;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;margin-top:2px}.diff-up[data-v-9255040d]{color:#1a5c4b;font-weight:600;font-size:13px}.diff-down[data-v-9255040d]{color:#ff3b30;font-weight:600;font-size:13px}.diff-zero[data-v-9255040d]{color:#8e8e93;font-size:13px}.ranking-table th[data-v-9255040d],.ranking-table td[data-v-9255040d]{text-align:center}.ranking-table td[data-v-9255040d]:first-child{font-weight:600;color:#6e6e73}.num-subj[data-v-9255040d]{text-align:center;font-size:12px;color:#6e6e73}.export-link[data-v-9255040d]{cursor:pointer;font-size:13px;margin-left:4px;text-decoration:none;opacity:.6}.export-link[data-v-9255040d]:hover{opacity:1;text-decoration:none}.page[data-v-0bd88aaf]{max-width:720px}.page-header[data-v-0bd88aaf]{margin-bottom:20px}.page-header h2[data-v-0bd88aaf]{font-size:20px;font-weight:600;color:#1c1c1e;margin:0}.logo-upload-row[data-v-0bd88aaf]{display:flex;align-items:center;gap:12px}.logo-preview[data-v-0bd88aaf]{position:relative;width:96px;height:96px;border:1px solid #E5E5EA;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.logo-preview img[data-v-0bd88aaf]{max-width:100%;max-height:100%;object-fit:contain;display:block}.logo-preview .btn-icon[data-v-0bd88aaf]{position:absolute;top:4px;right:4px}.toast[data-v-0bd88aaf]{padding:10px 16px;border-radius:8px;background:#e8f3ef;color:#1a5c4b;font-size:14px;margin-bottom:16px;animation:fadeIn-0bd88aaf .2s ease}.toast.error[data-v-0bd88aaf]{background:#ffeded;color:#ff3b30}@keyframes fadeIn-0bd88aaf{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tabs[data-v-0bd88aaf]{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid #E5E5EA;padding-bottom:12px}.tab-btn[data-v-0bd88aaf]{padding:8px 18px;border:none;border-radius:8px;font-size:14px;font-weight:500;color:#6e6e73;background:transparent;cursor:pointer;transition:all .15s ease}.tab-btn[data-v-0bd88aaf]:hover{background:#f2f2f7;color:#1c1c1e}.tab-btn.active[data-v-0bd88aaf]{background:#e8f3ef;color:#1a5c4b;font-weight:600}.settings-card[data-v-0bd88aaf]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;padding:20px}.card-title[data-v-0bd88aaf]{font-size:16px;font-weight:600;color:#1c1c1e;margin-bottom:4px;display:flex;align-items:center;gap:12px}.card-desc[data-v-0bd88aaf]{font-size:13px;color:#6e6e73;margin:0 0 16px}.form-row[data-v-0bd88aaf]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.form-row label[data-v-0bd88aaf]{font-size:13px;font-weight:600;color:#3a3a3c;width:100px;flex-shrink:0}.form-row select[data-v-0bd88aaf],.form-row input[data-v-0bd88aaf]{padding:8px 12px;border:1px solid #E5E5EA;border-radius:8px;font-size:14px;outline:none;transition:border-color .15s ease;flex:1}.form-row select[data-v-0bd88aaf]:focus,.form-row input[data-v-0bd88aaf]:focus{border-color:#1a5c4b}.form-row select[data-v-0bd88aaf]{min-width:160px}.input-wrap[data-v-0bd88aaf]{flex:1;display:flex;align-items:center;gap:8px}.input-wrap input[data-v-0bd88aaf]{flex:1}.hint[data-v-0bd88aaf]{font-size:11px;color:#8e8e93;white-space:nowrap}.form-actions[data-v-0bd88aaf]{margin-top:16px}.inline-form[data-v-0bd88aaf]{background:#fafafa;border:1px solid #E5E5EA;border-radius:10px;padding:16px;margin-bottom:16px}.semester-list[data-v-0bd88aaf]{display:flex;flex-direction:column;gap:4px}.semester-item[data-v-0bd88aaf]{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:8px;transition:background .15s ease}.semester-item[data-v-0bd88aaf]:hover{background:#f2f2f7}.semester-item.current[data-v-0bd88aaf]{background:#e8f3ef;border:1px solid #D0E8DF}.semester-left[data-v-0bd88aaf]{display:flex;flex-direction:column;gap:2px}.semester-name[data-v-0bd88aaf]{font-size:14px;font-weight:600;color:#1c1c1e;display:flex;align-items:center;gap:8px}.current-badge[data-v-0bd88aaf]{font-size:11px;font-weight:600;padding:1px 8px;border-radius:4px;background:#1a5c4b;color:#fff}.semester-meta[data-v-0bd88aaf]{display:flex;align-items:center;gap:8px;font-size:12px;color:#8e8e93}.semester-code[data-v-0bd88aaf]{background:#f2f2f7;padding:0 6px;border-radius:3px}.semester-actions[data-v-0bd88aaf]{display:flex;gap:6px;flex-shrink:0}.loading-placeholder[data-v-0bd88aaf],.empty-state[data-v-0bd88aaf]{text-align:center;padding:40px 20px;color:#8e8e93;font-size:14px}.btn[data-v-0bd88aaf]{padding:8px 18px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn-primary[data-v-0bd88aaf]{background:#1a5c4b;color:#fff}.btn-primary[data-v-0bd88aaf]:hover{background:#0f3d32}.btn-primary[data-v-0bd88aaf]:disabled{background:#a3c5b8;cursor:not-allowed}.btn-sm[data-v-0bd88aaf]{padding:6px 12px;font-size:12px}.btn-ghost[data-v-0bd88aaf]{background:#f2f2f7;color:#3a3a3c}.btn-ghost[data-v-0bd88aaf]:hover{background:#e5e5ea}.btn-danger[data-v-0bd88aaf]{background:#ffeded;color:#ff3b30}.btn-danger[data-v-0bd88aaf]:hover{background:#ffdbdb}.info-grid[data-v-0bd88aaf]{display:grid;grid-template-columns:1fr 1fr;gap:4px}.info-grid.half[data-v-0bd88aaf]{grid-template-columns:repeat(4,1fr)}@media(max-width:640px){.info-grid.half[data-v-0bd88aaf]{grid-template-columns:repeat(2,1fr)}}.info-item[data-v-0bd88aaf]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #F2F2F7}.info-item[data-v-0bd88aaf]:last-child{border-bottom:none}.info-label[data-v-0bd88aaf]{font-size:13px;color:#6e6e73}.info-value[data-v-0bd88aaf]{font-size:13px;font-weight:600;color:#1c1c1e}.info-value code[data-v-0bd88aaf]{font-size:12px;background:#f2f2f7;padding:2px 6px;border-radius:4px}.section-divider[data-v-0bd88aaf]{height:1px;background:#e5e5ea;margin:16px 0}.page[data-v-e24e1a31]{max-width:1200px}.page-header[data-v-e24e1a31]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h2[data-v-e24e1a31]{font-size:22px;font-weight:600;color:#1c1c1e;margin:0}.class-selector[data-v-e24e1a31]{display:flex;align-items:center;gap:8px;font-size:14px;color:#3a3a3c}.class-select[data-v-e24e1a31]{padding:8px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;background:#fff;min-width:200px;color:#1c1c1e}.class-select[data-v-e24e1a31]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.sub-tabs[data-v-e24e1a31]{display:flex;gap:2px;margin-bottom:16px;background:#f2f2f7;border-radius:8px;padding:3px;max-width:300px}.sub-tab-btn[data-v-e24e1a31]{flex:1;padding:8px 16px;font-size:13px;font-weight:500;border:none;border-radius:6px;background:transparent;color:#6e6e73;cursor:pointer}.sub-tab-btn[data-v-e24e1a31]:hover{color:#1c1c1e}.sub-tab-btn.active[data-v-e24e1a31]{background:#fff;color:#1a5c4b;font-weight:600;box-shadow:0 1px 2px #0000000f}.filter-bar[data-v-e24e1a31]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px}.filter-group[data-v-e24e1a31]{display:flex;gap:8px;flex-wrap:wrap}.filter-input[data-v-e24e1a31]{padding:8px 12px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;color:#1c1c1e;background:#fff}.filter-input[data-v-e24e1a31]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.filter-actions[data-v-e24e1a31]{display:flex;align-items:center;gap:8px}.sel-count[data-v-e24e1a31]{font-size:13px;color:#1a5c4b;font-weight:500}.duty-table-wrap[data-v-e24e1a31]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;overflow:hidden}.duty-table[data-v-e24e1a31]{width:100%;border-collapse:collapse;font-size:14px}.duty-table th[data-v-e24e1a31]{text-align:left;padding:12px 14px;font-size:12px;font-weight:600;color:#6e6e73;background:#f9f9fb;border-bottom:1px solid #E5E5EA;text-transform:uppercase;letter-spacing:.5px}.duty-table td[data-v-e24e1a31]{padding:12px 14px;border-bottom:1px solid #F2F2F7;color:#1c1c1e}.duty-table tbody tr[data-v-e24e1a31]:hover{background:#f9f9fb}.duty-table tbody tr.selected[data-v-e24e1a31]{background:#e8f3ef}.duty-table tbody tr:last-child td[data-v-e24e1a31]{border-bottom:none}.chk-col[data-v-e24e1a31]{width:40px}.action-col[data-v-e24e1a31]{width:120px}.cell-name[data-v-e24e1a31]{font-weight:600}.cell-no[data-v-e24e1a31]{font-family:monospace;color:#6e6e73}.text-muted[data-v-e24e1a31]{color:#8e8e93;font-size:13px}.tag-days[data-v-e24e1a31]{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;background:#e8e3d0;color:#8b6914;font-weight:500}.tag-cat[data-v-e24e1a31]{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;background:#e8f3ef;color:#1a5c4b;margin-right:4px}.btn[data-v-e24e1a31]{padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.btn-primary[data-v-e24e1a31]{color:#fff;background:#1a5c4b}.btn-primary[data-v-e24e1a31]:hover{background:#0f3d32}.btn-danger[data-v-e24e1a31]{color:#fff;background:#c0392b}.btn-danger[data-v-e24e1a31]:hover{background:#a93226}.btn-outline[data-v-e24e1a31]{color:#1a5c4b;background:transparent;border:1px solid #1A5C4B}.btn-outline[data-v-e24e1a31]:hover{background:#e8f3ef}.btn-sm[data-v-e24e1a31]{padding:8px 16px;font-size:13px}.btn-xs[data-v-e24e1a31]{padding:5px 12px;font-size:12px}.mini-btn[data-v-e24e1a31]{padding:4px 10px;font-size:12px;font-weight:500;border:1px solid #E5E5EA;border-radius:6px;background:transparent;color:#1a5c4b;cursor:pointer}.mini-btn.danger[data-v-e24e1a31]{color:#ff3b30;border-color:#ffeded}.mini-btn[data-v-e24e1a31]:hover{background:#f2f2f7}.loading-hint[data-v-e24e1a31]{text-align:center;color:#8e8e93;padding:40px;font-size:14px}.empty-hint[data-v-e24e1a31]{text-align:center;color:#8e8e93;padding:60px 20px;font-size:14px;background:#fafafa;border:1px dashed #E5E5EA;border-radius:12px}.chk-group[data-v-e24e1a31]{display:flex;flex-wrap:wrap;gap:8px}.chk-label[data-v-e24e1a31],.chk-label-sm[data-v-e24e1a31]{display:flex;align-items:center;gap:4px;padding:6px 14px;border-radius:8px;border:1px solid #E5E5EA;font-size:14px;cursor:pointer;user-select:none;transition:all .12s;background:#fff;color:#3a3a3c}.chk-label-sm[data-v-e24e1a31]{font-size:12px;padding:4px 10px}.chk-label[data-v-e24e1a31]:hover,.chk-label-sm[data-v-e24e1a31]:hover{border-color:#c8c8cc}.chk-label.active[data-v-e24e1a31],.chk-label-sm.active[data-v-e24e1a31]{background:#e8f3ef;border-color:#1a5c4b;color:#1a5c4b;font-weight:500}.chk-label input[data-v-e24e1a31],.chk-label-sm input[data-v-e24e1a31]{display:none}.modal-overlay[data-v-e24e1a31]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:60px;z-index:400}.modal-content[data-v-e24e1a31]{background:#fff;border-radius:16px;padding:28px;max-width:460px;width:90%}.modal-content.modal-lg[data-v-e24e1a31]{max-width:600px}.modal-content h3[data-v-e24e1a31]{font-size:18px;font-weight:600;margin:0 0 18px}.form-group[data-v-e24e1a31]{margin-bottom:14px}.form-group label[data-v-e24e1a31]{display:block;font-size:13px;font-weight:500;color:#3a3a3c;margin-bottom:5px}.form-input[data-v-e24e1a31],.form-select[data-v-e24e1a31]{width:100%;padding:9px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;box-sizing:border-box;color:#1c1c1e;background:#fff}.form-input[data-v-e24e1a31]:focus,.form-select[data-v-e24e1a31]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.date-display[data-v-e24e1a31]{padding:9px 14px;font-size:14px;background:#f2f2f7;border-radius:8px;color:#3a3a3c}.form-actions[data-v-e24e1a31]{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.batch-list-header[data-v-e24e1a31]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.chk-all[data-v-e24e1a31]{font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px}.batch-count[data-v-e24e1a31]{font-size:12px;color:#8e8e93}.batch-list[data-v-e24e1a31]{max-height:300px;overflow-y:auto;border:1px solid #E5E5EA;border-radius:10px}.batch-item[data-v-e24e1a31]{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #F2F2F7}.batch-item[data-v-e24e1a31]:last-child{border-bottom:none}.batch-item[data-v-e24e1a31]:hover{background:#f9f9fb}.batch-item.selected[data-v-e24e1a31]{background:#e8f3ef}.batch-name[data-v-e24e1a31]{font-size:14px;font-weight:500;color:#1c1c1e}.batch-tag[data-v-e24e1a31]{font-size:12px;color:#6e6e73;background:#f2f2f7;padding:1px 8px;border-radius:4px}.batch-empty[data-v-e24e1a31]{padding:30px;text-align:center;color:#8e8e93;font-size:14px}.rules-page[data-v-7d093ea6]{display:flex;flex-direction:column;height:calc(100vh - 104px);gap:0}.topbar[data-v-7d093ea6]{display:flex;align-items:center;gap:8px;padding:0;margin:0;flex-shrink:0;flex-wrap:wrap}.topbar h2[data-v-7d093ea6]{font-size:18px;font-weight:600;color:#1c1c1e;margin:0;padding:0;line-height:1.2;white-space:nowrap}.topbar-actions[data-v-7d093ea6]{margin-left:auto;display:flex;gap:8px}.toast[data-v-7d093ea6]{padding:6px 14px;border-radius:6px;font-size:13px;font-weight:500;animation:fadeIn-7d093ea6 .2s ease;white-space:nowrap}.toast.success[data-v-7d093ea6]{background:#e8f9ee;color:#1b7f37}.toast.error[data-v-7d093ea6]{background:#ffeded;color:#ff3b30}@keyframes fadeIn-7d093ea6{0%{opacity:0}to{opacity:1}}.three-panel[data-v-7d093ea6]{display:grid;grid-template-columns:200px 1fr 1fr;gap:12px;flex:1;min-height:0}.panel[data-v-7d093ea6]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel-header[data-v-7d093ea6]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #F2F2F7;flex-shrink:0}.panel-title[data-v-7d093ea6]{font-size:13px;font-weight:600;color:#6e6e73;text-transform:uppercase;letter-spacing:.5px}.panel-header-right[data-v-7d093ea6]{display:flex;align-items:center;gap:4px}.search-input[data-v-7d093ea6]{border:1px solid #E5E5EA;border-radius:6px;padding:5px 10px;font-size:12px;width:120px;outline:none;background:#f2f2f7;transition:all .15s ease}.search-input[data-v-7d093ea6]:focus{border-color:#1a5c4b;background:#fff;width:160px}.panel-loading[data-v-7d093ea6],.panel-hint[data-v-7d093ea6]{display:flex;align-items:center;justify-content:center;flex:1;color:#c7c7cc;font-size:13px}.spinner[data-v-7d093ea6]{width:20px;height:20px;border:2px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-7d093ea6 .8s linear infinite}@keyframes spin-7d093ea6{to{transform:rotate(360deg)}}.panel-list[data-v-7d093ea6]{flex:1;overflow-y:auto;padding:6px}.panel-item[data-v-7d093ea6]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:all .12s ease;margin-bottom:2px}.panel-item[data-v-7d093ea6]:hover{background:#f2f2f7}.panel-item.active[data-v-7d093ea6]{background:#e8f3ef}.cat-circle[data-v-7d093ea6]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#1a5c4b;box-shadow:0 2px 6px #0000001f}.cat-icon-text[data-v-7d093ea6]{font-size:18px;line-height:1}.cat-body[data-v-7d093ea6]{flex:1;min-width:0}.cat-name[data-v-7d093ea6]{font-size:14px;font-weight:600;color:#1c1c1e}.cat-meta[data-v-7d093ea6]{font-size:11px;color:#8e8e93;display:block;margin-top:1px}.item-count[data-v-7d093ea6]{font-size:11px;color:#8e8e93;background:#f2f2f7;padding:0 6px;border-radius:4px;font-weight:600;min-width:20px;text-align:center}.item-actions[data-v-7d093ea6]{display:flex;gap:2px;opacity:0;transition:opacity .12s ease}.panel-item:hover .item-actions[data-v-7d093ea6],.item-row:hover .item-actions[data-v-7d093ea6]{opacity:1}.dim-item[data-v-7d093ea6]{padding-left:12px}.dim-circle[data-v-7d093ea6]{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#2d7d9a}.dim-icon-text[data-v-7d093ea6]{font-size:15px;line-height:1}.dim-body[data-v-7d093ea6]{flex:1;min-width:0}.dim-name[data-v-7d093ea6]{font-size:13px;font-weight:500;color:#3a3a3c}.item-row[data-v-7d093ea6]{display:flex;align-items:center;gap:8px;padding:10px;border-radius:8px;cursor:default;transition:background .12s ease;margin-bottom:2px}.item-row[data-v-7d093ea6]:hover{background:#fafafa}.item-circle[data-v-7d093ea6]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #0000001a}.item-icon-text[data-v-7d093ea6]{font-size:15px;line-height:1}.item-body[data-v-7d093ea6]{flex:1;min-width:0}.item-name-row[data-v-7d093ea6]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.item-name[data-v-7d093ea6]{font-size:14px;font-weight:600;color:#1c1c1e}.item-badge[data-v-7d093ea6]{font-size:10px;padding:1px 6px;border-radius:4px;font-weight:600}.item-badge.pos[data-v-7d093ea6]{background:#e8f3ef;color:#1a5c4b}.item-badge.neg[data-v-7d093ea6]{background:#fdecea;color:#c0392b}.item-detail[data-v-7d093ea6]{font-size:12px;padding:2px 0;line-height:1.5}.item-detail.deduction[data-v-7d093ea6]{color:#c0392b}.item-detail.bonus[data-v-7d093ea6]{color:#1b7f37}.item-desc[data-v-7d093ea6]{font-size:12px;color:#8e8e93;display:block;margin-top:2px}.type-toggle[data-v-7d093ea6]{display:flex;gap:8px}.toggle-btn[data-v-7d093ea6]{flex:1;padding:7px 12px;border:1.5px solid #E0E0E0;border-radius:8px;background:#fff;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease;font-family:inherit;font-weight:500;color:#666}.toggle-btn[data-v-7d093ea6]:hover{border-color:#1a5c4b;color:#1a5c4b}.toggle-btn.active[data-v-7d093ea6]{border-color:#1a5c4b;background:#1a5c4b;color:#fff}.type-dot[data-v-7d093ea6]{width:8px;height:8px;border-radius:50%;display:inline-block}.type-dot.pos[data-v-7d093ea6]{background:#1b7f37}.type-dot.neg[data-v-7d093ea6]{background:#c0392b}.toggle-btn.active .type-dot.pos[data-v-7d093ea6],.toggle-btn.active .type-dot.neg[data-v-7d093ea6]{background:#fff}.toggle-btn:has(.type-dot.neg).active[data-v-7d093ea6]{border-color:#c0392b;background:#c0392b}.score-preview[data-v-7d093ea6]{font-size:13px;color:#8e8e93;display:flex;align-items:center}.btn-icon[data-v-7d093ea6]{width:26px;height:26px;border:none;background:transparent;border-radius:6px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#8e8e93;transition:all .12s ease}.btn-icon[data-v-7d093ea6]:hover{background:#f2f2f7;color:#1c1c1e}.btn-icon.danger[data-v-7d093ea6]:hover{background:#ffeded;color:#ff3b30}.btn-icon.sm[data-v-7d093ea6]{width:28px;height:28px;font-size:15px}.btn-icon.xs[data-v-7d093ea6]{width:22px;height:22px;font-size:11px}.btn[data-v-7d093ea6]{padding:7px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s ease;font-family:inherit}.btn-primary[data-v-7d093ea6]{background:#1a5c4b;color:#fff}.btn-primary[data-v-7d093ea6]:hover{background:#0f3d32}.btn-outline[data-v-7d093ea6]{color:#1a5c4b;background:transparent;border:1px solid #1A5C4B}.btn-outline[data-v-7d093ea6]:hover{background:#e8f3ef}.btn-outline.danger[data-v-7d093ea6]{color:#c0392b;border-color:#c0392b}.btn-outline.danger[data-v-7d093ea6]:hover{background:#fdecea}.btn-sm[data-v-7d093ea6]{padding:5px 12px;font-size:12px}.btn-ghost[data-v-7d093ea6]{background:transparent;color:#1a5c4b}.btn-ghost[data-v-7d093ea6]:hover{background:#e8f3ef}.modal-overlay[data-v-7d093ea6]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-7d093ea6]{background:#fff;border-radius:16px;padding:24px;max-width:480px;width:90%;box-shadow:0 8px 32px #1c3c3224;animation:slideUp-7d093ea6 .2s cubic-bezier(.16,1,.3,1)}@keyframes slideUp-7d093ea6{0%{opacity:0;transform:translateY(8px) scale(.98)}}.modal-content h3[data-v-7d093ea6]{font-size:17px;font-weight:600;margin:0 0 16px;color:#1c1c1e}.modal-form[data-v-7d093ea6]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-7d093ea6]{display:flex;flex-direction:column;gap:4px}.form-group label[data-v-7d093ea6]{font-size:13px;font-weight:500;color:#6e6e73}.form-row[data-v-7d093ea6]{display:flex;gap:12px}.flex-1[data-v-7d093ea6]{flex:1}.fg-muted[data-v-7d093ea6]{font-weight:400;color:#c7c7cc}.input[data-v-7d093ea6]{border:1px solid #E5E5EA;border-radius:8px;padding:9px 12px;font-size:14px;color:#1c1c1e;background:#fff;font-family:inherit;transition:border-color .15s ease;width:100%;box-sizing:border-box}.input[data-v-7d093ea6]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}textarea.input[data-v-7d093ea6]{resize:vertical;min-height:50px}.modal-actions[data-v-7d093ea6]{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.icon-field[data-v-7d093ea6]{display:flex;align-items:center;gap:10px}.icon-preview-btn[data-v-7d093ea6]{width:48px;height:48px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease;flex-shrink:0;background:#1a5c4b}.icon-preview-btn[data-v-7d093ea6]:hover{transform:scale(1.08)}.icon-preview-text[data-v-7d093ea6]{font-size:24px;color:#fff;line-height:1}.icon-hint[data-v-7d093ea6]{font-size:13px;color:#8e8e93}.icon-picker-modal[data-v-7d093ea6]{max-width:480px}.icon-grid[data-v-7d093ea6]{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-bottom:16px;max-height:280px;overflow-y:auto;padding:4px}.icon-option[data-v-7d093ea6]{width:48px;height:48px;border-radius:10px;border:1.5px solid #E5E5EA;background:#fafafa;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s ease}.icon-option[data-v-7d093ea6]:hover{border-color:#1a5c4b;background:#e8f3ef;transform:scale(1.1)}.icon-option.selected[data-v-7d093ea6]{border-color:#1a5c4b;background:#1a5c4b}.import-tip[data-v-7d093ea6]{font-size:13px;color:#8e8e93;margin:0 0 10px}.import-tip a[data-v-7d093ea6]{color:#1a5c4b}.grade-filter-bar[data-v-7d093ea6]{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f8fafb;border-bottom:1px solid #E5E5EA;flex-wrap:wrap}.grade-filter-label[data-v-7d093ea6]{font-size:13px;font-weight:600;color:#6e6e73;white-space:nowrap}.grade-tabs[data-v-7d093ea6]{display:flex;gap:6px;flex-wrap:wrap}.grade-tab[data-v-7d093ea6]{padding:5px 14px;border-radius:20px;border:1.5px solid #E5E5EA;background:#fff;font-size:13px;font-weight:500;color:#3a3a3c;cursor:pointer;transition:all .12s ease}.grade-tab[data-v-7d093ea6]:hover{border-color:#1a5c4b;color:#1a5c4b}.grade-tab.active[data-v-7d093ea6]{border-color:#1a5c4b;background:#1a5c4b;color:#fff}@media(max-width:1024px){.three-panel[data-v-7d093ea6]{grid-template-columns:160px 1fr 1fr}}@media(max-width:768px){.three-panel[data-v-7d093ea6]{grid-template-columns:1fr}.panel[data-v-7d093ea6]{min-height:180px}}.cr-page[data-v-d65bd468]{max-width:1200px}.cr-header[data-v-d65bd468]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.cr-header-left[data-v-d65bd468]{display:flex;align-items:center;gap:10px}.cr-title[data-v-d65bd468]{font-size:22px;font-weight:700;color:#1c1c1e;margin:0}.cr-badge[data-v-d65bd468]{font-size:12px;font-weight:600;color:#fff;background:#1a5c4b;padding:2px 10px;border-radius:12px}.cr-header-right[data-v-d65bd468]{display:flex;align-items:center;gap:10px}.cr-date-picker[data-v-d65bd468]{color:#8e8e93;display:flex;align-items:center;background:#fff;border:1px solid #E5E5EA;border-radius:10px;padding:6px 10px}.cr-date-input[data-v-d65bd468]{border:none;font-size:14px;color:#1c1c1e;outline:none;background:transparent;width:130px}.cr-btn[data-v-d65bd468]{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all .2s}.cr-btn-primary[data-v-d65bd468]{color:#fff;background:#1a5c4b}.cr-btn-primary[data-v-d65bd468]:hover{background:#0f3d32;transform:translateY(-1px)}.cr-btn-outline[data-v-d65bd468]{color:#6e6e73;background:#fff;border:1.5px solid #E5E5EA}.cr-btn-outline[data-v-d65bd468]:hover{border-color:#1a5c4b;color:#1a5c4b}.cr-btn-outline.active[data-v-d65bd468]{background:#1a5c4b;color:#fff;border-color:#1a5c4b}.cr-btn-sm[data-v-d65bd468]{padding:6px 14px;font-size:12px}.cr-section[data-v-d65bd468]{background:#fff;border:1px solid #EAEAEF;border-radius:16px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 4px #00000005}.cr-section-head[data-v-d65bd468]{display:flex;align-items:center;gap:8px;padding:14px 20px;background:#fafafc;border-bottom:1px solid #EAEAEF}.cr-section-icon[data-v-d65bd468]{color:#1a5c4b;display:flex}.cr-section-label[data-v-d65bd468]{font-size:14px;font-weight:600;color:#1c1c1e}.cr-section-actions[data-v-d65bd468]{display:flex;align-items:center;gap:6px;margin-left:auto}.cr-rec-badge[data-v-d65bd468]{font-size:11px;font-weight:600;color:#fff;background:#1a5c4b;padding:2px 8px;border-radius:10px}.cr-loading[data-v-d65bd468]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px;color:#8e8e93;font-size:14px}.cr-spinner[data-v-d65bd468]{width:28px;height:28px;border:3px solid #EAEAEF;border-top-color:#1a5c4b;border-radius:50%;animation:spin-d65bd468 .7s linear infinite}@keyframes spin-d65bd468{to{transform:rotate(360deg)}}.cr-empty[data-v-d65bd468]{text-align:center;color:#8e8e93;padding:30px;font-size:14px}.cr-grade-tabs[data-v-d65bd468]{display:flex;gap:3px;margin-left:auto;background:#f2f2f7;border-radius:8px;padding:3px}.cr-grade-tab[data-v-d65bd468]{padding:5px 14px;font-size:13px;font-weight:500;border:none;border-radius:6px;background:transparent;color:#6e6e73;cursor:pointer;transition:all .12s}.cr-grade-tab[data-v-d65bd468]:hover{color:#1c1c1e}.cr-grade-tab.active[data-v-d65bd468]{background:#fff;color:#1a5c4b;font-weight:600;box-shadow:0 1px 3px #0000000f}.cr-grade-body[data-v-d65bd468]{padding:16px 20px}.cr-batch-bar[data-v-d65bd468]{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:8px 12px;background:#f4f9f6;border-radius:10px}.cr-chk-all[data-v-d65bd468]{font-size:13px;color:#1a5c4b;cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:500}.cr-chk-all input[data-v-d65bd468]{margin:0}.cr-batch-count[data-v-d65bd468]{font-size:12px;font-weight:600;color:#1a5c4b;background:#e8f3ef;padding:2px 10px;border-radius:10px}.cr-class-grid[data-v-d65bd468]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.cr-class-card[data-v-d65bd468]{position:relative;padding:16px 12px;border-radius:14px;cursor:pointer;text-align:center;background:#fff;border:1.5px solid #EAEAEF;transition:all .2s;box-shadow:0 1px 3px #00000008}.cr-class-card[data-v-d65bd468]:hover{border-color:#1a5c4b;box-shadow:0 4px 16px #1a5c4b1f;transform:translateY(-3px)}.cr-class-card.noScore[data-v-d65bd468]{cursor:default}.cr-class-card.noScore[data-v-d65bd468]:hover{border-color:#eaeaef;box-shadow:none;transform:none}.cr-class-card.checked[data-v-d65bd468]{border-color:#1a5c4b;background:#f0f7f4}.cr-class-card.batch[data-v-d65bd468]{cursor:default}.cr-class-card.batch[data-v-d65bd468]:hover{transform:none}.cr-card-chk[data-v-d65bd468]{position:absolute;top:8px;left:8px}.cr-card-chk input[data-v-d65bd468]{width:16px;height:16px;cursor:pointer;margin:0}.cr-card-name[data-v-d65bd468]{font-size:15px;font-weight:600;color:#1c1c1e;margin-bottom:6px}.cr-card-score[data-v-d65bd468]{font-size:26px;font-weight:800;color:#6e6e73;line-height:1.2}.cr-card-score.up[data-v-d65bd468]{color:#1b7f37}.cr-card-score.down[data-v-d65bd468]{color:#c0392b}.cr-card-detail[data-v-d65bd468]{display:flex;justify-content:center;gap:10px;margin-top:4px;font-size:13px;font-weight:600}.cr-bonus[data-v-d65bd468]{color:#1b7f37}.cr-deduct[data-v-d65bd468]{color:#c0392b}.cr-none[data-v-d65bd468]{color:#c8c8cc;font-weight:400;font-size:12px}.cr-batch-footer[data-v-d65bd468]{text-align:center;padding:14px 0 4px}.cr-fi[data-v-d65bd468]{padding:5px 8px;font-size:12px;border:1px solid #E5E5EA;border-radius:6px;background:#fff;color:#1c1c1e;min-width:70px}.cr-fi[data-v-d65bd468]:focus{outline:none;border-color:#1a5c4b}.cr-fi[data-v-d65bd468]:disabled{opacity:.4;cursor:not-allowed}.cr-fi-date[data-v-d65bd468]{min-width:120px}.cr-fi-search[data-v-d65bd468]{display:flex;align-items:center;gap:4px;background:#f2f2f7;border-radius:6px;padding:4px 8px;color:#8e8e93}.cr-fi-input[data-v-d65bd468]{border:none;background:transparent;font-size:12px;color:#1c1c1e;outline:none;width:100px}.cr-fi-input[data-v-d65bd468]::placeholder{color:#8e8e93}.cr-rec-scroll[data-v-d65bd468]{max-height:380px;overflow-y:auto}.cr-rec-table[data-v-d65bd468]{width:100%;border-collapse:collapse;font-size:13px}.cr-rec-table th[data-v-d65bd468]{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #EAEAEF;white-space:nowrap}.cr-rec-table td[data-v-d65bd468]{padding:10px 12px;border-bottom:1px solid #F5F5F8}.cr-rec-table tbody tr[data-v-d65bd468]:hover{background:#fafafc}.th-score[data-v-d65bd468]{text-align:center}.th-act[data-v-d65bd468]{width:36px}.td-date[data-v-d65bd468]{color:#8e8e93;font-size:12px;white-space:nowrap}.td-cls[data-v-d65bd468]{font-weight:600}.td-rule[data-v-d65bd468]{color:#3a3a3c}.td-score[data-v-d65bd468]{text-align:center}.td-by[data-v-d65bd468]{color:#6e6e73;font-size:12px}.cr-tag[data-v-d65bd468]{font-size:11px;color:#1a5c4b;background:#e8f3ef;padding:2px 8px;border-radius:6px;white-space:nowrap}.cr-sc-badge[data-v-d65bd468]{display:inline-block;padding:2px 10px;border-radius:6px;font-weight:700;font-size:13px}.cr-sc-badge.pos[data-v-d65bd468]{background:#e8f9ee;color:#1b7f37}.cr-sc-badge.neg[data-v-d65bd468]{background:#ffeded;color:#c0392b}.cr-del[data-v-d65bd468]{padding:4px 6px;border:none;border-radius:4px;background:transparent;color:#b0b0b8;cursor:pointer;transition:all .12s;display:inline-flex;align-items:center}.cr-del[data-v-d65bd468]:hover{background:#ffeded;color:#c0392b}.cr-overlay[data-v-d65bd468]{position:fixed;inset:0;background:#0000005c;backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding:30px 16px;z-index:500}.cr-modal[data-v-d65bd468]{background:#fff;border-radius:20px;max-width:680px;width:100%;max-height:calc(100vh - 60px);display:flex;flex-direction:column;box-shadow:0 20px 60px #00000026}.cr-modal-head[data-v-d65bd468]{display:flex;align-items:flex-start;gap:12px;padding:20px 24px 16px;border-bottom:1px solid #EAEAEF;flex-shrink:0}.cr-modal-title[data-v-d65bd468]{margin:0;font-size:18px;font-weight:700;color:#1c1c1e}.cr-modal-sub[data-v-d65bd468]{font-size:12px;color:#8e8e93;margin-top:2px;display:block}.cr-modal-close[data-v-d65bd468]{margin-left:auto;background:none;border:none;font-size:16px;color:#8e8e93;cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center}.cr-modal-close[data-v-d65bd468]:hover{background:#f2f2f7}.cr-modal-body[data-v-d65bd468]{flex:1;overflow-y:auto;padding:12px 20px 16px}.cr-nav-section[data-v-d65bd468]{margin-bottom:14px}.cr-nav-section[data-v-d65bd468]:last-child{margin-bottom:0}.cr-nav-label[data-v-d65bd468]{font-size:12px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:8px}.cr-nav-hint[data-v-d65bd468]{font-weight:400;color:#c7c7cc;text-transform:none;font-size:11px}.cr-nav-cats[data-v-d65bd468]{display:flex;flex-wrap:wrap;gap:8px}.cr-nav-cat[data-v-d65bd468]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;border:1.5px solid #E5E5EA;background:#fff;cursor:pointer;transition:all .12s ease;font-family:inherit;font-size:13px}.cr-nav-cat[data-v-d65bd468]:hover{border-color:#1a5c4b;background:#e8f3ef}.cr-nav-cat.active[data-v-d65bd468]{border-color:#1a5c4b;background:#1a5c4b;color:#fff}.cr-nav-cat-icon[data-v-d65bd468]{font-size:20px}.cr-nav-cat-name[data-v-d65bd468]{font-weight:600}.cr-nav-dims[data-v-d65bd468]{display:flex;flex-wrap:wrap;gap:6px}.cr-nav-dim[data-v-d65bd468]{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1.5px solid #E5E5EA;background:#fff;cursor:pointer;transition:all .12s ease;font-family:inherit;font-size:13px}.cr-nav-dim[data-v-d65bd468]:hover{border-color:#2d7d9a;background:#eff6ff}.cr-nav-dim.active[data-v-d65bd468]{border-color:#2d7d9a;background:#2d7d9a;color:#fff}.cr-nav-dim-icon[data-v-d65bd468]{font-size:16px}.cr-nav-dim-name[data-v-d65bd468]{font-weight:500}.cr-nav-dim-count[data-v-d65bd468]{font-size:10px;color:#8e8e93;background:#f2f2f7;padding:0 5px;border-radius:4px}.cr-nav-dim.active .cr-nav-dim-count[data-v-d65bd468]{background:#fff3;color:#fff}.cr-nav-items[data-v-d65bd468]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.cr-nav-item-wrap[data-v-d65bd468]{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}.cr-nav-item-btn[data-v-d65bd468]{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;padding:10px 6px;border:1.5px solid #E5E5EA;border-radius:10px;background:#fff;cursor:pointer;transition:all .12s ease;font-family:inherit;position:relative}.cr-nav-item-btn[data-v-d65bd468]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.cr-nav-item-btn.deduct[data-v-d65bd468]{border-color:#fdecea;background:#fff5f4}.cr-nav-item-btn.deduct[data-v-d65bd468]:hover{border-color:#c0392b;background:#fdecea}.cr-nav-item-btn.bonus[data-v-d65bd468]{border-color:#e8f9ee;background:#f4fff7}.cr-nav-item-btn.bonus[data-v-d65bd468]:hover{border-color:#1b7f37;background:#e8f9ee}.cr-nav-item-btn.scored[data-v-d65bd468]{box-shadow:0 0 0 2px #1a5c4b}.cr-nav-item-icon[data-v-d65bd468]{font-size:20px}.cr-nav-item-name[data-v-d65bd468]{font-size:12px;font-weight:500;color:#3a3a3c;text-align:center}.cr-nav-item-score[data-v-d65bd468]{font-size:11px;font-weight:700;padding:1px 6px;border-radius:4px}.cr-nav-item-btn.deduct .cr-nav-item-score[data-v-d65bd468]{background:#fdecea;color:#c0392b}.cr-nav-item-btn.bonus .cr-nav-item-score[data-v-d65bd468]{background:#e8f9ee;color:#1b7f37}.cr-nav-dot[data-v-d65bd468]{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#1a5c4b;border:2px solid #FFF}.cr-nav-manual[data-v-d65bd468]{width:100%;padding:8px;border-radius:8px;border:1px dashed #E5E5EA;background:#fafafa;display:flex;flex-direction:column;gap:6px;align-items:center}.cr-nav-empty[data-v-d65bd468]{text-align:center;color:#8e8e93;font-size:13px;padding:10px}.cr-nav-subsection[data-v-d65bd468]{margin-bottom:12px}.cr-nav-subsection[data-v-d65bd468]:last-child{margin-bottom:0}.cr-nav-subhead[data-v-d65bd468]{font-size:13px;font-weight:600;color:#3a3a3c;margin-bottom:6px;padding:4px 8px;border-radius:6px}.cr-nav-subhead.deduct-head[data-v-d65bd468]{background:#fff5f4;color:#c0392b}.cr-nav-subhead.bonus-head[data-v-d65bd468]{background:#f4fff7;color:#1b7f37}.cr-manual-acts[data-v-d65bd468]{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.cr-mbtn[data-v-d65bd468]{padding:3px 8px;border:1px solid #E5E5EA;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;background:#fff;transition:all .12s;font-family:inherit}.cr-mbtn.deduct[data-v-d65bd468]{color:#c0392b;border-color:#fdecea}.cr-mbtn.deduct[data-v-d65bd468]:hover{background:#fdecea;border-color:#c0392b}.cr-mbtn.bonus[data-v-d65bd468]{color:#1b7f37;border-color:#e8f9ee}.cr-mbtn.bonus[data-v-d65bd468]:hover{background:#e8f9ee;border-color:#1b7f37}.cr-modal-foot[data-v-d65bd468]{display:flex;align-items:center;gap:8px;padding:14px 24px;border-top:1px solid #EAEAEF;font-size:14px;color:#3a3a3c;flex-shrink:0;background:#fafafc}.cr-foot-label[data-v-d65bd468]{font-size:13px}.cr-foot-bonus[data-v-d65bd468]{color:#1b7f37;font-weight:600}.cr-foot-deduct[data-v-d65bd468]{color:#c0392b;font-weight:600}.cr-foot-total[data-v-d65bd468]{font-size:20px;font-weight:800;margin-left:4px}.cr-foot-total.up[data-v-d65bd468]{color:#1b7f37}.cr-foot-total.down[data-v-d65bd468]{color:#c0392b}.cr-scoring-badge[data-v-d65bd468]{margin-left:auto;font-size:12px;font-weight:500;color:#1a5c4b;background:#e8f3ef;padding:3px 12px;border-radius:10px;animation:pulse-d65bd468 1.5s infinite}.cr-undo-toast[data-v-d65bd468]{margin-left:auto;display:flex;align-items:center;gap:6px;padding:6px 14px;background:#1c1c1e;color:#fff;border-radius:10px;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 4px 12px #0003}.cr-undo-toast[data-v-d65bd468]:hover{background:#2c2c2e}.cr-undo-icon[data-v-d65bd468]{display:flex;color:#8e8e93}.cr-undo-link[data-v-d65bd468]{font-weight:700;color:#34c759;margin-left:4px}@keyframes pulse-d65bd468{0%,to{opacity:1}50%{opacity:.5}}.fade-up-enter-active[data-v-d65bd468],.fade-up-leave-active[data-v-d65bd468]{transition:all .25s ease}.fade-up-enter-from[data-v-d65bd468],.fade-up-leave-to[data-v-d65bd468]{opacity:0;transform:translateY(10px)}.modal-enter-active[data-v-d65bd468],.modal-leave-active[data-v-d65bd468]{transition:opacity .2s}.modal-enter-from[data-v-d65bd468],.modal-leave-to[data-v-d65bd468]{opacity:0}.modal-enter-active .cr-modal[data-v-d65bd468]{animation:slideUp-d65bd468 .25s ease}.modal-leave-active .cr-modal[data-v-d65bd468]{animation:slideUp-d65bd468 .2s ease reverse}@keyframes slideUp-d65bd468{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.eval-panel-cr[data-v-d65bd468]{max-width:560px;max-height:80vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.eval-panel-cr .panel-header[data-v-d65bd468]{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 12px;border-bottom:1px solid #F2F2F7;flex-shrink:0}.eval-panel-cr .panel-left[data-v-d65bd468]{display:flex;gap:14px}.eval-panel-cr .panel-info h3[data-v-d65bd468]{font-size:18px;font-weight:700;color:#1c1c1e;margin:0}.eval-panel-cr .panel-meta[data-v-d65bd468]{font-size:12px;color:#8e8e93;margin-top:2px;display:block}.eval-panel-cr .panel-stats[data-v-d65bd468]{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.eval-panel-cr .stat-chip[data-v-d65bd468]{display:flex;align-items:center;gap:3px;padding:2px 10px;border-radius:14px;font-size:12px;font-weight:600}.eval-panel-cr .stat-chip.total-chip[data-v-d65bd468]{background:#e8f3ef;color:#1a5c4b}.eval-panel-cr .stat-chip.add-chip[data-v-d65bd468]{background:#e8f9ee;color:#1b7f37}.eval-panel-cr .stat-chip.sub-chip[data-v-d65bd468]{background:#fdecea;color:#c0392b}.eval-panel-cr .stat-icon[data-v-d65bd468]{font-size:10px}.eval-panel-cr .btn-icon[data-v-d65bd468]{width:32px;height:32px;border:none;background:transparent;font-size:18px;cursor:pointer;color:#8e8e93;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.eval-panel-cr .btn-icon[data-v-d65bd468]:hover{background:#f2f2f7;color:#1c1c1e}.eval-panel-cr .breadcrumb[data-v-d65bd468]{display:flex;align-items:center;gap:4px;padding:10px 24px;border-bottom:1px solid #F2F2F7;flex-shrink:0}.eval-panel-cr .crumb[data-v-d65bd468]{font-size:13px;color:#8e8e93;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .12s}.eval-panel-cr .crumb[data-v-d65bd468]:hover{background:#f2f2f7}.eval-panel-cr .crumb.active[data-v-d65bd468]{color:#1a5c4b;font-weight:600}.eval-panel-cr .crumb-arrow[data-v-d65bd468]{color:#c7c7cc;font-size:16px;line-height:1}.eval-panel-cr .categories-circles[data-v-d65bd468]{display:flex;flex-wrap:wrap;gap:16px;padding:20px 24px;overflow-y:auto;flex:1}.eval-panel-cr .cat-circle-wrap[data-v-d65bd468]{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;width:100px}.eval-panel-cr .cat-circle.lg[data-v-d65bd468]{width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #00000026;transition:transform .18s}.eval-panel-cr .cat-circle.lg[data-v-d65bd468]:hover{transform:scale(1.1)}.eval-panel-cr .cat-emoji[data-v-d65bd468]{font-size:28px;line-height:1}.eval-panel-cr .cat-label[data-v-d65bd468]{font-size:13px;font-weight:600;text-align:center}.eval-panel-cr .cat-count[data-v-d65bd468]{font-size:11px;color:#8e8e93}.eval-panel-cr .dimensions-circles[data-v-d65bd468]{display:flex;flex-wrap:wrap;gap:16px;padding:20px 24px 44px;overflow-y:auto;flex:1;position:relative}.eval-panel-cr .dim-circle-wrap[data-v-d65bd468]{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;width:80px}.eval-panel-cr .dim-circle[data-v-d65bd468]{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px #0000001f;transition:transform .18s}.eval-panel-cr .dim-circle[data-v-d65bd468]:hover{transform:scale(1.1)}.eval-panel-cr .dim-emoji[data-v-d65bd468]{font-size:22px;line-height:1}.eval-panel-cr .dim-label[data-v-d65bd468]{font-size:12px;font-weight:500;color:#3a3a3c;text-align:center}.eval-panel-cr .dim-count[data-v-d65bd468]{font-size:11px;color:#8e8e93}.eval-panel-cr .eval-section-header[data-v-d65bd468]{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#3a3a3c;padding:12px 24px 6px;margin-top:4px}.eval-panel-cr .eval-section-header.sub-header[data-v-d65bd468]{color:#c0392b}.eval-panel-cr .eval-section-header.add-header[data-v-d65bd468]{color:#1b7f37}.eval-panel-cr .section-dot[data-v-d65bd468]{width:8px;height:8px;border-radius:50%;background:#c7c7cc}.eval-panel-cr .section-dot.sub-dot[data-v-d65bd468]{background:#c0392b}.eval-panel-cr .section-dot.add-dot[data-v-d65bd468]{background:#1b7f37}.eval-panel-cr .items-circles[data-v-d65bd468]{display:flex;flex-wrap:wrap;gap:14px;padding:4px 24px 12px;position:relative}.eval-panel-cr .item-circle-wrap[data-v-d65bd468]{display:flex;flex-direction:column;align-items:center;gap:4px;width:80px}.eval-panel-cr .item-circle-wrap.back-item[data-v-d65bd468]{cursor:pointer}.eval-panel-cr .item-circle-wrap.back-item .item-circle[data-v-d65bd468]{background:#e8e8ed!important;border:1.5px dashed #B0B0B8}.eval-panel-cr .item-circle-wrap.back-item .item-label[data-v-d65bd468]{color:#8e8e93}.eval-panel-cr .dim-circle-wrap.back-item[data-v-d65bd468]{cursor:pointer}.eval-panel-cr .dim-circle-wrap.back-item .dim-circle[data-v-d65bd468]{background:#e8e8ed!important;border:1.5px dashed #B0B0B8}.eval-panel-cr .dim-circle-wrap.back-item .dim-label[data-v-d65bd468]{color:#8e8e93}.eval-panel-cr .item-circle[data-v-d65bd468]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:transform .12s}.eval-panel-cr .item-circle[data-v-d65bd468]:hover{transform:scale(1.08)}.eval-panel-cr .item-emoji[data-v-d65bd468]{font-size:18px;line-height:1}.eval-panel-cr .item-score-ring[data-v-d65bd468]{position:absolute;bottom:-4px;right:-4px;font-size:10px;font-weight:700;color:#1a5c4b;background:#fff;border:1.5px solid #1A5C4B;border-radius:8px;padding:0 4px;line-height:1.5;box-shadow:0 1px 3px #0000001a;transition:all .12s}.eval-panel-cr .item-score-ring.active[data-v-d65bd468]{background:#1a5c4b;color:#fff}.eval-panel-cr .item-score-ring.neg-ring[data-v-d65bd468]{border-color:#c0392b;color:#c0392b}.eval-panel-cr .item-score-ring.neg-ring.active[data-v-d65bd468]{background:#c0392b;color:#fff}.eval-panel-cr .item-label[data-v-d65bd468]{font-size:11px;font-weight:500;color:#3a3a3c;text-align:center;cursor:pointer;line-height:1.3}.eval-panel-cr .btn-direct-eval[data-v-d65bd468]{font-size:10px;font-weight:600;border:none;border-radius:5px;padding:2px 10px;cursor:pointer;transition:all .12s}.eval-panel-cr .btn-direct-eval.add-eval[data-v-d65bd468]{background:#e8f9ee;color:#1b7f37}.eval-panel-cr .btn-direct-eval.add-eval[data-v-d65bd468]:hover{background:#1b7f37;color:#fff}.eval-panel-cr .btn-direct-eval.sub-eval[data-v-d65bd468]{background:#fdecea;color:#c0392b}.eval-panel-cr .btn-direct-eval.sub-eval[data-v-d65bd468]:hover{background:#c0392b;color:#fff}.eval-panel-cr .item-circle-wrap.selected .item-circle[data-v-d65bd468]{box-shadow:0 0 0 3px #1a5c4b}.eval-panel-cr .manual-item .item-circle.manual-circle[data-v-d65bd468]{background:#f2f2f7!important;border:1.5px dashed #D1D5DB;cursor:default}.eval-panel-cr .manual-acts[data-v-d65bd468]{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.eval-panel-cr .manual-acts .btn-direct-eval[data-v-d65bd468]{font-size:9px;padding:1px 6px}.eval-panel-cr .eval-footer[data-v-d65bd468]{display:flex;align-items:center;padding:12px 24px;border-top:1px solid #F2F2F7;gap:12px;flex-shrink:0;background:#fafafc}.eval-panel-cr .eval-count[data-v-d65bd468]{font-size:13px;color:#8e8e93;flex:1}.eval-panel-cr .eval-actions[data-v-d65bd468]{display:flex;gap:8px}.eval-panel-cr .btn[data-v-d65bd468]{padding:7px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s;font-family:inherit}.eval-panel-cr .btn-primary[data-v-d65bd468]{background:#1a5c4b;color:#fff}.eval-panel-cr .btn-primary[data-v-d65bd468]:hover{background:#0f3d32}.eval-panel-cr .btn-ghost[data-v-d65bd468]{background:transparent;color:#1a5c4b}.eval-panel-cr .btn-ghost[data-v-d65bd468]:hover{background:#e8f3ef}.page[data-v-7dfcb4d8]{max-width:1400px}.page-header[data-v-7dfcb4d8]{margin-bottom:14px}.page-header h2[data-v-7dfcb4d8]{font-size:22px;font-weight:600;color:#1c1c1e;margin:0}.tabs[data-v-7dfcb4d8]{display:flex;gap:4px;margin-bottom:14px;background:#f2f2f7;border-radius:10px;padding:4px;max-width:400px}.tab-btn[data-v-7dfcb4d8]{flex:1;padding:10px 20px;font-size:14px;font-weight:500;border:none;border-radius:8px;background:transparent;color:#6e6e73;cursor:pointer}.tab-btn[data-v-7dfcb4d8]:hover{color:#1c1c1e}.tab-btn.active[data-v-7dfcb4d8]{background:#fff;color:#1a5c4b;font-weight:600;box-shadow:0 1px 3px #00000014}.hint[data-v-7dfcb4d8]{text-align:center;color:#8e8e93;padding:40px;font-size:14px}.section-bar[data-v-7dfcb4d8]{display:flex;align-items:center;gap:16px;margin-bottom:14px}.week-picker[data-v-7dfcb4d8]{display:flex;align-items:center;gap:8px;font-size:14px}.week-range[data-v-7dfcb4d8]{font-size:13px;color:#8e8e93}.filter-input[data-v-7dfcb4d8]{padding:8px 12px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px}.filter-input[data-v-7dfcb4d8]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.grade-tabs[data-v-7dfcb4d8]{display:flex;gap:3px;margin-bottom:14px;background:#f2f2f7;border-radius:8px;padding:3px;max-width:600px}.gtab[data-v-7dfcb4d8]{padding:6px 18px;font-size:13px;font-weight:500;border:none;border-radius:6px;background:transparent;color:#6e6e73;cursor:pointer;transition:all .12s}.gtab[data-v-7dfcb4d8]:hover{color:#1c1c1e}.gtab.active[data-v-7dfcb4d8]{background:#fff;color:#1a5c4b;font-weight:600;box-shadow:0 1px 2px #0000000f}.table-wrap[data-v-7dfcb4d8]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;overflow-x:auto}.dash-table[data-v-7dfcb4d8],.sem-table[data-v-7dfcb4d8]{width:100%;border-collapse:collapse;font-size:13px;min-width:600px}.dash-table th[data-v-7dfcb4d8],.sem-table th[data-v-7dfcb4d8]{padding:10px 12px;font-weight:600;color:#6e6e73;background:#f9f9fb;border:1px solid #E0E0E5;white-space:nowrap;text-align:center}.dash-table td[data-v-7dfcb4d8],.sem-table td[data-v-7dfcb4d8]{padding:10px 12px;border:1px solid #EAEAEF;text-align:center}.dash-table tbody tr[data-v-7dfcb4d8]:hover,.sem-table tbody tr[data-v-7dfcb4d8]:hover{background:#f5f8f6}.th-cls[data-v-7dfcb4d8]{text-align:left;min-width:80px;position:sticky;left:0;background:#f9f9fb;z-index:1;font-size:14px}.th-rule[data-v-7dfcb4d8]{min-width:90px;font-size:14px}.th-total[data-v-7dfcb4d8]{min-width:80px;color:#1a5c4b!important;font-size:15px}.th-cat[data-v-7dfcb4d8]{min-width:76px;font-size:13px;color:#1b7f37!important}.td-cls[data-v-7dfcb4d8]{text-align:left;font-weight:600;position:sticky;left:0;background:#fff;z-index:1;font-size:15px}.td-cls[data-v-7dfcb4d8]:after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:#e5e5ea}.td-grade[data-v-7dfcb4d8]{font-weight:600;color:#6e6e73;font-size:13px;vertical-align:middle;text-align:center;background:#fafafc}.score-num[data-v-7dfcb4d8]{display:inline-block;padding:2px 10px;border-radius:6px;font-weight:800;font-size:16px;min-width:32px;text-align:center}.score-num.pos[data-v-7dfcb4d8]{background:#e8f9ee;color:#1b7f37}.score-num.neg[data-v-7dfcb4d8]{background:#ffeded;color:#c0392b}.td-final[data-v-7dfcb4d8]{font-weight:900;font-size:20px;color:#6e6e73}.td-final.pos[data-v-7dfcb4d8]{color:#1b7f37}.td-final.neg[data-v-7dfcb4d8]{color:#c0392b}.td-grade[data-v-7dfcb4d8]{font-weight:600;color:#6e6e73;font-size:12px}.td-cls-name[data-v-7dfcb4d8]{font-weight:600}.th-wk[data-v-7dfcb4d8]{text-align:center;min-width:70px}.td-sc[data-v-7dfcb4d8]{text-align:center}.wk-total[data-v-7dfcb4d8]{font-size:15px;font-weight:700}.wk-total.pos[data-v-7dfcb4d8]{color:#1b7f37}.wk-total.neg[data-v-7dfcb4d8]{color:#c0392b}.wk-flag[data-v-7dfcb4d8]{margin-left:3px;font-size:13px}.wk-detail[data-v-7dfcb4d8]{display:flex;justify-content:center;gap:6px;font-size:11px;margin-top:2px}.wk-bonus[data-v-7dfcb4d8]{color:#1b7f37}.wk-deduct[data-v-7dfcb4d8]{color:#c0392b}.no-data[data-v-7dfcb4d8]{color:#d1d1d6}.detail-popover[data-v-7dfcb4d8]{position:fixed;z-index:9999;width:340px;max-height:260px;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000002e;border:1px solid #EAEAEF;overflow:hidden;display:flex;flex-direction:column;animation:popIn-7dfcb4d8 .12s ease-out}@keyframes popIn-7dfcb4d8{0%{opacity:0;transform:translate(-50%) translateY(4px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.popover-head[data-v-7dfcb4d8]{padding:10px 14px 4px;font-size:13px;font-weight:700;color:#1c1c1e}.popover-total[data-v-7dfcb4d8]{padding:0 14px 8px;font-size:11px;color:#8e8e93;border-bottom:1px solid #F2F2F7}.popover-total span[data-v-7dfcb4d8]{font-weight:700;font-size:13px}.popover-total .pos[data-v-7dfcb4d8]{color:#1b7f37}.popover-total .neg[data-v-7dfcb4d8]{color:#c0392b}.popover-body[data-v-7dfcb4d8]{flex:1;overflow-y:auto;padding:0}.popover-table[data-v-7dfcb4d8]{width:100%;border-collapse:collapse;font-size:12px}.popover-table th[data-v-7dfcb4d8]{text-align:left;padding:6px 10px;font-weight:600;color:#8e8e93;font-size:10px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #F2F2F7;position:sticky;top:0;background:#fff}.popover-table td[data-v-7dfcb4d8]{padding:5px 10px;border-bottom:1px solid #F8F8FA}.pop-score[data-v-7dfcb4d8]{font-weight:700;font-size:13px}.pop-score.pos[data-v-7dfcb4d8]{color:#1b7f37}.pop-score.neg[data-v-7dfcb4d8]{color:#c0392b}.pop-note[data-v-7dfcb4d8]{color:#3a3a3c;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pop-recorder[data-v-7dfcb4d8]{color:#6e6e73}.pop-date[data-v-7dfcb4d8]{color:#8e8e93;white-space:nowrap}.screen[data-v-ca4c04c6]{width:100vw;height:100vh;overflow:hidden;background:linear-gradient(135deg,#0f3d32,#1a5c4b 30%,#2d8b72 70%,#1a5c4b);color:#fff;display:flex;flex-direction:column;font-family:Inter,-apple-system,PingFang SC,sans-serif;cursor:pointer;user-select:none}.header[data-v-ca4c04c6]{display:flex;justify-content:space-between;align-items:center;padding:20px 40px;background:#00000026;backdrop-filter:blur(10px)}.header-left[data-v-ca4c04c6]{display:flex;align-items:center;gap:12px}.brand-icon[data-v-ca4c04c6]{font-size:28px}.header-left h1[data-v-ca4c04c6]{font-size:22px;font-weight:700;margin:0;letter-spacing:-.01em}.header-right[data-v-ca4c04c6]{display:flex;align-items:center;gap:16px}.current-time[data-v-ca4c04c6]{font-size:18px;font-weight:500;opacity:.8}.page-dots[data-v-ca4c04c6]{display:flex;gap:6px}.dot[data-v-ca4c04c6]{width:8px;height:8px;border-radius:50%;background:#fff3;transition:all .3s ease}.dot.active[data-v-ca4c04c6]{background:#d4920a;transform:scale(1.3)}.page[data-v-ca4c04c6]{flex:1;overflow-y:auto;padding:24px 40px}.overview-stats[data-v-ca4c04c6]{display:flex;gap:20px;margin-bottom:20px}.stat-card[data-v-ca4c04c6]{background:#ffffff14;border-radius:16px;padding:24px;text-align:center;flex:1;backdrop-filter:blur(4px)}.stat-card.big[data-v-ca4c04c6]{flex:2}.stat-value[data-v-ca4c04c6]{font-size:56px;font-weight:800;line-height:1;margin-bottom:4px}.stat-label[data-v-ca4c04c6]{font-size:16px;opacity:.7}.stat-sub[data-v-ca4c04c6]{font-size:14px;opacity:.5;margin-top:4px}.ratio-section[data-v-ca4c04c6]{margin-bottom:24px}.ratio-bar[data-v-ca4c04c6]{display:flex;height:40px;border-radius:10px;overflow:hidden}.ratio-fill[data-v-ca4c04c6]{display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;transition:width 1s ease;min-width:fit-content;padding:0 16px}.ratio-fill.male[data-v-ca4c04c6]{background:#3b82f6}.ratio-fill.female[data-v-ca4c04c6]{background:#ec4899}.section-title[data-v-ca4c04c6]{font-size:20px;font-weight:700;margin-bottom:14px;letter-spacing:-.01em;color:#d4920a}.star-class-grid[data-v-ca4c04c6]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.star-class-card[data-v-ca4c04c6]{display:flex;align-items:center;gap:10px;background:#ffffff0f;border-radius:10px;padding:12px;transition:all .2s ease}.star-class-card.gold[data-v-ca4c04c6]{background:#d4920a33;border:1px solid rgba(212,146,10,.4)}.star-class-card.silver[data-v-ca4c04c6]{background:#c0c0c026;border:1px solid rgba(192,192,192,.3)}.star-class-card.bronze[data-v-ca4c04c6]{background:#cd7f3226;border:1px solid rgba(205,127,50,.3)}.star-rank[data-v-ca4c04c6]{font-size:24px;font-weight:800;opacity:.5;min-width:32px}.star-body[data-v-ca4c04c6]{flex:1}.star-name[data-v-ca4c04c6]{font-size:14px;font-weight:600}.star-avg[data-v-ca4c04c6]{font-size:18px;font-weight:700;color:#d4920a}.ranking-table[data-v-ca4c04c6]{display:flex;flex-direction:column;gap:4px}.ranking-header[data-v-ca4c04c6],.ranking-row[data-v-ca4c04c6]{display:flex;align-items:center;padding:8px 16px;border-radius:8px}.ranking-header[data-v-ca4c04c6]{font-size:13px;font-weight:600;opacity:.6;padding:6px 16px}.ranking-row[data-v-ca4c04c6]{background:#ffffff0a;transition:all .2s ease}.ranking-row.gold[data-v-ca4c04c6]{background:#d4920a26}.ranking-row.silver[data-v-ca4c04c6]{background:#c0c0c01a}.ranking-row.bronze[data-v-ca4c04c6]{background:#cd7f321a}.ranking-row.top10[data-v-ca4c04c6]{font-weight:600}.rank-num[data-v-ca4c04c6]{width:36px;font-weight:700;font-size:14px}.rank-name[data-v-ca4c04c6]{flex:1;font-size:15px}.rank-class[data-v-ca4c04c6]{width:160px;font-size:13px;opacity:.7}.rank-score[data-v-ca4c04c6]{width:80px;text-align:right;font-size:18px;font-weight:700;color:#d4920a}.ranking-row.gold .rank-score[data-v-ca4c04c6]{color:gold;font-size:20px}.ranking-row.silver .rank-score[data-v-ca4c04c6]{color:silver}.ranking-row.bronze .rank-score[data-v-ca4c04c6]{color:#cd7f32}.praise-scroll[data-v-ca4c04c6]{display:flex;flex-direction:column;gap:8px}.praise-item[data-v-ca4c04c6]{display:flex;gap:12px;background:#ffffff0d;border-radius:10px;padding:14px;animation:fadeInUp-ca4c04c6 .5s ease both}@keyframes fadeInUp-ca4c04c6{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.praise-icon[data-v-ca4c04c6]{font-size:24px;flex-shrink:0}.praise-body[data-v-ca4c04c6]{flex:1}.praise-text[data-v-ca4c04c6]{font-size:15px;line-height:1.5}.praise-text strong[data-v-ca4c04c6]{color:#d4920a}.praise-text em[data-v-ca4c04c6]{font-style:italic;opacity:.9}.praise-score[data-v-ca4c04c6]{color:#34c759;font-size:16px}.praise-class[data-v-ca4c04c6]{font-size:12px;opacity:.5;margin:0 6px}.praise-meta[data-v-ca4c04c6]{font-size:12px;opacity:.4;margin-top:4px}.footer[data-v-ca4c04c6]{text-align:center;padding:12px;font-size:12px;opacity:.3;background:#0000001a}.ls-wrap[data-v-e36f151a]{position:fixed;inset:0;background:#0a0e1a;color:#e8e8f0;display:flex;flex-direction:column;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}.ls-header[data-v-e36f151a]{flex-shrink:0;padding:20px 32px 12px;background:linear-gradient(135deg,#0d1330,#1a2340);border-bottom:2px solid rgba(255,255,255,.25);text-align:center}.ls-title-row[data-v-e36f151a]{font-size:24px;font-weight:700;color:#fff;letter-spacing:1px}.ls-table-wrap[data-v-e36f151a]{flex:1;display:flex;flex-direction:column;overflow:hidden}.ls-thead[data-v-e36f151a]{flex-shrink:0}.ls-tbody[data-v-e36f151a]{flex:1;overflow:hidden}.ls-tr[data-v-e36f151a]{display:flex;align-items:center}.ls-tr-head[data-v-e36f151a]{background:#ffffff0a}.ls-td[data-v-e36f151a]{padding:14px 12px;font-size:18px;text-align:center;white-space:nowrap;border:1px solid rgba(255,255,255,.35)}.ls-td-name[data-v-e36f151a]{width:160px;flex-shrink:0;font-weight:600;text-align:left;padding-left:28px;font-size:20px}.ls-td-score[data-v-e36f151a]{flex:1;min-width:80px;font-size:18px}.ls-td-total[data-v-e36f151a]{width:100px;flex-shrink:0;font-weight:800;font-size:24px}.ls-tr-head .ls-td[data-v-e36f151a]{color:#7c8db5;font-size:16px;font-weight:600;letter-spacing:.5px}.ls-tr[data-v-e36f151a]:not(.ls-tr-head):nth-child(2n){background:#ffffff05}.ls-td-score.pos[data-v-e36f151a],.ls-td-total.pos[data-v-e36f151a]{color:#4ade80}.ls-td-score.neg[data-v-e36f151a],.ls-td-total.neg[data-v-e36f151a]{color:#f87171}.ls-dash[data-v-e36f151a]{color:#4a5568}.ls-loading[data-v-e36f151a]{flex:1;display:flex;align-items:center;justify-content:center;font-size:18px;color:#7c8db5}.ls-settings-btn[data-v-e36f151a]{position:fixed;top:12px;right:12px;width:36px;height:36px;background:#ffffff14;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;z-index:100;transition:background .15s}.ls-settings-btn[data-v-e36f151a]:hover{background:#ffffff26}.ls-config-overlay[data-v-e36f151a]{position:fixed;inset:0;background:#00000080;z-index:200;display:flex;align-items:center;justify-content:center}.ls-config-panel[data-v-e36f151a]{background:#1a2340;border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:24px;width:320px;color:#e8e8f0}.ls-config-panel h3[data-v-e36f151a]{margin:0 0 16px;font-size:18px}.cfg-group[data-v-e36f151a]{margin-bottom:16px}.cfg-group label[data-v-e36f151a]{display:block;font-size:13px;color:#7c8db5;margin-bottom:6px}.cfg-input[data-v-e36f151a]{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0f;color:#fff;font-size:14px;outline:none;box-sizing:border-box}.cfg-input[data-v-e36f151a]:focus{border-color:#4ade80}.cfg-bg-list[data-v-e36f151a]{display:flex;flex-wrap:wrap;gap:8px}.cfg-bg-item[data-v-e36f151a]{width:56px;height:56px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;border:2px solid transparent;transition:all .12s;position:relative}.cfg-bg-item.cfg-bg-img[data-v-e36f151a]{background:linear-gradient(135deg,#2d2d44,#1a1a2e);border:2px dashed rgba(255,255,255,.2);font-size:20px}.cfg-bg-item.cfg-bg-img[data-v-e36f151a]:hover{border-color:#fff6}.cfg-bg-item.active[data-v-e36f151a]{border-color:#4ade80}.cfg-bg-item[data-v-e36f151a]:hover{transform:scale(1.1)}.cfg-bg-name[data-v-e36f151a]{font-size:10px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}.cfg-close[data-v-e36f151a]{width:100%;padding:8px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:transparent;color:#7c8db5;font-size:14px;cursor:pointer;transition:all .12s}.cfg-close[data-v-e36f151a]:hover{background:#ffffff0f;color:#fff}.cfg-speed-hint[data-v-e36f151a]{font-weight:400;color:#7c8db5;margin-left:6px;font-size:12px}.cfg-slider[data-v-e36f151a]{width:100%;margin:6px 0 2px;accent-color:#4ADE80;cursor:pointer}.cfg-speed-labels[data-v-e36f151a]{display:flex;justify-content:space-between;font-size:11px;color:#5a6a90;padding:0 2px}.rules-page[data-v-e20d0ad5]{display:flex;flex-direction:column;height:calc(100vh - 104px)}.topbar[data-v-e20d0ad5]{display:flex;align-items:center;gap:16px;padding-bottom:12px;flex-shrink:0}.topbar h2[data-v-e20d0ad5]{font-size:20px;font-weight:600;color:#1c1c1e;margin:0;white-space:nowrap}.topbar-actions[data-v-e20d0ad5]{margin-left:auto}.toast[data-v-e20d0ad5]{padding:6px 14px;border-radius:6px;font-size:13px;font-weight:500;animation:fadeIn-e20d0ad5 .2s ease;white-space:nowrap}.toast.success[data-v-e20d0ad5]{background:#e8f9ee;color:#1b7f37}.toast.error[data-v-e20d0ad5]{background:#ffeded;color:#ff3b30}@keyframes fadeIn-e20d0ad5{0%{opacity:0}to{opacity:1}}.three-panel[data-v-e20d0ad5]{display:grid;grid-template-columns:220px 1fr 1fr;gap:12px;flex:1;min-height:0}.panel[data-v-e20d0ad5]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel-header[data-v-e20d0ad5]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #F2F2F7;flex-shrink:0}.panel-title[data-v-e20d0ad5]{font-size:13px;font-weight:600;color:#6e6e73;text-transform:uppercase;letter-spacing:.5px}.panel-header-right[data-v-e20d0ad5]{display:flex;align-items:center;gap:4px}.search-input[data-v-e20d0ad5]{border:1px solid #E5E5EA;border-radius:6px;padding:5px 10px;font-size:12px;width:120px;outline:none;background:#f2f2f7;transition:all .15s ease}.search-input[data-v-e20d0ad5]:focus{border-color:#1a5c4b;background:#fff;width:160px}.panel-loading[data-v-e20d0ad5],.panel-hint[data-v-e20d0ad5]{display:flex;align-items:center;justify-content:center;flex:1;color:#c7c7cc;font-size:13px}.spinner[data-v-e20d0ad5]{width:20px;height:20px;border:2px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-e20d0ad5 .8s linear infinite}@keyframes spin-e20d0ad5{to{transform:rotate(360deg)}}.panel-list[data-v-e20d0ad5]{flex:1;overflow-y:auto;padding:6px}.panel-item[data-v-e20d0ad5]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:all .12s ease;margin-bottom:2px}.panel-item[data-v-e20d0ad5]:hover{background:#f2f2f7}.panel-item.active[data-v-e20d0ad5]{background:#e8f3ef}.cat-circle[data-v-e20d0ad5]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #0000001f}.cat-icon-text[data-v-e20d0ad5]{font-size:18px;line-height:1}.cat-body[data-v-e20d0ad5]{flex:1;min-width:0;display:flex;flex-direction:column}.cat-name[data-v-e20d0ad5]{font-size:14px;font-weight:600;color:#1c1c1e}.cat-code[data-v-e20d0ad5]{font-size:10px;color:#8e8e93}.dim-circle[data-v-e20d0ad5]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #0000001f;transition:transform .15s ease}.panel-item:hover .dim-circle[data-v-e20d0ad5]{transform:scale(1.08)}.dim-icon-text[data-v-e20d0ad5]{font-size:17px;line-height:1}.dim-body[data-v-e20d0ad5]{flex:1;min-width:0}.dim-name[data-v-e20d0ad5]{font-size:13px;font-weight:500;color:#3a3a3c;display:block}.dim-desc[data-v-e20d0ad5]{font-size:11px;color:#8e8e93;display:block;margin-top:1px}.item-count[data-v-e20d0ad5]{font-size:11px;color:#8e8e93;background:#f2f2f7;padding:0 6px;border-radius:4px;font-weight:600;min-width:20px;text-align:center}.item-actions[data-v-e20d0ad5]{display:flex;gap:2px;opacity:0;transition:opacity .12s ease}.panel-item:hover .item-actions[data-v-e20d0ad5],.item-row:hover .item-actions[data-v-e20d0ad5]{opacity:1}.item-row[data-v-e20d0ad5]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:default;transition:background .12s ease;margin-bottom:2px}.item-row[data-v-e20d0ad5]:hover{background:#fafafa}.item-circle[data-v-e20d0ad5]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #0000001a}.item-icon-text[data-v-e20d0ad5]{font-size:15px;line-height:1}.item-body[data-v-e20d0ad5]{flex:1;min-width:0}.item-name-row[data-v-e20d0ad5]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.item-name[data-v-e20d0ad5]{font-size:13px;font-weight:500;color:#1c1c1e}.item-badge[data-v-e20d0ad5]{font-size:10px;padding:1px 6px;border-radius:4px;font-weight:500}.score-badge[data-v-e20d0ad5]{background:#e8f3ef;color:#1a5c4b}.score-badge.neg[data-v-e20d0ad5]{background:#fdecea;color:#c0392b}.score-badge.pos[data-v-e20d0ad5]{background:#e8f3ef;color:#1a5c4b}.custom-badge[data-v-e20d0ad5]{background:#fff6e0;color:#9b6d08}.daily-badge[data-v-e20d0ad5]{background:#f0f0ff;color:#5b5bd6}.item-badge.type-pos[data-v-e20d0ad5]{background:#e8f8ec;color:#1a5c4b}.item-badge.type-neg[data-v-e20d0ad5]{background:#fdecea;color:#c0392b}.daily-badge[data-v-e20d0ad5]{background:#eef2ff;color:#5b5bd6;font-weight:700}.item-desc[data-v-e20d0ad5]{font-size:11px;color:#8e8e93;display:block;margin-top:2px}.item-used[data-v-e20d0ad5]{font-size:10px;color:#c7c7cc;white-space:nowrap}.btn-icon[data-v-e20d0ad5]{width:26px;height:26px;border:none;background:transparent;border-radius:6px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#8e8e93;transition:all .12s ease}.btn-icon[data-v-e20d0ad5]:hover{background:#f2f2f7;color:#1c1c1e}.btn-icon.danger[data-v-e20d0ad5]:hover{background:#ffeded;color:#ff3b30}.btn-icon.sm[data-v-e20d0ad5]{width:28px;height:28px;font-size:15px}.btn-icon.xs[data-v-e20d0ad5]{width:22px;height:22px;font-size:11px}.btn[data-v-e20d0ad5]{padding:7px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s ease;font-family:inherit}.btn-primary[data-v-e20d0ad5]{background:#1a5c4b;color:#fff}.btn-primary[data-v-e20d0ad5]:hover{background:#0f3d32}.btn-ghost[data-v-e20d0ad5]{background:transparent;color:#1a5c4b}.btn-ghost[data-v-e20d0ad5]:hover{background:#e8f3ef}.btn-sm[data-v-e20d0ad5]{padding:5px 12px;font-size:12px}.type-toggle[data-v-e20d0ad5]{display:flex;gap:8px}.toggle-btn[data-v-e20d0ad5]{flex:1;padding:7px 12px;border:1.5px solid #E0E0E0;border-radius:8px;background:#fff;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease;font-family:inherit;font-weight:500;color:#666}.toggle-btn[data-v-e20d0ad5]:hover{border-color:#1a5c4b;color:#1a5c4b}.toggle-btn.active[data-v-e20d0ad5]{border-color:#1a5c4b;background:#1a5c4b;color:#fff}.toggle-btn.active.neg-btn[data-v-e20d0ad5]{border-color:#c0392b;background:#c0392b}.type-dot[data-v-e20d0ad5]{width:8px;height:8px;border-radius:50%;display:inline-block}.type-dot.pos[data-v-e20d0ad5]{background:#1a5c4b}.type-dot.neg[data-v-e20d0ad5]{background:#c0392b}.toggle-btn.active .type-dot.pos[data-v-e20d0ad5],.toggle-btn.active .type-dot.neg[data-v-e20d0ad5]{background:#fff}.modal-overlay[data-v-e20d0ad5]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-e20d0ad5]{background:#fff;border-radius:16px;padding:24px;max-width:420px;width:90%;box-shadow:0 8px 32px #1c3c3224;animation:slideUp-e20d0ad5 .2s cubic-bezier(.16,1,.3,1)}@keyframes slideUp-e20d0ad5{0%{opacity:0;transform:translateY(8px) scale(.98)}}.modal-content h3[data-v-e20d0ad5]{font-size:17px;font-weight:600;margin:0 0 16px;color:#1c1c1e}.modal-form[data-v-e20d0ad5]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-e20d0ad5]{display:flex;flex-direction:column;gap:4px}.form-group label[data-v-e20d0ad5]{font-size:13px;font-weight:500;color:#6e6e73}.fg-muted[data-v-e20d0ad5]{font-weight:400;color:#c7c7cc}.input[data-v-e20d0ad5]{border:1px solid #E5E5EA;border-radius:8px;padding:9px 12px;font-size:14px;color:#1c1c1e;background:#fff;font-family:inherit;transition:border-color .15s ease}.input[data-v-e20d0ad5]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}textarea.input[data-v-e20d0ad5]{resize:vertical;min-height:50px}.modal-actions[data-v-e20d0ad5]{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.icon-field[data-v-e20d0ad5]{display:flex;align-items:center;gap:10px}.icon-preview-btn[data-v-e20d0ad5]{width:48px;height:48px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease;flex-shrink:0}.icon-preview-btn[data-v-e20d0ad5]:hover{transform:scale(1.08)}.icon-preview-text[data-v-e20d0ad5]{font-size:24px;color:#fff;line-height:1}.icon-hint[data-v-e20d0ad5]{font-size:13px;color:#8e8e93}.icon-picker-modal[data-v-e20d0ad5]{max-width:520px}.icon-grid[data-v-e20d0ad5]{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-bottom:16px;max-height:320px;overflow-y:auto;padding:4px}.icon-option[data-v-e20d0ad5]{width:48px;height:48px;border-radius:10px;border:1.5px solid #E5E5EA;background:#fafafa;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s ease;font-family:inherit}.icon-option[data-v-e20d0ad5]:hover{border-color:#1a5c4b;background:#e8f3ef;transform:scale(1.1)}.icon-option.selected[data-v-e20d0ad5]{border-color:#1a5c4b;background:#1a5c4b;transform:scale(1.08)}.import-tip[data-v-e20d0ad5]{font-size:13px;color:#8e8e93;margin:0 0 10px}.import-tip code[data-v-e20d0ad5]{background:#f2f2f7;padding:1px 5px;border-radius:4px;font-size:12px}.file-info[data-v-e20d0ad5]{font-size:12px;color:#1a5c4b;font-weight:500}.import-preview[data-v-e20d0ad5]{margin-top:4px}.preview-title[data-v-e20d0ad5]{font-size:12px;color:#6e6e73;margin-bottom:4px}.preview-body[data-v-e20d0ad5]{background:#f8faf9;border:1px solid #E8EFEC;border-radius:8px;padding:8px 10px;font-size:12px;color:#374151;font-family:inherit;white-space:pre-wrap;word-break:break-all;max-height:130px;overflow-y:auto}@media(max-width:1024px){.three-panel[data-v-e20d0ad5]{grid-template-columns:180px 1fr 1fr}}@media(max-width:768px){.three-panel[data-v-e20d0ad5]{grid-template-columns:1fr}.panel[data-v-e20d0ad5]{min-height:200px}}.center-overlay[data-v-cfdbc43b]{position:fixed;inset:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:600;animation:fadeIn-cfdbc43b .2s ease}.center-panel[data-v-cfdbc43b]{width:94%;max-width:720px;max-height:88vh;min-height:540px;background:#fff;border-radius:18px;box-shadow:0 12px 48px #1c3c322e;display:flex;flex-direction:column;overflow:hidden;animation:slideUp-cfdbc43b .25s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn-cfdbc43b{0%{opacity:0}to{opacity:1}}@keyframes slideUp-cfdbc43b{0%{opacity:0;transform:translateY(14px) scale(.98)}}.center-head[data-v-cfdbc43b]{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #F2F2F7}.center-title[data-v-cfdbc43b]{display:flex;align-items:center;gap:12px}.ch-emoji[data-v-cfdbc43b]{font-size:30px}.center-title h3[data-v-cfdbc43b]{margin:0;font-size:18px;font-weight:700;color:#1c1c1e}.ch-sub[data-v-cfdbc43b]{font-size:12px;color:#8e8e93}.btn-icon[data-v-cfdbc43b]{width:32px;height:32px;border:none;background:#f2f2f7;border-radius:8px;font-size:16px;cursor:pointer;color:#6e6e73;transition:background .15s ease;flex-shrink:0}.btn-icon[data-v-cfdbc43b]:hover{background:#e5e5ea}.tab-bar[data-v-cfdbc43b]{display:flex;gap:6px;padding:10px 18px 0}.tab[data-v-cfdbc43b]{flex:1;padding:10px 6px;border:none;background:transparent;border-radius:10px 10px 0 0;font-size:14px;font-weight:600;color:#8e8e93;cursor:pointer;font-family:inherit;transition:all .15s ease;border-bottom:2.5px solid transparent}.tab[data-v-cfdbc43b]:hover{background:#f7f9f8;color:#1a5c4b}.tab.active[data-v-cfdbc43b]{color:#1a5c4b;background:#e8f3ef;border-bottom-color:#1a5c4b}.center-body[data-v-cfdbc43b]{padding:14px 22px 22px;overflow-y:auto;flex:1}.tab-pane[data-v-cfdbc43b]{animation:paneIn-cfdbc43b .2s ease}@keyframes paneIn-cfdbc43b{0%{opacity:0;transform:translateY(6px)}}.toast[data-v-cfdbc43b]{padding:9px 14px;border-radius:8px;font-size:13px;font-weight:500;margin-bottom:10px}.toast.success[data-v-cfdbc43b]{background:#e8f9ee;color:#1b7f37;border:1px solid #B8E6C8}.toast.error[data-v-cfdbc43b]{background:#ffeded;color:#ff3b30;border:1px solid #FFD0D0}.section-label[data-v-cfdbc43b]{font-size:13px;font-weight:700;color:#1a5c4b;margin:14px 0 8px;padding-left:8px;border-left:3px solid #1A5C4B}.section-label[data-v-cfdbc43b]:first-child{margin-top:0}.empty-mini[data-v-cfdbc43b]{font-size:13px;color:#8e8e93;padding:8px 4px 12px}.loading-row[data-v-cfdbc43b]{display:flex;align-items:center;justify-content:center;padding:40px}.spinner[data-v-cfdbc43b]{width:26px;height:26px;border:3px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-cfdbc43b .8s linear infinite}@keyframes spin-cfdbc43b{to{transform:rotate(360deg)}}.current-card[data-v-cfdbc43b]{display:flex;gap:18px;padding:16px;background:linear-gradient(135deg,#f3faf7,#eaf4f0);border:1px solid #D8EBE3;border-radius:16px;align-items:center}.cur-avatar[data-v-cfdbc43b]{position:relative;width:168px;aspect-ratio:3 / 4;border-radius:18px;overflow:hidden;background:linear-gradient(160deg,#eaf4f0,#dcede6);box-shadow:0 6px 18px #1a5c4b2e;flex-shrink:0;display:flex;align-items:center;justify-content:center}.cur-avatar img[data-v-cfdbc43b]{width:100%;height:100%;object-fit:contain;padding:10px;transition:transform .4s ease}.cur-avatar.upgrading img[data-v-cfdbc43b]{animation:pop-cfdbc43b .6s ease}@keyframes pop-cfdbc43b{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:scale(1)}}.ph[data-v-cfdbc43b]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:30px;color:#c7c7cc;background:#f2f2f7}.cur-info[data-v-cfdbc43b]{flex:1;min-width:0}.cur-name[data-v-cfdbc43b]{font-size:18px;font-weight:700;color:#1c1c1e}.cur-level[data-v-cfdbc43b]{display:inline-block;margin-top:4px;font-size:12px;font-weight:700;color:#d4920a;background:#fdf3dc;padding:2px 10px;border-radius:20px}.cur-desc[data-v-cfdbc43b]{font-size:12px;color:#6e6e73;margin-top:8px;line-height:1.45}.cur-upgrade-hint[data-v-cfdbc43b]{font-size:12px;color:#1b7f37;margin-top:6px}.cur-tip[data-v-cfdbc43b]{font-size:12px;color:#8e8e93;margin-top:6px}.btn-upgrade[data-v-cfdbc43b]{margin-top:10px;padding:9px 16px;border:none;border-radius:9px;background:linear-gradient(135deg,#1a5c4b,#2d7d9a);color:#fff;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s ease;box-shadow:0 3px 10px #1a5c4b40}.btn-upgrade[data-v-cfdbc43b]:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.btn-upgrade[data-v-cfdbc43b]:disabled{background:#c7c7cc;box-shadow:none;cursor:not-allowed}.stars[data-v-cfdbc43b]{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:50%}.star[data-v-cfdbc43b]{position:absolute;top:-20px;font-size:18px;animation:starFall-cfdbc43b 1.1s ease-in forwards}@keyframes starFall-cfdbc43b{0%{transform:translateY(-30px) rotate(0);opacity:0}15%{opacity:1}to{transform:translateY(110px) rotate(360deg);opacity:0}}.grid[data-v-cfdbc43b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px}.cell[data-v-cfdbc43b]{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;background:#fafafa;border:1.5px solid #EFF0F2;border-radius:12px;transition:all .15s ease}.cell[role=button][data-v-cfdbc43b]{cursor:pointer}.cell[role=button][data-v-cfdbc43b]:hover{border-color:#1a5c4b;box-shadow:0 4px 12px #1a5c4b1f;transform:translateY(-2px)}.cell[role=button][data-v-cfdbc43b]:focus-visible{outline:2px solid #1A5C4B;outline-offset:2px}.cell.active[data-v-cfdbc43b]{border-color:#1a5c4b;background:#f1f8f5;box-shadow:0 0 0 2px #1a5c4b inset,0 4px 12px #1a5c4b26}.cell-img[data-v-cfdbc43b]{position:relative;width:60px;height:60px;border-radius:14px;overflow:hidden;background:#f2f2f7;display:flex;align-items:center;justify-content:center}.cell-img img[data-v-cfdbc43b]{width:100%;height:100%;object-fit:contain;padding:4px}.cell-img.gray[data-v-cfdbc43b]{filter:grayscale(1) opacity(.5)}.using-badge[data-v-cfdbc43b]{position:absolute;top:4px;right:4px;background:#1a5c4b;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px;box-shadow:0 2px 4px #1a5c4b4d}.cell-name[data-v-cfdbc43b]{font-size:12px;font-weight:600;color:#1c1c1e;text-align:center;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-meta[data-v-cfdbc43b]{font-size:11px;color:#8e8e93}.cell-action[data-v-cfdbc43b]{font-size:11px;font-weight:700;color:#1a5c4b;background:#e8f3ef;border-radius:6px;padding:3px 10px;margin-top:2px}.cell-action.on[data-v-cfdbc43b]{color:#fff;background:#1a5c4b}.switch-hint[data-v-cfdbc43b]{font-size:12px;color:#1a5c4b;background:#e8f3ef;display:inline-block;padding:4px 10px;border-radius:8px;margin-bottom:8px}.cell-progress[data-v-cfdbc43b]{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:-2px}.prog-track[data-v-cfdbc43b]{width:100%;height:5px;background:#e5e5ea;border-radius:4px;overflow:hidden}.prog-fill[data-v-cfdbc43b]{height:100%;background:linear-gradient(90deg,#1a5c4b,#2d7d9a);border-radius:4px;transition:width .3s ease}.prog-text[data-v-cfdbc43b]{font-size:10px;color:#8e8e93;line-height:1}.cell-maxed[data-v-cfdbc43b]{font-size:10px;color:#d4920a;font-weight:600;line-height:1;padding:2px 0}.btn-claim[data-v-cfdbc43b]{padding:5px 12px;border:none;border-radius:7px;background:#c07f0a;color:#fff;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;text-shadow:0 1px 1px rgba(0,0,0,.22)}.btn-claim[data-v-cfdbc43b]:hover{filter:brightness(1.06)}.lock-tip[data-v-cfdbc43b]{font-size:11px;color:#c0392b;font-weight:600}.medal-cell[data-v-cfdbc43b]{position:relative}.medal-status[data-v-cfdbc43b]{font-size:10px;font-weight:700;padding:1px 7px;border-radius:20px}.st-pending[data-v-cfdbc43b]{color:#856404;background:#fff9e6}.st-approved[data-v-cfdbc43b]{color:#1b7f37;background:#e8f9ee}.st-rejected[data-v-cfdbc43b]{color:#c62828;background:#ffeded}.medal-grid[data-v-cfdbc43b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px}.medal-card[data-v-cfdbc43b]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 12px 14px;border-radius:16px;transition:all .2s ease;position:relative}.medal-earned[data-v-cfdbc43b]{background:linear-gradient(145deg,#f0fdf4,#dcfce7);border:1.5px solid #BBF7D0;box-shadow:0 4px 14px #16a34a1a}.medal-pending[data-v-cfdbc43b]{background:linear-gradient(145deg,#fffbeb,#fef3c7);border:1.5px solid #FDE68A;box-shadow:0 4px 14px #d9770614}.medal-img-wrap[data-v-cfdbc43b]{position:relative;width:80px;height:80px;border-radius:50%;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px #00000014;flex-shrink:0}.medal-img[data-v-cfdbc43b]{width:100%;height:100%;object-fit:contain;transition:filter .2s ease}.medal-img.gray[data-v-cfdbc43b]{filter:grayscale(1) opacity(.4)}.medal-lock[data-v-cfdbc43b]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;background:#fff6}.medal-ph[data-v-cfdbc43b]{font-size:36px}.medal-name[data-v-cfdbc43b]{font-size:14px;font-weight:700;color:#1c1c1e;text-align:center;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.medal-badge[data-v-cfdbc43b]{font-size:11px;font-weight:700;padding:3px 12px;border-radius:20px}.btn-redeem[data-v-cfdbc43b]{padding:5px 14px;border:none;border-radius:8px;background:#1a5c4b;color:#fff;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s ease}.btn-redeem[data-v-cfdbc43b]:hover:not(:disabled){background:#0f3d32}.btn-redeem[data-v-cfdbc43b]:disabled{background:#c7c7cc;cursor:not-allowed}.orders[data-v-cfdbc43b]{display:flex;flex-direction:column;gap:8px}.order-item[data-v-cfdbc43b]{padding:10px 12px;border-radius:10px;background:#fafafa;border:1px solid #EFF0F2}.order-main[data-v-cfdbc43b]{display:flex;justify-content:space-between;align-items:center}.order-prize[data-v-cfdbc43b]{font-size:13px;font-weight:700;color:#1c1c1e}.order-points[data-v-cfdbc43b]{font-size:13px;font-weight:800;color:#d4920a}.order-meta[data-v-cfdbc43b]{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.order-who[data-v-cfdbc43b]{font-size:11px;font-weight:600;color:#1a5c4b;background:#e8f3ef;padding:1px 7px;border-radius:20px}.order-status[data-v-cfdbc43b]{font-size:11px;color:#6e6e73}.os-CONFIRMED[data-v-cfdbc43b]{color:#1b7f37}.os-PENDING[data-v-cfdbc43b]{color:#856404}.os-CANCELLED[data-v-cfdbc43b]{color:#c62828}.order-time[data-v-cfdbc43b]{font-size:11px;color:#8e8e93;margin-left:auto}.avatar-main-row[data-v-cfdbc43b]{display:flex;gap:24px;align-items:stretch}.current-panel[data-v-cfdbc43b]{flex:0 0 280px}.owned-panel[data-v-cfdbc43b]{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.owned-top[data-v-cfdbc43b]{flex:1}.owned-bottom .grid[data-v-cfdbc43b]{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.owned-bottom .cell[data-v-cfdbc43b]{padding:12px 8px}.owned-bottom .cell-img[data-v-cfdbc43b]{width:68px;height:68px}.owned-bottom .btn-claim[data-v-cfdbc43b],.owned-bottom .lock-tip[data-v-cfdbc43b]{white-space:nowrap}.current-card-vertical[data-v-cfdbc43b]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:linear-gradient(135deg,#f3faf7,#eaf4f0);border:1px solid #D8EBE3;border-radius:16px}.cv-image[data-v-cfdbc43b]{position:relative;width:200px;aspect-ratio:3 / 4;border-radius:14px;overflow:hidden;background:#f2f2f7;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #1a5c4b26}.cv-image img[data-v-cfdbc43b]{width:100%;height:100%;object-fit:contain;padding:6px;transition:transform .4s ease}.cv-image.upgrading img[data-v-cfdbc43b]{animation:pop-cfdbc43b .6s ease}.cv-name[data-v-cfdbc43b]{font-size:16px;font-weight:700;color:#1c1c1e;text-align:center}.cv-level[data-v-cfdbc43b]{font-size:12px;font-weight:700;color:#d4920a;background:#fdf3dc;padding:2px 12px;border-radius:20px}.cv-progress[data-v-cfdbc43b]{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;padding:0 4px}.cv-maxed[data-v-cfdbc43b]{font-size:11px;color:#d4920a;font-weight:600}.cv-tip[data-v-cfdbc43b]{font-size:12px;color:#8e8e93;text-align:center}.owned-grid[data-v-cfdbc43b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:14px 10px}.owned-item[data-v-cfdbc43b]{display:flex;flex-direction:column;align-items:center;gap:5px}.owned-circle[data-v-cfdbc43b]{width:60px;height:60px;border-radius:50%;overflow:hidden;background:#f2f2f7;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;border:2px solid #E5E5EA;display:flex;align-items:center;justify-content:center}.owned-circle[data-v-cfdbc43b]:hover{transform:scale(1.08);box-shadow:0 4px 12px #1a5c4b33;border-color:#1a5c4b}.owned-circle img[data-v-cfdbc43b]{width:100%;height:100%;object-fit:cover}.owned-name[data-v-cfdbc43b]{font-size:11px;font-weight:600;color:#1c1c1e;text-align:center;max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.owned-btn[data-v-cfdbc43b]{padding:4px 10px;border:1.5px solid #1A5C4B;border-radius:8px;background:transparent;color:#1a5c4b;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .12s ease;white-space:nowrap}.owned-btn[data-v-cfdbc43b]:hover{background:#e8f3ef}.owned-btn.on[data-v-cfdbc43b]{background:#1a5c4b;color:#fff;border-color:#1a5c4b}.owned-btn.on[data-v-cfdbc43b]:hover{background:#0f3d32}.preview-overlay[data-v-cfdbc43b]{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:800;animation:fadeIn-cfdbc43b .2s ease}.preview-content[data-v-cfdbc43b]{position:relative;max-width:80vw;max-height:80vh;animation:scaleIn-cfdbc43b .25s cubic-bezier(.16,1,.3,1)}.preview-image[data-v-cfdbc43b]{max-width:100%;max-height:80vh;border-radius:16px;box-shadow:0 8px 40px #0000004d}.preview-close[data-v-cfdbc43b]{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border:none;border-radius:50%;background:#fff;color:#1c1c1e;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026;transition:all .15s ease}.preview-close[data-v-cfdbc43b]:hover{transform:scale(1.1);background:#ffeded;color:#ef4444}@keyframes scaleIn-cfdbc43b{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.evo-overlay[data-v-cfdbc43b]{position:fixed;inset:0;background:#0a0e1ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:700;animation:fadeIn-cfdbc43b .2s ease}.evo-content[data-v-cfdbc43b]{width:92%;max-width:520px;max-height:88vh;background:#111827;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000080;animation:scaleIn-cfdbc43b .25s cubic-bezier(.16,1,.3,1)}.evo-header[data-v-cfdbc43b]{position:relative;padding:20px 20px 12px;display:flex;flex-direction:column;align-items:center;border-bottom:1px solid #1f2937}.evo-title[data-v-cfdbc43b]{font-size:22px;font-weight:700;letter-spacing:2px;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.evo-subtitle[data-v-cfdbc43b]{font-size:12px;color:#64748b;margin-top:4px}.evo-close[data-v-cfdbc43b]{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff1a;color:#94a3b8;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.evo-close[data-v-cfdbc43b]:hover{background:#ffffff38;color:#e2e8f0;transform:scale(1.1)}.evo-grid[data-v-cfdbc43b]{padding:16px 18px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;overflow-y:auto;-webkit-overflow-scrolling:touch}.evo-card[data-v-cfdbc43b]{background:#1a1f33;border-radius:14px;padding:14px;display:flex;flex-direction:column;align-items:center;border:1px solid #1f2937;transition:transform .2s ease,box-shadow .2s ease}.evo-card[data-v-cfdbc43b]:hover{transform:translateY(-4px);box-shadow:0 8px 24px #fbbf241f}.evo-card-img-wrap[data-v-cfdbc43b]{width:100%;aspect-ratio:3 / 4;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center}.evo-card-img[data-v-cfdbc43b]{width:100%;height:100%;object-fit:contain}.evo-card-placeholder[data-v-cfdbc43b]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#64748b;background:#0f172a}.evo-card-name[data-v-cfdbc43b]{margin-top:10px;font-size:15px;font-weight:700;letter-spacing:1px;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.evo-card-tags[data-v-cfdbc43b]{display:flex;gap:6px;margin-top:4px}.evo-tag[data-v-cfdbc43b]{font-size:10px;padding:2px 7px;border-radius:6px;color:#94a3b8;border:1px solid #334155}.evo-tag-init[data-v-cfdbc43b]{color:#64748b}.evo-card-desc[data-v-cfdbc43b]{font-size:11px;color:#64748b;text-align:center;margin:6px 0 0;line-height:1.4;overflow:hidden;text-overflow:ellipsis}.eval-page[data-v-c2648c6f]{max-width:1200px}.title-row[data-v-c2648c6f]{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.title-row h2[data-v-c2648c6f]{font-size:22px;font-weight:600;color:#1c1c1e;margin:0;white-space:nowrap}.filter-inline[data-v-c2648c6f]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.filter-count[data-v-c2648c6f]{font-size:13px;color:#8e8e93;white-space:nowrap}.btn-download[data-v-c2648c6f]{padding:7px 14px;border:1.5px solid #1A5C4B;border-radius:8px;background:#1a5c4b;color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.btn-download[data-v-c2648c6f]:hover{background:#0f3d32}.btn-download[data-v-c2648c6f]:disabled{background:#c7c7cc;border-color:#c7c7cc;cursor:not-allowed}.spinner-mini[data-v-c2648c6f]{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-c2648c6f .8s linear infinite;display:inline-block}.input[data-v-c2648c6f]{border:1px solid #E5E5EA;border-radius:8px;padding:10px 14px;font-size:14px;color:#1c1c1e;background:#fff;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.input[data-v-c2648c6f]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.input-sm[data-v-c2648c6f]{padding:7px 12px;font-size:13px}.btn-outline-sm[data-v-c2648c6f]{padding:7px 14px;border:1.5px solid #1A5C4B;border-radius:8px;background:transparent;color:#1a5c4b;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease}.btn-outline-sm[data-v-c2648c6f]:hover{background:#e8f3ef}.btn[data-v-c2648c6f]{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn-sm[data-v-c2648c6f]{padding:7px 16px;font-size:13px}.btn-primary[data-v-c2648c6f]{background:#1a5c4b;color:#fff}.btn-primary[data-v-c2648c6f]:hover{background:#0f3d32}.btn-ghost[data-v-c2648c6f]{background:transparent;color:#1a5c4b}.btn-ghost[data-v-c2648c6f]:hover{background:#e8f3ef}.toast[data-v-c2648c6f]{padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;margin-bottom:12px;animation:fadeIn-c2648c6f .2s ease}.toast.success[data-v-c2648c6f]{background:#e8f9ee;color:#1b7f37;border:1px solid #B8E6C8}.toast.error[data-v-c2648c6f]{background:#ffeded;color:#ff3b30;border:1px solid #FFD0D0}@keyframes fadeIn-c2648c6f{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.avatar-grid[data-v-c2648c6f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:14px}.avatar-card[data-v-c2648c6f]{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px 12px;background:#fff;border:1.5px solid #E5E5EA;border-radius:14px;cursor:pointer;transition:all .18s ease;user-select:none}.avatar-card[data-v-c2648c6f]:hover{border-color:#1a5c4b;box-shadow:0 4px 16px #1a5c4b1a;transform:translateY(-2px)}.avatar-card.active[data-v-c2648c6f]{border-color:#1a5c4b;background:#e8f3ef;box-shadow:0 0 0 3px #1a5c4b2e}.avatar-card.selected[data-v-c2648c6f]{border-color:#1a5c4b;background:#e8f3ef}.select-check[data-v-c2648c6f]{position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:50%;border:2px solid #C7C7CC;background:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;transition:all .15s ease;z-index:1}.select-check.checked[data-v-c2648c6f]{border-color:#1a5c4b;background:#1a5c4b}.avatar-photo[data-v-c2648c6f]{width:64px;height:64px;border-radius:50%;overflow:hidden;background:#f2f2f7;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #00000014}.photo-img[data-v-c2648c6f]{width:100%;height:100%;object-fit:cover}.avatar-name[data-v-c2648c6f]{font-size:13px;font-weight:600;color:#1c1c1e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px;text-align:center}.pts-badge[data-v-c2648c6f]{display:flex;align-items:center;gap:2px;padding:4px 10px;border-radius:20px;border:1.5px solid;font-size:13px;font-weight:700;line-height:1;box-shadow:0 1px 4px #00000014;transition:all .15s ease;cursor:pointer}.pts-badge[data-v-c2648c6f]:hover{filter:brightness(.95);transform:scale(1.05)}.pts-icon[data-v-c2648c6f]{font-size:11px;opacity:.7}.pts-num[data-v-c2648c6f]{font-size:14px;font-weight:800;letter-spacing:-.5px}.pts-unit[data-v-c2648c6f]{font-size:11px;opacity:.7}.loading-row[data-v-c2648c6f],.empty-row[data-v-c2648c6f]{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#8e8e93}.spinner[data-v-c2648c6f]{width:28px;height:28px;border:3px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-c2648c6f .8s linear infinite}@keyframes spin-c2648c6f{to{transform:rotate(360deg)}}.modal-overlay[data-v-c2648c6f]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-c2648c6f]{background:#fff;border-radius:16px;box-shadow:0 8px 32px #1c3c3224;animation:slideUp-c2648c6f .25s cubic-bezier(.16,1,.3,1)}@keyframes slideUp-c2648c6f{0%{opacity:0;transform:translateY(12px) scale(.98)}}.btn-icon[data-v-c2648c6f]{width:32px;height:32px;border:none;background:#f2f2f7;border-radius:8px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6e6e73;transition:background .15s ease;flex-shrink:0}.btn-icon[data-v-c2648c6f]:hover{background:#e5e5ea}.cat-tab-add[data-v-c2648c6f]{background:#e8f3ef;color:#1a5c4b;font-size:16px;font-weight:700;padding:4px 14px}.cat-tab-add[data-v-c2648c6f]:hover{background:#d5e8e0}.form-group[data-v-c2648c6f]{margin-bottom:14px}.form-label[data-v-c2648c6f]{display:block;font-size:13px;color:#6e6e73;margin-bottom:6px;font-weight:600}.opt-row[data-v-c2648c6f]{display:flex;gap:8px}.opt-btn[data-v-c2648c6f]{flex:1;padding:8px 0;border:1px solid #E5E5EA;border-radius:8px;background:#fff;color:#6e6e73;font-size:14px;cursor:pointer;transition:all .15s}.opt-btn.active[data-v-c2648c6f]{background:#1a5c4b;border-color:#1a5c4b;color:#fff;font-weight:600}.form-actions[data-v-c2648c6f]{display:flex;gap:10px;justify-content:flex-end}.btn-outline[data-v-c2648c6f]{background:#fff;border:1px solid #E5E5EA;color:#6e6e73}.btn-outline[data-v-c2648c6f]:hover{border-color:#1a5c4b;color:#1a5c4b}.preview-overlay[data-v-c2648c6f]{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:500;animation:fadeIn-c2648c6f .2s ease}.preview-content[data-v-c2648c6f]{position:relative;max-width:80vw;max-height:80vh;animation:scaleIn-c2648c6f .25s cubic-bezier(.16,1,.3,1)}.preview-image[data-v-c2648c6f]{max-width:100%;max-height:80vh;border-radius:16px;box-shadow:0 8px 40px #0000004d}.preview-close[data-v-c2648c6f]{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border:none;border-radius:50%;background:#fff;color:#1c1c1e;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026;transition:all .15s ease}.preview-close[data-v-c2648c6f]:hover{transform:scale(1.1);background:#ffeded;color:#ef4444}@keyframes scaleIn-c2648c6f{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.eval-panel[data-v-c2648c6f]{max-width:720px;width:94%;height:78vh;display:flex;flex-direction:column;overflow:hidden;padding:24px}.panel-items[data-v-c2648c6f]{flex:1;min-height:0;overflow-y:auto;padding-right:4px}.panel-header[data-v-c2648c6f]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #F2F2F7}.panel-left[data-v-c2648c6f]{display:flex;align-items:flex-start;gap:12px;flex:1}.panel-avatar[data-v-c2648c6f]{width:52px;height:52px;border-radius:50%;overflow:hidden;background:#f2f2f7;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.panel-avatar[data-v-c2648c6f]:hover{transform:scale(1.06);box-shadow:0 2px 10px #1a5c4b40}.panel-avatar-img[data-v-c2648c6f]{width:100%;height:100%;object-fit:cover}.panel-info[data-v-c2648c6f]{flex:1;min-width:0}.panel-info h3[data-v-c2648c6f]{font-size:18px;font-weight:600;margin:0 0 2px;color:#1c1c1e}.panel-meta[data-v-c2648c6f]{font-size:13px;color:#8e8e93}.panel-stats[data-v-c2648c6f]{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.stat-chip[data-v-c2648c6f]{display:flex;align-items:center;gap:3px;padding:4px 8px;border-radius:8px;font-size:12px;font-weight:600;border:1px solid}.stat-label[data-v-c2648c6f]{opacity:.7;font-size:11px}.stat-val[data-v-c2648c6f]{font-size:13px;font-weight:800}.total-chip[data-v-c2648c6f]{color:#856404;background:#fff9e6;border-color:#ffd54f}.add-chip[data-v-c2648c6f]{color:#155724;background:#e8f5e9;border-color:#4caf50}.sub-chip[data-v-c2648c6f]{color:#721c24;background:#ffeded;border-color:#ffcdd2}.sub-chip .stat-val[data-v-c2648c6f]{color:#c62828}.multi-stu-avatars[data-v-c2648c6f]{display:flex;align-items:center}.mini-avatar[data-v-c2648c6f]{width:44px;height:44px;border-radius:50%;overflow:hidden;border:2.5px solid #FFF;background:#f2f2f7;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #0000001a}.mini-avatar img[data-v-c2648c6f]{width:100%;height:100%;object-fit:cover}.mini-avatar.more-count[data-v-c2648c6f]{background:#1a5c4b;color:#fff;font-size:12px;font-weight:700}.cat-tabs[data-v-c2648c6f]{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;margin-bottom:4px;flex-shrink:0;scrollbar-width:none}.cat-tabs[data-v-c2648c6f]::-webkit-scrollbar{display:none}.cat-tab[data-v-c2648c6f]{flex-shrink:0;padding:8px 16px;border-radius:999rpx;border-radius:999px;font-size:13px;color:#6e6e73;background:#f2f2f7;cursor:pointer;transition:all .15s ease;white-space:nowrap}.cat-tab[data-v-c2648c6f]:hover{background:#e5eae8}.cat-tab.active[data-v-c2648c6f]{background:#1a5c4b;color:#fff;font-weight:700;box-shadow:0 2px 8px #1a5c4b40}.categories-circles[data-v-c2648c6f]{display:flex;flex-wrap:wrap;gap:16px 20px;justify-content:center;padding:8px 0 14px;max-height:300px;overflow-y:auto}.cat-circle-wrap[data-v-c2648c6f]{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;width:88px;transition:transform .15s ease}.cat-circle-wrap[data-v-c2648c6f]:hover{transform:scale(1.07)}.cat-circle.lg[data-v-c2648c6f]{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #0000002e;transition:box-shadow .15s ease}.cat-circle-wrap:hover .cat-circle[data-v-c2648c6f]{box-shadow:0 6px 20px #0000003d}.cat-emoji[data-v-c2648c6f]{font-size:30px;line-height:1}.cat-label[data-v-c2648c6f]{font-size:13px;font-weight:700;text-align:center;max-width:88px}.cat-count[data-v-c2648c6f]{font-size:11px;color:#8e8e93;text-align:center}.dimensions-circles[data-v-c2648c6f]{display:flex;flex-wrap:wrap;gap:14px 18px;justify-content:center;padding:8px 0 14px;max-height:300px;overflow-y:auto}.dim-circle-wrap[data-v-c2648c6f]{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;width:82px;transition:transform .15s ease}.dim-circle-wrap[data-v-c2648c6f]:hover{transform:scale(1.06)}.dim-circle[data-v-c2648c6f]{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000029;transition:box-shadow .15s ease}.dim-circle-wrap:hover .dim-circle[data-v-c2648c6f]{box-shadow:0 6px 18px #00000038}.back-item[data-v-c2648c6f]{opacity:.65}.back-item[data-v-c2648c6f]:hover{opacity:1}.back-circle[data-v-c2648c6f]{background:#e5e5ea!important;color:#48484a}.dim-emoji[data-v-c2648c6f]{font-size:26px;line-height:1}.dim-label[data-v-c2648c6f]{font-size:12px;font-weight:700;text-align:center;max-width:82px;line-height:1.3}.dim-count[data-v-c2648c6f]{font-size:10px;color:#8e8e93;text-align:center}.eval-section-header[data-v-c2648c6f]{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;margin:8px 0 6px;padding:4px 8px;border-radius:6px}.add-header[data-v-c2648c6f]{color:#155724;background:#e8f5e9}.sub-header[data-v-c2648c6f]{color:#721c24;background:#ffeded}.section-dot[data-v-c2648c6f]{width:8px;height:8px;border-radius:50%}.add-dot[data-v-c2648c6f]{background:#28a745}.sub-dot[data-v-c2648c6f]{background:#ef5350}.items-circles[data-v-c2648c6f]{display:flex;flex-wrap:wrap;gap:12px 14px;justify-content:flex-start;padding:4px 0 6px}.item-circle-wrap[data-v-c2648c6f]{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:76px;transition:transform .15s ease}.item-circle-wrap[data-v-c2648c6f]:hover{transform:scale(1.05)}.item-circle-wrap.selected .item-circle[data-v-c2648c6f]{box-shadow:0 0 0 3px #fff,0 4px 12px #00000040}.item-circle-wrap.clicked .item-circle[data-v-c2648c6f]{animation:itemPop-c2648c6f .5s cubic-bezier(.16,1,.3,1)}@keyframes itemPop-c2648c6f{0%{transform:scale(1)}35%{transform:scale(1.3) rotate(-3deg)}60%{transform:scale(.92)}to{transform:scale(1)}}.float-score[data-v-c2648c6f]{position:absolute;top:-10px;right:-6px;font-size:17px;font-weight:900;color:#1b7f37;pointer-events:none;animation:floatUp-c2648c6f .9s ease-out forwards;text-shadow:0 2px 6px rgba(27,127,55,.35);z-index:9}.float-score.neg[data-v-c2648c6f]{color:#e74c3c;text-shadow:0 2px 6px rgba(231,76,60,.35)}@keyframes floatUp-c2648c6f{0%{opacity:0;transform:translateY(6px) scale(.7)}25%{opacity:1;transform:translateY(-6px) scale(1.15)}to{opacity:0;transform:translateY(-34px) scale(1)}}.item-circle[data-v-c2648c6f]{position:relative;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 10px #00000026;transition:all .15s ease}.item-circle[data-v-c2648c6f]:hover{box-shadow:0 4px 14px #0003}.item-emoji[data-v-c2648c6f]{font-size:24px;line-height:1}.item-score-ring[data-v-c2648c6f]{position:absolute;bottom:-4px;right:-4px;background:#1a5c4b;color:#fff;font-size:9px;font-weight:800;padding:2px 5px;border-radius:8px;border:2px solid #FFF;transition:all .15s}.item-score-ring.active[data-v-c2648c6f]{background:#ff6b35;transform:scale(1.1)}.neg-ring[data-v-c2648c6f]{background:#c0392b}.neg-ring.active[data-v-c2648c6f]{background:#ff3b30}.item-label[data-v-c2648c6f]{font-size:11px;font-weight:600;text-align:center;max-width:72px;color:#3a3a3c;line-height:1.3;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-direct-eval[data-v-c2648c6f]{padding:3px 8px;border-radius:6px;font-size:10px;font-weight:700;cursor:pointer;border:none;color:#fff;font-family:inherit;transition:all .12s ease}.add-eval[data-v-c2648c6f]{background:#28a745}.add-eval[data-v-c2648c6f]:hover{background:#1b7f37}.sub-eval[data-v-c2648c6f]{background:#e53935}.sub-eval[data-v-c2648c6f]:hover{background:#c62828}.eval-note[data-v-c2648c6f]{margin:12px 0 0}.eval-note .input[data-v-c2648c6f]{width:100%}.eval-footer[data-v-c2648c6f]{display:flex;justify-content:space-between;align-items:center;padding-top:10px;margin-top:8px;border-top:1px solid #F2F2F7}.eval-count[data-v-c2648c6f]{font-size:13px;color:#8e8e93}.eval-actions[data-v-c2648c6f]{display:flex;gap:8px}.records-modal[data-v-c2648c6f]{max-width:560px;width:94%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;padding:0}.records-header[data-v-c2648c6f]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #F2F2F7;flex-shrink:0}.records-title-row[data-v-c2648c6f]{display:flex;align-items:center;gap:12px}.records-student-avatar[data-v-c2648c6f]{width:44px;height:44px;border-radius:50%;overflow:hidden;background:#f2f2f7;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.records-student-avatar[data-v-c2648c6f]:hover{transform:scale(1.08);box-shadow:0 2px 10px #1a5c4b40}.records-student-avatar img[data-v-c2648c6f]{width:100%;height:100%;object-fit:cover}.records-header h3[data-v-c2648c6f]{font-size:17px;font-weight:600;margin:0 0 2px;color:#1c1c1e}.rec-student-no[data-v-c2648c6f]{font-size:12px;color:#8e8e93}.rec-summary[data-v-c2648c6f]{display:flex;gap:8px;padding:12px 20px;background:#fafafa;border-bottom:1px solid #F0F0F5;flex-shrink:0}.rec-sum-item[data-v-c2648c6f]{display:flex;align-items:center;gap:8px;flex:1;padding:8px 10px;border-radius:10px;border:1px solid}.rec-total[data-v-c2648c6f]{background:#fff9e6;border-color:#ffd54f}.rec-add[data-v-c2648c6f]{background:#e8f5e9;border-color:#a5d6a7}.rec-sub[data-v-c2648c6f]{background:#ffeded;border-color:#ffcdd2}.rec-sum-icon[data-v-c2648c6f]{font-size:18px;line-height:1}.rec-sum-num[data-v-c2648c6f]{font-size:18px;font-weight:800;line-height:1}.add-num[data-v-c2648c6f]{color:#28a745}.sub-num[data-v-c2648c6f]{color:#ef5350}.rec-sum-label[data-v-c2648c6f]{font-size:10px;opacity:.7;margin-top:1px}.records-body[data-v-c2648c6f]{overflow-y:auto;flex:1}.rec-section[data-v-c2648c6f]{padding:12px 20px}.rec-section-title[data-v-c2648c6f]{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#1c1c1e;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #F0F0F5}.rec-dot[data-v-c2648c6f]{width:8px;height:8px;border-radius:50%;background:#1a5c4b}.rec-count[data-v-c2648c6f]{margin-left:auto;font-size:11px;font-weight:600;background:#e8f5e9;color:#155724;padding:1px 6px;border-radius:8px}.rec-count-sub[data-v-c2648c6f]{background:#ffeded;color:#721c24}.records-list[data-v-c2648c6f]{display:flex;flex-direction:column;gap:6px}.record-item[data-v-c2648c6f]{display:flex;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid #F0F0F5}.rec-add-item[data-v-c2648c6f]{background:#fafffe;border-left:3px solid #4CAF50}.rec-sub-item[data-v-c2648c6f]{background:#fffefe;border-left:3px solid #EF5350}.record-score[data-v-c2648c6f]{font-size:16px;font-weight:800;min-width:40px;text-align:center;padding-top:2px}.add-score[data-v-c2648c6f]{color:#28a745}.sub-score[data-v-c2648c6f]{color:#ef5350}.record-body[data-v-c2648c6f]{flex:1;min-width:0}.record-path[data-v-c2648c6f]{display:flex;align-items:center;gap:2px;flex-wrap:wrap;font-size:12px;font-weight:600;color:#1c1c1e}.record-cat[data-v-c2648c6f]{color:#8e8e93;font-weight:400}.record-arrow[data-v-c2648c6f]{color:#c7c7cc}.record-dim[data-v-c2648c6f]{color:#6e6e73;font-weight:400}.record-item-title[data-v-c2648c6f]{color:#1c1c1e}.record-meta[data-v-c2648c6f]{font-size:10px;color:#8e8e93;margin-top:3px}.record-note[data-v-c2648c6f]{font-size:12px;color:#6e6e73;margin-top:4px;font-style:italic;padding:4px 8px;background:#0000000a;border-radius:4px}.record-chip[data-v-c2648c6f]{display:inline-block;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;margin-right:4px}.chip-eval[data-v-c2648c6f]{color:#1b7f37;background:#e8f9ee}.chip-redeem[data-v-c2648c6f]{color:#c62828;background:#ffeded}.chip-claim[data-v-c2648c6f]{color:#856404;background:#fff9e6}.chip-upgrade[data-v-c2648c6f]{color:#6e6e73;background:#e8e8ed}[data-v-26b73e9a]:root{--c-primary: #4F46E5;--c-primary-light: #818CF8;--c-accent: #F97316;--c-accent-light: #FDBA74;--c-pink: #EC4899;--c-teal: #10B981;--c-blue: #3B82F6;--c-red: #EF4444;--c-amber: #F59E0B;--c-bg: #EEF2FF;--c-card: #FFFFFF;--c-text: #1E1B4B;--c-text-secondary: #4B5563;--c-border: #E2E8F0;--shadow-sm: 0 2px 8px rgba(79,70,229,.08);--shadow-md: 0 4px 16px rgba(79,70,229,.14);--shadow-lg: 0 8px 24px rgba(79,70,229,.18)}.avatar-page[data-v-26b73e9a]{max-width:1000px;background:var(--c-bg);min-height:calc(100vh - 100px);padding:2px 20px 16px;margin-top:-20px;border-radius:20px}.page-header[data-v-26b73e9a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.page-header h2[data-v-26b73e9a]{font-size:20px;font-weight:700;margin:0;background:linear-gradient(135deg,var(--c-primary),var(--c-pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tabs[data-v-26b73e9a]{display:flex;gap:4px;margin-bottom:10px;background:#fff9;padding:4px;border-radius:14px;backdrop-filter:blur(8px)}.tab[data-v-26b73e9a]{flex:1;padding:9px 16px;border:none;border-radius:11px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;background:transparent;color:var(--c-text-secondary);transition:all .2s ease}.tab[data-v-26b73e9a]:hover{color:var(--c-text);background:#4f46e50f}.tab.active[data-v-26b73e9a]{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-light));color:#fff;box-shadow:0 2px 8px #4f46e54d}.toast[data-v-26b73e9a]{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;margin-bottom:8px;animation:fadeIn-26b73e9a .2s ease}.toast.success[data-v-26b73e9a]{background:#e8f9ee;color:#10b981;border:1px solid #B8E6C8}.toast.error[data-v-26b73e9a]{background:#ffeded;color:var(--c-red);border:1px solid #FFD0D0}@keyframes fadeIn-26b73e9a{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.loading-state[data-v-26b73e9a]{display:flex;justify-content:center;padding:40px}.spinner[data-v-26b73e9a]{width:28px;height:28px;border:3px solid rgba(79,70,229,.15);border-top-color:var(--c-primary);border-radius:50%;animation:spin-26b73e9a .7s linear infinite}@keyframes spin-26b73e9a{to{transform:rotate(360deg)}}.empty-row[data-v-26b73e9a]{text-align:center;padding:30px;color:var(--c-text-secondary);font-size:13px}.empty-state[data-v-26b73e9a]{text-align:center;padding:40px;color:var(--c-text-secondary)}.points-bar[data-v-26b73e9a]{display:flex;align-items:center;gap:0;background:#fff;border-radius:14px;padding:10px 8px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.points-item[data-v-26b73e9a]{flex:1;text-align:center;padding:2px 0}.points-label[data-v-26b73e9a]{font-size:11px;color:var(--c-text-secondary);display:block;margin-bottom:1px}.points-value[data-v-26b73e9a]{font-size:22px;font-weight:800;background:linear-gradient(135deg,var(--c-primary),var(--c-primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.points-value.used[data-v-26b73e9a]{background:linear-gradient(135deg,var(--c-accent),#F39C12);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.points-value.available[data-v-26b73e9a]{background:linear-gradient(135deg,var(--c-teal),#55EFC4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.points-divider[data-v-26b73e9a]{width:1px;height:28px;background:var(--c-border)}.section[data-v-26b73e9a]{margin-bottom:16px}.section-title[data-v-26b73e9a]{font-size:14px;font-weight:700;color:var(--c-text);margin:0 0 10px;display:flex;align-items:center;gap:6px}.section-title[data-v-26b73e9a]:before{content:"";display:inline-block;width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--c-primary),var(--c-pink))}.card-grid[data-v-26b73e9a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.card[data-v-26b73e9a]{background:#fff;border-radius:14px;padding:12px 10px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:var(--shadow-sm);transition:all .2s ease;position:relative;overflow:hidden}.card[data-v-26b73e9a]:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-primary),var(--c-pink),var(--c-accent));opacity:.6}.card[data-v-26b73e9a]:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.card-visual[data-v-26b73e9a]{position:relative;margin-bottom:2px}.card-img[data-v-26b73e9a]{width:64px;height:64px;border-radius:16px;object-fit:cover;border:2px solid rgba(79,70,229,.1)}.card-placeholder[data-v-26b73e9a]{width:64px;height:64px;border-radius:16px;color:#fff;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center}.card-name[data-v-26b73e9a]{font-size:14px;font-weight:700;color:var(--c-text)}.card-hint[data-v-26b73e9a]{font-size:10px;color:var(--c-text-secondary)}.card-max-text[data-v-26b73e9a]{font-size:10px;color:#b2bec3}.owned-level-badge[data-v-26b73e9a]{position:absolute;top:-3px;right:-3px;background:linear-gradient(135deg,var(--c-accent),#F39C12);color:#fff;font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;box-shadow:0 2px 4px #ff9f434d}.shop-grid[data-v-26b73e9a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.shop-card[data-v-26b73e9a]{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);transition:all .2s ease;display:flex;flex-direction:column}.shop-card[data-v-26b73e9a]:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.shop-card-visual[data-v-26b73e9a]{aspect-ratio:3/2;overflow:hidden;background:linear-gradient(135deg,#eef2ff,#e0e7ff);display:flex;align-items:center;justify-content:center}.shop-card-img[data-v-26b73e9a]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.shop-card:hover .shop-card-img[data-v-26b73e9a]{transform:scale(1.05)}.shop-card-placeholder[data-v-26b73e9a]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700;color:#4f46e533}.shop-card-body[data-v-26b73e9a]{padding:10px 12px 6px;flex:1;display:flex;flex-direction:column;gap:3px}.shop-card-name[data-v-26b73e9a]{font-size:15px;font-weight:700;color:var(--c-text)}.shop-card-meta[data-v-26b73e9a]{font-size:10px;color:var(--c-text-secondary);display:flex;gap:4px}.shop-card-desc[data-v-26b73e9a]{font-size:11px;color:var(--c-text-secondary);margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.shop-card-stats[data-v-26b73e9a]{display:flex;gap:6px;margin-top:2px}.shop-card-stats .stat-item[data-v-26b73e9a]{font-size:10px;font-weight:500;color:var(--c-text-secondary);background:#f0f2f8;padding:2px 8px;border-radius:6px}.shop-card-actions[data-v-26b73e9a]{display:flex;align-items:center;gap:4px;padding:4px 12px 10px;justify-content:center}.owned-tag[data-v-26b73e9a]{font-size:11px;font-weight:600;background:linear-gradient(135deg,var(--c-primary-light),var(--c-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn[data-v-26b73e9a]{padding:8px 16px;border:1px solid transparent;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit;display:inline-flex;align-items:center;justify-content:center}.btn-primary[data-v-26b73e9a]{background:#1a5c4b;color:#fff;box-shadow:0 2px 8px #1a5c4b40}.btn-primary[data-v-26b73e9a]:hover{background:#14523f;transform:translateY(-1px);box-shadow:0 4px 12px #1a5c4b59}.btn-primary[data-v-26b73e9a]:disabled{background:#c7c7cc;color:#fff;box-shadow:none;cursor:not-allowed;transform:none}.btn-ghost[data-v-26b73e9a]{background:#f2f2f7;color:#1c1c1e}.btn-ghost[data-v-26b73e9a]:hover{background:#e5e5ea}.btn-accent[data-v-26b73e9a]{background:linear-gradient(135deg,#ea580c,#f97316);color:#fff;box-shadow:0 2px 8px #ea580c40}.btn-accent[data-v-26b73e9a]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ea580c59}.btn-sm[data-v-26b73e9a]{padding:5px 12px;font-size:11px;border-radius:8px}.btn-wish[data-v-26b73e9a]{background:none;border:none;font-size:15px;padding:3px 6px;cursor:pointer;transition:all .2s ease;border-radius:8px;line-height:1}.btn-wish[data-v-26b73e9a]:hover{background:#fff9e6;transform:scale(1.2)}.btn-wish.wished[data-v-26b73e9a]{animation:heartPop-26b73e9a .3s ease}@keyframes heartPop-26b73e9a{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.manage-header[data-v-26b73e9a]{display:flex;justify-content:flex-end;margin-bottom:12px}.manage-actions-row[data-v-26b73e9a]{display:flex;gap:4px;justify-content:center;margin-top:2px}.btn-icon[data-v-26b73e9a]{width:28px;height:28px;border:none;background:transparent;border-radius:7px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--c-text-secondary);transition:all .15s ease}.btn-icon[data-v-26b73e9a]:hover{background:#f0f2f8;color:var(--c-text)}.btn-icon.danger[data-v-26b73e9a]:hover{background:#ffeded;color:var(--c-red)}.modal-overlay[data-v-26b73e9a]{position:fixed;inset:0;background:#0006;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-26b73e9a]{background:#fff;border-radius:20px;padding:24px;max-width:480px;width:92%;box-shadow:0 8px 32px #00000026;animation:slideUp-26b73e9a .25s cubic-bezier(.16,1,.3,1);max-height:80vh;overflow-y:auto}@keyframes slideUp-26b73e9a{0%{opacity:0;transform:translateY(12px) scale(.97)}}.modal-content h3[data-v-26b73e9a]{font-size:17px;font-weight:700;margin:0 0 16px;color:var(--c-text)}.modal-form[data-v-26b73e9a]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-26b73e9a]{display:flex;flex-direction:column;gap:3px}.form-group label[data-v-26b73e9a]{font-size:12px;font-weight:600;color:var(--c-text-secondary)}.form-row[data-v-26b73e9a]{display:flex;gap:10px}.flex-1[data-v-26b73e9a]{flex:1}.modal-actions[data-v-26b73e9a]{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.input[data-v-26b73e9a]{border:1.5px solid var(--c-border);border-radius:10px;padding:9px 12px;font-size:13px;color:var(--c-text);background:#fff;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.input[data-v-26b73e9a]:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #4f46e51f}textarea.input[data-v-26b73e9a]{resize:vertical}.level-list[data-v-26b73e9a]{display:flex;flex-direction:column;gap:10px}.level-card[data-v-26b73e9a]{border:1px solid var(--c-border);border-radius:12px;padding:12px}.level-header[data-v-26b73e9a]{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--c-primary);margin-bottom:8px}.level-badge[data-v-26b73e9a]{background:linear-gradient(135deg,var(--c-primary-light),var(--c-primary));color:#fff;padding:2px 10px;border-radius:6px;font-size:12px}.level-visual[data-v-26b73e9a]{display:flex;align-items:center;gap:10px;margin-bottom:10px}.level-img-preview[data-v-26b73e9a]{flex-shrink:0}.level-thumb[data-v-26b73e9a]{width:56px;height:56px;border-radius:10px;object-fit:cover;border:1px solid var(--c-border);background:#f0f2f8}.level-thumb-placeholder[data-v-26b73e9a]{width:56px;height:56px;border-radius:10px;border:1.5px dashed var(--c-border);display:flex;align-items:center;justify-content:center;font-size:10px;color:#b2bec3}.upload-btn[data-v-26b73e9a]{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:8px;border:none;background:linear-gradient(135deg,#ea580c,#f97316);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap;box-shadow:0 2px 6px #ea580c33}.upload-btn[data-v-26b73e9a]:hover{box-shadow:0 4px 10px #ea580c4d;transform:translateY(-1px)}.upload-btn.disabled[data-v-26b73e9a]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.hidden-input[data-v-26b73e9a]{display:none}.upload-spinner[data-v-26b73e9a]{width:12px;height:12px;border:2px solid rgba(79,70,229,.15);border-top-color:var(--c-primary);border-radius:50%;animation:spin-26b73e9a .6s linear infinite}.level-fields[data-v-26b73e9a]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preview-overlay[data-v-26b73e9a]{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:500;animation:fadeIn-26b73e9a .2s ease}.preview-content[data-v-26b73e9a]{position:relative;max-width:80vw;max-height:80vh;animation:scaleIn-26b73e9a .25s cubic-bezier(.16,1,.3,1)}.preview-image[data-v-26b73e9a]{max-width:100%;max-height:80vh;border-radius:16px;box-shadow:0 8px 40px #0000004d}.preview-close[data-v-26b73e9a]{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border:none;border-radius:50%;background:#fff;color:var(--c-text);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026;transition:all .15s ease}.preview-close[data-v-26b73e9a]:hover{transform:scale(1.1);background:#ffeded;color:var(--c-red)}@keyframes scaleIn-26b73e9a{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.evo-overlay[data-v-26b73e9a]{position:fixed;inset:0;background:#0a0e1ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:600;animation:fadeIn-26b73e9a .2s ease}.evo-content[data-v-26b73e9a]{width:92%;max-width:520px;max-height:88vh;background:#111827;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000080;animation:scaleIn-26b73e9a .25s cubic-bezier(.16,1,.3,1)}.evo-header[data-v-26b73e9a]{position:relative;padding:20px 20px 12px;display:flex;flex-direction:column;align-items:center;border-bottom:1px solid #1f2937}.evo-title[data-v-26b73e9a]{font-size:22px;font-weight:700;letter-spacing:2px;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.evo-subtitle[data-v-26b73e9a]{font-size:12px;color:#64748b;margin-top:4px}.evo-close[data-v-26b73e9a]{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff1a;color:#94a3b8;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.evo-close[data-v-26b73e9a]:hover{background:#ffffff38;color:#e2e8f0;transform:scale(1.1)}.evo-grid[data-v-26b73e9a]{padding:16px 18px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;overflow-y:auto;-webkit-overflow-scrolling:touch}.evo-card[data-v-26b73e9a]{background:#1a1f33;border-radius:14px;padding:14px;display:flex;flex-direction:column;align-items:center;border:1px solid #1f2937;transition:transform .2s ease,box-shadow .2s ease}.evo-card[data-v-26b73e9a]:hover{transform:translateY(-4px);box-shadow:0 8px 24px #fbbf241f}.evo-card-img-wrap[data-v-26b73e9a]{width:100%;aspect-ratio:3 / 4;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center}.evo-card-img[data-v-26b73e9a]{width:100%;height:100%;object-fit:contain}.evo-card-placeholder[data-v-26b73e9a]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#64748b;background:#0f172a}.evo-card-name[data-v-26b73e9a]{margin-top:10px;font-size:15px;font-weight:700;letter-spacing:1px;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.evo-card-tags[data-v-26b73e9a]{display:flex;gap:6px;margin-top:4px}.evo-tag[data-v-26b73e9a]{font-size:10px;padding:2px 7px;border-radius:6px;color:#94a3b8;border:1px solid #334155}.evo-tag-init[data-v-26b73e9a]{color:#64748b}.evo-card-desc[data-v-26b73e9a]{font-size:11px;color:#64748b;text-align:center;margin:6px 0 0;line-height:1.4;overflow:hidden;text-overflow:ellipsis}.scope-tag[data-v-26b73e9a]{display:inline-block;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px;line-height:1}.scope-tag.global[data-v-26b73e9a]{background:#2980b933;color:#2980b9}.scope-tag.school[data-v-26b73e9a]{background:#6e6e7333;color:#6e6e73}.form-hint[data-v-26b73e9a]{font-size:11px;color:#8e8e93;margin-top:2px;line-height:1.4}.scope-toggle[data-v-26b73e9a]{display:flex;flex-direction:column;gap:8px}.toggle-radio[data-v-26b73e9a]{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1.5px solid #C7C7CC;border-radius:8px;cursor:pointer;transition:all .12s ease;font-size:13px;font-weight:600;color:#1c1c1e;background:#fff}.toggle-radio[data-v-26b73e9a]:hover{border-color:#1a5c4b;background:#f3faf7}.toggle-radio.active[data-v-26b73e9a]{border-color:#1a5c4b;background:#e8f3ef;color:#1a5c4b}.toggle-radio input[type=radio][data-v-26b73e9a]{accent-color:#1A5C4B;width:16px;height:16px;cursor:pointer}.medal-page[data-v-5d428bf3]{max-width:1000px;background:#eef2ff;min-height:calc(100vh - 100px);padding:2px 20px 16px;margin-top:-20px;border-radius:20px}.page-header[data-v-5d428bf3]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.page-header h2[data-v-5d428bf3]{font-size:20px;font-weight:700;margin:0;background:linear-gradient(135deg,#4f46e5,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.toast[data-v-5d428bf3]{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;margin-bottom:8px;animation:fadeIn-5d428bf3 .2s ease}.toast.success[data-v-5d428bf3]{background:#e8f9ee;color:#10b981;border:1px solid #B8E6C8}.toast.error[data-v-5d428bf3]{background:#ffeded;color:#ef4444;border:1px solid #FFD0D0}@keyframes fadeIn-5d428bf3{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.loading-state[data-v-5d428bf3],.empty-state[data-v-5d428bf3]{display:flex;flex-direction:column;align-items:center;padding:60px;color:#6b7280;gap:8px}.spinner[data-v-5d428bf3]{width:28px;height:28px;border:3px solid rgba(79,70,229,.15);border-top-color:#4f46e5;border-radius:50%;animation:spin-5d428bf3 .7s linear infinite}@keyframes spin-5d428bf3{to{transform:rotate(360deg)}}.empty-hint[data-v-5d428bf3]{font-size:13px;color:#9ca3af}.empty-row[data-v-5d428bf3]{text-align:center;padding:30px;color:#10b981;font-size:14px}.tabs[data-v-5d428bf3]{display:flex;gap:4px;margin-bottom:10px;background:#fff9;padding:4px;border-radius:14px}.tab[data-v-5d428bf3]{flex:1;padding:9px 16px;border:none;border-radius:11px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;background:transparent;color:#4b5563;transition:all .2s ease}.tab[data-v-5d428bf3]:hover{color:#1e1b4b;background:#4f46e50f}.tab.active[data-v-5d428bf3]{background:linear-gradient(135deg,#4f46e5,#818cf8);color:#fff;box-shadow:0 2px 8px #4f46e54d}.tab-count[data-v-5d428bf3]{background:#fff;color:#4f46e5;font-size:10px;padding:1px 7px;border-radius:6px;margin-left:4px;font-weight:700}.admin-header[data-v-5d428bf3]{display:flex;justify-content:flex-end;margin-bottom:12px}.medal-grid[data-v-5d428bf3]{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.medal-card[data-v-5d428bf3]{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #4f46e514;transition:all .2s ease;display:flex;flex-direction:column}.medal-card[data-v-5d428bf3]:hover{transform:translateY(-3px);box-shadow:0 4px 16px #4f46e524}.medal-card-visual[data-v-5d428bf3]{aspect-ratio:3/2;overflow:hidden;background:linear-gradient(135deg,#eef2ff,#e0e7ff);display:flex;align-items:center;justify-content:center}.medal-card-img[data-v-5d428bf3]{width:100%;height:100%;object-fit:cover;cursor:pointer;transition:transform .3s ease}.medal-card:hover .medal-card-img[data-v-5d428bf3]{transform:scale(1.05)}.medal-card-placeholder[data-v-5d428bf3]{font-size:60px}.medal-card-body[data-v-5d428bf3]{padding:10px 12px 6px;flex:1;display:flex;flex-direction:column;gap:3px}.medal-card-name[data-v-5d428bf3]{font-size:15px;font-weight:700;color:#1e1b4b}.medal-card-meta[data-v-5d428bf3]{font-size:10px;color:#4b5563;display:flex;gap:4px}.medal-card-desc[data-v-5d428bf3]{font-size:11px;color:#4b5563;margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.medal-card-stats[data-v-5d428bf3]{display:flex;gap:4px;margin-top:2px;flex-wrap:wrap}.stat-chip[data-v-5d428bf3]{font-size:10px;font-weight:500;padding:2px 7px;border-radius:6px}.stat-chip.published[data-v-5d428bf3]{background:#ecfdf5;color:#059669}.stat-chip.draft[data-v-5d428bf3]{background:#fef3c7;color:#d97706}.stat-chip.inactive[data-v-5d428bf3]{background:#fee2e2;color:#dc2626}.stat-chip.auto[data-v-5d428bf3]{background:#dbeafe;color:#2563eb}.stat-chip.manual[data-v-5d428bf3]{background:#f3e8ff;color:#7c3aed}.medal-condition[data-v-5d428bf3]{font-size:10px;color:#4b5563;background:#f9fafb;padding:3px 8px;border-radius:6px;margin-top:2px;text-align:center}.medal-grades[data-v-5d428bf3]{font-size:10px;color:#7c3aed;background:#f3e8ff;padding:2px 8px;border-radius:6px;text-align:center}.medal-card-actions[data-v-5d428bf3]{display:flex;gap:4px;justify-content:center;padding:4px 12px 10px;opacity:0;transition:opacity .2s ease}.medal-card:hover .medal-card-actions[data-v-5d428bf3]{opacity:1}.claim-list[data-v-5d428bf3]{display:flex;flex-direction:column;gap:10px}.claim-section-title[data-v-5d428bf3]{font-size:13px;font-weight:700;color:#1e1b4b;margin:8px 0 4px;padding:6px 0;border-bottom:1px solid #E2E8F0}.claim-card[data-v-5d428bf3]{display:flex;gap:12px;background:#fff;border-radius:12px;padding:14px;box-shadow:0 2px 8px #4f46e50f;transition:all .15s ease}.claim-card.pending[data-v-5d428bf3]{border-left:3px solid #F59E0B}.claim-card.approved[data-v-5d428bf3]{border-left:3px solid #10B981}.claim-card.rejected[data-v-5d428bf3]{border-left:3px solid #EF4444;opacity:.7}.claim-visual[data-v-5d428bf3]{flex-shrink:0}.claim-icon-img[data-v-5d428bf3]{width:44px;height:44px;border-radius:10px;object-fit:cover}.claim-icon-placeholder[data-v-5d428bf3]{font-size:32px;width:44px;text-align:center}.claim-body[data-v-5d428bf3]{flex:1}.claim-top[data-v-5d428bf3]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.claim-medal-name[data-v-5d428bf3]{font-size:14px;font-weight:700;color:#1e1b4b}.status-badge[data-v-5d428bf3]{font-size:10px;padding:2px 8px;border-radius:6px;font-weight:500}.status-badge.pending[data-v-5d428bf3]{background:#fef3c7;color:#d97706}.status-badge.approved[data-v-5d428bf3]{background:#ecfdf5;color:#059669}.status-badge.rejected[data-v-5d428bf3]{background:#fee2e2;color:#dc2626}.claim-student[data-v-5d428bf3]{font-size:12px;color:#4b5563;display:flex;gap:8px;align-items:center}.claim-class[data-v-5d428bf3],.claim-time[data-v-5d428bf3]{font-size:11px;color:#6b7280}.claim-note[data-v-5d428bf3]{font-size:12px;color:#4b5563;margin-top:4px;background:#f9fafb;padding:4px 8px;border-radius:6px}.claim-review-note[data-v-5d428bf3]{font-size:11px;color:#6b7280;margin-top:4px;font-style:italic}.claim-reviewer[data-v-5d428bf3]{font-size:10px;color:#9ca3af;margin-top:2px}.claim-actions[data-v-5d428bf3]{display:flex;align-items:center}.btn[data-v-5d428bf3]{padding:8px 16px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn-primary[data-v-5d428bf3]{background:linear-gradient(135deg,#4f46e5,#818cf8);color:#fff;box-shadow:0 2px 8px #4f46e540}.btn-primary[data-v-5d428bf3]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4f46e559}.btn-accent[data-v-5d428bf3]{background:linear-gradient(135deg,#ea580c,#f97316);color:#fff;box-shadow:0 2px 8px #ea580c40}.btn-accent[data-v-5d428bf3]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ea580c59}.btn-danger[data-v-5d428bf3]{background:#ef4444;color:#fff}.btn-danger[data-v-5d428bf3]:hover{background:#dc2626}.btn-ghost[data-v-5d428bf3]{background:#f0f2f8;color:#4f46e5}.btn-ghost[data-v-5d428bf3]:hover{background:#e8eaff}.btn-sm[data-v-5d428bf3]{padding:5px 12px;font-size:11px;border-radius:8px}.btn-icon[data-v-5d428bf3]{width:28px;height:28px;border:none;background:transparent;border-radius:7px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#4b5563;transition:all .15s ease}.btn-icon[data-v-5d428bf3]:hover{background:#f0f2f8;color:#1e1b4b}.btn-icon.danger[data-v-5d428bf3]:hover{background:#ffeded;color:#ef4444}.icon-picker-row[data-v-5d428bf3]{display:flex;gap:8px;align-items:center}.flex-1[data-v-5d428bf3]{flex:1}.icon-preview-sm[data-v-5d428bf3]{flex-shrink:0}.icon-preview-sm-img[data-v-5d428bf3]{width:40px;height:40px;border-radius:8px;object-fit:cover;border:1px solid #E2E8F0;cursor:pointer}.upload-icon-btn[data-v-5d428bf3]{display:inline-flex;align-items:center;justify-content:center;padding:7px 16px;border-radius:8px;border:none;background:linear-gradient(135deg,#ea580c,#f97316);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.upload-icon-btn[data-v-5d428bf3]:hover{box-shadow:0 2px 6px #ea580c4d}.upload-icon-btn.disabled[data-v-5d428bf3]{opacity:.5;cursor:not-allowed}.hidden-input[data-v-5d428bf3]{display:none}.toggle-row[data-v-5d428bf3]{display:flex;align-items:center;gap:10px}.toggle[data-v-5d428bf3]{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle input[data-v-5d428bf3]{opacity:0;width:0;height:0}.toggle-slider[data-v-5d428bf3]{position:absolute;cursor:pointer;inset:0;background:#d1d5db;border-radius:24px;transition:.2s}.toggle-slider[data-v-5d428bf3]:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle input:checked+.toggle-slider[data-v-5d428bf3]{background:#4f46e5}.toggle input:checked+.toggle-slider[data-v-5d428bf3]:before{transform:translate(20px)}.cond-type-row[data-v-5d428bf3]{display:flex;gap:8px}.cond-option[data-v-5d428bf3]{flex:1;display:flex;align-items:center;gap:6px;padding:10px 12px;border:2px solid #E2E8F0;border-radius:10px;cursor:pointer;transition:all .15s ease;font-size:13px;font-weight:500}.cond-option input[data-v-5d428bf3]{display:none}.cond-option[data-v-5d428bf3]:hover{border-color:#818cf8;background:#eef2ff}.cond-option.active[data-v-5d428bf3]{border-color:#4f46e5;background:#e0e7ff;color:#4f46e5}.cond-hint[data-v-5d428bf3]{font-size:13px;color:#4b5563;background:#f9fafb;padding:10px 14px;border-radius:10px;text-align:center}.grade-chip-grid[data-v-5d428bf3]{display:flex;flex-wrap:wrap;gap:6px}.eval-item-checkbox-grid[data-v-5d428bf3]{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow-y:auto;padding:2px}.eval-item-checkbox[data-v-5d428bf3]{display:inline-flex;align-items:center;padding:6px 12px;border:1.5px solid #E2E8F0;border-radius:8px;font-size:12px;font-weight:500;color:#4b5563;cursor:pointer;transition:all .15s ease;user-select:none}.eval-item-checkbox[data-v-5d428bf3]:hover{border-color:#f59e0b;background:#fff7e6}.eval-item-checkbox.active[data-v-5d428bf3]{border-color:#f59e0b;background:#fef3c7;color:#92400e}.grade-chip[data-v-5d428bf3]{display:inline-flex;align-items:center;padding:6px 14px;border:1.5px solid #E2E8F0;border-radius:8px;font-size:12px;font-weight:500;color:#4b5563;cursor:pointer;transition:all .15s ease;user-select:none}.grade-chip[data-v-5d428bf3]:hover{border-color:#818cf8;background:#eef2ff}.grade-chip.active[data-v-5d428bf3]{border-color:#4f46e5;background:#e0e7ff;color:#4f46e5}.modal-overlay[data-v-5d428bf3]{position:fixed;inset:0;background:#0006;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-5d428bf3]{background:#fff;border-radius:20px;padding:24px;max-width:480px;width:92%;box-shadow:0 8px 32px #00000026;animation:slideUp-5d428bf3 .25s cubic-bezier(.16,1,.3,1);max-height:80vh;overflow-y:auto}@keyframes slideUp-5d428bf3{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0)}}.modal-content h3[data-v-5d428bf3]{font-size:17px;font-weight:700;margin:0 0 16px;color:#1e1b4b}.modal-form[data-v-5d428bf3]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-5d428bf3]{display:flex;flex-direction:column;gap:3px}.form-group label[data-v-5d428bf3]{font-size:12px;font-weight:600;color:#4b5563}.form-row[data-v-5d428bf3]{display:flex;gap:10px}.modal-actions[data-v-5d428bf3]{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.input[data-v-5d428bf3]{border:1.5px solid #E2E8F0;border-radius:10px;padding:9px 12px;font-size:13px;color:#1e1b4b;background:#fff;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.input[data-v-5d428bf3]:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51f}select.input[data-v-5d428bf3]{cursor:pointer}textarea.input[data-v-5d428bf3]{resize:vertical}.review-info[data-v-5d428bf3]{background:#f9fafb;border-radius:10px;padding:12px;margin-bottom:16px}.review-info p[data-v-5d428bf3]{font-size:13px;color:#1e1b4b;margin:4px 0}.review-options[data-v-5d428bf3]{display:flex;gap:16px}.radio-label[data-v-5d428bf3]{display:flex;align-items:center;gap:6px;cursor:pointer}.radio-text[data-v-5d428bf3]{font-size:14px;font-weight:500}.approved-text[data-v-5d428bf3]{color:#10b981}.rejected-text[data-v-5d428bf3]{color:#ef4444}.preview-overlay[data-v-5d428bf3]{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:500;animation:fadeIn-5d428bf3 .2s ease}.preview-content[data-v-5d428bf3]{position:relative;max-width:80vw;max-height:80vh;animation:scaleIn-5d428bf3 .25s cubic-bezier(.16,1,.3,1)}.preview-image[data-v-5d428bf3]{max-width:100%;max-height:80vh;border-radius:16px;box-shadow:0 8px 40px #0000004d}.preview-close[data-v-5d428bf3]{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border:none;border-radius:50%;background:#fff;color:#1e1b4b;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026;transition:all .15s ease}.preview-close[data-v-5d428bf3]:hover{transform:scale(1.1);background:#ffeded;color:#ef4444}@keyframes scaleIn-5d428bf3{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.prize-page[data-v-bab782bf]{max-width:1000px;background:#eef2ff;min-height:calc(100vh - 100px);padding:2px 20px 16px;margin-top:-20px;border-radius:20px}.page-header[data-v-bab782bf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.page-header h2[data-v-bab782bf]{font-size:20px;font-weight:700;margin:0;background:linear-gradient(135deg,#4f46e5,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.toast[data-v-bab782bf]{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;margin-bottom:8px;animation:fadeIn-bab782bf .2s ease}.toast.success[data-v-bab782bf]{background:#e8f9ee;color:#10b981;border:1px solid #B8E6C8}.toast.error[data-v-bab782bf]{background:#ffeded;color:#ef4444;border:1px solid #FFD0D0}@keyframes fadeIn-bab782bf{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.loading-state[data-v-bab782bf],.empty-state[data-v-bab782bf]{display:flex;flex-direction:column;align-items:center;padding:60px;color:#6b7280;gap:8px}.spinner[data-v-bab782bf]{width:28px;height:28px;border:3px solid rgba(79,70,229,.15);border-top-color:#4f46e5;border-radius:50%;animation:spin-bab782bf .7s linear infinite}@keyframes spin-bab782bf{to{transform:rotate(360deg)}}.tabs[data-v-bab782bf]{display:flex;gap:4px;margin-bottom:10px;background:#fff9;padding:4px;border-radius:14px}.tab[data-v-bab782bf]{flex:1;padding:9px 16px;border:none;border-radius:11px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;background:transparent;color:#4b5563;transition:all .2s ease}.tab[data-v-bab782bf]:hover{color:#1e1b4b;background:#4f46e50f}.tab.active[data-v-bab782bf]{background:linear-gradient(135deg,#4f46e5,#818cf8);color:#fff;box-shadow:0 2px 8px #4f46e54d}.tab-count[data-v-bab782bf]{background:#fff;color:#4f46e5;font-size:10px;padding:1px 7px;border-radius:6px;margin-left:4px;font-weight:700}.student-select-row[data-v-bab782bf]{margin-bottom:10px}.student-select-row .input[data-v-bab782bf]{width:260px}.points-bar[data-v-bab782bf]{display:flex;align-items:center;gap:0;background:#fff;border-radius:12px;padding:10px 8px;margin-bottom:16px;box-shadow:0 2px 8px #4f46e514}.points-item[data-v-bab782bf]{flex:1;text-align:center}.points-label[data-v-bab782bf]{font-size:11px;color:#4b5563;display:block;margin-bottom:1px}.points-value[data-v-bab782bf]{font-size:22px;font-weight:800;background:linear-gradient(135deg,#4f46e5,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.points-value.used[data-v-bab782bf]{background:linear-gradient(135deg,#f97316,#fdba74);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.points-value.available[data-v-bab782bf]{background:linear-gradient(135deg,#10b981,#6ee7b7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.points-divider[data-v-bab782bf]{width:1px;height:28px;background:#e2e8f0}.prize-grid[data-v-bab782bf]{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.prize-card[data-v-bab782bf]{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #4f46e514;transition:all .2s ease;display:flex;flex-direction:column}.prize-card[data-v-bab782bf]:hover{transform:translateY(-3px);box-shadow:0 4px 16px #4f46e524}.prize-card-visual[data-v-bab782bf]{aspect-ratio:3/2;overflow:hidden;background:linear-gradient(135deg,#eef2ff,#e0e7ff);display:flex;align-items:center;justify-content:center}.prize-card-img[data-v-bab782bf]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.prize-card:hover .prize-card-img[data-v-bab782bf]{transform:scale(1.05)}.prize-card-placeholder[data-v-bab782bf]{font-size:48px}.prize-card-body[data-v-bab782bf]{padding:10px 12px 6px;flex:1;display:flex;flex-direction:column;gap:3px}.prize-card-name[data-v-bab782bf]{font-size:15px;font-weight:700;color:#1e1b4b}.prize-card-desc[data-v-bab782bf]{font-size:11px;color:#4b5563;margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.prize-card-meta[data-v-bab782bf]{display:flex;gap:4px;margin-top:2px}.points-chip[data-v-bab782bf]{font-size:10px;font-weight:600;background:#fef3c7;color:#d97706;padding:2px 8px;border-radius:6px}.stock-chip[data-v-bab782bf]{font-size:10px;background:#f0f2f8;color:#4b5563;padding:2px 8px;border-radius:6px}.stock-chip.low[data-v-bab782bf]{background:#fee2e2;color:#dc2626}.scope-chip[data-v-bab782bf]{font-size:10px;background:#dbeafe;color:#2563eb;padding:2px 8px;border-radius:6px}.status-chip-off[data-v-bab782bf]{font-size:10px;background:#fee2e2;color:#dc2626;padding:2px 8px;border-radius:6px}.prize-card-actions[data-v-bab782bf]{padding:4px 12px 10px;display:flex;justify-content:center}.manage-prize-card[data-v-bab782bf]{position:relative}.manage-card-actions[data-v-bab782bf]{position:absolute;top:8px;right:8px;display:flex;gap:2px;opacity:0;transition:opacity .2s ease}.manage-prize-card:hover .manage-card-actions[data-v-bab782bf]{opacity:1}.admin-header[data-v-bab782bf]{display:flex;justify-content:flex-end;margin-bottom:12px}.filter-row[data-v-bab782bf]{display:flex;gap:6px;margin-bottom:12px}.filter-btn[data-v-bab782bf]{padding:6px 14px;border:1.5px solid #E2E8F0;border-radius:8px;background:#fff;font-size:12px;font-weight:500;color:#4b5563;cursor:pointer;transition:all .15s ease;font-family:inherit}.filter-btn[data-v-bab782bf]:hover{border-color:#818cf8;background:#eef2ff}.filter-btn.active[data-v-bab782bf]{border-color:#4f46e5;background:#e0e7ff;color:#4f46e5}.filter-spacer[data-v-bab782bf]{flex:1}.order-list[data-v-bab782bf]{display:flex;flex-direction:column;gap:10px}.order-card[data-v-bab782bf]{display:flex;gap:12px;background:#fff;border-radius:12px;padding:14px;box-shadow:0 2px 8px #4f46e50f}.order-visual[data-v-bab782bf]{flex-shrink:0}.order-img[data-v-bab782bf]{width:44px;height:44px;border-radius:10px;object-fit:cover}.order-placeholder[data-v-bab782bf]{width:44px;height:44px;border-radius:10px;background:#f0f2f8;display:flex;align-items:center;justify-content:center;font-size:22px}.order-body[data-v-bab782bf]{flex:1}.order-top[data-v-bab782bf]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.order-name[data-v-bab782bf]{font-size:14px;font-weight:700;color:#1e1b4b}.order-status[data-v-bab782bf]{font-size:10px;padding:2px 8px;border-radius:6px;font-weight:500}.order-status.pending[data-v-bab782bf]{background:#fef3c7;color:#d97706}.order-status.confirmed[data-v-bab782bf]{background:#ecfdf5;color:#059669}.order-status.cancelled[data-v-bab782bf]{background:#fee2e2;color:#dc2626}.order-student[data-v-bab782bf]{font-size:12px;color:#4b5563;display:flex;gap:8px;align-items:center}.order-class[data-v-bab782bf],.order-time[data-v-bab782bf]{font-size:11px;color:#6b7280}.order-info[data-v-bab782bf]{font-size:11px;color:#6b7280;margin-top:4px}.order-actions[data-v-bab782bf]{display:flex;flex-direction:column;gap:4px;justify-content:center}.btn[data-v-bab782bf]{padding:8px 16px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn-primary[data-v-bab782bf]{background:linear-gradient(135deg,#4f46e5,#818cf8);color:#fff;box-shadow:0 2px 8px #4f46e540}.btn-primary[data-v-bab782bf]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4f46e559}.btn-primary[data-v-bab782bf]:disabled{background:#d1d5db;color:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}.btn-accent[data-v-bab782bf]{background:linear-gradient(135deg,#ea580c,#f97316);color:#fff;box-shadow:0 2px 8px #ea580c40}.btn-accent[data-v-bab782bf]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ea580c59}.btn-ghost[data-v-bab782bf]{background:#f0f2f8;color:#4f46e5}.btn-ghost[data-v-bab782bf]:hover{background:#e8eaff}.btn-sm[data-v-bab782bf]{padding:5px 12px;font-size:11px;border-radius:8px}.btn-icon[data-v-bab782bf]{width:28px;height:28px;border:none;background:transparent;border-radius:7px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#4b5563;transition:all .15s ease}.btn-icon[data-v-bab782bf]:hover{background:#f0f2f8;color:#1e1b4b}.btn-icon.danger[data-v-bab782bf]:hover{background:#ffeded;color:#ef4444}.icon-picker-row[data-v-bab782bf]{display:flex;gap:8px;align-items:center}.flex-1[data-v-bab782bf]{flex:1}.upload-btn[data-v-bab782bf]{display:inline-flex;align-items:center;justify-content:center;padding:7px 16px;border-radius:8px;border:none;background:linear-gradient(135deg,#ea580c,#f97316);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.upload-btn[data-v-bab782bf]:hover{box-shadow:0 2px 6px #ea580c4d}.upload-btn.disabled[data-v-bab782bf]{opacity:.5;cursor:not-allowed}.hidden-input[data-v-bab782bf]{display:none}.modal-overlay[data-v-bab782bf]{position:fixed;inset:0;background:#0006;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-bab782bf]{background:#fff;border-radius:20px;padding:24px;max-width:480px;width:92%;box-shadow:0 8px 32px #00000026;animation:slideUp-bab782bf .25s cubic-bezier(.16,1,.3,1);max-height:80vh;overflow-y:auto}@keyframes slideUp-bab782bf{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0)}}.modal-content h3[data-v-bab782bf]{font-size:17px;font-weight:700;margin:0 0 16px;color:#1e1b4b}.modal-form[data-v-bab782bf]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-bab782bf]{display:flex;flex-direction:column;gap:3px}.form-group label[data-v-bab782bf]{font-size:12px;font-weight:600;color:#4b5563}.form-row[data-v-bab782bf]{display:flex;gap:10px}.modal-actions[data-v-bab782bf]{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.input[data-v-bab782bf]{border:1.5px solid #E2E8F0;border-radius:10px;padding:9px 12px;font-size:13px;color:#1e1b4b;background:#fff;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.input[data-v-bab782bf]:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51f}select.input[data-v-bab782bf]{cursor:pointer}textarea.input[data-v-bab782bf]{resize:vertical}.exchange-info[data-v-bab782bf]{background:#f9fafb;border-radius:10px;padding:12px;margin-bottom:8px}.exchange-info p[data-v-bab782bf]{font-size:13px;color:#1e1b4b;margin:4px 0}.qty-total[data-v-bab782bf]{text-align:center;font-size:14px;color:#4b5563;padding:4px 0}.preview-overlay[data-v-bab782bf]{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:500;animation:fadeIn-bab782bf .2s ease}.preview-content[data-v-bab782bf]{position:relative;max-width:80vw;max-height:80vh;animation:scaleIn-bab782bf .25s cubic-bezier(.16,1,.3,1)}.preview-image[data-v-bab782bf]{max-width:100%;max-height:80vh;border-radius:16px;box-shadow:0 8px 40px #0000004d}.preview-close[data-v-bab782bf]{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border:none;border-radius:50%;background:#fff;color:#1c1c1e;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026}.preview-close[data-v-bab782bf]:hover{transform:scale(1.1);background:#ffeded;color:#ef4444}@keyframes fadeIn-bab782bf{0%{opacity:0}to{opacity:1}}@keyframes scaleIn-bab782bf{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.register-page[data-v-1288d9a3]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2ff,#e0e7ff,#c7d2fe);padding:24px}.register-card[data-v-1288d9a3]{background:#fff;border-radius:20px;padding:36px;width:100%;max-width:520px;box-shadow:0 8px 32px #4f46e51a}.register-header[data-v-1288d9a3]{text-align:center;margin-bottom:24px}.register-header h1[data-v-1288d9a3]{font-size:22px;font-weight:700;margin:0 0 4px;color:#1e1b4b}.register-header p[data-v-1288d9a3]{font-size:14px;color:#6b7280;margin:0}.register-form[data-v-1288d9a3]{display:flex;flex-direction:column;gap:16px}.form-section h3[data-v-1288d9a3]{font-size:15px;font-weight:600;color:#1e1b4b;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #F3F4F6}.form-row[data-v-1288d9a3]{display:flex;gap:10px}.flex-1[data-v-1288d9a3]{flex:1}.form-group[data-v-1288d9a3]{display:flex;flex-direction:column;gap:3px}.form-group label[data-v-1288d9a3]{font-size:12px;font-weight:600;color:#4b5563}.required[data-v-1288d9a3]{color:#ef4444}.input[data-v-1288d9a3]{border:1.5px solid #E2E8F0;border-radius:10px;padding:9px 12px;font-size:13px;color:#1e1b4b;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease;width:100%;box-sizing:border-box}.input[data-v-1288d9a3]:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51f}.code-input[data-v-1288d9a3]{text-transform:uppercase}.form-hint[data-v-1288d9a3]{font-size:12px;color:#6b7280;display:block;margin-top:6px;line-height:1.5}.form-error[data-v-1288d9a3]{font-size:13px;color:#dc2626;background:#fee2e2;padding:8px 12px;border-radius:8px}.submit-btn[data-v-1288d9a3]{padding:10px;font-size:15px;font-weight:600;background:linear-gradient(135deg,#4f46e5,#818cf8);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .15s ease;font-family:inherit;box-shadow:0 2px 8px #4f46e540}.submit-btn[data-v-1288d9a3]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4f46e559}.submit-btn[data-v-1288d9a3]:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-link[data-v-1288d9a3]{text-align:center;font-size:13px;color:#6b7280}.login-link a[data-v-1288d9a3]{color:#4f46e5;text-decoration:none;font-weight:500}.login-link a[data-v-1288d9a3]:hover{text-decoration:underline}.success-box[data-v-1288d9a3]{text-align:center;padding:20px 0}.success-icon[data-v-1288d9a3]{font-size:48px;margin-bottom:12px}.success-box h3[data-v-1288d9a3]{font-size:20px;font-weight:700;color:#1e1b4b;margin:0 0 8px}.success-box p[data-v-1288d9a3]{font-size:14px;color:#6b7280;margin:0 0 20px}.code-box[data-v-1288d9a3]{background:#f9fafb;border-radius:12px;padding:16px;margin-bottom:20px}.code-label[data-v-1288d9a3]{font-size:12px;color:#6b7280;display:block;margin-bottom:6px}.code-value[data-v-1288d9a3]{font-size:28px;font-weight:800;letter-spacing:6px;color:#4f46e5;display:block;margin-bottom:6px}.code-hint[data-v-1288d9a3]{font-size:12px;color:#9ca3af}.btn[data-v-1288d9a3]{display:inline-block;padding:10px 24px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .15s ease;font-family:inherit}.btn-primary[data-v-1288d9a3]{background:linear-gradient(135deg,#4f46e5,#818cf8);color:#fff;box-shadow:0 2px 8px #4f46e540}.btn-primary[data-v-1288d9a3]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4f46e559}.school-page[data-v-1d575111]{max-width:1000px;background:#eef2ff;min-height:calc(100vh - 100px);padding:2px 20px 16px;margin-top:-20px;border-radius:20px}.page-header[data-v-1d575111]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.page-header h2[data-v-1d575111]{font-size:20px;font-weight:700;margin:0;background:linear-gradient(135deg,#4f46e5,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.toast[data-v-1d575111]{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;margin-bottom:8px;animation:fadeIn-1d575111 .2s ease}.toast.success[data-v-1d575111]{background:#e8f9ee;color:#10b981;border:1px solid #B8E6C8}.toast.error[data-v-1d575111]{background:#ffeded;color:#ef4444;border:1px solid #FFD0D0}@keyframes fadeIn-1d575111{0%{opacity:0;transform:translateY(-4px)}}.loading-state[data-v-1d575111],.empty-state[data-v-1d575111]{display:flex;flex-direction:column;align-items:center;padding:60px;color:#6b7280;gap:8px}.spinner[data-v-1d575111]{width:28px;height:28px;border:3px solid rgba(79,70,229,.15);border-top-color:#4f46e5;border-radius:50%;animation:spin-1d575111 .7s linear infinite}@keyframes spin-1d575111{to{transform:rotate(360deg)}}.filter-bar[data-v-1d575111]{margin-bottom:12px}.input[data-v-1d575111]{border:1.5px solid #E2E8F0;border-radius:10px;padding:9px 12px;font-size:13px;color:#1e1b4b;background:#fff;font-family:inherit;transition:border-color .15s ease}.input[data-v-1d575111]:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51f}.school-list[data-v-1d575111]{display:flex;flex-direction:column;gap:10px}.school-card[data-v-1d575111]{display:flex;gap:14px;background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 8px #4f46e514;transition:all .2s ease}.school-card[data-v-1d575111]:hover{box-shadow:0 4px 16px #4f46e524}.school-card.pending[data-v-1d575111]{border-left:3px solid #F59E0B}.school-card.active[data-v-1d575111]{border-left:3px solid #10B981}.school-card.suspended[data-v-1d575111]{border-left:3px solid #EF4444;opacity:.8}.school-visual[data-v-1d575111]{flex-shrink:0}.school-icon[data-v-1d575111]{font-size:36px;width:48px;text-align:center}.school-body[data-v-1d575111]{flex:1;min-width:0}.school-top[data-v-1d575111]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.school-name[data-v-1d575111]{font-size:16px;font-weight:700;color:#1e1b4b}.school-status[data-v-1d575111]{font-size:10px;padding:2px 8px;border-radius:6px;font-weight:500}.school-status.pending[data-v-1d575111]{background:#fef3c7;color:#d97706}.school-status.active[data-v-1d575111]{background:#ecfdf5;color:#059669}.school-status.suspended[data-v-1d575111]{background:#fee2e2;color:#dc2626}.school-meta[data-v-1d575111]{font-size:12px;color:#4b5563;display:flex;gap:12px;flex-wrap:wrap}.school-stats[data-v-1d575111]{display:flex;gap:10px;margin-top:4px}.stat[data-v-1d575111]{font-size:11px;color:#6b7280}.school-actions[data-v-1d575111]{display:flex;flex-direction:column;gap:4px;justify-content:center}.btn[data-v-1d575111]{padding:8px 16px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn-primary[data-v-1d575111]{background:linear-gradient(135deg,#4f46e5,#818cf8);color:#fff;box-shadow:0 2px 8px #4f46e540}.btn-primary[data-v-1d575111]:hover{transform:translateY(-1px)}.btn-ghost[data-v-1d575111]{background:#f0f2f8;color:#4f46e5}.btn-ghost[data-v-1d575111]:hover{background:#e8eaff}.btn-danger[data-v-1d575111]{background:#ef4444;color:#fff}.btn-danger[data-v-1d575111]:hover{background:#dc2626}.btn-warning[data-v-1d575111]{background:#f59e0b;color:#fff}.btn-warning[data-v-1d575111]:hover{background:#d97706}.btn-sm[data-v-1d575111]{padding:5px 12px;font-size:11px;border-radius:8px}.modal-overlay[data-v-1d575111]{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-1d575111]{background:#fff;border-radius:16px;padding:28px;width:90%;max-width:440px}.modal-content h3[data-v-1d575111]{margin:0 0 8px;font-size:18px;font-weight:700;color:#1e1b4b}.modal-desc[data-v-1d575111]{font-size:13px;color:#6b7280;margin:0 0 16px}.module-list[data-v-1d575111]{display:flex;flex-direction:column;gap:8px}.module-item[data-v-1d575111]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;cursor:pointer;transition:all .15s ease;border:1.5px solid #E2E8F0}.module-item[data-v-1d575111]:hover{border-color:#818cf8;background:#eef2ff}.module-item.on[data-v-1d575111]{border-color:#4f46e5;background:#e0e7ff}.module-icon[data-v-1d575111]{font-size:20px}.module-label[data-v-1d575111]{flex:1;font-size:14px;font-weight:500;color:#1e1b4b}.module-check[data-v-1d575111]{font-size:16px}.page[data-v-0a429e6c]{max-width:1100px;background:#f5f5f7;min-height:calc(100vh - 100px);padding:16px 20px;margin-top:-20px;border-radius:20px}.page-header[data-v-0a429e6c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.page-header h2[data-v-0a429e6c]{font-size:22px;font-weight:700;margin:0;color:#1c1c1e}.header-actions[data-v-0a429e6c]{display:flex;gap:8px}.btn[data-v-0a429e6c]{padding:8px 16px;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s ease;white-space:nowrap}.btn[data-v-0a429e6c]:disabled{opacity:.5;cursor:not-allowed}.btn-ai[data-v-0a429e6c]{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.btn-ai[data-v-0a429e6c]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-export[data-v-0a429e6c]{background:#1a5c4b;color:#fff}.btn-export[data-v-0a429e6c]:hover:not(:disabled){background:#0f3d32}.btn-save-all[data-v-0a429e6c]{background:linear-gradient(135deg,#10b981,#34d399);color:#fff}.btn-save-all[data-v-0a429e6c]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.spinner-mini[data-v-0a429e6c]{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-0a429e6c .8s linear infinite;display:inline-block;margin-right:4px}@keyframes spin-0a429e6c{to{transform:rotate(360deg)}}.toast[data-v-0a429e6c]{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;margin-bottom:8px}.toast.success[data-v-0a429e6c]{background:#e8f9ee;color:#10b981;border:1px solid #B8E6C8}.toast.error[data-v-0a429e6c]{background:#ffeded;color:#ef4444;border:1px solid #FFD0D0}.loading-state[data-v-0a429e6c],.empty-state[data-v-0a429e6c]{display:flex;flex-direction:column;align-items:center;padding:60px;color:#8e8e93}.spinner[data-v-0a429e6c]{width:28px;height:28px;border:3px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-0a429e6c .8s linear infinite}.filter-bar[data-v-0a429e6c]{display:flex;gap:10px;margin-bottom:14px;align-items:center;flex-wrap:wrap}.input[data-v-0a429e6c]{border:1.5px solid #E5E5EA;border-radius:10px;padding:8px 12px;font-size:13px;color:#1c1c1e;background:#fff;font-family:inherit;min-width:200px}.input[data-v-0a429e6c]:focus{outline:none;border-color:#1a5c4b;box-shadow:0 0 0 3px #1a5c4b1f}.exam-badge[data-v-0a429e6c]{font-size:12px;color:#6e6e73;background:#f2f2f7;padding:4px 10px;border-radius:20px}.student-grid[data-v-0a429e6c]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.student-card[data-v-0a429e6c]{display:flex;gap:14px;background:#fff;border-radius:14px;padding:14px;box-shadow:0 2px 8px #0000000f;border:1.5px solid #EFF0F2;transition:all .2s ease}.student-card[data-v-0a429e6c]:hover{border-color:#d1d5db;box-shadow:0 4px 14px #00000014}.s-left[data-v-0a429e6c]{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;width:64px}.s-avatar[data-v-0a429e6c]{width:56px;height:56px;border-radius:50%;overflow:hidden;background:#f2f2f7;display:flex;align-items:center;justify-content:center}.s-avatar-img[data-v-0a429e6c]{width:100%;height:100%;object-fit:cover}.s-avatar-placeholder[data-v-0a429e6c]{font-size:28px}.s-name[data-v-0a429e6c]{font-size:14px;font-weight:700;color:#1c1c1e;text-align:center;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-refresh[data-v-0a429e6c]{background:#f2f2f7;border:1px solid #E5E5EA;border-radius:50%;width:22px;height:22px;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6e6e73;transition:all .15s ease;padding:0;line-height:1;margin-top:1px}.s-refresh[data-v-0a429e6c]:hover{background:#e5e5ea;color:#1a5c4b;border-color:#1a5c4b}.s-refresh.refreshing[data-v-0a429e6c]{opacity:.5;cursor:not-allowed}.spinner-tiny[data-v-0a429e6c]{width:10px;height:10px;border:1.5px solid rgba(0,0,0,.15);border-top-color:#1a5c4b;border-radius:50%;animation:spin-0a429e6c .7s linear infinite;display:inline-block}.s-gender[data-v-0a429e6c]{font-size:11px;color:#8e8e93}.s-comment-area[data-v-0a429e6c]{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.comment-edit[data-v-0a429e6c]{display:flex;flex-direction:column;gap:6px}.comment-input[data-v-0a429e6c]{width:100%;border:1.5px solid #1A5C4B;border-radius:10px;padding:10px;font-size:13px;font-family:inherit;line-height:1.5;resize:vertical;box-sizing:border-box;min-height:70px;transition:border-color .15s ease}.comment-input[data-v-0a429e6c]:focus{outline:none;box-shadow:0 0 0 3px #1a5c4b1f}.comment-tools[data-v-0a429e6c]{display:flex;justify-content:space-between;align-items:center}.char-count[data-v-0a429e6c]{font-size:11px;color:#8e8e93}.char-count.danger[data-v-0a429e6c]{color:#ef4444;font-weight:600}.comment-actions[data-v-0a429e6c]{display:flex;gap:6px}.btn-sm[data-v-0a429e6c]{padding:4px 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.btn-save[data-v-0a429e6c]{background:#1a5c4b;color:#fff}.btn-save[data-v-0a429e6c]:hover{background:#0f3d32}.btn-cancel[data-v-0a429e6c]{background:#f2f2f7;color:#6e6e73}.btn-cancel[data-v-0a429e6c]:hover{background:#e5e5ea}.comment-display[data-v-0a429e6c]{cursor:pointer;padding:8px 10px;border-radius:8px;background:#fafafa;border:1.5px solid transparent;transition:all .15s ease;min-height:40px}.comment-display[data-v-0a429e6c]:hover{background:#f0fdf4;border-color:#bbf7d0}.comment-text[data-v-0a429e6c]{font-size:13px;color:#3a3a3c;line-height:1.5;margin:0}.comment-placeholder[data-v-0a429e6c]{font-size:13px;color:#c7c7cc;font-style:italic;margin:0}.btn-ghost-sm[data-v-0a429e6c]{width:32px;height:32px;padding:0;border:1.5px solid #E5E5EA;border-radius:8px;background:#fff;color:#6e6e73;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;transition:all .15s ease}.btn-ghost-sm[data-v-0a429e6c]:hover{border-color:#1a5c4b;color:#1a5c4b}.modal-overlay[data-v-0a429e6c]{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-0a429e6c]{background:#fff;border-radius:16px;padding:28px;width:90%;max-width:500px}.modal-content h3[data-v-0a429e6c]{margin:0 0 16px;font-size:18px;font-weight:700;color:#1c1c1e}.config-form[data-v-0a429e6c]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-0a429e6c]{display:flex;flex-direction:column;gap:4px}.form-group label[data-v-0a429e6c]{font-size:13px;font-weight:600;color:#1c1c1e}.w-full[data-v-0a429e6c]{width:100%;box-sizing:border-box}.config-hint[data-v-0a429e6c]{font-size:12px;color:#8e8e93;margin:4px 0 0}.modal-actions[data-v-0a429e6c]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.profile-page[data-v-1c6b0481]{max-width:720px;margin:0 auto;padding:24px 0}.card[data-v-1c6b0481]{background:#fff;border-radius:12px;padding:24px;border:1px solid #E5E5EA}.card-title[data-v-1c6b0481]{font-size:16px;font-weight:600;margin:0 0 20px;color:#1e1b4b}.form-grid[data-v-1c6b0481]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group[data-v-1c6b0481]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-1c6b0481]{font-size:13px;font-weight:500;color:#4b5563}.form-input[data-v-1c6b0481]{padding:10px 14px;border:1px solid #E5E5EA;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}.form-input[data-v-1c6b0481]:focus{border-color:#7c3aed}.toast[data-v-1c6b0481]{padding:12px 20px;border-radius:8px;margin-bottom:16px;font-size:14px}.toast.success[data-v-1c6b0481]{background:#ecfdf5;color:#065f46;border:1px solid #A7F3D0}.toast.error[data-v-1c6b0481]{background:#fef2f2;color:#991b1b;border:1px solid #FECACA}.loading-state[data-v-1c6b0481]{text-align:center;padding:60px 0;color:#8e8e93;font-size:14px}.info-row[data-v-1c6b0481]{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid #F0F0F5}.info-row[data-v-1c6b0481]:last-child{border-bottom:none}.info-label[data-v-1c6b0481]{font-size:13px;font-weight:500;color:#6e6e73;min-width:80px;padding-top:2px}.info-value[data-v-1c6b0481]{font-size:14px;color:#1e1b4b;display:flex;flex-wrap:wrap;gap:8px}.text-muted[data-v-1c6b0481]{color:#8e8e93;font-size:13px}.class-tag[data-v-1c6b0481]{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#f5f5f7;border-radius:8px;font-size:13px}.class-name[data-v-1c6b0481]{font-weight:600;color:#1e1b4b}.class-subjects[data-v-1c6b0481]{color:#7c3aed}.badge[data-v-1c6b0481]{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:13px}.badge-primary[data-v-1c6b0481]{background:#f5f3ff;color:#7c3aed;font-weight:500}.badge-secondary[data-v-1c6b0481]{background:#eff6ff;color:#1d4ed8;font-weight:500}.group-pick[data-v-1c6b0481]{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.gp-item[data-v-1c6b0481]{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1.5px solid #E5E5EA;border-radius:10px;font-size:14px;color:#3a3a3c;cursor:pointer;transition:all .15s ease;background:#fff}.gp-item input[data-v-1c6b0481]{width:24px;height:24px;accent-color:#7C3AED;cursor:pointer;flex-shrink:0}.gp-item.picked[data-v-1c6b0481]{border-color:#7c3aed;background:#f5f3ff;color:#7c3aed;font-weight:600}.page[data-v-190126b4]{max-width:800px;margin:0 auto;padding:20px}.page-header[data-v-190126b4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header h2[data-v-190126b4]{font-size:20px;font-weight:600;margin:0}.toast[data-v-190126b4]{padding:10px 16px;border-radius:8px;margin-bottom:12px;font-size:13px;background:#e8f9ee;color:#1b7f37}.submit-box[data-v-190126b4]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;padding:16px;margin-bottom:20px}.input-area[data-v-190126b4]{width:100%;border:1px solid #D1D1D6;border-radius:8px;padding:10px;font-size:14px;resize:vertical;box-sizing:border-box;font-family:inherit}.input-area[data-v-190126b4]:focus{outline:none;border-color:#1a5c4b}.submit-row[data-v-190126b4]{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.char-count[data-v-190126b4]{font-size:12px;color:#999}.btn[data-v-190126b4]{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px}.btn[data-v-190126b4]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-190126b4]{background:#1a5c4b;color:#fff}.btn-primary[data-v-190126b4]:hover{background:#134438}.btn-sm[data-v-190126b4]{padding:6px 14px;font-size:13px}.btn-ghost[data-v-190126b4]{background:transparent;border:1px solid #D1D1D6;color:#555}.btn-ghost[data-v-190126b4]:hover{background:#f5f5f7}.btn-toggle[data-v-190126b4]{border:none;background:transparent;color:#1a5c4b;cursor:pointer;font-size:12px;padding:2px 6px}.btn-toggle[data-v-190126b4]:hover{text-decoration:underline}.loading-state[data-v-190126b4]{text-align:center;padding:40px}.spinner[data-v-190126b4]{width:32px;height:32px;border:3px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-190126b4 .6s linear infinite;margin:0 auto}@keyframes spin-190126b4{to{transform:rotate(360deg)}}.empty-state[data-v-190126b4]{text-align:center;padding:40px;color:#999;font-size:14px}.feedback-list[data-v-190126b4]{display:flex;flex-direction:column;gap:12px}.feedback-card[data-v-190126b4]{background:#fff;border:1px solid #E5E5EA;border-radius:12px;padding:16px}.fb-header[data-v-190126b4]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.fb-time[data-v-190126b4]{font-size:12px;color:#999}.fb-status[data-v-190126b4]{font-size:12px;font-weight:500}.fb-status.resolved[data-v-190126b4]{color:#1b7f37}.fb-status.pending[data-v-190126b4]{color:#e67e22}.fb-content[data-v-190126b4]{font-size:14px;color:#333;line-height:1.6;white-space:pre-wrap}.fb-reply[data-v-190126b4]{margin-top:10px;padding:10px 12px;background:#f0f7ff;border-radius:8px}.reply-label[data-v-190126b4]{font-size:12px;color:#1a5c4b;font-weight:500;margin-bottom:4px}.reply-text[data-v-190126b4]{font-size:13px;color:#444;line-height:1.5;white-space:pre-wrap}.reply-time[data-v-190126b4]{font-size:11px;color:#999;margin-top:4px}.reply-box[data-v-190126b4]{margin-top:10px}.reply-actions[data-v-190126b4]{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.pagination[data-v-190126b4]{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px}.page-btn[data-v-190126b4]{padding:8px 20px;border:1.5px solid #D1D1D6;border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:#374151;cursor:pointer;font-family:inherit;transition:all .15s}.page-btn[data-v-190126b4]:hover:not(:disabled){border-color:#1a5c4b;color:#1a5c4b;background:#e8f3ef}.page-btn[data-v-190126b4]:disabled{opacity:.45;cursor:not-allowed}.page-info[data-v-190126b4]{font-size:13px;color:#6e6e73}.res-page[data-v-1050711d]{max-width:900px;padding:20px}.topbar h2[data-v-1050711d]{font-size:20px;font-weight:600;margin:0 0 16px}.tab-bar[data-v-1050711d]{display:flex;gap:8px;margin-bottom:16px}.tab-btn[data-v-1050711d]{padding:8px 20px;border:1.5px solid #E5E5EA;border-radius:10px;background:#fff;font-size:14px;font-weight:600;color:#6e6e73;cursor:pointer;font-family:inherit;transition:all .15s}.tab-btn.active[data-v-1050711d]{color:#1a5c4b;background:#e8f3ef;border-color:#1a5c4b}.toolbar[data-v-1050711d]{margin-bottom:16px}.btn[data-v-1050711d]{padding:8px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}.btn-primary[data-v-1050711d]{background:#1a5c4b;color:#fff}.btn-primary[data-v-1050711d]:hover{background:#134438}.btn-ghost[data-v-1050711d]{background:transparent;border:1px solid #D1D5DB;color:#374151}.btn-ghost[data-v-1050711d]:hover{background:#f9fafb}.btn-danger[data-v-1050711d]{background:transparent;border:1px solid #FCA5A5;color:#dc2626}.btn-danger[data-v-1050711d]:hover{background:#fef2f2}.btn-sm[data-v-1050711d]{padding:4px 12px;font-size:12px}.loading-row[data-v-1050711d]{display:flex;align-items:center;justify-content:center;padding:60px}.spinner[data-v-1050711d]{width:28px;height:28px;border:3px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-1050711d .8s linear infinite}@keyframes spin-1050711d{to{transform:rotate(360deg)}}.empty-row[data-v-1050711d]{text-align:center;padding:60px;color:#8e8e93;font-size:14px}.res-list[data-v-1050711d]{display:flex;flex-direction:column;gap:10px}.res-card[data-v-1050711d]{display:flex;align-items:center;gap:14px;padding:14px 18px;background:#fff;border:1px solid #E5E5EA;border-radius:12px;transition:all .15s}.res-card[data-v-1050711d]:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000a}.res-icon[data-v-1050711d]{font-size:28px;flex-shrink:0}.res-body[data-v-1050711d]{flex:1;min-width:0}.res-title[data-v-1050711d]{font-size:15px;font-weight:600;color:#1c1c1e}.res-desc[data-v-1050711d]{font-size:13px;color:#6e6e73;margin-top:3px}.res-meta[data-v-1050711d]{display:flex;gap:12px;margin-top:6px;font-size:12px;color:#8e8e93;flex-wrap:wrap}.res-dl[data-v-1050711d]{color:#1a5c4b;font-weight:600;text-decoration:none}.res-dl[data-v-1050711d]:hover{text-decoration:underline}.res-actions[data-v-1050711d]{display:flex;gap:6px;flex-shrink:0}.pagination[data-v-1050711d]{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}.page-btn[data-v-1050711d]{padding:8px 20px;border:1.5px solid #D1D5DB;border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:#374151;cursor:pointer;font-family:inherit;transition:all .15s}.page-btn[data-v-1050711d]:hover:not(:disabled){border-color:#1a5c4b;color:#1a5c4b;background:#e8f3ef}.page-btn[data-v-1050711d]:disabled{opacity:.45;cursor:not-allowed}.page-info[data-v-1050711d]{font-size:13px;color:#6e6e73}.toast[data-v-1050711d]{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;margin-bottom:12px;animation:fadeIn-1050711d .2s}.toast.success[data-v-1050711d]{background:#e8f9ee;color:#1b7f37;border:1px solid #B8E6C8}.toast.error[data-v-1050711d]{background:#ffeded;color:#ff3b30;border:1px solid #FFD0D0}@keyframes fadeIn-1050711d{0%{opacity:0}to{opacity:1}}.modal-overlay[data-v-1050711d]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-1050711d]{background:#fff;border-radius:16px;padding:28px;width:94%}.modal-content h3[data-v-1050711d]{font-size:18px;font-weight:600;margin:0 0 16px}.form-group[data-v-1050711d]{margin-bottom:14px}.form-group label[data-v-1050711d]{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:5px}.form-group .input[data-v-1050711d]{width:100%;padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;box-sizing:border-box;font-family:inherit}.form-group textarea.input[data-v-1050711d]{resize:vertical}.form-hint[data-v-1050711d]{font-size:11px;color:#9ca3af}.modal-actions[data-v-1050711d]{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.ann-page[data-v-174f7235]{max-width:900px;padding:20px}.page-head[data-v-174f7235]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.page-head h2[data-v-174f7235]{font-size:20px;font-weight:700;margin:0}.page-desc[data-v-174f7235]{font-size:13px;color:#8e8e93;margin:4px 0 16px}.btn[data-v-174f7235]{padding:8px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}.btn-primary[data-v-174f7235]{background:#1a5c4b;color:#fff}.btn-primary[data-v-174f7235]:hover{background:#134438}.btn-ghost[data-v-174f7235]{background:transparent;border:1px solid #D1D5DB;color:#374151}.btn-ghost[data-v-174f7235]:hover{background:#f9fafb}.btn-danger[data-v-174f7235]{background:transparent;border:1px solid #FCA5A5;color:#dc2626}.btn-danger[data-v-174f7235]:hover{background:#fef2f2}.btn-sm[data-v-174f7235]{padding:4px 12px;font-size:12px}.loading-row[data-v-174f7235]{display:flex;align-items:center;justify-content:center;padding:60px}.spinner[data-v-174f7235]{width:28px;height:28px;border:3px solid #E5E5EA;border-top-color:#1a5c4b;border-radius:50%;animation:spin-174f7235 .8s linear infinite}@keyframes spin-174f7235{to{transform:rotate(360deg)}}.empty-row[data-v-174f7235]{text-align:center;padding:60px;color:#8e8e93;font-size:14px}.ann-list[data-v-174f7235]{display:flex;flex-direction:column;gap:10px}.ann-card[data-v-174f7235]{padding:16px 18px;background:#fff;border:1px solid #E5E5EA;border-radius:12px}.ann-card.pinned[data-v-174f7235]{border-color:#f59e0b;box-shadow:0 2px 12px #f59e0b14}.ann-title-row[data-v-174f7235]{display:flex;align-items:center;gap:8px}.pin-badge[data-v-174f7235]{background:#f59e0b;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;flex-shrink:0}.ann-title[data-v-174f7235]{font-size:15px;font-weight:700;color:#1c1c1e}.ann-content[data-v-174f7235]{font-size:13px;color:#4b5563;line-height:1.7;margin:8px 0 10px;white-space:pre-wrap}.ann-meta[data-v-174f7235]{display:flex;gap:14px;align-items:center;font-size:12px;color:#9ca3af;flex-wrap:wrap}.ann-actions[data-v-174f7235]{margin-left:auto;display:flex;gap:6px}.toast[data-v-174f7235]{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;margin-bottom:12px;animation:fadeIn-174f7235 .2s}.toast.success[data-v-174f7235]{background:#e8f9ee;color:#1b7f37;border:1px solid #B8E6C8}.toast.error[data-v-174f7235]{background:#ffeded;color:#ff3b30;border:1px solid #FFD0D0}@keyframes fadeIn-174f7235{0%{opacity:0}to{opacity:1}}.modal-overlay[data-v-174f7235]{position:fixed;inset:0;background:#00000052;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:400}.modal-content[data-v-174f7235]{background:#fff;border-radius:16px;padding:28px;width:94%}.modal-content h3[data-v-174f7235]{font-size:18px;font-weight:600;margin:0 0 16px}.form-group[data-v-174f7235]{margin-bottom:14px}.form-group label[data-v-174f7235]{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:5px}.form-group .input[data-v-174f7235]{width:100%;padding:10px 14px;font-size:14px;border:1px solid #E5E5EA;border-radius:8px;box-sizing:border-box;font-family:inherit}.form-group textarea.input[data-v-174f7235]{resize:vertical}.checkbox-line[data-v-174f7235]{display:flex;align-items:center;gap:6px;font-weight:500;cursor:pointer}.modal-actions[data-v-174f7235]{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:#f2f2f7;color:#1c1c1e;-webkit-font-smoothing:antialiased}
