.page[data-v-8bd47251]{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.card[data-v-8bd47251]{background:#fff;border-radius:12px;padding:40px;width:380px;box-shadow:0 20px 60px #0000004d}.logo[data-v-8bd47251]{text-align:center;font-size:28px;font-weight:700;color:#1677ff;margin-bottom:8px}h2[data-v-8bd47251]{text-align:center;color:#333;font-size:18px;font-weight:500;margin-bottom:28px}input[data-v-8bd47251]{width:100%;padding:12px;margin:8px 0;border:1px solid #d9d9d9;border-radius:6px;box-sizing:border-box;font-size:14px;transition:border .2s}input[data-v-8bd47251]:focus{border-color:#1677ff;outline:none;box-shadow:0 0 0 2px #1677ff1a}button[data-v-8bd47251]{width:100%;padding:12px;margin-top:16px;background:#1677ff;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}button[data-v-8bd47251]:hover{background:#4096ff}button[data-v-8bd47251]:disabled{background:#a0c4ff;cursor:not-allowed}.error[data-v-8bd47251]{background:#fff2f0;border:1px solid #ffccc7;color:#ff4d4f;padding:8px 12px;border-radius:6px;margin-bottom:12px;font-size:13px;text-align:center}.success[data-v-8bd47251]{background:#f6ffed;border:1px solid #b7eb8f;color:#52c41a;padding:8px 12px;border-radius:6px;margin-bottom:12px;font-size:13px;text-align:center}.links[data-v-8bd47251]{text-align:center;margin-top:20px}.links a[data-v-8bd47251]{color:#1677ff;font-size:13px;text-decoration:none}.links a[data-v-8bd47251]:hover{text-decoration:underline}.page[data-v-25e2c4ec]{display:flex;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.sidebar[data-v-25e2c4ec]{width:240px;background:#1a1a2e;color:#fff;padding:24px;display:flex;flex-direction:column}.sidebar .logo[data-v-25e2c4ec]{font-size:22px;font-weight:700;color:#1677ff;margin-bottom:28px}.user[data-v-25e2c4ec]{text-align:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:20px}.avatar[data-v-25e2c4ec]{width:48px;height:48px;background:#1677ff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;margin:0 auto 8px}.name[data-v-25e2c4ec]{font-size:15px;font-weight:500}.role[data-v-25e2c4ec]{font-size:12px;color:#ffffff80;margin-top:4px}nav a[data-v-25e2c4ec],nav .router-link-active[data-v-25e2c4ec]{display:flex;align-items:center;gap:10px;padding:12px;color:#ffffffb3;text-decoration:none;border-radius:8px;margin:4px 0;transition:all .2s}nav a[data-v-25e2c4ec]:hover,nav .router-link-active[data-v-25e2c4ec]{background:#1677ff33;color:#fff}.main[data-v-25e2c4ec]{flex:1;padding:40px;background:#f5f7fa}.main h1[data-v-25e2c4ec]{font-size:24px;color:#333;margin-bottom:32px;font-weight:500}.cards[data-v-25e2c4ec]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.card[data-v-25e2c4ec]{background:#fff;border-radius:12px;padding:24px;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #0000000f}.card[data-v-25e2c4ec]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a}.icon[data-v-25e2c4ec]{font-size:36px;margin-bottom:12px}.title[data-v-25e2c4ec]{font-size:16px;font-weight:600;margin-bottom:8px;color:#333}.desc[data-v-25e2c4ec]{font-size:13px;color:#888;line-height:1.5}.page[data-v-084b0a05]{display:flex;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.sidebar[data-v-084b0a05]{width:240px;background:#1a1a2e;color:#fff;padding:24px;display:flex;flex-direction:column}.sidebar .logo[data-v-084b0a05]{font-size:22px;font-weight:700;color:#1677ff;margin-bottom:28px}.user[data-v-084b0a05]{text-align:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:20px}.avatar[data-v-084b0a05]{width:48px;height:48px;background:#1677ff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;margin:0 auto 8px}.name[data-v-084b0a05]{font-size:15px;font-weight:500}.role[data-v-084b0a05]{font-size:12px;color:#ffffff80;margin-top:4px}nav a[data-v-084b0a05],nav .router-link-active[data-v-084b0a05]{display:flex;align-items:center;gap:10px;padding:12px;color:#ffffffb3;text-decoration:none;border-radius:8px;margin:4px 0;transition:all .2s}nav a[data-v-084b0a05]:hover,nav .router-link-active[data-v-084b0a05]{background:#1677ff33;color:#fff}.main[data-v-084b0a05]{flex:1;padding:40px;background:#f5f7fa}.main h1[data-v-084b0a05]{font-size:24px;color:#333;margin-bottom:32px;font-weight:500}.profile-card[data-v-084b0a05]{background:#fff;border-radius:12px;padding:32px;max-width:600px;box-shadow:0 2px 8px #0000000f}.field[data-v-084b0a05]{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #f0f0f0}.field[data-v-084b0a05]:last-of-type{border-bottom:none}.field label[data-v-084b0a05]{width:100px;font-size:14px;color:#888;flex-shrink:0}.field span[data-v-084b0a05],.field input[data-v-084b0a05]{flex:1;font-size:14px;color:#333}.field input[data-v-084b0a05]{padding:8px 12px;border:1px solid #d9d9d9;border-radius:6px;outline:none;transition:border .2s}.field input[data-v-084b0a05]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1a}.badge[data-v-084b0a05]{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:500}.badge.admin[data-v-084b0a05]{background:#fff1f0;color:#cf1322}.badge.teacher[data-v-084b0a05]{background:#fff7e6;color:#d46b08}.badge.student[data-v-084b0a05]{background:#f0f5ff;color:#1677ff}.badge.pending[data-v-084b0a05]{background:#fffbe6;color:#d4b106}.badge.active[data-v-084b0a05]{background:#f6ffed;color:#389e0d}.badge.disabled[data-v-084b0a05]{background:#f5f5f5;color:#999}.actions[data-v-084b0a05]{margin-top:24px;display:flex;align-items:center;gap:16px}.btn-primary[data-v-084b0a05]{padding:10px 24px;background:#1677ff;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.btn-primary[data-v-084b0a05]:hover:not(:disabled){background:#4096ff}.btn-primary[data-v-084b0a05]:disabled{opacity:.5;cursor:not-allowed}.msg[data-v-084b0a05]{font-size:13px}.msg.success[data-v-084b0a05]{color:#389e0d}.msg.error[data-v-084b0a05]{color:#cf1322}.msg.info[data-v-084b0a05]{color:#1677ff}.loading[data-v-084b0a05]{padding:40px;text-align:center;color:#999}
