.drawer[data-v-2084aaf8]{position:fixed;inset:0 auto 0 0;width:260px;background:#fff;border-right:1px solid var(--border);box-shadow:var(--shadow);padding:14px 16px;transform:translate(-100%);transition:transform .25s ease;z-index:10;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.drawer.open[data-v-2084aaf8]{transform:translate(0)}@media (min-width: 768px){.drawer[data-v-2084aaf8]{position:sticky;transform:translate(0);height:100vh}}@media (max-width: 767px){.drawer[data-v-2084aaf8]{inset:auto;top:50%;left:50%;width:min(340px,calc(100% - 32px));max-height:calc(100% - 32px);border-radius:24px;padding:24px;transform:translate(-50%,-55%) scale(.9);opacity:0;pointer-events:none;gap:16px}.drawer.open[data-v-2084aaf8]{transform:translate(-50%,-55%) scale(1);opacity:1;pointer-events:auto}}.drawer__brand[data-v-2084aaf8]{display:flex;align-items:center;gap:10px}.avatar[data-v-2084aaf8]{width:44px;height:44px;border-radius:0;background:#fff;display:grid;place-items:center;overflow:hidden}.avatar img[data-v-2084aaf8]{width:100%;height:100%;object-fit:contain}.brand[data-v-2084aaf8]{margin:0;font-weight:700}.muted[data-v-2084aaf8]{margin:0;color:var(--muted);font-size:13px}.nav[data-v-2084aaf8]{display:grid;gap:6px}.nav__item[data-v-2084aaf8]{display:flex;align-items:center;gap:10px;padding:10px;border-radius:0;border:1px solid rgba(148,163,184,.5);background:transparent;color:var(--text);cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease;font-size:.9rem}.nav__item[data-v-2084aaf8]:hover{border-color:#38bdf8b3;background:#38bdf80d}.nav__item.active[data-v-2084aaf8]{border-color:#38bdf8e6;background:#38bdf81a;color:var(--accent)}.nav__icon[data-v-2084aaf8]{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}.nav__icon[data-v-2084aaf8] svg{width:18px;height:18px;stroke-width:1.6}.nav__icon-fallback[data-v-2084aaf8]{font-size:.85rem;font-weight:600}.drawer__cta[data-v-2084aaf8]{margin-top:auto;padding:12px;border-radius:0;border:1px dashed var(--border);background:#ffffff05}.user-label[data-v-2084aaf8]{margin:0;font-size:.8rem;font-weight:600;color:var(--muted);text-align:center;white-space:pre-line}.drawer__cta .cta[data-v-2084aaf8]{margin-top:8px;width:100%;padding:8px 12px;border-radius:0;border:1px solid rgba(56,189,248,.4);background:#38bdf814;color:var(--accent);cursor:pointer;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;gap:8px}.logout-btn[data-v-2084aaf8]{border-color:#38bdf866;background:#38bdf814;color:var(--accent)}.btn-icon[data-v-2084aaf8]{width:16px;height:16px}.shell[data-v-4952caaa]{display:grid;grid-template-columns:auto 1fr;min-height:100vh}.content[data-v-4952caaa]{position:relative;min-height:100vh;padding:16px}.page[data-v-4952caaa]{max-width:1200px;margin:0 auto}.mobile-toggle[data-v-4952caaa]{position:fixed;top:14px;left:14px;width:46px;height:46px;border:1px solid var(--border);border-radius:0;background:var(--panel);color:var(--text);display:inline-flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;padding:8px;box-shadow:var(--shadow);cursor:pointer;z-index:20}.login-wrap[data-v-4952caaa]{display:grid;place-items:center;min-height:70vh;width:100%;padding:12px 16px 20px;box-sizing:border-box;justify-items:stretch}.login-layout[data-v-4952caaa]{display:grid;gap:20px;width:min(960px,100%);grid-template-columns:minmax(260px,420px);align-items:stretch;justify-items:stretch;justify-content:center;margin:0 auto}.login-card[data-v-4952caaa]{width:100%;max-width:420px;margin:0 auto;border:1px solid var(--border);background:var(--panel);padding:24px 28px;box-shadow:var(--shadow);display:grid;gap:12px;color:var(--text)}.login-title[data-v-4952caaa]{text-align:center}.login-note[data-v-4952caaa]{text-align:center;margin:0 0 8px;color:var(--muted)}.login-btn[data-v-4952caaa]{border-radius:12px}.login-logo[data-v-4952caaa]{width:140px;margin:-8px auto 0;display:block;object-fit:contain}.login-logo-wrap[data-v-4952caaa]{grid-column:1 / -1;text-align:center;margin-top:-8px}.w-full[data-v-4952caaa]{width:100%}.preview-stage[data-v-4952caaa]{flex:1;display:grid;place-items:center}.device.desktop[data-v-4952caaa]{border-radius:18px}@media (max-width: 768px){.login-layout[data-v-4952caaa]{grid-template-columns:1fr;width:100%}.login-card[data-v-4952caaa]{order:1;width:100%;padding:20px 16px;max-width:100%}.panel .category-pies[data-v-4952caaa]{grid-template-columns:1fr 1fr;gap:8px}.category-card[data-v-4952caaa]{flex-direction:row;align-items:flex-start;justify-content:flex-start;text-align:left;gap:6px;padding:8px;min-height:0;font-size:.85rem}.mini-pie[data-v-4952caaa]{width:54px;height:54px;margin:0}.mini-center[data-v-4952caaa]{top:10px;right:10px;bottom:10px;left:10px;font-size:.75rem}.category-info[data-v-4952caaa]{margin-left:0}}.toggle-line[data-v-4952caaa]{display:block;width:20px;height:2px;border-radius:0;background:var(--text);transition:width .2s ease,transform .2s ease}.toggle-line.short[data-v-4952caaa]{width:14px;transform:translate(-4px)}.matric-input[data-v-4952caaa]{background:var(--panel);border:1px solid var(--border);border-radius:0;color:var(--text);padding:12px 14px;min-width:0;width:100%;box-sizing:border-box}.captcha-row[data-v-4952caaa]{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.captcha-question[data-v-4952caaa]{margin:10px 0 4px;font-weight:600;color:var(--muted)}.captcha-input[data-v-4952caaa]{width:100%}.captcha-actions[data-v-4952caaa]{display:flex;align-items:center;gap:6px}.captcha-img[data-v-4952caaa]{width:120px;height:44px;border-radius:6px;border:1px solid var(--border);object-fit:cover;background:#fff}.refresh-btn[data-v-4952caaa]{border-radius:999px;width:32px;height:32px;padding:0;border:1px solid rgba(148,163,184,.7);background:#fff;color:var(--text);display:inline-flex;align-items:center;justify-content:center;font-size:1rem}.refresh-btn[data-v-4952caaa]:hover{background:#94a3b814;border-color:#94a3b8e6;color:var(--muted)}.error[data-v-4952caaa]{margin-top:10px;padding:10px 14px;border-radius:8px;background:#fee2e2;border:1px solid #fecaca;color:#b91c1c;font-weight:500}.loading[data-v-4952caaa]{color:var(--muted)}.overlay[data-v-4952caaa]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9}.modal-overlay[data-v-4952caaa]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:25}.modal[data-v-4952caaa]{width:min(420px,90vw);background:var(--panel);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow);padding:20px;color:var(--text)}.modal h3[data-v-4952caaa]{margin:0 0 8px}.modal p[data-v-4952caaa]{margin:0 0 16px;color:var(--muted)}.modal-btn[data-v-4952caaa]{width:100%;color:#fff!important}.breadcrumb[data-v-4952caaa]{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;background:#ffffff0a;border:1px solid var(--border);border-radius:0;color:var(--muted);font-weight:600;margin-left:58px}.pill[data-v-4952caaa]{display:inline-flex;align-items:center;padding:4px 10px;background:#38bdf81f;color:var(--accent);border-radius:0;font-size:12px}.hero[data-v-4952caaa]{margin-top:18px;display:grid;grid-template-columns:1.3fr .7fr;gap:16px;align-items:stretch}.hero-card[data-v-4952caaa]{background:var(--panel);border:1px solid var(--border);border-radius:0;padding:18px;box-shadow:var(--shadow)}.hero-pills[data-v-4952caaa]{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0 16px}.hero-pill[data-v-4952caaa]{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff;color:#0f172a;box-shadow:0 6px 20px #0f172a1f}.pill-label[data-v-4952caaa]{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.pill-value[data-v-4952caaa]{margin:4px 0 0;font-size:1.5rem;font-weight:700}.pill-note[data-v-4952caaa]{margin:2px 0 0;font-size:.8rem;color:var(--muted)}.hero h1[data-v-4952caaa]{margin:6px 0;font-size:clamp(26px,3vw,34px)}.subtitle[data-v-4952caaa]{margin:0 0 14px;color:var(--muted);line-height:1.4}.eyebrow[data-v-4952caaa]{margin:0;color:var(--accent);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.h-label[data-v-4952caaa]{color:var(--muted);margin:0;font-size:12px;letter-spacing:.08em}.h-value[data-v-4952caaa]{margin:4px 0;font-weight:600;font-size:18px}.h-divider[data-v-4952caaa]{height:1px;background:var(--border);margin:14px 0}.hero-divider[data-v-4952caaa]{width:100%;border:0;border-top:1px solid var(--border);margin:8px 0 12px}.login-divider[data-v-4952caaa]{width:100%;border:0;border-top:1px solid var(--border);margin:6px 0 12px}.actions[data-v-4952caaa]{display:flex;gap:10px}.cta[data-v-4952caaa]{border:1px solid var(--border);border-radius:10px;background:#ffffff0a;color:var(--text);padding:12px 14px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}.cta.primary[data-v-4952caaa]{background:linear-gradient(120deg,var(--accent),var(--accent-strong));color:#0b1221;border:none;box-shadow:0 10px 40px #38bdf859}.cta.primary[data-v-4952caaa]:hover,.cta.whitelist[data-v-4952caaa]:hover{filter:brightness(1.05)}.cta.ghost[data-v-4952caaa]:hover{background:#ffffff14}.cta.whitelist[data-v-4952caaa]{background:linear-gradient(120deg,var(--accent),var(--accent-strong));color:#fff;border:none;border-radius:10px;box-shadow:0 6px 20px #0d6efd4d}.cta.ghost[data-v-4952caaa]{background:#ef4444;color:#fff;border:none}.cta.small[data-v-4952caaa]{padding:4px 10px;min-height:28px;border-radius:10px;display:inline-flex;align-items:center;gap:6px;font-size:.8rem;line-height:1}.cta[data-v-4952caaa]:disabled{opacity:.5;cursor:not-allowed}.btn-icon[data-v-4952caaa]{width:16px;height:16px}.spin[data-v-4952caaa]{animation:spin-4952caaa .9s linear infinite}@keyframes spin-4952caaa{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stat-grid[data-v-4952caaa]{margin-top:16px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat-card[data-v-4952caaa]{border:1px solid var(--border);border-radius:0;padding:16px;background:var(--panel);box-shadow:var(--shadow)}.category-pies[data-v-4952caaa]{margin-top:20px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.category-pies.inline[data-v-4952caaa]{margin-top:16px}.category-card[data-v-4952caaa]{border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;align-items:center;gap:10px;background:#fff;box-shadow:0 4px 15px #0f172a14}.mini-pie[data-v-4952caaa]{width:54px;height:54px;border-radius:50%;position:relative;flex-shrink:0;background:#fff;box-shadow:inset 0 0 0 1px #0f172a14;margin:0}.mini-center[data-v-4952caaa]{position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:.75rem;font-weight:600}.category-info .label[data-v-4952caaa]{margin:0;font-size:.85rem;color:var(--muted)}.category-info .value[data-v-4952caaa]{margin:2px 0 0;font-size:1.1rem;font-weight:600}.category-info .percent[data-v-4952caaa]{margin:2px 0 0;font-size:.85rem;color:var(--muted)}.stat-card .label[data-v-4952caaa]{margin:0;color:var(--muted);font-weight:600}.stat-card .value[data-v-4952caaa]{margin:6px 0 4px;font-size:24px;font-weight:700}.stat-card .hint[data-v-4952caaa]{margin:0;color:var(--muted)}.stat-card.small[data-v-4952caaa]{padding:12px}.panel[data-v-4952caaa]{margin-top:18px;border:1px solid var(--border);border-radius:0;background:var(--panel);padding:18px;box-shadow:var(--shadow)}.panel.compact[data-v-4952caaa]{margin-top:12px;padding:14px 16px}.panel-head[data-v-4952caaa]{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head.small[data-v-4952caaa]{padding:6px 0}.panel h2[data-v-4952caaa]{margin:6px 0 0}.chip[data-v-4952caaa]{border-radius:0;border:1px solid var(--border);background:#38bdf824;color:var(--accent);padding:10px 12px;cursor:pointer}.chip.ghost[data-v-4952caaa]{background:transparent;color:var(--muted)}.offers[data-v-4952caaa]{display:grid;gap:12px;margin-top:14px}.offer-summary[data-v-4952caaa]{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:10px}.summary-card[data-v-4952caaa]{border:1px solid var(--border);border-radius:0;padding:12px;background:var(--card)}.summary-card .label[data-v-4952caaa]{margin:0;color:var(--muted)}.summary-card .value[data-v-4952caaa]{margin:6px 0 0;font-weight:700}.info-badge[data-v-4952caaa]{margin-top:12px;padding:12px;border-radius:0;border:1px solid rgba(56,189,248,.35);background:#38bdf814;color:var(--text)}.info-badge-alert[data-v-4952caaa]{border-color:#f8717199;background:#fee2e2;color:#b91c1c}.info-badge-success[data-v-4952caaa]{border-color:#4ade8080;background:#ecfdf5;color:#15803d}.suggestions[data-v-4952caaa]{display:grid;gap:14px;margin-top:14px}.suggest-block[data-v-4952caaa]{border:1px solid var(--border);border-radius:0;padding:12px;background:var(--card)}.offer-card[data-v-4952caaa]{display:flex;justify-content:space-between;align-items:center;padding:14px;border-radius:0;border:1px solid var(--border);background:var(--card);transition:border-color .2s ease,transform .2s ease}.offer-card[data-v-4952caaa]:hover{border-color:#38bdf866;transform:translateY(-1px)}.offer-card.muted[data-v-4952caaa]{background:#38bdf81f;border-color:#38bdf859}.chip-group[data-v-4952caaa]{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}.category-card.clickable[data-v-4952caaa],.panel-head.clickable[data-v-4952caaa]{cursor:pointer}.modal-core[data-v-4952caaa]{max-width:720px;width:100%;max-height:80vh;overflow-y:auto}.modal-core-section[data-v-4952caaa]{margin-top:12px}.modal-core-section h4[data-v-4952caaa]{margin:0 0 6px}.code[data-v-4952caaa]{margin:0;letter-spacing:.12em;font-size:12px;color:var(--muted);text-transform:uppercase}.name[data-v-4952caaa]{margin:4px 0;font-weight:700}.meta[data-v-4952caaa]{margin:0;color:var(--muted)}.whitelist[data-v-4952caaa]{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.wl-pill[data-v-4952caaa]{padding:10px 12px;border-radius:0;background:#38bdf81f;color:var(--text);border:1px solid rgba(56,189,248,.35)}.wl-pill.muted[data-v-4952caaa]{opacity:.6}.subtitle[data-v-4952caaa],.label[data-v-4952caaa],.value[data-v-4952caaa],.hint[data-v-4952caaa],.meta[data-v-4952caaa],.name[data-v-4952caaa],.code[data-v-4952caaa],.h-value[data-v-4952caaa]{line-height:1.2}.profile-grid[data-v-4952caaa]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}.kv[data-v-4952caaa]{border:1px solid var(--border);border-radius:0;padding:12px;background:var(--card)}.kv span[data-v-4952caaa]{color:var(--muted);font-size:12px}.kv strong[data-v-4952caaa]{display:block;margin-top:6px;font-size:18px}.list[data-v-4952caaa]{display:grid;gap:8px;margin-top:10px}.list.numbered[data-v-4952caaa]{list-style:none;padding:0;margin:10px 0 0}.list-row[data-v-4952caaa]{border:1px solid var(--border);border-radius:0;padding:12px;background:var(--card);display:grid;gap:4px}.numbered-row[data-v-4952caaa]{grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.badge[data-v-4952caaa]{width:30px;height:30px;border-radius:999px;background:#38bdf833;color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700}.empty[data-v-4952caaa]{color:var(--muted);margin-top:8px}.footer[data-v-4952caaa]{margin-top:8px;padding:12px 8px 20px;text-align:center;color:var(--muted);font-weight:400;font-size:.9rem}@media (min-width: 768px){.mobile-toggle[data-v-4952caaa],.overlay[data-v-4952caaa]{display:none}.content[data-v-4952caaa]{padding:24px 28px}.breadcrumb[data-v-4952caaa]{margin-left:0}.category-pies .mini-pie[data-v-4952caaa]{margin:0 auto}}@media (max-width: 767px){.offer-card[data-v-4952caaa]{flex-direction:column;align-items:flex-start;gap:12px}.offer-card button[data-v-4952caaa]{width:100%;display:block;margin-top:4px;text-align:center}}@media (max-width: 767px){.shell[data-v-4952caaa],.hero[data-v-4952caaa]{grid-template-columns:1fr}.panel-head[data-v-4952caaa]{flex-direction:column;align-items:flex-start}.actions[data-v-4952caaa]{flex-wrap:wrap}.stat-grid[data-v-4952caaa]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}.shell[data-v-240ba6e3]{display:grid;grid-template-columns:auto 1fr;min-height:100vh}.shell.no-drawer[data-v-240ba6e3]{grid-template-columns:1fr}.shell.login-mode .content[data-v-240ba6e3]{display:flex;align-items:center;justify-content:center;min-height:100vh}.content[data-v-240ba6e3]{position:relative;min-height:100vh;padding:16px}.page[data-v-240ba6e3]{max-width:1200px;margin:0 auto}.breadcrumb[data-v-240ba6e3]{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;background:#ffffff0a;border:1px solid var(--border);border-radius:0;color:var(--muted);font-weight:600}.breadcrumb-row[data-v-240ba6e3]{display:flex;align-items:center;justify-content:space-between;gap:12px}.pill[data-v-240ba6e3]{display:inline-flex;align-items:center;padding:4px 10px;background:#38bdf81f;color:var(--accent);border-radius:0;font-size:12px}.hero[data-v-240ba6e3]{margin-top:18px;display:grid;grid-template-columns:1.3fr .7fr;gap:16px;align-items:stretch}.hero h1[data-v-240ba6e3]{margin:6px 0;font-size:clamp(26px,3vw,34px)}.subtitle[data-v-240ba6e3]{margin:0 0 14px;color:var(--muted);line-height:1.4}.eyebrow[data-v-240ba6e3]{margin:0;color:var(--accent);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.panel[data-v-240ba6e3]{margin-top:18px;border:1px solid var(--border);border-radius:0;background:var(--panel);padding:18px;box-shadow:var(--shadow)}.panel.compact[data-v-240ba6e3]{margin-top:12px;padding:14px 16px}.panel-head[data-v-240ba6e3]{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head.small[data-v-240ba6e3]{padding:6px 0}.info-badge[data-v-240ba6e3]{margin-top:12px;padding:12px;border-radius:0;border:1px solid rgba(56,189,248,.35);background:#38bdf814;color:var(--text)}.suggestions[data-v-240ba6e3]{display:grid;gap:14px;margin-top:14px}.suggest-block[data-v-240ba6e3]{border:1px solid var(--border);border-radius:0;padding:12px;background:var(--card)}.list[data-v-240ba6e3]{display:grid;gap:8px;margin-top:10px}.list-row[data-v-240ba6e3]{border:1px solid var(--border);border-radius:0;padding:12px;background:var(--card);display:grid;gap:4px}.badge[data-v-240ba6e3]{width:30px;height:30px;border-radius:999px;background:#38bdf833;color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700}.stat-grid[data-v-240ba6e3]{margin-top:16px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.stat-card[data-v-240ba6e3]{border:1px solid var(--border);border-radius:0;padding:12px 14px;background:var(--panel);box-shadow:var(--shadow)}.student-card[data-v-240ba6e3]{position:relative;overflow:hidden}.stat-bg-icon[data-v-240ba6e3]{position:absolute;right:-4px;bottom:-6px;width:70px;height:70px;color:var(--accent);opacity:.04;pointer-events:none}.stat-card .label[data-v-240ba6e3]{margin:0;font-size:.8rem;color:var(--muted)}.stat-card .value[data-v-240ba6e3]{margin:4px 0 0;font-size:1.3rem;font-weight:600}.timetable-list .list-row[data-v-240ba6e3]{font-size:.9rem}.pie-card[data-v-240ba6e3]{display:flex;align-items:center;justify-content:center}.pie-wrap[data-v-240ba6e3]{position:relative;width:120px;height:120px}.donut[data-v-240ba6e3]{transform:rotate(-90deg)}.donut-ring[data-v-240ba6e3],.donut-segment[data-v-240ba6e3]{stroke-linecap:round}.donut-segment.core[data-v-240ba6e3]{stroke:#22c55e}.donut-segment.sit[data-v-240ba6e3]{stroke:#2563eb}.donut-segment.mpu[data-v-240ba6e3]{stroke:#f97316}.donut-segment.uni[data-v-240ba6e3]{stroke:#06b6d4}.donut-segment.bba[data-v-240ba6e3]{stroke:#ec4899}.donut-segment.fyp[data-v-240ba6e3]{stroke:#a855f7}.donut-segment.industrial[data-v-240ba6e3]{stroke:#10b981}.donut-segment.total[data-v-240ba6e3]{stroke:#475569}.pie-center[data-v-240ba6e3]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;padding:6px;box-sizing:border-box}.pie-center .value[data-v-240ba6e3]{margin:0;font-size:1.05rem;font-weight:700}.pie-center .label[data-v-240ba6e3]{margin:0;font-size:.82rem;color:var(--muted)}.pie-center .label.small[data-v-240ba6e3]{font-size:.75rem}.action-buttons[data-v-240ba6e3]{display:inline-flex;gap:6px;align-items:center}.icon-action[data-v-240ba6e3]{border:1px solid rgba(34,197,94,.7);background:linear-gradient(90deg,#22c55ee6,#16a34ae6);color:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;padding:6px 10px;font-size:.85rem;font-weight:700;gap:6px}.icon-action[data-v-240ba6e3]:hover{background:linear-gradient(90deg,#22c55e,#16a34a);border-color:#22c55e}.icon-action.danger[data-v-240ba6e3]{color:#fff;background:#ef4444;border-color:#ef4444}.icon-action.danger[data-v-240ba6e3]:hover{background:#dc2626;border-color:#dc2626}.icon-action .btn-icon[data-v-240ba6e3]{width:16px;height:16px}.badge-row[data-v-240ba6e3]{margin-top:4px}.pill-badge[data-v-240ba6e3]{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#38bdf824;color:var(--accent);font-size:.8rem;font-weight:700;line-height:1}.pill-core[data-v-240ba6e3]{background:#22c55e24;color:#16a34a}.pill-elective[data-v-240ba6e3]{background:#3b82f624;color:#1d4ed8}.pill-mpu[data-v-240ba6e3]{background:#eab3082e;color:#b45309}.pill-uni[data-v-240ba6e3]{background:#0ea5e926;color:#0ea5e9}.pill-bba[data-v-240ba6e3]{background:#f9731626;color:#ea580c}.pill-other[data-v-240ba6e3]{background:#6366f126;color:#4338ca}.pill-uncat[data-v-240ba6e3]{background:#f8717133;color:#b91c1c}.toggle-row[data-v-240ba6e3]{display:flex;align-items:center;gap:8px}.switch-label[data-v-240ba6e3]{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:var(--text)}.switch-label input[data-v-240ba6e3]{width:18px;height:18px;accent-color:#16a34a}.toggle-btn[data-v-240ba6e3]{display:inline-flex;align-items:center;gap:10px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#f8fafc;cursor:pointer;transition:all .15s ease;min-width:190px}.toggle-btn.on[data-v-240ba6e3]{border-color:#22c55eb3;background:#22c55e1f}.toggle-btn.loading[data-v-240ba6e3]{opacity:.6;cursor:not-allowed}.toggle-thumb[data-v-240ba6e3]{width:18px;height:18px;border-radius:999px;background:#e2e8f0;transition:all .15s ease}.toggle-btn.on .toggle-thumb[data-v-240ba6e3]{background:#16a34a;box-shadow:0 0 0 3px #16a34a33}.toggle-label[data-v-240ba6e3]{font-weight:700;font-size:.85rem;color:var(--text);white-space:nowrap}.hop-badge[data-v-240ba6e3]{display:none}@media (min-width: 768px){.hop-badge[data-v-240ba6e3]{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;border:1px solid rgba(56,189,248,.45);background:#38bdf81f;color:var(--text);font-size:.8rem;white-space:nowrap}.hop-badge strong[data-v-240ba6e3]{margin-left:4px;font-weight:700}}.list-desktop[data-v-240ba6e3]{display:none}.table-row[data-v-240ba6e3]{display:grid;grid-template-columns:50px 150px 1fr 180px 90px;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);background:var(--card);font-size:.9rem}.table-header[data-v-240ba6e3]{background:#0f172a05;font-weight:600;color:var(--muted)}.header-btn[data-v-240ba6e3]{border:none;background:transparent;padding:0;text-align:left;cursor:pointer;display:inline-flex;align-items:center;gap:4px;color:inherit;font:inherit}.table-footer[data-v-240ba6e3]{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:8px}.page-info[data-v-240ba6e3]{font-size:.85rem;color:var(--muted)}.category-table .table-row[data-v-240ba6e3]{grid-template-columns:52px 135px 1fr 80px 210px;font-size:1rem}@media (min-width: 1100px){.category-table .table-row[data-v-240ba6e3]{grid-template-columns:60px 150px 1fr 90px 240px}}.category-table .col-sem[data-v-240ba6e3]{display:flex;justify-content:flex-end}.category-table .action-buttons[data-v-240ba6e3]{flex-wrap:nowrap;justify-content:flex-end}.category-table .icon-action[data-v-240ba6e3]{padding:6px 9px;font-size:.82rem;white-space:nowrap}@media (max-width: 767px){.table-footer .cta.small span[data-v-240ba6e3]{display:none}}@media (min-width: 768px){.list-mobile[data-v-240ba6e3]{display:none}.list-desktop[data-v-240ba6e3]{display:grid}}.chip-group[data-v-240ba6e3]{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}.chip[data-v-240ba6e3]{border-radius:0;border:1px solid var(--border);background:#38bdf824;color:var(--accent);padding:10px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chip.ghost[data-v-240ba6e3]{background:transparent;color:var(--muted)}.chip-count[data-v-240ba6e3]{min-width:22px;height:22px;border-radius:999px;background:#38bdf826;color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.chip-count-active[data-v-240ba6e3]{background:#fff;color:var(--accent)}.matric-input[data-v-240ba6e3]{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:0;background:#fff;color:#0f172a}.captcha-row[data-v-240ba6e3]{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:10px 0}.captcha-actions[data-v-240ba6e3]{display:flex;align-items:center;gap:6px}.captcha-img[data-v-240ba6e3]{height:44px;border:1px solid var(--border)}.refresh-btn[data-v-240ba6e3]{border:1px solid var(--border);background:#fff;padding:8px 10px;cursor:pointer}.login-wrap[data-v-240ba6e3]{display:grid;place-items:center;min-height:auto;width:100%;padding:12px 16px 20px;box-sizing:border-box;justify-items:stretch}.login-layout[data-v-240ba6e3]{display:grid;gap:20px;width:min(960px,100%);grid-template-columns:minmax(260px,420px);align-items:stretch;justify-items:stretch;justify-content:center;margin:0 auto}.login-card[data-v-240ba6e3]{width:100%;max-width:420px;margin:0 auto;border:1px solid var(--border);background:var(--panel);padding:24px 28px;box-shadow:var(--shadow);display:grid;gap:12px;color:var(--text)}.login-logo-wrap[data-v-240ba6e3]{grid-column:1 / -1;text-align:center;margin-top:-8px}.login-logo[data-v-240ba6e3]{width:140px;margin:-8px auto 0;display:block;object-fit:contain}.login-footer[data-v-240ba6e3]{margin-top:12px;text-align:center;font-size:13px;color:var(--muted)}.cta[data-v-240ba6e3]{border:1px solid var(--border);border-radius:10px;background:#ffffff0a;color:var(--text);padding:12px 14px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}.cta.primary[data-v-240ba6e3]{background:linear-gradient(120deg,var(--accent),var(--accent-strong));color:#0b1221;border:none;box-shadow:0 10px 40px #38bdf859}.cta.ghost[data-v-240ba6e3]{background:#ef4444;color:#fff;border:none}.cta.success[data-v-240ba6e3]{background:#22c55e;border-color:#16a34a;color:#fff}.cta.small[data-v-240ba6e3]{padding:6px 12px;min-height:36px;border-radius:12px;font-size:.9rem}.btn-icon[data-v-240ba6e3]{width:16px;height:16px}.white-icon[data-v-240ba6e3]{color:#fff!important}.white-icon[data-v-240ba6e3] svg{color:#fff;stroke:#fff}.readme-box[data-v-240ba6e3]{border:1px solid var(--border);border-radius:0;padding:12px;background:var(--panel);margin-top:8px;max-height:420px;overflow:auto;font-size:.85rem}.readme-box pre[data-v-240ba6e3]{margin:0;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.login-title[data-v-240ba6e3]{text-align:center;margin:0 0 12px}.user-form .field[data-v-240ba6e3]{display:grid;gap:4px;margin-top:8px}.user-form .field span[data-v-240ba6e3]{font-size:12px;font-weight:600;color:var(--muted)}.password-wrap[data-v-240ba6e3]{position:relative;display:flex;align-items:center}.password-wrap .matric-input[data-v-240ba6e3]{padding-right:40px}.icon-toggle[data-v-240ba6e3]{position:absolute;right:8px;border:none;background:transparent;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}.error[data-v-240ba6e3]{color:#b91c1c;margin-top:8px}.error-badge[data-v-240ba6e3]{border-color:#f8717199;background:#f871711f;color:#b91c1c}.success-badge[data-v-240ba6e3]{border-color:#16a34a80;background:#22c55e1f;color:#166534}.loading[data-v-240ba6e3]{margin-top:10px}.overlay[data-v-240ba6e3]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:5}.modal-overlay[data-v-240ba6e3]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:25}.modal[data-v-240ba6e3]{width:min(720px,90vw);background:var(--panel);border:1px solid var(--border);border-radius:0;box-shadow:var(--shadow);padding:20px;color:var(--text);max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal h3[data-v-240ba6e3]{margin:0 0 8px}.modal p[data-v-240ba6e3]{margin:0 0 16px;color:var(--muted)}.modal-btn[data-v-240ba6e3]{width:100%;color:#fff!important}.graph-legend[data-v-240ba6e3]{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0;color:var(--muted);font-size:.9rem}.mobile-toggle[data-v-240ba6e3]{position:fixed;top:14px;left:14px;width:46px;height:46px;border:1px solid var(--border);border-radius:0;background:var(--panel);color:var(--text);display:inline-flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;padding:8px;box-shadow:var(--shadow);cursor:pointer;z-index:20}.toggle-line[data-v-240ba6e3]{width:18px;height:2px;background:currentColor}.toggle-line.short[data-v-240ba6e3]{width:12px}@media (min-width: 768px){.mobile-toggle[data-v-240ba6e3]{display:none}}.no-drawer .content[data-v-240ba6e3]{padding-left:0}@media (min-width: 768px){.no-drawer .page[data-v-240ba6e3]{max-width:980px}}:root{--bg: #ffffff;--panel: #ffffff;--accent: #0d6efd;--accent-strong: #0b5ed7;--text: #0f172a;--muted: #4b5563;--card: #f8fafc;--border: #e5e7eb;--radius: 0px;--shadow: 0 12px 40px rgba(15, 23, 42, .08);font-family:Manrope,Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}.matric-input,input,button,textarea{font-size:16px}.shell.no-drawer{display:block}a{color:inherit;text-decoration:none}button{font:inherit}
