:root{color-scheme:light;--font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--r-xs: 10px;--r-sm: 12px;--r-md: 14px;--r-lg: 18px;--r-xl: 22px;--bg: #f6f7fb;--surface: #ffffff;--surface-2: #fbfcff;--surface-3: #f3f6ff;--text: #111827;--muted: #6b7280;--muted-2: #8b94a7;--border: #e6eaf2;--border-2: #d9dfeb;--primary: #2563eb;--primary-600: #1d4ed8;--primary-50: rgba(37, 99, 235, .08);--danger: #ef4444;--danger-50: rgba(239, 68, 68, .1);--success: #22c55e;--success-50: rgba(34, 197, 94, .12);--warning: #f59e0b;--warning-50: rgba(245, 158, 11, .14);--shadow-xs: 0 1px 0 rgba(17, 24, 39, .04), 0 1px 2px rgba(17, 24, 39, .06);--shadow-sm: 0 2px 6px rgba(17, 24, 39, .08);--shadow-md: 0 12px 26px rgba(17, 24, 39, .1);--shadow-lg: 0 18px 44px rgba(17, 24, 39, .14);--focus: rgba(37, 99, 235, .35);--focus-strong: rgba(37, 99, 235, .55);--t-fast: .12s;--t: .16s}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100%}a{color:inherit;text-decoration:none}::selection{background:var(--primary-50)}:where(a,button,input,select,textarea,[tabindex]):focus{outline:none}:where(a,button,input,select,textarea,[tabindex]):focus-visible{box-shadow:0 0 0 4px var(--focus);border-radius:var(--r-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card--raised{box-shadow:var(--shadow-md)}.card--soft{background:var(--surface-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--border-2);background:var(--surface);color:var(--text);border-radius:var(--r-md);padding:10px 14px;height:42px;cursor:pointer;font-weight:800;letter-spacing:.1px;box-sizing:border-box;transition:transform var(--t-fast) ease,background var(--t) ease,border-color var(--t) ease,box-shadow var(--t) ease,color var(--t) ease}.btn:hover{background:var(--surface-2);border-color:var(--border-2);box-shadow:var(--shadow-xs)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn--primary{background:var(--primary);color:#fff;border-color:#2563eb8c;box-shadow:0 10px 20px #2563eb2e}.btn--primary:hover{background:var(--primary-600);border-color:#2563ebbf}.btn--danger{background:#fff;color:var(--danger);border-color:#ef444459}.btn--danger:hover{background:var(--danger-50);border-color:#ef44448c}.btn--ghost{background:transparent;border-color:transparent;box-shadow:none}.btn--ghost:hover{background:var(--surface-2);border-color:var(--border)}.input,.select,textarea{width:100%;border:1px solid var(--border-2);border-radius:var(--r-md);padding:11px 12px;min-height:42px;line-height:18px;outline:none;background:var(--surface);color:var(--text);box-sizing:border-box;transition:border-color var(--t) ease,box-shadow var(--t) ease,background var(--t) ease}.select{padding-right:38px}textarea{resize:vertical;min-height:110px}.input::placeholder,textarea::placeholder{color:#9aa3b2}.input:focus,.select:focus,textarea:focus{border-color:#2563eb8c;box-shadow:0 0 0 4px var(--focus);background:var(--surface-2)}.label{font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:800;letter-spacing:.2px}.muted{color:var(--muted);font-size:12px;font-weight:800}.hint{color:var(--muted-2);font-size:12px}.badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;line-height:1}.badge:before{content:"";width:7px;height:7px;border-radius:999px;background:var(--border-2)}.badge--admin{border-color:#ef444447;background:var(--danger-50);color:#991b1b}.badge--admin:before{background:var(--danger)}.badge--teacher{border-color:#f59e0b47;background:var(--warning-50);color:#92400e}.badge--teacher:before{background:var(--warning)}.badge--student{border-color:#2563eb47;background:var(--primary-50);color:#1d4ed8}.badge--student:before{background:var(--primary)}.badge--true{border-color:#22c55e47;background:var(--success-50);color:#166534}.badge--true:before{background:var(--success)}.badge--false{border-color:#ef444447;background:var(--danger-50);color:#991b1b}.badge--false:before{background:var(--danger)}.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.table th,.table td{border-bottom:1px solid var(--border);padding:12px;text-align:left;vertical-align:middle;font-size:13px}.table th{font-size:12px;color:var(--muted);font-weight:900;background:var(--surface-2);position:sticky;top:0;z-index:1}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--surface-3)}.table td:first-child,.table th:first-child{padding-left:14px}.table td:last-child,.table th:last-child{padding-right:14px}.ellipsis{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}code{font-family:var(--font-mono);background:var(--surface-3);border:1px solid var(--border);padding:2px 6px;border-radius:10px;font-size:.95em}.prose{color:var(--text);line-height:1.7;font-size:14px}.prose h1,.prose h2,.prose h3{line-height:1.25;margin:18px 0 10px;letter-spacing:-.2px}.prose h1{font-size:22px}.prose h2{font-size:18px}.prose h3{font-size:16px}.prose p{margin:10px 0}.prose a{color:var(--primary-600);text-decoration:underline;text-decoration-color:#2563eb59;text-underline-offset:2px}.prose hr{border:none;height:1px;background:var(--border);margin:16px 0}.prose blockquote{margin:12px 0;padding:10px 12px;border-left:4px solid rgba(37,99,235,.35);background:var(--surface-2);border-radius:var(--r-md);color:#374151}.prose ul,.prose ol{margin:10px 0 10px 22px}.prose li{margin:6px 0}.prose pre{margin:12px 0;padding:14px;border-radius:var(--r-lg);border:1px solid var(--border);background:#0b1220;color:#e5e7eb;overflow:auto;box-shadow:var(--shadow-xs)}.prose pre code{background:transparent;border:none;padding:0;font-family:var(--font-mono);font-size:13px;line-height:1.55}.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-size:12px;font-weight:900;color:var(--muted)}*::-webkit-scrollbar{height:10px;width:10px}*::-webkit-scrollbar-thumb{background:#11182726;border-radius:999px;border:2px solid rgba(255,255,255,.65)}*::-webkit-scrollbar-thumb:hover{background:#11182738}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.toasts[data-v-d97077ca]{position:fixed;top:14px;right:14px;display:grid;gap:10px;z-index:10000;pointer-events:none}.toast[data-v-d97077ca]{width:min(360px,calc(100vw - 28px));background:#111827;color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 12px;box-shadow:0 12px 30px #00000040;cursor:pointer;pointer-events:auto;outline:none;animation:toastIn-d97077ca .16s ease-out both}.toast[data-v-d97077ca]:focus-visible{box-shadow:0 0 0 3px #3b82f659,0 12px 30px #00000040}@keyframes toastIn-d97077ca{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.toast[data-v-d97077ca]{animation:none}}.toast__title[data-v-d97077ca]{font-weight:700;font-size:13px}.toast__msg[data-v-d97077ca]{margin-top:4px;font-size:13px;color:#ffffffe0;line-height:1.35}.toast--success[data-v-d97077ca]{border-color:#22c55e59}.toast--error[data-v-d97077ca]{border-color:#ef444459}.toast--warning[data-v-d97077ca]{border-color:#f59e0b59}.toast--info[data-v-d97077ca]{border-color:#3b82f659}@media(max-width:640px){.toasts[data-v-d97077ca]{top:auto;right:auto;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(420px,calc(100vw - 20px))}.toast[data-v-d97077ca]{width:100%}@keyframes toastIn-d97077ca{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}}.page[data-v-73d08915]{min-height:100vh;display:grid;place-items:center;padding:16px;background:radial-gradient(1200px 600px at 20% 10%,rgba(59,130,246,.1),transparent 55%),radial-gradient(900px 520px at 90% 30%,rgba(34,197,94,.08),transparent 60%)}.box[data-v-73d08915]{width:100%;max-width:420px;padding:16px}.title[data-v-73d08915]{font-size:20px;font-weight:900}.subtitle[data-v-73d08915]{margin-top:2px;color:var(--muted);font-size:13px;margin-bottom:14px}.form[data-v-73d08915]{display:grid;gap:12px}.field[data-v-73d08915]{display:grid;gap:6px}.err[data-v-73d08915]{font-size:12px;color:#b91c1c}.btn[data-v-73d08915]{width:100%;padding:10px 12px}.hint[data-v-73d08915]{margin-top:12px;font-size:12px;color:var(--muted)}@media(max-width:420px){.page[data-v-73d08915]{padding:12px;place-items:stretch}.box[data-v-73d08915]{max-width:100%;padding:14px;margin-top:10vh}.title[data-v-73d08915]{font-size:18px}}.shell[data-v-2a954001]{min-height:100vh;display:grid;grid-template-rows:56px 1fr}.topbar[data-v-2a954001]{background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:20}.topbar__left[data-v-2a954001]{display:flex;align-items:center;gap:10px;min-width:0}.topbar__right[data-v-2a954001]{display:flex;gap:12px;align-items:center;min-width:0}.brand[data-v-2a954001]{display:flex;flex-direction:column;line-height:1.1;min-width:0}.brand__title[data-v-2a954001]{font-weight:900;font-size:15px}.brand__subtitle[data-v-2a954001]{font-size:12px;color:var(--muted)}.iconbtn[data-v-2a954001]{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#fff;display:inline-grid;place-items:center;color:var(--text);cursor:pointer}.iconbtn[data-v-2a954001]:hover{background:#f9fafb}.topbar__burger[data-v-2a954001]{display:none}.who[data-v-2a954001]{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;height:40px;box-sizing:border-box;min-width:0}.who__dot[data-v-2a954001]{width:8px;height:8px;border-radius:99px;background:var(--success)}.who__name[data-v-2a954001]{font-weight:800;font-size:12px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body[data-v-2a954001]{display:grid;grid-template-columns:220px 1fr;min-height:0}.sidebar[data-v-2a954001]{background:#fff;border-right:1px solid var(--border);padding:12px}.menu[data-v-2a954001]{display:grid;gap:8px}.menu__item[data-v-2a954001]{display:block;padding:10px 12px;border-radius:12px;border:1px solid var(--border);font-weight:800;font-size:13px;color:var(--text);background:#fff}.menu__item[data-v-2a954001]:hover{background:#f9fafb}.menu__item.is-active[data-v-2a954001]{border-color:#2563eb59;box-shadow:0 0 0 3px #2563eb1a}.content[data-v-2a954001]{padding:16px;min-width:0}.drawer[data-v-2a954001]{position:fixed;inset:0;z-index:50;pointer-events:none}.drawer__overlay[data-v-2a954001]{position:absolute;inset:0;background:#0f172a6b;opacity:0;transition:opacity .16s ease}.drawer__panel[data-v-2a954001]{position:absolute;top:0;left:0;height:100%;width:min(86vw,320px);background:#fff;border-right:1px solid var(--border);padding:12px;transform:translate(-105%);transition:transform .2s ease;box-sizing:border-box}.drawer__head[data-v-2a954001]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 4px 12px}.drawer__title[data-v-2a954001]{font-weight:900;font-size:14px}.drawer.is-open[data-v-2a954001]{pointer-events:auto}.drawer.is-open .drawer__overlay[data-v-2a954001]{opacity:1}.drawer.is-open .drawer__panel[data-v-2a954001]{transform:translate(0)}@media(max-width:960px){.body[data-v-2a954001]{grid-template-columns:1fr}.sidebar--desktop[data-v-2a954001]{display:none}.topbar__burger[data-v-2a954001]{display:inline-grid}.content[data-v-2a954001]{padding:12px}.who__name[data-v-2a954001]{max-width:160px}.brand__subtitle[data-v-2a954001]{display:none}}@media(max-width:420px){.topbar[data-v-2a954001]{padding:0 10px}.who[data-v-2a954001]{display:none}}.overlay[data-v-bd2ceff4]{position:fixed;inset:0;background:#11182773;display:grid;place-items:center;padding:16px;z-index:9000}.modal[data-v-bd2ceff4]{width:100%;max-width:520px;padding:14px}.head[data-v-bd2ceff4]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.head__title[data-v-bd2ceff4]{font-weight:900}.iconBtn[data-v-bd2ceff4]{border:1px solid var(--border);background:#fff;border-radius:10px;width:34px;height:34px;cursor:pointer}.iconBtn[data-v-bd2ceff4]:hover{background:#f9fafb}.form[data-v-bd2ceff4]{display:grid;gap:12px}.field[data-v-bd2ceff4]{display:grid;gap:6px}.err[data-v-bd2ceff4]{font-size:12px;color:#b91c1c}.actions[data-v-bd2ceff4]{margin-top:6px;display:flex;justify-content:flex-end;gap:10px}@media(max-width:520px){.overlay[data-v-bd2ceff4]{place-items:end center;padding:10px}.modal[data-v-bd2ceff4]{max-width:100%;border-radius:16px;padding:12px;box-shadow:0 -18px 40px #0000002e}.actions[data-v-bd2ceff4]{flex-direction:column-reverse;gap:8px}.actions .btn[data-v-bd2ceff4]{width:100%}}.page[data-v-bd6b6d8a]{display:grid;gap:12px}.bar[data-v-bd6b6d8a]{padding:12px;display:grid;gap:12px}.bar__filters[data-v-bd6b6d8a]{display:grid;grid-template-columns:260px 180px 180px auto;gap:10px;align-items:end}.f[data-v-bd6b6d8a]{width:auto}.f--btn[data-v-bd6b6d8a]{display:flex;align-items:end}.bar__actions[data-v-bd6b6d8a]{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.tableWrap[data-v-bd6b6d8a]{padding:0;overflow:hidden;min-height:220px}.loadingRow[data-v-bd6b6d8a]{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--muted);font-size:13px}.tableScroll[data-v-bd6b6d8a]{overflow:auto;-webkit-overflow-scrolling:touch}.row[data-v-bd6b6d8a]{cursor:pointer}.empty[data-v-bd6b6d8a]{padding:16px 10px;color:var(--muted);text-align:center}.loginCell[data-v-bd6b6d8a]{display:flex;align-items:center;gap:10px;min-width:0}.loginText[data-v-bd6b6d8a]{max-width:240px}.linkBtn[data-v-bd6b6d8a]{border:none;background:transparent;color:var(--primary);font-weight:800;font-size:12px;cursor:pointer;padding:0;flex:0 0 auto}.linkBtn[data-v-bd6b6d8a]:hover{text-decoration:underline}.pager[data-v-bd6b6d8a]{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;flex-wrap:wrap}.pager__right[data-v-bd6b6d8a]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.sizeSel[data-v-bd6b6d8a]{width:92px}.pageBox[data-v-bd6b6d8a]{display:flex;gap:8px;align-items:center}.pageInp[data-v-bd6b6d8a]{width:90px;padding:8px 10px;height:40px}@media(max-width:980px){.bar__filters[data-v-bd6b6d8a]{grid-template-columns:1fr 1fr}}@media(max-width:680px){.bar__filters[data-v-bd6b6d8a]{grid-template-columns:1fr}.f--btn .btn[data-v-bd6b6d8a]{width:100%}.bar__actions[data-v-bd6b6d8a]{justify-content:stretch}.bar__actions .btn[data-v-bd6b6d8a]{width:100%}.table[data-v-bd6b6d8a]{display:block}.table thead[data-v-bd6b6d8a]{display:none}.table tbody[data-v-bd6b6d8a]{display:grid;gap:10px;padding:10px}.row[data-v-bd6b6d8a]{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff}.td[data-v-bd6b6d8a]{display:grid;grid-template-columns:140px 1fr;gap:10px;align-items:baseline;padding:0!important;border-bottom:none!important;min-width:0}.td[data-v-bd6b6d8a]:before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:900}.loginText[data-v-bd6b6d8a]{max-width:100%}.ellipsis[data-v-bd6b6d8a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}}@media(max-width:420px){.td[data-v-bd6b6d8a]{grid-template-columns:1fr;gap:4px}.pager__right[data-v-bd6b6d8a]{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;justify-content:stretch}.pager__right .btn[data-v-bd6b6d8a],.sizeSel[data-v-bd6b6d8a]{width:100%}.pageBox[data-v-bd6b6d8a]{grid-column:1 / -1;justify-content:space-between}.pageInp[data-v-bd6b6d8a]{width:110px}}.drawerOverlay[data-v-f6953478]{position:fixed;inset:0;background:#11182766;z-index:8000;display:grid;justify-items:end;padding:0}.drawer[data-v-f6953478]{width:min(560px,100vw);height:100vh;border-radius:0;border-left:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-rows:auto 1fr}.head[data-v-f6953478]{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid var(--border);padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.head__left[data-v-f6953478]{min-width:0}.head__title[data-v-f6953478]{font-weight:900;font-size:16px;line-height:1.1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.head__subtitle[data-v-f6953478]{margin-top:6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dot[data-v-f6953478]{width:4px;height:4px;border-radius:99px;background:#d1d5db}.iconBtn[data-v-f6953478]{border:1px solid var(--border);background:#fff;border-radius:10px;width:36px;height:36px;cursor:pointer;flex:0 0 auto}.iconBtn[data-v-f6953478]:hover{background:#f9fafb}.body[data-v-f6953478]{padding:14px;overflow:auto;display:grid;gap:14px}.section[data-v-f6953478]{border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px}.section__title[data-v-f6953478]{font-weight:900;font-size:13px;margin-bottom:10px}.section__hint[data-v-f6953478]{color:var(--muted);font-size:12px;margin-top:-6px;margin-bottom:10px}.grid[data-v-f6953478]{display:grid;gap:10px;grid-template-columns:1fr 1fr}.kv[data-v-f6953478]{border:1px solid var(--border);border-radius:12px;padding:10px;background:#fff;min-width:0}.kv--wide[data-v-f6953478]{grid-column:1 / -1}.val[data-v-f6953478]{font-weight:800;font-size:13px;display:flex;align-items:center;gap:10px;min-width:0}.label[data-v-f6953478]{font-size:12px;color:var(--muted);font-weight:800}.mono[data-v-f6953478]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.linkBtn[data-v-f6953478]{border:none;background:transparent;color:var(--primary);font-weight:900;font-size:12px;cursor:pointer;padding:0;flex:0 0 auto}.linkBtn[data-v-f6953478]:hover{text-decoration:underline}.form[data-v-f6953478]{display:grid;gap:12px}.field[data-v-f6953478]{display:grid;gap:6px}.actions[data-v-f6953478]{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding-top:2px}.loading[data-v-f6953478]{display:grid;place-items:center;gap:10px;padding:26px}.spinner[data-v-f6953478]{width:22px;height:22px;border-radius:50%;border:3px solid rgba(17,24,39,.12);border-top-color:#2563ebbf;animation:spin-f6953478 .8s linear infinite}@keyframes spin-f6953478{to{transform:rotate(360deg)}}.empty[data-v-f6953478]{padding:18px;display:grid;gap:10px}.empty__title[data-v-f6953478]{font-weight:900}.empty__hint[data-v-f6953478]{color:var(--muted);font-size:13px}.switch[data-v-f6953478]{display:inline-flex;align-items:center;position:relative;width:46px;height:28px}.switch input[data-v-f6953478]{display:none}.switch__track[data-v-f6953478]{width:46px;height:28px;border-radius:999px;border:1px solid var(--border);background:#f3f4f6;position:relative;transition:.2s}.switch__track[data-v-f6953478]:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;border:1px solid var(--border);transition:.2s}.switch input:checked+.switch__track[data-v-f6953478]{background:#22c55e2e;border-color:#22c55e59}.switch input:checked+.switch__track[data-v-f6953478]:after{transform:translate(18px)}@media(max-width:520px){.drawerOverlay[data-v-f6953478]{justify-items:stretch}.drawer[data-v-f6953478]{width:100vw}.grid[data-v-f6953478]{grid-template-columns:1fr}.kv--wide[data-v-f6953478]{grid-column:auto}.actions[data-v-f6953478]{width:100%;display:grid;grid-template-columns:1fr;gap:8px;justify-content:stretch}.actions .btn[data-v-f6953478]{width:100%}.head__title[data-v-f6953478]{white-space:normal;word-break:break-word}}.shell[data-v-fbf06554]{min-height:100vh;display:grid;grid-template-rows:56px 1fr}.topbar[data-v-fbf06554]{background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:20}.topbar__left[data-v-fbf06554]{display:flex;align-items:center;gap:10px;min-width:0}.topbar__right[data-v-fbf06554]{display:flex;gap:12px;align-items:center;min-width:0}.brand[data-v-fbf06554]{display:flex;flex-direction:column;line-height:1.1;min-width:0}.brand__title[data-v-fbf06554]{font-weight:900;font-size:15px}.brand__subtitle[data-v-fbf06554]{font-size:12px;color:var(--muted)}.iconbtn[data-v-fbf06554]{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#fff;display:inline-grid;place-items:center;color:var(--text);cursor:pointer}.iconbtn[data-v-fbf06554]:hover{background:#f9fafb}.topbar__burger[data-v-fbf06554]{display:none}.who[data-v-fbf06554]{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;height:40px;box-sizing:border-box;min-width:0}.who__dot[data-v-fbf06554]{width:8px;height:8px;border-radius:99px;background:var(--success)}.who__name[data-v-fbf06554]{font-weight:800;font-size:12px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body[data-v-fbf06554]{display:grid;grid-template-columns:240px 1fr;min-height:0}.sidebar[data-v-fbf06554]{background:#fff;border-right:1px solid var(--border);padding:12px}.menu[data-v-fbf06554]{display:grid;gap:8px}.menu__item[data-v-fbf06554]{display:block;padding:10px 12px;border-radius:12px;border:1px solid var(--border);font-weight:800;font-size:13px;color:var(--text);background:#fff}.menu__item[data-v-fbf06554]:hover{background:#f9fafb}.menu__item.is-active[data-v-fbf06554]{border-color:#2563eb59;box-shadow:0 0 0 3px #2563eb1a}.content[data-v-fbf06554]{padding:16px;min-width:0}.drawer[data-v-fbf06554]{position:fixed;inset:0;z-index:50;pointer-events:none}.drawer__overlay[data-v-fbf06554]{position:absolute;inset:0;background:#0f172a6b;opacity:0;transition:opacity .16s ease}.drawer__panel[data-v-fbf06554]{position:absolute;top:0;left:0;height:100%;width:min(86vw,320px);background:#fff;border-right:1px solid var(--border);padding:12px;transform:translate(-105%);transition:transform .2s ease;box-sizing:border-box}.drawer__head[data-v-fbf06554]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 4px 12px}.drawer__title[data-v-fbf06554]{font-weight:900;font-size:14px}.drawer.is-open[data-v-fbf06554]{pointer-events:auto}.drawer.is-open .drawer__overlay[data-v-fbf06554]{opacity:1}.drawer.is-open .drawer__panel[data-v-fbf06554]{transform:translate(0)}@media(max-width:960px){.body[data-v-fbf06554]{grid-template-columns:1fr}.sidebar--desktop[data-v-fbf06554]{display:none}.topbar__burger[data-v-fbf06554]{display:inline-grid}.content[data-v-fbf06554]{padding:12px}.who__name[data-v-fbf06554]{max-width:160px}.brand__subtitle[data-v-fbf06554]{display:none}}@media(max-width:420px){.topbar[data-v-fbf06554]{padding:0 10px}.who[data-v-fbf06554]{display:none}}.page[data-v-d03da5ef]{display:grid;gap:12px}.head[data-v-d03da5ef]{padding:12px;display:flex;align-items:center;justify-content:space-between}.title[data-v-d03da5ef]{font-size:16px;font-weight:900}.subtitle[data-v-d03da5ef]{margin-top:4px;font-size:13px;color:var(--muted)}.grid[data-v-d03da5ef]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.box[data-v-d03da5ef]{padding:14px;min-width:0}.box__title[data-v-d03da5ef]{font-weight:900;margin-bottom:12px}.kv[data-v-d03da5ef]{display:grid;gap:6px;padding:10px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;min-width:0}.val[data-v-d03da5ef]{font-weight:900;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats[data-v-d03da5ef]{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:10px}.stat[data-v-d03da5ef]{padding:12px;border:1px solid var(--border);border-radius:12px}.stat__label[data-v-d03da5ef]{font-size:12px;color:var(--muted);font-weight:800}.stat__value[data-v-d03da5ef]{margin-top:6px;font-size:22px;font-weight:900}@media(max-width:900px){.grid[data-v-d03da5ef]{grid-template-columns:1fr}}@media(max-width:520px){.head[data-v-d03da5ef],.box[data-v-d03da5ef]{padding:12px}.kv[data-v-d03da5ef]{padding:10px}.val[data-v-d03da5ef]{white-space:normal;word-break:break-word}}.overlay[data-v-7d4ae80a]{position:fixed;inset:0;background:#11182773;display:grid;place-items:center;padding:16px;z-index:9000}.modal[data-v-7d4ae80a]{width:100%;max-width:560px;padding:14px}.head[data-v-7d4ae80a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.head__title[data-v-7d4ae80a]{font-weight:900}.iconBtn[data-v-7d4ae80a]{border:1px solid var(--border);background:#fff;border-radius:10px;width:36px;height:36px;cursor:pointer}.iconBtn[data-v-7d4ae80a]:hover{background:#f9fafb}.form[data-v-7d4ae80a]{display:grid;gap:12px}.field[data-v-7d4ae80a]{display:grid;gap:6px}.err[data-v-7d4ae80a]{font-size:12px;color:#b91c1c}.actions[data-v-7d4ae80a]{display:flex;justify-content:flex-end;gap:10px}@media(max-width:520px){.overlay[data-v-7d4ae80a]{place-items:end center;padding:10px}.modal[data-v-7d4ae80a]{max-width:100%;border-radius:16px;padding:12px;box-shadow:0 -18px 40px #0000002e}.actions[data-v-7d4ae80a]{flex-direction:column-reverse;gap:8px}.actions .btn[data-v-7d4ae80a]{width:100%}}.page[data-v-9ffa995c]{display:grid;gap:12px}.head[data-v-9ffa995c]{padding:12px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.head__left[data-v-9ffa995c]{min-width:0}.title[data-v-9ffa995c]{font-size:16px;font-weight:900}.subtitle[data-v-9ffa995c]{margin-top:4px;font-size:13px;color:var(--muted)}.actions[data-v-9ffa995c]{display:flex;gap:10px;flex-wrap:wrap}.grid[data-v-9ffa995c]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.course[data-v-9ffa995c]{padding:14px;text-align:left;cursor:pointer;min-width:0}.course[data-v-9ffa995c]:hover{border-color:#2563eb59;box-shadow:0 0 0 3px #2563eb14}.course__title[data-v-9ffa995c]{font-weight:900;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course__meta[data-v-9ffa995c]{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.course__teacher[data-v-9ffa995c]{margin-top:8px;font-size:13px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.strong[data-v-9ffa995c]{font-weight:900;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:42ch}.badge--soft[data-v-9ffa995c]{border-color:#2563eb33;background:#2563eb14;color:#2563ebf2}.loading[data-v-9ffa995c],.empty[data-v-9ffa995c]{padding:12px;color:var(--muted)}@media(max-width:980px){.grid[data-v-9ffa995c]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.grid[data-v-9ffa995c]{grid-template-columns:1fr}.actions[data-v-9ffa995c]{width:100%;display:grid;gap:8px}.actions .btn[data-v-9ffa995c]{width:100%}.course__title[data-v-9ffa995c],.strong[data-v-9ffa995c]{white-space:normal;word-break:break-word}}.page[data-v-83f26820]{display:grid;gap:12px}.head[data-v-83f26820]{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head__left[data-v-83f26820]{min-width:0}.title[data-v-83f26820]{font-size:16px;font-weight:900}.subtitle[data-v-83f26820]{margin-top:4px;font-size:13px;color:var(--muted)}.tabs[data-v-83f26820]{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.tab[data-v-83f26820]{text-decoration:none;border:1px solid var(--border);padding:8px 12px;border-radius:999px;color:inherit;background:var(--card);font-weight:700;font-size:13px;white-space:nowrap}.tab[data-v-83f26820]:hover{border-color:#2563eb59;box-shadow:0 0 0 3px #2563eb14}.tab.active[data-v-83f26820]{border-color:#2563eb8c;box-shadow:0 0 0 3px #2563eb1f}@media(max-width:760px){.head[data-v-83f26820]{align-items:stretch}.tabs[data-v-83f26820]{width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:2px}.tabs[data-v-83f26820]::-webkit-scrollbar{height:6px}.tabs[data-v-83f26820]::-webkit-scrollbar-thumb{background:#0f172a1f;border-radius:999px}}@media(max-width:560px){.head[data-v-83f26820]{flex-direction:column;align-items:stretch}.tabs .btn[data-v-83f26820]{flex:0 0 auto}}.overlay[data-v-30760ab4]{position:fixed;inset:0;background:#1118276b;display:grid;place-items:center;padding:16px;z-index:9999}.modal[data-v-30760ab4]{width:min(920px,100%);max-height:min(86vh,900px);display:grid;grid-template-rows:auto 1fr;overflow:hidden;outline:none}.head[data-v-30760ab4]{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 16px 10px;border-bottom:1px solid var(--border)}.h1[data-v-30760ab4]{font-size:20px;font-weight:900}.icon-btn[data-v-30760ab4]{border:1px solid var(--border);background:#fff;border-radius:12px;width:42px;height:42px;cursor:pointer;font-size:18px}.body[data-v-30760ab4]{padding:14px 16px 16px;overflow:auto;display:grid;gap:14px}.field[data-v-30760ab4]{display:grid;gap:8px}.textarea[data-v-30760ab4]{height:320px;resize:vertical;line-height:1.5;padding-top:12px}.foot[data-v-30760ab4]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px}.buttons[data-v-30760ab4]{display:flex;gap:10px}.confirm-overlay[data-v-30760ab4]{position:fixed;inset:0;background:#1118278c;display:grid;place-items:center;padding:16px;z-index:10000}.confirm[data-v-30760ab4]{width:min(520px,100%);padding:16px}.h2[data-v-30760ab4]{font-size:16px;font-weight:900}.confirm-actions[data-v-30760ab4]{margin-top:14px;display:flex;gap:10px;justify-content:flex-end}.page[data-v-5d204870]{display:grid;gap:12px}.head[data-v-5d204870]{padding:12px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.head__left[data-v-5d204870]{min-width:0}.title[data-v-5d204870]{font-size:16px;font-weight:900}.subtitle[data-v-5d204870]{margin-top:4px;font-size:13px;color:var(--muted)}.mono[data-v-5d204870]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.actions[data-v-5d204870]{display:flex;gap:10px;flex-wrap:wrap}.tableWrap[data-v-5d204870]{padding:0;overflow:hidden}.loadingRow[data-v-5d204870]{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--muted);font-size:13px}.btnSmall[data-v-5d204870]{height:36px;padding:7px 10px}.empty[data-v-5d204870]{padding:16px 10px;color:var(--muted);text-align:center}@media(max-width:860px){.tableWrap[data-v-5d204870]{overflow:auto;-webkit-overflow-scrolling:touch}.table[data-v-5d204870]{width:100%}}@media(max-width:640px){.head[data-v-5d204870]{align-items:stretch}.actions[data-v-5d204870]{width:100%;display:grid;gap:8px}.actions .btn[data-v-5d204870]{width:100%}.table[data-v-5d204870]{display:block}.table thead[data-v-5d204870]{display:none}.table tbody[data-v-5d204870]{display:grid;gap:10px;padding:10px}.tr[data-v-5d204870]{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff}.td[data-v-5d204870]{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:baseline;min-width:0}.td[data-v-5d204870]:before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:700}.ellipsis[data-v-5d204870]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty[data-v-5d204870]{padding:14px 10px}}@media(max-width:380px){.td[data-v-5d204870]{grid-template-columns:1fr;gap:4px}.ellipsis[data-v-5d204870]{white-space:normal;word-break:break-word}}.box[data-v-64ce913c]{padding:14px}.boxHead[data-v-64ce913c]{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}.box__title[data-v-64ce913c]{font-weight:900}.small[data-v-64ce913c]{font-size:12px}.searchRow[data-v-64ce913c]{display:flex;gap:10px;flex-wrap:wrap}.field[data-v-64ce913c]{display:grid;gap:6px}.grow[data-v-64ce913c]{flex:1;min-width:260px}.results[data-v-64ce913c]{margin-top:12px}.inner[data-v-64ce913c]{padding:12px;border-radius:12px;border:1px solid var(--border);background:#fff}.list[data-v-64ce913c]{display:grid;gap:10px}.item[data-v-64ce913c]{border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.item__left[data-v-64ce913c]{min-width:0}.item__name[data-v-64ce913c]{font-weight:900;font-size:13px}.item__sub[data-v-64ce913c]{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60ch}.item__actions[data-v-64ce913c]{display:flex;gap:8px}.btnSmall[data-v-64ce913c]{height:36px;padding:7px 10px}.hint[data-v-64ce913c]{margin-top:12px;font-size:12px}@media(max-width:640px){.grow[data-v-64ce913c]{min-width:0}.boxHead[data-v-64ce913c]{align-items:stretch}.boxHead .btn[data-v-64ce913c]{width:100%}.item[data-v-64ce913c]{align-items:stretch}.item__actions[data-v-64ce913c]{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.item__actions .btn[data-v-64ce913c]{width:100%}.item__sub[data-v-64ce913c]{max-width:100%}}.page[data-v-b07c82d0]{display:grid;gap:14px}.card[data-v-b07c82d0]{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:14px;box-shadow:0 6px 24px #0f172a0d}.header[data-v-b07c82d0]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.header__left[data-v-b07c82d0]{display:grid;gap:4px;min-width:0}.header__right[data-v-b07c82d0]{display:flex;gap:10px;flex-wrap:wrap}.h1[data-v-b07c82d0]{font-size:18px;font-weight:900}.muted[data-v-b07c82d0]{color:var(--muted);font-size:13px}.grid[data-v-b07c82d0]{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;align-items:start}.panel[data-v-b07c82d0]{min-width:0}.card__title[data-v-b07c82d0]{font-size:16px;font-weight:900;margin-bottom:10px}.tableWrap[data-v-b07c82d0]{overflow:auto;border-radius:12px;border:1px solid rgba(15,23,42,.08);-webkit-overflow-scrolling:touch}.table[data-v-b07c82d0]{width:100%;border-collapse:collapse;font-size:14px}.table thead th[data-v-b07c82d0]{text-align:left;font-weight:700;color:#0f172ab3;background:#0f172a08;padding:10px 12px;border-bottom:1px solid rgba(15,23,42,.08)}.table tbody td[data-v-b07c82d0]{padding:10px 12px;border-bottom:1px solid rgba(15,23,42,.06)}.table tbody tr[data-v-b07c82d0]{cursor:pointer}.table tbody tr[data-v-b07c82d0]:hover{background:#2563eb0d}.table tbody tr.active[data-v-b07c82d0]{background:#2563eb14;outline:2px solid rgba(37,99,235,.4);outline-offset:-2px}.titleCell[data-v-b07c82d0]{font-weight:700}.ellipsis[data-v-b07c82d0]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn[data-v-b07c82d0]{padding:10px 12px;border-radius:12px;border:1px solid rgba(15,23,42,.14);background:#fff;cursor:pointer;font-weight:700}.btn[data-v-b07c82d0]:disabled{opacity:.6;cursor:default}.btn--primary[data-v-b07c82d0]{background:#2563eb;border-color:#2563eb;color:#fff}.readersHeader[data-v-b07c82d0]{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.readersHeader__left[data-v-b07c82d0]{min-width:0}.chips[data-v-b07c82d0]{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip[data-v-b07c82d0]{border:1px solid rgba(15,23,42,.12);background:#0f172a05;border-radius:999px;padding:6px 10px;font-size:13px;color:#0f172ab3;font-weight:700}.sectionTitle[data-v-b07c82d0]{margin-top:12px;font-weight:900;font-size:14px}.list[data-v-b07c82d0]{display:grid;gap:10px;margin-top:10px}.listItem[data-v-b07c82d0]{border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:10px 12px;background:#fff}.listItem__name[data-v-b07c82d0]{font-weight:900}.listItem__meta[data-v-b07c82d0]{margin-top:2px;font-size:13px;color:#0f172ab3}.error[data-v-b07c82d0]{padding:10px 12px;border-radius:12px;border:1px solid rgba(185,28,28,.25);background:#b91c1c0f;color:#7f1d1d;font-weight:700}.tabs[data-v-b07c82d0]{display:none;padding:10px;gap:8px;grid-auto-flow:column;grid-auto-columns:1fr}.tab[data-v-b07c82d0]{border:1px solid rgba(15,23,42,.14);background:#fff;border-radius:999px;padding:10px 12px;font-weight:900;font-size:13px;cursor:pointer}.tab[data-v-b07c82d0]:disabled{opacity:.55;cursor:default}.tab.is-active[data-v-b07c82d0]{border-color:#2563eb73;box-shadow:0 0 0 3px #2563eb1f}.mobileHint[data-v-b07c82d0]{display:none;margin-top:12px;gap:10px;align-items:center;flex-wrap:wrap}.btnInline[data-v-b07c82d0]{padding:8px 10px;border-radius:999px}.strongText[data-v-b07c82d0]{font-weight:900;color:#0f172ae6}@media(max-width:980px){.grid[data-v-b07c82d0]{grid-template-columns:1fr}}@media(max-width:640px){.tabs[data-v-b07c82d0]{display:grid}.grid[data-v-b07c82d0]{grid-template-columns:1fr}.panel--hidden[data-v-b07c82d0]{display:none}.header__right[data-v-b07c82d0],.header__right .btn[data-v-b07c82d0]{width:100%}.mobileHint[data-v-b07c82d0]{display:flex}.tableWrap[data-v-b07c82d0]{border-radius:12px}.table[data-v-b07c82d0]{font-size:13px}.table thead th[data-v-b07c82d0],.table tbody td[data-v-b07c82d0]{padding:10px}}.page[data-v-a1bcefcc]{display:grid;gap:12px}.head[data-v-a1bcefcc]{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head__left[data-v-a1bcefcc]{min-width:0}.title[data-v-a1bcefcc]{font-size:16px;font-weight:900}.subtitle[data-v-a1bcefcc]{margin-top:4px;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dot[data-v-a1bcefcc]{opacity:.7}.actions[data-v-a1bcefcc]{display:flex;gap:8px;flex-wrap:wrap}.loading[data-v-a1bcefcc]{padding:12px;color:var(--muted)}.grid[data-v-a1bcefcc]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.block[data-v-a1bcefcc]{padding:12px}.blockTitle[data-v-a1bcefcc]{font-weight:900;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.badge[data-v-a1bcefcc]{font-size:12px;color:#2563eb;background:#2563eb1a;border:1px solid rgba(37,99,235,.25);padding:2px 8px;border-radius:999px;font-weight:700}.list[data-v-a1bcefcc]{display:grid;gap:10px}.row[data-v-a1bcefcc]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px;border:1px solid rgba(0,0,0,.06);border-radius:12px}.name[data-v-a1bcefcc]{min-width:0}.full[data-v-a1bcefcc]{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta[data-v-a1bcefcc]{margin-top:4px;font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.time[data-v-a1bcefcc]{font-size:12px;white-space:nowrap}.muted[data-v-a1bcefcc]{color:var(--muted);font-size:12px}.empty[data-v-a1bcefcc]{padding:12px;color:var(--muted);font-size:13px}.foot[data-v-a1bcefcc]{padding:12px}.mono[data-v-a1bcefcc]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}@media(max-width:980px){.grid[data-v-a1bcefcc]{grid-template-columns:1fr}}@media(max-width:560px){.actions[data-v-a1bcefcc]{width:100%;display:grid;gap:8px}.actions .btn[data-v-a1bcefcc]{width:100%}.row[data-v-a1bcefcc]{flex-direction:column;gap:6px}.time[data-v-a1bcefcc]{white-space:normal}.full[data-v-a1bcefcc]{white-space:normal;word-break:break-word}}.shell[data-v-35c32031]{min-height:100vh;display:grid;grid-template-rows:56px 1fr}.topbar[data-v-35c32031]{background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:20}.topbar__left[data-v-35c32031]{display:flex;align-items:center;gap:10px;min-width:0}.topbar__right[data-v-35c32031]{display:flex;gap:12px;align-items:center;min-width:0}.brand[data-v-35c32031]{display:flex;flex-direction:column;line-height:1.1;min-width:0}.brand__title[data-v-35c32031]{font-weight:900;font-size:15px}.brand__subtitle[data-v-35c32031]{font-size:12px;color:var(--muted)}.iconbtn[data-v-35c32031]{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#fff;display:inline-grid;place-items:center;color:var(--text);cursor:pointer}.iconbtn[data-v-35c32031]:hover{background:#f9fafb}.topbar__burger[data-v-35c32031]{display:none}.who[data-v-35c32031]{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;height:40px;box-sizing:border-box;min-width:0}.who__dot[data-v-35c32031]{width:8px;height:8px;border-radius:99px;background:var(--success)}.who__name[data-v-35c32031]{font-weight:800;font-size:12px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body[data-v-35c32031]{display:grid;grid-template-columns:240px 1fr;min-height:0}.sidebar[data-v-35c32031]{background:#fff;border-right:1px solid var(--border);padding:12px}.menu[data-v-35c32031]{display:grid;gap:8px}.menu__item[data-v-35c32031]{display:block;padding:10px 12px;border-radius:12px;border:1px solid var(--border);font-weight:800;font-size:13px;color:var(--text);background:#fff}.menu__item[data-v-35c32031]:hover{background:#f9fafb}.menu__item.is-active[data-v-35c32031]{border-color:#2563eb59;box-shadow:0 0 0 3px #2563eb1a}.content[data-v-35c32031]{padding:16px;min-width:0}.drawer[data-v-35c32031]{position:fixed;inset:0;z-index:50;pointer-events:none}.drawer__overlay[data-v-35c32031]{position:absolute;inset:0;background:#0f172a6b;opacity:0;transition:opacity .16s ease}.drawer__panel[data-v-35c32031]{position:absolute;top:0;left:0;height:100%;width:min(86vw,320px);background:#fff;border-right:1px solid var(--border);padding:12px;transform:translate(-105%);transition:transform .2s ease;box-sizing:border-box}.drawer__head[data-v-35c32031]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 4px 12px}.drawer__title[data-v-35c32031]{font-weight:900;font-size:14px}.drawer.is-open[data-v-35c32031]{pointer-events:auto}.drawer.is-open .drawer__overlay[data-v-35c32031]{opacity:1}.drawer.is-open .drawer__panel[data-v-35c32031]{transform:translate(0)}@media(max-width:960px){.body[data-v-35c32031]{grid-template-columns:1fr}.sidebar--desktop[data-v-35c32031]{display:none}.topbar__burger[data-v-35c32031]{display:inline-grid}.content[data-v-35c32031]{padding:12px}.who__name[data-v-35c32031]{max-width:160px}.brand__subtitle[data-v-35c32031]{display:none}}@media(max-width:420px){.topbar[data-v-35c32031]{padding:0 10px}.who[data-v-35c32031]{display:none}}.page[data-v-c5016eea]{display:grid;gap:12px}.head[data-v-c5016eea]{padding:12px;display:flex;align-items:center;justify-content:space-between}.title[data-v-c5016eea]{font-size:16px;font-weight:900}.subtitle[data-v-c5016eea]{margin-top:4px;font-size:13px;color:var(--muted)}.grid[data-v-c5016eea]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.box[data-v-c5016eea]{padding:14px;min-width:0}.box__title[data-v-c5016eea]{font-weight:900;margin-bottom:12px}.kv[data-v-c5016eea]{display:grid;gap:6px;padding:10px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;min-width:0}.val[data-v-c5016eea]{font-weight:900;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats[data-v-c5016eea]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.stat[data-v-c5016eea]{padding:12px;border:1px solid var(--border);border-radius:12px;min-width:0}.stat__label[data-v-c5016eea]{font-size:12px;color:var(--muted);font-weight:800}.stat__value[data-v-c5016eea]{margin-top:6px;font-size:22px;font-weight:900}@media(max-width:900px){.grid[data-v-c5016eea]{grid-template-columns:1fr}}@media(max-width:560px){.box[data-v-c5016eea]{padding:12px}.stats[data-v-c5016eea]{grid-template-columns:1fr}.val[data-v-c5016eea]{white-space:normal;word-break:break-word}}.page[data-v-3e42ea9d]{display:grid;gap:12px}.head[data-v-3e42ea9d]{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head__left[data-v-3e42ea9d]{min-width:0}.title[data-v-3e42ea9d]{font-size:16px;font-weight:900}.subtitle[data-v-3e42ea9d]{margin-top:4px;font-size:13px;color:var(--muted)}.grid[data-v-3e42ea9d]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.course[data-v-3e42ea9d]{padding:14px;text-align:left;cursor:pointer;min-width:0}.course[data-v-3e42ea9d]:hover{border-color:#2563eb59;box-shadow:0 0 0 3px #2563eb14}.course__title[data-v-3e42ea9d]{font-weight:900;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course__desc[data-v-3e42ea9d]{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.35}.course__meta[data-v-3e42ea9d]{margin-top:10px;display:grid;gap:6px;font-size:12px;color:var(--muted)}.metaRow[data-v-3e42ea9d]{display:flex;gap:8px;align-items:center;min-width:0}.metaLabel[data-v-3e42ea9d]{min-width:92px;flex:0 0 auto}.metaValue[data-v-3e42ea9d]{color:var(--text);font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill[data-v-3e42ea9d]{display:inline-flex;align-items:center;height:20px;padding:0 10px;border-radius:999px;border:1px solid rgba(37,99,235,.25);color:#2563eb;background:#2563eb0f;font-weight:800}.loading[data-v-3e42ea9d],.empty[data-v-3e42ea9d]{padding:12px;color:var(--muted)}@media(max-width:980px){.grid[data-v-3e42ea9d]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.head .btn[data-v-3e42ea9d]{width:100%}}@media(max-width:560px){.grid[data-v-3e42ea9d]{grid-template-columns:1fr}.course__title[data-v-3e42ea9d]{white-space:normal;word-break:break-word}.metaRow[data-v-3e42ea9d]{flex-direction:column;align-items:flex-start;gap:4px}.metaLabel[data-v-3e42ea9d]{min-width:0}.metaValue[data-v-3e42ea9d]{white-space:normal;word-break:break-word}}.page[data-v-7ac76578]{display:grid;gap:12px}.head[data-v-7ac76578]{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head__left[data-v-7ac76578]{display:flex;gap:12px;align-items:center;min-width:0}.head__titleWrap[data-v-7ac76578]{min-width:0}.title[data-v-7ac76578]{font-size:16px;font-weight:900}.subtitle[data-v-7ac76578]{margin-top:4px;font-size:13px;color:var(--muted)}.loading[data-v-7ac76578]{padding:12px;color:var(--muted)}.tableCard[data-v-7ac76578]{padding:0;overflow:hidden}.table-wrap[data-v-7ac76578]{overflow:auto;-webkit-overflow-scrolling:touch}.table[data-v-7ac76578]{width:100%;border-collapse:collapse;font-size:13px}.table thead th[data-v-7ac76578]{text-align:left;padding:12px;color:var(--muted);font-weight:900;border-bottom:1px solid var(--border);background:#fafafa}.table tbody td[data-v-7ac76578]{padding:12px;border-bottom:1px solid var(--border)}.row[data-v-7ac76578]{cursor:pointer}.row:hover td[data-v-7ac76578]{background:#fafafa}.muted[data-v-7ac76578]{color:var(--muted)}.truncate[data-v-7ac76578]{max-width:820px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-row[data-v-7ac76578]{color:var(--muted);text-align:center;padding:18px 12px}.badge[data-v-7ac76578]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid var(--border);font-weight:900;font-size:12px}.badge--ok[data-v-7ac76578]{border-color:#22c55e59;background:#22c55e14}.badge--muted[data-v-7ac76578]{background:#f3f4f6}@media(max-width:640px){.head .btn[data-v-7ac76578]{width:100%}.table[data-v-7ac76578]{display:block}.table thead[data-v-7ac76578]{display:none}.table tbody[data-v-7ac76578]{display:grid;gap:10px;padding:10px}.row[data-v-7ac76578]{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff}.td[data-v-7ac76578]{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:baseline;min-width:0;padding:0!important;border-bottom:none!important}.td[data-v-7ac76578]:before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:900}.truncate[data-v-7ac76578]{max-width:100%;white-space:normal;word-break:break-word}.row:hover td[data-v-7ac76578]{background:transparent}}@media(max-width:380px){.td[data-v-7ac76578]{grid-template-columns:1fr;gap:4px}}.page[data-v-8bd314b2]{display:grid;gap:12px}.head[data-v-8bd314b2]{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head__left[data-v-8bd314b2]{display:flex;align-items:center;gap:12px;min-width:0}.head__titleWrap[data-v-8bd314b2]{min-width:0}.head__right[data-v-8bd314b2]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.title[data-v-8bd314b2]{font-size:16px;font-weight:900;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta[data-v-8bd314b2]{margin-top:4px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dot[data-v-8bd314b2]{opacity:.7}.badge[data-v-8bd314b2]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:#0f172a08;color:#0f172acc;font-weight:600}.badge.ok[data-v-8bd314b2]{border-color:#16a34a40;background:#16a34a14;color:#16a34ae6}.loading[data-v-8bd314b2],.empty[data-v-8bd314b2]{padding:12px;color:var(--muted)}.content[data-v-8bd314b2]{padding:16px}.md[data-v-8bd314b2]{line-height:1.6;font-size:14px;color:#0f172aeb}.md[data-v-8bd314b2] h1,.md[data-v-8bd314b2] h2,.md[data-v-8bd314b2] h3{margin:16px 0 10px;line-height:1.25}.md[data-v-8bd314b2] h1{font-size:20px}.md[data-v-8bd314b2] h2{font-size:18px}.md[data-v-8bd314b2] h3{font-size:16px}.md[data-v-8bd314b2] p{margin:10px 0}.md[data-v-8bd314b2] ol{margin:10px 0;padding-left:20px}.md[data-v-8bd314b2] code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px}.md[data-v-8bd314b2] p code,.md[data-v-8bd314b2] li code{padding:1px 6px;border-radius:8px;background:#0f172a0f;border:1px solid rgba(15,23,42,.08)}.md[data-v-8bd314b2] pre{margin:12px 0;padding:12px;border-radius:12px;overflow:auto;border:1px solid rgba(15,23,42,.1);background:#0f172a0a}.md[data-v-8bd314b2] pre code{display:block;padding:0;background:transparent;border:none}@media(max-width:680px){.head__right[data-v-8bd314b2]{width:100%;display:grid;grid-template-columns:1fr;gap:8px}.head__right .btn[data-v-8bd314b2]{width:100%}.btnBack[data-v-8bd314b2]{flex:0 0 auto}.title[data-v-8bd314b2]{white-space:normal;word-break:break-word}.content[data-v-8bd314b2]{padding:12px}.md[data-v-8bd314b2]{font-size:14px}.md[data-v-8bd314b2] pre{padding:10px;border-radius:12px}}@media(max-width:420px){.head__left[data-v-8bd314b2]{width:100%;align-items:flex-start}.head__left[data-v-8bd314b2]{flex-wrap:wrap}}
