.dialog-overlay[data-v-43f69072]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99999;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-card[data-v-43f69072]{background:var(--color-bg-primary,#1a1a1a);border:1px solid var(--color-border,#333);text-align:center;border-radius:16px;width:90%;max-width:360px;padding:28px 24px 20px;box-shadow:0 20px 60px -12px #0006,0 0 0 1px #ffffff0d}.dialog-icon[data-v-43f69072]{border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 16px;display:flex}.dialog-icon.danger[data-v-43f69072],.dialog-icon.error[data-v-43f69072]{color:#ef4444;background:#ef44441f}.dialog-icon.warning[data-v-43f69072]{color:#f59e0b;background:#f59e0b1f}.dialog-icon.success[data-v-43f69072]{color:#10b981;background:#10b9811f}.dialog-icon.info[data-v-43f69072]{color:#3b82f6;background:#3b82f61f}.dialog-title[data-v-43f69072]{color:var(--color-text-primary,#fff);margin:0 0 8px;font-size:17px;font-weight:600}.dialog-message[data-v-43f69072]{color:var(--color-text-secondary,#aaa);word-break:break-word;margin:0 0 24px;font-size:14px;line-height:1.6}.dialog-actions[data-v-43f69072]{gap:10px;display:flex}.dialog-actions.single[data-v-43f69072]{justify-content:center}.dialog-actions button[data-v-43f69072]{cursor:pointer;border:none;border-radius:10px;flex:1;padding:10px 16px;font-size:14px;font-weight:500;transition:all .15s}.btn-cancel[data-v-43f69072]{background:var(--color-bg-secondary,#2a2a2a);color:var(--color-text-primary,#fff);border:1px solid var(--color-border,#444)!important}.btn-cancel[data-v-43f69072]:hover{background:var(--color-bg-hover,#333)}.btn-confirm[data-v-43f69072]{color:#fff}.btn-confirm.danger[data-v-43f69072],.btn-confirm.error[data-v-43f69072]{background:#ef4444;box-shadow:0 2px 8px #ef44444d}.btn-confirm.danger[data-v-43f69072]:hover,.btn-confirm.error[data-v-43f69072]:hover{background:#dc2626;transform:translateY(-1px)}.btn-confirm.warning[data-v-43f69072]{background:#f59e0b;box-shadow:0 2px 8px #f59e0b4d}.btn-confirm.warning[data-v-43f69072]:hover{background:#d97706;transform:translateY(-1px)}.btn-confirm.success[data-v-43f69072]{background:#10b981;box-shadow:0 2px 8px #10b9814d}.btn-confirm.success[data-v-43f69072]:hover{background:#059669;transform:translateY(-1px)}.btn-confirm.info[data-v-43f69072]{background:#3b82f6;box-shadow:0 2px 8px #3b82f64d}.btn-confirm.info[data-v-43f69072]:hover{background:#2563eb;transform:translateY(-1px)}.dialog-fade-enter-active[data-v-43f69072]{animation:.2s cubic-bezier(.16,1,.3,1) dialogIn-43f69072}.dialog-fade-leave-active[data-v-43f69072]{animation:.15s ease-in dialogOut-43f69072}@keyframes dialogIn-43f69072{0%{opacity:0}to{opacity:1}}@keyframes dialogOut-43f69072{0%{opacity:1}to{opacity:0}}.dialog-fade-enter-active .dialog-card[data-v-43f69072]{animation:.2s cubic-bezier(.16,1,.3,1) cardIn-43f69072}.dialog-fade-leave-active .dialog-card[data-v-43f69072]{animation:.15s ease-in cardOut-43f69072}@keyframes cardIn-43f69072{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes cardOut-43f69072{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@media (max-width:480px){.dialog-card[data-v-43f69072]{max-width:92%;padding:24px 16px 16px}}.toast-container[data-v-e4f7b869]{z-index:9000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast-container[data-v-e4f7b869]>*{pointer-events:auto}.toast-enter-active[data-v-e4f7b869]{transition:all .3s}.toast-leave-active[data-v-e4f7b869]{transition:all .2s}.toast-enter-from[data-v-e4f7b869]{opacity:0;transform:translateY(20px)}.toast-leave-to[data-v-e4f7b869]{opacity:0;transform:translate(100%)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-bg-tertiary:#f1f5f9;--color-bg-input:#fff;--color-bg-card:#fff;--color-bg-hover:#f1f5f9;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-accent:#3b82f6;--color-accent-hover:#2563eb;--color-accent-light:#eff6ff;--color-success:#22c55e;--color-error:#ef4444;--color-warning:#f59e0b;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--sidebar-width:280px;--header-height:56px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--color-user-gradient:linear-gradient(135deg, #b0120a, #fbbf24)}[data-theme=dark],[data-coreui-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-primary:#0f0f0f;--color-bg-secondary:#171717;--color-bg-tertiary:#1f1f1f;--color-bg-input:#262626;--color-bg-card:#1e1e1e;--color-bg-hover:#262626;--color-text-primary:#fafafa;--color-text-secondary:#a1a1aa;--color-text-muted:#71717a;--color-border:#27272a;--color-border-light:#3f3f46;--color-accent:#3b82f6;--color-accent-hover:#60a5fa;--color-accent-light:#3b82f626;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #00000080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-primary);font-size:16px}body{color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;transition:background-color .3s,color .3s;background-color:var(--color-bg-primary)!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:var(--color-accent);color:#fff}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.transition-colors{transition:background-color .15s,border-color .15s,color .15s}.transition-transform{transition:transform .15s}.transition-all{transition:all .2s}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.prose code:not(.hljs){background:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-accent);padding:.125rem .375rem;font-family:JetBrains Mono,Fira Code,Monaco,Consolas,monospace;font-size:.875em}.prose a{color:var(--color-accent);text-decoration:none}.prose a:hover{text-decoration:underline}.prose ul,.prose ol{margin:.5rem 0;padding-left:1.5rem}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--color-text-primary);margin-top:1.5rem;margin-bottom:.5rem;font-weight:600}.prose h1{font-size:1.5rem}.prose h2{font-size:1.25rem}.prose h3{font-size:1.125rem}.prose p{margin-bottom:.75rem}.prose blockquote{border-left:3px solid var(--color-accent);color:var(--color-text-secondary);margin:1rem 0;padding-left:1rem}:root{--tooltip-bg:#1e293b;--tooltip-text:#f8fafc;--tooltip-max-width:240px}[data-theme=dark]{--tooltip-bg:#e2e8f0;--tooltip-text:#0f172a}.tooltip-popup{z-index:9999;background:var(--tooltip-bg);color:var(--tooltip-text);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;max-width:var(--tooltip-max-width);white-space:pre-wrap;word-break:break-word;padding:6px 10px;font-size:12px;line-height:1.4;position:fixed}.tooltip-arrow{background:var(--tooltip-bg);width:6px;height:6px;position:absolute;transform:rotate(45deg)}.tooltip-popup--top .tooltip-arrow{margin-left:-3px;bottom:-3px;left:50%}.tooltip-popup--bottom .tooltip-arrow{margin-left:-3px;top:-3px;left:50%}.tooltip-popup--left .tooltip-arrow{margin-top:-3px;top:50%;right:-3px}.tooltip-popup--right .tooltip-arrow{margin-top:-3px;top:50%;left:-3px}.tooltip-fade-enter-active,.tooltip-fade-leave-active{transition:opacity .15s,transform .15s}.tooltip-fade-enter-from,.tooltip-fade-leave-to{opacity:0;transform:scale(.95)}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;line-height:1.4;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{border-radius:6px;padding:6px 12px;font-size:13px}.btn-accent,.btn-primary{background:var(--color-accent,#3b82f6);color:#fff}.btn-accent:hover,.btn-primary:hover{opacity:.9}.btn-ghost,.btn-cancel{color:var(--color-text-secondary,#d1d5db);border:1px solid var(--color-border,#374151);background:0 0}.btn-ghost:hover,.btn-cancel:hover{background:var(--color-bg-tertiary,#2a2a2a)}.btn-danger{color:#fff;background:#ef4444}.btn-danger:hover{opacity:.9}.btn-delete{color:#ef4444;background:#ef44441a;border:1px solid #ef444433}.btn-delete:hover{background:#ef444433}.btn-retry{color:var(--color-accent,#3b82f6);border:1px solid var(--color-accent,#3b82f6);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px;font-size:13px}.btn-icon{color:var(--color-text-muted,#9ca3af);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;padding:6px;transition:all .15s;display:inline-flex}.btn-icon:hover{background:var(--color-bg-tertiary,#2a2a2a);color:var(--color-text-primary)}.btn-icon.delete:hover{color:#ef4444;background:#ef44441a;border-color:#ef444433}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background-color:var(--color-bg-card,#202020);border:1px solid var(--color-border,#374151);color:var(--color-text-primary,white);border-radius:12px;width:90%;max-width:480px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 20px 25px -5px #0000004d}.modal-panel h2{margin-top:0;margin-bottom:20px;font-size:18px}.modal-panel-lg{max-width:640px}.modal-panel-xl{max-width:900px}.modal-actions{align-items:center;gap:12px;margin-top:24px;display:flex}.modal-enter-active,.modal-leave-active{transition:opacity .2s}.modal-enter-active .modal-panel,.modal-leave-active .modal-panel{transition:transform .2s,opacity .2s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-panel,.modal-leave-to .modal-panel{opacity:0;transform:scale(.95)}.form-group{margin-bottom:16px}.form-group label{color:var(--color-text-secondary,#e5e7eb);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-input,.form-group input[type=text],.form-group input[type=password],.form-group input[type=email],.form-group input[type=number],.form-group input[type=url],.form-group input[type=date],.form-group select,.form-group textarea{border:1px solid var(--color-border,#4b5563);background:var(--color-bg-tertiary,#2a2a2a);width:100%;color:var(--color-text-primary,white);border-radius:6px;padding:10px;font-size:14px;transition:border-color .15s}.form-input:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-accent,#3b82f6);outline:none}.form-group-row{gap:12px;margin-bottom:16px;display:flex}.form-group-row .form-group{margin-bottom:0}.checkbox-group label{cursor:pointer;align-items:center;gap:8px;display:flex}.page-container{background:var(--color-bg-primary,#121212);height:100%;color:var(--color-text-primary,#fff);flex-direction:column;padding:24px;display:flex}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}@media (max-width:640px){.page-header{flex-direction:column;align-items:stretch;gap:16px}}.page-header h1{color:var(--color-text-primary);margin:0 0 4px;font-size:24px;font-weight:700}.page-header .subtitle{color:var(--color-text-muted,#9ca3af);font-size:14px}.table-container{background:var(--color-bg-secondary,#1e1e1e);border:1px solid var(--color-border,#374151);border-radius:12px;overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.data-table td{text-align:left;padding:16px}.data-table tr{border-bottom:1px solid var(--color-border,#374151)}.data-table th{color:var(--color-text-muted,#9ca3af);background:var(--color-bg-tertiary,#252525);text-transform:uppercase;font-size:13px;font-weight:500}.clickable-row{cursor:pointer;transition:background .15s}.clickable-row:hover{background:var(--color-bg-tertiary,#2a2a2a)}.clickable-row:focus-visible{outline:2px solid var(--color-accent,#3b82f6);outline-offset:-2px}.badge{text-transform:uppercase;border-radius:4px;align-items:center;padding:4px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-superadmin{color:#8b5cf6;background:#8b5cf61a}.badge-admin{color:#3b82f6;background:#3b82f61a}.badge-teacher{color:#10b981;background:#10b9811a}.badge-student{color:#9ca3af;background:#6b72801a}.badge-prod{color:#10b981;background:#10b9811a}.badge-test{color:#f59e0b;background:#f59e0b1a}.state-empty{color:var(--color-text-muted,#9ca3af);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.empty-row{text-align:center;color:var(--color-text-muted);padding:32px 16px}.error-banner{color:#ef4444;background:#ef44441a;border:1px solid #ef444433;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.form-error{color:#ef4444;background:#ef44441a;border-radius:4px;margin-bottom:16px;padding:8px;font-size:13px}.skeleton-text{background:linear-gradient(90deg, var(--color-bg-tertiary,#2a2a2a) 25%, var(--color-bg-secondary,#333) 50%, var(--color-bg-tertiary,#2a2a2a) 75%);background-size:200% 100%;border-radius:4px;width:60%;height:16px;animation:1.5s infinite skeleton-shimmer}.skeleton-short{width:35%}.skeleton-icon{border-radius:6px;width:28px;height:28px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:3px solid var(--color-border,#374151);border-top-color:var(--color-accent,#3b82f6);border-radius:50%;width:28px;height:28px;animation:.6s linear infinite spinner-spin}@keyframes spinner-spin{to{transform:rotate(360deg)}}.filter-pills{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filter-pill{border:1px solid var(--color-border,#374151);color:var(--color-text-secondary,#9ca3af);cursor:pointer;background:0 0;border-radius:20px;padding:6px 16px;font-size:13px;transition:all .2s}.filter-pill:hover{background:var(--color-bg-tertiary,#2a2a2a)}.filter-pill.active{background:var(--color-accent,#3b82f6);color:#fff;border-color:var(--color-accent,#3b82f6)}.toast{z-index:9000;box-shadow:var(--shadow-lg);pointer-events:auto;border-radius:10px;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:500;animation:.3s toast-slide-in;display:flex;position:fixed;bottom:24px;right:24px}.toast-success{color:#d1fae5;background:#065f46;border:1px solid #10b981}.toast-error{color:#fecaca;background:#7f1d1d;border:1px solid #ef4444}.toast-warning{color:#fef3c7;background:#78350f;border:1px solid #f59e0b}.toast-info{color:#dbeafe;background:#1e3a5f;border:1px solid #3b82f6}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.spacer,.flex-1{flex:1}.text-date{color:var(--color-text-secondary,#d1d5db);font-size:13px}.text-code{color:var(--color-text-muted,#9ca3af);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.font-medium{font-weight:500}.code-wrapper{border:1px solid #d0d7de;border:1px solid var(--color-border,#d0d7de)!important;background-color:#0000!important;border-radius:6px!important;flex-direction:column!important;width:100%!important;margin:1.5rem 0!important;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace!important;display:flex!important;overflow:hidden!important}.code-header{background-color:var(--color-bg-secondary,#f6f8fa)!important;border-bottom:1px solid var(--color-border,#d0d7de)!important;color:#57606a!important;justify-content:space-between!important;align-items:center!important;padding:8px 12px!important;font-size:11px!important;font-weight:600!important;display:flex!important}[data-theme=dark] .code-header{color:#c9d1d9!important}.code-wrapper pre{background:0 0!important;border:none!important;margin:0!important;padding:16px!important;overflow-x:auto!important}.code-wrapper code{color:inherit!important;font-family:inherit!important;font-size:13px!important}.code-wrapper .hljs{background:0 0!important}.code-copy-btn{cursor:pointer;color:inherit;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;transition:background .2s;display:flex}.code-copy-btn:hover{background-color:#0000000d}[data-theme=dark] .code-copy-btn:hover{background-color:#ffffff1a}
